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

Tải phụ đề YouTube — Trình tạo lệnh yt-dlp

Tạo lệnh yt-dlp lưu phụ đề thành file .srt mà không tải video.

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 --write-subs --convert-subs srt --sub-langs en --write-auto-subs --no-playlist -s 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'
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ấy phụ đề mà không lấy video

Chế độ chạy thử làm mọi thứ trừ việc ghi file video, nên bạn giữ được phụ đề và bỏ qua phần tải nặng. Chuyển sang SRT thì cần ffmpeg.

Nếu không có file nào xuất hiện, rất có thể video không có phụ đề do người viết — phụ đề tự động là một tuỳ chọn riêng, và nếu không bật thì yt-dlp không tìm thấy gì và cũng không báo gì.

Chế độ chạy thử là công tắc gánh vác cả trang này: không có nó, yt-dlp tải nguyên video và chỉ tiện tay lưu luôn phụ đề, mà với một file dài bằng phim thì đó là lượng truyền rất lớn cho một track chữ. Có nó, lần chạy chỉ lấy metadata, ghi các file phụ đề, và không bao giờ đụng vào video. Cái giá là chế độ chạy thử cũng bỏ qua phần ghi thumbnail và mô tả mà có lẽ bạn quen dùng — đó là sản phẩm của lần chạy video, không phải của phụ đề.

Chọn ngôn ngữ là nơi tải phụ đề bắt đầu rắc rối. --sub-langs en nhận đúng track được gắn tag "en"; en-orig là tên YouTube gọi track tự động, còn en.* dùng làm pattern thì bắt cả hai cùng các biến thể vùng. Nhiều ngôn ngữ nhận một danh sách cách nhau bằng dấu phẩy. Nếu một video có cả track người viết lẫn track tự động cho cùng một ngôn ngữ, đó là hai mục riêng, và tải cả hai là kết quả chính đáng chứ không phải lỗi.

Định dạng quan trọng khi file phụ đề sắp đi vào phần mềm dựng phim: SRT là định dạng trao đổi an toàn, VTT giữ những kiểu dáng mà trình phát web hiển thị, còn các định dạng JSON3/_SRV của YouTube là dành cho máy. Công tắc chuyển-sang-SRT xử lý trường hợp phổ biến, cần ffmpeg, và cố tình bỏ phần styling đi — phần mềm dựng phim muốn chữ, không phải markup. Nếu kết quả trông trống rỗng, hãy kiểm tra file có tồn tại trước khi kết luận chuyển đổi thất bại: một file SRT 0 byte nghĩa là track đó vốn trống rỗng.

Phụ đề tự động xứng đáng có một lời cảnh báo: chúng là bản chép máy, với mọi hệ lụy của nó — sai các từ đồng âm, không dấu câu, tên gọi nát vụn. Với một video bằng ngôn ngữ bạn đọc được, chúng là một chỉ mục tìm kiếm; còn thứ bạn sẽ trích dẫn thì track do người viết (nếu có) mới là thứ đáng giữ. Live stream có phụ đề tự động ngay trong lúc phát, chỉ được lưu sau khi stream kết thúc — các tuỳ chọn ghi trực tiếp trên trang này dành cho hình ảnh, còn phụ đề của một stream đã kết thúc tải bằng các tuỳ chọn phụ đề bình thường.

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

Tải phụ đề mà không tải video thế nào?
Chọn tuỳ chọn .srt và bật chạy thử — nó bỏ qua việc ghi file video nhưng vẫn lưu phụ đề.
Vì sao không có file phụ đề nào xuất hiện?
Rất có thể video không có phụ đề do người viết. Hãy bật phụ đề tự động để lấy bản do máy tạo.
Chọn ngôn ngữ phụ đề thế nào?
Cách nhau bằng dấu phẩy, ví dụ en,vi. Dùng all để lấy mọi ngôn ngữ có sẵn, hoặc một mẫu như en.* để lấy mọi biến thể tiếng Anh.
Lấy SRT thay vì VTT được không?
Được — tuỳ chọn .srt sẽ chuyển đổi chúng, việc này cần ffmpeg.