Dra*_*kes 8 php youtube youtube-api aspect-ratio google-api-php-client
我想肯定地知道YouTube视频是否是宽屏或不使用v3 API.有许多旧视频的比例为4:3,因此我需要检测到这一点.
这可以通过API v2实现,但现在正式退役.以下是API v3文档.
API调用看起来像这样:
https://www.googleapis.com/youtube/v3/videos?id=[VIDEOID]&part=snippet&key=[DEVELOPERKEY]
Run Code Online (Sandbox Code Playgroud)
此外,缩略图数据始终返回4:3的尺寸,因此这没有帮助.这是一个例子:
[thumbnails] => Array
(
[default] => Array
(
[url] => https://i.ytimg.com/vi/nnnnnnnnn/default.jpg
[width] => 120
[height] => 90
)
...
)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
(我目前黑客通过在缩略图那里搬弄是非4黑条分析像素这样的:3个视频会)
以下是4:3比例的视频示例:
https://www.youtube.com/watch?v=zMJ-Dl4eJu8(老武侠视频)
和16:9中的一个:
https://www.youtube.com/watch?v=7O2Jqi-LhEI(一个新的锻炼视频)
更新:一个有希望的建议是探索,fileDetails.videoStreams[].aspectRatio但似乎这只适用于视频所有者.否则请求fileDetails结果
请求无法访问用户评级信息.可能会发生此错误,因为请求未得到适当授权
如果您愿意使用 API V3 以外的其他方法,那么我相信通过 oEmbed API 是可能的。
http://www.youtube.com/oembed?url={VIDEO_URL}&format=json
Run Code Online (Sandbox Code Playgroud)
就像这样:
http://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=zMJ-Dl4eJu8&format=json
Run Code Online (Sandbox Code Playgroud)
会产生:
{
"provider_url":"https:\/\/www.youtube.com\/",
"thumbnail_url":"https:\/\/i.ytimg.com\/vi\/zMJ-Dl4eJu8\/hqdefault.jpg",
"thumbnail_height":360,
"height":344,
"type":"video",
"version":"1.0",
"html":"\u003ciframe width=\"459\" height=\"344\" src=\"https:\/\/www.youtube.com\/embed\/zMJ-Dl4eJu8?feature=oembed\" frameborder=\"0\" allowfullscreen\u003e\u003c\/iframe\u003e",
"author_name":"hadronica2",
"width":459,
"provider_name":"YouTube",
"author_url":"https:\/\/www.youtube.com\/user\/hadronica2",
"title":"Aikido - Kazuo Chiba sensei - 1\u00ba part",
"thumbnail_width":480
}
Run Code Online (Sandbox Code Playgroud)
在您给出的示例中,输出如下:
http://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=zMJ-Dl4eJu8&format=json
Width: 459
Height: 344
Ratio: w/h = 1.3343 = 4:3 (ish)
Run Code Online (Sandbox Code Playgroud)
http://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=zMJ-Dl4eJu8&format=json
Width: 480
Height: 270
Ratio: w/h = 1.7777 = 16/9
Run Code Online (Sandbox Code Playgroud)
这似乎适用于您提供的示例。