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 8cc34a1ef3
chore: update changelog (and get new next build, docker image)
1 week ago
.config chore: dependency updates (#2893) 4 months ago
.github feat: add hw accelerated padding for qsv (#3010) 1 week ago
ErsatzTV fix: sessions api with next engine (#3009) 1 week ago
ErsatzTV-macOS@8dbe1e22f2 more dependency updates (#2629) 10 months ago
ErsatzTV.Application fix: sessions api with next engine (#3009) 1 week ago
ErsatzTV.Core fix: sessions api with next engine (#3009) 1 week ago
ErsatzTV.Core.Nullable fix: multiple playlist and marathon fixes (#2996) 2 weeks ago
ErsatzTV.Core.Tests fix: local folder etags (#3004) 1 week ago
ErsatzTV.FFmpeg fix: local folder etags (#3004) 1 week ago
ErsatzTV.FFmpeg.Tests fix: local folder etags (#3004) 1 week ago
ErsatzTV.Infrastructure fix: use static hash functions (#3008) 1 week ago
ErsatzTV.Infrastructure.MySql fix: tag maintenance (#3001) 2 weeks ago
ErsatzTV.Infrastructure.Sqlite fix: tag maintenance (#3001) 2 weeks ago
ErsatzTV.Infrastructure.Tests fix: local folder etags (#3004) 1 week ago
ErsatzTV.Scanner fix: use static hash functions (#3008) 1 week ago
ErsatzTV.Scanner.Tests fix: use static hash functions (#3008) 1 week ago
ErsatzTV.Tests fix: local folder etags (#3004) 1 week ago
api add v2 ffmpeg profile page (#768) 4 years ago
artwork update dmg icon (#2630) 10 months ago
docker feat: enable vulkan in docker (#2981) 1 month ago
scripts feat: require api key (#2991) 3 weeks ago
.dockerignore Initial commit 6 years ago
.editorconfig fix editorconfig and run code cleanup (#2324) 1 year ago
.gitattributes Used a UUID in HDHomeRun config to allow multiple instances on a same network (#1810) 2 years ago
.gitignore ui updates (#2109) 1 year ago
.gitmodules update submodule [no ci] 3 years ago
CHANGELOG.md chore: update changelog (and get new next build, docker image) 1 week ago
Directory.Build.props fix duplicate smart collection names (#2720) 9 months ago
Directory.Build.targets improve build time by only running analyzers explicitly (#2710) 9 months ago
ErsatzTV.sln fix: local folder etags (#3004) 1 week ago
ErsatzTV.sln.DotSettings use hardware-accelerated tonemapping with vaapi (#2028) 1 year ago
LICENSE rework windows launcher build process (#2758) 8 months ago
README.md remove more discord references [no ci] 7 months ago
global.json upgrade to dotnet 10 (#2667) 10 months ago
hdhr.md prep for release v26.3.0 [no ci] 7 months 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.

contact features 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.