2015-01-13 4 views
5

動画を再生するときにネットワークトラフィックの測定を行う予定です。これはもちろん、ビデオがHTTPSではなくHTTP経由で送信される場合にのみ機能します。常にHTTPを使用するようにYouTube JavaScript APIをハックするにはどうすればよいですか?

しかし、YouTube iframe APIは、http://からAPIを読み込み、http://というYouTube URLを指定しても、常にHTTPSダウンロードに切り替わります。 example hereを使用して、プレーヤーをテストすることができます。ご覧のとおり、常に無効にしたいのはhttps://videoplayback...に切り替わります。

HTTPSの代わりにHTTPを使用するにはどうすればよいですか?これはinverse question of thisのようなものです。私はそれが現在のJSにいくつかの機能をハッキングすることになるだろうと思う。私のような呼び出し見ることができるウィジェットAPIで

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

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://")) 
} 

を私はYTYT.Playerオブジェクトのコンテキストでこれを上書きするには見当もつかない場合、または私もそうすることができます。

サーバー側でこれが不可能かどうか疑問に思う人には:はHTTPだけで動作することに注意してください。 YouTubeにログインせずにhttp://youtube.comに行くと、ビデオの再生はHTTPSでなくHTTPSで行われます。

+0

@sIhhckどのAPIが呼び出されても、httpからデフォルトで取得する必要があります。それはあなたの質問ですか? – anish

+0

はい、HTTP送信を強制します。 – slhck

+0

@robertこの質問は、a)ビデオをダウンロードすること、またはb)MP4とMKVを関連付けることとは関係ありません。 YouTubeはMKVをダウンロード可能なオプションとして提供していませんが、それはポイントの横にあります。この質問はYouTubeプレーヤーを埋め込むことに関するもので、HTTPSの代わりにHTTP経由でストリーミングしたいと思います。 – slhck

答えて

4

YouTubeは現在、301リダイレクト経由でhttpsを強制しています。いつか前にそれは事実ではなかった。リダイレクトは、Cookieに格納されたユーザー設定だけでした。

ユーザーエージェントを変更したり、m.youtube.comでテストしたりできますが、ドメインとプロトコルが異なるため、トラフィックの測定値が正確でない可能性があります。また、YouTubeでは別の優先順位を設定できます。

ユーザーエージェントの変更はChrome Dev Tools(左上の電話アイコン)で簡単です。

+0

しかし、ログインしていない「http:// youtube.com」に行くと、シンプルなHTTP接続でビデオを見ることができます。それともI-frame APIには当てはまりませんか? – slhck

+0

あなたはどのブラウザを使用していますか?私はFirefoxとChromeを試してみましたが、どちらも「プライバシー」モードでもhttpsにリダイレクトされました。 –

+0

ああ、彼らはそれを文字通り最後の数日で変更したに違いないと思っています。今まで私は301を手に入れませんでした。そうです、そうです。 – slhck

関連する問題