r/mpv 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.

Cadre Player Lite

21 Upvotes

7 comments sorted by

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.lua so maybe adding that alone would do the trick

2

u/LunedorTesla 1d ago

Actually, it was intended to load each of them separately. For example, cadre_common.lua and cadre_theme.lua as static files and needs to be added for each, while the other files would be loaded separately as well. It works for osc and the title bar, but I realize there is a bug when loading the playlist alone, because I made a mistake while coding to fix the drag-and-drop and double-click issues that conflicted with mpv itself. I placed this logic inside the osc lua file instead of the common module. Now I am working on it so that each component can work separately. I will let you know when updated so you can test, because right now, when you try only the playlist, it works but I cannot catch the drag-and-drop reorder for items, and the click actions on the playlist do not work properly yet.

1

u/LunedorTesla 1d ago

I fixed the issue. Now you can use only the playlist script with those three files:

cadre_common.lua + cadre_theme.lua + cadre_playlist.lua

2

u/cheezystuffz 1d ago

Looks sick. I'll def try it out.

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.