Skip to content
Go back

Kodi vs Jellyfin Native for HTPC

By SumGuy 12 min read
Kodi vs Jellyfin Native for HTPC

Here’s the thing: people see “Jellyfin” and think it’s one monolithic app. It’s not. Jellyfin is the server that organizes your library, scrapes metadata, and handles playback for other apps. Jellyfin also ships native client apps — but they’re completely separate from the server.

On your living room HTPC, you’ve got two real choices: run Kodi (with or without the Jellyfin add-on), or run one of Jellyfin’s native client apps (Apple TV, Android TV, Web, etc.). They’re not competitors — they’re different philosophies. And picking wrong means your 2 AM self will be digging through settings instead of watching The Office for the 47th time.

Let’s cut through the confusion.

What You’re Actually Choosing

Kodi is a standalone media center. It’s been around since 2003 (as XBMC). It runs on Linux, Windows, Mac, Android, iOS, and embedded systems. It has its own playback engine, its own UI framework, and its own plugin ecosystem.

Jellyfin’s native clients are just that — client apps that talk to a Jellyfin server. They’re not full media centers. They’re pretty front-ends to a library you’ve already scraped server-side.

The confusion comes from the Jellyfin add-on for Kodi. You can run Kodi on your HTPC and point it at Jellyfin server for your library. That’s valid. But that’s a third option — different from running Kodi standalone, and different from running Jellyfin native.

So: three paths forward.

HTPC Hardware Reality

Before we dig into software, what are you actually running this on?

Raspberry Pi 5: Kodi runs fine. Jellyfin client — also fine. Both are light enough.

NVIDIA Shield TV: The Android TV version. Both Kodi and Jellyfin’s Android TV client work here, though Kodi via sideload or from LineageOS is the classic setup.

Apple TV (4K / HD): tvOS only. Your only choice is Jellyfin’s native Apple TV client or (if you jailbreak, which we don’t recommend) nothing. Kodi doesn’t run on tvOS.

Mini PC / Intel NUC: Linux or Windows. Kodi, Jellyfin native (if you use Linux + browser), or both via dual-boot. Full freedom.

Old Android phone / Chromecast with Google TV: Android TV variants. Jellyfin native or Kodi via sideload.

The hardware you own often dictates the software you can run. If you’re on Apple TV, Jellyfin native is your only real choice. If you’re on a Pi or Shield, you’ve got real options.

Kodi: The Swiss Army Knife

Kodi is what you get when you let engineers tinker for two decades. It does everything, customizes everything, and requires you to understand everything.

Install & Setup

On Linux (Pi, mini PC, or Docker):

Terminal window
# Ubuntu / Debian
sudo apt update && sudo apt install -y kodi
# Or Raspberry Pi: use LibreELEC or CoreELEC (purpose-built Kodi distros)
# Write image to SD card and boot
# LibreELEC: https://libreelec.tv
# CoreELEC: https://coreelec.org (better codec support, more tweaks)

Or run it containerized (though GPU passthrough is annoying, and “headless” means JSON-RPC control only — no on-TV video output):

docker-compose.yml
services:
kodi:
# linuxserver/kodi-headless was archived back in 2022 — use the
# maintained matthuisman fork instead.
image: matthuisman/kodi-headless:latest
container_name: kodi
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
volumes:
- /path/to/config:/config
- /path/to/media:/media
ports:
- "8080:8080"
- "6556:6556"
restart: unless-stopped
# GPU passthrough requires additional config

Library Scraping (Local)

Kodi scrapes your library on the box running Kodi. You add a source, Kodi walks the directory tree, and pings TMDB / TVDB / etc. for metadata.

This is both a feature and a gotcha.

Gotcha: If you add a new movie to your NAS and want it to show up on your Apple TV and Kodi and a browser, Kodi rescans independently from the server. Your library is fractured — different sources have different metadata, missing posters, whatever.

Feature: Kodi can scrape without a server. Completely offline, fully local. If your internet dies, Kodi still works.

To add a source in Kodi:

Settings → Media → Library → Videos → Add Videos
Add network share (NFS, SMB)
Let Kodi scrape → choose scraper (TheMovieDB)
Done

The UI is dense, but it works.

Playback Engine

Kodi has its own video pipeline. It handles HEVC, H.264, AV1, VP9. HDR and Dolby Vision passthrough work on supported hardware (Shield, some Pi configs). Subtitles support PGS, ASS, SRT, VobSub, SSA — basically everything.

