Vì sao bản tải YouTube dừng quanh 360p
YouTube chỉ phục vụ một tệp MP4 hoàn chỉnh — hình và tiếng trong một tệp — ở những độ phân giải khiêm tốn. Mọi mức cao hơn được lưu thành các luồng riêng phải ghép lại, và công cụ này không ghép.
Đây là điều gây bất ngờ nhất trên trang YouTube, nên cần nói ngay từ đầu: mức trần thường là 360p, đôi khi là 240p, và đó không phải một cài đặt có thể vặn lên. Trình tải cung cấp tệp MP4 tiến triển mà YouTube phát hành dưới dạng một tệp. Một bản 1080p có tồn tại phía YouTube, nhưng không phải dưới dạng một tệp duy nhất.
Đã ghép và thích ứng là hai thứ khác nhau
YouTube lưu mỗi video dưới hai hình dạng. Các định dạng đã ghép mang hình và tiếng cùng nhau trong một tệp MP4 — tệp bạn có thể lưu và phát ở bất cứ đâu. Định dạng thích ứng tách chúng ra: một luồng chỉ hình và một luồng chỉ tiếng riêng, mỗi luồng được mã hóa ở tốc độ bit mà YouTube chọn cho độ phân giải đó.
Phát 1080p trong trình duyệt thì dễ, vì trình phát lấy cả hai luồng và nối chúng ngay lúc chạy. Lưu 1080p thành một tệp lại là việc khác: phải có thứ gì đó ghép các rãnh lại. Trình tải này không mang bộ ghép, nên nó chỉ liệt kê các định dạng đã ghép — và YouTube ngày càng phục vụ chúng ở 360p trở xuống. Định dạng đã ghép 720p từng tồn tại nay không còn được đưa cho khách ẩn danh nữa.
Bộ xử lý làm gì
- Nó hỏi điểm cuối trình phát của YouTube với một thang các danh tính khách chính thức, từ khách Android tới trình phát web nhúng.
- Nó chỉ giữ các mục MP4 đã ghép, loại trùng theo id định dạng.
- Nó ghi mỗi dòng bằng nhãn chất lượng của chính YouTube, lùi về chiều cao khung khi cần.
- Nếu trình phát từ chối, một phép dò oEmbed vẫn cho biết video có tồn tại, nên video đã xóa không bị nhầm với video bị chặn.
Thang khách là lý do một video thất bại ở lần thử này lại thành công ở lần sau: các khách khác nhau được cung cấp định dạng khác nhau, và YouTube thay đổi những gì còn khả dụng theo thời gian.
Vì sao liên kết mở trong tab mới
Các byte video đến từ googlevideo.com, nơi không gửi tiêu đề CORS. Trang không đọc được chúng, nên nút tải xuống chuyển hướng tới liên kết — trình duyệt của bạn lưu tệp thẳng từ CDN của Google. Hai chi tiết khiến lần chuyển hướng đó hoạt động đúng: bộ xử lý nối một tham số tiêu đề vào URL, khiến máy chủ của Google trả lời bằng content-disposition: attachment để tệp được lưu thay vì phát trong tab.
Vì sao không có gì được lưu đệm
Kết quả của mọi nền tảng khác được lưu đệm vài phút hoặc hơn. Kết quả của YouTube thì không bao giờ được lưu đệm, một cách có chủ đích: các liên kết googlevideo.com gắn với địa chỉ đã hỏi chúng và hết hạn nhanh. Một liên kết lưu đệm sẽ trông như nút tải xuống mà hỏng như liên kết chết, nên bộ xử lý hỏi YouTube mới mỗi lần.
Những gì không được hỗ trợ
| Trường hợp | Kết quả |
|---|---|
| Video công khai | Xử lý được; các định dạng MP4 đã ghép mà YouTube cung cấp. |
| Riêng tư, chỉ thành viên, giới hạn độ tuổi | private — bộ xử lý không bao giờ đăng nhập. |
| Video đã xóa hoặc bị gỡ | not_found. |
| Livestream đang chạy | Không có tệp đã ghép nào khi luồng đang chạy. |
| Shorts | Hoạt động như mọi video khác, cùng mức trần độ phân giải. |
Bản tóm tắt ngắn
- Chỉ tệp MP4 đã ghép được cung cấp, thường là 360p.
- Độ phân giải cao hơn cần ghép luồng hình và luồng tiếng riêng; công cụ này không ghép chúng.
- Không có gì bị mã hóa lại, đóng dấu hình mờ hay giữ lại.
- Liên kết không bao giờ được lưu đệm, vì chúng gắn với địa chỉ của bạn và hết hạn.
- Chỉ video công khai — video riêng tư và giới hạn độ tuổi vẫn bị chặn.
Câu hỏi
Công cụ này có tải được 1080p từ YouTube không?
Không. YouTube giữ 1080p thành luồng chỉ hình và chỉ tiếng riêng, và công cụ này không ghép chúng. Nó cung cấp tệp MP4 đã ghép mà YouTube phát hành dưới dạng một tệp, thường là 360p.
Vì sao video mở trong tab mới thay vì tải trong trang?
Vì `googlevideo.com` không gửi tiêu đề CORS, nên trang không đọc được các byte. Liên kết mang một tham số tiêu đề khiến Google trả lời bằng `content-disposition: attachment`, nên trình duyệt lưu tệp thay vì phát.
Vì sao cùng một liên kết đôi khi liệt kê chất lượng khác nhau?
Bộ xử lý hỏi YouTube qua nhiều danh tính khách chính thức, và chúng không được cung cấp cùng định dạng. Lấy lại liên kết sau một lát có thể làm danh sách thay đổi.