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

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

Tạo lệnh yt-dlp cho video Facebook, kèm các tuỳ chọn cookies mà phần lớn video cần đến.

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 --cookies-from-browser chrome 'https://www.facebook.com/watch/?v=1234567890'
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ưu ý với Facebook

Phần lớn Facebook không truy cập được khi chưa đăng nhập, và các bản chất lượng cao thường chỉ được cấp cho phiên đã đăng nhập. Đưa cookies vào là xử lý được cả hai việc cùng lúc.

Nếu kết quả trông kém hơn thứ bạn thấy trên trình duyệt, hãy liệt kê định dạng trước — danh sách dành cho phiên của bạn thường ngắn hơn danh sách mà trình phát web đang dùng.

URL Facebook có nhiều dạng hơn bất kỳ nền tảng nào mà yt-dlp xử lý: /watch/?v=…, /reel/…, bài trong nhóm, video trên page và link rút gọn fb.watch. Tất cả đều rơi vào cùng một extractor, nhưng những dạng được bọc trong trang thỉnh thoảng phải bóc lớp trang ra trước mới thấy video. Permalink là dạng đáng tin — nhấp chuột phải vào dấu thời gian của bài rồi copy địa chỉ đó; nó trỏ thẳng tới trang media thay vì một feed tình cờ chứa nó.

Cùng một video có thể tồn tại trên một page, trong một nhóm và trên một profile thành ba mục riêng, và thang chất lượng giữa chúng khác nhau: video đăng trên page thường có bản chất lượng cao nhất, bài chia sẻ lại thì thấp nhất. Video nhóm cần cookies từ một tài khoản là thành viên của nhóm đó — một phiên không thấy được bài thì không tải được bài đó, và không có tuỳ chọn nào thay đổi được điều đó. Các tin đăng Marketplace là một hệ thống khác mà yt-dlp không hỗ trợ chút nào.

Bản phát lại trực tiếp hoạt động như video thường khi buổi phát đã kết thúc, nên cứ tải chúng bằng các tuỳ chọn bình thường — với một lưu ý: bản phát lại không phải luồng trực tiếp, nên ghi-từ-đầu không áp dụng, và phần đầu của file là thứ mà Facebook còn giữ lại. Nếu bản phát lại bắt đầu giữa chừng sự kiện, nghĩa là phần trước đó chưa từng được lưu thành video, và không có thiết lập nào với tới media mà nền tảng chưa từng lưu.

Có hai thứ thật sự không chạy được, và nói thẳng ra còn rẻ hơn là để ai đó bỏ cả một buổi tối vào đó: tin đăng Marketplace, và story đã hết hạn. Mọi thứ còn lại mà thất bại thì thường thất bại ở khâu truy cập chứ không phải định dạng — vì vậy cookies là thứ đầu tiên cần kiểm tra và -F là thứ hai. Nếu các định dạng hiện ra nhưng từng bậc đều thấp, đó chính là thang mà phiên của bạn được cấp; một tài khoản khác đôi khi thấy nhiều hơn, nhưng không cờ nào tạo ra bản chất lượng cao hơn điều nền tảng cấp.

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

yt-dlp tải video Facebook riêng tư được không?
Chỉ những video tài khoản của bạn vốn đã xem được, dùng --cookies-from-browser. Không có cách nào vượt qua một quyền mà bạn không có.
Facebook báo lỗi khi không có cookies.
Phần lớn Facebook không truy cập được khi chưa đăng nhập. Hãy đưa phiên của bạn vào bằng --cookies-from-browser chrome, với trình duyệt đã đóng.
Vì sao chất lượng thấp hơn khi xem trên trình duyệt?
Facebook chỉ cấp bản chất lượng cao cho một số phiên. Hãy chạy -F để xem thực tế có gì cho URL đó, và đưa cookies vào nếu danh sách quá ngắn.