#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 для создания этих подписей на видео, как вы думаете? Регулярное выражение? Как ты думаешь, что бы это было? Я собираюсь отметить это как ответ, по крайней мере, на данный момент, но я также согласен, что это единственный способ.