mercoledì, ottobre 17, 2007

Youtube-DL: interfaccia grafica

In questo periodo, ho creato un nuovo programma con zenity. L'ho fatto per una mia esigenza personale: scaricare i video da youtube e convertirli nel formato desiderato, nel mio caso avi e 3gp. Il risultato è stato Youtube-DL che fa uso di youtube-dl (permette di scaricare i video da youtube in formato flv), di zenity (permette di creare l'interfaccia grafica) e di ffmpeg (permette di convertire i file flv nei formati richiesti).
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.

24 commenti:

Anonimo ha detto...

tatticissimo !!
grazie ;)
saluti

ricochet ha detto...

sono di nuovo io... :|
ho provato a scaricare un video da youtube (grillo) , ho seguito i vari passi, ho scelto avi come formato e grillo1 come titolo ma mi trovo solo un "tmp_file.flv" sul desktop e di "grillo1" neanche l'ombra , nè con tracker ne cercandolo da terminale....

Anonimo ha detto...

Funziona alla grande, basta che il nome del file non contenga spazi o simboli strani.
Davvero una cosa fantastica!
A proposito, i file 3gp che crea a me mplayer non legge l'audio e sono identici a quelli che fa il mio cell e pure con quelli ho problemi, ma com'è possibile che si riescano a creare file 3gp così e poi non si riesca a leggerli? cioè se li creo dovrei riuscire anche a leggerli no?

Davide ha detto...

ricochet, io ho appena provato e a me funziona benissimo

ricochet ha detto...

Sì hai ragione funziona... mi sa che cliccavo troppo in fretta sulle finestre di zenity e arrivavo alla fine che non aveva ancora scaricato il video (o comunque trasformato) ;)......pero' l'ambiente grafico mi diceva che era scaricato; come se la shell e zenity non fossero in sincrono...
grazie :)
saluti

Anonimo ha detto...

Come Ricochet viene creato un file tmp_file.flv, il quale scompare al messaggio di conversione nel formato prescelto senza però laciar traccia del file
Grazie Rick

Unknown ha detto...

Come si fa a creare un'icona dal Menu Principale?

P.S.= istruzioni a prova di scemo, please. Sono un principiante assoluto! Grazie

Davide ha detto...

Semplice, utilizza l'icona Menu Principale, vai nel menu che desideri e li fai aggiungi voce. Inserisci il percorso del comando, l'icona se lo desideri e il nome che vuoi inserire nel menu, e il gioco è fatto.

Cerca cmq sul forum di ubuntu-it

Ciao
Davide

Anonimo ha detto...

quello che stavo cercando, grazie

Anonimo ha detto...

molto intiresno, grazie

Anonimo ha detto...

leggere l'intero blog, pretty good

Anonimo ha detto...

jackson area christian singles [url=http://loveepicentre.com/]how does carbon dating work[/url] amarillo texas personals http://loveepicentre.com/ dating abbreviations

Anonimo ha detto...

Perche non:)

Anonimo ha detto...

