确定YouTube视频是否为宽屏?

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(老武侠视频)

4:3的武术

和16:9中的一个:

https://www.youtube.com/watch?v=7O2Jqi-LhEI(一个新的锻炼视频)

锻炼视频


更新:一个有希望的建议是探索,fileDetails.videoStreams[].aspectRatio但似乎这只适用于视频所有者.否则请求fileDetails结果

请求无法访问用户评级信息.可能会发生此错误,因为请求未得到适当授权

Jam*_*ell 2

如果您愿意使用 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)

这似乎适用于您提供的示例。