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¶ms=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.