Busindre » Blog Archive » Descargar videos de youtube por consola

Descargar videos de youtube por consola

October 19th, 2006 by Busindre

Script para descargar por consola los videos de youtube. sacado de espalinux.putopunto.com. (Necesita ffmpeg si queremos que convierta de Flash a avi).

Código:

#!/bin/bash

if [ $# -lt 1 ]; then
echo "Uso: $0 "
exit 1
fi

ID=`echo $1 | cut -d= -f2 | cut -d\& -f1`
FILE="youtube-${ID}"
BASE_URL="http://youtube.com/get_video.php"

wget -O /tmp/${FILE} $1

if [ $? == 0 ]; then
T_PARAM=`grep '&t=' /tmp/${FILE} | head -n 1 | awk -F'&t=' '{print $2}' | cut -d\& -f 1`
VIDEO_URL="${BASE_URL}?video_id=${ID}&t=${T_PARAM}"

wget -O ${FILE}.flv $VIDEO_URL

if [ $? != 0 ]; then
rm -f ${FILE}.flv
exit 1
else
ffmpeg -i ${FILE}.flv ${FILE}.avi
fi
fi

rm -f /tmp/${FILE}

Para usarlo nos ponemos como root:

# cd /usr/bin/
# evim downtube (Creamos el script)
# chmod a+x downtube

NOTA: Cada uno le pone el nombre que desea

Ejecutamos:

# downtube http://www.youtube.com/watch?v=04j3FxWP_IQ

Si da un error por no tener el programa ffmpeg (Lo cual permite pasarlo a avi) nos dejará descargado el flv. Como vemos en este ejemplo:

--01:04:30-- http://youtube.com/get_video.php?video_id=04j3FxWP_IQ&t=OEgsT => `youtube-04j3FxWP_IQ.flv'
Resolviendo youtube.com... 208.65.153.242, 208.65.153.245, 208.65.153.241
Connecting to youtube.com|208.65.153.242|:80... conectado.
Petición HTTP enviada, esperando respuesta... 303 See Other
Localización: http://sjl-v40.sjl.youtube.com/get_video?video_id=04j3FxWP_IQ [siguiendo]
--01:04:34-- http://sjl-v40.sjl.youtube.com/get_video?video_id=04j3FxWP_IQ => `youtube-04j3FxWP_IQ.flv'
Resolviendo sjl-v40.sjl.youtube.com... 208.65.153.77
Connecting to sjl-v40.sjl.youtube.com|208.65.153.77|:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 7,572,448 (7.2M) [video/flv]


100%[==============>] 7,572,448 39.01K/s ETA 00:00


01:09:41 (24.45 KB/s) - `youtube-04j3FxWP_IQ.flv' saved [7572448/7572448]


ffmpeg: symbol lookup error: /usr/lib/libavcodec.so: undefined symbol: faacDecOpen

NOTA: El formato flv con ffplay (ffmpeg), mplayer o vlc podemos visualizarlo sin problemas.

Posted in Curiosidades |

6 Responses

  1. Nevat Says:

    Seria interesante una segunda version de dicho script pero que generara ficheros OGG, usando Theora para el video y Vorbis para el audio. De esta forma tendriamos como resultado un fichero con codecs libres. El circulo cerrado perfectamente :)

    Para ello en vez de usar ffmpeg, se podria usar una modificacion: ffmpeg2theora, disponible en los repositorios de las distribuciones mas conocidas. Su web aqui: http://www.v2v.cc/~j/ffmpeg2theora/

  2. goldrak Says:

    No me anda el script y lo he hecho tal y como decis, aqui os dejo lo que sale. a ver si alguien sabe lo que puede ser.

    goldrak@goldrak-portatil:~$ downtube http://www.youtube.com/watch?v=Ge7dmSyogPw
    --20:43:52-- http://www.youtube.com/watch?v=Ge7dmSyogPw
    => `/tmp/â€youtube-Ge7dmSyogPwâ€'
    Resolviendo www.youtube.com... 208.65.153.245, 208.65.153.241, 208.65.153.242
    Conectando a www.youtube.com|208.65.153.245|:80... conectado.
    Petición HTTP enviada, esperando respuesta... 200 OK
    Longitud: no especificado [text/html]

    [ ] 74,457 6.15K/s

    20:44:08(6.00 KB/s) - `/tmp/â€youtube-Ge7dmSyogPwâ€' guardado [74457]

    /usr/bin/downtube: line 15: /tmp/â€youtube-Ge7dmSyogPwâ€: Permiso denegado
    /usr/bin/downtube: line 15: ‘{print: orden no encontrada
    wget: falta la URL
    Modo de empleo: wget [OPCIÓN]... [URL]...

    Use `wget --help' para más opciones.

  3. Busindre Says:

    Es tema de caracteres al pasar el script a tu editor (nano, pico,evim,vim,mousepad,..). Simplemente te cambia las comillas por interrogaciones. Ten cuidado al pasarlo o prueba a copiarlo desde el link original por si esa codificación no te da problemas :)

    Ejemplo de como posiblemente lo tengas:


    if [ $# -lt 1 ]; then
    echo ¿Uso: $0 ¿
    exit 1
    fi
    ...

    Cuando debería de ser


    if [ $# -lt 1 ]; then
    echo “Uso: $0 â€
    exit 1
    fi
    ...

  4. goldrak Says:

    lo tengo con las comillas como tu dices Busindre , pero me falla, solo he hecho copy paste.
    Gracias

  5. THraSH Says:

    Gracias por indicar la procedencia del script :D

  6. Busindre Says:

    goldrak El script esta perfectamente, si te falla,.. o lo copias mal,.. o lo copias mal jejeje, pero vamos no puedo ayudarte porque el script está bien. Ya te digo con hacer copy paste no vale, asegurate de que sea idéntico que muchas veces cambian carcteres!!!!
    Copia y pega de aqui a ver si te va mejor con el tema caracteres: http://espalinux.putopunto.com/?Seccion=scripts&Accion=4&ID=63&

    THraSH , gracias a vosotros :!:

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.