chojnicki / video-platforms-parser
易于使用的SDK,一次性抓取多个平台(如YouTube、Dailymotion、Facebook等)的视频。
v1.4.1
2024-08-15 08:41 UTC
Requires
- php: >=7.0
- ext-dom: *
- ext-json: *
- ext-libxml: *
Requires (Dev)
- orchestra/testbench: 3.*||4.*||5.*
- phpunit/phpunit: ^8.5.12
README
Video Platforms Parser 是一个易于使用的SDK,可以一次性抓取多个平台(如YouTube、Dailymotion、Facebook等)的视频。
要求
- PHP 7.0 或更高版本
- Laravel 5.4 或更高版本(未在更低版本上测试,但应在5.*版本上工作)
支持的平台
- 带有API - 解析器使用官方API(默认)- 快速且可靠(但YouTube需要API密钥)
- 不带API - 解析器将抓取视频页面并解析所需信息(在不提供API的平台或作为备份时使用)- 可能较慢且不可靠
使用API的每个解析器都有一个不带API的解析器作为备份。要使用它,您需要在配置中禁用所选平台的API(不推荐)。
使用Composer安装
只需使用composer要求包
composer require chojnicki/video-platforms-parser
没有Composer或Laravel的安装
下载此存储库的zip文件,并将其解压到您的PHP项目中。要求VideoPlatformsParser文件
require '/video-platforms-parser/src/VideoPlatformsParser.php';
使用Laravel的使用
使用composer要求包
composer require chojnicki/video-platforms-parser
发布配置
php artisan vendor:publish --provider="Chojnicki\VideoPlatformsParser\ServiceProvider"
现在您可以开始像这样抓取信息
$info = VideoPlatformsParser::get('https://www.youtube.com/watch?v=jofNR_WkoCE');
没有Laravel但有Composer的使用
如果之前未要求,请将Composer要求添加到项目中
require_once 'vendor/autoload.php';
创建新对象
$parser = new Chojnicki\VideoPlatformsParser\VideoPlatformsParser(); // put array config inside
像这样抓取视频信息
$info = $parser->get('https://www.youtube.com/watch?v=jofNR_WkoCE');
没有Laravel和没有Composer的使用
要求解析器
require '/video-platforms-parser/src/VideoPlatformsParser.php';
手动加载将使用的每个视频平台的解析器
require '/video-platforms-parser/src/parsers/YouTube.php';
创建新对象
$parser = new Chojnicki\VideoPlatformsParser\VideoPlatformsParser(); // put array config inside
像这样抓取视频信息
$info = $parser->get('https://www.youtube.com/watch?v=jofNR_WkoCE');
返回数据
对于每个支持的平台,解析器将返回包含以下内容的数组:
- id: 视频ID
- platform: 网站名称
- title: 视频标题
- description: 视频描述
- thumbnail: 最高可能分辨率的图片URL
- tags: 关键字数组
- duration: 时长(秒)(LiveLeak和Facebook尚未支持 [更多信息])
- api: 如果使用了官方平台API则为true,否则为false
可选配置
配置位于video-platforms-parser.php中,或者您可以传递包含VideoPlatformsParser对象的数组
默认配置
[
'youtube_api_key' => '',
'youtube_api_disabled' => false,
'dailymotion_api_disabled' => false,
'vimeo_api_disabled' => false,
'streamable_api_disabled' => false,
'twitter_api_bearer_token' => '',
'twitter_api_disabled' => false
]