My Firestick died and I had a Raspberry Pi 4B sitting around, so I turned it into a media client instead of buying a replacement. Not really a networking project, but it touched enough of my homelab that things got complicated fast.
Plugged into the TV over micro-HDMI. Sits on my IoT VLAN, separate from the server it streams from.
A minimal Linux OS that exists solely to run Kodi. No desktop, no package manager. Boots straight into the media center UI.
The Jellyfin for Kodi addon syncs my library from the server and handles playback. Streams over HTTP from my Jellyfin instance on G5.
Already running in Docker on my home server with Intel Quick Sync for hardware transcoding. The Pi 4B handles H.265 natively so it rarely needs to.
Flashed LibreELEC and got it on the network. The Jellyfin addon isn’t in Kodi’s default repo so I installed it manually over SSH. That opened up a dependency chain where Kodi silently ignores anything not registered in its SQLite database, so I had to download each missing module and enable it in the database manually. Ten modules total. The addon also had a bug where a service restart crashes with a KeyError. One line fix once I read the traceback.
The biggest thing was understanding how Kodi’s addon system actually works. It’s not just a folder of plugins. There’s a database managing state and the two have to agree. That kind of gap between files existing and a system actually knowing about them shows up everywhere once you start looking.
Also just confirmed that reading a traceback is faster than guessing. Every error in this build pointed straight at the fix once I stopped skimming and actually read it.