A project to automate the creation of custom IPTV playlists (.m3u
) by gathering and processing channel data, including metadata like logos, names, and streaming URLs.
This repository is also configured to generate and deploy playlists periodically using GitHub Actions.
- Fetches channel data and metadata from external APIs.
- Converts metadata to XML and builds a
.m3u
playlist. - Filters and prioritizes channels based on stream quality.
- Automated updates via GitHub Actions with scheduled runs.
- Deploys the playlist to GitHub Pages.
- Node.js (minimum version 16.x)
- npm (Node Package Manager)
-
Fetching Metadata:
The scriptgen_channels.js
fetches metadata from a remote API, processes it, and generates an XML file (vivoplay.com.br.channels.xml
) containing channel information. -
Building the Playlist:
The scriptgen_playlist.js
combines static channels (.m3u
) with fetched metadata to generate a complete and structured IPTV playlist. -
EPG Support:
An EPG (Electronic Program Guide) is generated usingepg-grabber
. -
Automation:
A GitHub Actions workflow automates the entire process:- Runs every two days or when triggered manually.
- Fetches data, builds the playlist, and deploys it to GitHub Pages.
- Clone the repository:
git clone https://github.com/mrcanelas/iptv-playlist.git
cd iptv-playlist
- Install dependencies:
npm install
- Run the scripts:
- Generate channel metadata:
node gen_channels.js
- Build the playlist:
node gen_playlist.js
- The final playlist will be available in the
gh-pages/playlist.m3u
file.
The GitHub Actions workflow runs automatically every two days (or can be manually triggered). The playlist is deployed to the gh-pages branch for easy access.
gen_channels.js
: Fetches channel metadata and creates an XML file.
gen_playlist.js
: Combines static and dynamic data to create a .m3u playlist.
workflows/auto-update.yml
: Defines the automation process with GitHub Actions.
gh-pages/
: Contains the generated playlist and other deployment files.
This project is licensed under the MIT License.