explaingit

herberthe/iptv-sources

8,745TypeScriptAudience · generalComplexity · 2/5LicenseSetup · easy

TLDR

A self-updating aggregator that collects IPTV channel playlists and TV schedule data from multiple community sources and publishes them as M3U files you can point any IPTV player app at.

Mindmap

mindmap
  root((repo))
    What it does
      Aggregates M3U playlists
      Merges EPG schedules
      Auto updates sources
    Deployment
      GitHub Pages
      Docker
      Node.js server
    Configuration
      Proxy support
      Fallback URLs
      Stream checker
    Output
      Combined M3U file
      EPG schedule data
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Point your IPTV player app at the published M3U playlist URL to watch live TV channels without maintaining channel lists yourself.

USE CASE 2

Self-host your own playlist aggregator on GitHub Pages or Docker so you control which sources are included and when updates run.

USE CASE 3

Enable the stream checker to filter out dead channels automatically before they appear in your playlist.

USE CASE 4

Configure a proxy for fetching GitHub sources so the aggregator works reliably in regions with restricted access.

Tech stack

TypeScriptNode.jsDocker

Getting it running

Difficulty · easy Time to first run · 5min

The public instance is ready to use immediately, self-hosting requires GitHub Pages, Docker, or a Node.js server.

You can use and modify this software, but if you distribute it you must release your changes under the same GPL-3.0 license.

In plain English

IPTV is a way of watching live TV channels over the internet instead of through a cable or satellite connection. IPTV players use playlist files in a format called M3U, which contain lists of channel names and their stream addresses. This project collects and automatically updates M3U playlist files from several upstream sources on GitHub and around the web, and publishes them from a single location. The sources are pulled from multiple community-maintained repositories and sites, covering a range of channels. EPG (Electronic Programme Guide) data, which provides TV schedule information, is also aggregated from several providers. The project combines all of this into updated playlist files you can point an IPTV player at. You can deploy your own copy instead of relying on the public instance. Three deployment options are documented: GitHub Pages (free, no server required), Docker, and Node.js. Running your own instance means you control when updates happen and which sources are included. Several environment variables let you adjust the behavior. You can configure a proxy for fetching source files from GitHub (useful in regions with restricted access), add fallback URLs that kick in if primary sources fail, and enable an optional stream checker that tests whether channel streams are actually working before including them in the output. The project is written in TypeScript, has a Docker image on Docker Hub, and is licensed under GPL-3.0.

Copy-paste prompts

Prompt 1
I want to deploy my own copy of iptv-sources to GitHub Pages so I have a personal M3U playlist URL. Walk me through the setup steps.
Prompt 2
Show me how to run iptv-sources with Docker, set a proxy for GitHub requests, and enable the stream checker to remove dead channels.
Prompt 3
I want to add a custom M3U source URL to my self-hosted iptv-sources instance. How do I configure additional sources in the project?
Prompt 4
My IPTV player needs an EPG URL for TV schedule information. How do I get the EPG URL from this project's aggregated output?
Open on GitHub → Explain another repo

← herberthe on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.