requestlab/vimeo-bundle
Symfony bundle that integrates Vimeo’s API into PHP applications, offering services for video uploads, metadata retrieval, and embed configuration. Streamlines setup and dependency injection for Vimeo-powered features.
Consider it only in a narrow, non-production sense:
vimeo/php-sdk first.Do not consider it when:
Recommended alternative: vimeo/php-sdk (official, framework-agnostic, callable from Laravel behind a thin service provider) or Vimeo's REST API directly behind your own interface, so the vendor stays replaceable.
For executives (one paragraph): We evaluated requestlab/vimeo-bundle as a way to add video to the product and recommend against adopting it. It is a Symfony 2 bundle built for a framework generation that reached end of life years ago, with no stars, no dependent projects, and no maintainer activity — so any integration we build on it becomes ours to own permanently and will break the first time Vimeo changes its API. The useful output of this evaluation is not the code but the decision it clarifies: video hosting is a buy, not a build. If video is on the roadmap, the correct path is Vimeo's officially maintained PHP SDK, or direct REST calls behind our own internal interface that keeps the vendor swappable. Budget a small, time-boxed spike — roughly one to two weeks for upload, playback, and a privacy tier — and treat ongoing video hosting as a vendor line item, not engineering headcount.
For engineering (short): Do not pull this in. It is a Symfony 2 bundle — wrong framework, EOL runtime constraints, no maintenance signal, and a Composer conflict with modern Illuminate components is the expected outcome. Use it as a reference for the upload-ticket and privacy/embed-setting flows if useful, then implement against vimeo/php-sdk behind a VideoProvider interface in our own code so we can swap to S3 plus a transcoder or another vendor later. Two design notes worth carrying over: track videos by our own ID with the provider ID as a foreign key (never the reverse), and model upload status as an async state machine because transcoding is not synchronous.
For product (short): The bundle confirms what a minimum viable video feature requires — authenticated upload, asynchronous processing with a visible "processing" state, privacy and entitlement rules, and embeddable playback. Plan the UX for the wait between upload and playable, decide up front which content is public, unlisted, or domain-locked (that choice drives the pricing model and the integration spec), and route uploads through a background job so a Vimeo slowdown degrades a queue rather than a user session.
How can I help you explore Laravel packages today?