mpv Watch Later Resume Not Working: How to Fix It

When mpv opens a file from the beginning instead of the last watched position, the problem usually belongs to one of four categories: mpv never saved the position, mpv cannot read or write its watch-later directory, the file or URL no longer has the same identity, or a configuration option, profile, script, or key binding changed the expected behavior. The fastest solution is to test one local file with a clean command, confirm that a watch-later record is created, and then reintroduce your normal configuration carefully.

This guide focuses specifically on watch-later resume behavior. Subtitle rendering, HDR output, hardware decoding, audio backends, shaders, screenshots, yt-dlp, and network access matter only when they prevent a file from opening consistently or change the resource mpv believes it is playing. Do not replace codecs, GPU drivers, or your entire configuration until a minimal test identifies a connection to the resume failure.

Desktop video player and terminal arranged for a clean playback resume test.

1. Confirm the Symptom With a Minimal Clean mpv Command

Start with one ordinary local media file stored on a writable local drive. A short MP4 or MKV file is ideal. Avoid playlists, network shares, symbolic links, online URLs, removable drives, and files launched through another application during this first test.

1.1 Test the default watch-later command

Open a terminal and launch the file while bypassing your normal mpv configuration:

mpv --no-config "/full/path/to/test-video.mkv"

On Windows, use a fully qualified path and quote it if it contains spaces:

mpv --no-config "C:\Media\test-video.mkv"

Let the video play for at least 20 to 30 seconds. Press uppercase Q, which normally invokes mpv's quit-watch-later command. Uppercase Q means holding Shift while pressing Q. Reopen the exact same path with the exact same clean command.

Success means playback begins close to the saved position rather than at zero. A small difference can be normal because seeking may land on a nearby keyframe. If this clean test works, stop investigating codecs, hardware decoding, HDR, subtitles, and operating-system media support. The watch-later mechanism works, and the cause is probably in your regular configuration, launch method, scripts, profiles, or path handling.

1.2 Understand Q versus q quit behavior

The default uppercase Q binding is designed for this feature because it runs quit-watch-later. Lowercase q normally runs the regular quit command. A regular quit does not necessarily create a watch-later record unless save-position-on-quit is enabled.

  • Uppercase Q: saves the current position through quit-watch-later and exits.
  • Lowercase q: exits normally under default bindings.
  • Lowercase q with save-position-on-quit enabled: saves the position when mpv exits normally.

If pressing uppercase Q fixes the problem, no broader troubleshooting is necessary. Either keep using Q or enable automatic saving on ordinary quit.

2. Check the Options, Bindings, Profiles, and Scripts That Control Resume

Once the clean test succeeds, run mpv normally with the same local file. If normal mpv fails to resume, compare your active configuration with the clean test instead of changing unrelated playback options.

2.1 Enable save-position-on-quit when you want q to save

Add the following line to mpv.conf if you want normal exits to save the current position:

save-position-on-quit=yes

You can test it temporarily without editing the file:

mpv --save-position-on-quit=yes "/full/path/to/test-video.mkv"

Play for a while, press lowercase q, and reopen the identical file path. Success means it resumes near the previous position. Stop changing settings once this works consistently.

Also check that resume loading has not been disabled. The relevant option is resume-playback. If your configuration contains resume-playback=no, remove that line or change it to:

resume-playback=yes

The two settings perform different jobs. save-position-on-quit controls whether an ordinary quit writes a position, while resume-playback controls whether an existing watch-later record is loaded.

2.2 Inspect input.conf for replaced quit bindings

A custom input.conf can replace the default Q or q behavior. Search the file for bindings involving quit, quit-watch-later, Q, or q. For example, a custom line such as Q quit removes the save-specific behavior from uppercase Q.

A direct binding for watch-later quitting can be written as:

Q quit-watch-later

If you intentionally bind q to a script, menu, IPC command, or conditional command, verify that the final action either invokes quit-watch-later or exits while save-position-on-quit=yes is active.

Success means the key you expect to save the position now creates a watch-later record and reopening the same file resumes playback. Once confirmed, do not modify subtitle or rendering bindings.

