원문 캡처 · github.com
원문 캡처 · github.com

파이썬 도구 Download-Simply-Videos-From-YouTube는 URL을 입력해 유튜브 영상·재생목록·채널을 MP4 또는 MP3로 내려받는다. 여러 URL을 한 번에 처리할 수 있으며, 사용하려면 Python 3.11 이상과 FFmpeg, Deno가 필요하다.

설치

PyPI에서 설치하려면 먼저 아래에 설명된 FFmpeg, Deno, Python 3.11 이상을 설치한 뒤 가상 환경을 만들고 패키지를 설치한다.

bash
python3 -m venv venv
source venv/bin/activate
python -m pip install download-simply-videos-from-youtube
download-youtube-videos

Windows에서는 source venv/bin/activate 대신 venv\\Scripts\\activate를 사용한다.

소스에서 설치하려면 Python 3.11 이상을 설치한다. 프로젝트는 포장 도구 및 yt-dlp 최신 릴리스와의 호환성을 위해 Python 3.15를 권장한다. Python 다운로드에서 설치할 수 있다. Windows에서는 설치 첫 화면 아래쪽의 “Add Python to PATH”를 선택해야 한다.

FFmpeg는 영상과 오디오를 합치는 데 사용한다. Deno는 yt-dlp가 유튜브의 다운로드 확인 절차를 처리하는 데 필요한 자바스크립트 런타임이다. 프로젝트 설명에 따르면 Deno가 없으면 영상이 240p나 360p의 낮은 화질로 내려받아질 수 있다.

  • macOS: 터미널에서 brew install ffmpeg deno를 실행한다. Homebrew가 없다면 Homebrew 설치 페이지를 이용한다.
  • Windows: FFmpeg를 내려받아 압축을 풀고 PATH에 추가한다. 설치 안내도 제공된다. 이어서 irm https://deno.land/install.ps1 | iex를 실행해 Deno를 설치한다.
  • Ubuntu/Debian Linux: 터미널에서 sudo apt-get install ffmpeg와 curl -fsSL https://deno.land/install.sh | sh를 실행한다.

프로젝트 페이지의 초록색 Code 버튼에서 Download ZIP을 선택해 파일을 내려받고 압축을 푼다. 프로젝트 폴더 안에서 터미널을 연다. macOS는 폴더를 마우스 오른쪽 버튼으로 클릭해 New Terminal at Folder를 선택하고, Windows는 폴더를 연 뒤 주소 표시줄에 cmd를 입력하고 Enter를 누른다. Linux에서는 폴더를 마우스 오른쪽 버튼으로 클릭해 Open Terminal을 선택한다.

Python 3.11부터는 여러 macOS·Linux 시스템이 시스템 관리 환경에 대한 전역 pip install을 제한한다. 프로젝트는 PEP 668에 따라 가상 환경을 이용해 의존성을 별도로 설치하도록 안내한다. 다음 명령을 순서대로 실행한다.

bash
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Windows에서는 활성화 명령을 venv\\Scripts\\activate로 바꾼다. 설치되는 항목에는 편집 가능한 모드의 프로젝트, 프로젝트가 선언하고 검토한 yt-dlp 릴리스, 유튜브 확인 절차 처리 도구가 포함된다. 정확한 의존성 버전은 pyproject.toml에 기록되며, 안내문은 유튜브 측 변경으로 업데이트가 필요할 때 이 버전을 신중히 조정하도록 권한다. 프롬프트 앞에 (venv)가 표시되면 가상 환경이 활성화된 것이다. 새 터미널을 열 때마다 macOS/Linux에서는 source venv/bin/activate, Windows에서는 venv\\Scripts\\activate를 실행해야 한다.

사용 방법

가상 환경을 활성화한 뒤 터미널에서 다음 명령을 실행한다.

bash
python download.py

유튜브 URL을 입력하고 Enter를 누르면 영상이 downloads/ 폴더에 저장된다. 예를 들어 입력 형식은 Enter YouTube URL(s): https://www.youtube.com/watch?v=Hhb8ghB8lMg다.

