Utilities for downloading the EPG (Electronic Program Guide) for thousands of TV channels from hundreds of sources.
IMPORTANT: We are no longer able to provide pre-made guides due to the disabling of GitHub Actions (Read more: https://github.com/orgs/iptv-org/discussions/12#discussioncomment-5219050). This repository now contains only utilities and configurations for downloading guides yourself.
- 🚀 How to use?
- 📺 Playlists
- 🗄 Database
- 👨💻 API
- 📚 Resources
- 💬 Discussions
- 🛠 Contribution
- © License
To download the guide from one of the supported sites you must have Node.js installed on your computer first.
You will also need to install Git to follow these instructions.
After installing them, you need to open the Console (or Terminal if you have macOS) and type the following command:
git clone --depth 1 -b master https://github.com/iptv-org/epg.git
Then also through the Console navigate to the just downloaded epg
folder:
cd epg
And install all the necessary dependencies:
npm install
Now choose one of the sources (their complete list can be found in the /sites folder) and start downloading the guide using the command:
npm run grab -- --site=example.com
To download a guide in a specific language pass its ISO 639-1 code to the --lang
argument:
npm run grab -- --site=example.com --lang=fr
To override the number of days for which the program will be loaded use the --days
argument (the default is the value specified in the site config):
npm run grab -- --site=example.com --days=3
To also create a compressed version of the guide, add the --gzip
flag:
npm run grab -- --site=example.com --gzip
After the download is completed in the current directory will appear a new folder guides
, which will store all XML files:
guides
└── fr
└── example.com.xml
└── example.com.xml.gz
If you want to download the guide automatically on a schedule, you need to pass a valid cron expression to the script using the --cron
attribute:
npm run grab -- --site=example.com --cron="0 0 * * *"
Also you can make these guides available via URL by running your own server:
npm run serve
After that all the downloaded guides will be available at a link like this:
http://localhost:3000/guides/fr/example.com.xml
In addition, they will be available on your local network at:
http://<your_local_ip_address>:3000/guides/fr/example.com.xml
Playlists with already linked guides can be found in the iptv-org/iptv repository.
All channel data is taken from the iptv-org/database repository. If you find any errors please open a new issue there.
The API documentation can be found in the iptv-org/api repository.
Links to other useful IPTV-related resources can be found in the iptv-org/awesome-iptv repository.
If you have a question or an idea, you can post it in the Discussions tab.
Please make sure to read the Contributing Guide before sending issue or a pull request.
And thank you to everyone who has already contributed!