malahov.io

Subtitles now create themselves

Added from-scratch subtitle generation to the editor: transcription, cleanup, translation — all right in the browser. And the home task the project started with is finally closed.

Subtitle Editor series · part 1 of 3Try the product →

By Georg Malahov

This project started as a small home project: my wife makes subtitles for her client's videos, and we practiced on that task. This week she finally delivered them — the task is closed. Meanwhile the subtitle editor itself moved into the hub and became my product: the free half — editing and burning subtitles into video — was already working. Today, May 7, the main part of the paid half came together.

I built subtitle creation from scratch. The logic follows the Bring Your Own Token model: the user provides their own token for Deepgram — a speech-recognition service — or OpenRouter — an intermediary that gives access to language models — and everything happens right in the browser. The video gets transcribed, subtitles are created, cleaned up and translated, and the video itself never leaves the device. On my practice clip it comes out great and reasonably fast. I switch on translation — and I have multilingual subtitles: spoken in one language, the track in another, nicely synchronized and neatly sized at that.

The next step suggests itself from here — voice-over. Since there's a way to clean up the text and translate it, I want to generate a voice, get an audio file and replace the track right in the browser: a clip in one language becomes a clip in another. Not professional dubbing, but for work videos that's more than enough. I'm postponing this experiment, but I will definitely try it.

What remains before launch is a clear list. Proxying through my own backend — so users don't need any tokens of their own. Payments: I already have subscriptions implemented, and if I skip the whole credit-system complexity and make it very simple — a fixed monthly amount and a clear limit, no clever accounting — then I can take the risk and launch. Plus finish the design, write the about pages and the product pages.

The only thing that worries me is limits. Claude — the AI assistant I write code with — reset my weekly limit just yesterday, and today I've already spent half of the next one. Agentic development spends tokens at a serious rate, especially in the review phase: today the review of a single task cost about seventeen dollars. If I sit down over the weekend to finish everything at once, I'll burn through the whole remainder — and what I'll do during the work week, I don't know.

But the plan was to finish the hub and start driving traffic to the editor as early as next week. So I'll have to take the risk: the subtitle translation today pleased me so much that slowing down right now would hurt most of all.