sseffa/video-api
sseffa/video-api is a Laravel/PHP package that provides a clean integration layer for video APIs. Configure credentials, call video service endpoints through a simple, testable interface, and keep API logic out of your controllers while building video features faster.
videos.list) and Vimeo's video endpoint, normalizing title, description, thumbnails, and duration. Benchmark it against (a) ~100–200 lines written in-house on Laravel's HTTP client, (b) keyless oEmbed (youtube.com/oembed, vimeo.com/api/oembed.json), and (c) a paid unfurl/metadata vendor (Embedly, Iframely).VideoObject markup — you need a small internal abstraction. If it just needs a preview card, this is over-scoped.VideoMetadataResolver interface with this (or a fork) as one implementation.videos.list costs ~1 unit per call — fine for organic traffic, not for bulk backfills), cache TTLs, and queued refresh.Consider it when:
Look elsewhere when:
Executives: This is a small, MIT-licensed utility that saves roughly one to two engineer-days of YouTube/Vimeo integration. It is not a strategic dependency: 54 stars, zero dependents, last release 2017. Its high quality score and low opportunity score (0.11) point the same way — competent at a commodity job, with no differentiation to build a bet on. Recommend a timeboxed spike (1–2 days); if it holds, fork it behind an interface so we can replace it without a rewrite.
Engineering: The value is URL parsing, provider dispatch, and response normalization — reproducible in roughly 150 lines on Laravel's HTTP client, with caching and retries built in. Either path leaves us owning API keys, quota budget, and the 30-day metadata refresh YouTube's terms require. Pin or fork; do not depend on upstream.
Product: The decision this actually unblocks is whether video metadata is a platform capability (abstraction, cache, refresh, provider extensibility) or a per-feature convenience (oEmbed inline, nothing stored). The package choice is downstream of that call — settle the capability question first, then adopt the cheapest thing that satisfies it.
How can I help you explore Laravel packages today?