Получить подписи YouTube
Как программно получить субтитры при воспроизведении видео на YouTube?
Первоначально я пытался сделать это в автономном режиме черезAPI YouTube, нокак это выглядит YouTube запрещает получать субтитры к видео, которые вы не являетесь владельцем.
Сейчас я пытаюсь сделать это онлайн. Я не нашелYouTube Player Api методы для подписей, также я пытался получить подписи YouTube как TextTrack сvideojs игрок вкак это можно сделать для обычных видео, но следующее не работает:
<html>
<head>
<link href="//vjs.zencdn.net/4.12/video-js.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript" src="//vjs.zencdn.net/4.12/video.js"></script>
<script type="text/javascript" src="../lib/youtube.js"></script>
</head>
<body>
<video id="myvideo"
class="video-js vjs-default-skin vjs-big-play-centered"
controls
preload="auto"
width="640"
height="360">
</video>
<script type="text/javascript">
var myvideo = videojs(
"myvideo",
{
"techOrder": ["youtube"],
"src": "https://www.youtube.com/watch?v=jNhtbmXzIaM"
},
function() {
console.log('Tracks: ' + this.textTracks().length); //zero here :(
/*var aTextTrack = this.textTracks()[0];
aTextTrack.on('loaded', function() {
console.log('here it is');
cues = aTextTrack.cues();
console.log('Ready State', aTextTrack.readyState())
console.log('Cues', cues);
});
aTextTrack.show();*/
});
</script>
</body>
</html>
Я также пробовал уродливое решение с синтаксическим анализом YouTube Player IFrame (внутри него есть div с текущей строкой субтитров), но оно не работает из-за проблем с несовпадением источника.
Есть ли способ, которым моя цель может быть достигнута в java (для автономных решений) или javascript (для онлайн-решений)?