EMMS smart playback remembering last position

Posted on August 22, 2026 by Ivan Dimitrov

EMMS Smart Watch Feature Requirements

GOAL

Enable EMMS in Emacs to:

  • Remember the last playback position (per media file)
  • Resume from last position automatically
  • Visually annotate media browser/dired/ibuffer with progress
  • Indicate completed (fully watched) files

TASKS

TODO Persistent Storage for Play States

  • Store last played position, duration per file
  • Use a sexp file, e.g., an alist
  • Ensure efficient lookup/update

TODO Hook Integration in EMMS

  • On playback stop/change, save position and duration
  • On playback start, check and resume from last position if available

TODO Visual Annotation in Media Browser

  • For each video file, display watch percentage visually
  • Color or icon for completed files (e.g., 95%+ watched)
  • Integrate with dired/ibuffer/EMMS browser

TODO Mark Files as Completed

  • If user finishes a file (end reached or high %), update state
  • Option to manually mark as complete

TODO User Configuration

  • Set threshold for “completed” (e.g., 95% watched)
  • Customize appearance

TODO Testing & Edge Cases

  • File renamed/moved
  • Partial plays
  • Support for non-video formats

TODO Documentation

  • Usage instructions
  • How to clear/reset a file’s watch history

NOTES

  • Use EMMS hooks for integration
  • Make all user-facing features easily customizable
  • Consider extensibility for other media types