ShellRipper by DanBadJar
Da Slacky.eu.
Versione del 20 set 2008 alle 19:15 di Danbadjar (Discussione | contributi) (Nuova pagina: = 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 direc...)
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)