Script per scaricare musica da Youtube (con GUI)

Grazie a youtube-dl è diventato semplice scaricare la musica da youtube e fino ad oggi ho sempre usato un comodo script bash da usare nel terminale, che funziona benissimo, ma ho voluto provare a dotarlo di una semplice GUI, (Graphical User Interface) un interfaccia grafica, e per raggiungere lo scopo mi sono avvalso di Zenity.

Come funziona?

Come già detto, lo script che ho chiamato zenTube.sh si appoggia all’'ormai famoso e ottimo software youtube-dl, che svolge il grosso del lavoro ed è reperibile nei repository della maggior parte delle distribuzioni linux. Su ubuntu e derivate è facilmente installabile con il comando:

sudo apt install youtube-dl

É anche possibile scaricare e installare la versione più recente direttamente sito ufficile del progetto.

Uno degli aspetti interessanti di questo script (che ho chiamato zentube, dall’‘unione delle parole Zenity e Youtube), è che visualizza anche una barra di avanzamento durante il download. Inoltre i file scaricati vengono anche taggati in automatico da youtube-dl tramite l’'opzione –add-metadata. Le dipendenze necessarie per utilizzare lo script sono:

  • Zenity (per l’'interfaccia grafica)
  • youtube-dl (per scaricare i video da youtube)
  • ffmpeg o in alternativa avconv e ffprobe oppure avprobe (per la conversione in mp3)

in ogni caso lo script è ampiamente commentato in tutte le sue parti e si può facilmente modificare per adattarlo alle proprie esigenze. La parte più complessa è senza dubbio quella relativa alla barra di avanzamento, per la quale è stato necessario utilizzare una espressione regolare per ottenere l’'output di cui ha bisogno zenity per produrla. E per questa parte di codice bisogna ringraziare Terdon, un moderatore del sito askubuntu.com.

la parte saliente è questa:

#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 \
--title="Download" \
--text="Provo a scaricare il video da youtube e convertirlo in mp3. Downloading..." \
--percentage=0[/shell]

Nel post su askubuntu.com si possono ottenere maggiori informazioni in merito al funzionamento della regex e ad altri accorgimenti (per esempio aggiungere più url dalla riga di comando).

Installazione

Ovviamente occorre avere installato nel proprio sistema i pacchetti zenity, youtube-dl e ffmpeg, che possono essere facilmente installati con il comando:

sudo apt install zenity youtube-dl ffmpeg

Per prima cosa occorre creare un lanciatore nel menu di avvio delle applicazioni, prima però scarichiamo l’‘icona da usare nel nostro menu,

wget https://rodolforizzo.it/download/zenTube/zentube-icon.png

e posizioniamola all’‘interno della cartella /usr/share/pixmaps per fare questo apriamo il terminale nella cartella dove avete salvato l’'icona e digitiamo il comando:

sudo mv zentube-icon.png /usr/share/pixmaps

fatto questo, apriamo l’'editor del menu di kde con il comando:

kmenuedit

e premiamo invio, si aprirà la finestra di kmenuedit. Posizioniamoci sulla voce  “Internet” clicchiamo in alto sul pulsante “Nuova voce” e nella finestra che appare inseriamo il nome della nuova voce, per esempio “zenTube” e premiamo su “ok”.

Ora in “Descrizione” mettiamo “Download musica da youtube”, in commento possiamo lasciare vuoto e in “comando” inseriamo:

local/bin/zenTube.sh -- %u

Adesso clicchiamo sul piccolo riquadro a destra per assegnare alla nuova voce di menu la nostra icona appena scaricata, in “sorgente icone” selezioniamo “Altre icone” e poi clicchiamo sulla nostra icona chiamata zntube-icon.png.

quindi premiamo sul pulsante “Salva” in alto a sinistra e chiudiamo la finestra.

Adesso non ci resta che scaricare lo script e salvarlo all’'interno della home e poi dargli i permessi di esecuzione con il comando:

chmod 755 zenTube.sh

infine spostarlo nella cartella /usr/local/bin con il comando:

sudo mv zenTube.sh /usr/local/bin

Ora puoi testare il corretto funzionamento lanciando il programma che dovrebbe comparire nel menu di avvio delle applicazioni sotto la voce Internet. Se riscontri problemi o se hai qualche domanda puoi scrivere nei commenti. Alla prossima!

Tags