Stream custom live channels using your own media
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Jason Dove 6847a133ca
prep for release v25.7.1 [no ci]
3 weeks ago
.config fix cropping jellyfin and emby content that is too small (#2481) 1 month ago
.github package windows artifacts using zip instead of 7z (#2496) 4 weeks ago
ErsatzTV cleanup some exceptions; add health check (#2495) 4 weeks ago
ErsatzTV-Windows update windows launcher to respect ETV_UI_PORT (#2065) 4 months ago
ErsatzTV-macOS@d4dd985fd6 update macos app (#2066) 4 months ago
ErsatzTV.Application cleanup some exceptions; add health check (#2495) 4 weeks ago
ErsatzTV.Core cleanup some exceptions; add health check (#2495) 4 weeks ago
ErsatzTV.Core.Tests cleanup some exceptions; add health check (#2495) 4 weeks ago
ErsatzTV.FFmpeg add more cuda logging (#2503) 4 weeks ago
ErsatzTV.FFmpeg.Tests cleanup some exceptions; add health check (#2495) 4 weeks ago
ErsatzTV.Infrastructure cleanup some exceptions; add health check (#2495) 4 weeks ago
ErsatzTV.Infrastructure.MySql add playout build status (#2476) 1 month ago
ErsatzTV.Infrastructure.Sqlite add playout build status (#2476) 1 month ago
ErsatzTV.Infrastructure.Tests cleanup some exceptions; add health check (#2495) 4 weeks ago
ErsatzTV.Scanner fix classic schedule flood bug (#2414) 2 months ago
ErsatzTV.Scanner.Tests cleanup some exceptions; add health check (#2495) 4 weeks ago
api add v2 ffmpeg profile page (#768) 4 years ago
artwork v2 ui tweaks (#702) 4 years ago
docker Display hostname & build configuration when build config is not "release" (#2449) 1 month ago
scripts rework some scripted schedule model names (#2386) 2 months ago
.dockerignore Initial commit 5 years ago
.editorconfig fix editorconfig and run code cleanup (#2324) 3 months ago
.gitattributes Used a UUID in HDHomeRun config to allow multiple instances on a same network (#1810) 1 year ago
.gitignore ui updates (#2109) 4 months ago
.gitmodules update submodule [no ci] 2 years ago
CHANGELOG.md prep for release v25.7.1 [no ci] 3 weeks ago
Directory.Build.props add yaml skip to item instruction (#1830) 1 year ago
ErsatzTV.sln fix fallback on mirror channels (#2436) 2 months ago
ErsatzTV.sln.DotSettings use hardware-accelerated tonemapping with vaapi (#2028) 5 months ago
LICENSE update changelog for release v0.5.8-beta [no ci] 4 years ago
README.md fix link [no ci] 1 month ago
global.json upgrade to dotnet 9 (#2056) 4 months ago
mkdocs.yml fix github repo links (#1378) 2 years ago

README.md

ErsatzTV

ErsatzTV lets you transform your media library into a personalized, live TV experience - complete with EPG, channel scheduling, and seamless streaming to all your devices. Rediscover your content, your way.

discord roadmap community

epg-example

How It Works

  1. Install ErsatzTV: Download and set up the server on your system.
  2. Add Your Media: Connect your media libraries and collections.
  3. Create Channels: Design and schedule your own live channels.
  4. Stream Anywhere: Watch on any device with IPTV and EPG support.

Key Features

  • Custom channels: Create and schedule your own live TV channels.
  • IPTV & EPG: Stream with IPTV and Electronic Program Guide support.
  • Hardware Transcoding: High-performance streaming with hardware acceleration (NVENC, QSV, VAAPI, AMF, VideoToolbox)
  • Media Server Integration: Connect Plex, Jellyfin, Emby and more.
  • Music & Subtitles: Mix music videos and enjoy subtitle support.
  • Open Source: Free, open, and community-driven project.

Documentation

Documentation is available at ersatztv.org.

License

This project is inspired by pseudotv-plex and the dizquetv fork and is released under the zlib license.