TTA
@TTA
Мутировавший технарь :)

Как из js перехватывать субтитры к youtube ролику?

Собственно задача полностью такая: мне надо титры к ролику выводить за пределами ролика.
Для этого нужно как то перехватывать событие смены субтитров и получать текущие.
Как это сделать?
  • Вопрос задан
  • 1244 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Dorothy
Вообще по хорошему все субтитры можно получить по такой ссылке
https://www.youtube.com/api/timedtext?hl=ru_RU&v=7Y7LGxinPH0&caps=asr&key=yttt1&expire=1486219007&asr_langs=en%2Cja%2Cfr%2Cde%2Cko%2Cit%2Cnl%2Cpt%2Ces%2Cru&sparams=asr_langs%2Ccaps%2Cv%2Cexpire&lang=en&fmt=srv3


Это можно сделать для любого видео, для которого есть субтитры. В параметр v надо подставить идентификатор видео из URL, например для https://www.youtube.com/watch?v=7Y7LGxinPH0 в ссылку для получения субтитров нужно подставить 7Y7LGxinPH0, а дальше уже относительно полученного XML обрабатывать субтитры по времени.

Но можно и просто слушать их. Подключим JQuery к странице с видео:
var jq = document.createElement('script');
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);


Подождем когда загрузится библиотека, и можно прописать событие на получение субтитров:
jQuery.noConflict();

jQuery('body').on('DOMNodeInserted', 'span.captions-text span', function () {
      console.log(jQuery(this).text());
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы