subtitleedit Documentation

C# repository by @SubtitleEdit. AI agent rules & system prompts with 14k stars.

13,727 stars C# C# 1 file Β· ~5,057 tokens
RAW Doc

File: README.md

Subtitle Edit

The subtitle editor :)


🌐 Documentation & FAQ

http://subtitleedit.github.io/subtitleedit/


πŸš€ Automated Builds

You can find the latest cross-platform builds here:
πŸ‘‰ Releases


πŸ’» System Requirements

Windows

  • Minimum: Windows 10 version 22H2 (build 19045) or newer, fully updated. Older Windows 10 builds (2004/20H2/21H1/21H2) are end-of-life and may fail to start with a .NET runtime error (0x80131506).

macOS

  • Minimum macOS version: 12 (Monterey) or newer
  • The .dmg is self-contained: libmpv and ffmpeg are bundled inside Subtitle Edit.app, so no MacPorts or Homebrew install is required.

Installing Subtitle Edit on macOS

As of v5.1.0-rc13, the .dmg is signed with an Apple Developer ID and notarized by Apple, so it opens normally β€” no Terminal quarantine-removal step is needed:

  1. Download and double-click the .dmg file to mount it.
  2. In the window that appears, drag Subtitle Edit.app into your Applications folder.
  3. Open Subtitle Edit from Applications (or Launchpad).

Linux

Flatpak (any distribution)

A Flatpak package is available from the Releases page. It bundles all required dependencies (mpv, ffmpeg) β€” no separate installation needed.

bash
flatpak install SubtitleEdit-linux-x64.flatpak
flatpak run dk.nikse.subtitleedit

Native packages

Requires mpv and ffmpeg (ffmpeg is normally already installed) to enable video functionality.

Debian/Ubuntu

bash
sudo apt update && sudo apt install -y mpv libmpv-dev ffmpeg

Arch

bash
sudo pacman -S mpv ffmpeg

Fedora

bash
sudo dnf install mpv-libs ffmpeg

openSUSE

bash
sudo zypper install libmpv1 ffmpeg

βš™οΈ Note: The provided builds are self-contained and do not require a separate .NET installation.


πŸ”’ Privacy

Subtitle Edit is an offline, open-source application.
It does not collect, store, transmit, or analyze the content of your subtitle files, media files, or any associated metadata β€” not for analytics, not for model training, and not for any other secondary purpose, now or in the future.

All core features, including editing, converting, video playback, and local auto-backup, run entirely on your device.

If you choose to use optional third-party online services within Subtitle Edit (such as translation, speech-to-text, text-to-speech, OCR, or dictionary/lookups), only the minimal data required to perform that specific request is sent directly to the selected provider. Any such data transfer is governed by the provider’s own privacy policy, and Subtitle Edit does not retain or forward this data in any way.

Subtitle Edit aims to give you full control over your files β€” your data stays yours.


❀️ Support the Project

If you’d like to support the continued development of Subtitle Edit, please consider donating:



File: docs/features/adjust-all-times.md

Adjust All Times

Shift all subtitle timings by a fixed amount.

  • Menu: Synchronization β†’ Adjust all times...

Options

  • Adjustment β€” Time amount to shift
  • Show earlier / Show later β€” Apply the adjustment as a negative or positive shift
  • Apply to β€” All lines, selected lines only, or selected lines and forward

The window remembers its position and stays open across New/Open, so adjustments can be made while continuing to work on the subtitle.

Keyboard shortcuts

  • Shift/Ctrl/Alt + Left or Right arrow β€” Show earlier/later
    • Time codes shown as milliseconds: 10 ms / 100 ms / 500 ms
    • Time codes shown as frames: 1 frame / 10 frames / 1 second

Note: "Selected lines and forward" applies the shift to the currently selected lines and every line after them.


File: docs/features/adjust-duration.md

Adjust Duration

Adjust the display duration of subtitle lines.

  • Menu: Tools β†’ Adjust durations...

Options

  • Seconds β€” Adjust all durations by a fixed number of seconds (positive or negative)
  • Percent β€” Scale durations by a percentage
  • Fixed β€” Set all durations to a fixed value (in seconds)
  • Recalculate β€” Recalculate durations from text length using optimal and maximum characters/second
    • Extend only β€” Never shorten a subtitle, only extend it

File: docs/features/apply-duration-limits.md

Apply Duration Limits

Enforce minimum and maximum duration limits on subtitle lines.

  • Menu: Tools β†’ Apply duration limits...

Options

  • Minimum duration (ms) β€” Set the minimum display time in milliseconds
  • Maximum duration (ms) β€” Set the maximum display time in milliseconds

The preview list updates live as you change values. Lines that cannot be fully fixed (because there is not enough room before the next subtitle) are shown as partial fixes or skipped, and the counts are reported under the list.


File: docs/features/apply-min-gap.md

Apply Minimum Gap

Set a minimum time gap between consecutive subtitles.

  • Menu: Tools β†’ Apply min. gap between subtitles...

Options

  • Min. ms between lines / Min. frames between lines β€” The minimum time between subtitles. The unit (milliseconds or frames) follows the global Use time format HH:MM:SS:FF setting.

The preview list updates live and the status text shows the number of gaps that were fixed.


File: docs/features/assa-apply-advanced-effects.md

ASSA Apply Advanced Effects

Apply cinematic and creative ASS/SSA override tag effects to subtitles with real-time video preview.

  • Menu: ASSA tools β†’ Apply advanced effects...
  • Shortcut: Configurable

Overview

This feature automatically generates complex ASSA override tag animations and effects for selected subtitle lines. Each effect creates frame-by-frame animations using ASSA's vector drawing and animation capabilities, with real-time video preview.

Effects range from text animations (typewriter, karaoke, bounce-in) to visual enhancements (neon, glitch, rainbow) to transitions and atmospheric/background generators (starfield, rain, snow, fireflies, old movie, confetti, hearts).

How to Use

  1. Open ASSA tools β†’ Apply advanced effects...
  2. Select an effect from the dropdown list
  3. Choose which lines to affect:
    • All lines β€” Apply to entire subtitle
    • Selected lines β€” Apply only to selected lines
    • Selected lines and forward β€” Apply from first selected line to end
  4. Preview the effect in the video player
  5. Click OK to apply

Note: Audio-reactive effects (like Audio text pulse) are only shown when waveform/audio peak data is available.

Available Effects

Text Animation Effects

Effect Description
Typewriter Characters appear one-by-one as if being typed
Typewriter with highlight Characters appear one-by-one with a glowing highlight on the active character
Word by word Words appear one-by-one instead of characters
Karaoke Highlights each character in sequence, revealing the text left to right like karaoke lyrics
Karaoke - active word pop Dims inactive words and pops/glows a pre-marked active word (via \u1 or highlight color); can auto-detect the active word
Scramble reveal Text starts scrambled and gradually resolves to the correct characters
Bounce in Each character springs in with an elastic pop animation
Slow zoom-in Text starts at normal size and gently grows slightly over the subtitle duration
Slow zoom-out Text starts slightly larger and gently shrinks to normal size over the subtitle duration
Slide in from left Text slides in from off-screen left, holds, then exits back to the left
Slide in from right Text slides in from off-screen right, holds, then exits back to the right
Word spacing Increases spacing between words using the \fsp tag for better readability
Word flip 3D Each word folds in with a 3D flip and elastic pop as it is spoken β€” modern "Shorts" caption style
Cinematic title Letters track from wide to normal spacing while resolving from a soft blur β€” classic film title reveal

Visual Enhancement Effects

Effect Description
Neon burst Text appears with a neon glow and "pop" animation using modern colors
Rainbow pulse Text cycles through rainbow colors with a pulsing animation
Wave Text characters undulate in a wave motion
Wave (blue) Blue/cyan wave variant
Glitch Digital glitch overlays with flashes, distortion, and chromatic offset
Audio text pulse Audio-reactive glow/scale pulse driven by waveform amplitude
Lower third Name and role banner bottom-left with an accent bar sliding in β€” interview/documentary style (first line = name, following lines = role). The accent color is picked in the effect settings

Transition Effects

Effect Description
Transition - fade-in Per-line fade-in from black at the start of each subtitle
Transition - fade-out Per-line fade-out to black at the end of each subtitle
Transition - TV close Black bars grow inward from top and bottom while the middle fades to white, then cuts to solid black β€” mimics an old CRT TV powering off
Fade in/out Text fades in at the start and fades out at the end of each subtitle

Decorative/Atmospheric Effects

