Foros del Web » Administración de Sistemas » Unix / Linux »

Script para ripear CDs

Estas en el tema de Script para ripear CDs en el foro de Unix / Linux en Foros del Web. Hace algún tiempo Ferdy puso un script por aquí para ripear CDs. Pero como yo lo perdí y no me apetecía buscarlo aproveché la ocasión ...
  #1 (permalink)  
Antiguo 30/04/2003, 14:21
Avatar de lical
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: $PWD
Mensajes: 1.267
Antigüedad: 22 años, 4 meses
Puntos: 0
Script para ripear CDs

Hace algún tiempo Ferdy puso un script por aquí para ripear CDs. Pero como yo lo perdí y no me apetecía buscarlo aproveché la ocasión para no perder la costumbre y volver a escribir un script que hiciese lo mismo.

Así, este script tiene dos modos de operación: ripear el cd completo (filtrando la salida de cdda2wav --info, se detectará el número de pistas del CD y no habrá que introducirlo), o ripear algunas pistas:

Código:
#!/bin/bash

# cd2file.sh - Script que ripea CDs de audio
# Requiere cdda2wav, lame, oggenc

# Este script: ricardo at zonasiete.org - Ricardo Cervera (lical)
# Idea original: ferdy at ferdyx.org    - Fernando Pereda (Ferdy)

# GPL Licensed.

# CONFIGURACION #
DEV=/dev/cdrom

#

function read_track()
{
        NUMTRACK=$1
        OUTPUTF=$2
        MODE=$3

        if [ $MODE = "--mp3" ]; then

          cdda2wav -t "$NUMTRACK" -O wav -D "$DEV" -q -Q - 2>/dev/null | \
          lame -q 2 - "$OUTPUTF".mp3 --quiet

          return $?

        elif [ $MODE = "--ogg" ]; then

          cdda2wav -t "$NUMTRACK" -O wav -D "$DEV" -q -Q - 2>/dev/null | \
          oggenc -q 4 - -o "$OUTPUTF".ogg -Q

          return $?

        fi
}

function get_num_tracks()
{
        SAL=`cdda2wav -J -D "$DEV" 2>&1`
        NUMTRACKS=`echo $SAL | sed -e 's/.*tracks:\([0-9]*\),.*/\1/g'`
        echo $NUMTRACKS
}

function uso()
{
        echo "$0: Ripea CDs"
        echo "---------"
        echo "El primer argumento debe ser \"--mp3\" o bien "
        echo "\"--ogg\", indicando asi el formato de salida."
        echo " "
        echo "El segundo argumento debe ser \"--fullcd\" para"
        echo "ripear el CD completo. En ese caso ya estaria todo"
        echo "Si pretendes ripear pistas sueltas, debes ingresar"
        echo "como segundo argumento \"--tracks\". A continuacion"
        echo "se te pedira que ingreses los numeros de pista"
        echo "separados por espacios"
        echo " "
        echo "Ejemplos:"
        echo " "
        echo "$0 --ogg --fullcd"
        echo " "
        echo "$0 --mp3 --tracks"
        echo "1 3 8 11"
}


## FLOW


if [ "$1" = "--mp3" ]; then

        MOD=$1

elif [ "$1" = "--ogg" ]; then

        MOD=$1

else

        uso
        exit 1
fi

echo "Espere, leyendo informacion del disco..."
N=`get_num_tracks`
echo "El CD tiene $N pistas"
sleep 3

case $2 in
        --fullcd)

                TRACK_ACT=1
                while [ $TRACK_ACT -le $N ]; do

                        NAME=$TRACK_ACT

                        if [ $NAME -lt 10 ]; then
                                NAME="0$NAME"
                        fi

                        echo "Extrayendo pista $NAME ..."

                        read_track $TRACK_ACT $NAME $MOD
                        TRACK_ACT=$[$TRACK_ACT+1]
                done

                rm -f audio*.inf

                echo "Hecho."
                ;;

        --tracks)

                echo "Introduzca los numeros de pista: "
                read LIST
                echo "Siguiendo..."

                for i in $LIST; do
                        if [ $i -gt $N ]; then
                                exit 1
                        fi

                        NAME=$i
                        if [ $NAME -lt 10 ]; then
                                NAME="0$NAME"
                        fi

                        echo "Extrayendo pista $NAME ..."

                        read_track $i $NAME $MOD

                done

                rm -f audio*.inf

                echo "Hecho."

                ;;

        *)
                uso
                exit 1
        ;;
esac

Espero que sea útil. Claro está, se admiten mejoras


Un saludo,
__________________
lical-> Usuario registrado de Linux #254225

ZonaSiete.ORG - GNU/Linux eminentemente práctico
  #2 (permalink)  
Antiguo 21/09/2003, 05:53
 
Fecha de Ingreso: mayo-2001
Mensajes: 58
Antigüedad: 23 años
Puntos: 0
Muy bueno tu script!

Hola lical!

La verdad es que el script lo estoy usando para pasar toda la música que quiero llevarme para el congreso de HL en mi reproductor mp3, y funciona muy bien ! Es rápido y eficaz. Aunque si fuese posible le añadiría:

- Posibilidad de pasarle el directorio donde poner los ficheros de música.
- Posibilidad de especificiar el lector a mano =).
- Posibilidad de (uis ¡esto ya si que es más complicado !) añadirle los id3 a la música con autor, año, disco, canción... No sé, el cdcd lo detecta, estoy habría que estudiar como se puede hacer.

No me pongo a ello porque ando muy ocupado, pero plasmo aquí las ideas por si alguien se anima .

Un saludo,
Edulix.
__________________
"One World, One web, One program" - Microsoft Promo ad.
"Ein Volk, Ein Reich, Ein Fuhrer" - Adolf Hitler
  #3 (permalink)  
Antiguo 21/09/2003, 06:18
 
Fecha de Ingreso: mayo-2001
Mensajes: 58
Antigüedad: 23 años
Puntos: 0
Vaya, me acabo de dar cuenta de la existencia de un programa que se dedica a hacer lo que tu script lical. Se llama abcde, y parece que hace todo lo que yo pedía, e incluso mucho más .

Os lo recomiendo, ahora estoy mirando si es posible añadir atomáticamente los tags id3 a las canciones ya ripeadas (metiendo el cd en el lector y diciendo que simplemente busque cuales son lso tags id3 y se los ponga a una serie de ficheros). Y sino, creo que la solución más rápida pasa por volver a ripear lso cds, espero que valga la pena jeje.
__________________
"One World, One web, One program" - Microsoft Promo ad.
"Ein Volk, Ein Reich, Ein Fuhrer" - Adolf Hitler
  #4 (permalink)  
Antiguo 09/10/2003, 12:20
Avatar de lical
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: $PWD
Mensajes: 1.267
Antigüedad: 22 años, 4 meses
Puntos: 0
Eso ya no es un script, es un programa ;)


Un saludo,
__________________
lical-> Usuario registrado de Linux #254225

ZonaSiete.ORG - GNU/Linux eminentemente práctico
  #5 (permalink)  
Antiguo 06/01/2004, 00:17
Avatar de kankoka  
Fecha de Ingreso: noviembre-2003
Ubicación: La Tacita de Plata
Mensajes: 7
Antigüedad: 20 años, 5 meses
Puntos: 0
funciona de maravilla, ahora haber si consigo rular uno de pasar de divx a cvcd :D
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:51.