Planuję robić pomiary ruchu w sieci podczas odtwarzania filmów. Będzie to oczywiście działać tylko wtedy, gdy wideo jest przesyłane przez HTTP zamiast HTTPS.Jak włamać się do interfejsu API JavaScript JavaScript, aby zawsze używać protokołu HTTP?
Interfejs API iframe YouTube zawsze przełącza się jednak na pobieranie HTTPS, mimo że ładuję interfejs API z http://
i podając adres URL serwisu YouTube z adresem http://
. Możesz użyć urządzenia example here, aby przetestować odtwarzacz. Jak widać, zawsze przełącza się na https://videoplayback...
, którą chcę wyłączyć.
Jak wymusić użycie protokołu HTTP zamiast HTTPS? Jest to rodzaj inverse question of this. Sądzę, że sprowadziłoby się do zhakowania niektórych funkcji w bieżący JS.
w API Widget widzę połączeń typu:
b = 0 == c.indexOf("https:") ? [c] : b.d ? [c.replace("http:", "https:")] : b.k ? [c] : [c, c.replace("http:", "https:")];
i
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://"))
}
ale nie mam pojęcia, gdzie to zmienić w kontekście YT
i YT.Player
obiektów, lub jeśli Mogę to zrobić.
Dla tych, którzy zastanawiają się, czy to może nie być możliwe po stronie serwera: Pamiętaj, że YouTube działa działa tylko z HTTP. Jeśli nie jesteś zalogowany w serwisie YouTube i nie przejdziesz na stronę http://youtube.com
, odtworzenia wideo będą odbywać się w protokole HTTP, a nie HTTPS.
@ Czy chcesz tylko http bez względu na to, które API jest wywoływane, domyślnie powinien pochodzić z http? czy to twoje pytanie? – anish
Tak, chcę wymusić transmisję HTTP. – slhck
@robert To pytanie nie ma nic wspólnego z a) pobieraniem wideo lub b) MP4 vs. MKV. YouTube nawet nie oferuje MKV jako opcji do pobrania ... ale to nie ma znaczenia: to pytanie dotyczy osadzania odtwarzacza YouTube i chciałbym, aby przesyłać strumieniowo przez HTTP zamiast HTTPS. – slhck