Ciao ragazzi, è il mio primo messaggio e premetto che javascript non è esattamente il mio forte.
Ho un piccolo problema con un'applicazione per i Samsung smart tv che aveva scaricato dal sito per i Samsung developers tempo fa e che temo l'autore abbia abbandonato.

In pratica è una semplice app di Youtube che chiama il get_video_info per ottenere i link da riprodurre e aveva smesso di funzionare qualche giorno fa quando Google ha introdotto il parametro 'signature' nei link dei video. Inutile dire che Samsung non ha ancora rilasciato aggiornamenti e chissa se lo farà quindi ho risolto da solo aggiungendo al codice js originale:
codice:
url = params['url_encoded_fmt_stream_map'].replace("url=",""); 
url = parser(url, '&url=', ',itag'); 
url = url.replace("&sig", "&signature");
I video vengono riprodotti nuovamente adesso ma ciò mi ha causato un problema che non riesco a risolvere. In pratica io avevo eliminato dal codice originale ogni riferimento all' itag/fmt 37 (1080p) per far si che anche i video full HD venissero sempre riprodotti in 720p (itag/fmt=22), dal momento che nella mia zona non è possibile avere una connessione adeguatamente veloce per il full HD.

Ma ora, dopo aver fatto quella modifica per il parametro signature, è come se la parte di codice dove c'è "if (videoinfo[0] == '22')" venisse completamente bypassata e ogni video full HD viene sempre riprodotto alla massima risoluzione 1080p. Avete suggerimenti per come si possa reimpostare una sorta di priorità degli fmt nel parsing del file get_video_info. In pratica a me interessano soltanto gli itag 22 e 18.

Ho postato qui il codice intero per chi volesse prenderne visione: http://pastebin.com/VvcwEwQV
Spero di essere stato chiaro nell'esporre il problema e vi ringrazio anticipatamente per qualsiasi suggerimento possiate avere.