mercoledì 6 maggio 2009

Canonical, perchè? DTube v0.3

Il motivo per cui Canonical cambia i nomi dei pacchetti nei repository alla cazzo mi è proprio misterioso? Già, mi devono proprio spiegare per quale motivo nel giro di sei mesi il libavcodec51 è diventato libavcodec52, costringendo così chiunque a farsi in quattro se si voglion configurare anche solo due cosette...

Comunque tutto a posto, oggi ho lavorato un po' su DTube, ho riordinato alcune cose:
+ Conversione in ogg (audio)
+ Risolti i download in eccesso (404 - Not Found)
+ Introdotto l'help
+ Download del solo flv
+ Conversione in wav
+ Rivisti codec da utilizzare e dipendeze (tolto VLC)
+ Conversione in avi (video)
+ Conversione in mp4 (video)
+ Introdotto riconoscimento errori di input
+ Eliminato output di wget
Alcune note:
- Gli ogg audio escono enormi
- Non c'è ancora alcuna ottimizzazione
- Non essendoci alcun tipo di debug è difficile comprendere i problemi

Da qui riprendo a scrivere oggi, Giovedì 7. Dicevo, la cosa più importante è aver risolto il problema delle dipendenze e dei codec, a tal proposito metto a disposizione i deb per semplificare l'installazione sia per Jaunty che per Intrepid, se riesco anche per Hardy (perchè mi aspetto roba come libavcodec50). Di seguito vi lascio lo script, ricordandovi che se volete il deb dovete chiedermelo via mail:
#!/bin/bash
# DTube 0.3
echo "Sto raccogliendo le informazioni necessarie..."
wget -q $3 -O .youtube-spl.htm 1> /dev/null
nome=$4
temp=".tmp.flv"
url_base="http://youtube.com/get_video.php?"
DOWNLOAD () {
if [[ -d .dtube ]]
then
echo " "
else
mkdir .dtube
fi
mv .youtube-spl.htm .dtube
cd .dtube
video=$(cat .youtube-spl.htm | grep -i fullscreenurl | cut -d "/" -f2 | cut -d "'" -f1 | cut -d " " -f1)
end=${url_base}${video}
echo "Download del video in corso..."
wget -q ${end} -O ${temp}
}

RMTEMP () {
cd ..
rm -rf .dtube
}

case $1 in
-a | --audio )
DOWNLOAD
case $2 in
mp3 )
ffmpeg -i ${temp} ../${nome}.mp3
;;
ogg )
ffmpeg -i ${temp} -vn ../${nome}.ogg
;;
wav )
ffmpeg -i ${temp} ../${nome}.wav
;;
* )
echo "Errore! Devi indicarmi anche il formato!"
exit
;;
esac
RMTEMP
;;
-v | --video )
DOWNLOAD
case $2 in
ogg )
ffmpeg -i ${temp} ../${nome}.ogg -acodec libvorbis
;;
mpg )
ffmpeg -i ${temp} ../${nome}.mpg
;;
-d | --download-only )
mv ${temp} ../${nome}.flv
;;
mp4 )
ffmpeg -i ${temp} ../${nome}.mp4
;;
avi )
ffmpeg -i ${temp} ../${nome}.avi
;;
* )
echo "Errore! Devi indicarmi anche il formato!"
exit
;;
esac
RMTEMP
;;
-h | --help )
cat /usr/share/doc/dtube/help
;;
* )
echo "Errore, non so su cosa lavorare!"
exit
;;
esac
Come vedete rimane sempre una cosa molto semplice, per alcuni versi molto simile a script già esistenti, che appoggia il suo funzionamento solamente su ffmpeg. L'help non è disponibile se non si installa da deb, comunque ve lo lascio di seguito:
Uso: dtube [opzione] [formato] [indirizzo del video] [nome del file]

-a, --audio Viene importato il solo audio
mp3 Il file finale sarà in formato mp3
ogg Il file finale sarà in formato ogg
wav Il file finale sarà in formato wav
-v, --video Viene importato l'intero video
ogg Il video sarà in formato ogg
mpg Il video sarà in formato mpg
mp4 Il video sarà in formato mp4
avi Il video sarà in formato avi
-d, --download Il video viene scaricato, ma non convertito
-h, --help Viene stampato questo help

Per segnalare errori, richiedere features o collaborare contattare
Simone Cavalcanti all'indirizzo spillo.gle@gmail.com
Comunque oggi vorrei apportare alcune modifiche alla struttura del lavoro e rendere il tutto un po' più standard, vedo cosa riesco a fare, vorrei infatti anche inserire i log e togliere l'output anche di ffmpeg. Ciau e buona giornata

4 commenti:

Lario3 ha detto...

Scrivi sempre cose super interessanti e pratiche... :-D
Grazie per il commento, CIAO!!!

Alex ha detto...

Ottimo! Dopo lo provo.
Ma ti viene difficile fare un add-on per firefox?

spillo ha detto...

@ Lario: grazie mille :)

@ Alex: provalo pure e fammi sapere. Se hai problemi con la conversione posta pure qui perchè anche io ne ho avuti (il deb comunque li risolve in automatico) quindi ti saprei indirizzare ;)

L'addon per firefox non credo di saperlo fare, ma soprattutto non voglio farlo: questo script infatti è pensato per non dover disturbare il browser o software grafici esterni, vuole essere leggero e poco invasivo (infatti ho evitato di andare molto oltre la home) e si prefigge di esser pratico: gli dici il formato ed il link e lui deve fare da solo. Con le prossimi versioni non sarà neppure necessario inserire il nome del video finale, in questo caso prenderebbe il nome del video che va a scaricare :)

Alex ha detto...

Ti ho mandato una mail, appena puoi rispondimi^^