A PHP封装的youtube-dl或yt-dlp工具。接近命令行,带有缓存系统。

v2.4 2023-12-30 15:10 UTC

This package is auto-updated.

Last update: 2024-09-30 01:17:38 UTC


README

PHP封装的youtube-dl或yt-dlp。

两个目标

  • 接近youtube-dl的命令行
  • 最小化请求,同时拥有最大量的信息

先决条件

安装

  • 使用包管理器composer安装Ytdl。
composer require flatgreen/ytdl
  • 可选:创建一个'cache'目录(具有读|写权限),默认情况下缓存目录在系统临时目录中。

使用方法

加载两个类

require_once 'vendor/autoload.php';
use Flatgreen\Ytdl\Options;
use Flatgreen\Ytdl\Ytdl;

定义选项

全部以数组方式。此处不包含URL。

见:youtube-dl的选项yt-dlp的选项

$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)。有关更多信息,请参阅许可文件