bilalghouri / youtube-dl-php
youtube-dl wrapper for php
v0.1.3
2015-07-16 20:30 UTC
Requires
- php: >=5.4
- symfony/options-resolver: ~2.6
- symfony/process: ~2.6
Requires (Dev)
- phpunit/phpunit: ~4.5
This package is not auto-updated.
Last update: 2025-05-10 22:12:07 UTC
README
Please use the original repository youtube-dl-php, this is a customized fork.
Youtube-dl PHP
A PHP wrapper for youtube-dl tool.
Install
First step is to download the youtube-dl and add it's path to environment variables.
Second step is to install the wrapper using Composer:
composer require norkunas/youtube-dl-php
Example
<?php require __DIR__ . '/vendor/autoload.php'; use YoutubeDl\YoutubeDl; use YoutubeDl\Exception\CopyrightException; use YoutubeDl\Exception\NotFoundException; use YoutubeDl\Exception\PrivateVideoException; $dl = new YoutubeDl([ 'continue' => true, // force resume of partially downloaded files. By default, youtube-dl will resume downloads if possible. 'format' => 'bestvideo', ]); // For more options go to https://github.com/rg3/youtube-dl#user-content-options $dl->setDownloadPath('/home/user/downloads'); // Enable debugging /*$dl->debug(function ($type, $buffer) { if (\Symfony\Component\Process\Process::ERR === $type) { echo 'ERR > ' . $buffer; } else { echo 'OUT > ' . $buffer; } });*/ try { $video = $dl->download('https://www.youtube.com/watch?v=oDAw7vW7H0c'); echo $video->getTitle(); // Will return Phonebloks // $dl->getFile(); // \SplFileInfo instance of downloaded file } catch (NotFoundException $e) { // Video not found } catch (PrivateVideoException $e) { // Video is private } catch (CopyrightException $e) { // The YouTube account associated with this video has been terminated due to multiple third-party notifications of copyright infringement } catch (\Exception $e) { // Failed to download }
Disabled options which would break download:
list-formats, list-subs, list-thumbnails, get-url, get-title, get-id, get-thumbnail, get-description, get-duration, get-filename, get-format, dump-json, dump-single-json, print-json (used internally), newline, no-progress, console-title, verbose, dump-pages, write-pages, print-traffic, ignore-config (used internally).