2015-01-13 22 views
5

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:")]; 

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 YTYT.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.

+0

@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

+0

Có, tôi muốn buộc truyền HTTP. – slhck

+0

@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

Trả lời

4

YouTube hiện đang buộc https qua chuyển hướng 301. Đôi khi trước đây không phải như vậy. Chuyển hướng chỉ là cài đặt người dùng được lưu trữ trong cookie.

Bạn có thể thử thay đổi Tác nhân người dùng và/hoặc thử nghiệm trên m.youtube.com nhưng các số đo lưu lượng truy cập có thể không chính xác vì miền và giao thức khác nhau và youtube có thể có các ưu tiên riêng biệt.

Thay đổi tác nhân người dùng đơn giản trong Công cụ dành cho Chrome Dev (biểu tượng điện thoại ở góc trên cùng bên trái).

+0

Nhưng khi tôi truy cập vào 'http: // youtube.com', không đăng nhập, tôi có thể quay video bằng một kết nối HTTP đơn giản. Hay điều đó không bao giờ áp dụng cho API I-frame? – slhck

+0

Bạn đang sử dụng trình duyệt nào? Tôi đã thử Firefox và Chrome và cả hai trong chế độ "riêng tư" chuyển hướng đến https không có vấn đề gì. –

+0

Ah, sau đó họ phải thay đổi điều đó, theo nghĩa đen, trong vài ngày qua và tôi đã không nhận được 301 cho đến bây giờ. Bạn nói đúng, nó làm điều đó. – slhck

Các vấn đề liên quan