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.gitThen also through the Console navigate to the just downloaded epg folder:
cd epgAnd install all the necessary dependencies:
npm installNow 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.comTo download a guide in a specific language pass its ISO 639-1 code to the --lang argument:
npm run grab -- --site=example.com --lang=frTo 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=3To also create a compressed version of the guide, add the --gzip flag:
npm run grab -- --site=example.com --gzipAfter 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.gzIf 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 serveAfter 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!