strano: il codice che hai postato mi scarica l'esempio nella tua email ma non
gli altri video...(non riesco a trovare un altro video scaricabile)
per esempio, questo non me lo scarica:
http://www.youtube.com/watch?v=A0owrRMFU0o
sembra che neppure zdl ci riesca...
ah! ora zdl me lo sta scaricando dopo qualche tentativo a vuoto (ma anche la tua versione
precedente, quella in "frozen", dopo mille mila tentativi, grazie a cui
estraeva url sempre diversi, prima o poi, qualche volta, ce la faceva)... invece questo
nuovo script sembra non riuscirci.. ma riproverò ancora
i dati nel sorgente delle pagine di youtube sono sempre diversi e in ordine
"sparso" !
boh!! O__o
mi arrendo, almeno per oggi
ciao!
Il 26-04-14, 19:28, claudio <address@hidden> ha scritto:
E' vero, credo sia cambiato il codice di youtube e le regex non
vanno più bene. Hai fatto bene a cambiarlo appena ho un'attimo gliM!�1
dò un'occhio.
Tempo fà ho trovato su Stackoverflow un pezzo di codice fantastico
per scaricare i video di Youtube. Me n'ero dimenticato e non te ne
ho parlato. Dagli un'occhiata:
#!/bin/bash
decode() {
to_decode='s:%([0-9A-Fa-f][0-9A-Fa-f]):\\x\1:g'
printf "%b" `echo $1 | sed 's:&:\n:g' | grep "^$2" | cut -f2
-d'=' | sed -r $to_decode`
}
data=`wget
http://www.youtube.com/get_video_info?video_id=$1\&hl=pt_BR -q -O-`
url_encoded_fmt_stream_map=` decode $data
'url_encoded_fmt_stream_map' | cut -f1 -d','`
signature=` decode $url_encoded_fmt_stream_map 'sig'`
url=`decode $url_encoded_fmt_stream_map 'url'`
test $2 && name=$2 || name=`decode $data 'title' | sed 's:+: :g;s:/:-:g'`
test "$name" = "-" && name=/dev/stdout || name="$name.mp4"
wget "${url}&signature=${signature}" -O "$name"
Bisogna passargli l'ID del video (yt_downloader.sh kJfeLkw7-ck).
E' compatto e funziona alla grande.
Il 23/04/2014 19:20, Gianluca Zoni ha scritto:
da qualche mese l'estensione youtube.sh mi dava grossi problemi nell'estrarre i dati corretti per l'url del file. Ho
congelato "youtube.sh" nella directory "extensions/frozen" e rifatto da zero "yt.sh".
Quest'ultima versione è più rozza e semplice della prima: non estrae i dati eliminando quelli non necessari e i
duplicati, piuttosto individua il segmento di caratteri che forma l'url del file in formato mp4 (decodificando l'url
con la funzione interna "urldecode" di zdl), utilizzando tutto ciò che trova nella sequenza. Per ora sembra
funzionare bene.
Probabilmente, youtube.sh era troppo "fine" per non esserlo abbastanza:
estraeva i dati, ma non era in grado di distinguerli correttamente da quelli di altri
formati... ed è possibile che sia cambiato qualcosa nel codice delle pagine di youtube
--
address@hidden