Own product · 2025 – 2026 Project 14 of 20
Expanzor
Karaoke-style subtitles for short videos.
At a glance
- Role
- Design and development
- Period
- 2025 – 2026
- Status
- Archived
- Technologies
- 6 technologies
A web app that turns an uploaded video into karaoke-style subtitles: a transcript with per-word timing (OpenAI Whisper), a style editor and burning the subtitles into the video with ffmpeg. Users have accounts with JWT sign-in and pay for processing with credits. The project's domain has expired and the app is not running at the moment.
How it works
The Node.js (Express) backend extracts the audio from a video, has it transcribed by the whisper-1 model with per-word timestamps and builds ASS subtitles from the result that highlight the word being spoken. Colours, outline, shadow, font and position are set in an editor, and the export burns the subtitles into the video. Deployment went through GitLab CI.
Obstacles and how I solved them
- Hundredths of a second. ASS measures time in hundredths of a second. Start times are therefore rounded down, so a subtitle never moves forward and overlaps the next one, and end times are rounded up, so it does not disappear too early. Overlaps in older projects are fixed on export.
- Words on the right line. Karaoke words are matched to subtitle lines by how much they overlap in time, not by their order.
- Portrait videos. Subtitle margins scale with the width of the video, so they fit portrait videos too.
Built with
- Node.js
- Express
- MySQL
- OpenAI Whisper
- ffmpeg
- JWT