
A powerful EPG for WordPress that builds a beautiful TV guide from any XMLTV or M3U source and makes channels playable with stream links.
Platinium EPG for XMLTV and M3U transforms your WordPress site into a professional and powerful TV program guide platform. Whether you manage an IPTV service, a streaming community site, or a media blog, this plugin gives you the tools to display a beautiful, fast, and interactive EPG grid. Using any standard XMLTV file for program data and/or an M3U file for channel data, the plugin generates a stunning “Glassmorphism” style grid that is fully responsive and optimized for performance, even with thousands of program entries. It’s designed to be simple for beginners to set up, while offering deep customization and powerful features for advanced projects through its Pro version.
Key Features:
- Multiple Data Sources (XMLTV & M3U): Add and manage multiple EPG sources from XMLTV URLs, M3U URLs, or even local M3U file uploads. The plugin intelligently merges all data into a single, unified guide.
- Local M3U File Uploads: Don’t have a URL? Upload an M3U file directly from your computer and treat it as a permanent, synchronizable source, complete with a custom name.
- M3U Integration for Clickable Channels: Easily make your channels playable! The plugin automatically maps streams from your M3U sources using
tvg-id, or you can add stream URLs manually for each channel.
- Built-in HLS Player: Provides a seamless viewing experience with an integrated player for HLS (
.m3u8) streams, which opens in a clean modal window.
- Powerful Shortcode Generator: Create and save custom “Channel Groups” (e.g., “Sports,” “Movies,” “News”) and display them anywhere with a simple shortcode like
[platinium_epg group-name="Sports"].
- High Performance by Design: EPG data is fetched and cached in the background. The front-end grid uses efficient JavaScript rendering to ensure smooth scrolling and a great user experience, no matter how large your guide is.
- Advanced Customization: From the settings page, fully customize the grid’s appearance. Choose from a variety of built-in color presets (like ‘Midnight Dark’, ‘Icy Winter’, or ‘Solar Summer’) or create your own custom theme. Adjust the zoom level, row height, column width, and what channel information is displayed (logos, names, numbers).
- Diagnostic Tools: An integrated diagnostic panel shows you the status of your cached data and source connections (including local files), helping you quickly identify any synchronization issues.
Free vs. Pro
The free version provides all the essential tools to build a beautiful TV guide. The Pro version unlocks:
- ✅ Unlimited EPG Sources (free is limited to 2 XMLTV and 1 M3U)
- ✅ Unlimited Saved Channel Groups (free is limited to 1)
- ✅ Fully Automatic Synchronization (free is manual sync only)
- ✅ One-Click Backup & Restore of all plugin settings
- ✅ Direct, Priority Email Support
[–> Upgrade to Platinium EPG Pro Now! (https://groupeplatinium.com/downloads/platinium-epg-for-xmltv-and-m3u-pro/)]
External Services
This plugin connects to an external service to verify Pro version license keys. This is necessary to activate professional features and to enable automatic plugin updates.
* Service: Groupe Platinium License API (groupeplatinium.com)
* Purpose: To verify the validity of a Pro license key upon its activation or deactivation.
* Data Sent: When the administrator activates or deactivates the license, the license key, the site’s URL (home_url), and the product name are sent to our server.
* Link to Privacy Policy: https://groupeplatinium.com/privacy-policy/
* Link to Terms of Service: https://groupeplatinium.com/terms-and-conditions/
Screenshots

The interactive EPG grid on the front-end with its modern "Glassmorphism" design.

The main Settings page for managing sources, display options, and choosing from various color presets.

The Channel Stream Links interface for mapping M3U streams to channels.

The powerful Shortcode Generator for creating and managing custom channel groups.

The Pro section for configuring automatic synchronization frequency.

The one-click Backup and Restore system (Pro Feature).
FAQ
Where can I find XMLTV or M3U files?
Many free and public sources are maintained by the community. A great place to start is by searching on GitHub for projects like “iptv-org/epg” (for XMLTV) and “iptv-org/iptv” (for M3U), which list guides and streams for thousands of channels.
My guide is empty after syncing. What should I do?
Follow these troubleshooting steps:
1. Check the Source: Go to “Settings” and double-check that your source URL is correct or that your local file exists.
2. Run Manual Sync: Click “Manual Synchronization” and read the result message carefully.
3. Check Diagnostics: At the top of the Settings page, open the “Diagnostic Information” panel. It will tell you the status of your sources and cache.
4. Check the File: Make sure the source file itself contains program data for the current date.
How do I make my channels clickable?
The plugin does this automatically if you provide M3U sources. To manually add or change a stream link, go to the “Channel Stream Links” page, select a source, and paste the URL for the desired channel.
Some video streams don’t play or try to download. How can I fix this?
This happens when a stream format is not natively supported by your web browser. To play certain video streams not natively supported, you may need a browser extension. For a better experience, we recommend installing one. Here are our recommendations:
What’s the difference between `channels-name` and `group-name` in the shortcode?
group-name=”My Group” is the recommended method. It uses a group of channels that you have saved in the Shortcode Generator. It’s clean and easy to manage. channels-name="Channel 1,Channel 2" is a manual, on-the-fly filter that is less efficient for large guides.
Will this plugin slow down my website?
No, it has been designed for performance. The heavy work of fetching and parsing source files is done in the background and the results are stored in a cache. The front-end grid only loads the programs that are currently visible on the screen.
What should I do if I see the “XMLReader is required” error?
This error means that your hosting server has not enabled a standard PHP extension that is necessary to read XML files. This is a server configuration issue that can be easily resolved. The simplest solution is to contact your web host and send them the following message:
“Hello, I am using a WordPress plugin that requires the ‘XMLReader’ PHP extension to function. Could you please enable it for my hosting account? Thank you.”
Most quality hosting providers will activate this extension quickly and free of charge.
ChangeLog
1.2.2
- Security: Hardened nonce verification in the admin notice dismissal function to comply with WordPress.org security standards.
- Tweak: Corrected the review link in the admin notice to point to all reviews, removing the 5-star filter to adhere to plugin guidelines.
1.2.1
- Fix: Corrected an issue where admin page styles were not loading correctly by properly registering and enqueuing the CSS file for admin pages. This resolves multi-column layout problems on the Shortcode Generator and Channel Stream Links pages.
- Tweak: Added the required “External Services” disclosure to the readme file to comply with WordPress.org guidelines.
- Tweak: Removed the non-standard “Upgrade Notice” section to improve readme.txt validation.
1.2.0
- New: Added a complete color customization system with multiple built-in presets (e.g., “Icy Winter”, “Solar Summer”, “Crimson Red”) and the ability to create a fully custom theme.
- New: Centralized all color preset definitions into a single PHP function for easy maintenance and future additions.
- Fix: Resolved a persistent bug where the color preset dropdown would get stuck on “Custom” after saving. The saving logic is now more robust and independent of JavaScript.
- Fix: Corrected a critical PHP error (“White Screen of Death”) on the settings page caused by a missing callback function (
pepg_display_color_field_callback).
- Fix: The two M3U import buttons now have distinct, correct functionalities. The button on “Settings” adds a new source, while the one on “Channel Stream Links” updates existing stream links.
- Fix: Resolved a bug preventing the deletion of a single, local M3U file source without workarounds.
- Fix: Restored the feature that automatically populates the “Custom Name” field with the filename when uploading a local M3U file.
- Tweak: Improved file upload handling to be more secure and conform to strict WordPress coding standards, resolving all related PHPCS warnings.
1.1.0
- New: M3U files can now be used as primary data sources. The plugin creates channels from
tvg-id, tvg-name, and tvg-logo attributes.
- New: Added the ability to upload local M3U files from your computer and use them as permanent, synchronizable sources.
- New: Added an admin notice that politely asks for a 5-star review after one week of use to encourage user feedback.
- New: Added functionality to backup and restore all stream links to/from a JSON file on the “Channel Stream Links” page.
- Tweak: The diagnostic panel now correctly identifies local file sources and checks for their existence on the server.
- Fix: Deleting a source now properly cleans up all associated data, including cached data (transients) and orphaned channels within saved Shortcode Groups.
- Fix: Resolved a critical bug in the JavaScript for adding new sources that caused incorrect or duplicate IDs after a source was deleted.
- Fix: The local file import process was made more robust to bypass WordPress file type restrictions securely.
- Fix: Addressed all WordPress Coding Standards errors, including missing translator comments and the use of forbidden functions, to ensure full compliance with official guidelines.
1.0.1
- Fix: Resolved an issue where the HLS video player would not start for
.m3u8 streams (black screen).
- Fix: Corrected a bug preventing “Custom Name” for sources from being saved and restored correctly.
- Fix: Improved CSS for multi-column layouts to prevent content from breaking across columns.
- Tweak: General code cleanup and improved compliance with WordPress coding standards based on plugin review feedback.
1.0.0
- First public release on WordPress.org.
- Complete code refactoring to meet all WordPress security and quality standards.
- Introduction of a “Pro” version to unlock advanced features like automatic sync and unlimited sources/groups.
- Renamed plugin and shortcode to
[platinium_epg] for compliance with official guidelines.