Sofa King
Your own media center. Sofa King good.
A self-hosted media center for a home network. One server keeps live TV, a DVR and your own movies and shows; one app watches all of it on Android TV, Google TV, phones, desktops, iOS, Apple TV and the web. It needs no subscription or cloud account, and is free and open source under GPL-3.0.
- Live TV in one lineup. Free streaming services, broadcasters' free feeds, HDHomeRun tuners, M3U playlists and XMLTV guides merge into one numbered lineup. A channel carried by several sources is matched by schedule, and when one fails the next takes over (source health).
- A DVR that skips the boring bits. The server records programs and series from the guide into folders Plex, Jellyfin, Emby and Kodi scan, and finds the commercial breaks, learning them on streams that carry no markers. The app plays recordings, even while they record, and can skip the breaks (recordings).
- Your own library. Movies, shows, other videos and music from a folder, read with the names Plex, Jellyfin and Kodi use, with details and artwork from
.nfofiles, tags, TMDB or MusicBrainz, Continue watching, Up next, Skip intro and scrub thumbnails, converted on the fly for a device that cannot play the file (media libraries). - Made for the couch. The guide previews the focused channel muted and opens it full screen on the same stream, and every screen works with a TV remote's D-pad. The household shares favorites, hidden channels, a watchlist and On Later, and kids mode sits behind the Settings PIN (using the app).
- Channels of your own. Virtual channels play a library on a schedule, and multiview shows two to four channels at once.
- Plays well with others. The lineup goes to Plex as an HDHomeRun tuner and to M3U and XMLTV players (third-party players); Sonarr and Radarr tell the server what changed (integrations); alerts go to a webhook, ntfy or Apprise (notifications).
- No account, no telemetry. Nothing signs in to a cloud, and the one report is a crash, which the Android and desktop apps send to your own server unless you turn it off.
How Sofa King compares lists what it does not do, and coming from Plex or Jellyfin keeps your folders.
Screenshots¶
Every platform's app against the same server, playing a showcase lineup of the Blender Foundation's open movies (Big Buck Bunny, Elephants Dream, Sintel, Tears of Steel and Caminandes, © Blender Foundation, under Creative Commons Attribution licenses) with a made-up guide. screenshots.yml takes them; Screenshots describes it.
Android TV
Android phone
Android tablet
Desktop (Linux)
Web
iPhone and iPad
Apple TV
Light theme (phones, tablets, desktop and web; a TV stays dark)
Admin portal
Get it¶
Each part comes on two channels:
| Channel | Server image | App |
|---|---|---|
| Stable, from the first release | ghcr.io/jamesarich/sofa-king:latest (or :X.Y to stay on one minor version) |
The latest release, one per v* tag |
| Snapshot | ghcr.io/jamesarich/sofa-king:main |
The snapshot prerelease, built from the latest main |
Platforms lists what the app is published for. Getting started takes a Docker host to a playing channel, and the app's getting started installs the app and connects it to the server. Each README lists what is missing: server, app.
| Part | What it is |
|---|---|
backend/ |
The server, with its documentation |
app/ |
The Kotlin Multiplatform client, with its documentation |
contract/ |
The wire types the server and the app share |
The documentation index links every page and the shared glossary; the documentation site has the same pages with search. CONTRIBUTING covers the layout, conventions and CI, SECURITY reporting a vulnerability, SUPPORT getting help, and the code of conduct how everyone taking part behaves.
Licensed under the GNU General Public License v3.0. Now put your feet up; it is Sofa King relaxing.