Advertisement
rodolforizzo76

zentube.sh

Feb 20th, 2018
351
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 6.19 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. #occorre aggiungere l'icona dell'applicazione zentube-icon.png in /usr/share/pixmaps/
  4. #zentube-icon.png è scaricabile dal sito: https://rodolforizzo.it/wp-content/uploads/2018/02/zentube-icon.png
  5. #istruzioni per installazione dello script: https://rodolforizzo.it/zentube-script-download-youtube/
  6.  
  7. #script per scaricare, convertire in mp3 e taggare i video di youtube - con GUI (Zenity)
  8. #Dipendenze:
  9. #Zenity (per l'interfaccia grafica)
  10. #youtube-dl (per scaricare i video da youtube)
  11. #id3v2 (per taggare il file mp3)
  12. #ffmpeg o in alternativa avconv e ffprobe oppure avprobe (per la conversione in mp3)
  13. #mplayer (per ascoltare il brano)
  14.  
  15. CARTELLA_DESTINAZIONE=~/Downloads/ # impostare il percorso che si preferisce
  16.  
  17. # verifico se esiste $CARTELLA_DESTINAZIONE e se non esiste la creo
  18. if [ ! -d $CARTELLA_DESTINAZIONE ]; then
  19.     zenity --question --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "La cartella di destinazione $CARTELLA_DESTINAZIONE non esiste. Crearla ora?"
  20.     if [ $? == '0' ]; then
  21.         mkdir $CARTELLA_DESTINAZIONE
  22.     else
  23.         zenity --info --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "La cartella di destinazione non verrà creata. Esco dallo script."
  24.         exit 0
  25.     fi
  26. else
  27.     #la cartella di destinazione $CARTELLA_DESTINAZIONE esiste.
  28.     #non faccio nulla
  29.     echo "Ok... La cartella di destinazione esiste."
  30. fi
  31.  
  32.  
  33. #ricavo il nome da assegnare al file
  34. 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 "")
  35.  
  36. #se non viene inserito nulla o se si preme il pulsante "Annulla"
  37. if [ -z "$filename" ]; then
  38.     zenity --info --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "Un nome per il file è necessario. \nL'operazione verrà annullata."
  39.     exit 0
  40. fi
  41.  
  42. #sostituisco gli spazi vuoti con dei trattini bassi nel nome del file
  43. nuovo_nome=`echo $filename | sed "s/ /_/g"`    2> /dev/null
  44. mv -v "$filename" "$nuovo_nome"  2> /dev/null
  45.  
  46. #richiedo l'URL del video su youtube
  47. 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 "")
  48.  
  49. #se non viene inserito nulla o se si preme il pulsante "Annulla"
  50. if [ -z "$url" ]; then
  51.     zenity --info --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "L'indirizzo (url) del video su youtube è necessario. \nL'operazione verrà annullata."
  52.     exit 0
  53. fi
  54.  
  55. #download del video in zenity con barra di avanzamento
  56. youtube-dl --extract-audio --audio-quality 0 --newline --audio-format mp3 -o "$nuovo_nome.%(ext)s" \
  57.            $url |
  58.  grep --line-buffered -oP '^\[download\].*?\K([0-9.]+\%|#\d+ of \d)' |
  59.     zenity --progress \
  60.   --window-icon="/usr/share/pixmaps/zentube-icon.png" \
  61.   --title="Download" \
  62.   --text="Provo a scaricare il video da youtube e convertirlo in mp3. \nDownloading..." \
  63.   --percentage=0
  64.  
  65.  
  66. #se il download è andato a buon fine...
  67. #allora ci sarà il file con il nome assegnato alla variabile $nuovo_nome
  68. if [ -e $nuovo_nome.mp3 ] #se esiste il file mp3
  69. then
  70.     zenity --info --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "Il Video è stato scaricato e convertito con successo nel formato mp3!"
  71. else #se il file non esiste
  72.     zenity --warning --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "É avvenuto un errore! \nQualcosa è andato storto... Esco."
  73.     exit 0
  74. fi
  75.  
  76.  
  77. #chiedo se si desidera taggare il file appena scaricato
  78. 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?"
  79. if [ $? == '0' ]; then
  80.     #se la risposta è si
  81.     #richiedo il nome dell'artista
  82.     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 "")
  83.     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 "")
  84.     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 "")
  85.     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 "")
  86.  
  87.     #aggiorno i tag con il comando di id3
  88.     #e sposto il file mp3 nella sua cartella di destinazione
  89.     id3v2 -t "$titolo_canzone" -a "$nome_artista" -A "$nome_album" -g "$genere_musicale" $nuovo_nome.mp3
  90.     mv $nuovo_nome.mp3 $CARTELLA_DESTINAZIONE
  91.     #informo l'utente sull'esito delle operazioni
  92.     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)"
  93.     #chiedo se si desidera ascoltare il brano
  94.     zenity --question --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "Vuoi ascoltare il brano appena scaricato?"
  95.     if [ $? == '0' ]; then
  96.         audacious $CARTELLA_DESTINAZIONE/$nuovo_nome.mp3
  97.     else
  98.         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)."
  99.         exit 0
  100.     fi
  101.    
  102. else
  103.     #sposto il file nella cartella di destinazione
  104.     #e chiedo se si desidera ascoltare il brano
  105.     mv $nuovo_nome.mp3 $CARTELLA_DESTINAZIONE
  106.     zenity --question --window-icon "/usr/share/pixmaps/zentube-icon.png" --text "Vuoi ascoltare il brano appena scaricato?"
  107.     if [ $? == '0' ]; then
  108.         audacious $CARTELLA_DESTINAZIONE/$nuovo_nome.mp3
  109.     else
  110.         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)."
  111.         exit 0
  112.     fi
  113. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement