M3U Playlist Endpoint
The main M3U playlist endpoint provides a complete channel lineup:Query Parameters
Streaming mode for the playlist:
mixed- Use the configured streaming mode for each channelts- Force Transport Stream modets-legacy- Force legacy Transport Stream modehls-direct- Force HLS Direct modesegmenter- Force HLS Segmenter mode
Optional access token for authentication (if configured)
M3U Format
The generated M3U playlist includes:- XMLTV EPG URL: References the XMLTV guide endpoint
- Channel metadata: Channel number, name, group, logo
- Stream information: Video codec, audio codec, channel ID
- Kodi-specific properties: When detected via User-Agent
Example M3U Entry
XMLTV EPG Endpoint
Retrieve the electronic program guide in XMLTV format:Channel Streaming Endpoints
Transport Stream (MPEG-TS)
Stream a channel using MPEG Transport Stream format:ts-legacy: Continuous Transport Stream (legacy concat mode)ts: Hybrid Transport Stream (wrapped segmenter)mixed: Auto-detect based on channel configuration
HTTP Live Streaming (HLS)
Stream a channel using HLS with adaptive bitrate:segmenter: HLS with FFmpeg segmenter (recommended)segmenter-v2: HLS with v2 segmentersegmenter-fmp4: HLS with fMP4 segmentshls-direct: Direct HLS streaming (no segmenter)mixed: Auto-detect based on channel configuration
HLS Session Playlist
Access the active HLS session playlist for a channel:Multi-Variant Playlist
HLS streams automatically generate multi-variant playlists with codec and bitrate information:- Video: H.264 (avc1), HEVC (hvc1), AV1 (av01)
- Audio: AAC (mp4a.40.2), AC3 (ac-3), AAC LATM
Channel Logos
Retrieve channel logo images:Optional content type override for the logo image
Streaming Modes
ErsatzTV supports multiple streaming modes optimized for different use cases:Transport Stream
Legacy Mode: Continuous MPEG-TS stream with concat protocol
- Best compatibility with older players
- No segmentation overhead
- Higher latency
Transport Stream Hybrid
Hybrid Mode: MPEG-TS with wrapped segmenter
- Improved performance over legacy
- Better handling of transitions
- Compatible with HDHomeRun clients
HLS Direct
Direct Mode: Real-time HLS without segmenter
- Lowest latency
- Minimal CPU overhead
- Best for copy streaming
HLS Segmenter
Segmenter Mode: HLS with FFmpeg segmenter
- Best compatibility
- Adaptive bitrate support
- Recommended for most use cases
Client Configuration
VLC Media Player
- Open Network Stream: Media > Open Network Stream
- Enter the M3U URL:
http://your-server:8409/iptv/channels.m3u - Click Play
Kodi
ErsatzTV automatically detects Kodi clients and provides optimized playlists:- Install IPTV Simple Client addon
- Configure M3U Playlist URL:
http://your-server:8409/iptv/channels.m3u - Configure EPG URL:
http://your-server:8409/iptv/xmltv.xml - Enable addon and reload
Plex Live TV
Channels DVR
Channels DVR can use ErsatzTV as a custom source:- Add Custom Channels source
- Set M3U URL:
http://your-server:8409/iptv/channels.m3u - Set XMLTV URL:
http://your-server:8409/iptv/xmltv.xml - Refresh guide data
For best compatibility with Channels DVR, use Transport Stream Hybrid mode.
Authentication
When access tokens are configured, append the token to all requests:Troubleshooting
Channels not appearing in playlist
Channels not appearing in playlist
- Verify channels are enabled in ErsatzTV
- Check that FFmpeg profiles are correctly configured
- Ensure channel numbers are properly assigned
Playback stuttering or buffering
Playback stuttering or buffering
- Try switching streaming modes (TS vs HLS)
- Check transcoding settings and hardware acceleration
- Verify network bandwidth is sufficient
- Consider adjusting bitrate settings
EPG not loading in client
EPG not loading in client
- Verify XMLTV endpoint is accessible
- Check that program schedules are populated
- Try refreshing guide data in client
Stream won't start or fails immediately
Stream won't start or fails immediately
- Check ErsatzTV logs for FFmpeg errors
- Verify source media is accessible
- Test with different streaming mode
- Ensure FFmpeg is properly installed
Related Documentation
HDHomeRun
Configure HDHomeRun protocol support
Transcoding
Configure FFmpeg transcoding profiles
Hardware Acceleration
Enable GPU acceleration for transcoding
