[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fj2jl3iZjWprSoIrsyijrfXPnygDO4ptmSpTGWX5ykF0":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":36,"analysis":83,"fingerprints":321},"platinium-epg-xmltv","Platinium EPG for XMLTV and M3U","1.2.2","Rejean Lessard","https:\u002F\u002Fprofiles.wordpress.org\u002Fgroupeplatinium\u002F","\u003Cp>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\u002For 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.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Key Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Multiple Data Sources (XMLTV & M3U):\u003C\u002Fstrong> 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.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Local M3U File Uploads:\u003C\u002Fstrong> 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.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>M3U Integration for Clickable Channels:\u003C\u002Fstrong> Easily make your channels playable! The plugin automatically maps streams from your M3U sources using \u003Ccode>tvg-id\u003C\u002Fcode>, or you can add stream URLs manually for each channel.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Built-in HLS Player:\u003C\u002Fstrong> Provides a seamless viewing experience with an integrated player for HLS (\u003Ccode>.m3u8\u003C\u002Fcode>) streams, which opens in a clean modal window.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Powerful Shortcode Generator:\u003C\u002Fstrong> Create and save custom “Channel Groups” (e.g., “Sports,” “Movies,” “News”) and display them anywhere with a simple shortcode like \u003Ccode>[platinium_epg group-name=\"Sports\"]\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>High Performance by Design:\u003C\u002Fstrong> 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.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Advanced Customization:\u003C\u002Fstrong> 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).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Diagnostic Tools:\u003C\u002Fstrong> 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.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Free vs. Pro\u003C\u002Fh3>\n\u003Cp>The free version provides all the essential tools to build a beautiful TV guide. The \u003Cstrong>Pro version\u003C\u002Fstrong> unlocks:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>✅ Unlimited EPG Sources (free is limited to 2 XMLTV and 1 M3U)\u003C\u002Fli>\n\u003Cli>✅ Unlimited Saved Channel Groups (free is limited to 1)\u003C\u002Fli>\n\u003Cli>✅ Fully Automatic Synchronization (free is manual sync only)\u003C\u002Fli>\n\u003Cli>✅ One-Click Backup & Restore of all plugin settings\u003C\u002Fli>\n\u003Cli>✅ Direct, Priority Email Support\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>[\u003Cstrong>–> Upgrade to Platinium EPG Pro Now! (https:\u002F\u002Fgroupeplatinium.com\u002Fdownloads\u002Fplatinium-epg-for-xmltv-and-m3u-pro\u002F)\u003C\u002Fstrong>]\u003C\u002Fp>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>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.\u003Cbr \u002F>\n* \u003Cstrong>Service:\u003C\u002Fstrong> Groupe Platinium License API (groupeplatinium.com)\u003Cbr \u002F>\n* \u003Cstrong>Purpose:\u003C\u002Fstrong> To verify the validity of a Pro license key upon its activation or deactivation.\u003Cbr \u002F>\n* \u003Cstrong>Data Sent:\u003C\u002Fstrong> When the administrator activates or deactivates the license, the license key, the site’s URL (\u003Ccode>home_url\u003C\u002Fcode>), and the product name are sent to our server.\u003Cbr \u002F>\n* \u003Cstrong>Link to Privacy Policy:\u003C\u002Fstrong> https:\u002F\u002Fgroupeplatinium.com\u002Fprivacy-policy\u002F\u003Cbr \u002F>\n* \u003Cstrong>Link to Terms of Service:\u003C\u002Fstrong> https:\u002F\u002Fgroupeplatinium.com\u002Fterms-and-conditions\u002F\u003C\u002Fp>\n","A powerful EPG for WordPress that builds a beautiful TV guide from any XMLTV or M3U source and makes channels playable with stream links.",50,762,0,"2025-09-04T00:49:00.000Z","6.9.4","5.8","7.4",[19,20,21,22,23],"epg","iptv","m3u","tv-guide","xmltv","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fplatinium-epg-xmltv.1.2.2.zip",100,null,"2026-03-15T15:16:48.613Z",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":11,"avg_security_score":26,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"groupeplatinium",1,30,94,"2026-04-04T00:44:08.262Z",[37,61],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":45,"downloaded":46,"rating":47,"num_ratings":48,"last_updated":49,"tested_up_to":50,"requires_at_least":51,"requires_php":17,"tags":52,"homepage":57,"download_link":58,"security_score":59,"vuln_count":32,"unpatched_count":13,"last_vuln_date":60,"fetched_at":28},"wp-smart-tv","WP Smart TV","2.2.4","Rob Davenport","https:\u002F\u002Fprofiles.wordpress.org\u002Frobdavenport\u002F","\u003Cp>NOTE:  This plugin is no longer being developed as most services like Direct Publisher are no longer available.  We will continue to post bug fixes.\u003C\u002Fp>\n\u003Cp>The ultimate toolkit for video streaming services using WordPress. Turn your site into an video service similar to YouTube or Vimeo. Provides support for HTML5 video and Roku Direct Publisher plus add-on plugins for Fire TV and Chromecast.\u003C\u002Fp>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FZfph3hQZzm4?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Cp>Includes:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Roku Direct Publisher Feed support (JSON)\u003C\u002Fli>\n\u003Cli>HTML5 video player with HLS & MP4\u003C\u002Fli>\n\u003Cli>Shortcodes to integrate with existing sites\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Add-ons:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Vimeo Pro Extender – Easily import and manage your Vimeo content with WP Smart TV\u003C\u002Fli>\n\u003Cli>Fire TV Creator – Add support for Amazon’s Fire TV Creator\u003C\u002Fli>\n\u003Cli>Playlists – Add playlist support to WP Smart TV\u003C\u002Fli>\n\u003Cli>Secure Feeds – Secures your IPTV data feeds against unauthorized access\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>\u003Cem>Do more with WP Smart TV with our line of Extenders! \u003Ca href=\"https:\u002F\u002Frovidx.com\u002Fwp-smart-tv-extenders\u002F?ref=1&campaign=rm\" rel=\"nofollow ugc\">Click here to learn more\u003C\u002Fa>.\u003C\u002Fem>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>This plugin utilizes custom post types to manage your video content.  We include Movie, Shortform Video & Episodic post types to help you easily add new content to your IPTV system.\u003C\u002Fp>\n\u003Cp>Each video contains metadata for trick play files and Closed Captions with multiple translations.\u003C\u002Fp>\n\u003Cp>Shortcodes are also provided to embed content in regular posts & pages.\u003C\u002Fp>\n\u003Cp>Roku Direct Publish Feeds allow you to send data to Roku without the expense of building your own app.   For more information please see this article – \u003Ca href=\"https:\u002F\u002Fblog.roku.com\u002Fdeveloper\u002F2016\u002F10\u002F19\u002Fpublishing-platform\u002F\" rel=\"nofollow ugc\">Roku Direct Publisher Feeds\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Cem>Need help? \u003Ca href=\"https:\u002F\u002Frovidx.com\u002Fdocuments\u002F\" rel=\"nofollow ugc\">Read the documentation here!\u003C\u002Fa>\u003C\u002Fem>\u003C\u002Fstrong>\u003C\u002Fp>\n","The ultimate toolkit for video streaming services using WordPress. Turn your site into an video service similar to YouTube or Vimeo.",300,46001,78,14,"2025-09-15T22:22:00.000Z","6.6.5","6.3",[53,54,20,55,56],"firetv","html5-video-player","roku","video-cms","https:\u002F\u002Frovidx.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-smart-tv.2.2.4.zip",99,"2025-01-14 00:00:00",{"slug":62,"name":63,"version":64,"author":65,"author_profile":66,"description":67,"short_description":68,"active_installs":69,"downloaded":70,"rating":13,"num_ratings":13,"last_updated":71,"tested_up_to":72,"requires_at_least":73,"requires_php":24,"tags":74,"homepage":80,"download_link":81,"security_score":82,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"blip-tv-episodes-widget","Blip TV Episodes Widget","0.3","WebTechGlobal","https:\u002F\u002Fprofiles.wordpress.org\u002Fwebtechglobal\u002F","\u003Cp>Blip TV Episodes Widget will dynamically check if your post or page has one or more Blip TV videos assigned to it. When a video url is found the plugin will embed the video in your\u003Cbr \u002F>\nsidebar for viewing. If no video is found, AdSense can be displayed instead so that your not wasting the space. There is an interface which lists all post and has the ability to\u003Cbr \u002F>\npaste a video url then save it to a post. Thats a little quicker than actually opening posts then saving videos into the custom fields. There is also an interface which lists all\u003Cbr \u002F>\nexists posts that have videos, plus lists the videos under each post for deletion etc. The plugin is new for June 2010, many upgrades coming to help you manage your Blip TV\u003Cbr \u002F>\nepisodes and maximise use of the videos you spend hours creating.\u003C\u002Fp>\n\u003Ch3>Arbitrary section\u003C\u002Fh3>\n\u003Cp>Please contact webmaster@webtechglobal.co.uk with questions\u003C\u002Fp>\n","Blip TV Episodes plugin will allow you to setup a video widget, easily add videos to posts then watch them appear in the sidebar when viewing that pos &hellip;",10,2836,"2014-08-07T10:46:00.000Z","2.9.2","2.8.6",[75,76,77,78,79],"bliptv","blog","builder","video","youtube","http:\u002F\u002Fwww.webtechglobal.co.uk\u002Ffeatured\u002Fblip-tv-episodes-widget","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fblip-tv-episodes-widget.zip",85,{"attackSurface":84,"codeSignals":199,"taintFlows":269,"riskAssessment":314,"analyzedAt":320},{"hooks":85,"ajaxHandlers":133,"restRoutes":188,"shortcodes":189,"cronEvents":194,"entryPointCount":48,"unprotectedCount":13},[86,92,96,100,105,110,112,115,118,121,126,129],{"type":87,"name":88,"callback":89,"file":90,"line":91},"action","admin_menu","pepg_add_admin_menu","includes\\admin-settings.php",1113,{"type":87,"name":93,"callback":94,"file":90,"line":95},"admin_enqueue_scripts","pepg_admin_enqueue_assets",1114,{"type":87,"name":97,"callback":98,"file":90,"line":99},"admin_init","pepg_settings_init",1115,{"type":87,"name":101,"callback":102,"file":103,"line":104},"pepg_daily_event","pepg_trigger_daily_fetch","includes\\sync-logic.php",4,{"type":87,"name":106,"callback":107,"file":108,"line":109},"wp_enqueue_scripts","pepg_register_assets","platinium-epg-xmltv.php",61,{"type":87,"name":93,"callback":107,"file":108,"line":111},62,{"type":87,"name":97,"callback":113,"file":108,"line":114},"pepg_handle_license_actions",134,{"type":87,"name":97,"callback":116,"file":108,"line":117},"pepg_register_license_settings",139,{"type":87,"name":97,"callback":119,"priority":13,"file":108,"line":120},"pepg_pro_updater",160,{"type":87,"name":122,"callback":123,"priority":124,"file":108,"line":125},"admin_bar_menu","pepg_add_admin_bar_menu",999,209,{"type":87,"name":97,"callback":127,"file":108,"line":128},"pepg_handle_rating_notice_dismissal",246,{"type":87,"name":130,"callback":131,"file":108,"line":132},"admin_notices","pepg_display_rating_admin_notice",295,[134,140,144,148,152,156,160,164,168,172,176,180,184],{"action":135,"nopriv":136,"callback":137,"hasNonce":138,"hasCapCheck":138,"file":90,"line":139},"pepg_manual_sync_ajax",false,"pepg_manual_sync_ajax_handler",true,1116,{"action":141,"nopriv":136,"callback":142,"hasNonce":138,"hasCapCheck":138,"file":90,"line":143},"pepg_get_channels_for_source","pepg_get_channels_for_source_ajax_handler",1117,{"action":145,"nopriv":136,"callback":146,"hasNonce":138,"hasCapCheck":138,"file":90,"line":147},"pepg_save_stream_links","pepg_save_stream_links_ajax_handler",1118,{"action":149,"nopriv":136,"callback":150,"hasNonce":138,"hasCapCheck":138,"file":90,"line":151},"pepg_save_shortcode_group","pepg_save_shortcode_group_ajax_handler",1119,{"action":153,"nopriv":136,"callback":154,"hasNonce":138,"hasCapCheck":138,"file":90,"line":155},"pepg_delete_shortcode_group","pepg_delete_shortcode_group_ajax_handler",1120,{"action":157,"nopriv":136,"callback":158,"hasNonce":138,"hasCapCheck":138,"file":90,"line":159},"pepg_export_m3u","pepg_export_m3u_ajax_handler",1121,{"action":161,"nopriv":136,"callback":162,"hasNonce":138,"hasCapCheck":138,"file":90,"line":163},"pepg_import_m3u","pepg_import_m3u_ajax_handler",1122,{"action":165,"nopriv":136,"callback":166,"hasNonce":138,"hasCapCheck":138,"file":90,"line":167},"pepg_reset_all_data","pepg_reset_all_data_ajax_handler",1123,{"action":169,"nopriv":136,"callback":170,"hasNonce":138,"hasCapCheck":138,"file":90,"line":171},"pepg_export_all_links","pepg_export_all_links_ajax_handler",1124,{"action":173,"nopriv":136,"callback":174,"hasNonce":138,"hasCapCheck":138,"file":90,"line":175},"pepg_import_all_links","pepg_import_all_links_ajax_handler",1125,{"action":177,"nopriv":136,"callback":178,"hasNonce":138,"hasCapCheck":138,"file":90,"line":179},"pepg_backup_all_data","pepg_backup_all_data_ajax_handler",1126,{"action":181,"nopriv":136,"callback":182,"hasNonce":138,"hasCapCheck":138,"file":90,"line":183},"pepg_import_all_data","pepg_import_all_data_ajax_handler",1127,{"action":185,"nopriv":136,"callback":186,"hasNonce":138,"hasCapCheck":138,"file":90,"line":187},"pepg_update_links_from_m3u","pepg_update_links_from_m3u_ajax_handler",1128,[],[190],{"tag":191,"callback":192,"file":193,"line":104},"platinium_epg","pepg_display_grid_shortcode","includes\\shortcode.php",[195,197],{"hook":101,"callback":101,"file":90,"line":196},868,{"hook":101,"callback":101,"file":108,"line":198},79,{"dangerousFunctions":200,"sqlUsage":201,"outputEscaping":203,"fileOperations":264,"externalRequests":265,"nonceChecks":266,"capabilityChecks":267,"bundledLibraries":268},[],{"prepared":13,"raw":13,"locations":202},[],{"escaped":204,"rawEcho":205,"locations":206},143,28,[207,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262],{"file":90,"line":208,"context":209},933,"raw output",{"file":90,"line":211,"context":209},936,{"file":90,"line":213,"context":209},960,{"file":90,"line":215,"context":209},1023,{"file":90,"line":217,"context":209},1024,{"file":90,"line":219,"context":209},1029,{"file":90,"line":221,"context":209},1058,{"file":90,"line":223,"context":209},1105,{"file":90,"line":225,"context":209},1161,{"file":90,"line":227,"context":209},1164,{"file":90,"line":229,"context":209},1167,{"file":90,"line":231,"context":209},1173,{"file":90,"line":233,"context":209},1195,{"file":90,"line":235,"context":209},1197,{"file":90,"line":237,"context":209},1204,{"file":90,"line":239,"context":209},1207,{"file":90,"line":241,"context":209},1210,{"file":90,"line":243,"context":209},1216,{"file":90,"line":245,"context":209},1231,{"file":90,"line":247,"context":209},1233,{"file":90,"line":249,"context":209},1237,{"file":90,"line":251,"context":209},1248,{"file":90,"line":253,"context":209},1250,{"file":90,"line":255,"context":209},1254,{"file":90,"line":257,"context":209},1260,{"file":90,"line":259,"context":209},1277,{"file":193,"line":261,"context":209},236,{"file":193,"line":263,"context":209},241,3,6,16,18,[],[270,288,301],{"entryPoint":271,"graph":272,"unsanitizedCount":13,"severity":287},"pepg_update_links_from_m3u_ajax_handler (includes\\admin-settings.php:686)",{"nodes":273,"edges":285},[274,279],{"id":275,"type":276,"label":277,"file":90,"line":278},"n0","source","$_FILES",706,{"id":280,"type":281,"label":282,"file":90,"line":283,"wp_function":284},"n1","sink","file_get_contents() [SSRF\u002FLFI]",708,"file_get_contents",[286],{"from":275,"to":280,"sanitized":138},"low",{"entryPoint":289,"graph":290,"unsanitizedCount":13,"severity":287},"pepg_import_all_data_ajax_handler (includes\\admin-settings.php:1604)",{"nodes":291,"edges":299},[292,295],{"id":275,"type":276,"label":293,"file":90,"line":294},"$_POST (x7)",1613,{"id":280,"type":281,"label":296,"file":90,"line":297,"wp_function":298},"update_option() [Settings Manipulation]",1622,"update_option",[300],{"from":275,"to":280,"sanitized":138},{"entryPoint":302,"graph":303,"unsanitizedCount":13,"severity":287},"\u003Cadmin-settings> (includes\\admin-settings.php:0)",{"nodes":304,"edges":311},[305,306,307,309],{"id":275,"type":276,"label":277,"file":90,"line":278},{"id":280,"type":281,"label":282,"file":90,"line":283,"wp_function":284},{"id":308,"type":276,"label":293,"file":90,"line":294},"n2",{"id":310,"type":281,"label":296,"file":90,"line":297,"wp_function":298},"n3",[312,313],{"from":275,"to":280,"sanitized":138},{"from":308,"to":310,"sanitized":138},{"summary":315,"deductions":316},"The platinium-epg-xmltv plugin v1.2.2 demonstrates a generally strong security posture based on the provided static analysis.  The plugin correctly implements nonce checks for its AJAX handlers and capability checks for its entry points, indicating a good understanding of WordPress security best practices.  Furthermore, all SQL queries are performed using prepared statements, and the taint analysis revealed no critical or high severity flows with unsanitized paths, suggesting a low risk of injection vulnerabilities.  The absence of any known CVEs, past or present, further reinforces this positive assessment.  The plugin also has a good output escaping rate of 84%, which is commendable, though there's always room for improvement.  The limited number of file operations and external HTTP requests, coupled with no bundled libraries, also contribute to a reduced attack surface.  While the plugin excels in many areas, the 16% of improperly escaped output, though not flagged as critical in the static analysis, represents a potential area for cross-site scripting (XSS) vulnerabilities if those outputs are used in sensitive contexts.  Overall, the plugin appears to be well-secured, with minimal actionable security concerns beyond the potential for minor output escaping issues.",[317],{"reason":318,"points":319},"Improperly escaped output detected",5,"2026-03-16T21:54:49.813Z",{"wat":322,"direct":335},{"assetPaths":323,"generatorPatterns":327,"scriptPaths":328,"versionParams":331},[324,325,326],"\u002Fwp-content\u002Fplugins\u002Fplatinium-epg-xmltv\u002Fassets\u002Fpepg-frontend.css","\u002Fwp-content\u002Fplugins\u002Fplatinium-epg-xmltv\u002Fassets\u002Fpepg-frontend.js","\u002Fwp-content\u002Fplugins\u002Fplatinium-epg-xmltv\u002Fassets\u002Fjs\u002Fhls.min.js",[],[329,330],"assets\u002Fpepg-frontend.js","assets\u002Fjs\u002Fhls.min.js",[332,333,334],"platinium-epg-xmltv\u002Fassets\u002Fpepg-frontend.css?ver=","platinium-epg-xmltv\u002Fassets\u002Fpepg-frontend.js?ver=","platinium-epg-xmltv\u002Fassets\u002Fjs\u002Fhls.min.js?ver=",{"cssClasses":336,"htmlComments":337,"htmlAttributes":338,"restEndpoints":339,"jsGlobals":340,"shortcodeOutput":341},[],[],[],[],[],[]]