yt-dlp: 동영상 다운로드를 위한 최신 youtube-dl 포크
2020년 10월 23일, 미국음반산업협회(RIAA)는 깃허브(GitHub)의 youtube-dl 프로젝트에 대해 저작권 침해 신고(DMCA)를 접수했습니다. 3일 후인 10월 26일, github.com/yt-dlp/yt-dlp에 새로운 저장소가 조용히 나타났습니다. 깃허브가 11월 16일 원래 프로젝트를 복원하고 100만 달러 규모의 개발자 보호 기금을 새로 마련했을 때쯤에는, 새로운 포크 버전이 이미 youtube-dl의 기여자들을 흡수하기 시작한 상태였습니다.
해당 포크가 이제 메인 버전이 되었습니다. 2026년 5월 기준으로 yt-dlp는 PyPI에서 매달 1,200만 건 이상의 다운로드를 기록하고 있습니다. GitHub 저장소에는 160,766개의 별이 달려 있습니다. 이 프로젝트는 약 2주마다 새로운 버전을 출시합니다. 이 글을 쓰는 시점의 최신 태그는 `2026.03.17`입니다. 추출기 플러그인 시스템을 통해 1,800개 이상의 비디오 및 오디오 사이트를 지원합니다. 다음은 yt-dlp가 무엇이고 어떻게 사용하는지에 대한 솔직한 소개입니다. 또한 2026년 현재 법적 지위와 완벽하게 작동하던 설치가 2025년 중반에 갑자기 작동을 멈출 수 있는 이유에 대해서도 다룹니다.
yt-dlp의 기원: youtube-dl에서 갈라져 나온 포크 체인
계보가 중요한 이유는 동작 차이를 설명해 주기 때문입니다. yt-dlp는 YouTube 오류 발생 후 몇 시간 내에 수정 사항을 배포하지만, youtube-dl은 몇 주가 걸릴 수 있습니다. 이 계보에는 세 개의 프로젝트가 있으며, 각 단계는 이전 단계에 대한 불만에서 비롯되었습니다.
youtube-dl은 최초의 아카이빙 도구입니다. 리카르도 가르시아가 2006년 8월에 작성했고, 이후 필립 하게마이스터가 `ytdl-org/youtube-dl`이라는 소규모 그룹과 함께 개발을 이끌었습니다. 2020년에는 사실상 표준 아카이빙 도구가 되었지만, 풀 리퀘스트가 쌓이고 유튜브 관련 수정 사항이 늦게 반영되는 문제가 있었습니다.
그 공백이 바로 youtube-dlc를 탄생시켰는데, 여기서 "c"는 "커뮤니티"를 의미합니다. `blackjack4494`는 2020년에 해당 저장소를 포크했고, 병합 대기열은 며칠 만에 비워졌습니다. 포크 자체는 같은 해 말에 거의 활동이 중단되었는데, 관리자 중 한 명이 몸이 불편하기 때문입니다.
yt-dlp는 youtube-dlc에서 포크된 프로젝트입니다. 이 저장소는 RIAA가 업스트림 youtube-dl을 폐쇄한 지 3일 후인 2020년 10월 26일에 생성되었습니다. yt-dlp는 지원되는 웹사이트에서 비디오와 오디오를 다운로드할 수 있는 명령줄 도구입니다. "p"는 초기 주요 관리자(`pukkandan`)를 나타냅니다. 현재 이 프로젝트는 `coletdjnz`, `dirkf`, `Grub4K`, `bashonly`, `seproDev`를 포함한 다수의 관리자로 구성된 조직에서 관리됩니다. 2021년 1월까지 yt-dlp는 youtube-dlc의 기여자들을 흡수하여 youtube-dl의 주요 포크가 되었습니다. 업스트림에서 병합되지 않은 기능 및 개선 사항에 중점을 두었습니다.
프로젝트 관련 몇 가지 중요한 사실을 언급할 필요가 있습니다. yt-dlp는 달력 기반 버전 관리를 사용하므로 `2026.03.17`과 같은 태그는 실제 릴리스 날짜를 나타냅니다. 라이선스는 The Unlicense로, 대부분의 오픈소스 프로젝트에서도 사용하지 않는 명시적인 공개 라이선스입니다. 이 저장소에는 13,348개의 포크와 2,507개의 미해결 문제가 있습니다. Ubuntu 22.04는 기본 비디오 다운로더로 youtube-dl을 yt-dlp로 교체했고, Debian도 bookworm을 통해 이를 따랐습니다. `supportedsites.md` 파일의 지원 사이트 목록에는 현재 1,500개 이상의 항목이 등록되어 있으며, 코드베이스 자체에는 지연 로딩 기능을 갖춘 약 1,800개의 추출 모듈이 포함되어 있습니다. Arch, Fedora, NixOS, Homebrew, Chocolatey, Scoop, Winget 등 다양한 배포판에서 yt-dlp를 패키징할 수 있습니다. 연간 20~30회의 릴리스 덕분에 배포판들이 느린 업스트림으로 되돌아가지 않고 yt-dlp를 유지할 수 있었습니다.

