如果我有一个YouTube视频URL,有没有任何方法可以使用PHP和cURL从YouTube API获取相关的缩略图?
当前回答
我使用YouTube缩略图的方式如下:
$url = 'http://img.youtube.com/vi/' . $youtubeId . '/0.jpg';
$img = dirname(__FILE__) . '/youtubeThumbnail_' . $youtubeId . '.jpg';
file_put_contents($img, file_get_contents($url));
请记住,YouTube禁止直接从其服务器中包含图像。
其他回答
Use:
https://www.googleapis.com/youtube/v3/videoCategories?part=snippet,id&maxResults=100®ionCode=us&key=**Your YouTube ID**
上面是链接。使用它,你可以找到YouTube视频的特点。找到特征后,您可以获得所选类别的视频。之后,您可以使用Asaph的答案找到选定的视频图像。
尝试以上方法,您可以解析YouTube API中的所有内容。
YouTube归谷歌所有,谷歌喜欢为不同的屏幕大小提供合理数量的图像,因此其图像以不同的大小存储。下面是缩略图的示例:
低质量缩略图:
http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/sddefault.jpg
中等质量缩略图:
http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/mqdefault.jpg
高质量缩略图:
http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/hqdefault.jpg
最高质量缩略图:
http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/maxresdefault.jpg
我认为缩略图有很多答案,但我想添加一些其他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
在YouTube Data API v3中,您可以使用videos->list函数获取视频的缩略图。从snippet.t缩略图.(key)中,您可以选择默认、中等或高分辨率缩略图,并获取其宽度、高度和URL。
您还可以使用缩略图->设置功能更新缩略图。
例如,您可以查看YouTube API示例项目。(PHP版本。)
这里是我为获取缩略图创建的一个简单函数。它易于理解和使用。
$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;
}
推荐文章
- PHP中的echo和print有什么不同?
- 我如何使用Guzzle发送一个POST请求JSON?
- 为什么cURL返回错误“(23)Failed writing body”?
- 如何POST JSON数据与PHP卷曲?
- 在PHP中使用getter和setter而不是函数或简单的公共字段有什么优点?
- 非加密用途的最快哈希?
- 将变量传递到下一页
- 使用curl在PHP中获取HTTP代码
- 如何删除数组元素,然后重新索引数组?
- 如何从PHP调用JavaScript函数?
- 确定PHP中是否存在数组键的更快更好的方法是什么?
- \(反斜杠)在PHP(5.3+)中做什么?
- 匿名递归PHP函数
- SSL证书错误:无法获得本地颁发者证书
- 正确判断日期字符串是否是该格式的有效日期