#39: Dùng Cookie hay Local Storage?

Ngon, vậy tìm kiếm file m3u8 là tải được bằng ffmpeg luôn đúng không?

Nope, không dễ chơi như vậy
Giờ lưu ý kỹ bên tab Network, bạn sẽ thấy cụ thể nó theo 1 vật dụng từ bỏ lặp lại:– hls.key– touch.php– (file .ts)

Vậy cụ thể là tất cả nào đấy tối tăm xẩy ra rồi, hãy cùng xem hàm như thế nào sẽ Điện thoại tư vấn những truy tìm vấn này làm sao (coi Initiator)

Với hls.key với file .ts thì ko gồm gì thú vị, vị nó được hotline từ bỏ thư viện videojs, vốn là tlỗi viện nhằm cung cấp phát âm file hls bên trên trình duyệt
Tuy nhiên để ý touch.php, các bạn sẽ thấy nó được điện thoại tư vấn trường đoản cú custom.js, với nó trả lại 1 đoạn string random, chú ý nlỗi base64 vậy
Ắt hẳn có gì thú vị ở custom.js rồi, cùng xem nào

Ờ thì nó được gia công rối – Obfuscated (chđọng KHÔNG PHẢI MÃ HÓA nhé các bạn). Đối với mẫu mã array of strings rứa này, thì nó cũng rất căn bạn dạng, chỉ cần lên google tra cứu “deobfuscate js” cũng ra.
Ở trên đây mình sử dụng https://lelinhtinc.github.io/de4js/

Tiếp tục cuộn xuống để tìm touch.php, nó được call từ bỏ đây:

Tại phía trên ta thấy tất cả “beforeRequest”, vậy hóa ra nó vẫn chỉnh sửa lại truy nã vấn, gắn thêm thêm “&token=” vào truy nã vấn gửi đi vì videojs
Nhưng nhưng mà “&token=” được rước từ bỏ đâu? Hóa ra, nó được mang từ touch.php luôn, cùng được xử lý bằng 1 function nhín hơi rối. Nhưng kệ nó, ta đang coi nó như một black box
Ngulặng lý hoạt động
Vậy là rõ rồi, phương pháp nó hoạt động nhỏng sau:
videojs đem tệp tin playdanh sách m3u8, cất liên tưởng toàn bộ các mhình ảnh của videovideojs sẽ tạo các tầm nã vấn HTTP để đưa dữ liệu của các mhình họa nàyTUY NHIÊN, vì chưng đoạn code vào custom.js, phần lớn truy vấn vấn của videojs sẽ được gắn thêm thêm một tokentoken này được rước tự “video/touch.php”, cùng nó là token thực hiện 1 lần (nên các lần download mhình ảnh bắt đầu đề nghị đem token mới)Và điều đó, nó cũng tạo ra kha khá đều khó khăn đây chđọng. Khó khnạp năng lượng độc nhất tại vị trí, các phần mềm nhỏng ffmpeg chỉ đc lập trình để lấy trực tiếp các phần của Clip (file .ts), chứ đọng bản thân cấp thiết xây dựng nó để thêm thêm token được => Không thể download bởi các phần mềm hiện nay có
Giải pháp?
Hiểu nguyên lý vận động, bao gồm code deobfuscated rồi, ta rất có thể lập 1 chiến lược nlỗi sau:
Lấy tệp tin m3u8Tải hls.key khiến cho ffmpeg về sau có thể lời giải file sẽ cài đặt vềGiả truy vấn vấn cho tới touch.php để đưa tokenTải tạm những part .ts về máy, đặt vào 1 chỗLập file m3u8 mới, bao gồm thuộc thông số new file m3u8 cũ, chỉ khác là các xúc tiến sẽ được chuyển về các tệp tin đang sở hữu về trang bị (bao gồm các tệp tin .ts cùng hls.key)Chuyển file m3u8 new này lịch sự mp4, dùng ffmpegDo cũng không có rất nhiều thời gian, đề xuất bản thân sẽ vướng lại code của phần sử dụng để lấy token (Điện thoại tư vấn tới touch.php), và sau đó thêm vào “&token=” sinh sống liên kết của những part
Với giải pháp này, giả dụ có tác dụng thủ công, tôi đã thiết lập đc dần dần các part đầu về cùng ghép lại cùng với nhau