Tôi đang lên kế hoạch thực hiện các phép đo lưu lượng truy cập mạng khi phát video. Điều này tất nhiên sẽ chỉ hoạt động khi video được truyền qua HTTP thay vì HTTPS. Tuy nhiên, tôi vẫn tải API từ http://
và chỉ định URL YouTube với http://
quá. Bạn có thể sử dụng example here để kiểm tra trình phát. Như bạn có thể thấy nó luôn chuyển sang https://videoplayback...
, đó là những gì tôi muốn vô hiệu hóa.Tôi làm cách nào để hack API JavaScript của YouTube để luôn sử dụng HTTP?
Làm cách nào để bắt buộc sử dụng HTTP thay vì HTTPS? Đây là loại inverse question of this. Tôi đoán nó sẽ đi xuống để hack một số chức năng vào JS hiện tại.
Trong API Widget tôi có thể thấy các cuộc gọi như:
b = 0 == c.indexOf("https:") ? [c] : b.d ? [c.replace("http:", "https:")] : b.k ? [c] : [c, c.replace("http:", "https:")];
và
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://"))
}
nhưng tôi không có đầu mối nơi để ghi đè này trong bối cảnh các YT
và YT.Player
đối tượng, hoặc nếu Tôi thậm chí có thể làm như vậy.
Đối với những người tự hỏi liệu điều này có thể là không thể ở phía máy chủ hay không: Lưu ý rằng YouTube không chỉ hoạt động với HTTP. Nếu bạn chưa đăng nhập vào YouTube và truy cập http://youtube.com
, các lần phát lại video của bạn sẽ ở dạng HTTP chứ không phải HTTPS.
@sIhck bạn chỉ muốn http cho dù API nào được gọi là nó phải đến từ http theo mặc định? là câu hỏi của bạn là? – anish
Có, tôi muốn buộc truyền HTTP. – slhck
@robert Câu hỏi này không liên quan gì đến a) tải xuống video hoặc b) MP4 so với MKV. YouTube thậm chí không cung cấp MKV dưới dạng tùy chọn có thể tải xuống… nhưng điều đó không đúng: Câu hỏi này là về việc nhúng trình phát YouTube và tôi muốn nó phát trực tuyến qua HTTP thay vì HTTPS. – slhck