2.3 Check profiles and command-line overrides

mpv options supplied on the command line can override configuration values. Profiles can also apply settings only to particular files, protocols, resolutions, or launch workflows. Search mpv.conf and included configuration files for these terms:

  • save-position-on-quit
  • resume-playback
  • watch-later-dir
  • profile=
  • include=

Use mpv's profile inspection option when you need to see the contents of a named profile:

mpv --show-profile=PROFILE_NAME

Replace PROFILE_NAME with the profile you actually use. Also inspect shortcuts, desktop launchers, shell aliases, wrapper scripts, and file-association commands for --no-resume-playback, --resume-playback=no, a custom watch-later directory, or a different configuration directory.

2.4 Temporarily disable scripts without deleting them

Lua and JavaScript extensions can intercept keys, load playlist entries, replace files, issue seek commands, or quit mpv through commands that do not save watch-later state. First test with:

mpv --no-config --load-scripts=no --save-position-on-quit=yes "/full/path/to/test-video.mkv"

If you need your main configuration but want to exclude user scripts, try:

mpv --load-scripts=no --save-position-on-quit=yes "/full/path/to/test-video.mkv"

If resume works only when scripts are disabled, re-enable scripts individually or temporarily move one suspect script at a time out of the scripts directory. Do not delete the whole configuration folder. Pay particular attention to history scripts, playlist managers, media browsers, auto-profile scripts, and custom quit handlers.

2.5 Avoid changing unrelated playback options prematurely

Subtitle settings, audio-track selection, video-track selection, output drivers, shaders, screenshot templates, HDR tone mapping, and hardware decoding generally do not determine whether a watch-later record is written. They become relevant only if they cause mpv to fail before normal playback, replace the current file, crash during shutdown, or launch the same content through a different path.

If a file plays normally and uppercase Q exits cleanly, keep these options unchanged while testing resume. This isolates the mpv player issue and prevents a working video configuration from becoming a second problem.

3. Check the Watch-Later Directory, Permissions, and File Identity

If a clean uppercase Q test fails, determine whether mpv can create and retrieve its watch-later data. The exact configuration location depends on the operating system, mpv build, and any custom --config-dir or watch-later-dir setting.

3.1 Find and verify the watch-later directory

mpv normally stores resume records in a watch_later directory associated with its configuration path. Common configurations may be found under the user's mpv configuration area on Linux and macOS, while Windows builds may use an application-adjacent portable configuration or a user configuration location. Do not assume a path based only on the operating system. Check how your specific mpv executable was launched and whether a custom configuration directory is active.

After playing a test file and pressing uppercase Q, inspect the watch-later directory. A newly created or recently modified record should appear. Its filename may be a hash rather than the media filename.

  • If no record appears, mpv may not be saving, may be writing somewhere else, or may lack permission.
  • If a record appears but is not consumed on reopening, resume loading may be disabled or the reopened path may have a different identity.
  • If records are created under one user account but mpv is reopened under another, the second process may use a different configuration directory.

Success means a record is created after quitting and the same launch context reads it on the next start.

3.2 Test a dedicated writable directory

To isolate permissions and path discovery, create a temporary directory that your user account can write to. Then point mpv to it explicitly:

mpv --no-config --watch-later-dir="/full/path/to/mpv-watch-test" "/full/path/to/test-video.mkv"

On Windows, an example is:

mpv --no-config --watch-later-dir="C:\Users\YourName\mpv-watch-test" "C:\Media\test-video.mkv"

Press uppercase Q and inspect the test directory. Reopen the file with the same --watch-later-dir argument. If this works, the original watch-later location is wrong, unavailable, read-only, protected by sandboxing, or owned by another account.

Correct the original directory's ownership or permissions using normal operating-system tools. Avoid running mpv permanently as an administrator or root user because that can create files owned by a different account and introduce additional security and permission problems.

3.3 Keep the file path identity stable

