Skip to content

fuzmaster/srt-fixer

Repository files navigation

SRT Fixer

License Build Status Vite

Clean messy .srt subtitle exports for Reels, Shorts, TikToks, podcast clips, client edits, and social video workflows. SRT Fixer runs in the browser, keeps raw subtitle files local, and gives editors a faster cleanup step between transcription and publishing.

Live app: https://srt-fixer-eight.vercel.app/

What It Does

SRT Fixer is for existing subtitle files. It does not transcribe audio, rewrite captions with AI, or upload your .srt to a backend just to clean punctuation and line breaks.

Use it when you need to:

  • remove punctuation from subtitle text
  • fix awkward line breaks before burn-in
  • normalize casing and spacing
  • preview original vs cleaned subtitles
  • export a cleaned .srt or plain .txt
  • batch process up to 50 files in Pro

Core Features

  • Upload a .srt file or paste raw subtitle text
  • Timestamp-safe cleanup in Clean Text Only mode
  • Regroup captions by words, characters, grammar-aware splits, and minimum cue duration
  • SRT health checks for invalid blocks, overlaps, and long lines
  • Side-by-side preview before download
  • .srt, .txt, ZIP, and cleanup report exports
  • Batch processing in Pro with ZIP output
  • Pro timing tools for frame snapping and offsets
  • Privacy-first local processing for subtitle content

Who It Is For

  • video editors working in Premiere Pro, DaVinci Resolve, Final Cut Pro, and CapCut
  • creators repurposing long-form videos into Shorts, Reels, and TikToks
  • podcast editors cleaning captions for clips
  • freelancers handling repeated subtitle cleanup across client work

Product Model

Free:

  • single-file cleanup
  • local browser processing
  • timestamp-safe text cleanup
  • TXT export and cleanup report export

Pro:

  • batch cleanup for up to 50 files
  • ZIP export
  • timing tools
  • license-based unlock in the browser

The current codebase supports checkout and license flows for Stripe, Gumroad, and Lemon Squeezy, with server-side verification and KV-backed license storage.

Tech Stack

  • React 18
  • Vite 8
  • JavaScript / JSX
  • Web Workers
  • Vitest
  • JSZip
  • Vercel serverless functions
  • Upstash Redis REST API
  • Stripe, Gumroad, and Lemon Squeezy integrations
  • Resend for transactional email
  • Vercel Analytics
  • Remotion for promo creative

Local Development

git clone https://github.com/fuzmaster/srt-fixer.git
cd srt-fixer
npm install
npm run dev

The app runs at http://localhost:5173 by default.

Environment Variables

Free local cleanup works without any env vars. Paid flows, email, and license persistence need server config.

VITE_GUMROAD_CHECKOUT_URL=
VITE_STRIPE_CHECKOUT_URL=
VITE_LS_CHECKOUT_URL=

GUMROAD_PRODUCT_ID=
GUMROAD_PRODUCT_PERMALINK=

LEMON_SQUEEZY_PRODUCT_ID=
LEMON_SQUEEZY_VARIANT_ID=

STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
STRIPE_PRO_PRODUCT_ID=
STRIPE_PRO_PRICE_ID=

KV_REST_API_URL=
KV_REST_API_TOKEN=
REDIS_URL=

LICENSE_HASH_SECRET=
ADMIN_LICENSE_SECRET=

RESEND_API_KEY=
LICENSE_EMAIL_FROM=
LICENSE_EMAIL_REPLY_TO=
CONTACT_EMAIL_FROM=
CONTACT_EMAIL_TO=
CONTACT_EMAIL_REPLY_TO=

Security Notes

  • Subtitle file contents stay in the browser unless the user explicitly submits a contact or license request.
  • License, contact, and admin routes validate input server-side.
  • Public API routes are same-origin checked and rate limited.
  • License records are stored in KV using hashed license keys.
  • Stripe webhook signatures are verified server-side.

Verification

npm test
npm run build
npm audit

Current status:

  • npm test passes
  • npm run build passes
  • npm audit passes

Deployment

Built for Vercel. Set production environment variables in the Vercel dashboard, make sure live Stripe and email settings are correct, and deploy from main.

License

All rights reserved unless a separate license file states otherwise.

About

Clean messy SRT subtitle files in the browser for Reels, Shorts, podcast clips, and client edits.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors