One Docker box that turns video noise into VTT and chapters
Subvert exists because manually transcribing videos and writing chapter markers is tedious, so it hands the grunt work to OpenAI’s Whisper and ChatGPT.

What it does Subvert is a self-contained PHP application packaged in a single Docker image. You feed it a video file; it extracts the audio with FFmpeg, sends it to OpenAI’s Whisper for transcription into VTT format, and optionally passes the resulting text through a ChatGPT model to generate timestamped chapters and a brief summary. The whole thing runs as a local web server, which means your video files leave your machine for OpenAI’s APIs.
The interesting bit The project is essentially a tidy orchestration layer around two OpenAI endpoints and FFmpeg, but the tidy part matters: it bundles a full audio pipeline, transcript formatting, and generative summarization into one container with no external dependencies beyond an OpenAI API key. For a tool that is mostly glue, it is remarkably self-contained.
Key highlights
- Ships as a single Docker image; the README notes it can deploy anywhere Docker runs, including AWS, Azure, GCP, or Fly.io.
- Generates standard VTT subtitle files, plus chapters and summaries derived from the transcript via ChatGPT.
- Exposes a web interface for uploading and processing videos locally.
- Configurable PHP upload limits and memory bounds via environment variables.
- Can also run from source on a machine with PHP 8.1+ and npm.
Caveats
- The project is explicitly marked as a work-in-progress.
- The Docker image currently exposes only the insecure HTTP port, not HTTPS.
- Requires an OpenAI API key; all audio transcription and text generation happen remotely, not locally.
Verdict
Worth a look if you produce long videos and want a quick, containerized way to generate subtitles and chapter markers without touching ffmpeg or a text editor. Skip it if you need offline processing, local LLM inference, or enterprise-grade security out of the box.
Frequently asked
- What is aschmelyun/subvert?
- Subvert exists because manually transcribing videos and writing chapter markers is tedious, so it hands the grunt work to OpenAI’s Whisper and ChatGPT.
- Is subvert open source?
- Yes — aschmelyun/subvert is open source, released under the MIT license.
- What language is subvert written in?
- aschmelyun/subvert is primarily written in PHP.
- How popular is subvert?
- aschmelyun/subvert has 867 stars on GitHub.
- Where can I find subvert?
- aschmelyun/subvert is on GitHub at https://github.com/aschmelyun/subvert.