Skip to content
Subtitle editor for Emacs
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
subed Update subed-subtitle-spacing docstring Jul 14, 2019
LICENSE Add LICENSE Jun 15, 2019
Makefile Add Makefile Jul 1, 2019 Remove alpha warning Jul 4, 2019


subed is an Emacs major mode for editing subtitles while playing the corresponding video with mpv. At the moment, the only supported format is SubRip ( .srt).


  • Quickly jump to next (M-n) and previous (M-p) subtitle text.
  • Quickly jump to the beginning (C-M-a) and end (C-M-e) of the current subtitle’s text.
  • Insert (M-i) and kill (M-k) subtitles.
  • Adjust subtitle start (M-[ / M-]) and stop (M-{ / M-}) time. A prefix argument sets the number of milliseconds for the current session (e.g. C-u 1000 M-[ M-[ M-[ decreases start time by 3 seconds).
  • Move the current subtitle or all marked subtitles forward (C-M-n) or backward (C-M-p) in time without changing subtitle duration. A prefix argument sets the number of milliseconds for the current session (e.g. C-u 500 C-M-n C-M-n moves the current subtitle 1 second forward).
  • Shift the current subtitle forward (C-M-f) or backward (C-M-b) together with all following subtitles. This is basically a convenience shortcut for C-SPC M-> C-M-n/p.
  • Sort and re-number subtitles and remove any extra spaces and newlines (M-s).

mpv integration (optional)

  • Open videos with C-c C-v or automatically when entering subed-mode if the video file is named like the subtitle file but with a video extension (e.g. .mkv or .avi).
  • Pause video playback without leaving Emacs (M-SPC).
  • Every time the buffer is saved, the subtitles are sanitized, sorted, etc and then reloaded in mpv.
  • Cursor and playback position are synchronized:
    • Playback in mpv seeks to the position of the current subtitle as the cursor moves between subtitles (~C-c ,~).
    • The cursor is moved to the currently relevant subtitle as the video is playing (C-c .).
  • Playback is paused or slowed down when a subtitle’s text is edited (C-c C-p).
  • Loop over the current subtitle in mpv (C-c C-l).
  • When a subtitle’s start or stop time changes, mpv seeks to the subtitle’s start time (C-c C-r).


For now, you have to install it manually. For example, copy subed/*.el to $HOME/.emacs.d/elisp/ and add $HOME/.emacs.d/elisp/ to your load-path.

(use-package subed
  ;; Tell emacs where to find subed
  :load-path "~/.emacs.d/elisp/"
  ;; Disable automatic movement of point by default
  (add-hook 'subed-mode-hook 'subed-disable-sync-point-to-player)
  ;; Break lines automatically while typing
  (add-hook 'subed-mode-hook 'turn-on-auto-fill))
  ;; Break lines at 50 characters
  (add-hook 'subed-mode-hook (lambda () (setq-local fill-column 50)))


subed is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You can’t perform that action at this time.