I\'m having problems extracting automatic captions from YouTube videos.
I tried using the http://video.google.com/timedtext?type=track&v=3wszM2SA12E&name=Au
You need to call another API first: http://video.google.com/timedtext?type=list&v=3wszM2SA12E
This will give you the list of the tracks available. In your case only one track can be obtained: id="0" name="Automatic" lang_code="en" lang_original="English" lang_translated="English" lang_default="true"
In this particular video I could address the track by name=Automatic
only for some reasons. But for another video it worked fine:
http://video.google.com/timedtext?type=track&v=zenMEj0cAC4&id=0&lang=en
Here my suggestions after spending some time:
Js library: https://github.com/syzer/youtube-captions-scraper => support auto-generated caption.
2 quick methods below not support auto-generated caption
Quick download: http://downsub.com/?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dag_EJRhMfOM
A great way about going to get data from a page is by using file_get_contents however this only works if the video has a 'CC' or captions button but when it does you can get all the text elements from the xml file unfortunately as documented by one of the 'Youtube to caption' services stated it needs captions enabled by the youtuber to get the captions so unfortunately you cannot get captions from videos without 'CC' enabled, however if you still want you can use file_get_contents on the xml file then find all the 'text' tags and then turn those into captions.
I was taking a look at downsub.com and found the following API call which seems to work for automatically generated captions:
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