주요 콘텐츠로 건너뛰기
AI 튜토리얼

Python으로 YouTube 동영상을 AI 생성 Shorts로 변환하기

오픈 소스 Python 도구인 AI Shorts Generator를 설치하고 사용하는 방법을 알아보세요. 이 도구는 YouTube 동영상이나 로컬 동영상을 음성 텍스트 변환, AI 기반 하이라이트 순위 지정, 자동 크롭, 자막, 선택적 훅 기능을 활용해 세로형 클립으로 변환합니다.

Python으로 YouTube 동영상을 AI 생성 Shorts로 변환하기

AI Shorts Generator란?

AI Shorts Generator는 OpusClip 및 Vidyo.ai와 같은 숏폼 동영상 SaaS 제품을 대체할 수 있는 무료 오픈 소스 도구입니다. YouTube URL 또는 로컬 동영상 파일을 받아 활용도 높은 순간을 찾고, 워터마크나 클립 생성 전 크레딧 차감 없이 바로 게시할 수 있는 숏폼 동영상으로 렌더링합니다.

이 프로젝트는 로컬 음성 인식과 LLM 제공업체를 결합합니다. faster-whisper가 타임스탬프가 포함된 대본을 생성하고, OpenAI, Gemini 또는 MuAPI가 해당 대본을 분석하여 잠재적인 하이라이트를 식별하고 순위를 매깁니다.

처리된 세로형 숏폼 예시

처리 파이프라인 작동 방식

  1. 다운로드 또는 불러오기: 애플리케이션이 YouTube 동영상을 다운로드하거나 로컬 동영상 경로를 읽습니다.
  2. 음성 인식: faster-whisper가 로컬에서 타임스탬프가 포함된 대본을 생성합니다.
  3. 분류: 선택한 LLM이 인터뷰, 팟캐스트, 튜토리얼 또는 브이로그와 같은 콘텐츠 유형과 전개 속도를 감지합니다.
  4. 하이라이트 순위 지정: LLM이 강력한 도입부, 감정적 고조, 폭로, 갈등, 인용할 만한 발언, 이야기의 절정, 실용적 가치 등의 신호를 사용해 각 순간을 평가합니다.
  5. 중복 제거: 겹치는 후보를 점수에 따라 중복 제거합니다.
  6. 클립 선택: --n 옵션에 따라 순위가 가장 높은 후보를 선택합니다.
  7. 렌더링: 선택한 각 구간을 요청한 화면 비율에 맞게 자동으로 잘라냅니다. 비활성화하지 않으면 시작 부분에 맥락을 반영한 AI 도입부가 추가됩니다.

주요 기능

  • YouTube 및 로컬 동영상 지원: 동영상 URL을 처리하거나 컴퓨터에 이미 저장된 파일을 처리합니다.
  • 자동 하이라이트 선택: 숏폼 콘텐츠로 활용할 가능성이 높은 순간을 찾습니다.
  • 세로형 렌더링: 숏폼 플랫폼에 적합한 9:16 동영상을 생성합니다.
  • 다중 출력: --n을 사용해 하나의 소스에서 여러 하이라이트를 렌더링합니다.
  • AI 생성 도입부: 맥락을 반영한 시작 도입부를 추가하거나 --no-hook으로 비활성화합니다.
  • 자막, 번역 및 음성 해설: 콘텐츠 처리 기능을 하나의 워크플로로 통합합니다.
  • 로컬 웹 인터페이스: 여러 동영상을 대기열에 추가하고 렌더링 옵션을 시각적으로 설정할 수 있습니다.
  • API 제공: API를 통해 생성기를 다른 프로젝트에 통합할 수 있습니다.

요구 사항

시작하기 전에 다음 항목이 환경에 준비되어 있는지 확인하세요.

  • Python 3.10 이상
  • OpenAI, Gemini 또는 MuAPI용 API 키
  • 저장소를 복제하기 위한 Git
  • requirements.txt에 나열된 Python 패키지

Gemini는 일일 제한이 있는 무료 요금제를 제공합니다. OpenAI는 유료이며, MuAPI는 구독 없이 사용량에 따라 지불하는 유료 액세스를 제공합니다. Google AI Studio, OpenAI Platform 또는 MuAPI에서 키를 발급받으세요.

설치 및 설정

1. 저장소 복제

git clone https://github.com/pierrenade/short-video-generator-AI.git
cd short-video-generator-AI

2. 가상 환경 생성

프로젝트 패키지가 다른 설치 항목과 충돌하지 않도록 격리된 Python 환경을 생성합니다.

python -m venv venv

Windows에서는 다음 명령으로 활성화합니다.

venv\Scripts\activate

Linux 또는 macOS에서는 다음 명령으로 활성화합니다.

source venv/bin/activate

3. 종속 항목 설치

pip install -r requirements.txt

4. 환경 파일 설정

프로젝트 디렉터리에서 .env 파일을 생성하거나 편집합니다. LLM_PROVIDER를 openai, gemini 또는 muapi로 설정한 다음 해당 API 키를 입력합니다.

LLM_PROVIDER=openai

OPENAI_API_KEY=your_openai_key_here
OPENAI_MODEL=gpt-4o-mini

GEMINI_API_KEY=your_gemini_key_here
GEMINI_MODEL=gemini-2.5-flash

MUAPI_API_KEY=your_muapi_key_here

LOCAL_WHISPER_MODEL=base
LOCAL_WHISPER_DEVICE=auto

LLM_PROVIDER에서 선택한 제공업체의 유효한 API 키만 있으면 됩니다. OpenAI 및 Gemini 모델 설정은 선택 사항입니다.

