mpv Playlist Audio Track Choice Not Remembered: How to Fix It

  • Use language preferences instead of unreliable cross-file track IDs.
  • Separate file-local choices from persistent playlist defaults.
  • Find profile, script, metadata, and watch-later conflicts safely.

When an mpv playlist audio track choice is not remembered, the player may return to the original language, commentary track, or another default whenever the next file starts. Subtitle selections can reset in the same way. This usually does not mean mpv is broken. The most likely causes are that the change was file-local, track IDs differ between files, language preferences are missing, a profile or script overrides the selection, or watch-later data cannot provide the kind of cross-file persistence you expect. Start with a clean test, identify whether the problem affects one file or every playlist entry, and stop changing settings as soon as the next item opens with the intended track.

Two playlist files with different audio track arrangements being tested in a clean media player setup.

1. Confirm the Symptom With a Minimal Clean mpv Command

Before editing mpv.conf, test the files without your normal configuration. This separates core mpv behavior from scripts, profiles, key bindings, shaders, hardware decoding options, and other customizations.

1.1 Run mpv Without User Configuration

Open a terminal or command prompt and launch two representative files as one playlist. Replace the example paths with real paths on your system.

On Linux or macOS:

mpv --no-config '/path/to/episode-01.mkv' '/path/to/episode-02.mkv'

On Windows PowerShell:

mpv --no-config 'C:\Media\episode-01.mkv' 'C:\Media\episode-02.mkv'

During the first file, cycle audio tracks with the default audio-track binding, normally the # key. Then advance to the next playlist entry. You can use i to display interactive statistics and track information in builds using mpv's default bindings.

If the next file returns to another track, inspect the available languages and track IDs before treating that as a failure. Runtime track selection is normally associated with the current file. Selecting audio track ID 2 in one file does not guarantee that track ID 2 represents the same language in another file.

Success at this stage means the clean player selects the desired track through an explicit language preference, or it demonstrates that the reset is caused by normal file-local selection. If the symptom disappears under --no-config, stop investigating codecs, GPU drivers, and audio devices. Your configuration, bindings, profiles, or scripts are the relevant layer.

1.2 Inspect Track IDs and Language Metadata

Track IDs are local to each media file. One episode might contain English as audio ID 1, while the next uses ID 2. A commentary track might also move between IDs. For cross-file consistency, language metadata is usually more useful than a numeric ID.

Open the console with mpv's console binding if available, inspect the on-screen track list, or run:

mpv --no-config --term-status-msg='${track-list}' 'file.mkv'

You can also use verbose logging later in this guide. Look for each audio or subtitle track's ID, type, language, title, default flag, and forced flag. If the files do not contain language tags, mpv cannot reliably infer that differently numbered tracks represent the same language.

2. Configure Track Selection for the Result You Actually Want

The correct fix depends on whether you want a default language for every file, a manual selection that carries through a playlist, or restoration when reopening the same file. Those are different behaviors.

2.1 Use alang and slang for Language-Based Defaults

For playlists containing properly tagged tracks, set preferred audio and subtitle languages. Add options like these to mpv.conf:

alang=eng,jpn
slang=eng

Language matching uses the metadata embedded in each file or supplied by a stream. Put languages in preferred order. Adjust the codes to match the tags actually present in your media. If files use inconsistent codes or lack tags entirely, correcting the files' metadata outside mpv may be more reliable than forcing track numbers.

You can test the preference without editing the configuration:

mpv --no-config --alang=eng,jpn --slang=eng file1.mkv file2.mkv

Success means each playlist entry selects the highest-priority available language. Stop changing settings if this produces the intended result, even when the selected numeric ID differs between files.

2.2 Understand Runtime Changes Versus File-Local Options

When you change aid or sid while a file is playing, that change may apply to the current file rather than redefining your defaults for future playlist entries. A command can be deliberately marked as persistent or file-local. This distinction matters when custom input bindings invoke property changes.

A binding that merely cycles the current audio property can behave differently from one that changes the option persistently. For a playlist-wide runtime change, use a command form that stores the changed option for subsequent files. For example, an input.conf binding can use mpv's change-list command against the preferred-language option:

Ctrl+a cycle-values alang eng jpn

For direct track selection or cycling, consult the command output and manual for your installed build because command behavior and property syntax must match that build. The key principle is to modify a persistent preference such as alang, rather than assuming a current file's numeric aid has the same meaning in the next file.

Test any new binding from a terminal and confirm its effect with the property expansion or console. Success means activating the binding changes the preference and newly loaded playlist entries follow it. If only the current file changes, the command is still operating at the file-local layer.

