What is tuliprox?
tuliprox ingests M3U/M3U8 playlists and Xtream Codes sources, reshapes them into clean outputs, and serves them to media clients like Plex, Jellyfin, Emby, and Kodi. You deploy it once, point your IPTV provider credentials at it, and serve curated playlists to every client in your home or organization. Because tuliprox proxies and processes streams at the application layer, it can:- Hide provider credentials from end users
- Enforce connection limits per user
- Share a single upstream stream across multiple clients
- Apply complex filters so clients see only the channels you want
- Merge multiple providers into one unified playlist
Who is tuliprox for?
tuliprox is designed for self-hosters and developers who want fine-grained control over their IPTV setup. You will get the most value from it if you:- Subscribe to one or more IPTV providers and want to unify or clean up their playlists
- Run Plex, Jellyfin, Emby, or Kodi and want a stable, filtered playlist source
- Need to share an IPTV subscription across multiple users without exposing provider credentials
- Want to augment live TV with a local media library and serve everything through a single Xtream or M3U endpoint
Key capabilities
Playlist processing
Filter, rename, map, sort, and merge channels from multiple providers into curated targets.
Reverse proxy
Proxy streams with per-user connection limits, stream sharing, priority preemption, and fallback videos.
Multiple output formats
Publish as M3U, Xtream Codes API, HDHomeRun device emulation, or STRM files.
Local media library
Scan local video files, resolve TMDB metadata, and serve movies and series alongside live TV.
Scheduled updates
Keep playlists fresh with cron-based background refreshes. No manual intervention needed.
Monitoring and alerts
Send notifications via Telegram, Pushover, or a custom REST endpoint when problems occur.
How it works
tuliprox reads one or moreinputs (M3U URLs, Xtream Codes credentials, or local directories), processes them through filters and mapping rules you define, and writes the results to one or more targets. Each target can publish its output in multiple formats simultaneously.
In server mode, tuliprox also acts as a live proxy: when a client requests a stream, tuliprox forwards the request to the upstream provider and relays the data back, optionally sharing the connection with other clients watching the same channel.
What problems does it solve?
| Problem | How tuliprox helps |
|---|---|
| Provider playlist has thousands of unorganized channels | Filter and rename with a regex-based DSL |
| Multiple providers with overlapping content | Merge and deduplicate into one clean output |
| Clients need Xtream Codes API but provider only offers M3U | Translate M3U to Xtream output automatically |
| Sharing a subscription without exposing credentials | Create per-user credentials in api-proxy.yml |
| Provider bans IPs that open too many connections | Share streams across users and limit connections |
| Plex or Emby can’t find an HDHomeRun tuner | Emulate an HDHomeRun device that these apps discover natively |
| VOD metadata is missing or incorrect | Resolve titles via TMDB and serve enriched metadata |
Ready to get started?
Quickstart
Get tuliprox running with Docker in under 5 minutes.
Getting started
Learn about run modes, CLI flags, and the recommended first-milestone workflow.