유튜브 영상을 다운로드 할 수 있는 파이썬 코드 예제 (yt-dlp)

2025년 12월 21일IT15분 읽기

유튜브 영상을 다운로드 할 수 있는 파이썬 코드 예제 (yt-dlp)

5분 안에 유튜브 영상을 다운로드할 수 있는 파이썬 프로그램 작성방법 공유


1) 준비물

  • Python 3.13 이상 권장
  • FFmpeg (영상/음원 병합에 필요)
  • 인터넷 연결

버전을 확인합니다.

1python --version

Windows에서 python이 안 되면 py --version을 먼저 확인하세요.


2) FFmpeg 설치

macOS

1brew install ffmpeg

Windows (winget)

1winget install Gyan.FFmpeg

Ubuntu/Debian

1sudo apt-get update2sudo apt-get install ffmpeg

설치 확인:

1ffmpeg -version

3) 파이썬 가상환경 만들기 (권장)

프로젝트 폴더에서 아래를 실행합니다.

1python -m venv .venv

가상환경 활성화:

  • macOS / Linux
1source .venv/bin/activate
  • Windows (PowerShell)
1.\.venv\Scripts\Activate.ps1

4) 필수 라이브러리 설치

이 스크립트에는 yt-dlp만 있으면 됩니다.

1pip install yt-dlp

5) 전체 코드 작성하기

아래 내용을 그대로 복사해 youtube-download.py 파일로 저장하세요.

1import yt_dlp2 3# 다운로드할 유튜브 영상 URL을 넣어주세요.4url = "https://www.youtube.com/watch?v=7nb_Ukqz2MI"5 6# yt-dlp 옵션 설정7ydl_opts = {8    # 1080p 이하 최고 화질 비디오 + 최고 음질 오디오, 없으면 best로 대체9    "format": "bestvideo[height<=1080]+bestaudio/best",10    # 병합 시 mp4로 출력11    "merge_output_format": "mp4",12    "postprocessors": [13        {14            # FFmpeg로 mp4 변환15            "key": "FFmpegVideoConvertor",16            # yt-dlp 옵션 이름은 'preferedformat' (오타처럼 보이지만 맞음)17            "preferedformat": "mp4",18        }19    ],20}21 22# 다운로드 실행23with yt_dlp.YoutubeDL(ydl_opts) as ydl:24    info = ydl.extract_info(url, download=True)25    title = info.get("title", "Unknown")26    print(f"{title} 다운로드 완료")

파일은 아무 폴더나 만들어 저장해도 괜찮습니다. 다만 youtube-download.py 파일이 있는 폴더에서 명령어를 실행해야 합니다. 예를 들어 Downloads/youtube-downloader 같은 새 폴더를 만들고 그 안에 저장해 두면 관리하기 쉽습니다.

추천 폴더 구조 예시:

youtube-downloader/
├── youtube-download.py
└── downloads/

6) 다운로드할 영상 URL 바꾸기

youtube-download.py 파일에서 아래 부분의 URL을 원하는 영상으로 바꿉니다.

1url = "https://www.youtube.com/watch?v=7nb_Ukqz2MI"

7) 실행하기

1python youtube-download.py

정상 실행되면 제목과 함께 다운로드 완료 메시지가 출력됩니다.

<영상 제목> 다운로드 완료

파일은 현재 폴더에 저장됩니다.


8) 자주 묻는 질문 / 문제 해결

Q1. ffmpeg가 없다고 나와요

FFmpeg가 설치되어 있지 않거나 PATH에 등록되지 않은 상태입니다. 위의 FFmpeg 설치 과정을 다시 확인해 주세요.

Q2. 1080p가 아닌 화질로 받아져요

원본 영상에 1080p가 없는 경우 자동으로 가능한 최고 화질로 내려갑니다.

Q3. 저장 위치를 바꾸고 싶어요

아래 옵션을 ydl_opts에 추가하세요.

1"outtmpl": "downloads/%(title)s.%(ext)s",