πŸ“ˆ GH Trending Explorer 🎲 Surprise me

← all repos

iptv-org / epg

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

Utilities for downloading the EPG (Electronic Program Guide) for thousands of TV channels from hundreds of sources.

β€”
stars, 24h
β€”
stars, 7 days
+103
stars, 30 days Β· #2,228
3.4k
β˜… total
544
forks Β· 65 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguageHTML
LicenseUnlicense
Created2021-03-13 (5y ago)
Last push4d ago
Watchers88
OwnerOrganization

Seen on GitHub Trending

  • 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