This is a fork of a self-hosted IPTV proxy built with Reflex, enabling you to watch over 1,000 📺 TV channels and search for live events or sports matches ⚽🏀. Stream directly in your browser 🌐 or through any media player client 🎶. You can also download the entire playlist (playlist.m3u8) and integrate it with platforms like Jellyfin 🍇 or other IPTV media players.
10/19/25 - Updated in accordance with DLHD API changes from upstream repo. Should be working again.
- 📱 Stream Anywhere: Watch TV channels on any device via the web or media players.
- 🔎 Event Search: Quickly find the right channel for live events or sports.
- 📄 Playlist Integration: Download the
playlist.m3u8and use it with Jellyfin or any IPTV client. - 🗓️ XMLTV Guide: Access scheduling information at
guide.xmlfor use with media servers like Jellyfin. - ✅ Channel Filtering: Select which channels appear in the playlist and generated guide.
- 🕒 Daily Guide Updates: Automatically refresh
guide.xmlonce per day at a user-defined time. - ⚙️ Docker-First Hosting: Run the application using Docker or Docker Compose with flexible configuration options.
⚠️ Important: When exposing the application on your local network (LAN), setAPI_URLin your.envfile to the local IP address of the server hosting the container.
-
Install Docker and Docker Compose.
-
Clone the repository and change into the project directory.
-
Start the application with Docker Compose:
docker compose up -d
The compose file mounts a local
data/directory into the container so that channel selections saved through the UI persist across rebuilds.
To run with plain Docker:
docker build -t dlhd-proxy .
docker run -p 3000:3000 dlhd-proxy- PORT: Set a custom port for the server.
- API_URL: Set the domain or IP where the server is reachable.
- SOCKS5: Proxy DLHD traffic through a SOCKS5 server if needed.
- PROXY_CONTENT: Proxy video content itself through your server (optional).
- TZ: Timezone used for schedules and guide generation (e.g.,
America/New_York). - GUIDE_UPDATE: Daily time (
HH:MM) to refreshguide.xml.
Edit the .env for docker compose.
Custom channel selections are stored in data/selected_channels.json. This
directory is mounted as a Docker volume, so the preferences persist when the
container is rebuilt or updated.
docker build --build-arg PROXY_CONTENT=FALSE --build-arg API_URL=https://example.com --build-arg SOCKS5=user:password@proxy.example.com:1080 -t dlhd-proxy .
docker run -e PROXY_CONTENT=FALSE -e API_URL=https://example.com -e SOCKS5=user:password@proxy.example.com:1080 -p 3000:3000 dlhd-proxy- 🏠 Home: Browse and search for TV channels.
- 📺 Live Events: Quickly find channels broadcasting live events and sports.
- 📥 Playlist Download: Download the
playlist.m3u8file for integration with media players.
Check out the official Reflex hosting documentation for more advanced self-hosting setups!