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

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

Tạo lệnh yt-dlp cho VOD, clip và luồng trực tiếp Twitch, kèm các tuỳ chọn giúp bản ghi dài không bị mất trắng.

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 --merge-output-format mp4 -o '%(uploader)s - %(title)s.%(ext)s' -N 4 --live-from-start https://www.twitch.tv/videos/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

VOD, clip và luồng trực tiếp

VOD của Twitch rất dài, nên tải fragment song song tạo ra khác biệt thật, và cắt theo khoảng thời gian thường hợp lý hơn là tải tám tiếng để giữ lại năm phút.

Với luồng trực tiếp, ghi-từ-đầu lấy lại phần đầu buổi phát khi Twitch còn giữ. Nên chọn MKV: một file MKV bị ngắt giữa lúc ghi thường vẫn phát được, còn MP4 bị cắt giữa lúc ghi thì thường là không.

Twitch phục vụ VOD dưới dạng HLS segments, và CDN của nó rộng rãi — giới hạn thực tế là đường truyền của bạn, vì vậy fragment song song thật sự có ích ở đây, trong khi ở Instagram nó lại gây hại. VOD chỉ dành cho người đăng ký cần cookies từ một tài khoản đã đăng ký kênh đó; một phiên không xem được thì không tải được. Highlights là các mục riêng, không phải sub-playlist của VOD — hãy lấy chúng bằng URL riêng của từng cái.

Clip là một extractor riêng với trần riêng — một clip tối đa chỉ bằng chất lượng nguồn mà nó được cắt ra, thường là 1080p60, và URL clip sẽ không đưa cho bạn nguyên VOD mà nó xuất phát. Muốn giữ một đoạn của VOD, hãy tải VOD rồi cắt tại chỗ, hoặc dùng khoảng thời gian: --download-sections nhận một khung thời gian mà không phải tải tám tiếng để giữ lại năm phút, và nó kết hợp tự nhiên với metadata chương.

Quảng cáo từng được nướng sẵn vào các segment VOD của Twitch — extractor Twitch của yt-dlp giờ cắt chúng ra, nhưng chỉ ở các bản gần đây, nên một file nhị phân cũ cho ra bản ghi có kèm các đoạn quảng cáo chen vào. Hãy update nếu một VOD có những đoạn cắt không rõ nguyên nhân. Bức tường của người không đăng ký là ranh giới còn lại: không tuỳ chọn nào với tới một VOD chỉ dành cho người đăng ký nếu thiếu phiên, và không có cách nào làm giả phiên ấy.

Về chat: Twitch lưu chat như một artifact riêng, và yt-dlp lưu nó thành JSON với --write-subs được ánh xạ sang nó — file đó không phải định dạng phụ đề, còn những công cụ dựng chat vào video là một bước riêng. Mọi thứ còn lại đi theo hình dạng bạn mong đợi: file lưu lịch sử để đồng bộ kênh liên tục, MKV cho trực tiếp, MP4 cho VOD, và số thứ tự playlist chỉ khi một mục nhiều phần khiến nó có ý nghĩa.

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

Tải một VOD Twitch thế nào?
Đưa URL của VOD vào. Chúng rất dài, nên hãy tăng số fragment song song để nhanh hơn, và dùng cắt theo khoảng thời gian nếu bạn chỉ cần một phần.
Ghi lại luồng trực tiếp Twitch được không?
Được. Ghi-từ-đầu lấy lại từ lúc buổi phát bắt đầu chứ không phải từ thời điểm hiện tại, nếu buổi phát cho phép. MKV chịu được việc bản ghi bị ngắt tốt hơn MP4.
Clip có tải được không?
Được, URL clip hoạt động trực tiếp và không cần tuỳ chọn đặc biệt nào.
Còn VOD chỉ dành cho người đăng ký thì sao?
Bạn cần một phiên đã đăng ký: --cookies-from-browser với tài khoản đang có gói đăng ký đó.