Step 1: Define an M3U input
1
Add the input to source.yml
source.yml
file:// to load a local playlist file:source.yml
2
Create a source and target
Wire the input to a target and set the output type to
m3u:source.yml
3
Configure api-proxy.yml
api-proxy.yml
EPG (XMLTV) integration
Attach one or more EPG sources to the input using theepg block:
source.yml
url: auto tells tuliprox to use the EPG URL embedded in the M3U playlist itself, if present.
Clients retrieve the EPG at:
M3U output options
Example:
Batch M3U sources
Usem3u_batch to load many provider URLs from a CSV file:
source.yml
Alternatively, use an
m3u input with a batch:// URL — tuliprox treats it the same as m3u_batch.
Common issues
Playlist is empty after update
Playlist is empty after update
Verify the URL is reachable from the tuliprox host:For
file:// URLs confirm the path exists and tuliprox has read permission.EPG not populating
EPG not populating
EPG matching depends on the
tvg-id attribute in the M3U entries matching
channel IDs in the XMLTV data. Enable smart_match with fuzzy_matching
to handle minor name differences.Groups or channel names look wrong
Groups or channel names look wrong
M3U attribute parsing reads
group-title and tvg-name from #EXTINF lines.
Check the raw playlist to confirm those attributes are present. Use the
rename and mapping features to normalise names after import.Client requests timeout on large playlists
Client requests timeout on large playlists
For very large playlists consider enabling
disk_based_processing: true
in config.yml to reduce peak memory usage during updates.