For video, I’m personally pretty thrilled with Kodi, for a few reasons.
- Subsonic/Ampache client built in
- Ability to launch Steam on the client
- Really nice remote control phone app (Kore)
- Huge amount of metadata apps built in
- Way more flexible, services for Netflix, Prime, FloatPlane, etc. Also other, slightly more sailing around on the wave services available as well if so inclined.
The downside is, you have to host it at the client. Which means if you want to transcode local media from a centralized source, you need a more elaborate setup. (Kodi + Jellyfin, for starters).
For Music, SubSonic is the only way to go, because of the abundance of SubSonic clients. The question is - how?
If you want something standalone, Funkwhale is a really pretty option. It’s federated, easy to share your library with friends, and supports SubSonic.
The downside to Funkwhale is, you need to “import” tracks to it. So if you want to have an SMB share that you dump music into or keep raw tracks around, you wind up duplicating tracks. There is an option to “import in place” but it’s not at all convenient, and requires executing commands inside the docker container on a regular basis. You could set it up with cron, but for some reason cron in docker is a nightmare that still hasn’t been solved yet.
Anyways, all of that is far too complex when you could just use the built-in NextCloud Music app, which imports music automatically into your library, and gives you a SubSonic and Ampache server which works just fine with the multitude of clients.
For pictures, there’s some promising movement in NextCloud but nothing quite like Google Photos yet where you can search by object/person etc and get relevant results. One problem with NextCloud is it’s hard to get data in and out of. You basically have 3 options if you want a 3rd party service to be able to access your NextCloud data:
- Mount data with WebDAV, which not all 3rd party services can do
- Make an SMB share, which is annoying, because they can only be top level in NextCloud, and only get refreshed/indexed when the share is accessed through the GUI (so for Music, the Music app won’t pull in new music until you navigate to the SMB share, if you’re using SMB)
- Loose permissions in your NextCloud data folder, but then NextCloud doesn’t know when you’ve written/modified files, and also, the problem of loose permissions.
On the other hand, the NextCloud Android app can auto-upload your photos as you take them, and index them with a file name suffix, and by year and month. So that’s nice.