2.3 Avoid Fixed Track IDs Across Unrelated Files

Settings such as aid=2 and sid=3 can work for a consistently authored series, but they are fragile across mixed media. Track order can differ because of alternate releases, remuxing, commentary tracks, descriptive audio, or missing streams.

A fixed ID is reasonable only after verifying that every relevant file uses the same layout. Otherwise, prefer these selection signals:

  • Language tags through alang and slang
  • Default or forced flags provided by the media
  • Track titles inspected manually when metadata is inconsistent
  • File-specific watch-later restoration when reopening the same file

Success means your rule still works when the playlist reaches a file with a different track order. If it does, there is no need to force an ID.

2.4 Review Profiles, Scripts, and Input Bindings

A profile can silently replace language preferences or track properties when a new file loads. Conditional profiles are especially relevant because their conditions may become true for only some files, protocols, resolutions, or media types.

Search mpv.conf, included configuration files, and script options for:

  • aid, sid, vid, alang, and slang
  • audio-file, sub-file, or automatic external-file loading options
  • Profiles that match file extensions, paths, protocols, or video properties
  • Lua or JavaScript code observing file-loaded or track properties
  • Bindings that use set, cycle, or script messages to change tracks

Temporarily disable one suspected profile or script rather than deleting the whole configuration directory. You can move a single script out of the scripts directory, comment out one option, or test with --no-config.

Success means normal configuration works after the conflicting line or script is removed. Stop there and document the reason for the change so it is not accidentally restored later.

2.5 Know What Watch-Later Can and Cannot Do

mpv's watch-later feature saves playback state for a particular file, commonly including position and selected properties. It is designed primarily to restore state when reopening that same resource. It is not a universal instruction to copy one file's selected audio track into every later playlist entry.

Enable watch-later behavior through the relevant save-position option or by quitting with the default save-position command. Then reopen the exact same file and check whether its track selection returns. Permissions must allow mpv to create and update files in its watch-later directory.

If reopening the same file restores the choice, watch-later is functioning. If the next, previously unseen episode does not inherit that choice, use language defaults or a persistent binding instead. Per-file memory is unrealistic when URLs change, streams expose temporary identifiers, media lacks stable metadata, or every playlist entry has a different track layout.

Troubleshooting layers separating track selection settings from unrelated playback components.

3. Check Related Settings Without Chasing Unrelated Causes

Track-choice persistence is usually a selection or configuration issue. Output drivers, hardware decoding, HDR processing, screenshots, and yt-dlp are relevant only when they alter what tracks are available or prevent files from loading normally.

3.1 Audio Backend and Hardware Decoding

An audio backend such as WASAPI, PipeWire, PulseAudio, ALSA, or CoreAudio controls playback output. It normally does not decide which embedded audio track mpv selects. Investigate the backend only if the chosen track is shown as active but produces no sound, fails to initialize, or triggers an audio-device error.

Likewise, hwdec, GPU drivers, shaders, HDR tone mapping, display servers, and video output options generally affect video decoding or presentation, not audio-language persistence. Test --hwdec=no only when loading the next file fails, playback aborts, or logs show decoder problems. Do not treat a successful track switch followed by silent output as proof that the selection was forgotten.

3.2 Online URLs, Network Streams, and yt-dlp

Online sources may expose separate audio and video formats, changing manifests, or tracks selected before playback begins. If mpv uses yt-dlp, format selection can determine which audio stream is available. A chosen embedded track cannot persist if the next URL provides a different set of formats.

Test the direct URL with --no-config and inspect the track list after loading. Confirm that yt-dlp is installed through a trusted source and is discoverable in your executable path. Avoid downloading replacement binaries from random sites.

For live streams, HLS, DASH, or authenticated network resources, track metadata may change during manifest refreshes. Success means the desired language or format is available and selected on each newly loaded URL. If it is absent, the limitation belongs to the source or format selection rather than mpv's memory.

3.3 File Paths, Permissions, and Shell Quoting

Incorrect quoting can cause a playlist path or option value to be parsed incorrectly. Quote paths containing spaces and remember that shells handle quotes differently. PowerShell, Command Prompt, Bash, Zsh, and Fish are not interchangeable.

Permissions matter when mpv needs to read configuration files, playlists, scripts, external subtitles, or media files, and when it writes watch-later state or logs. Check ownership and write access for the specific directory involved. Do not delete the entire configuration folder as a first step.

Screenshot settings are unrelated unless a key binding collision causes your intended audio key to run a screenshot command instead. Check input.conf if pressing a key produces an unexpected action.

