Как получить соотношение сторон видео YouTube - PullRequest
12 голосов
/ 16 февраля 2011

Я хотел бы получить соотношение сторон видео на YouTube, чтобы соответственно изменить размер проигрывателя. Я программирую YT-плеер, используя JavaScript.

Ответы [ 6 ]

11 голосов
/ 28 октября 2015

Я бы предложил нажать на URL-адрес oembed:

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

Это дает вам точные размеры видео для общедоступных видео.Я не уверен насчет частных видео.Он также вернет размеры миниатюр, которые в некоторых случаях кажутся разными, поэтому просто не перепутайте их.

7 голосов
/ 09 апреля 2013

Единственное место, где точные размеры видео отображаются в вызове API данных, это когда вы делаете videos.list (part = fileDetails, id = VIDEO_ID) , используя API v3, в то время как аутентифицируется как владелец видео. Он возвращается в свойстве video.fileDetails.videoStreams []. AspectRatio . Это не особенно полезно, поскольку для получения этой информации вам необходимо пройти проверку подлинности как владельца видео.

Если у вас просто есть веб-страница и вы хотите позвонить JSONP , чтобы получить подсказку о том, является ли данное видео 16: 9 или 4: 3, вы можете сделать это с помощью команды

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

* 1014 Е.Г. *

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). Это не всегда точное соотношение сторон, но оно достаточно близко для того, чтобы подавляющее большинство видео было полезно.

3 голосов
/ 19 марта 2013

Вот как я это делаю. Я получаю соотношение сторон изображения 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>

Я извлекаю всю видеоинформацию из API YouTube, а затем заранее сохраняю всю видеоинформацию в базе данных, поэтому, если вы делаете это на лету, вам, возможно, придется скрыть изображение на странице, а затем получить аспект соотношение таким образом.

edit ** Другим вариантом, и, вероятно, лучшим, будет использование API YouTube . Найдите видео и проверьте, установлены ли data-> items-> aspectRatio. Я не думаю, что он установлен на видео 4: 3, но на 16: 9 он установлен на широкоэкранный. Должно быть так просто, как if (data->items->aspectRatio) {ratio= "16:9"} else {ratio="4:3"}

1 голос
/ 16 февраля 2011

Соотношение сторон, по-видимому, зависит от уровня качества.Взято из Документов YouTube :

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.
0 голосов
/ 06 декабря 2018

Моя цель состояла в том, чтобы получить соотношение сторон для любого видео, не только для тех, для которых я являюсь владельцем.

Таким образом, хитрость заключается в использовании https://developers.google.com/youtube/v3/docs/videos/list с player, предоставленным в parts, а затем синтаксический анализ width и height возвращенного HTML-кода для вставки.

0 голосов
/ 24 декабря 2016

Возможно, это не очень хороший ответ, но, похоже, среди других ответов есть предположение, что видео на YouTube имеют формат 16: 9 или 4: 3.

Но у них может быть довольно произвольное соотношение сторон, а видео с портретными телефонами становится довольно распространенным, видео на YouTube становится все более редким, чем нечто другое.

Для этих нестандартных соотношений сторон, в качестве быстрого ручного выдумывания, я прибегнул к их воспроизведению в полноэкранном режиме, снятию экрана и обрезке изображения.

Я поместил несколько примеров видео с произвольным аспектом на http://youtube -aspect-ratios.xtra.ink .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...