• Viernes 19 de Abril de 2024, 22:21

Autor Tema:  Descarga Videos de YouTube  (Leído 3202 veces)

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Descarga Videos de YouTube
« en: Miércoles 3 de Diciembre de 2008, 19:23 »
0
Un pequeño script para descargar Videos del YouTube
Código: Python
  1. #!/usr/bin/env python
  2. #Probado con un video de Dragon Ball Z
  3. #http://es.youtube.com/watch?v=MJoAZPTiWBA
  4. #Desarrollado por RadicalEd
  5. import re, sys, urllib2
  6. #se toman los datos ingresados por la linea de comandos
  7. arg = sys.argv
  8. #obtenemos el fuente de la pagina
  9. s = urllib2.urlopen(arg[1]).read()
  10. #Con expresiones regulares se obtiene todo lo que venga despues del 'video_id='
  11. m = re.search('(?<=video_id=).*', s)
  12. video = m.group(0)
  13. #Quitamos la comilla simple o doble que haya al final
  14. video = video.replace("';", '')
  15. video = video.replace('";', '')
  16. flv = urllib2.urlopen('http://www.youtube.com/get_video?video_id='+video)
  17. #Guardamos el archivo
  18. archiflv = open('video.flv', 'w')
  19. archiflv.write(flv.read())
  20. archiflv.close()
  21. #La siguiente línea se puede descomentar si tienes un linux instalado con el paquete ffmpeg
  22. #os.system('ffmpeg -i video.flv video.avi')
  23.  
El pasado son solo recuerdos, el futuro son solo sueños

migue_1988

  • Miembro activo
  • **
  • Mensajes: 25
    • Ver Perfil
Re: Descarga Videos de YouTube
« Respuesta #1 en: Jueves 19 de Marzo de 2009, 17:31 »
0
Hola, me interesa mucho tu código pero no logro hacerlo andar, me sale este error:

Citar
Traceback (most recent call last):
  File "C:/Documents and Settings/Administrador/Escritorio/guardarvideoyoutube.py", line 10, in <module>
    s = urllib2.urlopen(arg[1]).read()
IndexError: list index out of range

Probé modificandolo para que se ingrese la dirección mediante raw_input, pero nada...

Se que esto fue posteado hace algún tiempo,  pero espero tu respuesta

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Descarga Videos de YouTube
« Respuesta #2 en: Jueves 19 de Marzo de 2009, 17:33 »
0
Cómo utilizas el script???
De esta forma mola
script.py http://es.youtube.com/watch?v=MJoAZPTiWBA

Lo que te quizo decir es que le falta el parámetro de la url.
El pasado son solo recuerdos, el futuro son solo sueños

migue_1988

  • Miembro activo
  • **
  • Mensajes: 25
    • Ver Perfil
Re: Descarga Videos de YouTube
« Respuesta #3 en: Martes 24 de Marzo de 2009, 23:56 »
0
Disculpa la ignorancia Edo, pero estoy iniciándome en Python y no logro hacer funcionar tu script.
Guardo tu codigo como ___.py y luego lo llamo desde otro guardado en la misma carpeta pero vuelvo a tener el mismo error.
Si podés modificarlo para poder ingresar los datos mediante raw_input() te lo agradeceré.
Saludos.

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Descarga Videos de YouTube
« Respuesta #4 en: Miércoles 25 de Marzo de 2009, 13:40 »
0
Código: Python
  1. #!/usr/bin/env python
  2. #Probado con un video de Dragon Ball Z
  3. #http://es.youtube.com/watch?v=MJoAZPTiWBA
  4. #Desarrollado por RadicalEd
  5. import re, sys, urllib2
  6. #se toman los datos ingresados por la linea de comandos
  7. arg = sys.argv
  8. #Obtener los datos por medio de entrada
  9. url = raw_input('Introducir url: ')
  10. #obtenemos el fuente de la pagina
  11. #s = urllib2.urlopen(arg[1]).read()
  12. s = urllib2.urlopen(url).read()
  13. #Con expresiones regulares se obtiene todo lo que venga despues del 'video_id='
  14. m = re.search('(?<=video_id=).*', s)
  15. video = m.group(0)
  16. #Quitamos la comilla simple o doble que haya al final
  17. video = video.replace("';", '')
  18. video = video.replace('";', '')
  19. flv = urllib2.urlopen('http://www.youtube.com/get_video?video_id='+video)
  20. #Guardamos el archivo
  21. archiflv = open('video.flv', 'w')
  22. archiflv.write(flv.read())
  23. archiflv.close()
  24. #La siguiente linea se puede descomentar si tienes un linux instalado con el paquete ffmpeg
  25. #os.system('ffmpeg -i video.flv video.avi')
  26.  
Ojala te sirva.
Chao
El pasado son solo recuerdos, el futuro son solo sueños

migue_1988

  • Miembro activo
  • **
  • Mensajes: 25
    • Ver Perfil
Re: Descarga Videos de YouTube
« Respuesta #5 en: Miércoles 25 de Marzo de 2009, 15:21 »
0
Gracias Edo, luego lo adapto, lo pruebo y te comento que tal.
Saludos.

tabris

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Descarga Videos de YouTube
« Respuesta #6 en: Sábado 4 de Abril de 2009, 18:00 »
0
mmmm sta interesante pero no me funciona
me sale este error:

video = m.group(0)
AttributeError: 'NoneType ' objet has no attribute 'group'

haber si alguien sabe como corregirlo gracias xD

DRiMeR

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
    • http://www.informatizados.es
Re: Descarga Videos de YouTube
« Respuesta #7 en: Lunes 18 de Mayo de 2009, 17:28 »
0
Anda. Está muy apañado el script. Es curioso, pero con algunos videos funciona de maravilla, y con otros no.

Me he fijado en que el error que da es el típico HTTPError 500!! (número satánico xD) Server error...

Ese fallo lo da en esta línea:  flv = urllib2.urlopen('http://www.youtube.com/get_video?video_id='+video)

Por ejemplo, en la web que das en el mismo script, funciona:  http://es.youtube.com/watch?v=MJoAZPTiWBA

Pero luego hay otras que no, como por ejemplo esta:  http://www.youtube.com/watch?v=fBFFlL58UTM (es la primera que he encontrado).

Yo lo que he pensado es que la dirección 'http://www.youtube.com/get_video?video_id='+video haya vesces que no exista. Pero no lo he podido comprobar, porque en el navegador no me da ningún fallo con este video que he puesto.

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Descarga Videos de YouTube
« Respuesta #8 en: Lunes 18 de Mayo de 2009, 17:34 »
0
Gracias por el aporte, voy a revisar lo que dices.
El pasado son solo recuerdos, el futuro son solo sueños