Chuyển tới nội dung
yt-dlp

Trình tạo lệnh yt-dlp cho Bilibili

Tạo lệnh yt-dlp cho Bilibili, bật sẵn giả dạng trình duyệt để tránh phần lớn lỗi 403.

Không bắt buộc. Để trống thì câu lệnh kết thúc bằng URL để bạn tự điền.

Câu lệnh của bạn

yt-dlp -f 'bv*[height<=1080]+ba/b[height<=1080]' --merge-output-format mp4 --no-playlist --impersonate chrome --cookies-from-browser chrome https://www.bilibili.com/video/BV1xx411c7mD
Cơ bản

Chỉ âm thanh sẽ tách phần tiếng và bỏ luồng video.

Video và chất lượng

Giới hạn chiều cao. yt-dlp vẫn chọn luồng tốt nhất ở mức đó hoặc thấp hơn.

Loại file mà luồng video và âm thanh tách rời được merge vào.

Tuỳ chọn nâng cao (3)

Ghi đè mục chọn chất lượng. Dành cho người đã biết cú pháp format.

Đóng gói lại các luồng mà không encode lại. Nhanh và không mất chất lượng.

Encode lại video. Chậm và giảm chất lượng — chỉ dùng khi remux không được.

Âm thanh

Định dạng mà âm thanh được chuyển sang.

VBR cho tỉ lệ dung lượng trên chất lượng tốt nhất; bitrate cố định thì dễ đoán hơn.

Phụ đề

Nhúng là đặt phụ đề vào trong video; lưu là ghi ra một file .srt riêng bên cạnh.

Cách nhau bằng dấu phẩy. Dùng all để lấy mọi ngôn ngữ có sẵn.

Playlist và kênh

Làm gì khi URL thuộc cả một video lẫn một playlist.

Dùng được cả khoảng và danh sách, ví dụ 1-10,15 hoặc -5::2 để lấy cách một mục tính từ cuối.

Tuỳ chọn nâng cao (1)

Ghi lại những gì đã tải nên chạy lại sẽ bỏ qua chúng. Đây là cách giữ một kênh luôn đồng bộ.

Cắt đoạn và chương
Tuỳ chọn nâng cao (2)

Một khoảng thời gian như *00:01:30-00:03:00, hoặc tên chương. Dấu hoa thị đứng đầu nghĩa là đây là mốc thời gian.

Metadata và ảnh bìa
Tuỳ chọn nâng cao (3)
SponsorBlock

Cắt hẳn các đoạn do cộng đồng đánh dấu ra khỏi file, dựa trên dữ liệu SponsorBlock.

Tuỳ chọn nâng cao (1)

Giữ lại các đoạn nhưng đánh dấu chúng để bạn tự bỏ qua.

Tệp và thư mục

Tên trường đặt trong %(...)s. Dấu gạch chéo sẽ tạo thư mục.

Tuỳ chọn nâng cao (4)

Nơi ghi file. Kết hợp với mẫu tên file ở trên để tạo thư mục con.

Độ dài tên file tối đa, tính theo ký tự.

Bộ lọc
Tuỳ chọn nâng cao (5)

Dạng YYYYMMDD, hoặc ngày tương đối như now-1month.

Dạng YYYYMMDD, hoặc ngày tương đối.

Bỏ qua file nhỏ hơn mức này. Nhận dạng 5M, 500K và tương tự.

Bỏ qua file lớn hơn mức này.

Số file cần tải trước khi dừng lại.

Mạng

Ví dụ 2M hoặc 500K. Hữu ích khi bạn cần để dành băng thông cho việc khác.

Tuỳ chọn nâng cao (5)

Tăng tốc các luồng chia fragment. Bắt đầu với 4 là hợp lý.

Thử lại bao nhiêu lần khi một phần bị lỗi. Dùng được cả infinite.

URL proxy dạng HTTP, HTTPS hoặc SOCKS.

Làm request giống một trình duyệt thật. Đây là cách sửa thường dùng khi đột nhiên bị lỗi 403.

Đăng nhập và cookies

Đọc trực tiếp phiên đăng nhập của bạn. Cần cho nội dung riêng tư, giới hạn tuổi hoặc chỉ dành cho thành viên.

Tuỳ chọn nâng cao (1)

Một file cookies.txt định dạng Netscape xuất ra từ trình duyệt của bạn.

Phát trực tiếp
Tuỳ chọn nâng cao (2)

Kiểm tra liên tục cho tới khi buổi phát đã hẹn bắt đầu. MIN-MAX là số giây giữa các lần kiểm tra.

Xử lý lỗi
Tuỳ chọn nâng cao (3)

Đã lỗi thời, thay bằng --add-headers. Vẫn giữ vì rất nhiều hướng dẫn cũ còn dùng nó.

Đã lỗi thời, thay bằng --add-headers.

Các tuỳ chọn riêng theo từng trang, ví dụ youtube:player_client=web.

Kết quả và gỡ lỗi
Tuỳ chọn nâng cao (2)
Đặt lại

Lỗi 403 và giới hạn chất lượng

Bilibili từ chối những request không giống trình duyệt, nên một câu lệnh thông thường hay trả về 403. Giả dạng trình duyệt được bật sẵn trong preset này vì đó là cách sửa hiệu quả trong phần lớn trường hợp.

1080p trở lên thường chỉ dành cho tài khoản đã đăng nhập hoặc tài khoản trả phí, nên ở đây cookies quan trọng cho cả chất lượng chứ không chỉ để truy cập. Video nhiều phần xuất hiện dưới dạng các mục của playlist.

Câu hỏi thường gặp

Vì sao Bilibili trả về 403?
Bilibili từ chối những request không giống trình duyệt. --impersonate chrome xử lý được phần lớn trường hợp; thêm cookies cho nội dung chỉ dành cho thành viên.
Tải 1080p trở lên từ Bilibili thế nào?
Các độ phân giải cao hơn được dành cho tài khoản đã đăng nhập và đôi khi là tài khoản trả phí. Hãy dùng --cookies-from-browser với một tài khoản như vậy.
Lấy hết các phần của một video nhiều phần thế nào?
Đặt xử lý playlist thành toàn bộ playlist — các phần được đưa ra dưới dạng mục của playlist.