[DUDA] Acceder transcripción de youtube

Iniciado por DrKillador, 27 Enero 2014, 12:59 PM

0 Miembros y 1 Visitante están viendo este tema.

DrKillador

Hola a to2,

Quería consultar una duda a ver si alguien sabria ayudarme. Estoy haciendo una aplicación html con la que quiero descargar y mostrar los subtitulos transcritos automáticamente de varios videos de youtube. Por el momento, siguiendo este manual http://www.desarrolloweb.com/articulos/api-youtube-php.html, he implementado una aplicación que busca los videos que quiero y obtengo los IDs de los videos. Ahora querria descargar las transcripciones de ese listado de videos.

He visto que hay una aplicación JAVA que los descarga GOOGLE2SRT (http://google2srt.sourceforge.net/es/), funciona muy bien, y necesitaría hacer algo igual pero web (preferiblemente con HTML y javascript, pero si tengo que pegarme con PHP, etc. no habria problema). ¿Conocéis alguna librería/módulo de la que pueda tirar?

Hay un servicio web de una empresa que hace esto en PHP (http://www.serpsite.com/) pero solo tira con los videos en inglés, falla con el resto de idiomas..., además que no querría depender de un servicio que lo mismo dejan de mantener.

También he visto que a través del API de youtube se puede acceder a mucha información de un video (https://developers.google.com/youtube/2.0/developers_guide_protocol_captions), pero por lo que he leido, Youtube solo te deja acceder a estas transcripciones de los videos si eres el propietario del mismo, por tanto, como los videos que quiero transcribir son de varios canales que yo no he subido, no me valdria

Finalmente vi este script, https://github.com/wp-plugins/youtube-embed/blob/master/includes/generate-transcript-code.php, pero es muy antiguo y solo vale para los subtitulos empotrados en los videos, no para las transcripciones automáticas realizadas desde el audio que se han implantado en youtube hace poco.

En fin creo que os he metido un poco en el contexto de mi problema, a ver si pueden ayudarme, les estaria muyy agradecido

Muchas gracias amigos  ;D
Python <3 Python

#!drvy

Esta en contra de las politicas de Youtube proporcionar esa informacion al que no sea el dueño del video .. y la verdad es que no se porque xD.

De todos modos igual puedes conseguir algo.. abre firebug o algún analizador, abre un vídeo y busca peticiones de timedtext.

Ejemplo: http://www.youtube.com/watch?v=gMrV-dFwS9A
Código (url) [Seleccionar]
http://www.youtube.com/api/timedtext
?asr_langs=en,ja,pt,de,ko,ru,fr,nl,it,es
&caps=asr
&expire=1390868926
&format=1
&hl=en-US
&key=yttt1
&kind=
&lang=en
&name=
&signature=E0A019C96727E81EA93B871B81ABA726A51EBC41.812FCFD118B0B1D976400A546D4FB1252F380F8B
&sparams=asr_langs%2Ccaps%2Cv%2Cexpire&ts=1390843757461
&type=track
&v=gMrV-dFwS9A


No se como se genera el signature.. pero he visto que quitandolo de la URL no daña.. tampoco el expire.

http://www.youtube.com/api/timedtext?asr_langs=en,ja,pt,de,ko,ru,fr,nl,it,es&caps=asr&format=1&hl=en-US&key=yttt1&kind=&lang=en&name=&sparams=asr_langs,caps,v,expire&ts=1390843757461&type=track&v=gMrV-dFwS9A

Proporciona un xml con las captions en ingles.. si cambiamos el lang a: es, deja de funcionar asi que alguna manera de generarlo tiene..

Bueno.. al menos ya tienes algo para jugar :P

Saludos