RIAA의 2020년 조치가 yt-dlp를 필연적으로 만든 과정
미국 음반산업협회(RIAA)는 2020년 10월 23일, 저작권법 17 USC § 1201(우회 방지 조항)에 의거하여 DMCA 통지를 제출했습니다. RIAA는 youtube-dl이 저작권 보호를 위한 기술적 조치인 YouTube의 "롤링 사이퍼" 서명 메커니즘을 우회했다고 주장했습니다. GitHub는 처음에는 RIAA의 요구에 따라 해당 저장소와 17개의 포크를 삭제했습니다.
그 후 벌어진 일은 전형적인 스트라이샌드 효과였습니다. 개발자들은 소스 코드를 점점 더 기발한 방식으로 다시 게시했는데, 그중에는 전체 코드베이스를 픽셀 색상으로 인코딩한 트위터 이미지도 있었습니다. 전자프론티어재단(EFF)은 2020년 11월 16일 깃허브에 서한을 보냈습니다. 그들의 기술적 주장은 간단했습니다. 표준을 준수하는 모든 브라우저가 실행할 수 있다는 서명은 § 1201에 따른 "접근을 실질적으로 제어하는 기술적 조치"가 아니라는 것입니다. youtube-dl은 해당 서명을 사용하고 있을 뿐, 이를 위반하고 있는 것은 아닙니다.
GitHub는 같은 날 해당 저장소를 복원했습니다. 또한 100만 달러 규모의 개발자 방어 기금을 조성하고 향후 모든 § 1201 조항에 따른 삭제 요청에 대해 기술 및 법률 검토를 수동으로 진행하겠다고 약속했습니다. 이 사건은 yt-dlp의 탄생을 촉발했습니다. 새로 만들어진 포크의 저장소는 삭제 요청 후 3일이 지난 시점에 커밋 기록에 나타납니다. GitHub가 물러설지는 아직 아무도 알 수 없었습니다. 개발자들은 만일의 사태에 대비하고 싶어했습니다.
Windows, macOS 및 Linux에 yt-dlp를 설치하세요.
사람들은 설치 과정의 후반부를 잊어버리고 병합 단계에서 오류가 발생하는 이유를 궁금해합니다. yt-dlp 자체만으로는 지원되는 사이트에서 단일 스트림을 가져올 수 있습니다. 하지만 최고의 비디오 품질과 최고의 오디오 품질을 동시에 구현하려면 어떻게 해야 할까요? 내장 챕터나 MP4 리먹싱 기능은 어떻게 처리해야 할까요? 이 모든 작업은 `ffmpeg`과 `ffprobe`에 맡겨집니다. 이 두 가지를 설치하지 않으면 첫 번째 `bv*+ba/b` 시도에서 알 수 없는 메시지가 출력되고 오류가 발생합니다. 따라서 항상 두 가지 모두 설치해야 합니다.
Windows에서는 winget을 사용합니다. `winget install yt-dlp.yt-dlp`를 실행한 다음 `winget install Gyan.FFmpeg`를 실행합니다. Scoop을 이미 사용하고 있다면 Scoop도 괜찮고, Chocolatey도 괜찮습니다. 패키지 관리자가 너무 복잡하게 느껴진다면, GitHub Releases에서 독립 실행형 `yt-dlp.exe`를 다운로드하여 폴더에 넣고 해당 폴더를 PATH 환경 변수에 추가하면 됩니다.
맥 사용자는 더 쉬운 버전을 이용할 수 있습니다. `brew install yt-dlp ffmpeg` 한 줄이면 충분합니다. 이제 다음으로 넘어가세요.
Linux 배포판마다 방식이 다릅니다. Debian은 기본 아카이브에 포함되어 있고, Arch는 `extra` 폴더에 보관하며, Fedora는 표준 경로를 통해 설치합니다. 문제는 타이밍입니다. YouTube 업데이트가 배포판에 반영되더라도 며칠씩 지연되는 경향이 있습니다. 이 문제를 해결하는 가장 좋은 방법은 Python을 이용한 설치입니다. Python 3.9 이상이 설치된 시스템에서 `python -m pip install -U yt-dlp` 명령어를 사용하면 업데이트 당일에 동영상을 다운로드할 수 있습니다. 이 명령어는 기존 패키지를 업그레이드하는 기능도 제공합니다. `sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp && sudo chmod +x /usr/local/bin/yt-dlp` 명령어를 사용하는 방법도 문서에 나와 있지만, 패키지 관리자를 사용할 수 없는 경우에만 사용하는 것이 좋습니다.
설치 후 `yt-dlp -U` 명령은 pip와 바이너리 복사본을 업데이트합니다. 패키지 관리자를 통한 복사본은 의도적으로 건너뜁니다. 설치 방법 하나를 선택해서 일관되게 사용하세요. ffmpeg와 ffprobe의 조합은 필수입니다.
실제로 사용하게 될 기본적인 yt-dlp 명령어
최소한의 치트 시트는 간단합니다. 일반적인 경우에는 `yt-dlp URL`이라는 기본 명령어만으로도 충분합니다. 그 외의 모든 작업은 하나 또는 두 개의 플래그로 처리됩니다.
YouTube 동영상을 추출하기 전에 `yt-dlp -F URL` 명령어를 실행하여 어떤 형식이 있는지 확인하세요. 출력 결과에는 추출기가 찾은 모든 비디오 형식, 오디오 스트림, 병합 전 스트림 목록과 코덱, 파일 크기가 표시됩니다. 대부분의 사용자는 그 후 바로 `yt-dlp -f "bv*+ba/b" URL` 명령어를 사용합니다. 이 명령어는 "최상의 비디오와 최상의 오디오를 선택하고, 두 스트림이 분리되어 있지 않으면 최상의 병합 스트림을 사용"하는 것을 의미합니다. 이는 yt-dlp의 핵심 형식 선택 구문이므로 암기해 두는 것이 좋습니다. 컨테이너 형식을 강제로 지정하려면 `--merge-output-format mp4`를 추가하고, 오디오만 추출하려면 `-x --audio-format mp3`를 추가하세요. 자막의 경우 `--write-subs --sub-langs en`을 사용하면 공식 자막을 가져오고, `--write-auto-subs`를 사용하면 사람이 작성한 자막이 없을 때 자동 생성된 자막을 사용합니다.
목록의 경우, `-a urls.txt`는 한 줄에 하나의 URL을 읽어들이며, 여러 비디오를 한 번에 다운로드하는 표준 방식입니다. `--playlist-items 1-10,15,20-` 플래그는 재생 목록을 1-10,15,20- 순으로 분할합니다. `--download-archive seen.txt`는 완료된 다운로드 기록을 저장하므로, 재실행 시 이미 다운로드한 항목은 건너뜁니다. 다운로드 아카이브는 전체 재생 목록과 채널을 재다운로드 없이 단계적으로 다운로드하는 가장 깔끔한 방법입니다. 출력 파일 이름은 템플릿을 따릅니다. `-o "%(채널)/%(업로드 날짜>%Y-%m-%d) — %(제목).%(확장자)"`는 선택한 폴더에 날짜가 포함된 채널 그룹별 파일 이름을 생성합니다. 이 결과는 Plex 및 Jellyfin 라이브러리와 호환됩니다. `-P` 플래그는 저장 디렉토리를 변경합니다. `--restrict-filenames` 플래그는 파일 시스템 간 호환성을 위해 파일 이름을 ASCII 형식으로 유지합니다. `--print filename` 명령은 다운로드 프로세스가 시작되기 전에 yt-dlp가 기록할 내용을 미리 보여줍니다.
다운로드가 "다운로드되지 않고 재생되는" 경우, 이는 yt-dlp가 링크를 인식하기 전에 브라우저가 링크를 열기 때문입니다. URL을 그대로 인수로 전달하거나 따옴표로 묶어서 터미널에서 yt-dlp를 실행하세요.
고급 사용자 기능: 후처리 도구, 스폰서 차단, 쿠키
기본 사항 외에도 yt-dlp는 놀라울 정도로 방대한 기능을 가지고 있습니다. 아래 플래그들은 실제 사용에서 가장 중요한 기능들입니다.
| 범주 | 깃발 | 사용 |
|---|---|---|
| 서식 정렬 | `-S "+size,+br,res:1080"` | 1080p 해상도에서 파일 크기가 작을수록 좋습니다. |
| 후처리 | `--썸네일 삽입 --메타데이터 삽입 --챕터 삽입 --자막 삽입` | 아트워크, 태그, 챕터 및 자막을 파일에 포함시키세요. |
| 스폰서블록 | `--sponsorblock-mark all` / `--sponsorblock-remove sponsor,selfpromo` | YouTube 동영상에서 스폰서 부분을 표시하거나 잘라내세요. |
| 입증 | `--cookies-from-browser firefox` | 브라우저에서 쿠키를 사용합니다. Chrome, Brave, Edge, Safari, Opera, Vivaldi, Chromium, Whale을 지원합니다. |
| 라이브 녹음 | `--live-from-start --hls-use-mpegts` | 늦게 참여하더라도 처음부터 라이브 스트림을 녹화하세요. |
| 속도 | `--concurrent-fragments 8` | 병렬 HLS 또는 DASH 조각 다운로드 |
| 외부 다운로더 | `--downloader aria2c` | 병렬 처리를 위해 aria2c로 핸드 트랜스퍼가 전달됩니다. |
| 플러그인 | `~/.yt-dlp/plugins/` | 사용자 정의 추출기 및 후처리기를 간편하게 추가하세요. |
SponsorBlock 연동은 유용합니다. 이 옵션은 SponsorBlock 커뮤니티 데이터베이스를 활용하여 YouTube 동영상의 챕터 마커를 표시하거나 스폰서 섹션을 완전히 제거합니다. `--cookies-from-browser` 옵션은 Firefox 컨테이너를 포함한 브라우저 프로필에서 쿠키를 읽어오는데, 이는 유료 콘텐츠나 로그인이 필요한 콘텐츠를 다운로드하는 가장 깔끔한 방법입니다. 수 테라바이트에 달하는 장시간 다운로드 아카이브의 경우, 외부 다운로더를 aria2c로 넘겨주면 TCP 윈도우가 병목 현상을 일으키는 네트워크에서 다운로드 속도가 눈에 띄게 향상됩니다. 또한 `--split-chapters` 옵션은 동영상 콘텐츠를 챕터별로 분할하여 여러 개의 강연을 하나의 파일로 업로드할 때 유용합니다. yt-dlp는 사이트에서 여러 개의 동영상 트랙을 제공하는 경우 `--video-multistreams` 옵션을 사용하여 하나의 트랙으로 결합할 수도 있지만, 실제로 이러한 경우는 드뭅니다.
플러그인 시스템은 별도의 항목으로 설명할 필요가 있습니다. yt-dlp는 `~/.yt-dlp/plugins/`에 있는 Python 모듈(또는 `pip`을 통해 `yt-dlp-plugins` 진입점으로 설치된 모듈)을 자동으로 검색하여 추출기 또는 후처리기로 로드합니다. 이것이 바로 상위 프로젝트 패치를 기다리지 않고도 특수한 사이트를 지원하는 방법입니다. 또한 아래에서 설명하는 PoToken 제공자 플러그인이 연동되는 방식이기도 합니다.
2025-2026년 PoToken 및 SABR 상황
YouTube는 2025년에 yt-dlp의 작동을 더욱 어렵게 만들었습니다. 완벽하게 작동하던 설치가 2026년에 갑자기 실패하기 시작하는 이유는 두 가지 변경 사항 때문입니다.
PoToken이 더 중요해졌습니다. 이제 모든 동영상 요청에는 출처 증명 토큰(Proof-of-Origin Token, POToken)이 필요합니다. 이 토큰은 동영상에 연결되어 있으며, 만료 시간이 짧고, 세션에도 연결됩니다. 수동으로 토큰을 추출하는 방식은 몇 달 전에 이미 작동을 멈췄습니다. 대신 `bgutil-ytdlp-pot-provider`라는 작은 도우미 프로그램을 사용하면 토큰을 필요에 따라 생성하고, 메인 yt-dlp 호출에서 이를 자동으로 가져옵니다. yt-dlp 위키에는 PO 토큰 설정 가이드가 있습니다. 이 도우미 프로그램 없이는 요청 품질이 저하되거나 아예 차단될 수 있으며, 심지어 30초 전에 브라우저에서 재생했던 동영상이라도 yt-dlp가 제대로 작동하지 않을 수 있습니다.
SABR은 두 번째 핵심 요소입니다. SABR은 YouTube의 서버 측 적응형 비트 전송률(Adaptive Bitrate)이며, 2025년까지 웹 추출기가 SABR 전용 형식을 반환하기 시작하면서 일반적인 다운로드 경로가 깨졌습니다. 해결 방법은 일반적으로 추출기 인자에 힌트를 추가하고 로그인한 브라우저의 쿠키를 사용하는 것입니다. 이 문제가 해결될 때까지 #12482, #14307, #14390, #16082, #13968 이슈를 주시해야 합니다. 결과적으로 yt-dlp는 여전히 대부분의 공개 YouTube 콘텐츠에서 작동하지만, 2026년에는 "그냥 작동하는" 명령이 "PoToken 제공자, 최신 쿠키, 그리고 약간의 인내심"이 필요한 명령으로 바뀔 가능성이 높습니다.

