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:
npm run grab --- --site=example.com
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:
Usage: npm run grab --- [options]
Options:
-s, --site <name> Name of the site to parse
-c, --channels <path> Path to *.channels.xml file (required if the "--site" attribute is
not specified)
-o, --output <path> Path to output file (default: "guide.xml")
-l, --lang <code> Allows to limit the download to channels in the specified language only (ISO 639-1 code)
-t, --timeout <milliseconds> Timeout for each request in milliseconds (default: 0)
-d, --delay <milliseconds> Delay between request in milliseconds (default: 0)
-x, --proxy <url> Use the specified proxy (example: "socks5://username:password@127.0.0.1:1234")
--days <days> Number of days for which the program will be loaded (defaults to the value from the site config)
--maxConnections <number> Number of concurrent requests (default: 1)
--gzip Specifies whether or not to create a compressed version of the guide (default: false)
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:
npm run grab --- --site=example.com --maxConnections=10
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:
EPG
Tools for downloading the EPG (Electronic Program Guide) for thousands of TV channels from hundreds of sources.
Table of contents
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:
Then navigate to the downloaded
epg
folder:And install all the dependencies:
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:
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:
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: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:
And then specify the path to that file via the
--channels
attribute:Run on schedule
To download the guide on a schedule, you can use the included process manager. Just run it with desire cron expression and the
grab
options:To track the process, you can use the command:
For more info go to pm2 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:
After that, the guide will be available at the link:
In addition it will be available to other devices on the same local network at the address:
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:
And then update all the dependencies:
Database
All channel data is taken from the iptv-org/database repository. If you find any errors please open a new issue there.
API
The API documentation can be found in the iptv-org/api repository.
Resources
Links to other useful IPTV-related resources can be found in the iptv-org/awesome-iptv repository.
Discussions
If you have a question or an idea, you can post it in the Discussions tab.
Contribution
Please make sure to read the Contributing Guide before sending issue or a pull request.
And thank you to everyone who has already contributed!
Backers
Contributors
License