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)

short-video
Searching Database…

What is this?short-video-maker turns a YouTube link (or a local video file) into a ready-to-post vertical short by automatically detecting the most viral highlight moments, then adding subtitles, translation and AI voiceover — no watermarks or per-clip credits.
Is this a CLI tool, or does it have a web interface too?It's primarily a Python CLI, but it also ships a local web UI so you can queue multiple videos and adjust render flags visually instead of typing commands.
How do I get it running?Clone the repo, create and activate a Python virtual environment, install requirements.txt, set up a .env file with your LLM API key, then run the CLI with a YouTube link or serve the web frontend.
Do I need an OpenAI or Gemini API key?Yes — you need a key from one LLM provider (OpenAI, Gemini, or MuAPI) for highlight detection and hooks. Gemini offers a free tier with a daily limit, while OpenAI and MuAPI are paid, pay-per-use for MuAPI.
Any catch with the free Gemini option?The free Gemini tier comes with a daily request limit, so heavy usage will eventually push you toward a paid provider like OpenAI or MuAPI.
Does it run on Windows, Mac, and Linux?Yes, the setup instructions give separate virtual-environment commands for Windows and for Linux/MacOS, so it's cross-platform.
How does it pick which moments are the highlights?An LLM scans the transcript using a virality framework (hook moments, emotional peaks, conflict, quotables, story peaks, practical value), scores each candidate 0-100, dedupes overlapping clips by score, and keeps the top N.
What does the hook option do?When enabled, it adds a short, context-aware AI-generated hook at the start of the clip to grab viewers before the main highlight plays; you can disable it with --no-hook.
Can I process a local video file instead of a YouTube link?Yes, you can pass a local file path directly in place of a YouTube URL and it goes through the same highlight, subtitle, and crop pipeline.
How is transcription handled?faster-whisper generates a timestamped transcript locally, and this step is identical no matter which LLM provider you choose for highlight ranking.
Creator
mushigaite
Size
1.3 MB
Stars
629
Updated
CommitOct 17
Age
13d
Commits · 90 Days