Identify the actual on-screen controller
A custom controller can change the buttons shown over a video without owning every part of the Jellyfin session. Begin by recording the MPV Shim build and selected controller style. Keep one authorized item with known alternate tracks as the sample.
Preserve the working default configuration before adding scripts. A script intended for standalone mpv can make assumptions that differ from a server-connected client. Keep the publisher, file and purpose of each customization in private notes rather than importing several at once.
Read the documented client integration boundary
MPV Shim’s configuration guide distinguishes its own controls from mpv or custom controllers. It directs Jellyfin-aware track changes through the app’s menu or library and explains that its queue is owned by the application. A generic controller may not expose every server subtitle route.
Use the documented menu key or the installed build’s equivalent and inspect the intended track there. Keep externally supplied or burned-in subtitle behavior distinguishable from a simple embedded local track. A controller displaying a short track list does not prove the server supplied no other supported choices.
Compare one track and one queue action
Choose the desired language through the client-aware route and inspect a known dialogue passage. Record whether it is remembered as intended on reopening the item. Keep the same user and media edition while assessing that result.
Then inspect the app’s actual queue and use its supported next-item control. Do not interpret an inert next button in a custom standalone controller as proof the client has no next item. Preserve the exact control used and visible queue state for any support case.
Return to a known controller if needed
If the custom interface obscures an essential operation, restore the recorded default and repeat the same sample. That comparison can isolate an integration issue without resetting the server account or deleting downloaded media. Keep the script file available for a minimal reproduction.
The expected outcome is a customized interface with understood client-owned operations. It does not certify arbitrary scripts, guarantee every subtitle format or make a standalone controller’s state authoritative for the Jellyfin server. Retain the build and control route with any claim about selected tracks or queue behavior.
Questions answered
Does a generic mpv track picker necessarily show every Jellyfin subtitle route?
No. Use the client-aware route described by MPV Shim for the actual server track choices.
Why can a custom controller’s next button differ from the app queue?
The project documents an application-owned queue. Identify which control actually operates that queue.
Sources & further reading
Official references for the subjects discussed. Service terms and device software can change.

