2015-01-13 7 views
5

Sto pianificando di effettuare misurazioni sul traffico di rete durante la riproduzione di video. Questo ovviamente funzionerà solo quando il video viene trasmesso su HTTP anziché su HTTPS.Come posso hackerare l'API JavaScript di YouTube per utilizzare sempre HTTP?

L'API iframe di YouTube tuttavia passa sempre ai download HTTPS, nonostante io carichi l'API da http:// e specificando un URL di YouTube con http://. È possibile utilizzare example here per testare il lettore. Come puoi vedere, passa sempre a https://videoplayback..., che è ciò che voglio disabilitare.

Come impone l'utilizzo di HTTP anziché HTTPS? Questa è una specie di inverse question of this. Immagino che si arriverebbe a hackerare alcune funzioni nell'attuale JS.

Nel API Widget posso vedere chiamate come:

b = 0 == c.indexOf("https:") ? [c] : b.d ? [c.replace("http:", "https:")] : b.k ? [c] : [c, c.replace("http:", "https:")]; 

e

if (this.d = !!("https:" == document.location.protocol || a && 0 == a.src.indexOf("https:"))) { 
    a = [this.j, window.YTConfig || {}, this.defaults]; 
    for (var b = 0; b < a.length; b++) a[b].host && (a[b].host = a[b].host.replace("http://", "https://")) 
} 

ma non ho idea di dove poter ignorare questo nel contesto delle YT e YT.Player oggetti, o se Posso anche farlo.

A coloro che si domandano se questo potrebbe essere impossibile sul lato server: Si noti che YouTube fa funziona solo con HTTP. Se non hai effettuato l'accesso a YouTube e vai a http://youtube.com, le tue riproduzioni video saranno in HTTP, non in HTTPS.

+0

@sIck volete solo http non importa quale API viene chiamata dovrebbe provenire da http di default? è che la tua domanda è? – anish

+0

Sì, voglio forzare la trasmissione HTTP. – slhck

+0

@robert Questa domanda non ha nulla a che fare con a) scaricare video o b) MP4 contro MKV. YouTube non offre nemmeno MKV come opzione scaricabile ... ma questo non è il punto: la domanda riguarda l'integrazione di un player di YouTube e mi piacerebbe che lo streaming su HTTP anziché su HTTPS. – slhck

risposta

4

YouTube sta ora forzando https tramite reindirizzamento 301. Qualche tempo fa non era il caso. Il reindirizzamento era solo un'impostazione utente memorizzata nel cookie.

Puoi provare a cambiare il tuo User Agent e/o test su m.youtube.com ma le misurazioni del traffico potrebbero non essere accurate poiché è diverso dominio e protocollo e YouTube può avere priorità separate.

La modifica di User Agent è semplice in Chrome Dev Tools (icona del telefono nell'angolo in alto a sinistra).

+0

Ma quando vado a 'http: // youtube.com', non connesso, posso fare video con una semplice connessione HTTP. O non si applica mai all'I-frame API? – slhck

+0

Che browser stai usando? Ho provato Firefox e Chrome ed entrambi, anche in modalità "privacy", reindirizzano a https, non importa quale. –

+0

Ah, quindi devono averlo cambiato, letteralmente, negli ultimi giorni e non ho ottenuto quel 301 fino ad ora. Hai ragione, lo fa. – slhck