如何获得YouTube视频宽高比

inf*_*kie 13 javascript youtube

我想获得YouTube视频的宽高比,以便相应地调整播放器的大小.我正在使用JavaScript编写YT播放器.

hue*_*ice 14

我建议点击oembed网址:

https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v= {videoID}&format = json

这为您提供了公开视频的精确视频尺寸.我不确定私人视频.它还会返回缩略图尺寸,在某些情况下似乎有所不同,所以请确保不要混淆它们.


Jef*_*ick 7

在Data API调用中公开确切视频维度的唯一位置是使用v3 API 进行videos.list(part = fileDetails,id = VIDEO_ID)调用,同时作为视频所有者进行身份验证.它在video.fileDetails.videoStreams [].aspectRatio属性中返回.这不是特别有用,因为您需要作为视频所有者进行身份验证才能获得该信息.

如果您只有一个网页,并希望进行JSONP调用以获得有关给定视频是16:9还是4:3的提示,您可以通过

http://gdata.youtube.com/feeds/api/videos/?vVIDEO_ID = 2&alt = jsonc&callback = myCallback

例如

http://gdata.youtube.com/feeds/api/videos/F1IVb2_FYxQ?v=2&alt=jsonc&callback=myCallback

"aspectRatio":"widescreen"设置其响应,这暗示视频为16:9(或接近16:9).

http://gdata.youtube.com/feeds/api/videos/u1zgFlCw8Aw?v=2&alt=jsonc&callback=myCallback

没有aspectRatio设置,这意味着视频是4:3(或接近4:3).它并不总是精确的宽高比,但它足够接近绝大多数视频都很有用.

  • 此答案中的 URL 现在返回“不再可用”。 (4认同)

TDa*_*e00 5

我是这样做的。我从 youtube 图像中获取长宽比。

<img id"nnS7G3Y-IDc-img" src="http://i.ytimg.com/vi/nnS7G3Y-IDc/default.jpg" />
<script>
//using jquery
var height = $('#nnS7G3Y-IDc-img').css('height');
var width = $('#nnS7G3Y-IDc-img').css('width');
height = height.replace('px', '');
width = width.replace('px', '');
var arB = height / 3;
var arT = width / arB;
if (arT == 4)   {
    //do what you need to with the aspect ratio info from here
    //just demonstrating with an alert
    alert ("4:3");
}
else {alert ("16:9");}
</script>
Run Code Online (Sandbox Code Playgroud)

我从 youtube api 中提取所有视频信息,然后预先将所有视频信息存储在数据库中,因此,如果您即时执行此操作,您可能必须隐藏页面上的图像,然后以这种方式获取宽高比。

编辑** 另一种选择,可能也是最好的选择,是使用youtube 的 api。搜索视频,检查data->items->aspectRatio是否设置。我不认为它是在 4:3 视频上设置的,但在 16:9 上它设置为宽屏。应该像这样简单if (data->items->aspectRatio) {ratio= "16:9"} else {ratio="4:3"}