Playback is direct if the codec is supported locally. If it’s not (say, an obscure format on a Pi), Kodi can transcode on the fly via FFmpeg. That’s useful, but CPU-intensive on weak hardware.

The codec support is granular. You can inspect what Kodi can do:

Terminal window
# SSH into your Kodi box
cat ~/.kodi/userdata/advancedsettings.xml

Customization: Skins & UI

This is where Kodi shines. Dozens of skins. Estuary (default), Aeon Nox (gorgeous, heavy), Confluence (old-school). Each one is highly customizable. Fonts, colors, layouts, widget layouts.

You can build a bespoke living room experience. Want your library sorted by genre? Custom banners? Movie posters from a third-party API? Kodi can do it.

Jellyfin native? You get what you get.

Remote & CEC Control

Kodi plays nicely with HDMI-CEC. Your TV remote can control Kodi without extra setup. It also works with Bluetooth remotes, USB keyboards, and the official Kodi remote app (iOS / Android).

The remote experience is polished. Button mapping is configurable.

Jellyfin Native Client: “It Just Works” (Mostly)

Jellyfin native is the opposite philosophy. Your server does the work. Your client just displays what the server tells it.

Setup Per Platform

Android TV (Shield, Chromecast, etc.):

Terminal window
# On Shield, install via Play Store, or sideload via ADB
adb connect <shield-ip>
adb install Jellyfin.apk
# Launch, add Jellyfin server address, log in

Apple TV 4K / HD:

App Store → search Jellyfin → install → add server → done. Trivial.

Web (browser on any HTPC):

Terminal window
# Navigate to https://your-jellyfin-server:8096
# Works on Firefox, Chrome, Safari. Full playback support.

FireOS (Amazon Fire TV):

Amazon Appstore → Jellyfin → install.

Setup is fast. You’re not configuring scrapers, codecs, or skins. You’re pointing at a server and signing in.

Library Scraping (Server-Side)

Jellyfin scrapes once on the server. Every client sees the same metadata. Your library is unified.

Add a movie to your NAS → Jellyfin server rescans → all clients see it instantly with full metadata. No fractured state.

The server handles TVDB, TMDB, OpenLibrary. It’s less customizable than Kodi’s scraper ecosystem, but it’s consistent.

Playback Engine

Jellyfin native clients use the platform’s native playback engine.

This is actually good. Native players are battle-tested and optimized for the platform.

Transcoding

Jellyfin server can transcode in real time for clients that can’t play a format. No client-side CPU burn.

If you’re watching a 10-bit HEVC on an Android TV that doesn’t support it, the server re-encodes on the fly. Latency is minimal on modern hardware. On a weak server (Pi 4, old NAS), be careful — transcoding is CPU-heavy.

You can disable transcoding per client to force direct play. Or cap bitrate. Or transcode to H.264 for everything.

Subtitle Support

Jellyfin native handles SRT, VobSub, PGS, ASS. Subtitles are downloaded server-side and handed to the player.

The UX is clean. Select a subtitle stream, it plays. No fussing.

Remote & CEC

Android TV clients respond to the physical remote. Apple TV client responds to Siri Remote. Web client responds to keyboard / gamepad.

HDMI-CEC works on Android TV natively. Apple TV has Siri remote control, which is different but works.

Less customizable than Kodi, but it works.

The Combo: Jellyfin Server + Kodi Client

Here’s the power move: run a Jellyfin server somewhere (NAS, mini PC, Pi), and install the Jellyfin add-on for Kodi on your HTPC.

Terminal window
# 1. Grab the Jellyfin Kodi repo zip:
# https://repo.jellyfin.org/files/client/kodi/repository.jellyfin.kodi.zip
# 2. Kodi → Add-ons → Install from zip file → pick the repo zip
# 3. Add-ons → Install from repository → Jellyfin → Video add-ons → Jellyfin
# (Two flavors: "Jellyfin" = full library sync into Kodi's DB,
# "JellyCon" = lightweight, talks to the server live. Pick one.)

Now you get:

This is the best setup for power users who have a dedicated Jellyfin server and multiple HTPC boxes.

The trade-off: you’re running two pieces of software now. More moving parts. More potential failure modes.

For a single-HTPC household, it’s overkill.

Decision Matrix