Effect Description
Star Wars scroll Classic opening crawl effect with perspective text scrolling into the distance
Credits scroll Vertical scrolling credits effect
Infinite starfield (background) Continuous warp-speed starfield background
Infinite rain (background) Continuous falling rain with depth layers
Infinite snow (background) Continuous snowfall with depth layers
Fireflies (background) Warm glowing dots drifting and pulsing organically
Old movie effect (background) Film grain, scratches, gate flicker, and vignette
Matrix Falling green character rain with matrix-style subtitle reveal
Confetti burst Colorful spinning confetti bursts from dynamic launch points
Hearts (rain) Bezier-drawn hearts rain gently with tumbling motion

Effect Scope Options

All Lines

Applies the effect to every subtitle line in the file.

Selected Lines

Applies the effect only to the currently selected subtitle lines. Useful for applying effects to specific scenes or sections.

Selected Lines and Forward

Applies the effect starting from the first selected line through to the end of the subtitle file.

Real-Time Preview

The video player shows a live preview of the selected effect as you change options. The effect is rendered using a temporary ASS file and displayed over the video using libmpv's subtitle rendering.

  • Position control β€” Seek through the video to preview the effect at different timestamps
  • Play/Pause β€” Click the video surface to toggle playback
  • Subtitle list β€” Select different subtitle lines to preview their effect

Technical Details

How Effects Work

Each effect generates ASSA override tags ({\tag}) to animate properties like:

  • Position (\pos, \move)
  • Scale (\fscx, \fscy)
  • Rotation (\frx, \fry, \frz)
  • Color (\1c, \3c, \4c)
  • Transparency (\alpha, \1a, \3a, \4a)
  • Blur (\blur)
  • Border (\bord)
  • Transitions (\t(...))
  • Vector drawing (\p1, drawing commands)

Many effects split a single subtitle line into multiple lines with sequential timing to create frame-by-frame animation.

Video Resolution

Effects that involve positioning or drawing (background effects, particles, transitions) adapt to the video resolution. The feature automatically detects the video dimensions or uses a fallback resolution of 1280x720.

Performance Considerations

  • Complex effects (especially particle/background effects like starfield/rain/snow/old-movie/confetti/hearts) generate many subtitle lines
  • Each generated line adds to the ASS file size and rendering overhead
  • Audio-reactive effects split subtitle lines into short frame windows for waveform-driven animation
  • Effects are optimized for modern playback engines (libmpv, mpv, VLC, etc.)
  • Preview uses temporary files that are automatically cleaned up on close

Tips

  • Preview before applying β€” Always preview the full effect with the video before committing
  • Test with different scenes β€” Some effects look better in bright/dark scenes
  • Combine with styles β€” Effects respect the base ASSA style but may override specific properties
  • Selective application β€” Use "Selected lines" to apply different effects to different scenes
  • Experiment β€” Each effect has its own aesthetic; try multiple effects to find the right fit

Keyboard Shortcuts

Key Action
Escape Close without applying

File: docs/features/assa-attachments.md

ASSA Attachments

Manage fonts and images embedded as attachments in an Advanced SubStation Alpha (ASS/SSA) subtitle file.

Menu: ASSA tools β†’ Attachments...

How to Use

  1. Open a subtitle file in ASS/SSA format.
  2. Go to ASSA tools β†’ Attachments... to open the attachments manager.
  3. View the list of currently embedded fonts and images.
  4. Use Add to attach new font or image files.
  5. Select an attachment and use Delete or Delete All to remove attachments.
  6. Select an image attachment to see a preview.
  7. Click OK to save changes.

Features

Font Attachments

  • Embed TrueType (.ttf) and OpenType (.otf) font files directly in the subtitle file.
  • Ensures the correct fonts are available regardless of the system fonts installed.

Image Attachments

  • Embed image files (PNG, JPG, GIF, BMP, ICO) in the subtitle file.
  • Preview embedded images directly in the dialog.

Management

  • Add one or more attachments at a time.
  • Delete individual attachments or clear all attachments.
  • View attachment names and sizes.

Trim Fonts to Used Characters

  • Trim fonts to used characters... rewrites each embedded TrueType font so that only the glyphs used by the subtitle's text keep their outlines - a full CJK font of many megabytes typically shrinks to a few hundred kilobytes.
  • Character coverage, kerning, ligatures and complex-script shaping (Arabic, Indic, ...) are preserved for the text the subtitle actually contains, and the font's family name is unchanged.
  • Trim as a final step: text added to the subtitle later may display with missing characters, since its glyphs were removed. Re-embed the full font if the text changes.
  • Only TrueType fonts with glyf outlines can be trimmed; CFF-based OpenType fonts and font collections (.ttc) are kept unchanged.
  • The same trimming is available as a checkbox in the font collector's Embed fonts in subtitle and in batch convert's Embed fonts function.

