Download helper e youtube

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3288
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Download helper e youtube

Messaggio da joe »

Sono abituato a guardare offline i video su youtube scaricandoli con l'aiuto di download-helper che è un'estensione per firefox e altri browser tr cui seamonkey che sto usando al momento.
DHelper consente diverse azioni quando si è collegati con la pagina di youtube contenete il video interessato. Si può semplicemente passare il link del video al downloadmanager del browser oppure è anche possibile copiare il link e darlo in pasto ad una applicazione per il download esterna.

Visto che ho una linea piuttosto malmessa, ho bisogno della funzione di resume e alcune volte il manager incluso in seamonkey (così come quello di firefox e anche altir browsers) ha miseramente fallito dopo un'improvvisa disconnessione. Invece chi non ha mai fallito è il vecchio wget.
In pratica mi collego a youtube, avvio il video che voglio scaricare, downloadhelper lo rileva quindi seleziono dal suo menù la voce "copy url".
Poi apro un terminale e lancio wget incollandovi l'url copiato.

Di solito funziona. Adesso invece non riesco più ad ottenere un link valido, infatti quando lo do in pasto a wget, quest'ultimo fallisce. Invece DH continua a funzionare nela funzione di download diretto utilizzando il manager incluso in seamonkey.

Vorrei chiedervi se poteste fare una prova anche voi copiando l'url con DH e dandolo in pasto a wget.
Se anche a voi non funziona potrebbe essere un bug. E nel caso potremmo segnalarlo al team di sviluppo.

http://www.downloadhelper.net/

Spero nella vostra collaborazione.
Saluti.






Distribuzione: Slax-6.1.2
Browser: SeaMonkey-2.0.6
Download Helper: 4.8

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3288
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Download helper e youtube

Messaggio da joe »

Nessuno usa download helper? Strano...
Anche se non riscontrate il "bug" che ho notato io, sarebbe gradita comunque una risposta, la prova è veramente semplice da fare.
Inoltre penso che non c'entri nulla se avete una versione differente del sistema operativo e probabilmente neanche del browser. L'importatne è l'utilizzo di un browser compatibile con download helper, che sappia io va bene firefox e seamonkey, ma forse anche altri, controllate sul link che ho postato sopra.
Il problema è riscontrabile da youtube, su altri siti funziona. Quindi i vincoli sono solo due:

- download helper 4.8
- youtube

