Vi ricordo che i file temporanei (che verranno cancellati alla conclusione dello script) e i file creati nel formato desiderato si troveranno nella home.
Requisiti
I requisiti sono i seguenti pacchetti scaricabili dai repo:
- youtube-dl
- ffmpeg
- zenity
i quali possono essere installati lanciando il comando
sudo apt-get install youtube-dl ffmpeg zenity
Installazione
Anche in questo caso l'installazione si poggia con la creazione di un file o script di bash. In particolare creare un file dal nome youtube con il comando
sudo gedit /usr/bin/youtube
Logicamente se non usate gedit potete usare qualsiasi altro editor di testo (nano,vim,kwrite,kate,mousepad, etc.)
All'interno del file scriveteci dentro quello che segue:
#!/bin/bash
# Funzione che configura il terminale da usare
function config {
cd ~/Desktop
de=`zenity --title="Youtube-DL" --text="Quale DE utilizzate tra questi sottostanti?" --list --radiolist --column="Scegli" --column="Desktop Environment" false "Gnome" false "Kde" false "Xfce"`
if [[ $de = "Gnome" ]]
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Gnome"
terminal="gnome-terminal -x"
elif [[ $de = "Kde" ]];
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Kde"
terminal="konsole -e"
elif [[ $de = "Xfce" ]];
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Xfce"
terminal="xfce-terminal -x"
else
zenity --error --title="Youtube-DL - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
}
# Funzione che permette di convertire i file flv nei formati richiesti
function trasform {
formato=`zenity --width=300 --height=300 --title="Youtube-DL" --list --radiolist --text="In quale formato deve essere trasformato il tuo video?" --column="Scegli" --column="Formati" false "3gp" false "Wmv" false "Mpeg" false "Avi"`
zenity --info ---title="Youtube-DL - Informazioni" --text="Adesso verrà aperto un terminale che serve al programma per trasformare il file nel formato desiderato"
if [[ $formato = "3gp" ]]
then
$terminal ffmpeg -i tmp_file.flv -s 176x144 -r 15.0 -b 80k -vcodec h263 -ar 8000 -ac 1 -acodec amr_nb -y ${video_name}.3gp
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.3gp creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
elif [[ $formato = "Wmv" ]];
then
$terminal ffmpeg -i tmp_file.flv ${video_name}.wmv
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.wmv creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
elif [[ $formato = "Avi" ]];
then
$terminal ffmpeg -i tmp_file.flv ${video_name}.avi
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.avi creato - Rilanciare il software per trasformarlo in un altro formato"
$terminal zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
elif [[ $formato = "Mpeg" ]];
then
ffmpeg -i tmp_file.flv ${video_name}.mpg
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.mpg creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
zenity --error --width=300 --title="Youtube-DL - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
}
# MENU PRINCIPALE e cuore del programma
zenity --info --width=300 --title="Youtube-DL" --text "Programma per scaricare i video da YouTube e trasformarli vari formati"
config
find tmp_file.flv
if [[ $? -eq 0 ]];
then
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text "File già scaricato "
video_name=`zenity --entry --title="Youtube-DL" --text "Inserisci il nome che vuoi dargli (senza estensione)"`
else
video_url=`zenity --entry --title="Youtube-DL" --text "Inserisci l'url del video da YouTube"`
video_name=`zenity --entry --title="Youtube-DL" --text "Inserisci il nome che vuoi dargli (senza estensione)"`
zenity --info ---title="Youtube-DL - Informazioni" --text="Adesso verrà aperto un terminale che serve al programma per trasformare il file nel formato desiderato"
$terminal youtube-dl -o tmp_file.flv $video_url
fi
trasform
rm tmp_file.flv
Salvate il file e chiudetelo. Una volta fatto ciò dategli i diritti di esecuzione lanciando il comando:
sudo chmod a+x /usr/bin/youtube
Ora il programma può essere lanciato dove volete. Se volete potete anche (così ho fatto io) crea una icona con Menu Principale.
Alla prossima,
Davide.
P.S. Fatemi sapere se funziona o meno.
Continua a leggere!