2026년 yt-dlp의 법적 지위: 미국, 독일, EU
법적인 답변은 관할권 문제이며, 핵심은 아직 아무것도 확정되지 않았다는 것입니다.
미국 에서는 yt-dlp에 대해 구체적으로 판결을 내린 법원이 없습니다. 2020년 RIAA 사건이 가장 유사한 선례이며, 비사법적 절차로 판결이 뒤집혔습니다. 미국 저작권청의 제9차 3년 주기 섹션 1201 최종 규칙은 2024년 10월 28일부터 2027년 10월 28일까지 발효되었습니다. 이 규칙은 기존 면제 조항을 갱신하고 AI 신뢰성 연구에 대한 면제 조항을 추가했지만, 개인 비디오 아카이빙에 대한 일반적인 우회 면제 조항은 만들지 않았습니다. 의도와 관계없이 DRM을 건드리는 도구를 범죄화하는 섹션 1201의 구조적 문제는 여전히 남아 있습니다.
독일 에서는 소프트웨어 자체보다는 호스팅 업체의 책임 문제가 핵심 쟁점이었습니다. 함부르크 고등지방법원은 2024년 11월 27일, 유튜브 다운로드 우회 도구를 홍보하는 사이트를 호스팅하는 마인츠 소재 업체 우버스페이스(Uberspace)의 항소를 기각했습니다. 이 판결은 우회 도구를 홍보하는 사이트에 대해 호스팅 업체가 책임을 질 수 있다는 2023년 하급심 판결을 확정한 것입니다. 이 법리는 유튜브 다운로드 우회 도구 자체를 직접적으로 불법화하는 것은 아니지만, 우회 기능을 노골적으로 광고하는 모든 프로젝트에 대해 독일 내 호스팅 업체의 위험성을 높입니다.
EU 차원 에서 디지털 서비스법은 통지 및 조치에 따른 삭제 절차를 표준화하고 있지만(제16조~제17조), 다운로더 소프트웨어 자체를 규제하지는 않습니다. 호스팅 업체가 yt-dlp를 차단하도록 강제하는 EU 차원의 규정도 없습니다. 개인적으로 자신의 콘텐츠에 yt-dlp를 사용하는 것은 어느 관할권에서도 법적 제재 대상이 아닙니다. 콘텐츠 제작자가 허가한 경우에도 마찬가지입니다. 문제는 콘텐츠 배포 및 스트림 보호 기능과의 상호 작용에서 발생합니다.
GUI 프런트엔드 및 더 넓은 다운로더 생태계
모든 사람이 터미널을 원하는 것은 아니며, yt-dlp의 명령줄 인터페이스는 마케팅 강점이 아닙니다. yt-dlp는 여러 비디오 다운로더 중 하나이지만, 대부분의 최신 비디오 다운로더 GUI의 핵심 엔진으로 사용됩니다. Stacher는 가장 완성도 높은 크로스 플랫폼 GUI를 제공합니다. Tartube는 Python/GTK 기반의 대안입니다. yt-dlg는 yt-dlp를 위해 특별히 개발된 커뮤니티 포크입니다. Tube-Archivist는 채널 아카이빙을 위한 자체 호스팅 Docker 서버로, 다양한 웹사이트에서 예약된 시간에 비디오를 다운로드할 수 있습니다. YTDL-Material은 자체 호스팅 웹 프런트엔드입니다. ytdl-sub는 Plex 및 Jellyfin 자체 호스팅 사용자에게 인기 있는 선언적 YAML 구성 도구입니다. JDownloader 2는 플러그인을 통해 yt-dlp를 통합합니다. 각 도구는 자체 비디오 선택 인터페이스와 다운로드 옵션 패널을 제공하지만, 핵심적인 작업은 yt-dlp에서 처리합니다.
| 도구 | 현황(2026) | 범위 | 특허 |
|---|---|---|---|
| yt-dlp | 활발하게 매주 새로운 콘텐츠가 출시됩니다. | 1,800개 이상의 비디오/오디오 사이트 | 무허가 |
| 유튜브-dl | 느린 속도, 마지막 릴리스는 2021년 9월 | 유튜브 + 약 1,000개 사이트 | 무허가 |
| 갤러리-dl | 활동적인 | 이미지 갤러리; 동영상은 yt-dlp로 호출할 수 있습니다. | GPLv2 |
| 스트림링크 | 활동적인 | 플레이어로 전송되는 라이브 스트림 | BSD-2 |
정리 규칙: 아카이브 다운로드에는 yt-dlp, 플레이어로 실시간 스트리밍할 때는 streamlink, 이미지가 많은 사이트에는 gallery-dl을 사용하세요.
안전 정보: yt-dlp 다운로드 위치 및 가짜 구별법
안전한 yt-dlp 다운로드 경로는 GitHub 릴리스, PyPI(`pip install yt-dlp`), 공식 배포 패키지, 그리고 주요 Windows 패키지 관리자(Winget, Scoop, Chocolatey)뿐입니다. 제3자 "yt-dlp 다운로더" 사이트는 애드웨어, 마이너 또는 변조된 바이너리를 포함하고 있습니다. Windows Defender는 과거에 PyInstaller로 패키징된 `yt-dlp.exe`를 `Trojan:Win32/Wacatac.B!ml`로 오탐지한 사례가 있습니다(이슈 #7532 및 #15415). 이는 휴리스틱 기반의 오탐지입니다. 시그니처 데이터베이스는 일반적으로 며칠 내에 삭제됩니다. yt-dlp와 같은 소규모 오픈 소스 프로젝트는 자원봉사자들의 유지 관리에 의존합니다. Plisio와 같은 게이트웨이를 통한 암호화폐 기부는 해외 기여자들이 지원을 받을 수 있는 안전한 방법 중 하나입니다.
예를 들어 설명해 보겠습니다. 프레젠테이션을 위해 YouTube 동영상을 컴퓨터에 다운로드하고 싶다고 가정해 봅시다. 명령어는 `yt-dlp -f "bv*+ba/b" --merge-output-format mp4 URL`이며, 이 명령어를 사용하면 올바른 다운로드 형식을 얻을 수 있습니다. yt-dlp는 youtube-dl보다 더 많은 추출 도구를 제공하는 포크 버전이며, 원본에서 다운로드가 불가능한 경우에도 동영상을 다운로드할 수 있도록 해주는 다양한 기능을 제공합니다. yt-dlp는 플러그인 시스템을 통해 특정 소스까지 지원하며, 여러 웹사이트에서 동영상을 다운로드해야 할 때는 `-a urls.txt` 옵션을 사용할 수 있습니다. yt-dlp에서 지원하는 사이트 목록은 `supportedsites.md` 파일에 있습니다.