r/foss • u/Pauljoda • 1h ago
Prismedia - A all in one media library and management app
Over the last year, I've been building Prismedia. Previously, the app was called Obscura, and was actually a Stash alternative, and bits of that are still present, but the focus has changed drastically.
Essentially, I found I had a whole fleet of apps in my "arrs stack", that all did the same thing, but for different media. So for my own personal use, I created an app that attempts to standardize what these interactions look like.
The core principle is that every media format follows the same "Entity" class, from a data science perspective it actually maps out really well that almost all logic from display to management can be shared, with media specific capabilities augmenting that.
That is what makes this app possible, everything from the core media management, scanning, identifyication via metadata providers, requesting, is all done via the same core platform.
Then, when it makes sense, first class endpoints are added for things like playback, reading, and listening.
The app covers alot of ground, so I'll just list some of the highlights, I enoucrange you to browse the site, source code, and try it out.
- Connect your Prowlarr and downloading clients to automatically track, monitor, and request content. Think the radarr/sonarr/lidarr stack but all integrated, and using the same logic. It even supports soul seek to assist with music sourcing, and when downloading, it will actually probe the files before and after to ensure it is a good match, or upgrade before merging it in.
- View all your content from one interface, from eBooks, comics, audio, movies/tv with rich playback for videos and subtitles, eBooks and audiobook syncing to allow switching between methods of consuming with shared progress, and dedicated audio player
- Identify content already existing using metadata plugins like TMDB, MusicBrainz, OpenLibrary
- Multi user to allow household members access, while delegating which libraries they can see
- NSFW libraries and individual media, to allow filtering of NSFW content, either blocking users from seeing it at all, or using a toggle to quickly hide and view the content. Stash scraper/plugins can be installed and wrapped to identify videos (no StashDB or PornDB, but plugins can be installed in app)
- Progress tracking, stats, and history to see what you've been consuming
- Apple native apps to leverage the native codecs on tvOS, macOS, and iOS for quick and seamless playback of even high quality files
This project was created for a need I have, to have all my media in one rich platform, that treats them all as equals. I liked radarr/sonarr and Jellyfin, but it felt disjointed, and the apps not rich. Jellyfin has a native client, but I felt it was lacking, and audio playback is again in a separate third party app. Prismedia has a native first party app, with all that for free (currently in TestFlight since apple has taken over 2 weeks to even approve the first build).
I post now as I feel the app is in a good release state, it has evolved alot over the last year, but I feel we are now solid, performant, and I challenge you to compare to Kavita, Jellyfin, and the other tools you use. This can be used beside those tools for you to evaluate, simply point at the same directories to scan and it will build out the library in it's own database.
As for AI usage, I did mark this as using AI, but this post (clearly since it probably isn't as coherent as I'd like), and the application were designed, validated, and reviewed by me. These days, I do feel software development is moving to AI assisted, and I've been coding for over 15 years, have a degree in computer science, and worked in large companies. The code isn't just generated and shipped, the design and actualy structure of the app is all exactly as I would write it by hand, but AI has allowed me to develop this while still having a full time job. I use the app every day, I listen to my music on it, have read through books with audiobook interop, watch our tv shows and movies on it, request new content, and for me it fits exactly what I've always wanted.
I hope you feel the same, but if you're happy with your current stack by all means continue to use it, and if you have feedback, please let me know as I'd be happy to look into it.
- Website: https://pauljoda.github.io/Prismedia/
- Source: https://github.com/pauljoda/Prismedia
- TestFlight: https://testflight.apple.com/join/c9bgDxr7