Đầu tiên điều bạn nên làm là có được công cụ như Fiddler và truy cập trang video YouTube. Trong Fiddler, bạn sẽ thấy tất cả các tệp tạo nên trang đó, bao gồm cả chính tệp FLV. Bây giờ, bạn biết rằng video không phải là một trong các tệp CSS, cũng không phải là tệp hình ảnh. Bạn có thể bỏ qua chúng. Tìm một tập tin lớn. Nếu bạn nhìn vào URL, nó bắt đầu bằng /videoplayback
.
Bây giờ, khi bạn đã tìm thấy, hãy tìm hiểu cách trình duyệt biết cách tải tệp đó. Thực hiện tìm kiếm qua các phiên (Ctrl + F) và tìm "videoplayback". Bạn sẽ thấy một lần truy cập trên trang đầu tiên bạn truy cập, chẳng hạn như http://www.youtube.com/watch?v=123asdf. Nếu bạn đào sâu qua tệp đó, bạn sẽ thấy thẻ DIV có ID là "trình phát xem". Trong đó có một thẻ script để thiết lập trình phát flash, và bên trong đó là tất cả các tham số flash. Trong đó là URL của video.
Vì vậy, bây giờ bạn biết cách sử dụng các công cụ của mình để tìm hiểu cách trình duyệt truy cập vào nó. Làm thế nào để bạn sao chép hành vi này trong PHP?
Thực hiện file_get_contents()
trên trang tham chiếu video. Bỏ qua mọi thứ không có trong div người xem đó. Phân tích cú pháp thông qua mã cho đến khi bạn tìm thấy biến chứa URL. Từ đó, bạn có thể sẽ phải hủy cảnh báo URL đó. Một khi bạn có nó, bạn có thể làm một file_get_contents()
(hoặc một số phương pháp tải xuống khác, tùy thuộc vào những gì bạn đang cố gắng làm) để lấy URL. nó là đơn giản. Mã phân tích cú pháp HTML của bạn sẽ phức tạp nhất.
Cuối cùng, hãy nhớ những gì bạn định làm có thể là bất hợp pháp. Kiểm tra EULA.
sử dụng giải pháp này: https://www.phpclasses.org/package/9092-PHP-Download-files-of-given-YouTube-videos.html – mghhgm