Подтвердить что ты не робот

Извлечение автоматических заголовков из видео YouTube

У меня возникают проблемы с извлечением автоматических заголовков из видео YouTube.

Я попытался использовать метод http://video.google.com/timedtext?type=track&v=3wszM2SA12E&name=Automatic&lang=en, но этот работает только для тех видео, которые назвали дорожки. Например, у этого нет никаких названных треков (только автоматическая подпись) и не загружается: rrkrvAUbU9Y

Есть несколько веб-приложений, которые могут это сделать (например, http://www.serpsite.com/youtube-subtitles-download-tool/ и http://mo.dbxdb.com/), но мне нужен script, потому что я хочу использовать его для своих исследований.

У кого-нибудь есть идеи, что это правильный способ получить это? У YouTube API есть что-то о подписках, но только для зарегистрированных пользователей, в то время как приложения выше работают для всех видео, и я сомневаюсь, что они просто захватывают HTML-код со страницы (хотя это тоже возможно). Должен быть способ... пожалуйста, помогите!

4b9b3361

Ответ 1

Отличный способ получить данные с страницы - с помощью file_get_contents, но это работает только , если у видео есть кнопка "CC" или титры, но когда это возможно, вы можете получить весь текст элементы из файла xml, к сожалению, как описано в одном из сервисов "Youtube to caption", заявили, что ему нужны титры, разрешенные youtuber, чтобы получить титры, поэтому, к сожалению, вы не можете получать титры из видео без "CC", однако, если вы все еще хотите, чтобы вы можно использовать file_get_contents в xml файле, затем найти все теги "text" и затем превратить их в титры.

Ответ 2

Вам нужно сначала вызвать другой API: http://video.google.com/timedtext?type=list&v=3wszM2SA12E

Это даст вам список доступных треков. В вашем случае может быть получен только один трек: id="0" name="Automatic" lang_code="en" lang_original="English" lang_translated="English" lang_default="true"

В этом конкретном видео я мог бы отслеживать трек name=Automatic только по некоторым причинам. Но для другого видео он отлично работал:

http://video.google.com/timedtext?type=track&v=zenMEj0cAC4& id = 0 &; языки = еп

Ответ 3

Я смотрел на downsub.com и нашел следующий вызов API, который, похоже, работает для автоматически созданных титров:

https://www.youtube.com/api/timedtext?expire=1491547251&v=YD1tc8lRsdQ&sparams=asr_langs%2Ccaps%2Cv%2Cexpire&hl=en_US&signature=6241BAB9F7E9DB164AFE496B40B4DA4B58B463FD.D7FEC5B2CC81721AF9928215343509E280FEF6BD&asr_langs=pt%2Cit%2Ces%2Cru%2Cfr%2Cko%2Cde%2Cja%2Cnl%2Cen&key=yttt1&caps=asr&kind=asr&lang=en