aldaflux/youtube-utils-bundle
Symfony bundle for YouTube API v3 integration, offering services to fetch video, channel, and playlist data, extract video IDs from URLs, a form type for YouTube links, and profiler integration for API requests.
google/apiclient, do not adopt this bundle. The evaluation cost is hours, not weeks, and it stops the ticket from drifting across three planning cycles.watch?v=, youtu.be/, /embed/, /shorts/), normalise it to an 11-character video ID at the form layer, store only the ID. That is a one-day ticket, not an epic — and knowing that changes how you size it against other backlog items.getVideo, getChannel, getPlaylist, ID extraction, and a debug panel for API calls.config/packages/, Twig, a Web Profiler DataCollector). For a Laravel product the answer is almost always no — make that call once so "just wrap it in a container" doesn't recur per ticket.Consider it as a reference implementation, not a dependency.
FormRequest/cast. Read it, then write ~50 lines of your own.Look elsewhere — and for a typical Laravel product, all of these apply:
Better starting points: google/apiclient (official Google client, permissively licensed, maintained) wrapped in your own YoutubeService contract; or spatie/laravel-youtube if you want batteries included and can accept its abstraction. Recommended disposition: reject as a dependency; adopt its feature list as the acceptance criteria for the in-house client.
To executives (one paragraph):
We evaluated an open-source package that advertises YouTube integration, to decide whether to buy or build that capability. Recommendation: do not adopt it. It is a Symfony component with no Laravel support; it is GPL-3.0 licensed, which creates copyleft exposure for our proprietary product; it has zero users, zero downstream dependents, and a last-release date in the future — a maturity profile we would not accept even if everything else fit. The capability itself is still worth having: a thin read-only wrapper over Google's official client, covering video/channel/playlist lookup, URL-to-ID normalisation, and response caching, is roughly 3–5 engineer-days for our first use case, and we can scope it precisely because the rejected package gave us a clean feature list. Ask: approve one engineer for a week next cycle to ship a
YoutubeServicebehind an internal interface, scoped to [your first use case, e.g. embedded video galleries on CMS pages], plus half a day for API-key and quota governance.
To engineering (short brief):
aldaflux/youtube-utils-bundleis a Symfony bundle (YAML config inconfig/packages/, Twig, profiler DataCollector), 0 stars, 0 dependents, GPL-3.0+, with a last release dated 2026-08-06 — treat the advertised API (getVideo,getChannel,getPlaylist,getYoutubeIdFromUrl,YoutubeUrlCodeType) as specification, not code. Proposal: implement the equivalent in-house ongoogle/apiclientbehind aYoutubeServiceinterface, bound in a service provider, with URL-to-ID extraction as a small value object, a cache decorator on reads, and Blade partials for embeds. Three things to get right up front: (1) quota — 10,000 units/day default,search.listcosts ~100 units per call, so any search feature needs aggressive caching and a per-feature budget; (2) key handling — server-side only, API- and referrer-restricted, in env with config caching verified, never exposed to the browser; (3) observability — log and count API calls and quota consumption per feature, since the bundle's nicest idea (a profiler panel for API calls) is one we should reproduce as structured logging in dev and metrics in prod. Estimate: 3–5 dev days for read-only lookups plus ID extraction, 1 extra day for quota/caching/observability. If we want zero custom code,spatie/laravel-youtubeis the fallback, at the cost of control over retry and cache semantics.
Two lines to keep for the review:
How can I help you explore Laravel packages today?