
AI Shorts Generator란?
AI Shorts Generator는 긴 YouTube 동영상이나 로컬 동영상 파일을 바로 게시할 수 있는 짧은 클립으로 변환하는 무료 오픈 소스 Python 프로젝트입니다. 소스의 음성을 자동으로 텍스트로 변환하고, 시청자의 관심을 끌 가능성이 있는 순간을 식별하며, 겹치는 선택 항목을 제거한 후, 세로형 또는 사용자 지정 화면 비율로 가장 적합한 후보를 렌더링합니다.
이 프로젝트는 숏폼 동영상 SaaS 제품을 자체 호스팅 방식으로 대체할 수 있는 도구로 설계되었습니다. 클립 앞부분에 크레딧이나 워터마크를 추가하지 않습니다. 또한 자막, 번역, 음성 해설, 문맥을 인식하는 오프닝 훅, 명령줄 인터페이스, 로컬 웹 인터페이스, 다른 프로젝트와 통합할 수 있는 API를 제공합니다.
출력 예시
생성된 클립은 연설, 인터뷰, 팟캐스트, 튜토리얼 및 이와 유사한 긴 형식의 콘텐츠를 모바일 친화적인 동영상으로 변환할 수 있습니다.



처리 파이프라인 작동 방식
- 소스 가져오기: 프로그램이 YouTube 동영상을 다운로드하거나 사용자가 제공한 로컬 파일 경로를 읽습니다.
- 음성 텍스트 변환:
faster-whisper가 타임스탬프가 포함된 텍스트를 로컬에서 생성합니다. 이 단계는 지원되는 모든 LLM 제공업체에서 동일합니다. - 콘텐츠 분류: 선택한 LLM이 소스가 팟캐스트, 인터뷰, 튜토리얼, 브이로그 또는 다른 콘텐츠 유형과 유사한지 판단합니다. 또한 하이라이트 선택을 콘텐츠에 맞게 조정할 수 있도록 진행 속도도 평가합니다.
- 하이라이트 순위 지정: OpenAI, Gemini 또는 MuAPI가 텍스트에서 훅, 감정이 고조되는 부분, 강한 의견, 반전, 갈등, 인용할 만한 발언, 이야기의 절정, 실용적 가치를 찾습니다. 그런 다음 0에서 100 사이의 점수와 함께 순위가 매겨진 하이라이트 후보를 반환합니다.
- 중복 제거: 겹치는 후보를 점수에 따라 하나로 통합합니다.
- 상위 N개 선택:
--n옵션에 따라 순위가 가장 높은 후보를 선택합니다. - 렌더링: 선택한 각 구간을 요청된 화면 비율에 맞게 자동으로 자르고 렌더링합니다. 비활성화하지 않으면 AI가 생성한 문맥 기반 훅이 시작 부분에 배치됩니다.
요구 사항
- Python 3.10 이상
- OpenAI, Gemini 또는 MuAPI API 키
requirements.txt에 나열된 Python 패키지
Gemini는 일일 제한이 있는 무료 요금제를 제공합니다. OpenAI는 유료이며, MuAPI는 구독 없이 사용량에 따라 비용을 지불하는 방식입니다. 제공업체의 약관과 가격은 변경될 수 있으므로 대량의 콘텐츠를 처리하기 전에 해당 서비스를 확인하세요.
프로젝트 설치
1. 저장소 복제
git clone https://github.com/Colafornia/short-video-generator-AI.git
cd short-video-generator-AI2. 가상 환경 생성
Windows에서는 다음을 실행합니다.
python -m venv venv
venv\Scripts\activateLinux 또는 macOS에서는 다음을 실행합니다.
python -m venv venv
source venv/bin/activate가상 환경을 사용하면 생성기에 필요한 패키지를 컴퓨터의 다른 Python 프로젝트와 분리할 수 있습니다.
3. 종속 항목 설치
pip install -r requirements.txtLLM 및 Whisper 구성
프로젝트 디렉터리에 .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=autoLLM_PROVIDER로 선택한 제공업체의 유효한 키만 있으면 됩니다. OpenAI와 Gemini에 표시된 모델 필드는 선택 사항입니다.
- Gemini: Google AI Studio에서 키를 발급받으세요.
- OpenAI: OpenAI Platform에서 키를 발급받으세요.
- MuAPI: MuAPI에서 키를 발급받으세요.
Whisper 모델 선택
LOCAL_WHISPER_MODEL에는 tiny, base, small, medium 또는 large-v3를 사용할 수 있습니다. 기본 예시에서는 base를 사용합니다. 장치 선택에는 auto, cpu 또는 cuda를 사용하세요.
프로그램이 사용 가능한 장치를 선택하게 하려면 LOCAL_WHISPER_DEVICE=auto로 유지하세요. 호환되는 CUDA 환경이 있으면 cuda를 사용하고, CPU로 처리하려면 cpu를 사용하세요.
첫 번째 숏폼 생성
YouTube URL을 main.py에 전달합니다.
python main.py "https://www.youtube.com/watch?v=video_id"기본적으로 프로그램은 9:16 화면 비율로 클립 3개를 렌더링하고 소스 다운로드 해상도는 720으로 설정합니다. 렌더링된 파일은 output 디렉터리에 저장됩니다.
개수, 화면 비율 및 해상도 제어
다음 명령은 하이라이트 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입니다.
로컬 동영상 처리
YouTube URL 대신 로컬 파일 경로를 사용할 수 있습니다. 다음 예제는 해상도 720의 세로 클립 4개를 만들고 Whisper가 음성을 중국어로 처리하도록 지정합니다.
python main.py "/Users/Admin/Folder/video.mp4" \
--n 4 \
--ratio 9:16 \
--resolution 720 \
--language zh기본 언어 설정은 auto입니다. 자동 감지가 적합하지 않거나 동영상의 음성 언어를 이미 알고 있다면 en과 같은 Whisper 언어 코드와 함께 --language를 사용하세요.
생성된 훅 비활성화
AI 생성 훅은 기본적으로 활성화되어 있습니다. 시작 부분에 새 훅을 삽입하지 않고 하이라이트를 렌더링하려면 --no-hook를 추가하세요.
python main.py "https://www.youtube.com/watch?v=video_id" --no-hook선택한 구간에 이미 강렬한 도입부가 있거나 숏츠를 소스에 나타난 그대로 시작하려는 경우 유용합니다.
로컬 웹 인터페이스 사용
웹 버전에서는 여러 동영상을 대기열에 추가하고 렌더링 플래그를 조정할 수 있습니다. LLM 제공업체와 API 인증 정보는 여전히 .env에서 읽으며, 인터페이스는 동영상 입력과 렌더링 옵션만 처리합니다.
1. 백엔드 시작
python3 server.py2. 프런트엔드 제공
프로젝트 디렉터리에서 다른 터미널을 열고 다음을 실행하세요.
cd web
python3 -m http.server 80003. 인터페이스 열기
브라우저에서 http://localhost:8000/shorts-generator-ui.html로 이동하세요.
고급 사용 팁
대상에 맞게 화면 비율 설정
표준 세로 숏폼 동영상에는 9:16을 사용하세요. 정사각형 출력이 필요하면 1:1을 선택하고, 다른 레이아웃이 필요하면 생성기가 지원하는 다른 비율을 지정하세요.
테스트 중 클립 수 제한
초기 설정 중에는 --n 1을 설정하세요. API 인증 정보, 전사 동작, 언어 설정, 훅, 출력 크기를 확인하는 동안 렌더링되는 클립 수를 줄일 수 있습니다.
python main.py "https://www.youtube.com/watch?v=video_id" --n 1 --resolution 360필요할 때 언어 지정
자동 언어 감지는 편리하지만 소스 언어를 알고 있다면 --language를 명시적으로 설정하는 것이 도움이 될 수 있습니다. 이 옵션은 Whisper 전사에 적용됩니다.
로컬 전사 설정 조정
하이라이트 분석에 외부 LLM 제공업체를 사용하더라도 전사는 로컬에서 실행됩니다. 컴퓨터에서 사용할 수 있는 리소스에 따라 .env에서 Whisper 모델과 장치를 선택하세요. README에는 이러한 설정이 소개되어 있지만 모든 작업에 적합한 하나의 모델을 지정하지는 않습니다.
제공업체 설정과 인터페이스 선택 분리
CLI에서 웹 인터페이스로 변경해도 구성된 LLM 제공업체는 바뀌지 않습니다. OpenAI, Gemini, MuAPI 간에 전환할 때마다 .env에서 LLM_PROVIDER와 해당 API 키를 업데이트하세요.
게시 전 생성된 클립 검토
하이라이트 시스템은 자막 분석과 바이럴 가능성 프레임워크를 사용해 후보를 자동으로 선택합니다. 게시하기 전에 output의 파일을 검토하여 크롭, 전사, 맥락, 선택적 훅이 의도한 용도에 적합한지 확인하세요.
결론
AI Shorts Generator는 로컬 Whisper 전사, LLM 기반 하이라이트 탐지, 중복 제거, 순위 지정, 자동 크롭을 하나의 오픈 소스 워크플로로 결합합니다. 종속 항목을 설치하고 .env에서 제공업체를 구성한 후 명령줄에서 YouTube URL 또는 로컬 파일을 처리할 수 있습니다. 동영상을 대기열에 추가하고 렌더링 옵션을 시각적으로 선택하려는 경우 로컬 웹 인터페이스를 이용할 수 있습니다.
이 프로젝트는 MIT 라이선스로 제공됩니다. GitHub에서 문제를 보고하거나 변경 사항을 기여하거나 저장소를 포크할 수 있습니다.
