Есть ли способ получить ГЛАВЫ из видео на YouTube, встроенного с помощью JavaScript?

#javascript #html #iframe #youtube

Вопрос:

После включения этого скрипта API iframe YouTube https://www.youtube.com/iframe_api можно поместить видео YouTube в контейнер (например, «container_id») и использовать такие методы, как «Поиск()» и «воспроизведение()» на элементах их страницы. (В любом месте за пределами iframe)

 var player = new YT.Player('container_id', {
    videoId: 'video_id'
});
 

Видеообъект может быть доступен таким образом YT.get("container_id") . Сделав это, можно прокрутить до отметки в 1 минуту YT.get("container_id").seekTo(60) , но я, похоже, не могу найти в нем объект «Главы». «Главы» — это разделы видео, разделенные такими метками времени, как эта.

введите описание изображения здесь

Я блуждал, есть ли способ получить их в виде массива, объекта или чего-то еще, но, похоже, не могу найти их в YT.get("container_id") результирующем объекте.

Сгенерированный iFrame содержит их в виде html-тегов, но в нем нет метаданных, таких как «начало» или «название главы», и он на самом деле недоступен из-за махинаций CORS. Отправляет ли API iframe YouTube данные о главах, если они существуют? (Во многих видео их нет)

Ответ №1:

Я не думаю, что API имеет какую-либо функциональность в отношении глав.

Работа глав заключается в том, что они основаны на метках времени, указанных в описании видео. Поэтому, хотя это обходной путь, если бы вы действительно хотели получить информацию о главе видео, вы могли бы проанализировать описание, чтобы получить метки времени и их имена.

Я быстро нажал Ctrl F на странице API, чтобы посмотреть, дает ли API iFrame доступ к описанию видео, но, похоже, это не так. Хотя я могу ошибаться, в этом случае игнорируйте приведенные ниже инструкции.

Чтобы получить описание, если у вас есть идентификатор видео, вы можете использовать API данных Youtube (другой api, поэтому для него вам, вероятно, понадобится другой ключ api), в частности метод списка из раздела Видео. Вы можете получить описание, передав «фрагмент» в качестве аргумента и для параметра «часть».

Комментарии:

1. Казалось бы, вы правы. Какой алгоритм использует сам YouTube для создания этих подписей на видео, как вы думаете? Регулярное выражение? Как ты думаешь, что бы это было? Я собираюсь отметить это как ответ, по крайней мере, на данный момент, но я также согласен, что это единственный способ.