Open-source tool that converts long YouTube videos into vertical 9:16 shorts using LLM-based highlight detection and Whisper transcription, with API or local modes and JSON output.
Collecting history — the radar snapshots this repo daily. The trend line appears after 3 days of data (1 so far).
What it is
Open-source project that turns long-form YouTube videos into viral-ready 9:16 shorts. It supports both API (MuAPI) and local modes, uses LLM-based highlight detection and Whisper transcription, and can crop vertically for TikTok/Reels/Shorts. It provides JSON output of results and supports configurable output formats.
How it works
The workflow includes: downloading the source video, transcribing with MuAPI/OpenAI Whisper, classifying content with an LLM, chunking long videos, ranking highlights by virality, deduplicating overlaps, selecting the top-n clips, and auto-cropping to the requested aspect ratio. Output includes clip URLs and per-clip metadata such as title, score, hook sentence, and rationale. In API mode, processing relies on MuAPI endpoints; in Local mode, it uses yt-dlp, faster-whisper, and ffmpeg/OpenCV for local processing.
Getting started
Install prerequisites:
- Python 3.10+
- For API mode: a MuAPI key
- For Local mode: ffmpeg on PATH and an LLM API key (OPENAI_API_KEY or GEMINI_API_KEY)
Steps to install:
git clone https://github.com/SamurAIGPT/AI-Youtube-Shorts-Generator.git
cd AI-Youtube-Shorts-Generator
python3.10 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Only if you plan to use --mode local:
pip install -r requirements-local.txt
Create a .env file with API keys as described in the README. Usage examples:
```bash
python main.py "https://www.youtube.com/watch?v=VIDEO_ID"
python main.py "https://www.youtube.com/watch?v=VIDEO_ID" --mode local
Additional options:
python main.py "https://www.youtube.com/watch?v=VIDEO_ID" \
--mode api \
--num-clips 5 \
--aspect-ratio 9:16 \
--output-json result.json
Recent releases
The latest releases section shows: - none
Traction
Stars: 4485 Forks: 805 Open issues: 7 Language: Python License: none listed Created: 2024-06-28 Last push: 2026-07-29
## Behind the repo
No linked startup/company information is provided in the facts.
## Caveats
License not listed. Repository created 2024-06-28. Last push 2026-07-29. Open issues: 7. Prerequisites include ffmpeg and specific environment variables for API/local modes.






