Skip to content

shfire616/Subtitle-Editor

Repository files navigation

Sub Editor

Sub Editor

A fast, visual subtitle editor built for people who care about timing.

License: GPL v3 macOS Windows Linux


Built by a subtitle editor, for subtitle editors

Sub Editor was born out of frustration. After years of doing subtitle work — manually scrubbing through video, counting characters by eye, and losing sessions to crashes — the tools available still felt like they were designed by engineers who had never actually sat down to subtitle a two-hour film.

So this was built from scratch, by someone who has. Every feature exists because it was genuinely needed. The waveform timeline so you can see the speech, not just guess at it. The character limit warnings because CJK and Latin text behave differently and no other tool tracks them separately. The pre-roll so you hear context before each block. The keyboard-first workflow because reaching for the mouse 400 times in a session adds up.

If you've ever:

  • Placed a subtitle and had to rewatch the same 3 seconds five times to get the timing right
  • Manually split a long line and recalculated the duration yourself
  • Lost 20 minutes of work because the app didn't autosave

— this was made for you.


Why Sub Editor?

Most subtitle tools force you to work blind — you type text into a table and guess at the timing. Sub Editor is built around a waveform timeline, so you can see exactly where speech starts and ends before you place a single block.

  • Tired of manually counting characters for each subtitle? Sub Editor flags overlong lines automatically, with separate limits for CJK and Latin text.
  • Tired of switching between a text editor and a video player to check your work? The subtitle overlay updates in real time as you scrub.
  • Tired of losing work when the app crashes? Auto-save runs in the background every minute.

Sub Editor is for translators, video editors, and content creators who need to produce clean, well-timed subtitles — without fighting their tools.


Interface

Sub Editor Interface

Video player with live subtitle overlay · Waveform timeline with subtitle blocks · List view with character limit warnings


Features

Waveform Timeline See audio peaks and subtitle blocks side by side. Drag, resize, and snap with precision.
Live Subtitle Overlay Preview subtitles on the video as you edit — no separate preview window needed.
Smart List View Click to edit inline. Pro-rata split (Enter) divides both text and duration at the cursor.
Dual-Language Support Automatic CJK / Latin detection with independent character limit warnings per line.
Pre-Roll Playback Plays back slightly before the target point so you hear context — no more replaying from the start.
Audio-Only Mode Extract and play just the audio for tighter timing on music or fast speech.
Find & Replace Regex-capable search across all subtitle text.
Session Restore Playhead position and timeline zoom are saved with the project (.sep format).
Auto-Save & Recovery Background auto-save every 60 seconds with crash recovery on next launch.

Download & Install

Get the latest release from the Releases page.

macOS (Apple Silicon)

  1. Download Sub-Editor-macOS-ARM.dmg
  2. Open the DMG and drag Sub Editor into Applications
  3. First launch: right-click the app → Open to bypass Gatekeeper

Windows (x64)

  1. Download Sub-Editor-Windows.zip
  2. Extract and run Sub Editor.exe — no installation required

Linux (Ubuntu / Debian)

  1. Download Sub-Editor-Linux.deb
  2. Install with:
    sudo apt install ./Sub-Editor-Linux.deb
  3. Launch from your app menu or run sub-editor in terminal

All required libraries (libmpv, ffmpeg, xcb) are bundled. No extra packages needed.


Running from Source

Prerequisites: Python 3.10+, uv, mpv, and FFmpeg

# macOS
brew install mpv ffmpeg

# Linux
sudo apt install libmpv-dev ffmpeg
git clone https://github.com/shfire616/Subtitle-Editor.git
cd Subtitle-Editor
uv run python src/main.py

uv handles the virtual environment and all Python dependencies automatically.


Usage Guide

Opening a File

  • Drag & drop a video or audio file onto the window
  • Or use File → Open / Cmd+O
  • If a .srt file with the same name exists in the same folder, it loads automatically

Timeline Editing

Action How
Move a block Drag the block body
Resize a block Drag the left or right edge
Snap edge to playhead Right-click the block edge
Split at playhead Press S
Add blank block Press D
Zoom Ctrl+Scroll or Cmd/Ctrl + = / -

List View Editing

Action How
Edit text Left-click any text cell
Navigate rows Arrow keys (playhead follows)
Split block at cursor Enter inside text cell (text and duration split proportionally)
Merge with previous Backspace at start of text
Merge with next Delete at end of text

Exporting

  • File → Export SRT or Cmd/Ctrl + E — exports the final .srt file
  • File → Export Text — plain text, one line per subtitle

Hotkeys

Key Action
Space Play / Pause
S Split at playhead (Timeline)
D Add blank subtitle at playhead
Enter Pro-rata split (inside text cell)
Backspace Merge with previous (cursor at line start)
Delete Merge with next (cursor at line end)
Cmd/Ctrl + M Merge selected blocks
Cmd/Ctrl + E Export SRT
Cmd/Ctrl + F Find & Replace
Cmd/Ctrl + S Save project
Cmd/Ctrl + Z / Y Undo / Redo
Cmd/Ctrl + A Select all
Cmd/Ctrl + = / - Zoom timeline in / out
T Toggle list view
K / L Decrease / increase playback speed

License

GNU General Public License v3.0 — free to use, modify, and distribute. Derivative works must remain open source.

About

A fast, visual subtitle editor with waveform timeline — built by a real subtitle editor, for people who care about timing.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages