DavPlay is a small personal media browser I made for my own seedbox setup. It is not something I plan to release or open source. The provider has a pretty good desktop client, but it does not support Linux. Without it, I had to open the web UI, find a video, copy the play link, and pass it to mpv every time.
That got old quickly. I also did not want to download files just to watch them once. My mpv setup already has a large cache, so streaming from the seedbox is usually smooth enough. I mainly needed a better way to browse the library and start playback.
I built it in Rust with egui, partly because I had been curious about egui for a while. It is easy enough to get something working, and I do not have to worry much about styling or customization, which makes it a good fit for internal apps and personal tools. The first version only listed files over WebDAV, which is where the name came from. Later it grew into a proper local library app. It scans the remote files, parses movie and TV filenames, fetches metadata from TMDB, caches artwork, and stores everything in a local SQLite database. Now I can open the app, browse the remote library, and play something directly in mpv.
What it does
- Browse media sources from WebDAV, rclone mounts, or local folders.
- Scan movies, TV shows, and music into a local SQLite library.
- Fetch movie and TV metadata, seasons, episodes, posters, backdrops, and stills from TMDB.
- Read music tags and enrich artists and albums with MusicBrainz and cover art.
- Open media directly in mpv, including playlist playback for the current file and following episodes.
- Track recently watched items and jump back into the last or next TV episode.
- Mark movies, shows, or individual episodes as completed.
- Override difficult filename matches with local
.meta.jsonfiles. - Manage multiple sources from the app, including rclone auto-mount and unmount behavior.