У меня возникают проблемы с извлечением автоматических заголовков из видео 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/ ), но мне нужен сценарий , потому что я хочу использовать его для своих исследований.
У кого-нибудь есть идеи, что это правильный способ получить это? API YouTube имеет что-то в заголовках, но только для зарегистрированных пользователей, в то время как приложения выше работают для всех видео, и я сомневаюсь, что они просто захватывают HTML-код со страницы (хотя это тоже возможно). Должен быть способ … пожалуйста, помогите!
Отличный способ собирать данные со страницы – это использовать файл_get_contents, но это работает только в том случае, если у видео есть кнопка «CC» или титры, но когда это возможно, вы можете получить все текстовые элементы из xml-файла, к сожалению, как это описано в документе услуг «Youtube to caption» заявили, что ему нужны подписи, разрешенные youtuber, чтобы получить подписи, поэтому, к сожалению, вы не можете получать титры из видео без включенного «CC», однако, если вы все еще хотите, чтобы вы могли использовать file_get_contents в xml-файле, найдите все теги «text», а затем превратите их в титры.
Сначала необходимо вызвать другой 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 & lang = ru
Я смотрел на 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 & ключ = yttt1 & крышка = аср & вид = аср & Ланг = ы