본문으로 건너뛰기
yt-dlp

라이브 방송 녹화 — yt-dlp 명령어 생성기

라이브 방송을 녹화하는 yt-dlp 명령어를 만듭니다. 플랫폼이 허용하면 처음부터 녹화합니다.

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

만들어진 명령어

yt-dlp --merge-output-format mkv --no-playlist -N 4 --live-from-start --wait-for-video 60-300 'https://www.youtube.com/watch?v=live_stream_id'
기본

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

영상과 화질

높이 상한을 정합니다. 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)
초기화

라이브를 안전하게 녹화하기

처음부터 녹화는 명령어를 실행한 순간이 아니라 방송의 시작부터 담아 옵니다 —— 플랫폼이 앞부분을 아직 갖고 있는 한에서요. 방송 대기는 예정된 방송을 계속 확인하고 시작되는 순간에 녹화를 시작합니다.

MKV를 고르세요. 예상 못 하게 멈춘 녹화 —— 라이브 녹화는 멈추는 법입니다 —— 에서도 보통 재생 가능한 MKV가 남지만, 쓰다가 끊긴 MP4는 아예 열리지 않는 일이 많습니다. 라이브 녹화는 이어받을 수 없으므로 container 선택이 안전장치의 전부입니다.

예정된 방송을 기다리는 것은 진행 중인 방송을 녹화하는 것과 다른 모드입니다. 방송 대기는 URL을 계속 물어보다 방송이 열린 순간 녹화를 시작합니다 —— 터미널을 돌려 두면 첫 1분부터 담습니다. 물어보는 간격은 초가 아니라 분이므로 명령어는 미리 돌리세요. 물음에 늦으면 그만큼의 방송을 잃고, 녹화되지 못한 분을 되찾는 옵션은 없습니다.

처음부터 녹화에는 플랫폼의 경계가 있습니다. YouTube는 방송의 앞부분을 저장해 요청에 따라 제공하므로 이 옵션이 정말 닿습니다. Twitch도 보존 기간 안이라면 마찬가지입니다. 그 밖의 플랫폼은 당신이 참여한 순간 이전을 아무것도 남기지 않습니다. 그래서 이 옵션은 마법 스위치가 아니라, 플랫폼이 저장한 것을 가져올 뿐이고, 무엇을 저장하는지는 플랫폼마다 다릅니다. 나중에 리플레이가 제공된다면, 리플레이가 어떤 라이브 캡처보다 나은 원천입니다.

라이브 방송은 정의상 HLS입니다: 실시간으로 도착하는 수백 개의 짧은 세그먼트가, 도착할 때마다 ffmpeg가 container로 이어 붙입니다. 그래서 라이브 녹화야말로 MKV가 가장 중요한 경우입니다 —— MP4는 인덱스를 마지막에 써야 하는데, 2시간 방송의 3분째에 죽은 녹화에는 인덱스가 전혀 없습니다. 디스크 공간이 또 하나의 실질적 한도입니다: 라이브 녹화는 도는 동안 방송 비트레이트로 계속 자랍니다. 끄는 것을 잊은 방송이 12시간을 흐른 뒤에, 용량 제한이 디스크를 지킵니다.

사후 이야기로, 두 가지는 이름 붙일 가치가 있습니다. 공백 시간이 있는 녹화는 정상입니다 —— 행사 세그먼트 사이의 침묵은 소스 안에 있습니다 —— 나중에 잘라 내는 것은 편집이지 실패한 내려받기가 아닙니다. 그리고 몇 시간 전에 끝난 방송은 당신이 발견한 시점에는 평범한 VOD입니다: 플랫폼의 평범한 영상 옵션 —— 이 폼이 기본으로 보여 주는 것들 —— 을 쓰고, 라이브 전용 옵션은 방송이 실제로 살아 있는 동안에만 쓰세요.

자주 묻는 질문

라이브 방송을 처음부터 녹화할 수 있나요?
처음부터 녹화를 켜세요. 플랫폼이 방송의 앞부분을 아직 갖고 있을 때만 동작합니다.
아직 시작하지 않은 방송을 녹화하려면?
MIN-MAX 간격으로 방송 대기를 쓰세요. yt-dlp가 계속 확인하다가 방송이 시작되는 순간 녹화를 시작합니다.
라이브에는 어떤 container가 가장 좋나요?
MKV입니다. 쓰기가 중단되는 것을 견디지만, 녹화 중간에 끊긴 MP4는 재생되지 않을 수 있습니다.
녹화가 중단되면 어떻게 되나요?
MKV라면 보통 그때까지 쓰인 것은 남습니다. 라이브 녹화는 이어받을 수 없습니다 —— 빠진 부분은 사라집니다.