如果我有一个YouTube视频URL,有没有任何方法可以使用PHP和cURL从YouTube API获取相关的缩略图?
当前回答
您可以使用YouTube数据API检索视频缩略图、标题、描述、评级、统计信息等。API版本3需要密钥*。获取密钥并创建视频:列表请求:
https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=VIDEO_ID
示例PHP代码
$data = file_get_contents("https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=T0Jqdjbed40");
$json = json_decode($data);
var_dump($json->items[0]->snippet->thumbnails);
输出
object(stdClass)#5 (5) {
["default"]=>
object(stdClass)#6 (3) {
["url"]=>
string(46) "https://i.ytimg.com/vi/T0Jqdjbed40/default.jpg"
["width"]=>
int(120)
["height"]=>
int(90)
}
["medium"]=>
object(stdClass)#7 (3) {
["url"]=>
string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/mqdefault.jpg"
["width"]=>
int(320)
["height"]=>
int(180)
}
["high"]=>
object(stdClass)#8 (3) {
["url"]=>
string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/hqdefault.jpg"
["width"]=>
int(480)
["height"]=>
int(360)
}
["standard"]=>
object(stdClass)#9 (3) {
["url"]=>
string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/sddefault.jpg"
["width"]=>
int(640)
["height"]=>
int(480)
}
["maxres"]=>
object(stdClass)#10 (3) {
["url"]=>
string(52) "https://i.ytimg.com/vi/T0Jqdjbed40/maxresdefault.jpg"
["width"]=>
int(1280)
["height"]=>
int(720)
}
}
*不仅需要密钥,还可能会根据您计划发出的API请求的数量要求您提供计费信息。然而,每天有几千个请求是免费的。
源文章。
其他回答
YouTube API版本3在2分钟内启动并运行
如果您只想搜索YouTube并获取相关的财产:
获取公共API--此链接提供了良好的方向使用以下查询字符串。出于示例目的,URL字符串中的搜索查询(由q=表示)是stackoverflow。然后YouTube将向您发送一个JSON回复,您可以在其中解析缩略图、代码段、作者等。https://www.googleapis.com/youtube/v3/search?part=id%2Csnippet&maxResults=50&q=stackoverflow&key=YOUR_API_KEY_HERE
在YouTube Data API v3中,您可以使用videos->list函数获取视频的缩略图。从snippet.t缩略图.(key)中,您可以选择默认、中等或高分辨率缩略图,并获取其宽度、高度和URL。
您还可以使用缩略图->设置功能更新缩略图。
例如,您可以查看YouTube API示例项目。(PHP版本。)
我认为缩略图有很多答案,但我想添加一些其他URL,以便非常容易地获得YouTube缩略图。我只是从亚萨的回答中提取一些文字。以下是获取YouTube缩略图的一些URL:
https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/default.jpg
对于缩略图的高质量版本,请使用类似于以下内容的URL:
https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg
还有一个中等质量的缩略图版本,使用与高质量类似的URL:
https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg
对于缩略图的标准定义版本,请使用类似于以下内容的URL:
https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/sddefault.jpg
对于缩略图的最大分辨率版本,请使用类似于以下内容的URL:
https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg
这里是我为获取缩略图创建的一个简单函数。它易于理解和使用。
$link是在浏览器中完全复制的YouTube链接,例如,https://www.youtube.com/watch?v=BQ0mxQXmLsk
function get_youtube_thumb($link){
$new = str_replace('https://www.youtube.com/watch?v=', '', $link);
$thumbnail = 'https://img.youtube.com/vi/' . $new . '/0.jpg';
return $thumbnail;
}
Use:
https://www.googleapis.com/youtube/v3/videoCategories?part=snippet,id&maxResults=100®ionCode=us&key=**Your YouTube ID**
上面是链接。使用它,你可以找到YouTube视频的特点。找到特征后,您可以获得所选类别的视频。之后,您可以使用Asaph的答案找到选定的视频图像。
尝试以上方法,您可以解析YouTube API中的所有内容。
推荐文章
- PHP中的双not(!!)操作符
- 在PHP5中创建单例设计模式
- 阻止人们入侵基于php的Flash游戏高分表的最佳方法是什么
- PHP子字符串提取。获取第一个'/'之前的字符串或整个字符串
- __construct函数的作用是什么?
- PHP中的异步shell执行器
- Laravel 5 -如何访问在视图存储上传的图像?
- 为什么在PHP中使用sprintf函数?
- “质量分配”在Laravel中是什么意思?
- 在逗号上爆炸字符串,并修剪每个值的潜在空格
- PHP与MySQL 8.0+错误:服务器请求身份验证方法未知的客户端
- laravel5“LIKE”对等物(雄辩的)
- 在函数中使用默认实参
- 如何在Node.js内进行远程REST调用?旋度吗?
- 转换php数组到Javascript