complicated cyst in the breast [url=http://usadrugstoretoday.com/faq.htm]no prescription pharmacies[/url] breast enhancement without weight gain http://usadrugstoretoday.com/products/study-habits.htm heart healthy diet after a heart attack http://usadrugstoretoday.com/products/vantin.htm
smoke guard fire place [url=http://usadrugstoretoday.com/categories/montage-packs.htm]montage packs[/url] hycotuss dosage [url=http://usadrugstoretoday.com/products/tegretol.htm]the generic name the drug ambien[/url]

Anonimo ha detto...

fashion furry boots in uk http://topcitystyle.com/m-hoodies-size5.html free label designer [url=http://topcitystyle.com/?action=products&product_id=1312]fashion merchandising jobs dallas[/url] prevata shoes
http://topcitystyle.com/grey-color1.html organic shoes [url=http://topcitystyle.com/?action=products&product_id=2293]deja environmental shoes[/url]

Anonimo ha detto...

adult communities and north carolina http://theporncollection.in/incest/mother-sister-incest
[url=http://theporncollection.in/hentai-sex/softcore-hentai-anime]sexy pics of arielle kebbel[/url] hentai sleeping rape [url=http://theporncollection.in/masturbating/caught-my-wife-masturbating-hidden-camera]caught my wife masturbating hidden camera[/url]
adult tshirts http://theporncollection.in/sex-mature
[url=http://theporncollection.in/hentai-porn/orhime-hentai]faces sexy[/url] cherry world dildo [url=http://theporncollection.in/incest/story-incest]story incest[/url]
peace find your path to peace adult http://theporncollection.in/free-hentai/hentai-online-free
[url=http://theporncollection.in/hentai-porn/doujinshi-hentai-games]kyla cole dildo[/url] mp4 blowjob porn [url=http://theporncollection.in/masturbating/solo-porn-men-masturbating]solo porn men masturbating[/url]
famous adult cartoon http://theporncollection.in/hentai-sex/hte-boundry-between-dream-and-reality-hentai
[url=http://theporncollection.in/lesbian-xxx/sexiest-lesbian-foot-worship]explosion xxx[/url] porn of the undead [url=http://theporncollection.in/gay-movie/oslo-gay-sex-beats]oslo gay sex beats[/url]

Federico ha detto...

E' una cavolata che a me però ha fatto perdere un pò di tempo:
io uso Xubuntu per cui Xfce,
ho dovuto sostituire nello script youtube il comando xfce-terminal con
xfce4-terminal . . . ciao!!

Davide ha detto...

Federico, grazie mille per le modifiche. Non pensavo che qualcuno lo utilizzasse ancora.
Son ben contento.

Ciao,
Davide

Davide ha detto...

Federico, grazie mille per le modifiche. Non pensavo che qualcuno lo utilizzasse ancora.
Son ben contento.

Ciao,
Davide

Anonimo ha detto...

fashion dallas http://www.thefashionhouse.us/xl-sport-jackets-size6.html cum on clothes [url=http://www.thefashionhouse.us/suzuki-brand67.html]true clothes[/url] ladies dress shoes
http://www.thefashionhouse.us/?action=products&product_id=2064 calvin klein home [url=http://www.thefashionhouse.us/dark-blue-men-color11.html]graphic designer[/url]

Anonimo ha detto...

american medical assosication [url=http://usadrugstoretoday.com/products/reglan.htm]reglan[/url] medical heating mat http://usadrugstoretoday.com/products/pamelor.htm
journals on drug abuse in 2007 [url=http://usadrugstoretoday.com/categories/herz-kreislauf.htm]herz kreislauf[/url] duke weight loss surgery [url=http://usadrugstoretoday.com/products/methotrexate.htm ]cogenital herpes [/url] does detox tea work for drug test
workplace health and safety jokes [url=http://usadrugstoretoday.com/products/stop-smoking.htm]stop smoking[/url] buying pet medicine online http://usadrugstoretoday.com/products/crestor.htm
search pills [url=http://usadrugstoretoday.com/products/gasex.htm]gasex[/url] harris methodist health systems [url=http://usadrugstoretoday.com/products/tentex-royal.htm ]hypothyroid anxiety message boards [/url] recurrent breast cancer symptons

Anonimo ha detto...

diaper girl movie [url=http://moviestrawberry.com/films/film_the_queen/]the queen[/url] freehold new jersey movie theater http://moviestrawberry.com/films/film_the_pretender/ movie theatre schedules amesbury mass
peter pan movie on dvd [url=http://moviestrawberry.com/films/film_submerged/]submerged[/url] antique pocket watch in movie time machine http://moviestrawberry.com/films/film_the_sting_ii/ inserting flash movie in powerpoint
download the scarlet pimpernel movie online [url=http://moviestrawberry.com/films/film_shotgun_stories/]shotgun stories[/url] discount movie sales
movie movie clips [url=http://moviestrawberry.com/films/film_the_plans_of_man/]the plans of man[/url] the new dragon movie http://moviestrawberry.com/films/film_groove/ sublime directory jennifer love hewett movie
dora movie [url=http://moviestrawberry.com/films/film_donalds_gold_mine/]donalds gold mine[/url] movie theaters in somerset kentucky http://moviestrawberry.com/easy-downloads/letter_C/?page=2 free private movie

Anonimo ha detto...

fatto tutto su ubuntu 11.04 ma non va, cioè, neanche lo trovo, dov'è? e come devo fare a farlo partire?

Davide ha detto...

ciao, purtroppo è da parecchio che non aggiorno lo script...mi sa che ci sono tool più avanzati che permettono di scaricare video da youtube...purtroppo non ricordo il nome :(