Whisper 설정 선택

LOCAL_WHISPER_MODEL에는 tiny, base, small, medium 또는 large-v3를 사용할 수 있습니다. README에서는 시작 설정으로 base를 사용합니다.

LOCAL_WHISPER_DEVICE에는 auto, cpu 또는 cuda를 사용할 수 있습니다. CPU 또는 CUDA 처리를 특별히 강제해야 하는 경우가 아니라면 auto를 유지하세요.

첫 숏폼 동영상 생성

YouTube URL을 main.py에 전달합니다.

python main.py "https://www.youtube.com/watch?v=video_id"

처리가 완료되면 렌더링된 클립이 output 디렉터리에 저장됩니다.

AI로 생성된 숏폼 동영상 결과

출력 제어

다음 예제는 세로형 클립 3개를 생성하고 소스 동영상 다운로드 해상도를 1080으로 요청합니다.

python main.py "https://www.youtube.com/watch?v=video_id" \
  --n 3 \
  --ratio 9:16 \
  --resolution 1080

사용 가능한 명령줄 옵션

  • --n: 렌더링할 클립 수를 설정합니다. 기본값은 3입니다.
  • --ratio: 출력 가로세로 비율을 설정합니다. 기본값은 9:16이며, 정사각형 출력에는 1:1을 사용하거나 다른 비율을 지정할 수 있습니다.
  • --resolution: 원본 동영상 다운로드 해상도를 설정합니다. 프로젝트에서 지원하는 값은 360, 480, 720, 1080입니다. 기본값은 720입니다.
  • --language: en과 같은 Whisper 언어 코드를 지정합니다. 기본 동작은 자동 감지입니다.
  • --no-hook: 각 클립 시작 부분에 AI가 생성한 훅이 추가되지 않도록 합니다.

로컬 동영상 처리

YouTube URL 대신 로컬 파일 경로를 사용할 수 있습니다. 다음 예제는 720 해상도의 세로 클립 4개를 생성하고 중국어 전사를 지정합니다.

python main.py "/Users/Admin/Folder/video.mp4" \
  --n 4 \
  --ratio 9:16 \
  --resolution 720 \
  --language zh

운영 체제에 맞는 올바른 절대 경로 또는 상대 경로를 사용하세요. 폴더나 파일 이름에 공백이 포함된 경우 경로를 따옴표로 묶으면 편리합니다.

로컬 웹 인터페이스 사용

웹 버전에서는 여러 동영상을 대기열에 추가하고 렌더링 플래그를 조정할 수 있습니다. 제공자 선택과 API 인증 정보는 여전히 .env에서 가져오며, 인터페이스에서는 동영상 입력과 렌더링 옵션을 처리합니다.

1. 백엔드 시작

python3 server.py

2. 프런트엔드 제공

다른 터미널을 열고 웹 디렉터리로 이동한 다음 정적 HTTP 서버를 시작합니다.

cd web
python3 -m http.server 8000

3. 인터페이스 열기

브라우저에서 http://localhost:8000/shorts-generator-ui.html에 접속하세요.

고급 팁

사용할 플랫폼에 맞게 가로세로 비율 설정

일반적인 세로 숏폼 동영상에는 --ratio 9:16을 사용하세요. 정사각형 클립이 필요할 때는 --ratio 1:1을 사용합니다. 프로젝트는 다른 비율도 지원합니다.

감지가 불확실할 때 언어 지정

기본값은 자동 언어 감지입니다. 음성 언어를 이미 알고 있다면 --language와 함께 해당 Whisper 언어 코드를 전달하세요. 예: --language en.

렌더링할 후보 수 선택

기본 설정인 --n 3은 선택된 하이라이트 3개를 생성합니다. 긴 원본 동영상에서 더 많은 후보를 원하면 값을 늘리고, 가장 좋은 결과 하나만 필요하면 값을 줄이세요.

원본 시작 부분이 충분할 때 훅 비활성화

생성된 훅은 선택 사항입니다. 각 클립이 선택한 원본 구간에서 바로 시작되도록 하려면 --no-hook을 추가하세요.

python main.py "https://www.youtube.com/watch?v=video_id" --n 2 --no-hook

전사 리소스 조정

사용 가능한 Whisper 모델은 tiny부터 large-v3까지 다양합니다. 컴퓨터에 맞는 모델을 선택하고, 호환되는 CUDA 환경이 있을 때만 LOCAL_WHISPER_DEVICE=cuda를 사용하세요. 그렇지 않으면 auto가 애플리케이션에서 장치를 선택하도록 합니다.

인증 정보를 명령어 외부에 보관

제공자 키는 터미널 명령어나 소스 코드에 직접 입력하지 말고 .env에 저장하세요. 저장된 환경 설정 파일은 저장소를 포크하거나 기여할 때 커밋하지 마세요.

결론

AI Shorts Generator는 긴 YouTube 동영상이나 로컬 동영상을 숏폼 클립으로 변환할 수 있는 로컬 오픈 소스 워크플로를 제공합니다. Python, LLM 제공자, 로컬 Whisper 설정을 구성한 후 명령줄에서 자동으로 선택된 여러 클립을 생성하거나 브라우저 기반 인터페이스를 사용해 입력과 렌더링 옵션을 관리할 수 있습니다.

이 프로젝트는 MIT 라이선스로 제공됩니다. GitHub 저장소에서 문제를 신고하고, 변경 사항을 기여하거나 프로젝트를 포크할 수 있습니다.