Insomma, un test banale e rapidissimo, non serve che scarichiate tutto il video che volete testare, basta che wget parta e inizi a scaricare qualcosa che sia un video (quindi di una certa dimensione e che abbia un mime type coerente, cioè er esempio che non si riveli una pagina html o giù di l' ovviamente).
Quindi rinnovo l'invito.
Grazie in anticipo.

PS.
Non ho mai utilizzato strumenti per comunqucare bugs ai teams di sviluppo, per questo prima di segnalarlo volevo da coi una conferma.

Avatar utente
joseph
Linux 2.x
Linux 2.x
Messaggi: 205
Iscritto il: lun 14 giu 2010, 23:50
Slackware: 13.37
Kernel: 3.2.9
Desktop: xfce
Località: Salerno

Re: Download helper e youtube

Messaggio da joseph »

No mi spiace mai usato DH

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2073
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 5.4.0
Desktop: lxde
Distribuzione: ubuntu 20.04
Località: Darmstadt - Germania

Re: Download helper e youtube

Messaggio da albatros »

Confermo che non funziona (versione wget 1.12, firefox, d.h. 4.8, firefox 3.6.8).

Non escluderei però, vista la complessità dell'url copiata, che sia youtube che ha modificato qualcosa nel sistema di recupero dei file multimediali e che wget non sia più in grado di gestire i relativi indirizzi (semplice ipotesi non suffragata da alcuna argomentazione tecnica).

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3288
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Download helper e youtube

Messaggio da joe »

Io ho scopiazzato in rete un piccolo script bash che cattura il link "diretto" al video. Dando poi quest'ultimo in pasto a wget il download avviene regolarmente. Unico neo è che a quanto pare pesca sempre la versione HD (lo deduco dai circa 100MB di video). Quindi vediamo alcune ipotesi:

1- download helper ha un bug nella funzione "copy url" (più che bug non è al passo con alcni recenti cambiamenti in youtube)
Questo spiegherebbe il fatto che passando il link a wget questo non funzioni. Però la causa coma giustamente osservi potrebbe risiedere in qualche limitazione in wget.. E allora...

2- dwhelper fungerebbe anche ma il limite sta in wget.
La prova che ho fatto con lo script di cui sopra elimina parzialmente questo caso (cheè poi la tua ipotesi) ma non del tutto in quanto non ho provato a carpire link a versioni più degradate del video.

Per risolvere l'inghippo basta provare con un altro downloader invece di wget. Vediamo cosa succede dando il llink copiato con download helper a "downthemall" (altro addon per firefox e disponibile anche per il mio seamonkey). Provo:

Ok, copio la versione deradata del video (http://www.youtube.com/watch?v=VESPkA8fX-I).
Poi in Down them all seleziono "add url" e il link che avevo copiato appare magicamente pronto per essere aggiunto, clicco star e via, circa 1.6 MB di video vengono scaricati normalmente.
Questa prova confermerebbe la tua ipotesi. Anche perchè, stesso link dato a wget:

Codice: Seleziona tutto

# wget 'http://v2.lscache5.c.youtube.com/videoplayback?ip=0.0.0.0&params=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor%2Coc%3AU0dXR1JRUF9FSkNNN19KS1RF&fexp=908200%2C904516&algorithm=throttle-factor&itag=5&ipbits=0&burst=40&sver=3&expire=1282262400&key=yt1&signature=22EFB90BCDD6AAD5EEDCAA18A06D21D2DC015ECD.D5EC644D73637DD8BAA5A8930A46D718511EFD89&factor=1.25&id=54448f900f1f5fe2'
--2010-08-19 19:11:34--  http://v2.lscache5.c.youtube.com/videoplayback?ip=0.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor%2Coc%3AU0dXR1JRUF9FSkNNN19KS1RF&fexp=908200%2C904516&algorithm=throttle-factor&itag=5&ipbits=0&burst=40&sver=3&expire=1282262400&key=yt1&signature=22EFB90BCDD6AAD5EEDCAA18A06D21D2DC015ECD.D5EC644D73637DD8BAA5A8930A46D718511EFD89&factor=1.25&id=54448f900f1f5fe2
Risoluzione di v2.lscache5.c.youtube.com... 74.125.8.211
Connessione a v2.lscache5.c.youtube.com|74.125.8.211|:80... connesso.
HTTP richiesta inviata, in attesa di risposta... 403 Forbidden
2010-08-19 19:11:38 ERRORE 403: Forbidden.
Ok... Faccio una prova anche con il download manager di seamonkey sempre copiando l'url e incollandolo a mano nel manager.
Sembra funzionare, Ho copiato il link direttamente nella barra degli indirizzi e zac è satata fuori la conferma di download del fiel attraverso il down manager di default in seamonkey, poi video saricato.

Però mi sa che potrebbe esserci di mezzo qualcosa come lo user agent impiegato... ovvero ti colleghi a youtube con seamonkey? bene, il download del video è permesso solo da qualcosa che mostri come UserAgent quello di Seamonkey. In effetti sia downthemall che il down manager di default immagino riportino lo UA di seamonkey cioè lo stesso con cui ci si era collegati a youtube.

Questo spiegherebbe anche come mai wget funziona con lo scriptino:
infatti lo scriptino prima di tutto scarica la pagina contenete il video, poi ne estrae il link quindi lo scarica. Lo UA è identico quindi sia al primo collegamento che al secondo per il download del video. Spero di essermi spiegato.
Se questo fosse il problema allora basterebbe passare a wget lo stesso UA che riporta SeaMonkey... come fare a vederlo?
Forse (mi rispondo da solo) sfruttando l'addon UserAgent-switcher che uso già da tempo... Vediamo un po'.

Non funge, ho provato:

1- assicuratomi che lo user agent fosse quello di default
2- ricollegato allo stesso video di prima, copiato l'url con DowHelp e passato a wget con in più l'opzione --user-agent=

Codice: Seleziona tutto

# wget --user-agent="$(echo 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.11) Gecko/20100701 SeaMonkey/2.0.6')" 'http://v2.lscache5.c.youtube.com/videoplayback?ip=95.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor%2Coc%3AU0dXR1JRUF9FSkNNN19KS1RF&fexp=908200%2C904516&algorithm=throttle-factor&itag=5&ipbits=0&burst=40&sver=3&expire=1282262400&key=yt1&signature=22EFB90BCDD6AAD5EEDCAA18A06D21D2DC015ECD.D5EC644D73637DD8BAA5A8930A46D718511EFD89&factor=1.25&id=54448f900f1f5fe2'
--2010-08-19 19:34:56--  http://v2.lscache5.c.youtube.com/videoplayback?ip=95.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor%2Coc%3AU0dXR1JRUF9FSkNNN19KS1RF&fexp=908200%2C904516&algorithm=throttle-factor&itag=5&ipbits=0&burst=40&sver=3&expire=1282262400&key=yt1&signature=22EFB90BCDD6AAD5EEDCAA18A06D21D2DC015ECD.D5EC644D73637DD8BAA5A8930A46D718511EFD89&factor=1.25&id=54448f900f1f5fe2
Risoluzione di v2.lscache5.c.youtube.com... 74.125.8.211
Connessione a v2.lscache5.c.youtube.com|74.125.8.211|:80... connesso.
HTTP richiesta inviata, in attesa di risposta... 403 Forbidden
2010-08-19 19:34:58 ERRORE 403: Forbidden.
Ok, quindi il problema è un po' più esteso, ma comunque download helper non c'entra di per se. Ceto chela funzione copy per quanto riguarda youtube perde un po' di senso, almeno per me e per l'uso che ne faccio: mi piace lanciare wget dentro una sessione screen e buttare tutto in backgrownd lasciare scaricare un po' di roba e andarmene dopo aver spento il server grafico X. È un ottimo modo per scaricare il lavoro di parecchia ram e CPU, meno consumi, un po' meno rumore ecc ecc.
Ma il motivo principale era la possibilità di resume che in wget funziona molto bene (è affidabile) mentre per quanto riguarda altri tool un po' meno (funziona bene anche in downthem all per cui alla fine potrei usare quello, anche se ciuccia parecchia cpu).

Visto che non ho una risposta completa alla faccenda. potrei intanto postarvi lo script:

Codice: Seleziona tutto

#!/bin/bash

SED=/usr/bin/sed
TR=/usr/bin/tr
ID=$1
TMP=$(tempfile)
WGET=/usr/bin/wget

$WGET -O ${TMP} "http://www.youtube.com/watch?v=${ID}"
[[ $? > 0 ]] && exit 2
VIDEOFILE=$($SED -n "/fmt_url_map/{s/[\'\"\|]/\n/g;p}" ${TMP} | \
  $SED -n '/^fmt_url_map/,/videoplayback/p'  | \
  $SED -e :a -e '$q;N;5,$D;ba' | $TR -d '\n' | \
  $SED -e 's/\(.*\),\(.\)\{1,3\}/\1/')

echo $VIDEOFILE
cat <<EOF

Il link da scaricare è il seguente:
${VIDEOFILE}

EOF
rm $TMP
Se da questo riesco ad ottenere anche i link alle versioni più degradate dei video, sono a cavallo. Peccato comunque perchè dwhelper+wget era parecchio comodo. Pazienza.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3288
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Download youtube video con wget

Messaggio da joe »

Alla fine sono riuscito ad ottenere un buon risultato (almeno coi test che ho fatto fin ad ora) col seguente script:

Codice: Seleziona tutto

#!/bin/sh

usage_message()
{
 cat <<EOF
Usage: youtbedl.sh [OPTION] <youtube_video_id> <output-video-file>

  -h, --help       Show this help and exit

<youtube_video_id> is string associated to desired file,
es. AeJsH5WL9IE is youtube_video_id for following link:

http://www.youtube.com/watch?v=AeJsH5WL9IE

If you specify <output-video-file> as second argument,
the video will be saved to this one, otherwise default
output file will be:
/tmp/${yotube_video_id}-youtube.flv

EOF
}

for i in "" "-h" "--help"
do
  [ "$1" = "$i" ] && usage_message && exit 0
done
[ ! "$2" = "" ] && OUT="$2" || OUT="$1"-youtube.flv
wget -O /tmp/watch-youtube.html www.youtube.com/watch?v=${1} || exit 1
sed -n "/fmt_url_map/{s/^.*\(fmt_url_map.*$\)/\1/;p}" /tmp/watch-youtube.html \
    |sed -n 's/^.*\(http.*itag=5.*\)||.*$/\1/p' \
    |sed -n 1p \
    |sed 's|\\||g' \
    > /tmp/videolink-youtube || exit 2
wget -O ${OUT} $(cat /tmp/videolink-youtube) || exit 3
Ok, come potete vedere è ben lungi dal'essere uno script serio, però sembra fungere a dovere.
Ho postato dopo qualche test senza pensare a miglioramenti ulteriori, comunque facili da aggiungere.
Probabilmente chi mastica bash noterà che non vi è una geestione elegante delle opzioni/argomenti passati allo script.
Inoltre sarebbe un buon passo avanti la possibilità di scelta del formato del video.
Come dicevo non è difficile aggiungerlo, attualmente dal sorgente della pagina di youtube contenete il video desiderato si può ricavare il link al formato che si preferisce, il parametro discriminante è:
"&itag=$FORMATO".

Consideriamo il link d'esempio http://www.youtube.com/watch?v=p_YB9SC7AV4
Iniziamo con scaricare la pagina html del link con wget e andiamo a vedere il contenuto.

Bisogna scandagliarlo per esempio con sed ed isolare ciò che segue la dicitura "fmt_url_map": di seguito a questa, nella stessa riga dovremmo trovare i link che ci servono. Va detto che vi sono diverse ricorrenze di questo pattern, nel primo però sono conetnuti gli indirizzi in forma più complessa (penso codificata) mentre negli altri successivi pare li otteniamo leggermente più semplici... nel link d'esempio ho trovato 3 rcorrenze del pattern in questione. Comunque potrebbe non essere una cosa molto importante ai nostri fini.
Andiamo a vedere (copio ed incollo la riga in questione) il pezzo seguente la dicitura di cui parlavo:

Codice: Seleziona tutto


fmt_url_map=34%7Chttp%3A%2F%2Fv14.lscache6.c.youtube.com%2Fvideoplayback%3Fip%3D95.0.0.0%26sp
arams%3Did%252Cexpire%252Cip%252Cipbits%252Citag%252Calgorithm%252Cburst%252Cfactor%26fexp%3D900073%
26algorithm%3Dthrottle-factor%26itag%3D34%26ipbits%3D8%26burst%3D40%26sver%3D3%26expire%3D1282777200
%26key%3Dyt1%26signature%3D1B1587248E1CD638BB161C012B6F3267831A9A71.2B1BDED509916CBA37D4622EBD747C52
59B1C7FD%26factor%3D1.25%26id%3Da7f601f520bb015e%2C5%7Chttp%3A%2F%2Fv11.lscache1.c.youtube.com%2Fvid
eoplayback%3Fip%3D95.0.0.0%26sparams%3Did%252Cexpire%252Cip%252Cipbits%252Citag%252Calgorithm%252Cbu
rst%252Cfactor%26fexp%3D900073%26algorithm%3Dthrottle-factor%26itag%3D5%26ipbits%3D8%26burst%3D40%26
sver%3D3%26expire%3D1282777200%26key%3Dyt1%26signature%3D9AD8EA6F2792939D99FDBD00CB1C8241C1527393.AE
7434B0F9E08CCFCFB31DCA48A7BDEDE23ED27A%26factor%3D1.25%26id%3Da7f601f520bb015e

"fmt_url_map": "34|http:\/\/v14.lscache6.c.youtube.com\/videoplayback?ip=95.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor&fexp=900073&algorithm=throttle-factor&itag=34&ipbits=8&burst=40&sver=3&expire=1282777200&key=yt1&signature=1B1587248E1CD638BB161C012B6F3267831A9A71.2B1BDED509916CBA37D4622EBD747C5259B1C7FD&factor=1.25&id=a7f601f520bb015e,5|http:\/\/v11.lscache1.c.youtube.com\/videoplayback?ip=95.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor&fexp=900073&algorithm=throttle-factor&itag=5&ipbits=8&burst=40&sver=3&expire=1282777200&key=yt1&signature=9AD8EA6F2792939D99FDBD00CB1C8241C1527393.AE7434B0F9E08CCFCFB31DCA48A7BDEDE23ED27A&factor=1.25&id=a7f601f520bb015e"

"fmt_url_map": "34|http:\/\/v14.lscache6.c.youtube.com\/videoplayback?ip=95.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor&fexp=900073&algorithm=throttle-factor&itag=34&ipbits=8&burst=40&sver=3&expire=1282777200&key=yt1&signature=1B1587248E1CD638BB161C012B6F3267831A9A71.2B1BDED509916CBA37D4622EBD747C5259B1C7FD&factor=1.25&id=a7f601f520bb015e,5|http:\/\/v11.lscache1.c.youtube.com\/videoplayback?ip=95.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor&fexp=900073&algorithm=throttle-factor&itag=5&ipbits=8&burst=40&sver=3&expire=1282777200&key=yt1&signature=9AD8EA6F2792939D99FDBD00CB1C8241C1527393.AE7434B0F9E08CCFCFB31DCA48A7BDEDE23ED27A&factor=1.25&id=a7f601f520bb015e"
Ecco gli ultimi due blocchi sembra uguali come dicevo, il primo ènvece è un po' piu complesso.
Ora, prendiamone una a caso tra le ultime due, ma andrebbe ebene anche la prima, è solo per capirci.
Cerchiamo il pattern i link che ovviamente inizieranno per http e saranno caratterizzati da itag=$FORMATO differenti.
Nel caso in esempio ne abbiamo 2, uno per la versione più degradata (240p) e l'altro per la versione migliore (360p). rispettivamente i codici corrispondenti sono "5" e "34".
Alla fine della storia i due link che possiamo utilizzare sono:

http:\/\/v14.lscache6.c.youtube.com\/videoplayback?ip=95.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor&fexp=900073&algorithm=throttle-factor&itag=34&ipbits=8&burst=40&sver=3&expire=1282777200&key=yt1&signature=1B1587248E1CD638BB161C012B6F3267831A9A71.2B1BDED509916CBA37D4622EBD747C5259B1C7FD&factor=1.25&id=a7f601f520bb015e,5

http:\/\/v11.lscache1.c.youtube.com\/videoplayback?ip=95.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor&fexp=900073&algorithm=throttle-factor&itag=5&ipbits=8&burst=40&sver=3&expire=1282777200&key=yt1&signature=9AD8EA6F2792939D99FDBD00CB1C8241C1527393.AE7434B0F9E08CCFCFB31DCA48A7BDEDE23ED27A&factor=1.25&id=a7f601f520bb015e

sul primo non sono sicuro degli ultimi due caratteri (quel ",5" non mi convince), bisognerebbe testarlo, sul secondo invece sono sicuro in quanto l'ho testato con successo con tanto di resume supportato. Ovviamente non funziona se non si scarica prima l'html della pagina in quanto signature e altri parametri sono variabili, dipendono anche dal user-agent e dall'ip.
Ecco spero di aver fatto il punto. Adesso sarà più facile creare qualcosa di efficente con wget+bash per scaricare da youtube.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3288
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Download helper e youtube

Messaggio da joe »

Confermo l'inesateza del primo link, il ",5" va tolto.
Per implementare il formato desiderato va rivisto:
1- l'acquisizione degli argomenti passati.
2- la stringa sed va rivista in modo da poter intercettare i link differenti dal formato "itag=5".

Per il momento ho risolto in corner, pare che funzioni, ma richiede l'intervento dell'utente per correggere il link intercettato. Lo posto, tanto ormai ho detto fin troppe ciance.

Codice: Seleziona tutto

#!/bin/sh

usage_message()
{
 cat <<EOF
Usage: youtbedl.sh [OPTION] <youtube_video_id> <output-video-file>

  -h, --help       Show this help and exit

<youtube_video_id> is string associated to desired file,
es. AeJsH5WL9IE is youtube_video_id for following link:

http://www.youtube.com/watch?v=AeJsH5WL9IE

If you specify <output-video-file> as second argument,
the video will be saved to this one, otherwise default
output file will be:
/tmp/${yotube_video_id}-youtube.flv

EOF
}
FMT=34
for i in "" "-h" "--help"
do
  [ "$1" = "$i" ] && usage_message && exit 0
done
[ ! "$2" = "" ] && OUT="$2" || OUT="$1"-youtube.flv
wget -O /tmp/watch-youtube.html http://www.youtube.com/watch?v=${1} || exit 1
sed -n "/fmt_url_map/{s/^.*\(fmt_url_map.*$\)/\1/;p}" /tmp/watch-youtube.html \
    |sed -n "s/^.*\(http.*itag=$FMT.*\)||.*$/\1/p" \
    |sed -n 1p \
    |sed 's|\\||g' \
    > /tmp/videolink-youtube || exit 2
# soluzione sporca
#
vi /tmp/videolink-youtube
wget -O ${OUT} $(cat /tmp/videolink-youtube) || exit 3
Ultima modifica di joe il ven 27 ago 2010, 21:17, modificato 1 volta in totale.

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2073
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 5.4.0
Desktop: lxde
Distribuzione: ubuntu 20.04
Località: Darmstadt - Germania

Re: Download helper e youtube

Messaggio da albatros »

Grazie per il resoconto dettagliato e complimenti per il tuo impegno nel risolvere il problema. :D

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3288
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Download helper e youtube

Messaggio da joe »

Bè alla fine mi serviva, per cui non c'è di che.
Magari se aggiorno un po lo script ne posto i (spero) miglioramenti. Noto adesso che non ho usato correttamente il tag code... provvedo a coreggere il mio precedente post.

Ti saluto.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3288
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Download helper e youtube

Messaggio da joe »

Gente, mi sa che qualche cosa sia nuovamente cambiato in youtube.
Fino l'altro giorno il mio script funzionava senza problemi.
Oggi invece... non riesco a scaricare un video, ho provato anche con altri video ma niente da fare.
Per esempio l'altro giorno avevo lanciato il seguente comando (testualmente identico):

Codice: Seleziona tutto

/usr/mybin/youtubedl.sh DZvd_OZ_Lvs shineon-ericbibb.flv
Ok, praticamente per riepilogo la sigla "DZvd_OZ" è l'id che youtube assegna al video e fa parte del link alla pagina contenente il video stesso che nel caso specifico sarà:
www.youtube.com/watch?v=DZvd_OZ_Lvs

1) Il mio script prende questa pagina html e la scarica con wget.
2) Nel file html ottenuto è contenuto il link al video. E il mio script effettua il parse del sorgente pagina per intercettarlo. Anzi per intercettarLI, in quanto la pagina contiene più links ciascuno relativo ad una specifica versione dello stesso video differente dalle altre per qualità (itag=34, itag=18, itag=5, itag=35 ecc.).
3) A questo punto i vari links intercettati vengono mostrati all'utente che dovrà scegliere quale versione del video scaricare, se una versione di più alta qualità oppure una più scarsa.
4) Infine il llink scelto viene scaricatocon wget.