4. Use mpv Diagnostics to Find the Override

4.1 Capture a Focused Log

Run a short playlist test with a log file:

mpv --log-file=mpv-track-test.log --msg-level=all=v file1.mkv file2.mkv

For a cleaner comparison, repeat it with --no-config. Search the log for track selection, profile application, script messages, audio initialization, and file-loaded events. Avoid publishing logs without reviewing them because local paths, URLs, cookies, or other private details may appear.

Success means the log identifies when the selected audio or subtitle property changes. Once you find a profile, script, option, or source limitation responsible for that change, stop broad troubleshooting and correct that component.

4.2 Inspect Profiles and Live Properties

Use --show-profile=profile-name to display the contents of a named profile. This is useful when a profile is defined through multiple included files or when you have forgotten which options it contains.

mpv --show-profile=my-profile

Inside mpv, use the stats overlay or console to inspect the active track list and relevant properties. Compare the first and second playlist entries. Record the selected track ID, language, title, and default status for each. This is more useful than reporting only that mpv is not working.

5. Run a Clean Temporary Test Before Making Permanent Changes

A controlled test prevents several simultaneous edits from hiding the real cause. Choose two local files that reproduce the issue and follow this sequence:

  1. Run both with --no-config and inspect their track metadata.
  2. Add only a temporary --alang or --slang option.
  3. Advance to the next item and verify the selected language.
  4. Run the same command without --no-config.
  5. If the behavior changes, disable suspected profiles or scripts one at a time.
  6. After identifying the cause, make one permanent configuration change.

If the files lack useful language tags, create a temporary playlist from two files with known metadata or test a fixed track ID only after confirming identical layouts. Do not change hardware decoding, video output, audio output, HDR, and scripting options simultaneously.

The test is successful when the desired rule survives a playlist transition. At that point, stop. Additional changes create new variables and may turn a solved track-selection issue into an unrelated playback problem.

6. Quick Fix Checklist

  • Reproduce the reset with two known files and --no-config.
  • Compare track IDs, language tags, titles, and default flags.
  • Use alang and slang for cross-file language preferences.
  • Avoid assuming the same numeric track ID has the same meaning everywhere.
  • Check profiles, scripts, included configs, and custom input bindings for overrides.
  • Use watch-later for reopening the same file, not universal playlist inheritance.
  • Confirm the watch-later directory is writable if same-file restoration fails.
  • Inspect yt-dlp format availability for online sources.
  • Investigate audio backends only when the selected track is silent or errors.
  • Capture a log and stop changing settings after identifying the responsible layer.

7. Frequently Asked Questions

7.1 Why does mpv remember my choice in one file but not the next?

A manual aid or sid change commonly selects a track for the current file. The next playlist entry has its own track list and may use different IDs. Configure language preferences or use an intentionally persistent command when you want a cross-file rule.

7.2 Can mpv always remember one audio track for an entire playlist?

Not reliably by numeric ID. It can apply a preferred language when tracks are tagged consistently, and a custom script may implement more specialized policies. Universal per-file memory is unrealistic for unseen files, temporary stream URLs, missing metadata, and playlists with inconsistent track layouts.

7.3 Should I set aid=2 in mpv.conf?

Only if you have verified that ID 2 is the desired track in every relevant file. For mixed libraries, alang is safer. If ID 2 is absent, mpv must choose another available track or play without the requested selection.

7.4 Why are subtitles resetting too?

Subtitle selection follows the same general distinction between the current file and future defaults. Set slang for preferred subtitle languages, inspect forced and default flags, and check scripts that automatically load external subtitles. Also verify whether the next file actually contains the requested language.

7.5 Does watch-later save audio and subtitle choices?

Watch-later can restore saved properties for the same media resource, depending on the active options and available state. It should not be treated as a way to propagate one episode's track ID to every episode. If same-file restoration fails, check write permissions and whether the file or URL is recognized consistently.

7.6 Is this mpv player issue caused by hardware decoding or HDR?

Usually not. Hardware decoding, GPU output, shaders, and HDR settings affect video processing. They become relevant only if the next file fails to load or playback aborts before track selection can complete. A visible reset between successfully loaded files points first to track metadata, option scope, profiles, scripts, or defaults.


Citations

  1. Official reference for mpv options, commands, profiles, track selection, logging, and watch-later behavior. (mpv Manual)
  2. Official documentation and project information for the mpv media player. (mpv)
  3. Official installation guidance and source links for yt-dlp. (yt-dlp Installation Guide)
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.