Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #occorre aggiungere l'icona dell'applicazione zentube-icon.png in /usr/share/pixmaps/
- #zentube-icon.png è scaricabile dal sito: https://rodolforizzo.it/wp-content/uploads/2018/02/zentube-icon.png
- #istruzioni per installazione dello script: https://rodolforizzo.it/zentube-script-download-youtube/
- #script per scaricare, convertire in mp3 e taggare i video di youtube - con GUI (Zenity)
- #Dipendenze:
- #Zenity (per l'interfaccia grafica)
- #youtube-dl (per scaricare i video da youtube)
- #id3v2 (per taggare il file mp3)
- #ffmpeg o in alternativa avconv e ffprobe oppure avprobe (per la conversione in mp3)
- #mplayer (per ascoltare il brano)
- CARTELLA_DESTINAZIONE=~/Downloads/ # impostare il percorso che si preferisce
- # verifico se esiste $CARTELLA_DESTINAZIONE e se non esiste la creo
- if [ ! -d $CARTELLA_DESTINAZIONE ]; then
- zenity --question --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "La cartella di destinazione $CARTELLA_DESTINAZIONE non esiste. Crearla ora?"
- if [ $? == '0' ]; then
- mkdir $CARTELLA_DESTINAZIONE
- else
- zenity --info --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "La cartella di destinazione non verrà creata. Esco dallo script."
- exit 0
- fi
- else
- #la cartella di destinazione $CARTELLA_DESTINAZIONE esiste.
- #non faccio nulla
- echo "Ok... La cartella di destinazione esiste."
- fi
- #ricavo il nome da assegnare al file
- filename=$(zenity --entry --window-icon "/usr/share/pixmaps/zentube-icon.png" --title "Nome del file" --text "digita il nome (senza estensione) da assegnare al nuovo file " --entry-text "")
- #se non viene inserito nulla o se si preme il pulsante "Annulla"
- if [ -z "$filename" ]; then
- zenity --info --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "Un nome per il file è necessario. \nL'operazione verrà annullata."
- exit 0
- fi
- #sostituisco gli spazi vuoti con dei trattini bassi nel nome del file
- nuovo_nome=`echo $filename | sed "s/ /_/g"` 2> /dev/null
- mv -v "$filename" "$nuovo_nome" 2> /dev/null
- #richiedo l'URL del video su youtube
- url=$(zenity --entry --window-icon "/usr/share/pixmaps/zentube-icon.png" --title "URL del video su youtube" --text "Copia e incolla l'url del video di youtube " --entry-text "")
- #se non viene inserito nulla o se si preme il pulsante "Annulla"
- if [ -z "$url" ]; then
- zenity --info --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "L'indirizzo (url) del video su youtube è necessario. \nL'operazione verrà annullata."
- exit 0
- fi
- #download del video in zenity con barra di avanzamento
- youtube-dl --extract-audio --audio-quality 0 --newline --audio-format mp3 -o "$nuovo_nome.%(ext)s" \
- $url |
- grep --line-buffered -oP '^\[download\].*?\K([0-9.]+\%|#\d+ of \d)' |
- zenity --progress \
- --window-icon="/usr/share/pixmaps/zentube-icon.png" \
- --title="Download" \
- --text="Provo a scaricare il video da youtube e convertirlo in mp3. \nDownloading..." \
- --percentage=0
- #se il download è andato a buon fine...
- #allora ci sarà il file con il nome assegnato alla variabile $nuovo_nome
- if [ -e $nuovo_nome.mp3 ] #se esiste il file mp3
- then
- zenity --info --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "Il Video è stato scaricato e convertito con successo nel formato mp3!"
- else #se il file non esiste
- zenity --warning --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "É avvenuto un errore! \nQualcosa è andato storto... Esco."
- exit 0
- fi
- #chiedo se si desidera taggare il file appena scaricato
- zenity --question --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "Taggare il file mp3 appena scaricato è cosa buona e giusta! \nMa nessuno ti obbliga a farlo. Vuoi taggare il tuo mp3?"
- if [ $? == '0' ]; then
- #se la risposta è si
- #richiedo il nome dell'artista
- nome_artista=$(zenity --entry --window-icon "/usr/share/pixmaps/zentube-icon.png" --title "Nome artista" --text "Digita il nome dell'artista o del gruppo musicale \n(se non lo sai puoi lasciare vuoto)" --entry-text "")
- titolo_canzone=$(zenity --entry --window-icon "/usr/share/pixmaps/zentube-icon.png" --title "Titolo" --text "Digita il Titolo della canzone \n(se non lo sai puoi lasciare vuoto)" --entry-text "")
- nome_album=$(zenity --entry --window-icon "/usr/share/pixmaps/zentube-icon.png" --title "Album" --text "Digita il nome dell'album \n(se non lo sai puoi lasciare vuoto)" --entry-text "")
- genere_musicale=$(zenity --entry --window-icon "/usr/share/pixmaps/zentube-icon.png" --title "Genere" --text "Digita il nome del genere musicale \n(se non lo sai puoi lasciare vuoto)" --entry-text "")
- #aggiorno i tag con il comando di id3
- #e sposto il file mp3 nella sua cartella di destinazione
- id3v2 -t "$titolo_canzone" -a "$nome_artista" -A "$nome_album" -g "$genere_musicale" $nuovo_nome.mp3
- mv $nuovo_nome.mp3 $CARTELLA_DESTINAZIONE
- #informo l'utente sull'esito delle operazioni
- zenity --info --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "Il file mp3 e' stato taggato! Complimenti. \nIl file e' stato anche spostato nella cartella di destinazione ($CARTELLA_DESTINAZIONE)"
- #chiedo se si desidera ascoltare il brano
- zenity --question --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "Vuoi ascoltare il brano appena scaricato?"
- if [ $? == '0' ]; then
- audacious $CARTELLA_DESTINAZIONE/$nuovo_nome.mp3
- else
- zenity --info --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "Ok! Abbiamo finito. \nIl tuo mp3 lo trovi nella cartella di destinazione ($CARTELLA_DESTINAZIONE)."
- exit 0
- fi
- else
- #sposto il file nella cartella di destinazione
- #e chiedo se si desidera ascoltare il brano
- mv $nuovo_nome.mp3 $CARTELLA_DESTINAZIONE
- zenity --question --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "Vuoi ascoltare il brano appena scaricato?"
- if [ $? == '0' ]; then
- audacious $CARTELLA_DESTINAZIONE/$nuovo_nome.mp3
- else
- zenity --info --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "Ok! Abbiamo finito. \nIl tuo mp3 lo trovi nella cartella di destinazione ($CARTELLA_DESTINAZIONE)."
- exit 0
- fi
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement