flatgreen / ytdl
A PHP封装的youtube-dl或yt-dlp工具。接近命令行,带有缓存系统。
v2.4
2023-12-30 15:10 UTC
Requires
- php: >=7.4
- psr/log: ^1|^2|^3
- symfony/cache: ^5|^6
- symfony/process: ^5|^6
Requires (Dev)
- brianhenryie/color-logger: ^1
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^9
README
PHP封装的youtube-dl或yt-dlp。
两个目标
- 接近youtube-dl的命令行
- 最小化请求,同时拥有最大量的信息
先决条件
- php >= 7.4
- youtube-dl或yt-dlp
安装
- 使用包管理器composer安装Ytdl。
composer require flatgreen/ytdl
- 可选:创建一个'cache'目录(具有读|写权限),默认情况下缓存目录在系统临时目录中。
使用方法
加载两个类
require_once 'vendor/autoload.php'; use Flatgreen\Ytdl\Options; use Flatgreen\Ytdl\Ytdl;
定义选项
全部以数组方式。此处不包含URL。
$ytdl_options = new Options(); // merge with default options $ytdl_options->addOptions(['-f' => '18/worst']);
实例化类,定义视频URL;
$ytdl = new Ytdl($ytdl_options); // optional, change cache options // default temporary cache directory and duration 3600 sec. // no cache with ['duration' => 0] $ytdl->setCache(['directory' => 'cache', 'duration' => 7200]) $webpage_url = 'https://www.youtube.com/watch?v=BaW_jenozKc';
读取视频信息
$info_dict = $ytdl->extractInfos($webpage_url); $errors = $ytdl->getErrors();
如果您想获取媒体URL($info_dict['url']),您必须传递一个格式($ytdl_options->addOptions(['f' => 'some_format']))。
下载视频
$info_dict = $ytdl->download($webpage_url); // with a download directory // $info_dict = $ytdl->download($webpage_url, $directory_to_download); // with an explicit $info_dict // $new_info_dict = $ytdl->download($webpage_url, $directory_to_download, $info_dict); $errors = $ytdl->getErrors();
如果您想设置ytdl可执行文件路径,您需要像下面传递值。这将跳过自动扫描可执行文件。正确设置此路径是您的责任。
$ytdl = new Ytdl($ytdl_options, null, 'usr/share/local/yt-dlp');
示例
- 示例-0仅使用'--version'选项
- 示例-1提取示例
- 示例-1-1从播放列表中提取
- 示例-2下载视频(缓存和下载文件夹)
- 示例-2-2使用更改的选项下载
- 示例-3下载播放列表(无缓存,不是最优的)
- 示例-4从播放列表中提取所有信息,并使用缓存系统下载一些视频。
贡献
欢迎提交拉取请求。对于主要更改,请先提出问题以讨论您想更改的内容。
许可
ytdl采用MIT许可(MIT)。有关更多信息,请参阅许可文件。