Skip to main content
source.yml defines upstream inputs, provider aliases, and the targets Tuliprox publishes to clients.

Top-level entries

For new setups, prefer the global template_path in config.yml. Inline templates in source.yml are still supported.

templates

Templates reduce repeated regular expressions. Reference another template by wrapping its name in ! characters.
Usage in a filter:

inputs

Each input defines one upstream provider connection.

Input fields

URL schemes

If an m3u or xtream input uses a batch:// URL, Tuliprox automatically treats it as m3u_batch or xtream_batch.

Input types

options fields

EPG configuration

Inputs can define multiple XMLTV sources with priorities and smart matching.

Aliases

Aliases let one logical provider input expose multiple credentials — useful when you have several accounts on the same provider.

Batch inputs

Batch inputs load multiple provider aliases from a CSV file. xtream_batch CSV columns: m3u_batch CSV columns:

panel_api

Tuliprox can provision or renew provider accounts through a panel API. Supported operations: account_info, client_info, client_new, client_renew, client_adult_content

Staged inputs

staged lets Tuliprox read playlist data from an alternate source during updates while still using the main input for streaming and API details.

sources

Each source entry groups one or more inputs and binds them to one or more targets.
The inputs list references input names defined in the top-level inputs section.

targets

Each target controls how content is processed, filtered, and exposed to clients.

Target fields

output types

Target options

When share_live_streams is enabled, each shared live channel holds buffer memory even when multiple clients share the same upstream stream.

sort

Sorting consists of an ordered list of rules.

processing_order

Controls the execution order of Filter, Rename, and Map operations.

filter expressions

Filter expressions support boolean logic, regex matching, and type comparisons. Operators: ~ (regex match), NOT, AND, OR

rename

Rename rules apply regex substitution to a field.

favourites

Defines explicit favourite groups that are assembled after mapping and resolution.

watch

Watches final group names and emits notifications via the messaging system when those groups change.

Complete example