p3sdev/php-ytdlp-wrapper
A PHP wrapper for yt-dlp that lets you download video and audio from YouTube and hundreds of supported sites, extract metadata, and manage downloads from your Laravel or PHP app with a simple, fluent API.
yt-dlp; we own orchestration, storage, and UX.yt-dlp is installed is a small but meaningful maturity marker — it converts a confusing runtime failure into a clear setup error. It confirms the architecture: this package shells out to a system binary, so deployment provisioning is part of our product surface, not an implementation detail.Adopt when:
shell_exec calls scattered through the codebase.yt-dlp binary — and treat that as a deploy requirement with a version/health check in CI.yt-dlp supports and you have clear rights to retrieve them.Look elsewhere when:
For executives: This gives us media-download and ingestion capability in days instead of months, by leaning on a widely used open-source tool rather than building extractors ourselves. Cost is low and the code footprint is small. The trade-off is a third-party operational dependency: we must ship and maintain an external binary, and it will occasionally break when source platforms change. Before greenlighting any customer-facing use, we need a legal review of copyright and platform Terms — the technical risk is modest, the legal and reputational risk is the real decision.
For engineering: A deliberately thin wrapper — good news, low lock-in. The team owns three things: (1) provisioning and pinning yt-dlp in deploy images, (2) queueing and rate-limit handling so downloads never block requests, (3) storage/cleanup and error surfacing. v1.0.4's preflight check is the right instinct — extend it into a startup health check and version assertion so upgrades are deliberate, not accidental. Budget recurring maintenance: extractor regressions are a fact of life, not a defect.
Ask: Approve for an internal or admin-gated pilot with a pinned binary and a documented upgrade cadence; defer any public, user-submitted-URL surface until legal signs off.
How can I help you explore Laravel packages today?