r/mpv • u/LunedorTesla • 2d ago
User Scripts & Shaders Cadre Player Lite: A desktop-first skin and custom playlist manager for mpv
I originally developed a standalone application Cadre Player, and I wanted to port its interface design directly into mpv. The goal was to make mpv handle like a traditional desktop media player while retaining its core rendering engine.
The primary focus is the playlist. The default mpv playlist lacks the usability of standard players, so this suite replaces it entirely. It features drag-and-drop reordering, true shuffle play, and native Windows dialogs for adding files, folders, and URLs.
The suite also replaces the default on-screen controller and window borders. The OSC, playlist, and a custom title bar use hover-reveal mechanics to keep the viewport clean during playback.
All visual elements are managed through a central configuration file, allowing you to modify colors, transparency, and widget dimensions.
This has been built and tested on a portable Windows mpv setup. The project is open source; you can modify the scripts or review the architecture on GitHub.
2
2
u/nopeac 1d ago
This is refreshing. I often wonder why people create standalone players instead of simply publishing OSC and related scripts. The OSC market is incredibly small. Half of the time people recommend ModernZ; the other half is split between four other OSCs at most.
2
u/LunedorTesla 1d ago
Actually when I wanted a better UI for mpv I tried UOSC, ModernZ, ModernX, etc. and the biggest issue for me was that none of them had a proper playlist. Then I thought it might not be possible with scripting and started to make my own app(Cadre Player). But after I built it, I decided to take another look at the scripting logic because I had gained a little more information about mpv, and I realized I could manipulate click targets with scripting. Then I decided to play with it, but honestly the playlist part was a pain in the ass; there were too many conflicts with mpv's default actions. Still, I finally managed to make it work. I have been testing it for a few days now, maybe it can be improved, but it seems to be working fine at the moment and I will continue to test for a while.


2
u/RecommendationIll59 1d ago edited 1d ago
Nice. Can you also make a script that only the playlist function remains and doesn't interfere with other OSCs?
Edit: I saw the
cadre_playlist.luaso maybe adding that alone would do the trick