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: Sat, 26 Apr 2014 19:28:39 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0

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 gli 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



reply via email to

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