여러 URL은 쉼표로 구분해 한 번에 입력할 수 있다. 또는 URL 입력을 비워 둔 채 Enter를 누르면 한 줄에 하나씩 입력하는 모드로 전환된다. 이 모드에서는 URL을 차례로 입력하고, 마지막에 빈 줄에서 Enter를 다시 누르면 입력이 끝난다. 영상·재생목록·채널 URL을 한 명령에서 섞어 넣을 수도 있다. URL 하나가 실패해도 나머지 다운로드는 계속되므로, 만료된 링크나 비공개 영상이 다른 항목을 중단시키지는 않는다.

형식을 물을 때 2를 선택하면 MP3 오디오만 내려받는다. 기본 선택은 MP4 영상이다. 이 모드는 음악, 팟캐스트, 강의에 사용할 수 있으며 재생목록과 채널에도 적용된다.

재생목록 URL을 입력하면 목록의 모든 영상이 내려받아져 각 재생목록 이름의 폴더에 저장된다. 재생목록 URL 여러 개도 쉼표로 구분해 입력할 수 있다. 파일 이름에는 순번이 붙는다. 예를 들면 downloads/ 안에 My Awesome Playlist/ 폴더와 01-First Video.mp4, 02-Second Video.mp4 같은 파일이 만들어지고, 개별 영상은 별도 파일로 저장된다.

채널 URL을 입력하면 채널의 모든 영상이 내려받힌다. https://www.youtube.com/@channelname, https://www.youtube.com/channel/UCxxxxxxxxx, https://www.youtube.com/c/channelname, https://www.youtube.com/user/username 형식을 지원한다. 영상은 채널 이름의 폴더에 업로드 날짜순으로 저장되며, 파일 이름에는 20240815-Latest Tech Review.mp4처럼 날짜가 포함될 수 있다. 영상이 수백 개 있는 채널은 다운로드에 오래 걸릴 수 있다. 프로젝트 설명에 따르면 스크립트는 유튜브의 차단을 피하도록 요청 속도를 자동으로 조절한다.

추가 옵션과 주의사항

다운로드가 인터넷 연결 끊김이나 터미널 종료로 중단되면 downloads/ 폴더에 미완성 파일이 남을 수 있다. 아래 명령으로 .part, .ytdl, 임시 조각 파일을 삭제할 수 있다. 완료된 다운로드는 삭제하지 않으며, 외부 의존성이 필요 없어 가상 환경을 활성화하지 않아도 된다.

bash
python3 cleanup_downloads.py

영상의 사용 가능한 화질 목록을 보려면 다음 명령을 사용한다. PyPI 설치본에서는 download-youtube-videos --list-formats를 사용할 수 있다.

bash
python download.py --list-formats

여러 영상을 받을 때 동시에 실행할 다운로드 수를 지정할 수 있다. 범위는 1~5이며 기본값은 3이다. 수를 늘리면 다운로드가 빨라질 수 있지만 대역폭을 더 사용한다. download.py를 편집하면 최대 영상 해상도, 기본 저장 폴더, 실패 시 재시도 횟수를 변경할 수 있다.

개발자를 위한 설치 방법은 저장소를 복제하고 가상 환경을 만든 뒤 의존성을 설치하는 것이다. 복제 명령은 git clone https://github.com/pH-7/Download-Simply-Videos-From-YouTube.git이며, 이어 프로젝트 폴더로 이동해 python3 -m venv venv로 가상 환경을 만든다. 활성화 명령은 macOS/Linux에서 source venv/bin/activate, Windows에서 venv\\Scripts\\activate다. 이후 pip install -r requirements.txt를 실행하고 FFmpeg를 설치한다. FFmpeg 설치 방법은 빠른 시작의 2단계에 안내돼 있다.

프로젝트는 파이르 앙리 소리아(Pierre-Henry Soria)가 만들었으며 MIT 라이선스로 제공된다. 제작자는 스크립트가 교육 목적으로만 제공된다고 밝히며, 사용 전에 콘텐츠를 내려받을 권리가 있는지 확인하고 유튜브 서비스 약관을 준수하라고 안내한다. 프로젝트 저장소