Skip to content

shortificator

Local video pipeline

Long videos into vertical Shorts.

shortificator transcribes a source video, asks a local Ollama model for the best moments, reframes the footage to 9:16, burns readable subtitles, and renders ready-to-post clips. No paid external APIs are required.

Source video sample Generated vertical Short sample

Fully local

Whisper transcription runs with faster-whisper on CUDA, and the editorial pass uses Ollama on your machine.

Shorts-ready output

The renderer crops to 9:16, tracks faces with YuNet when needed, and muxes final audio/video with FFmpeg.

Fast iteration

Saved transcripts and candidate files let you rerender without repeating Whisper or LLM work.

Pipeline at a glance

input.mp4 or YouTube URL
   |
   |-- transcribe        faster-whisper, CUDA, word timestamps
   |-- analyze clips     Ollama structured output
   |-- reframe           face, center, gameplay or auto crop
   |-- caption           static or dynamic burned-in subtitles
   `-- render            FFmpeg output/*_short_NN.mp4

A practical first command

poetry run python -m shortificator \
  --input my_video.mp4 \
  --model mistral-small \
  --max-shorts 5 \
  --crop-mode face \
  --content-mode talking-head \
  --dynamic-subtitles

For game footage, switch to --crop-mode gameplay --content-mode gameplay so the crop stays stable and the LLM looks for action, tension, wins, failures, and player reactions.