Keyboard Shortcuts

Shortcut Action
F1 Show help
Escape Close dialog

File: docs/features/assa-draw.md

ASSA Draw

A vector drawing tool for creating ASSA drawing commands (\p1 ... \p0) used in Advanced SubStation Alpha subtitles.

Menu: ASSA tools β†’ Draw...

How to Use

  1. Go to ASSA tools β†’ Draw... to open the drawing canvas.
  2. Select a drawing tool (Line, BΓ©zier curve, Rectangle, Circle, etc.) from the toolbar.
  3. Click on the canvas to create points and shapes.
  4. Use the shape tree on the side to manage layers and shapes.
  5. Adjust individual point coordinates for precise positioning.
  6. Toggle the grid overlay for alignment guidance.
  7. Click OK to insert the generated ASSA drawing code into your subtitle.

Features

Drawing Tools

  • Select: Selection/move tool for picking and dragging existing shapes and points.
  • Line: Draw straight line segments.
  • BΓ©zier Curve: Draw smooth curves with control points.
  • Rectangle: Draw rectangles.
  • Circle: Draw circles/ellipses.
  • Color Picker: Pick a color from the canvas.

Canvas

  • Configurable canvas size (default 1920Γ—1080).
  • Zoom in/out for detailed editing.
  • Grid overlay for alignment.
  • Real-time position display.

Shape Management

  • Organize shapes in a tree view with layers.
  • Select, move, and delete shapes or individual points.
  • Set layer colors.
  • Edit exact X/Y coordinates for selected points.

Import / Export

  • Open existing ASSA drawing files.
  • Save drawing code as files.
  • Copy generated ASSA drawing code to the subtitle.

Keyboard Shortcuts

Shortcut Action
F1 Show help
Escape Close dialog

File: docs/features/assa-image-color-picker.md

ASSA Image Color Picker

Pick colors directly from a video frame screenshot for use in ASSA subtitle styles and override tags.

Menu: ASSA tools β†’ Image color picker...

How to Use

  1. Load a video and select a subtitle line.
  2. Go to ASSA tools β†’ Image color picker... to open the color picker.
  3. A screenshot of the current video frame is displayed.
  4. Move the mouse over the image β€” the current color under the cursor is shown in real time.
  5. Click on the image to select a color.
  6. Use Copy to copy the selected color as a hex value to the clipboard.
  7. Click OK to apply.

Features

Color Picking

  • Real-time color preview as you move the mouse over the video frame.
  • Click to lock in a color.
  • Displays both the current mouse color and the last clicked color.

Color Display

  • Shows colors as hex values (e.g., #FF00FF00).
  • Visual color swatch for both current and selected colors.

Copy to Clipboard

  • Copy the selected color as a hex string for use in ASSA override tags or style editors.

Resolution Handling

  • Source and target resolution support for accurate coordinate mapping.

Keyboard Shortcuts

Shortcut Action
F1 Show help
Escape Close dialog

File: docs/features/assa-override-tags.md

ASSA Apply Override Tags

Apply ASSA override tags to subtitle lines with a live video preview.

Menu: ASSA tools β†’ Apply override tags...

How to Use

  1. Load a video and subtitle file in ASSA format.
  2. Optionally select specific subtitle lines to apply tags to.
  3. Go to ASSA tools β†’ Apply override tags... to open the dialog.
  4. Select an override tag from the list or enter a custom tag.
  5. Choose the scope: all lines, selected lines, or selected lines and forward.
  6. Preview the result in the built-in video player.
  7. Click OK to apply the override tags.

Features

Override Tag Selection

  • Browse a list of common ASSA override tags.
  • Select from predefined tags or build custom tag combinations.
  • Remembers the last used override tag.

Application Scope

  • All lines: Apply the tag to every line in the subtitle.
  • Selected lines: Apply only to the currently selected lines.
  • Selected lines and forward: Apply to the selected lines and all subsequent lines.

Live Preview

  • Built-in video player shows the effect of the override tags in real time.
  • Subtitle list displays all lines with current text.

Selection Info

  • Displays information about how many lines will be affected.

Keyboard Shortcuts

Shortcut Action
F1 Show help
Escape Close dialog