본문으로 건너뛰기
yt-dlp

YouTube 자막 내려받기 — yt-dlp 명령어 생성기

영상은 내려받지 않고 자막만 .srt로 저장하는 yt-dlp 명령어를 만듭니다.

선택 사항입니다. 비워 두면 명령어가 URL 로 끝나므로 나중에 직접 채우면 됩니다.

만들어진 명령어

yt-dlp --write-subs --convert-subs srt --sub-langs en --write-auto-subs --no-playlist -s 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'
기본

오디오만 고르면 소리 트랙만 뽑고 영상은 버립니다.

영상과 화질

높이 상한을 정합니다. yt-dlp는 그 상한 이하에서 가장 좋은 트랙을 고릅니다.

분리된 영상과 오디오 트랙을 병합해 담을 파일 형식입니다.

고급 옵션 (3)

화질 선택을 대체합니다. format 문법을 이미 아는 분을 위한 항목입니다.

재인코딩 없이 다시 포장만 합니다. 빠르고 손실이 없습니다.

영상을 다시 인코딩합니다. 느리고 손실이 있습니다 —— remux로 안 될 때만 쓰세요.

오디오

오디오를 변환할 대상 형식입니다.

VBR은 용량 대비 품질이 가장 좋고, 고정 bitrate는 용량을 예상하기 쉽습니다.

자막

삽입은 자막을 영상 안에 넣고, 저장은 옆에 별도의 .srt 파일을 만듭니다.

쉼표로 구분합니다. 사용 가능한 모든 언어를 원하면 all 이라고 쓰세요.

재생목록과 채널

URL이 영상과 재생목록에 동시에 속할 때 어떻게 할지 정합니다.

범위와 목록 모두 됩니다. 예를 들어 1-10,15, 또는 끝에서부터 하나씩 건너뛰는 -5::2.

고급 옵션 (1)

이미 내려받은 항목을 적어 두어 다시 실행할 때 건너뜁니다. 채널을 계속 동기화하는 방법이 바로 이것입니다.

구간과 챕터
고급 옵션 (2)

*00:01:30-00:03:00 같은 시간 범위, 또는 챕터 이름입니다. 앞의 별표는 시각이라는 뜻입니다.

메타데이터와 표지
고급 옵션 (3)
SponsorBlock

SponsorBlock 데이터를 바탕으로 커뮤니티가 표시한 구간을 파일에서 잘라냅니다.

고급 옵션 (1)

구간은 남기고 표시만 해서 직접 건너뛸 수 있게 합니다.

파일과 폴더

필드 이름은 %(...)s 안에 씁니다. 슬래시는 폴더를 만듭니다.

고급 옵션 (4)

파일을 저장할 위치입니다. 위 템플릿과 조합하면 하위 폴더도 만들 수 있습니다.

파일 이름의 최대 길이(문자 수)입니다.

필터
고급 옵션 (5)

YYYYMMDD, 또는 now-1month 같은 상대 날짜.

YYYYMMDD, 또는 상대 날짜.

이보다 작은 것은 건너뜁니다. 5M, 500K 같은 표기를 씁니다.

이보다 큰 것은 건너뜁니다.

멈추기 전까지 내려받을 파일 수입니다.

네트워크

예를 들어 2M 또는 500K. 남은 대역폭을 다른 일에 써야 할 때 유용합니다.

고급 옵션 (5)

조각으로 나뉜 트랙을 빠르게 합니다. 4 정도로 시작하면 무리가 없습니다.

실패한 조각을 몇 번 다시 시도할지. infinite 도 쓸 수 있습니다.

HTTP, HTTPS 또는 SOCKS proxy 주소입니다.

요청이 실제 브라우저에서 온 것처럼 보이게 합니다. 갑자기 403이 날 때 흔히 쓰는 해법입니다.

로그인과 cookies

로그인된 세션을 직접 읽습니다. 비공개, 연령 제한, 멤버 전용 콘텐츠에는 필요합니다.

고급 옵션 (1)

브라우저에서 내보낸 Netscape 형식 cookies.txt 파일입니다.

라이브 방송
고급 옵션 (2)

예정된 방송이 시작될 때까지 계속 확인합니다. MIN-MAX는 확인 간격(초)입니다.

우회 방법
고급 옵션 (3)

