# ersatztv/ersatztv

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/ersatztv-ersatztv).**

2,539 stars · 128 forks · C# · zlib

## Links

- GitHub: https://github.com/ErsatzTV/ErsatzTV
- Homepage: https://ersatztv.org/
- awesome-repositories: https://awesome-repositories.com/repository/ersatztv-ersatztv.md

## Description

ErsatzTV is an IPTV channel simulator and linear media scheduler that transforms personal media libraries into simulated live television channels. It acts as a bridge and transcoding gateway, importing content from external media servers to create virtual broadcast channels delivered via M3U playlists and XMLTV program guides.

The system distinguishes itself through a complex automation engine for linear playback, using collection-based sequencing and dynamic schedule resolution to emulate a traditional broadcast experience. It supports advanced playback logic, including the grouping of multi-part episodes and randomized shuffling of media items to vary the viewing experience.

The platform covers a broad range of broadcasting capabilities, including hardware-accelerated video transcoding, automated audio and subtitle track selection, and channel branding. It also manages stream security through token-based authentication and integrates with identity providers for administrative access.

## Tags

### Content Management & Publishing

- [IPTV & Live TV](https://awesome-repositories.com/f/content-management-publishing/media-management/iptv-live-tv.md) — Serves simulated live television channels over network protocols compatible with IPTV players and receivers. ([source](https://features.ersatztv.org/))
- [Electronic Program Guides](https://awesome-repositories.com/f/content-management-publishing/media-management/electronic-program-guides.md) — Generates broadcast schedule metadata formatted as electronic program guides for IPTV clients. ([source](https://discuss.ersatztv.org/))
- [Linear Schedule Resolution](https://awesome-repositories.com/f/content-management-publishing/media-management/iptv-live-tv/catch-up-tv-playback/dynamic-stream-resolution/linear-schedule-resolution.md) — Calculates the current media item and playback offset in real-time to simulate a continuous linear broadcast experience.
- [Chronological Episode Grouping](https://awesome-repositories.com/f/content-management-publishing/episode-library-organization/chronological-episode-grouping.md) — Keeps related episodes or crossover events together to ensure they play in the correct chronological order. ([source](https://ersatztv.org/docs/scheduling/classic))
- [Media Asset Search](https://awesome-repositories.com/f/content-management-publishing/media-asset-search.md) — Provides a global search interface to locate movies, shows, and episodes across the media library. ([source](https://ersatztv.org/docs/search/))
- [Library Collection Management](https://awesome-repositories.com/f/content-management-publishing/media-management/audiobook-servers/e-book-servers/comic-book-libraries/personal-media-library-interfaces/library-collection-management.md) — Groups library items into sets to simplify populating channels with related content. ([source](https://ersatztv.org/docs/))
- [Library Synchronization](https://awesome-repositories.com/f/content-management-publishing/media-management/media-servers/library-synchronization.md) — Scans media server libraries to synchronize files and metadata and maintain an up-to-date content inventory. ([source](https://ersatztv.org/docs/media))
- [Playlist Managers](https://awesome-repositories.com/f/content-management-publishing/media-management/playlist-managers.md) — Groups diverse media types into ordered lists with configurable playback sequences and shuffling rules. ([source](https://ersatztv.org/docs/lists/playlist))

### Graphics & Multimedia

- [Live Channel Simulations](https://awesome-repositories.com/f/graphics-multimedia/live-channel-simulations.md) — Transforms a personal media library into simulated live television channels that mimic a traditional broadcast experience. ([source](https://ersatztv.org/docs/))
- [External Media Metadata Integrations](https://awesome-repositories.com/f/graphics-multimedia/external-media-metadata-integrations.md) — Synchronizes metadata and file paths from third-party media servers to populate the internal content pool.
- [Live Broadcast Schedulers](https://awesome-repositories.com/f/graphics-multimedia/live-media-processing-gateways/live-broadcast-schedulers.md) — Organizes media into timed sequences to automate content playback for simulated live broadcast channels.
- [IPTV Playlist Generators](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/iptv-playlist-generators.md) — Serializes channel metadata into standard M3U and XMLTV playlist formats for external playback software. ([source](https://ersatztv.org/docs/clients/))
- [EPG-Enhanced Playlist Generation](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/iptv-playlist-generators/epg-enhanced-playlist-generation.md) — Produces EPG-enhanced M3U playlists and XMLTV guides to map virtual channels to IPTV software.
- [Player Connectivity](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/streaming-broadcasting/media-streaming/playlist-aggregators/m3u-playlist-managers/iptv-players/player-connectivity.md) — Delivers M3U playlists and XMLTV guides to enable external playback software and DVRs to tune into channels. ([source](https://ersatztv.org/docs/clients))
- [FFmpeg Transcoders](https://awesome-repositories.com/f/graphics-multimedia/video-production/transcoding-engines/ffmpeg-transcoders.md) — Uses FFmpeg for on-the-fly media format conversion and watermarking for compatible network delivery.
- [Hardware-Accelerated Transcoders](https://awesome-repositories.com/f/graphics-multimedia/video-production/video-editing/media-transcoders/hardware-accelerated-transcoders.md) — Converts video files in real-time using hardware acceleration to ensure compatibility across different IPTV devices.
- [Virtual Channel Definitions](https://awesome-repositories.com/f/graphics-multimedia/virtual-channel-definitions.md) — Defines virtual broadcast channels by configuring streaming modes, transcoding profiles, and audio selection logic. ([source](https://ersatztv.org/docs/channels))
- [Automatic Stream Selection](https://awesome-repositories.com/f/graphics-multimedia/automatic-stream-selection.md) — Automatically selects the most appropriate audio and subtitle tracks based on prioritized language and content preferences. ([source](https://ersatztv.org/docs/advanced/custom-stream-selector))
- [Rule-Based Stream Selection](https://awesome-repositories.com/f/graphics-multimedia/rule-based-stream-selection.md) — Automatically picks the most appropriate audio and subtitle streams based on prioritized language preferences.
- [Media Transcoders](https://awesome-repositories.com/f/graphics-multimedia/video-production/video-editing/media-transcoders.md) — Applies specific encoding settings and watermarks to video streams to ensure compatibility across different devices. ([source](https://ersatztv.org/docs/channels))

### Part of an Awesome List

- [Linear Media Scheduling](https://awesome-repositories.com/f/awesome-lists/devops/scheduling-and-automation/linear-media-scheduling.md) — Organizes media items into timed sequences to automate exactly what content airs on a channel and when. ([source](https://ersatztv.org/docs/))
- [Scheduling Collections](https://awesome-repositories.com/f/awesome-lists/devtools/media-organization/media-collection-grouping/scheduling-collections.md) — Organizes media into manual, dynamic, or nested collections to serve as the building blocks for channel schedules. ([source](https://ersatztv.org/docs/collections/))
- [Related Ecosystem](https://awesome-repositories.com/f/awesome-lists/more/related-ecosystem.md) — Streams custom live channels using local media files.

### Networking & Communication

- [Remote Media Server Integration](https://awesome-repositories.com/f/networking-communication/remote-media-fetching/remote-media-server-integration.md) — Integrates with external media servers to import and organize content for simulated broadcast channels. ([source](https://discuss.ersatztv.org/))
- [Media Server Bridges](https://awesome-repositories.com/f/networking-communication/transport-bridges/protocol-bridges/media-streaming-protocol-bridging/media-server-bridges.md) — Acts as a connector that imports content from external media servers to populate virtual television channels.

### Software Engineering & Architecture

- [Playback Sequence Management](https://awesome-repositories.com/f/software-engineering-architecture/state-machine-logic/playback-sequence-management.md) — Defines ordered lists of media collections to manage the specific sequence of content played on a channel. ([source](https://ersatztv.org/docs/scheduling/classic))
- [Collection-Based Sequencing](https://awesome-repositories.com/f/software-engineering-architecture/state-machine-logic/playback-sequence-management/collection-based-sequencing.md) — Organizes media into nested or dynamic groups to automate the sequence of content on a virtual channel.

### Data & Databases

- [List Randomization](https://awesome-repositories.com/f/data-databases/list-randomization.md) — Shuffles the sequence of scheduled media items and picks random starting points to vary the viewing experience. ([source](https://ersatztv.org/docs/scheduling/classic))

### Security & Cryptography

- [Token-Based Authentication](https://awesome-repositories.com/f/security-cryptography/token-based-authentication.md) — Secures media access by requiring signed cryptographic tokens in request queries to verify authorized clients.
