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
.m3uplaylist. - 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.jsfetches 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.jscombines 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.m3ufile.
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.