zdl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [zdl-devel] rifatta l'estensione per youtube


From: claudio
Subject: Re: [zdl-devel] rifatta l'estensione per youtube
Date: Tue, 29 Apr 2014 01:28:41 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0

Cavolo hai ragione. Alcuni non li scarica, è molto strano perchè quando l'ho scoperto mi sembrava scaricasse tutto. Oltretutto quello che tu dici che non ti scarica a me funziona (yt_downloader.sh A0owrRMFU0o). Boh, sicuramente è come dici tu, youtube randomizza il codice generato così che a volte funziona e a volte no. Bisognerebbe affinare la regex in modo che riesca sempre a funzionare.


Il 28/04/2014 21:03, Gianluca Zoni ha scritto:
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


--
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]