Skip to main content

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 more inputs (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.
IPTV providers  →  tuliprox (filter, rename, proxy)  →  Plex / Jellyfin / Kodi / VLC

What problems does it solve?

ProblemHow tuliprox helps
Provider playlist has thousands of unorganized channelsFilter and rename with a regex-based DSL
Multiple providers with overlapping contentMerge and deduplicate into one clean output
Clients need Xtream Codes API but provider only offers M3UTranslate M3U to Xtream output automatically
Sharing a subscription without exposing credentialsCreate per-user credentials in api-proxy.yml
Provider bans IPs that open too many connectionsShare streams across users and limit connections
Plex or Emby can’t find an HDHomeRun tunerEmulate an HDHomeRun device that these apps discover natively
VOD metadata is missing or incorrectResolve 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.

Build docs developers (and LLMs) love