Happy Scribe
Replaceable in one session with an AI coding agent.
Transcription and subtitling with both machine and human options, aimed at media teams who need a finished subtitle file.
Build me the subtitling pipeline that replaces Happy Scribe. **Transcription is free now; subtitle craft is not.** The value you are building is in the segmentation and timing rules, which most homemade versions ignore and which decide whether subtitles are readable. STACK - Node 20+ with Fastify, server-rendered HTML with a little vanilla JS - SQLite through better-sqlite3, WAL mode - whisper.cpp with word timings, ffmpeg for everything else - Caddy in front THE DATA MODEL - media, words (start_ms, end_ms, text, confidence), cues (start_ms, end_ms, lines_json, speaker) - styles: id, name, font, size, position, background, safe_area - reviews: id, cue_id, reviewer, note, resolved_at - Words are the source of truth; cues are derived and rebuildable. **Store both, because a retiming must not lose the corrections** SEGMENTATION, WHICH IS THE CRAFT - Two lines maximum, around 42 characters each. Longer and the eye cannot take it in - Minimum duration around one second, maximum around seven - **Reading speed capped at about 17 characters per second.** This one number is the difference between subtitles people can read and subtitles that flash past - Break lines at clause boundaries, never between an article and its noun, never leaving a preposition stranded - A gap of a couple of frames between consecutive cues so they do not visually merge - Never let a cue cross a hard cut in the video if you can avoid it — detect cuts with ffmpeg and snap to them TIMING - Start a cue slightly before the first word and end slightly after the last, from the word timings - Snap to the frame rate; a cue starting mid-frame is a rounding error the player shows - A shift-all control for the classic problem of audio offset by a constant REVIEW - Play with the cue overlaid on the actual video, at the actual size. **A subtitle judged in a text editor is judged wrong** — position, contrast and safe area only exist on screen - Comments per cue, resolvable - A validation pass listing every rule violation: too fast, too long, overlapping, crossing a cut. Fix the list, not the file EXPORT - SRT, VTT and TTML. Burnt-in through ffmpeg with the style applied, into the safe area - Contrast: a background box or a strong outline, never plain white text over unknown video TRANSLATION - Translate cue by cue, keeping the timings, then **re-run the reading-speed check** — translated text is often much longer and the timing that worked no longer does. This is the step everybody skips and it is why translated subtitles are unreadable WHAT MATTERS MOST The reading-speed cap and re-checking after translation. Those two rules are most of what a professional subtitler is doing, and they cost nothing to encode.
What you lose
- Human transcription for audio a model cannot handle
- Subtitle styling and burn-in in a finished format
- Collaborative review with several editors
- Many languages with quality that has been checked
If you would rather not build
- ffmpeg for cut detection and burn-in
- A player and patience, if there is one video
The escape hatch
open source · no votes, no paid placement
Subtitle Edit
$0Full subtitle editor with timing, reading-speed checks and formats.
SubtitleEdit/subtitleeditfree · open source
whisper.cpp
$0Local transcription with the word timings cueing depends on.
ggml-org/whisper.cppfree · open source
Why this verdict
our own opinion · changed only by a person
82/100
Verdict yes at 82: the engine is free and the value is the subtitle rules. The reading-speed check after translation is the detail that makes the output professional.
History
tracked since 14 Aug 2026 · nothing is ever overwritten
Nothing recorded yet. This chart fills in once the page has visitors, votes or prompt copies — it will not draw a flat line to look busy.
Questions about Happy Scribe
answered from the record above
Is Happy Scribe free?
No — the plan we track is $17 a month. Basic at €17/month with a transcription allowance; human-made transcripts are priced per minute on top.
Can you replace Happy Scribe by building your own?
YES. Replaceable in one session with an AI coding agent. Replacement score 82 out of 100, build time one session. Read what you lose before you decide.
How much does Happy Scribe cost?
$17 a month on Basic — $204 a year. Recorded 14 Aug 2026.
What do you lose by replacing Happy Scribe?
Human transcription for audio a model cannot handle; Subtitle styling and burn-in in a finished format; Collaborative review with several editors; Many languages with quality that has been checked. If any of those carry weight for you, keep paying.
Is there an open-source alternative to Happy Scribe?
Yes: Subtitle Edit, whisper.cpp. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