FeatureKodi StandaloneJellyfin NativeJellyfin + Kodi Add-on
Setup Time30–60 min5 min15 min
Library ScrapingLocal (per Kodi box)Server-side (unified)Server-side (unified)
CustomizationExtremeMinimalExtreme
Multi-Device SupportPlugin-based, clunkyNative, seamlessSeamless (via server)
Codec SupportBest on dedicated HWPlatform-dependentBest
TranscodingClient-sideServer-sideServer-side (via plugin)
Remote ControlExcellent, CEC-nativeGood (platform default)Excellent
Subtitle SupportBest (all formats)GoodBest
Offline ModeWorks fullyOffline mode existsWorks fully
CPU Usage (idle)ModerateMinimalModerate
Learning CurveSteepFlatModerate

Real-World Scenarios

Scenario 1: Living Room Pi 5 + NAS Jellyfin Server

Install Kodi on the Pi. Jellyfin server on the NAS. Point Kodi at Jellyfin via add-on.

You get: unified library from NAS, Kodi’s gorgeous UI, all your other devices (phone, tablet, Apple TV) point at the same NAS server.

Setup: 20 min. Maintenance: low. Happiness: high.

Scenario 2: Apple TV 4K Living Room + Backup Jellyfin Server

Apple TV only runs tvOS. Install Jellyfin native client. Point at your server.

Setup: 3 min. UI is minimal but clean. Playback is buttery smooth.

If you want fancier UI, you’re stuck. Apple TV doesn’t run Kodi.

Scenario 3: NVIDIA Shield + Local NAS

Shield runs Android TV. Install Jellyfin native and Kodi.

Use Jellyfin native for everyday watching (simple, fast). Use Kodi for manual library editing, tweaking scrapers, or when you want to tinker.

Or just pick one. Jellyfin native for simplicity, Kodi for power.

Scenario 4: Headless Server + Multiple Living Room Boxes

Run Jellyfin server on a headless NAS / Pi / mini PC.

Install Jellyfin native on your Apple TV, Android TV, and Fire Stick. Install Kodi + Jellyfin add-on on your Shield.

Everything talks back to the single server. Library is unified. Each device picks its own client based on what it can run.

This is the “correct” architecture for a multi-room household.

The 2 AM Test

It’s midnight. You want to watch a movie. Which setup lets you do that without reading forums?

Jellyfin native: Launch app, tap movie, play. Done. 30 seconds.

Kodi standalone: App boots, library loads, tap movie, play. Or it doesn’t because a scraper is hung. 5 minutes, maybe more.

Jellyfin + Kodi add-on: Same as Kodi, but with server-side fallback if something breaks on the box.

If your household is non-technical, Jellyfin native is the answer.

If you’re a tinkerer and want to own your setup, Kodi (especially with Jellyfin server backing it) is the move.

The Real Question

Before you pick, ask yourself:

  1. How many devices are you running? Just one HTPC, or multiple (TV + bedroom + living room)?

    • One device → Kodi standalone or Jellyfin native, your choice.
    • Multiple devices → Jellyfin server + clients (Kodi add-on on the main box, native elsewhere).
  2. Do you want customization, or do you want it to work?

    • Customization → Kodi.
    • Works out of the box → Jellyfin native.
  3. What hardware are you on?

    • Apple TV only → Jellyfin native (forced).
    • Linux / Pi / Shield → full freedom. Pick your poison.
  4. How strong is your server?

    • Weak (Pi 4 NAS) → avoid transcoding. Use direct-play clients like Kodi, or limit bitrate in Jellyfin.
    • Strong (mini PC, Proxmox) → transcode all day, use Jellyfin native everywhere.

Kodi is the old reliable pickup truck. It’ll haul anything, but you’ll get grease on your hands tuning it.

Jellyfin native is the comfortable sedan. You get in, it goes, you don’t think about it.

And if you want both? Jellyfin server + Kodi client is the pickup truck with cruise control and leather seats.

Pick the one that matches your pain tolerance and your hardware. Your 2 AM self will thank you.


Share this post on:

Send a Webmention

Written about this post on your own site? Send a webmention and it'll show up above once verified.


Previous Post
DuckDB for Local Analytics: Pandas on Steroids
Next Post
Homebridge vs Home Assistant Hub Showdown

Discussion

Powered by Garrul . Sign in with GitHub or Google, or post anonymously.

Related Posts