πŸ“ˆ GH Trending Explorer 🎲 Surprise me

← all repos

iptv-org / epg

git clone https://github.com/iptv-org/epg.git πŸ”₯ on GitHub Trending today

Node.js tools for downloading TV program guide (EPG) XML data for thousands of channels from many listing sites.

Why you might care

Useful if you run an IPTV setup or media server and need XMLTV-style program schedules for many channels. It scrapes a configurable set of sites, supports multi-site runs, custom channel lists, parallel requests, scheduled runs via chronos, and serving the guide over a local URL. Sites can block heavy parallel loads.

Categories

Alternatives

XMLTV
+6
stars, 24h Β· #4,920
+44
stars, 7 days Β· #4,393
+~100
stars, 30 days Β· #6,861
3.4k
β˜… total Β· +1% this week
543
forks Β· 61 open issues

Star history (as recorded here)

2026-10-20 Β· 3,413 β˜… 2026-10-23 Β· 3,423 β˜…
LanguageHTML
LicenseUnlicense
Created2021-03-13 (5y ago)
Last pushtoday
Watchers88
OwnerOrganization

Seen on GitHub Trending

  • 2026-10-23 β€” #11 weekly in html Β· +44 β˜…
  • 2026-10-22 β€” #3 daily in html Β· +3 β˜…
  • 2026-10-22 β€” #5 weekly in html Β· +37 β˜…
  • 2026-10-21 β€” #10 monthly in html Β· +113 β˜…
  • 2026-10-20 β€” #10 monthly in html Β· +103 β˜…

GitHub topics

Links

README excerpt
# EPG 
Tools for downloading the EPG (Electronic Program Guide) for thousands of TV channels from hundreds of sources.
## Table of contents
- ✨ Installation
- πŸš€ Usage
- πŸ’« Update
- πŸ‹ Docker
- πŸ“… Guides
- πŸ—„ Database
- πŸ‘¨β€πŸ’» API
- πŸ“š Resources
- πŸ’¬ Discussions
- πŸ›  Contribution
- πŸ“„ License
## Installation
First, you need to install Node.js on your computer. You will also need to install Git to follow these instructions.
After that open the Console (or Terminal>) if you have macOS) and type the following command:
 [code] 
This will copy all the code from the repository to your computer into the `epg` folder. After that, we just need to go to the folder we created:
 [code] 
And install all the dependencies:
 [code] 
## Usage
To start the download of the guide, select one of the supported sites from SITES.md file and paste its name into the command below:
 [code] 
Then run it and wait for the guide to finish downloading. When finished, a new `guide.xml` file will appear in the current directory.
You can also customize the behavior of the script using this options:
 [code] 
### Downloading from multiple sites at once
To do this, simply list the site names separated by commas:
 [code] 
To avoid mixing guides from different sites into a single output file, we can also automatically split the output into separate files based on the site name:
 [code] 
### Parallel downloading
By default, the guide for each channel is downloaded one by one, but you can change this behavior by increasing the number of simultaneous requests using the `--maxConnections` attribute:
 [code] 
But be aware that under heavy load some sites may start return an error or completely block your access.
### Use custom channel list
Create an XML file and copy the descriptions of all the channels you need from the /sites into it:
 [code] 
And then specify the path to that file via the `--channels` attribute:
 [code] 
### Run on schedule
If you want to download guides on a schedule, you can use cron or any other task scheduler. Currently, we use a tool called chronos for this purpose.
To start it, you only need to specify the necessary `grab` command and cron expression:
 [code] 
For more info go to chronos documentation.
### Access the guide by URL
You can make the guide available via URL by running your own server. The easiest way to do this is to run this command:
 [code] 
After that, the guide will be available at the link:
 [code] 
In addition it will be available to other devices on the same local network at the address:
 [code] 
For more info go to serve documentation.
## Update
If you have downloaded the repository code according to the instructions above, then to update it will be enough to run the command:
 [code] 
And then update all the dependencies:
 [code] 
## Docker
### Pull an image
 [code] 
### Create and run container
 [code] 
By default, the guide will be downloaded every day at 00:00 UTC and saved to the `/epg/pu

Blurb generated by claude-haiku-5-5 today. Star deltas marked ~ are extrapolated from partial history.