Je vais avoir des problèmes lors de l'extraction automatique de légendes à partir de vidéos YouTube.
J'ai essayé d'utiliser le http://video.google.com/timedtext?type=track&v=3wszM2SA12E&nom=Automatique&lang=fr méthode, mais celle-ci ne fonctionne que pour ces vidéos, qui ont nommé les pistes. Par exemple, celui-ci ne dispose pas d'un nom de pistes (uniquement automatique de la légende) et n'a pas de charger jusqu': rrkrvAUbU9Y
Il existe plusieurs web-applications là-bas qui peut le faire (comme http://www.serpsite.com/youtube-subtitles-download-tool/ et http://mo.dbxdb.com/), mais j'ai besoin d'un script, parce que je veux l'utiliser pour mes recherches.
Quelqu'un a des idées de ce qu'est la bonne façon de l'obtenir? YouTube API a quelque chose au sujet des légendes, mais seulement pour les utilisateurs enregistrés, tandis que les applications de travail ci-dessus pour toutes les vidéos et je doute qu'ils juste de capturer le code html de la page (même si c'est possible aussi). Il doit y avoir un moyen... s'il vous plaît aider!
- Quelle est la raison pour laquelle vous ne l'utilisation de l'api en tant qu'utilisateur enregistré?
- Vous vous demandez ce, comme si d'avoir un compte YouTube a tous le droit d'aînesse. Juste parce que vous en avez un, ne signifie pas que tout le monde peut en avoir un. Beaucoup de gens sont légalement interdit d'utiliser un compte YouTube pour la vie. D'autres sont arbitrairement refusé d'inscription, sans raison. D'autres ont déjà assez de comptes ailleurs et ne pouvait pas gérer plus; conserver les informations d'identification et d'avoir un compte est à la fois une charge et une responsabilité. D'autres n'ont pas envie d'être surveillés.
Vous avez besoin pour les appels de l'API d'abord: http://video.google.com/timedtext?type=list&v=3wszM2SA12E
Cela vous donnera la liste des morceaux disponibles. Dans votre cas, une seule piste peuvent être obtenus:
id="0" name="Automatic" lang_code="en" lang_original="English" lang_translated="English" lang_default="true"
Dans cette vidéo je pouvais l'adresse de la piste par
name=Automatic
seulement pour certaines raisons. Mais pour une autre vidéo, il a bien fonctionné:http://video.google.com/timedtext?type=track&v=zenMEj0cAC4&id=0&lang=fr
Un excellent moyen d'aller pour obtenir des données à partir d'une page est d'utiliser file_get_contents toutefois, cela ne fonctionne que si la vidéo a un " CC "ou les légendes bouton mais quand il le fait, vous pouvez obtenir tous les éléments de texte à partir du fichier xml malheureusement, comme indiqué par l'un des" Youtube à la rubrique "services a déclaré il a besoin de sous-titres activés par le youtuber pour obtenir les sous-titres si, malheureusement, vous ne pouvez pas obtenir des légendes à partir de vidéos sans" CC " est activé, toutefois, si vous voulez encore vous pouvez utiliser file_get_contents sur le fichier xml puis de trouver que le "texte" des balises et ensuite les transformer en sous-titres.
Voici mes suggestions après avoir passé quelque temps:
Bibliothèque Js: https://github.com/syzer/youtube-captions-scraper => soutien automatique généré légende.
2 méthodes rapides ci-dessous pas de soutien automatique généré légende
Téléchargement rapide: http://downsub.com/?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dag_EJRhMfOM
J'ai été jeter un coup d'oeil à downsub.com et que les appels de l'API qui semble fonctionner pour sous-titres générés automatiquement:
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