yt-dlp는 유튜브 다운로더 중 사실상 표준입니다. 전 세계 개발자들이 유튜브 정책 변경에 실시간으로 대응하고, YouTube 외에 수백 개 사이트도 지원합니다. 터미널이 익숙하다면 유료 앱보다 훨씬 빠르고 강력하게 쓸 수 있습니다. 자주 쓰는 명령어를 alias로 등록해 두면 클릭 한 번과 다를 바 없어집니다.
설치
Mac에 Homebrew가 있다면 두 줄로 끝납니다.
brew install yt-dlp ffmpeg
ffmpeg는 분리 저장된 고화질 영상 트랙과 오디오 트랙을 하나의 파일로 합치는 데 사용됩니다. 함께 설치하지 않으면 최고 화질 다운로드가 안 될 수 있습니다.
설치 확인:
yt-dlp --version
ffmpeg -version
기본 다운로드
가장 단순한 사용법입니다. URL만 넘기면 화질과 오디오를 자동으로 합쳐 최적 파일로 저장합니다.
yt-dlp "https://www.youtube.com/watch?v=영상ID"
큰따옴표는 URL에 & 같은 특수문자가 포함될 때 오류를 방지합니다. 습관적으로 붙이는 걸 권장합니다.
화질 선택
사용 가능한 포맷 목록 확인
yt-dlp -F "URL"
이 명령을 실행하면 해당 영상에서 받을 수 있는 포맷 목록이 출력됩니다. 각 줄 맨 앞의 숫자가 포맷 ID입니다.
ID EXT RESOLUTION FPS │ SIZE
─────────────────────────────────
251 webm audio only │ 4.2MiB
140 m4a audio only │ 5.1MiB
137 mp4 1920x1080 30 │ 120MiB
248 webm 1920x1080 30 │ 97MiB
271 webm 2560x1440 30 │ 230MiB
특정 화질로 다운로드
# 포맷 ID 직접 지정 (영상+오디오 합치기)
yt-dlp -f "137+140" "URL"
# 1080p 이하 최고 화질을 mp4로 자동 선택
yt-dlp -f "bestvideo[height<=1080][ext=mp4]+bestaudio[ext=m4a]" "URL"
# 그냥 최고 화질 (포맷 자동 선택)
yt-dlp -f "bestvideo+bestaudio" "URL"
일상적으로는 -f "bestvideo[height<=1080]+bestaudio" 정도면 충분합니다. 4K 영상은 파일 크기가 매우 크고, 인터넷 속도에 따라 다운로드도 오래 걸립니다.
오디오만 추출 (MP3)
팟캐스트나 음악 영상에서 음원만 빼고 싶을 때 유용합니다.
# MP3로 추출
yt-dlp -x --audio-format mp3 "URL"
# 오디오 품질 지정 (0=최고, 9=최저, 기본값 5)
yt-dlp -x --audio-format mp3 --audio-quality 0 "URL"
# m4a (파일 크기 작고 품질 좋음, 별도 변환 없이 빠름)
yt-dlp -x --audio-format m4a "URL"
플레이리스트 일괄 다운로드
재생 목록 URL을 그대로 넣으면 전체를 순서대로 받습니다.
# 플레이리스트 전체 다운로드
yt-dlp "https://www.youtube.com/playlist?list=플레이리스트ID"
# 특정 범위만 (1번~5번)
yt-dlp --playlist-items 1-5 "플레이리스트URL"
# 특정 항목만 (1번, 3번, 5번)
yt-dlp --playlist-items 1,3,5 "플레이리스트URL"
플레이리스트 다운로드 시 -o 옵션으로 폴더와 파일명을 지정하면 정리가 편합니다. 아래 출력 파일명 설정 섹션을 참고하세요.
자막 다운로드
# 사용 가능한 자막 목록 확인
yt-dlp --list-subs "URL"
# 한국어 자막과 함께 영상 다운로드
yt-dlp --write-sub --sub-lang ko "URL"
# 자동 생성 자막 포함 (Auto-generated)
yt-dlp --write-auto-sub --sub-lang ko "URL"
# 자막만 다운로드 (영상 제외)
yt-dlp --write-sub --skip-download --sub-lang ko "URL"
# 자막을 SRT 형식으로 변환
yt-dlp --write-sub --sub-lang ko --convert-subs srt "URL"
출력 파일명 설정
-o 옵션으로 저장 경로와 파일명 형식을 지정할 수 있습니다. %(변수명)s 형태로 메타데이터를 활용합니다.
# 제목으로 저장 (기본값과 유사)
yt-dlp -o "%(title)s.%(ext)s" "URL"
# 업로더_제목 형식
yt-dlp -o "%(uploader)s_%(title)s.%(ext)s" "URL"
# 연도/월 폴더 아래 저장
yt-dlp -o "~/Downloads/YouTube/%(upload_date>%Y/%m)s/%(title)s.%(ext)s" "URL"
# 플레이리스트 번호 포함
yt-dlp -o "%(playlist_index)s_%(title)s.%(ext)s" "플레이리스트URL"
자주 쓰는 변수:
| 변수 | 의미 |
|---|---|
%(title)s | 영상 제목 |
%(uploader)s | 채널명 |
%(upload_date)s | 업로드 날짜 (YYYYMMDD) |
%(ext)s | 파일 확장자 |
%(id)s | 영상 ID |
%(playlist_index)s | 플레이리스트 내 순서 |
유용한 추가 옵션
# 이미 다운로드한 파일은 건너뜀 (재다운로드 방지)
yt-dlp --download-archive downloaded.txt "URL"
# 다운로드 속도 제한 (네트워크 배려)
yt-dlp -r 2M "URL"
# 썸네일(Thumbnail)도 함께 저장
yt-dlp --write-thumbnail "URL"
# 영상 정보만 출력 (다운로드 안 함)
yt-dlp --dump-json "URL"
# 로그인이 필요한 영상 (브라우저 쿠키 사용)
yt-dlp --cookies-from-browser chrome "URL"
설정 파일로 매번 입력 생략하기
자주 쓰는 옵션은 설정 파일에 저장해 두면 매번 입력할 필요가 없습니다.
mkdir -p ~/.config/yt-dlp
nano ~/.config/yt-dlp/config
설정 파일 예시:
# 기본 화질: 1080p 이하 최고 화질
-f bestvideo[height<=1080]+bestaudio/best
# 저장 경로와 파일명 형식
-o ~/Downloads/YouTube/%(upload_date>%Y)s/%(title)s.%(ext)s
# ffmpeg 경로 (Homebrew 기본 경로)
--ffmpeg-location /opt/homebrew/bin/ffmpeg
# 썸네일 저장
--write-thumbnail
# 이미 받은 파일 기록
--download-archive ~/Downloads/YouTube/downloaded.txt
설정 파일에 저장한 옵션은 yt-dlp "URL" 만 입력해도 자동으로 적용됩니다.
쉘 Alias 등록
자주 쓰는 명령어 조합을 짧은 이름으로 등록해 두면 훨씬 빠릅니다. ~/.zshrc 파일에 추가하세요.
# ~/.zshrc 에 추가
# 최고 화질 다운로드
alias ytdl='yt-dlp -f "bestvideo[height<=1080]+bestaudio" -o "~/Downloads/YouTube/%(title)s.%(ext)s"'
# MP3 추출
alias ytmp3='yt-dlp -x --audio-format mp3 --audio-quality 0 -o "~/Downloads/YouTube/%(title)s.%(ext)s"'
# 자막 포함 다운로드
alias ytsub='yt-dlp --write-auto-sub --sub-lang ko -o "~/Downloads/YouTube/%(title)s.%(ext)s"'
저장 후 터미널을 재시작하거나 source ~/.zshrc 를 실행하면 바로 사용할 수 있습니다.
ytdl "https://www.youtube.com/watch?v=영상ID"
ytmp3 "https://www.youtube.com/watch?v=영상ID"
업데이트
유튜브는 자주 내부 구조를 바꿉니다. 다운로드가 갑자기 안 된다면 먼저 업데이트부터 해보세요.
brew upgrade yt-dlp
또는 yt-dlp 자체 업데이트 기능:
yt-dlp -U
자주 만나는 오류
| 오류 메시지 | 원인 | 해결 |
|---|---|---|
ERROR: Sign in to confirm you're not a bot | 유튜브 봇 차단 | --cookies-from-browser chrome 추가 |
ffmpeg not found | ffmpeg 미설치 | brew install ffmpeg |
Requested format is not available | 해당 화질 없음 | -F 로 가능한 포맷 확인 후 재시도 |
HTTP Error 429 | 너무 빠른 요청 | -r 1M 으로 속도 제한 |
Video unavailable | 지역 차단 또는 삭제된 영상 | VPN 사용 또는 해결 불가 |
저작권 주의
다운로드한 영상은 개인 감상 목적으로만 사용하세요. 재업로드나 상업적 이용은 저작권법 위반이 될 수 있습니다.
정리
yt-dlp는 한 번 세팅해 두면 유료 앱보다 훨씬 강력하고 빠릅니다. 설정 파일과 alias까지 잡아두면 ytdl "URL" 한 번으로 모든 게 끝납니다. 처음 진입 장벽이 조금 있을 뿐, 익숙해지면 다시는 GUI 앱으로 돌아가기 싫어질 겁니다.
GUI가 필요하다면 yt-dlp를 내부 엔진으로 쓰는 Reel 이나 Stacher 앱을 먼저 써보는 것도 좋은 출발점입니다.