Watch-later state is associated with the resource identity mpv receives. The same physical file can appear different when opened through another path. Resume may fail after any of these changes:

  • Renaming or moving the file
  • Mounting a drive at a different path
  • Switching between a symbolic link and the resolved path
  • Using a mapped drive once and a network UNC path later
  • Opening a relative path from different working directories
  • Changing filename capitalization on a case-sensitive file system
  • Opening the file directly once and through a playlist with a different path later

Test by copying the exact path from the first terminal command and reusing it unchanged. If that works, standardize your launcher, playlist, mount point, or library application so it consistently supplies the same path.

3.4 Check sandbox and removable-drive restrictions

Application bundles, package sandboxes, security tools, network-mounted home directories, and read-only portable installations can redirect or block configuration writes. Removable media can also receive a different drive letter or mount point between sessions.

The media file itself does not need to be writable for watch-later resume. The directory holding mpv's resume records does. Test with a local writable watch-later directory before changing permissions on the video file.

Local file, playlist, web stream, and network source following different resume paths.

4. Handle Playlists, Online URLs, Network Streams, and External Tools

Local files provide the most reliable diagnostic baseline. URLs and playlists introduce identity, seekability, expiration, and external-tool dependencies that can resemble a watch-later failure.

4.1 Understand playlist entry identity

When a playlist refers to a file using a relative path, its resolved identity can depend on the playlist location and working directory. Use stable absolute paths during diagnosis. Also confirm that reopening the playlist selects the same entry rather than simply starting with its first item.

A playlist can maintain its own playback flow while watch-later data applies to individual resources. If the desired file resumes when opened directly but not through the playlist, inspect the playlist paths, entry selection, and any script that restores playlist position.

4.2 Treat online URLs as changeable resources

A webpage URL, redirected stream URL, and final media URL may not remain identical across launches. Signed links and temporary query parameters can expire or change. Live streams may not be seekable, and some on-demand services expose a different media resource each time.

Test whether the resource is actually seekable by moving backward and forward during playback. Then reopen the exact same URL. If a local file resumes but the URL does not, the watch-later mechanism is functioning and the limitation is likely URL identity, stream seekability, or extraction behavior.

Do not assume that updating yt-dlp will solve every resume issue. yt-dlp is relevant when mpv uses it to resolve a webpage into playable media. If extraction fails, returns changing URLs, or produces a non-seekable stream, investigate that specific behavior using trusted releases and official installation methods.

4.3 Separate network access from resume storage

For SMB, NFS, WebDAV, HTTP, and other network sources, confirm that the resource is reachable at startup and that seeking works. A disconnected share, changed credentials, modified URL, or delayed mount can prevent mpv from opening the resource to the saved position.

High bitrate, HDR, subtitle-heavy, or hardware-decoded media does not inherently disable watch-later. However, if mpv crashes, the GPU driver resets, or the process is forcibly terminated before its state is written, no usable record may be saved. Verify the behavior with a small local file before changing the GPU driver, display server, audio backend, output driver, or hwdec setting.

5. Use mpv Logging and Runtime Information

When the cause remains unclear, collect terminal output from one controlled test. Logs can reveal the configuration files being loaded, option errors, directory failures, script messages, URL resolution, and shutdown behavior.

5.1 Create a focused log file

Run mpv with a log file and increased detail:

mpv --log-file=mpv-resume.log --msg-level=all=v "/full/path/to/test-video.mkv"

Play briefly, quit with uppercase Q, reopen the same file with the same command, and then inspect the log. Search for terms such as watch, resume, config, script, error, failed, and permission.

Logs can contain local paths, URLs, usernames, and other private information. Review and redact them before posting publicly. If the log identifies a permission failure or an unknown option, fix that one issue and repeat the same test. Stop once the record is written and loaded correctly.

5.2 Use runtime overlays for supporting evidence

The stats overlay and track list are useful for confirming what mpv actually opened, especially with playlists and online media. They can show file or stream information, selected tracks, decoding behavior, and performance. These tools do not directly enable watch-later saving, but they help detect when two launches resolve to different resources.

If subtitle, audio, video, hardware decoding, HDR, or output-driver changes are suspected, compare logs from the failing file with the simple local test. Only pursue those subsystems if mpv crashes, terminates abnormally, or cannot seek. Screenshot settings are relevant only when a custom screenshot binding replaced Q or another quit key.

