Repository navigation
Releases: ghost1412/shorts-generator
Release list
v0.3.0
New
-
"Satisfying footage" layout:
--layout split_fillerputs the clip on the top half and looping gameplay or satisfying footage underneath (also in the browser app's Framing choice and the REST API).--filler_video FILEpicks the footage; otherwise a video fromassets/backgrounds/local/is used, else a Pexels stock clip (needsPEXELS_API_KEY), else the normal crop. -
Audio clean-up:
--clean_audioremoves rumble and background noise, evens out the volume and normalises loudness to about -14 LUFS on every finished clip (video is not re-encoded). Filters this FFmpeg lacks are skipped; on any failure the clip is left untouched. -
Click-to-cut words: under "Edit this short" in the browser app, every word of the short is a tick box. Tick the words you do not want ("um", a false start), press "Cut the ticked words" and the short is re-rendered without them (picture and captions); untick to bring them back, "Undo last change" restores the earlier version. Also
python -m engine.rerender SESSION INDEX --cuts 7.0:8.0. -
Basic AI dubbing:
--mode DUB --source_video talk.mp4 --target_lang estranscribes the video, translates it sentence by sentence with your AI provider, speaks it with edge-tts (internet needed; Kokoro for English), fits each line to its time slot, lowers the original audio under the new voice and writes a translated.srt(--dub_captionsburns it in). One voice for every speaker, no voice cloning or lip-sync; translation and voice quality depend on the model and voice. -
Captions in another language:
--caption_lang es(or the "Languages" box in the browser app) translates the captions with your AI provider and keeps them timed to the speech. Spanish, French, German, Portuguese, Italian, Dutch, Polish, Turkish, Indonesian, Vietnamese, Hindi and Marathi (the bundled caption fonts cannot draw Japanese, Chinese, Korean, Arabic or Russian yet). Translation quality depends on the model; small local models are weaker in Hindi. -
Captions in another language:
--caption_lang es(or the "Languages" box in the browser app) translates the captions with your AI provider and keeps them timed to the speech. Spanish, French, German, Portuguese, Italian, Dutch, Polish, Turkish, Indonesian, Vietnamese, Hindi and Marathi (see below for Russian, Greek, Arabic, Chinese, Japanese and Korean). Translation quality depends on the model; small local models are weaker in Hindi. -
Highlights video option in the browser app (one landscape video made of the best moments, any length).
-
"Pick the moments" in the browser app: make shorts only about a topic you describe, and cut chosen words or phrases out.
-
The browser app has a spoken-language box (default: detect it automatically).
-
--layout auto: per clip, a two-person shot gets the cut-to-whoever-is-talking layout, anything else the tracked single crop. Used by default on the browser app's Start here tab. -
Captions in Russian, Ukrainian, Bulgarian and Greek (bundled Noto Sans, Cyrillic/Greek subset); verified in a real Remotion render. The highlights video uses the same font.
-
Captions in Chinese, Japanese, Korean and Arabic (
--caption_lang zh|ja|ko|ar, and for sources already spoken in them). Arabic uses a small bundled Noto Sans Arabic and is laid out right to left with joined letters. Chinese/Japanese/Korean fonts are 10-18 MB each, so they are downloaded once (~/.cache/shortsflow/fonts) and cut down per video to a ~100 KB font with just the characters used; offline they still show empty boxes. Both the animated (Remotion) captions and the highlights-video captions use them. Han-only text is treated as Chinese. -
The number of shorts has no limit any more (browser app, REST API, MCP); the highlights video length has no limit either (a number box).
-
Hook overlay:
--hook_overlayshows each clip's hook as a big title for the first ~3 seconds (pops in, fades out). Works with--use_remotionclipping. -
Caption emoji work everywhere:
--caption_emojinow draws bundled Twemoji images (CC-BY 4.0) instead of relying on a system emoji font, so it also works on a clean Windows PC, in Docker and on CI.
Fixed
- Highlights-video prompt now includes the segment-length rules; an API key with non-ASCII characters returns 401 instead of 500; network calls to social/ComfyUI services have timeouts.
- Security hardening: the legacy
server.pyworker supportsSHORTSFLOW_API_KEYand listens on localhost by default; API webhook URLs must be http(s) and cannot point at private addresses (override:SHORTSFLOW_ALLOW_PRIVATE_WEBHOOKS=1); text values starting with-are rejected. - Clipping no longer needs
supabaseto be importable; the dead Aspect ratio choice was removed from the Clip (advanced) tab (clips are always 9:16). - Cropping on footage without faces (gameplay, scenery): the crop stays centred instead of being pulled to the edge by false face detections.
- The brand typed in the browser app is now applied even if "Save my brand" was not pressed.
- The local AI default is
qwen2.5:7b(about 13x faster than the previousqwen3:8bfor clip scoring).
v0.2.0
New
- Review screen in the browser app: every short as a card with a preview player, a strong / good / okay / weak label with the reason, and a copy-ready title, description and hashtags. Remove shorts, download all as a
.zip, reopen earlier runs. - Edit one short: choose another caption style or change its start and end; only that short is re-rendered from the run's saved analysis (about a minute), and Undo restores the previous version.
- Caption style picker with a preview image for each style (Bold yellow, Pink glow box, Bouncy gold, Clean dark boxes). The chosen style is now actually used (it was always the first one).
- Brand kit panel: logo,
@handle, end-card text, accent colour and logo position, saved in your workspace and added to every short while ticked.
Fixed
- The review page no longer crashes when
ffmpegis available butffprobeis not. - Results written by the command line with relative paths can be opened in the app.
v0.1.5
- NVIDIA GPUs: the Windows installer now installs a GPU build of PyTorch that matches the driver (CUDA 13.0 / 12.6 / 12.4) and checks that CUDA works. Before, it announced the GPU build but ended with a CPU-only one. An older CPU-only install is repaired when you run the installer again.
- New workspaces no longer start with placeholder API keys (
your_..._here) that were treated as real keys and made every AI step retry for minutes. - A silent install (
/VERYSILENT) no longer hangs waiting for a click when something fails. - The installer script no longer depends on PowerShell's
Get-FileHash.
v0.1.4
- The Windows installer downloads FFmpeg (with
ffprobe, checksum-verified) so a clean PC works; pip installs expose their bundledffmpegby name when none is on the PATH.
v0.1.3
- Fixed "No videos were generated" on PCs without an NVIDIA graphics card: hardware encoding is now only used when a real test encode works.
- PCs without a GPU use the smaller
smallspeech model by default; a "downloading the speech model" message appears on first use. - Groq: a retired model no longer breaks the AI fallback. A working model is chosen automatically (this also fixed the daily channel).
The installer files were removed from this release because of bugs fixed later. Please use the latest release: https://github.com/ghost1412/shorts-generator/releases/latest
v0.1.2
- Windows one-click installer (no admin rights, no Python or Node needed first) and
shortsflow webui, the browser app, now included in the package.
The installer files were removed from this release because of bugs fixed later. Please use the latest release: https://github.com/ghost1412/shorts-generator/releases/latest