Il fallimento avviene al punto (4) in quanto il link da scaricare non è più valido. Ho controllato anche con wget --spider -S e risulta "rotto".
Presumo che abbiano cambiato qualcosa nel meccanismo con cui youtube distribuisce i contenuti. Non sarebbe la prima volta.
Soluzioni:
1) Penso che il punto di partenza sia google, limitando la ricerca ai risultati più recenti.
2) Magari una più attenta analisi del file html contenete i links
3) Nel frattempo se siete in grado oavete qualche idea sull'argomento benvenga
4) Provo anche downloadhelper con firefox e per vedere se si ha lo stesso problema anche così.

Grazie per l'eventuale collaborazione.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3288
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Download helper e youtube

Messaggio da joe »

Signori, problema quasi risolto.
Ho provato a introdurre 2 elementi che pensavo potessero determinare il fallimento del download:
1- User Agent di wget (avendo letto che alcuni siti permettono solo alcuni browser ho provato a usare

Codice: Seleziona tutto

wget --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13"
in modo che wget scimmiotti firefox.
2- Cookie: usando le opzioni --save-cookies=youtube.cookies per salvare il sorgente della pagina di youtube contente il link al video e --load-coockies=youtube.cookies in seconda battuta, per utilizzare i cookies di prima sperando che la sessione sembri la stessa.

Purtroppo applicando entrambe le misure non sembra esserci alcun effetto. E al momento di scaricare il link purtroppo il download fallisce miseramente come prima. Allora il problema saràun altro....
Bene ho dato un'occhiata un po' più da vicino al link presente nel sorgente pagina. Restiamo all'esempio del post precedente.

http://www.youtube.com/watch?v=DZvd_OZ_Lvs

Ok usando sempre il mio script, senza introdurre le due misure di cui sopra, ma si può fare anche a mano, vengono intercettati 3 links... Poniamo di scegliere il primo.
Ha la seguente faccia:

Codice: Seleziona tutto

http://v8.lscache5.c.youtube.com/videoplayback?sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactoru0026fexp=900065u0026algorithm=throttle-factoru0026itag=34u0026ipbits=8u0026burst=40u0026sver=3u0026signature=4F8E610B47BF548197ECD3C3F2D025C1820B03B7.7F6EADE9542F197294B60DB75BAA013319ED7334u0026expire=1301090400u0026key=yt1u0026ip=217.0.0.0u0026factor=1.25u0026id=0d9bddfce67f2efb
Confrontiamolo con un altro link ottenuto con download-helper:

Codice: Seleziona tutto

http://v23.lscache5.c.youtube.com/videoplayback?sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Cratebypass%2Coc%3AU0hPRlBTVF9FSkNOOV9ITVhJ&fexp=907606%2C911700&itag=22&ipbits=0&signature=A776E4641821A6C1AF2806D3A5438CA0532366C5.224758F86E020E702853F710DEB44A4F13077646&sver=3&ratebypass=yes&expire=1301086800&key=yt1&ip=0.0.0.0&id=c60367d307c289c2
Sono due files differenti a dire il vero però una differenza importante ai nostri fini sta nella codifica.
Notate il carattere "&" che serve per delimitare varie variabili:
nel secondo link abbiamo ad esempio:
"itag=22&ipbits=0"
mentre nel primo link abbiamo nella posizione analoga:
itag=34u0026ipbits=8
... curioso non trovate?

Cioè al posto della "&" vi è il suo codice unicode (almeno così penso di aver capito) che corrisponde a "u0026", come spiegato anche al seguente link http://www.fileformat.info/info/unicode ... /index.htm.

Cosa ho fatto: ho provato a modificare il link ottenuto sostituendo al codice unicode "u0026" il carattere "&". Il link così ottenuto è il seguente:

Codice: Seleziona tutto

http://v8.lscache5.c.youtube.com/videoplayback?sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor&fexp=900065&algorithm=throttle-factor&itag=34&ipbits=8&burst=40&sver=3&signature=4F8E610B47BF548197ECD3C3F2D025C1820B03B7.7F6EADE9542F197294B60DB75BAA013319ED7334&expire=1301090400&key=yt1&ip=217.0.0.0&factor=1.25&id=0d9bddfce67f2efb
Ok... Ecco, a quanto pare il link sopra indicato funziona.
L'altro giorno quando mi funzionava usavo come locale "it_IT" quindi non un locale unicode. Per cui ipotizzo, forse a torto che youtube abbia cambiato qualcosa nelle sue pagine.
Unica differenza è che adesso sto lavorando sotto fluxbox. Mentre l'altro giorno quando funzionava (e parlo di 4 giorni fà, non di più) ero in enlightenment... Non so cosa possa c'entrare, ma magari qualche variabile d'ambiente potrebbe anche aver fatto la differenza, non lo escludo. Anzi appena riesco faccio una prova.

In sostanza alla fine della storia, basta fare qualche modifica ulteriore per esempio con sed per ottenere un link valido, ma la struttura dello script fortunatamente resta ancora valida.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3288
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Download helper e youtube

Messaggio da joe »

Riavviato il DE che usavo l'altro giorno "enlightenment", lo script youtubedl.sh continua a non funzionare, per cui penso di poter confermare che youtube abbia cambiato qualcosa lato server.

Come dicevo non è un grosso problema:
una volta scelto il link, prima di darlo in pasto a wget è sufficente rimaneggiarlo con sed, qualcosa del tipo:

Codice: Seleziona tutto

LINK=$(echo "$LINK"|sed 's/u0026/\&/g')
Ho testato lo script dopo aver apportato questa semplice modifica e funziona regolarmente.
Ecco un esempio dell'output per scaricare un vecchio documento in cui parlava Rubbia.
Ho copiaincollato dal terminale per cui abbiate pazienza con i fine riga tagliati a caso.

Codice: Seleziona tutto

$ /usr/mybin/youtubedl.sh 51Mz4KO7Yv4 nucleare-rubbia.flv
- Downloading page source containing video links... Done.
1 http://v6.lscache7.c.youtube.com/videoplayback?sparams=id%2Cexpire%2Cip%2Cipbi
ts%2Citag%2Calgorithm%2Cburst%2Cfactoru0026fexp=904522u0026algorithm=throttle-fa
ctoru0026itag=34u0026ipbits=8u0026burst=40u0026sver=3u0026signature=D0A487B5DD09
712268922F5726AEC76F29D5A79D.0C273220F23E2D4C2A25DD17E884093021489E4Du0026expire
=1301097600u0026key=yt1u0026ip=217.0.0.0u0026factor=1.25u0026id=e75333e0a3bb62fe


2 http://v6.lscache2.c.youtube.com/videoplayback?sparams=id%2Cexpire%2Cip%2Cipbi
ts%2Citag%2Calgorithm%2Cburst%2Cfactoru0026fexp=904522u0026algorithm=throttle-fa
ctoru0026itag=18u0026ipbits=8u0026burst=40u0026sver=3u0026signature=6ACB13F3FC9E
A0C2C82C5BD897BACB2FD04EA52A.D306C2A6127B8D7E207D9B48E9FA72759DB4CA87u0026expire
=1301097600u0026key=yt1u0026ip=217.0.0.0u0026factor=1.25u0026id=e75333e0a3bb62fe


3 http://v8.lscache1.c.youtube.com/videoplayback?sparams=id%2Cexpire%2Cip%2Cipbi
ts%2Citag%2Calgorithm%2Cburst%2Cfactoru0026fexp=904522u0026algorithm=throttle-fa
ctoru0026itag=5u0026ipbits=8u0026burst=40u0026sver=3u0026signature=68A445A472A
E81D238E02107C4C37815D33DF3FD.7A3B83A6BC02640C84FD247C1CAF4E6F07AF041Cu0026expire
=1301097600u0026key=yt1u0026ip=217.0.0.0u0026factor=1.25u0026id=e75333e0a3bb62fe

Quale link scegli?
- Downloading video from link number 1.
  Total bytes amount: 14339967
13.7MB 0:14:42 [15.9kB/s] [=================================>] 100%

joe@darkstar:~/tmp/youtube$
Saluti e alla prossima, buon weekend a tutti! :)

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2903
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 14.2
Kernel: 4.4.19
Desktop: KDE4
Località: Bulagna
Contatta:

Re: Download helper e youtube

Messaggio da 414N »

Se l'obiettivo è solo quello di scaricare con wget (o altri download managers come kget) i video di youtube, puoi farlo tramite l'estensione Flashgot (tra l'altro, made in Italy).
La funzione primaria di questa estensione è interfacciare Firefox con vari download managers, ma da un certo tot di tempo hanno aggiunto anche la possibilità di scaricare i video in streaming col download manager indicato nelle opzioni.
Ad estensione installata, quando cominci a vedere un video in streaming comparirà un'iconcina lampeggiante nella barra di stato. Se ci clicchi sopra, ti verrà chiesto dove salvare il video e poi partirà il download.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3288
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Download helper e youtube

Messaggio da joe »

ma da un certo tot di tempo hanno aggiunto anche la possibilità di scaricare i video in streaming col download manager indicato nelle opzioni.
Ah, non sapevo di questa nuova funzionalità.
Sai qual è il problema però?
1- bisogna utilizzare firefox (non è un problema nel mio caso in quanto lo uso abitualmente, però è sempre un limite)
2- il mio script funziona anche senza X, basta conoscere l'indirizzo del video di youtube...
3- con flashgot + wget come gestire il resume (bisognerà agire sul comando wget -c ecc ma potrebbe non essere così banale)

Ad ogni modo, grazie per l'informazione potrebbe essere molto utile.

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2903
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 14.2
Kernel: 4.4.19
Desktop: KDE4
Località: Bulagna
Contatta:

Re: Download helper e youtube

Messaggio da 414N »

joe ha scritto:
ma da un certo tot di tempo hanno aggiunto anche la possibilità di scaricare i video in streaming col download manager indicato nelle opzioni.
Ah, non sapevo di questa nuova funzionalità.
Sai qual è il problema però?
1- bisogna utilizzare firefox (non è un problema nel mio caso in quanto lo uso abitualmente, però è sempre un limite)
2- il mio script funziona anche senza X, basta conoscere l'indirizzo del video di youtube...
3- con flashgot + wget come gestire il resume (bisognerà agire sul comando wget -c ecc ma potrebbe non essere così banale)

Ad ogni modo, grazie per l'informazione potrebbe essere molto utile.
Beh, riguardo al fatto di poter scaricare video anche al di fuori di X, c'è anche youtube-dl, uno script in Python. Non so se supporti il resume, perché non l'ho mai provato. Ad ogni modo devo dire che, per quanto abbia visto finora, il resume di video streaming non mi ha mai funzionato, ed ho sempre dovuto ricominciare da capo i download di video lasciati a metà.

Rispondi