6. Run a Clean Temporary Test Before Making Permanent Changes

Changing many settings at once hides the cause. Use a temporary test matrix that changes one variable per run.

  1. Open one local file using --no-config.
  2. Play for at least 20 seconds and press uppercase Q.
  3. Reopen the exact same path with --no-config.
  4. If it resumes, repeat with your normal configuration.
  5. If normal mode fails, test with --load-scripts=no.
  6. Test --save-position-on-quit=yes and lowercase q.
  7. If clean mode also fails, specify a known writable --watch-later-dir.
  8. Add custom profiles, scripts, playlists, URLs, and hardware options back one at a time.

After every change, define success the same way: quit after meaningful playback, reopen the identical resource through the identical path, and verify that playback starts near the saved time. Once a change restores that behavior twice in a row, stop. Additional changes add risk without improving the confirmed fix.

7. Quick Fix Checklist

  • Test one ordinary local file rather than a playlist or stream.
  • Launch it with mpv --no-config.
  • Press uppercase Q to run quit-watch-later.
  • Reopen the exact same path and check whether it resumes.
  • Enable save-position-on-quit=yes if lowercase q should save.
  • Ensure resume-playback has not been disabled.
  • Inspect input.conf for replaced Q and q bindings.
  • Check profiles, aliases, shortcuts, and launchers for option overrides.
  • Temporarily test with --load-scripts=no.
  • Confirm that the watch-later directory exists and is writable.
  • Try a dedicated temporary --watch-later-dir.
  • Keep filenames, mount points, playlist paths, and URLs stable.
  • Use a log file to identify permission and option errors.
  • Investigate yt-dlp or network behavior only if local resume works.
  • Stop changing settings as soon as the same controlled test succeeds consistently.

8. Frequently Asked Questions

8.1 Why does uppercase Q resume playback but lowercase q does not?

Under mpv's default bindings, uppercase Q invokes quit-watch-later, which saves resume state before quitting. Lowercase q performs a normal quit. Enable save-position-on-quit=yes if you want ordinary quits to save the current position. Custom input.conf bindings can alter both behaviors.

8.2 Where does mpv store the last watched position?

mpv stores watch-later records in its watch-later directory, normally associated with the active configuration location. The exact path can vary by operating system, packaging method, portable setup, user account, and custom configuration arguments. Use watch-later-dir to test a known writable location.

8.3 Why did resume stop working after I renamed or moved a video?

The watch-later record is tied to the resource identity mpv used. Renaming a file, changing its path, switching mount points, or opening it through a different symbolic link can make it appear to be a different resource. Reuse a stable path or create a new saved position for the new location.

8.4 Does save-position-on-quit work for playlists and URLs?

It can save positions for playable resources, but successful restoration depends on reopening a stable, seekable resource. Playlist entries may use different path forms, while online services may return temporary or changing media URLs. First prove the feature with one local file, then test the playlist entry or URL separately.

8.5 Can hardware decoding, HDR, subtitles, or audio tracks break watch-later?

They do not normally control watch-later storage. They matter when a setting causes a crash, abnormal shutdown, failed file opening, or a different media resource to be loaded. If a simple local file saves correctly, do not change these playback systems unless logs show a related failure.

8.6 What should I do if no watch-later file is created?

Use uppercase Q, test with --no-config, and specify a temporary writable --watch-later-dir. If that creates a record, correct the original directory path or permissions. If it does not, capture terminal output and a verbose log, then inspect option errors and shutdown messages before making broader changes.


Citations

  1. Official mpv manual covering watch-later, resume, configuration, logging, profiles, and input commands. (mpv Manual)
  2. Official mpv installation and platform guidance. (mpv Installation)
  3. Official yt-dlp installation and usage documentation for supported URL extraction. (yt-dlp)
Cindy, ContentBASE creator assistant

MEET CINDY

Your ContentBASE creator assistant

Cindy helps creators find Canva templates, content ideas, and simple ways to make better social media posts faster.

Want ready-to-use templates? Claim the free Canva bundles or browse the full bundle store.