我想获得YouTube视频的宽高比,以便相应地调整播放器的大小。我正在使用JavaScript编写YT播放器。
答案 0 :(得分:11)
我建议点击oembed网址:
https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v= {VIDEOID}&安培;格式= JSON
这为您提供了公开视频的确切视频尺寸。我不确定私人视频。它还会返回缩略图尺寸,在某些情况下似乎有所不同,所以请务必不要混淆它们。
答案 1 :(得分: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/ VIDEO_ID
V = 2及?ALT = jsonc&安培;回调= myCallBack函数
E.g。
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)。它并不总是精确的宽高比,但它足够接近绝大多数视频都有用。
答案 2 :(得分:3)
我是这样做的。我从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>
我从youtube api中提取所有视频信息,然后事先将所有视频信息存储在数据库中,因此如果您是在动态执行此操作,则可能需要隐藏页面上的图像然后获取方面这样的比例。
编辑**另一种选择,可能是最好的选择,就是使用youtube's api。
搜索视频,并检查是否设置了data-&gt; items-&gt; aspectRatio。我不认为它是在4:3视频上设置的,但是在16:9它被设置为宽屏。应该像if (data->items->aspectRatio) {ratio= "16:9"} else {ratio="4:3"}
答案 3 :(得分:1)
宽高比显然取决于质量水平。取自YouTube Docs:
Quality level small: Player height is 240px, and player dimensions are at least 320px by 240px for 4:3 aspect ratio.
Quality level medium: Player height is 360px, and player dimensions are 640px by 360px (for 16:9 aspect ratio) or 480px by 360px (for 4:3 aspect ratio).
Quality level large: Player height is 480px, and player dimensions are 853px by 480px (for 16:9 aspect ratio) or 640px by 480px (for 4:3 aspect ratio).
Quality level hd720: Player height is 720px, and player dimensions are 1280px by 720px (for 16:9 aspect ratio) or 960px by 720px (for 4:3 aspect ratio).
Quality level hd1080: Player height is 1080px, and player dimensions are 1920px by 1080px (for 16:9 aspect ratio) or 1440px by 1080px (for 4:3 aspect ratio).
Quality level highres: Player height is greater than 1080px, which means that the player's aspect ratio is greater than 1920px by 1080px.
答案 4 :(得分:0)
也许不是一个好的答案,但似乎在其他答案中假设YouTube视频是16:9或4:3。
但是他们可以拥有非常随意的宽高比,而且肖像手机视频变得非常普遍,对于YouTube上的视频而言,它变得不那么罕见了。
对于这些非标准宽高比,作为一个快速手动软糖,我采用了全屏播放,进行屏幕捕捉和裁剪图像。
我在http://youtube-aspect-ratios.xtra.ink上提供了几个任意方面视频的例子。
答案 5 :(得分:0)
我的目标是获取所有视频的长宽比,而不仅是我拥有的视频。
因此,诀窍是将https://developers.google.com/youtube/v3/docs/videos/list与player
中提供的parts
一起使用,然后解析返回的嵌入html的width
和height
。