ErsatzTV
Stream custom live channels using your own media.
Nvidia GPU Use
Using the Unraid Nvidia Plugin to install a version of Unraid with the Nvidia Drivers installed and
add --runtime=nvidia to "extra parameters" (switch on advanced view) and
copy your GPU UUID to NVIDIA_VISIBLE_DEVICES.
Intel GPU Use
Edit your go file to include:
modprobe i915
, save and reboot, then
add --device=/dev/dri to "extra parameters" (switch on advanced view)
Platform availability
Available on 2 of 6 install platforms
Also on Docker Hub and GitHub
Health score
81/100 Excellent
- Maintained
- 100last commit 3 days ago
- Popular
- 702,996 GitHub stars
- Easy to install
- 452 install platforms, install notes, Docker image
- Light to run
- 95500 MB minimum RAM, runs on ARM
How is this calculated?
A 0-100 score computed nightly from four factors: maintained (40%: recent commits and steady activity), popular (25%: GitHub stars, log scale), easy to install (20%: platforms, install notes, setup guides, Docker image) and light to run (15%: minimum RAM, ARM support). Factors without data are left out and the rest are rescaled.
Availability: platform listings confirmed today, links checked 9 days ago
- GitHub stars
- 2,996
- Open issues
- 0
- Last commit
- 2026-10-06
- Latest release
- v26.11.0
- License
- Zlib
- Activity
- rising
Checked 3 days ago - source: GitHub (ErsatzTV/ErsatzTV)
Resources & Compatibility
Minimum requirements: 500 MB RAM. ARM (e.g. Raspberry Pi) is supported.
Checked 10 days ago - source: Docker Hub image tags and published docs
First-install notes
- Let TV apps find your virtual tuner ErsatzTV advertises itself to TV apps through discover.json and lineup.json, which tell the app where to find the channel list and streams. If that address or port is not reachable on your network, the TV will not see the virtual channels or guide. source
- Channel streams use M3U8 URLs Each virtual channel is played from an M3U8 (stream playlist) URL, such as /iptv/channel/1/index.m3u8. If that stream path is wrong or blocked by your network, the channel may appear in the list but not play. source
- FFmpeg profiles shape stream quality FFmpeg profiles tell ErsatzTV how to re-encode streams for different devices and network speeds. If the profile is missing, too heavy, or mismatched to your hardware, playback may stutter, fail, or use too much CPU. source
Fetched 10 days ago - each note links to its source
Variants
Alternatives
No alternatives collected yet.
Common questions
Why might an ErsatzTV channel appear in the guide but not play?
Each virtual channel is played from an M3U8 stream URL. If that stream path is wrong or blocked by your network, the channel may appear in the list but not play.
What should I check if stream quality is poor or CPU usage is high?
FFmpeg profiles control how ErsatzTV re-encodes streams for different devices and network speeds. If a profile is missing, too heavy, or mismatched to your hardware, playback may stutter, fail, or use too much CPU.
What hardware acceleration does ErsatzTV support?
ErsatzTV supports hardware transcoding with NVENC, QSV, VAAPI, AMF, and VideoToolbox.
Which media servers can I connect to ErsatzTV?
ErsatzTV can connect to Plex, Jellyfin, Emby, and more.
Can Kodi be used with ErsatzTV?
A user reports that Kodi works well with both pulling from Jellyfin directly and using ErsatzTV, though it takes a bit more setup.
Answers sourced from github.com, github.com, github.com, www.reddit.com
Community
- Is ErsatzTV still suggested ? : r/selfhosted - Reddit (reddit)
- Stream custom live channels using your own media - Reddit (reddit)
- What are my options for ErsatzTV and AppleTV : r/selfhosted - Reddit (reddit)
- PseudoTV Live+Kodi VS ErsatzTV+Jellyfin? : r/selfhosted - Reddit (reddit)
- Stream custom live channels using your own media - Reddit (reddit)
Collected 5 days ago - public community threads