ShellRipper by DanBadJar
Da Slacky.eu.
Descrizione
Questo script estrae tracce da CD Audio, le rippa in MP3 (con diverse opzioni di campionamento) e assegna i TAG ai files estratti. Puoi editarlo per modificare le directory di lavoro, cioè dove risiederanno i files estratti in formato WAV e convertiti poi in MP3. Richiede: cdparanoia,lame,id3v2
Script
#!/bin/sh
###############################################################################
# Definizione delle directory di lavoro
OUTPUT_WAV=~/scripts/shellripper/wav
OUTPUT_MP3=~/scripts/shellripper/mp3
###############################################################################
# Definizione del percorso dei file binari utilizzati per le operazioni
CDPARANOIA_BIN=/usr/bin/cdparanoia
LAME_BIN=/usr/bin/lame
ID3V2_BIN=/usr/bin/id3v2
###############################################################################
tag_thismp3()
{
clear
echo -e "*** Tagging del disco $NOMEDISCO *** \n"
echo "Artista?"
read -r ARTISTA
echo "Anno?"
read -r ANNO
echo "Genere?"
read -r GENERE
for FILE in `ls -1 $OUTPUT_MP3/$NOMEDISCO/`
do
echo "TAG di nome della canzone nel file: $FILE ?"
read -r CANZONE
id3v2 -a "$ARTISTA" $OUTPUT_MP3/$NOMEDISCO/$FILE
id3v2 -y "$ANNO" $OUTPUT_MP3/$NOMEDISCO/$FILE
id3v2 -A "$NOMEDISCO" $OUTPUT_MP3/$NOMEDISCO/$FILE
id3v2 -t "$CANZONE" $OUTPUT_MP3/$NOMEDISCO/$FILE
id3v2 -g "$GENERE" $OUTPUT_MP3/$NOMEDISCO/$FILE
echo "->Tagging di $CANZONE completato"
done
echo -e "\n Premere un tasto per continuare"
read -r TASTO
main
}
remove_files()
{
clear
echo -e "*** Cancellazione album rippati dalle directory di lavoro *** \n"
if [ `ls -1 $OUTPUT_WAV | wc -l` -gt 0 ]; then
echo -e "I seguenti album possono essere cancellati: \n"
LISTA_ALBUMS=`ls -1 $OUTPUT_WAV`
echo -e "$LISTA_ALBUMS \n"
echo "Quale vuoi cancellare? (Q per tornare al Menu)"
read -r SCELTA
case $SCELTA in
'Q' | 'q') main
;;
esac
if [ ! -d $OUTPUT_WAV/$SCELTA ] ; then
echo "Album non esistente. Premere un tasto per continuare"
read -r TASTO
remove_files
else
NOMEDISCO=$SCELTA
rm -Rf $OUTPUT_WAV/$SCELTA
rm -Rf $OUTPUT_MP3/$SCELTA
echo "Cancellazione completata. Premere un tasto per continuare"
read -r TASTO
main
fi
else
echo "Non ci sono album da cancellare. Premere un tasto per continuare"
read -r TASTO
main
fi
}
ripping()
{
clear
echo "*** Ripping ***"
echo
if [ `ls -1 $OUTPUT_WAV | wc -l` -gt 0 ]; then
echo -e "I seguenti album sono pronti per essere rippati \n"
LISTA_ALBUMS=`ls -1 $OUTPUT_WAV`
echo -e "$LISTA_ALBUMS \n"
echo "Quale vuoi rippare? (Q per tornare al Menu)"
read -r SCELTA
case $SCELTA in
'Q' | 'q') main
;;
esac
if [ ! -d $OUTPUT_WAV/$SCELTA ] ; then
echo "Album non esistente. Premere un tasto per continuare"
read -r TASTO
ripping
else
NOMEDISCO=$SCELTA
convert_wav2mp3
fi
else
echo "Non ci sono album da rippare. Premere un tasto per continuare."
read -r TASTO
main
fi
}
convert_wav2mp3()
{
rm -f $OUTPUT_MP3/$NOMEDISCO/*
echo -e "Specifica il bitrate (kb/s) di compressione MP3: \n"
echo "1) 32"
echo "2) 40"
echo "3) 48"
echo "4) 56"
echo "5) 64"
echo "6) 80"
echo "7) 96"
echo "8) 112"
echo "9) 128"
echo "10) 160"
echo "11) 192"
echo "12) 224"
echo "13) 256"
echo "14) 320"
read -r SCELTA
case $SCELTA in
'1') BITRATE=32
;;
'2') BITRATE=40
;;
'3') BITRATE=48
;;
'4') BITRATE=56
;;
'5') BITRATE=64
;;
'6') BITRATE=80
;;
'7') BITRATE=96
;;
'8') BITRATE=112
;;
'9') BITRATE=128
;;
'10') BITRATE=160
;;
'11') BITRATE=192
;;
'12') BITRATE=224
;;
'13') BITRATE=256
;;
'14') BITRATE=320
;;
esac
for FILE in `ls -1 $OUTPUT_WAV/$NOMEDISCO/`
do
echo "Come vuoi rinominare il file $FILE ? (Senza spazi)"
read -r FILERINOMINATO
lame -b $BITRATE $OUTPUT_WAV/$NOMEDISCO/$FILE $OUTPUT_MP3/$NOMEDISCO/$FILERINOMINATO
done
echo "Conversione completata. I files sono in: $OUTPUT_MP3/$NOMEDISCO/ "
echo "Vuoi taggarli subito? (S/N)"
read -r SCELTA
case $SCELTA in
'S' | 's') tag_thismp3
;;
'N' | 'n') main
;;
*) main
;;
esac
}
start_extract()
{
if [ ! -d $OUTPUT_WAV/$NOMEDISCO ]; then
mkdir $OUTPUT_WAV/$NOMEDISCO
fi
if [ ! -d $OUTPUT_MP3/$NOMEDISCO ]; then
mkdir $OUTPUT_MP3/$NOMEDISCO
fi
cdparanoia -B "$TRACCIAINIZIO-$TRACCIAFINALE" $OUTPUT_WAV/$NOMEDISCO/$NOMEDISCO.wav
echo "Estrazione CD in tracce audio WAV completato. Convertirle in MP3 ora? (S/N)"
read -r SCELTA
case $SCELTA in
'S' | 's') convert_wav2mp3
;;
'N' | 'n') main
;;
*) main
;;
esac
}
extract()
{
echo "Estrazione tracce da CD"
cdparanoia -vsQ
echo "Nome del disco (senza spazi . 0 per tornare al menu principale) : "
read -r NOMEDISCO
case $NOMEDISCO in
'0') main
;;
*) echo "Traccia di inizio?"
read -r TRACCIAINIZIO
echo "Traccia finale?"
read -r TRACCIAFINALE
start_extract
;;
esac
}
main()
{
clear
if [ ! -d $OUTPUT_WAV ] ; then
mkdir -p $OUTPUT_WAV
fi
if [ ! -d $OUTPUT_MP3 ] ; then
mkdir -p $OUTPUT_MP3
fi
echo "+----------------------------------+"
echo "+ Shell Ripper 0.1beta +"
echo "+ by DanBadJar +"
echo "+----------------------------------+"
if [ ! -f $CDPARANOIA_BIN ] ; then
echo "ATTENZIONE: cdparanoia non trovato!"
fi
if [ ! -f $LAME_BIN ] ; then
echo "ATTENZIONE: lame non trovato!"
fi
if [ ! -f $ID3V2_BIN ] ; then
echo "ATTENZIONE: id3v2 non trovato!"
fi
if [ ! -f $CDPARANOIA_BIN ] || [ ! -f $LAME_BIN ] || [ ! -f $ID3V2_BIN ] ; then
exit 1
fi
echo -e "1) Estrai tracce da CD "
echo -e "2) Ripping "
echo -e "3) Cancellazione albums rippati dalle directory di lavoro \n"
echo -e "0) Uscita \n"
read -r SCELTA
case $SCELTA in
'1') extract
;;
'2') ripping
;;
'3') remove_files
;;
'0') exit 0
;;
*) main
;;
esac
}
main
--Danbadjar 19:15, 20 Set 2008 (CEST)