구식이며 --add-headers 로 대체되었습니다. 오래된 안내 글이 아직 많이 쓰기 때문에 남겨 두었습니다.

구식이며 --add-headers 로 대체되었습니다.

사이트별 전용 옵션입니다. 예를 들어 youtube:player_client=web.

출력과 디버그
고급 옵션 (2)
초기화

영상 없이 자막만

모의 실행은 영상 파일을 쓰는 것만 빼고 전부 수행하므로, 자막은 남고 내려받기는 건너뜁니다. SRT로 변환하려면 ffmpeg가 필요합니다.

아무것도 나오지 않는다면 그 영상에 사람이 만든 자막이 없을 가능성이 큽니다 —— 자동 생성 자막은 별도 스위치이고, 그것을 켜지 않으면 yt-dlp는 아무것도 찾지 못하며 아무 말도 하지 않습니다.

모의 실행은 이 페이지의 버팀목 스위치입니다: 없으면, yt-dlp는 영상 전체를 내려받은 뒤 덤으로 자막까지 저장합니다. 영화 한 편 길이의 파일에서는 문자 트랙 하나를 위한 것치고는 많은 전송량입니다. 있으면, 실행은 메타데이터를 가져오고 자막 파일을 쓰며 영상에는 전혀 손대지 않습니다. 대가로, 모의 실행은 썸네일과 설명 쓰기도 건너뜁니다 —— 그것들은 영상 실행의 산물이지 자막의 것이 아닙니다.

언어 선택은 자막 내려받기가 다루기 번거로워지는 곳입니다. --sub-langs en 은 "en" 태그가 붙은 트랙 그것만 정확히 가져옵니다. en-orig 는 자동 생성분에 대한 YouTube의 명명이고, 패턴으로서의 en.* 는 둘 다와 지역 변형까지 잡습니다. 여러 언어는 쉼표로 구분한 목록으로 받습니다. 같은 언어에 사람의 것과 자동 것 트랙이 모두 있는 영상에서는 그 둘이 별개 항목이고, 둘 다 내려받는 것은 정당한 결과이지 버그가 아닙니다.

자막 파일을 편집기로 가져간다면 형식이 문제가 됩니다. SRT는 안전한 교환용이고, VTT는 웹 플레이어가 보여 주는 스타일을 실어 가며, YouTube 고유의 JSON3/_SRV 형식은 기계용입니다. SRT 변환 스위치는 흔한 경우를 처리하지만, ffmpeg가 필요하고 스타일은 의도대로 잃습니다 —— 편집기가 원하는 것은 마크업이 아니라 텍스트이기 때문입니다. 출력이 비어 보인다면 변환 실패로 단정하기 전에 파일이 존재하는지 확인하세요: 0바이트 SRT는 트랙 자체가 비어 있었다는 뜻입니다.

자동 생성 자막에는 경고가 어울립니다. 기계 전사이고, 그것이 함의하는 모든 것이 따라옵니다 —— 틀린 동음이의어, 없는 문장부호, 뭉개진 고유명사. 당신이 읽을 수 있는 언어의 영상이라면 검색용 색인이 되지만, 인용할 것에는 사람의 트랙 (있을 때)만 남을 가치가 있습니다. 라이브 방송의 자동 자막은 방송 중에 만들어져 방송이 끝난 뒤에 저장됩니다 —— 이 사이트의 라이브 녹화 옵션은 영상을 위한 것이고, 끝난 방송의 자막은 평범한 자막 옵션으로 내려받습니다.

자주 묻는 질문

영상 없이 자막만 받으려면?
.srt 옵션을 고르고 모의 실행을 켜세요. 영상 파일 쓰기는 건너뛰면서 자막은 저장됩니다.
자막 파일이 나오지 않는 이유는?
그 영상에 사람이 만든 자막이 없을 가능성이 큽니다. 자동 생성 자막을 켜서 기계가 만든 것을 받으세요.
자막 언어를 고르려면?
쉼표로 구분하세요. 예를 들어 en,ko. 사용 가능한 전부면 all, 영어 변종 전부면 en.* 같은 패턴도 됩니다.
VTT 대신 SRT로 받을 수 있나요?
가능합니다 —— .srt 옵션이 변환해 주며, 이때 ffmpeg가 필요합니다.