Changelog
Updates to the MCP server, REST API, self-host binary, and website.
2026-05-08 — 2.1: bridge + backend in one repo, faster defaults, macOS-friendly
Quality-of-life pass on top of the 2.0 redesign. Most of these are self-host wins; hosted users get the faster default Whisper model and smaller subtitle chunks for free.
- One repo, one clone. The bridge binary and the upload server now
live at github.com/kirillzubovsky/subtitlesking-mcp.
Closes the gap where the old self-host docs pointed at a separate
backend repo that was never made public.
git clone+go buildgives you everything. qualityarg onstart_upload. Agents can picklow/medium/highper upload — maps to Whisperbase/medium/large. Tool description teaches the trade-off (fast & rough vs. slow & accurate) so agents can offer the user the choice intelligently. Backend default ismedium, set viaSUBTITLESKING_WHISPER_MODELenv var.- Faster default transcription. Default model dropped from
largetomedium. ~3× faster on CPU; minor accuracy hit for most English content. Agents that need maximum accuracy can passquality: "high". - Broadcast-style subtitle chunking. Default Whisper output now
wraps at 42 chars × max 2 lines, yielding ~3–5 second segments
instead of the previous paragraph-shaped walls of text. Tunable via
SUBTITLESKING_SRT_MAX_LINE_WIDTH/_MAX_LINE_COUNT. SetSUBTITLESKING_SRT_MAX_WORDS_PER_LINE=4for TikTok-style short bursts. - macOS self-host actually works. Several layers of fixes:
requirements.txtnow installs cleanly on macOS / Windows / Linux-arm64 (was previously Linux-x86_64-only because of pinned NVIDIA wheels).- The default
brew install ffmpegformula no longer ships libass (which the burn-in step needs). Self-host docs now point athomebrew-ffmpeg/ffmpeg. start.shpreflights for thesubtitlesfilter and refuses to boot with an actionable error if libass is missing — no more silent burn-step failures mid-pipeline.- Burn-step ffmpeg invocation fixed for ffmpeg ≥7 (escaped commas
in
force_style, dropped shell-style quoting that the new parser rejected).
get_transcriptsurvives burn failures. If the burn step errors but the SRT was already generated,get_transcriptnow serves the transcript anyway. Matches the README's promise that transcript and burned video are independent products.- Schema migrations now actually deploy.
InitDBruns on every server startup, soALTER TABLEmigrations land on long-lived production databases instead of silently being skipped.
2026-05-07 — 2.0: MCP without bytes-through-the-LLM
Big architectural fix to the MCP. Video bytes no longer travel through the
LLM context window — agents call start_upload to get a presigned URL and
then upload the file out-of-band with curl. Same on the way out via
get_download_url. Practical effect: anything up to the free-tier 100 MB cap
just works, no matter how small the model's context.
- New tools.
start_upload(replacesadd_subtitles_to_video),get_download_url(replacesdownload_subtitled_video). The base64-bearing variants of both are gone.get_video_statusandget_transcriptare unchanged. - Hosted and stdio behave identically. The downloadable binary is now a
thin JSON-RPC stdio↔HTTP bridge — every call goes to the upload server's
/mcp. The binary collapsed from 545 lines to ~75. No moreSUBTITLESKING_API_KEYneeded when using the bridge. - New status:
pending_upload. A slot reserved bystart_uploadbut not yet filled. Pruned automatically after 1 hour to bound table size. - Deprecated tools still listed.
add_subtitles_to_videoanddownload_subtitled_videoremain intools/listfor one release; calling them returns a structured error pointing at the new tools.
2026-05-06 — 1.0: MCP launch + new website
A big one.
- MCP server, hosted. New endpoint at
https://brains.subtitlesking.com/mcp— register one URL in Claude Code, Claude Desktop, Cursor, or Windsurf and you're done. - MCP binary, open-source. Stdio transport. Build from source and point
it at the hosted backend, or at your own self-hosted upload server with
SUBTITLESKING_URL. (Superseded by the v2 stdio↔HTTP bridge — see above.) - Transcript as a first-class output. New
get_transcripttool. Available a couple of minutes before the burned video — take one, the other, or both. - REST API:
/transcriptendpoint. Same presigned-token auth as/download. - Website rebuild. Developer-first homepage, full docs at
/docs, API marketing at /api, MCP at /mcp, self-host guide at /self-host, pricing with a Pro waitlist, comparison pages, blog, and this changelog. - SEO sweep. Per-page metadata, structured data (Organization, SoftwareApplication, FAQPage, BlogPosting, BreadcrumbList), dynamic Open Graph images, sitemap, robots.txt, and an llm.txt for AI agent discovery.
What's next
- Pro tier billing — join the waitlist on /pricing.
- MCP registry submissions (Anthropic, awesome-mcp-servers, smithery, mcp.so).
- Watermark in generated SRT files (subtle, opt-out).
- Email lead-gate in the self-host binary for free hosted-tier quota bumps.
Got a feature request? Tell me on X.