short-video-maker README

The project's README from github.com/mushigaite/short-video-maker. As one markdown file: README.md.

AI shorts generator

Python Stars Forks

A free open-source project designed to turn youtube-videos into viral short videos. Highlight detection, subtitles, translation, voiceover, all in one for your content: no pre-clip credits or any watermarks. Designed for creators who want an alternative to short-video SaaS tools like OpusClip or Vidyo.ai for free.

Examples of a processed video

image
"The Speech that Made Obama President"
image
"How Tom Overcame Social Anxiety - The Mindset That Changed Everything"
image
"How to stay calm when you know you'll be stressed | Daniel Levitin | TED"

Features 🪁

How It Works

  1. Download: Fetches the source video from YouTube, or uses the local file path directly
  2. Transcribe: faster-whisper produces a timestamped transcript locally — same step regardless of which LLM_PROVIDER is selected
  3. Detect content type: The chosen LLM classifies the video (podcast, interview, tutorial, vlog, etc.) and pacing, so the highlight prompt can be tuned per content style
  4. Highlight ranking: The chosen LLM (openai / gemini / muapi) scans the transcript through a virality framework — hook moments, emotional peaks, opinion bombs, revelations, conflict, quotables, story peaks, practical value — and emits ranked candidates with scores 0–100
  5. Dedupe: Overlapping candidates are collapsed by score
  6. Top-N selection: The top --n candidates are selected
  7. Auto-crop: Each highlight is rendered as a vertical short at the requested --ratio, with an optional AI-generated hook at the start unless --no-hook is set

Requirements

Quick start

  1. Clone the repo:
git clone https://github.com/mushigaite/short-video-generator-AI.git
cd short-video-generator-AI
  1. Create and activate a virtual environment:

Windows:

python -m venv venv
venv\Scripts\activate

Linux/MacOS:

python -m venv venv
venv\Scripts\activate
  1. Install dependencies
pip install -r requirements.txt
  1. Set up .env
# Used LLM provider(openai/gemini/MuAPI)
LLM_PROVIDER=openai

# Enter the API key for the chosen provider
OPENAI_API_KEY=your_openai_key_here
OPENAI_MODEL=gpt-4o-mini          # optional
GEMINI_API_KEY=your_gemini_key_here
GEMINI_MODEL=gemini-2.5-flash      # optional
MUAPI_API_KEY=your_muapi_key_here

# Whisper settings
LOCAL_WHISPER_MODEL=base # tiny / base / small / medium / large-v3
LOCAL_WHISPER_DEVICE=auto    # auto / cpu / cuda

If you uncertain about the provider:

Provider Free tier? Get key
Gemini ✅ Yes, but daily limit https://aistudio.google.com
OpenAI ❌ Paid https://platform.openai.com
MuAPI ❌ Paid, but pay-per-use, no subscription https://muapi.ai

Usage

Basic usage:

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

Renderred clips are saved to output folder

With flags:

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

You can also provide a local video file instead of a YouTube link, for example:

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

CLI Flags

Flag Default Notes
--n 3 How many clips to render
--ratio 9:16 Any ratio / 9:16 for short videos / 1:1 for square
--resolution 720 Source video download resolution: 360 / 480 / 720 / 1080
--language auto Force Whisper language code (e.g. en)
--no-hook - Excludes AI generated hook from the start of the clip

Web version set-up

Instead of the CLI, you can use a local web interface to queue multiple videos at once and adjust flags visually. The LLM provider and API keys are still configured in .env — the web version only handles video input and render flags.

python3 server.py

Serve the frontend:

cd web
python3 -m http.server 8000

Then, open in your browser:

http://localhost:8000/shorts-generator-ui.html

Contributing

Feel free to open an issue or fork the repository for your projects.

License

This project is licensed under the MIT License.

short-video-maker (mushigaite/short-video-maker)

Searching Database…

Что это?short-video-maker превращает ссылку YouTube (или локальный видеофайл) в готовый к публикации вертикальный шорт, автоматически находя самые вирусные моменты-хайлайты, а затем добавляя субтитры, перевод и ИИ-озвучку — без водяных знаков и пометок авторства на каждом клипе.
Это CLI-инструмент или есть и веб-интерфейс?Это прежде всего Python CLI, но он также несёт локальный веб-UI, чтобы можно было ставить в очередь несколько видео и настраивать флаги рендера визуально, а не набирать команды.
Как это запустить?Склонируйте репозиторий, создайте и активируйте виртуальное окружение Python, установите зависимости из requirements.txt, заведите файл .env с вашим API-ключом LLM, затем запустите CLI со ссылкой YouTube или поднимите веб-фронтенд.
Нужен ли API-ключ OpenAI или Gemini?Да — нужен ключ от одного LLM-провайдера (OpenAI, Gemini или MuAPI) для поиска хайлайтов и хуков. Gemini предлагает бесплатный тариф с дневным лимитом, а OpenAI и MuAPI платные, причём MuAPI — с оплатой по использованию.
Есть ли подвох у бесплатного варианта Gemini?Бесплатный тариф Gemini имеет дневной лимит запросов, поэтому при активном использовании вы со временем придёте к платному провайдеру вроде OpenAI или MuAPI.
Работает ли он на Windows, Mac и Linux?Да, инструкции по установке дают отдельные команды виртуального окружения для Windows и для Linux/MacOS, так что он кроссплатформенный.
Как он выбирает, какие моменты — хайлайты?LLM сканирует транскрипт по рамке вирусности (хук-моменты, эмоциональные пики, конфликт, цитатные места, пики истории, практическая ценность), оценивает каждого кандидата от 0 до 100, убирает дубли пересекающихся клипов по оценке и оставляет топ N.
Что делает опция hook?При включении она добавляет короткий, учитывающий контекст ИИ-хук в начало клипа, чтобы зацепить зрителей до проигрывания главного хайлайта; отключается через --no-hook.
Можно ли обработать локальный видеофайл вместо ссылки YouTube?Да, можно передать путь к локальному файлу прямо вместо URL YouTube, и он пройдёт тот же конвейер хайлайтов, субтитров и обрезки.
Как устроена транскрипция?faster-whisper генерирует транскрипт с таймкодами локально, и этот шаг одинаков, какого бы LLM-провайдера вы ни выбрали для ранжирования хайлайтов.
Creator
mushigaite
Size
1.3 MB
Stars
625
Updated
CommitOct 17
Age
12d
Commits · 90 Days