ErsatzTV Legacy gets you from zero to a live, streaming IPTV channel in under fifteen minutes. This guide walks you through every step: starting the server, connecting a media library, configuring encoding, building a schedule, creating a playout, and pointing your IPTV client at the finished channel. By the end you will have a working M3U playlist and XMLTV EPG URL you can add to any compatible player.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ErsatzTV/legacy/llms.txt
Use this file to discover all available pages before exploring further.
This guide assumes ErsatzTV Legacy is already installed and accessible. If you have not installed it yet, see the Installation guide first.
Open the ErsatzTV Legacy web UI
With the server running, open your browser and navigate to:You will see the ErsatzTV Legacy dashboard. The left-hand sidebar contains the main navigation: Media Sources, Libraries, Collections, Channels, Schedules, Playouts, FFmpeg, and Settings.
Add a media library
ErsatzTV Legacy needs at least one library so it has content to schedule. You can use local files or connect an existing Plex, Jellyfin, or Emby server.
- Local Library
- Plex
- Jellyfin
- Emby
- In the sidebar, go to Media Sources → Local.
- Click Add Local Library.
- Give it a name (e.g.
Movies) and choose the Media Kind:Movies,Shows,Music Videos, orOther Videos. - Click Add Library Path and enter the path to your media folder as it appears inside the ErsatzTV Legacy host (e.g.
/media/movies). - Click Save. ErsatzTV Legacy will begin scanning the folder and indexing metadata.
Create an FFmpeg profile
Every channel requires an FFmpeg profile that defines the output resolution, video codec, audio codec, bitrate, and (optionally) hardware acceleration.
- In the sidebar, go to FFmpeg → Profiles.
- Click Add Profile.
- Fill in the profile settings:
| Field | Recommended Starting Value |
|---|---|
| Name | 1080p H.264 AAC |
| Resolution | 1920x1080 |
| Video Format | H264 |
| Video Bitrate | 4000 kbps |
| Audio Format | AAC |
| Audio Channels | 2 |
| Audio Bitrate | 192 kbps |
| Hardware Acceleration | None (software) |
- Click Save.
Hardware transcoding (NVENC, QSV, VAAPI, AMF, VideoToolbox, RKMPP) requires additional Docker flags or host-level driver setup. See the Hardware Acceleration guide for platform-specific instructions before enabling a hardware accelerator in your profile.
Create a channel
Channels are the virtual broadcast stations that viewers tune into.
- In the sidebar, go to Channels and click Add Channel.
- Configure the channel:
| Field | Description |
|---|---|
| Number | A unique channel number (e.g. 1 or 5.1). Decimal numbers are supported. |
| Name | The display name shown in your IPTV client’s channel list and EPG (e.g. Classic Movies). |
| FFmpeg Profile | Select the profile you created in the previous step. |
| Streaming Mode | MPEG-TS is the most universally compatible. Use HLS Segmenter for Apple/iOS clients. |
- Optionally upload a Channel Logo (a square PNG). Logos appear in EPG grids and IPTV client channel lists.
- Click Save.
Create a schedule and add content
A schedule determines what plays on the channel and in what order. The simplest schedule type is Classic.
- In the sidebar, go to Schedules and click Add Schedule.
- Give the schedule a name (e.g.
Classic Movies Schedule) and click Save. - You are now in the schedule editor. Click Add Item.
- Configure the item:
| Field | Description |
|---|---|
| Start Type | Dynamic — the item starts immediately after the previous one. Use Fixed to lock it to a specific time of day. |
| Collection Type | Library — select a library, or choose Collection, Smart Collection, or Show for more specific targeting. |
| Library / Collection | Select the library you scanned in Step 2. |
| Playback Order | Shuffle randomizes each cycle; Sequential plays in order; Random picks randomly without tracking position. |
| Playout Mode | Flood — fills all remaining time in the schedule with items from this collection. |
- Click Save Item, then Save the schedule.
You can add multiple schedule items to build complex programming blocks — for example, a fixed 8pm movie followed by a flood of TV episodes for the rest of the night.
Create a playout
A playout is the live running instance that ties a channel to a schedule and generates the actual timeline of items.
- In the sidebar, go to Playouts and click Add Playout.
- Select:
- Channel → the channel you created in Step 4
- Schedule Kind →
Classic - Schedule → the schedule you created in Step 5
- Click Save.
Stream to your IPTV client
With a playout running, your channel is live. Add these URLs to any IPTV-compatible application:
Replace
| Endpoint | URL |
|---|---|
| M3U Playlist | http://localhost:8409/iptv/channels.m3u |
| XMLTV EPG Guide | http://localhost:8409/iptv/xmltv.xml |
localhost:8409 with the IP address and port of your ErsatzTV Legacy host if the client is on a different device.Compatible clients include:- Channels DVR — add as a Custom Channels source
- Plex DVR — via HDHomeRun emulation (see the Tip below)
- Emby Live TV — add as an M3U tuner
- Jellyfin Live TV — add as an M3U tuner
- Kodi — via the PVR IPTV Simple Client add-on
- VLC — open the M3U URL as a network stream
- Infuse — add as a streaming service
Next Steps
Now that you have a working channel, explore the more advanced features of ErsatzTV Legacy:Hardware Acceleration
Speed up transcoding with NVENC, QSV, VAAPI, AMF, or VideoToolbox.
Block Schedules
Build weekly grid programming with time-block based scheduling.
Filler & Watermarks
Fill gaps between shows with short clips, bumpers, or black frames.
HDHomeRun Emulation
Let Plex DVR and Emby discover ErsatzTV Legacy as a tuner device.
