{"id":270796,"date":"2026-01-16T23:28:29","date_gmt":"2026-01-16T23:28:29","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/stream-live-hls-chat\/"},"modified":"2026-06-03T09:11:44","modified_gmt":"2026-06-03T09:11:44","slug":"castio-live","status":"publish","type":"plugin","link":"https:\/\/es-hn.wordpress.org\/plugins\/castio-live\/","author":15506312,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.0","stable_tag":"trunk","tested":"7.0","requires":"6.9","requires_php":"7.4","requires_plugins":null,"header_name":"Castio.live \u2013 WordPress Streaming Plugin with Chat","header_author":"Castio","header_description":"Live stream video from WordPress Admin using browser-based HLS. Auto-creates a viewer page with an HLS player and optional live chat. No OBS, no RTMP, no external streaming service.","assets_banners_color":"564775","last_updated":"2026-06-03 09:11:44","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/proxymis.com\/","header_plugin_uri":"https:\/\/castio.live","header_author_uri":"https:\/\/proxymis.com","rating":5,"author_block_rating":0,"active_installs":30,"downloads":753,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":{"1.3.0":"<p>Requires WordPress 6.9. Tested up to WordPress 7.0. Adds the WordPress 6.9 Abilities API integration (three structured abilities for AI agents). PHP minimum remains 7.4.<\/p>","1.2.1":"<p>Fixes blank pages on the public Videos listing and wrong video count when &quot;Videos per page&quot; is set in admin. Update recommended for all sites using the <code>[castio_streams]<\/code> shortcode.<\/p>","1.2.0":"<p>Adds PayPal paywall support, four Gutenberg blocks (Streams Grid, Live Stream, Stream Viewer, My Videos) under a dedicated Castio Live block category, and a 2-column FAQ layout.<\/p>","1.1.0":"<p>Adds video preview in the admin, a resizable video\/chat split, smart scroll with new-message notification, 32-emoji picker, full-width mobile users panel, and a freemium split: chat is now free for all users while moderation tools (ban\/delete) require a premium license.<\/p>","1.0.0":"<p>First public release on WordPress.org.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3494613,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3494613,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3494613,"resolution":"772x250","location":"assets","locale":"","width":2048,"height":663}},"assets_blueprints":{},"all_blocks":{"castio-live\/streams":{"name":"castio-live\/streams","title":"Streams Grid"},"castio-live\/live":{"name":"castio-live\/live","title":"Live Stream"},"castio-live\/viewer":{"name":"castio-live\/viewer","title":"Stream Viewer"},"castio-live\/my-videos":{"name":"castio-live\/my-videos","title":"My Videos"}},"tagged_versions":[],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3441310,"resolution":"1","location":"assets","locale":"","width":1002,"height":593},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3441310,"resolution":"2","location":"assets","locale":"","width":1200,"height":631},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3441310,"resolution":"3","location":"assets","locale":"","width":1536,"height":1024},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3441310,"resolution":"4","location":"assets","locale":"","width":1024,"height":1024},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3441310,"resolution":"5","location":"assets","locale":"","width":1536,"height":1024},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3441310,"resolution":"6","location":"assets","locale":"","width":1536,"height":1024},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3441310,"resolution":"7","location":"assets","locale":"","width":1391,"height":798}},"screenshots":{"1":"Plugin settings and configuration options","2":"Sales and revenue reports dashboard","3":"Live streaming interface in WordPress Admin","4":"Built-in live chat during a stream","5":"List of recorded live streams","6":"Single recorded video viewer page","7":"Pay-per-view access and checkout screen"}},"plugin_section":[],"plugin_tags":[257972,17272,17124,265605,265606],"plugin_category":[41],"plugin_contributors":[254150],"plugin_business_model":[],"class_list":["post-270796","plugin","type-plugin","status-publish","hentry","plugin_tags-hls-streaming","plugin_tags-live-streaming","plugin_tags-wordpress-chat","plugin_tags-wordpress-streaming","plugin_tags-wordpress-streaming-plugin","plugin_category-communication","plugin_contributors-proxymis","plugin_committers-proxymis"],"banners":{"banner":"https:\/\/ps.w.org\/castio-live\/assets\/banner-772x250.png?rev=3494613","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/castio-live\/assets\/icon-128x128.gif?rev=3494613","icon_2x":"https:\/\/ps.w.org\/castio-live\/assets\/icon-256x256.gif?rev=3494613","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/castio-live\/assets\/screenshot-1.png?rev=3441310","caption":"Plugin settings and configuration options"},{"src":"https:\/\/ps.w.org\/castio-live\/assets\/screenshot-2.png?rev=3441310","caption":"Sales and revenue reports dashboard"},{"src":"https:\/\/ps.w.org\/castio-live\/assets\/screenshot-3.png?rev=3441310","caption":"Live streaming interface in WordPress Admin"},{"src":"https:\/\/ps.w.org\/castio-live\/assets\/screenshot-4.png?rev=3441310","caption":"Built-in live chat during a stream"},{"src":"https:\/\/ps.w.org\/castio-live\/assets\/screenshot-5.png?rev=3441310","caption":"List of recorded live streams"},{"src":"https:\/\/ps.w.org\/castio-live\/assets\/screenshot-6.png?rev=3441310","caption":"Single recorded video viewer page"},{"src":"https:\/\/ps.w.org\/castio-live\/assets\/screenshot-7.png?rev=3441310","caption":"Pay-per-view access and checkout screen"}],"raw_content":"<!--section=description-->\n<p>Castio.live is a <strong>WordPress streaming plugin with chat<\/strong> that lets you go live directly from your admin \u2014 no OBS, no RTMP, no external platforms.<\/p>\n\n<p>Stream video, chat with your audience in real time, and monetize your content with Stripe or PayPal \u2014 all from your own WordPress site.<\/p>\n\n<p>Perfect for creators, educators, events, and premium content platforms.<\/p>\n\n<p>Castio.live is one of the few WordPress plugins that enables browser-based live streaming without OBS or RTMP.<\/p>\n\n<h3>At a Glance<\/h3>\n\n<ul>\n<li>WordPress streaming plugin (HLS)<\/li>\n<li>Go live directly from WordPress Admin<\/li>\n<li>Built-in real-time chat<\/li>\n<li>No OBS, no RTMP, no external platform<\/li>\n<li>Paywall: Stripe &amp; PayPal<\/li>\n<li>Gutenberg blocks for easy embedding<\/li>\n<li>Auto-generated viewer pages<\/li>\n<li>Works on shared hosting and VPS<\/li>\n<\/ul>\n\n<p>[youtube https:\/\/www.youtube.com\/watch?v=fgw2u0fmAME]<\/p>\n\n<p><strong>Start streaming in minutes<\/strong>\nInstall the plugin, click \u201cStart Streaming\u201d in WordPress Admin, and instantly share your live viewer page with your audience.<\/p>\n\n<p>No streaming SaaS. No vendor lock-in. Full control over your content.<\/p>\n\n<h3>Live Streaming from WordPress Admin<\/h3>\n\n<p>Castio.live adds a dedicated streaming interface directly inside the WordPress Admin area.<\/p>\n\n<p>You can:\n- Select your camera and microphone\n- Preview your stream before going live\n- Start and stop streaming with a single click<\/p>\n\n<p>Supported capture technologies:\n- MediaDevices API\n- MediaRecorder\n- WebCodecs (when available, for lower latency)<\/p>\n\n<p>Supported streaming browsers:\n- Chrome or Edge (desktop)\n- Chrome (Android)<\/p>\n\n<p>Viewer playback works on all modern browsers, including mobile devices.<\/p>\n\n<h3>Viewer Page (Auto-Generated)<\/h3>\n\n<p>For each live stream, Castio.live can automatically generate a viewer page.<\/p>\n\n<p>Viewer page features:\n- HLS video playback (native HLS on Safari, hls.js on other browsers)\n- Clean and lightweight interface\n- Mobile-friendly layout\n- Optional live chat panel<\/p>\n\n<p>The viewer page URL can be:\n- Public\n- Shared privately\n- Embedded into other pages\n- Protected via access control options<\/p>\n\n<h3>Monetize Your Live Streams<\/h3>\n\n<p>Castio.live includes built-in monetization features so you can generate revenue from your content:<\/p>\n\n<ul>\n<li>Pay-per-view access<\/li>\n<li>Subscriptions via Stripe<\/li>\n<li>PayPal payments (no webhooks required)<\/li>\n<li>Secure access via signed cookies<\/li>\n<\/ul>\n\n<p>Perfect for:\n- Premium live events\n- Online courses\n- Private communities\n- Exclusive content<\/p>\n\n<p>No external SaaS required \u2014 you keep full control over your revenue.<\/p>\n\n<h3>Built-in Real-Time Chat<\/h3>\n\n<p>Each live stream includes a built-in real-time chat system.<\/p>\n\n<p>Chat features:\n- AJAX-based live message polling\n- Username display\n- Automatic refresh\n- Message history stored in the WordPress database<\/p>\n\n<p>Moderation tools:\n- View all messages\n- Delete individual messages\n- Ban users by username\n- Ban users by IP address<\/p>\n\n<p>No external chat service is required.<\/p>\n\n<h3>Privacy, Ownership, and Compliance<\/h3>\n\n<p>Castio.live is designed with privacy and data ownership as a core principle.<\/p>\n\n<ul>\n<li>No third-party streaming services<\/li>\n<li>No external chat providers<\/li>\n<li>No analytics or tracking scripts included by default<\/li>\n<li>No cloud-based video or message processing<\/li>\n<\/ul>\n\n<p>All streaming and chat data remains on your own server:\n- HLS video segments\n- Chat messages\n- Stream metadata\n- Viewer page configuration<\/p>\n\n<p>This design helps simplify compliance with GDPR and similar data protection regulations.<\/p>\n\n<h3>Technical Architecture<\/h3>\n\n<p>Castio.live is a fully WordPress-native plugin.<\/p>\n\n<p>No dependencies on:\n- FFmpeg\n- Node.js\n- RTMP servers\n- External streaming APIs<\/p>\n\n<p>Core components:\n- Browser-based HLS generation\n- PHP for stream lifecycle and data storage\n- JavaScript for capture, playback, and chat\n- WordPress custom post types and options<\/p>\n\n<p>The plugin works on shared hosting, VPS, and dedicated servers.<\/p>\n\n<h3>Key Features Summary<\/h3>\n\n<ul>\n<li>Live stream directly from WordPress Admin<\/li>\n<li>No OBS, no RTMP, no external streaming platform<\/li>\n<li>Browser-generated HLS (.m3u8 + .ts)<\/li>\n<li>Automatic viewer page creation<\/li>\n<li>Built-in live chat<\/li>\n<li>Chat moderation tools<\/li>\n<li>Mobile-friendly viewer experience<\/li>\n<li>All streaming and chat data stored locally<\/li>\n<li>Lightweight and efficient<\/li>\n<li>Compatible with most CDNs, including Cloudflare<\/li>\n<\/ul>\n\n<h3>Who Is This Plugin For?<\/h3>\n\n<p>Castio.live is ideal for:\n- Educators and online trainers\n- Content creators\n- Community websites\n- Event organizers\n- Developers and agencies\n- Anyone who wants full control over live streaming without SaaS platforms<\/p>\n\n<h3>Source Code and Third-Party Libraries<\/h3>\n\n<p>This plugin includes both original source code and third-party JavaScript libraries.<\/p>\n\n<p><strong>Original plugin code<\/strong>\n- Unminified, human-readable JavaScript files are included directly in the plugin.\n- No obfuscated or encrypted code is used.<\/p>\n\n<p><strong>Third-party libraries (vendored, unmodified)<\/strong><\/p>\n\n<ol>\n<li><p><strong>MediaBunny<\/strong><\/p>\n\n<ul>\n<li>File: <code>assets\/js\/vendor\/mediabunny\/mediabunny.esm.js<\/code><\/li>\n<li>Source: https:\/\/github.com\/Vanilagy\/mediabunny<\/li>\n<li>License: MIT<\/li>\n<li>Used for browser-based media processing.<\/li>\n<\/ul><\/li>\n<li><p><strong>hls.js<\/strong><\/p>\n\n<ul>\n<li>File: <code>assets\/js\/vendor\/hls\/hls.min.js<\/code><\/li>\n<li>Source: https:\/\/github.com\/video-dev\/hls.js<\/li>\n<li>License: Apache License 2.0<\/li>\n<li>Used for HLS playback on non-Safari browsers.<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<p>These libraries are included for performance and compatibility reasons.\nAll libraries retain their original licenses and copyright notices.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to external third-party services to provide optional monetization and licensing features.<\/p>\n\n<h3>Stripe Payments<\/h3>\n\n<p>Castio.live can integrate with Stripe to allow site owners to sell access to live or recorded streams, including pay-per-view content and subscriptions.<\/p>\n\n<p>What the service is used for:\nStripe is used to create checkout sessions, process payments, manage subscriptions, and retrieve payment reports related to paid video access.<\/p>\n\n<p>What data is sent and when:\nWhen a visitor purchases paid content or when the site owner views payment reports, the plugin sends the following data to Stripe:\n- Email address provided during checkout\n- Payment and checkout session identifiers\n- Purchased content or pricing identifiers\n- Subscription and payment status metadata<\/p>\n\n<p>No video streams, chat messages, or media content are transmitted to Stripe.<\/p>\n\n<p>Service provider:\nStripe, Inc.<\/p>\n\n<p>Terms of Service:\nhttps:\/\/stripe.com\/legal<\/p>\n\n<p>Privacy Policy:\nhttps:\/\/stripe.com\/privacy<\/p>\n\n<h3>PayPal Payments<\/h3>\n\n<p>Castio.live can integrate with PayPal to allow site owners to sell access to live or recorded streams via pay-per-view.<\/p>\n\n<p>What the service is used for:\nPayPal is used to create and capture payment orders for paid video access using the PayPal Orders API v2.<\/p>\n\n<p>What data is sent and when:\nWhen a visitor purchases paid content, the plugin sends the following data to PayPal:\n- Order amount and currency\n- Return and cancel URLs\n- Stream identifier (used as order description)<\/p>\n\n<p>No video streams, chat messages, or personal user data beyond the above are transmitted to PayPal.<\/p>\n\n<p>Service provider:\nPayPal Holdings, Inc.<\/p>\n\n<p>Terms of Service:\nhttps:\/\/www.paypal.com\/us\/legalhub\/useragreement-full<\/p>\n\n<p>Privacy Policy:\nhttps:\/\/www.paypal.com\/us\/legalhub\/privacy-full<\/p>\n\n<h3>Castio.live Licensing Server<\/h3>\n\n<p>This plugin connects to the Castio.live licensing server to validate premium licenses and enable optional premium features.<\/p>\n\n<p>What the service is used for:\nThe licensing server is used to verify license validity and determine which premium features are available.<\/p>\n\n<p>What data is sent and when:\nDuring license validation (for example on activation, admin access, or periodic checks), the plugin sends:\n- License key\n- Site domain name\n- Plugin version\n- WordPress version<\/p>\n\n<p>No user-generated content, video streams, or personal data are transmitted.<\/p>\n\n<p>Service provider:\nCastio.live<\/p>\n\n<p>Terms of Service:\nhttps:\/\/castio.live\/terms<\/p>\n\n<p>Privacy Policy:\nhttps:\/\/castio.live\/privacy<\/p>\n\n<h3>Demo and Additional Features<\/h3>\n\n<p>A public demo, documentation, and optional commercial features are available at:\nhttps:\/\/castio.live<\/p>\n\n<p>Commercial offerings may include:\n- Advanced access control\n- Enhanced chat moderation\n- Extended streaming options\n- Priority support<\/p>\n\n<p>The core live streaming and chat functionality works without requiring any external service.<\/p>\n\n<h3>Author and Support<\/h3>\n\n<p>Developed by proxymis\nWebsite: https:\/\/proxymis.com\nContact: contact@proxymis.com<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>castio-live<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or search for \u201cCastio.live\u201d in the WordPress Plugin Directory.<\/li>\n<li>Activate the plugin from the Plugins menu.<\/li>\n<li>In WordPress Admin, go to Stream Live and create a new stream.<\/li>\n<li>Click \u201cStart Streaming\u201d and share the viewer page URL.<\/li>\n<\/ol>\n\n<p>Notes:\n- Streaming requires Chrome or Edge on desktop, or Chrome on Android.\n- iOS Safari and Firefox do not currently support the required streaming APIs.\n- Viewing streams works on all modern browsers.\n- HLS files are written to <code>wp-content\/uploads\/castio\/{stream_id}<\/code>.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20include%20real-time%20chat%20during%20streaming%3F\"><h3>Does this include real-time chat during streaming?<\/h3><\/dt>\n<dd><p>Yes. The viewer page shows a built-in real-time chat panel next to the video so your audience can react and interact while you\u2019re live. Moderation tools (ban\/delete) require a premium license; basic chat is free.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20use%20external%20streaming%20servers%3F\"><h3>Does this plugin use external streaming servers?<\/h3><\/dt>\n<dd><p>No. Live video streaming and chat run entirely on your own WordPress server.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20connect%20to%20external%20services%3F\"><h3>Does this plugin connect to external services?<\/h3><\/dt>\n<dd><p>Yes. Optional features may connect to Stripe and PayPal for payment processing, and to the Castio.live licensing server for premium license validation.<\/p><\/dd>\n<dt id=\"can%20viewers%20watch%20streams%20on%20ios%20safari%3F\"><h3>Can viewers watch streams on iOS Safari?<\/h3><\/dt>\n<dd><p>Yes. Viewer playback works on iOS Safari using native HLS support.<\/p><\/dd>\n<dt id=\"why%20can%E2%80%99t%20i%20stream%20from%20ios%20safari%20or%20firefox%3F\"><h3>Why can\u2019t I stream from iOS Safari or Firefox?<\/h3><\/dt>\n<dd><p>Those browsers do not currently expose the APIs required to generate HLS streams in the browser.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20compatible%20with%20cdns%3F\"><h3>Is this plugin compatible with CDNs?<\/h3><\/dt>\n<dd><p>Yes. Castio.live works with most CDNs, including Cloudflare.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.0<\/h4>\n\n<p><strong>WordPress 6.9 \/ 7.0 compatibility<\/strong><\/p>\n\n<ul>\n<li><strong>WordPress 6.9 Abilities API<\/strong> \u2013 Registers three structured abilities for AI agents and compatible tools: <code>castio\/list-streams<\/code> (paginated stream list), <code>castio\/get-stream-info<\/code> (full metadata for one stream), and <code>castio\/get-live-status<\/code> (public live detection). All abilities carry JSON input\/output schemas and are exposed via the REST API. Silently no-ops on older WordPress versions.<\/li>\n<li><strong>Tested up to WordPress 7.0<\/strong> \u2013 Confirmed compatible with WordPress 7.0.<\/li>\n<li><strong><code>Requires at least<\/code> bumped to 6.9<\/strong> \u2013 Plugin now declares WordPress 6.9 as the minimum supported version.<\/li>\n<li><strong>Code modernisation<\/strong> \u2013 All <code>strpos(...) === 0<\/code> prefix checks replaced with <code>str_starts_with()<\/code> and all <code>false === strpos(...)<\/code> substring checks replaced with <code>str_contains()<\/code>. Both functions are polyfilled by WordPress on PHP 7.4, so the PHP minimum requirement remains 7.4.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<p><strong>Videos page pagination fix &amp; per-page setting<\/strong><\/p>\n\n<ul>\n<li><strong>Fixed blank page on paginated videos listing<\/strong> \u2013 The public Videos page (<code>[castio_streams]<\/code>) now correctly shows videos on pages 2, 3, etc. Root cause: WordPress's canonical redirect was converting <code>?paged=N<\/code> query strings back to path-based <code>\/page\/N\/<\/code> URLs, which 404 on static pages. Pagination links now use a custom <code>?castio_pg=N<\/code> parameter that WordPress leaves untouched.<\/li>\n<li><strong>Fixed wrong video count per page<\/strong> \u2013 The per-page setting now unconditionally overrides any <code>per_page<\/code> attribute hardcoded in the shortcode (e.g. <code>[castio_streams per_page=\"12\"]<\/code>), so changing the setting in admin actually takes effect.<\/li>\n<li><strong>Fixed empty pages in the listing<\/strong> \u2013 The shortcode previously asked WordPress to paginate by database row count, then filtered out streams with no video file on disk \u2014 producing pages with zero visible videos. It now fetches all IDs first, filters by disk presence, and paginates the filtered list, so every page is correctly populated.<\/li>\n<li><strong>New \"Videos per page\" setting<\/strong> \u2013 Added a configurable number under Settings \u2192 Pages (default: 8). Controls how many videos appear per page on the public Videos listing.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<p>\ud83d\ude80 <strong>Major update: payments, Gutenberg, and UX improvements<\/strong><\/p>\n\n<p>\ud83d\udcb3 <strong>PayPal Paywall (NEW)<\/strong>\nAccept payments via PayPal in addition to Stripe.\nSecure redirect flow (Orders API v2) \u2014 no webhooks required.<\/p>\n\n<p>\ud83e\uddf1 <strong>Gutenberg Blocks (NEW)<\/strong>\n4 native blocks to embed streaming features:\n- Streams Grid\n- Live Stream\n- Stream Viewer\n- My Videos<\/p>\n\n<p>Fully dynamic with settings in the block editor.<\/p>\n\n<p>\ud83d\udcda <strong>FAQ redesign<\/strong>\nNew responsive 2-column layout for better readability.<\/p>\n\n<p>\ud83c\udf9e\ufe0f <strong>Animated plugin icon<\/strong>\nImproved visibility in WordPress plugin search results.<\/p>\n\n<h4>1.1.0<\/h4>\n\n<p><strong>New features<\/strong><\/p>\n\n<ul>\n<li><strong>Video preview on stream edit page<\/strong> \u2013 A \"Video Preview\" meta box now appears on the stream edit screen (<code>castio_stream<\/code> post type). It uses hls.js to play the recorded VOD (<code>vod.m3u8<\/code>) or live playlist (<code>index.m3u8<\/code>) with poster image support, so editors can watch the video directly from the WordPress admin without leaving the page.<\/li>\n<li><strong>Vertical resize bar between video and chat<\/strong> \u2013 A draggable handle between the video player and the chat panel lets viewers adjust the height split on the fly. Supports both mouse and touch (mobile).<\/li>\n<li><strong>Smart scroll with new-message notification<\/strong> \u2013 When a viewer scrolls up to read earlier messages, incoming messages no longer force the chat to jump to the bottom. A \"\u25bc N new messages\" pill appears instead; clicking it scrolls back to the latest message.<\/li>\n<li><strong>User count on toggle button<\/strong> \u2013 The \"Show\/Hide Users\" button now displays the live connected-user count, e.g. \"Hide Users (4)\".<\/li>\n<li><strong>Support ticket shortcut on FAQ page<\/strong> \u2013 A prominent button on the FAQ admin page opens <code>https:\/\/castio.live\/support\/<\/code> with the admin email, domain, and license key pre-filled as query parameters for faster support authentication.<\/li>\n<li><strong>Video preview excluded from stream listing<\/strong> \u2013 The <code>[castio_streams]<\/code> shortcode now silently skips any stream post that has no recorded video on disk (<code>vod.m3u8<\/code> or <code>index.m3u8<\/code> absent), keeping the public listing clean.<\/li>\n<\/ul>\n\n<p><strong>Freemium model changes<\/strong><\/p>\n\n<ul>\n<li><strong>Chat is now free<\/strong> \u2013 Live chat is available on all plans, including the free (unlicensed) plan. The \"Allow Chat (Premium)\" label and disabled state have been removed.<\/li>\n<li><strong>Chat moderation is Premium<\/strong> \u2013 Ban, unban, and delete-message controls now require an active premium license. Non-premium admins see a contextual upgrade notice inside the users sidebar. All five moderation REST endpoints (<code>\/chat\/mod\/ban<\/code>, <code>\/unban<\/code>, <code>\/delete<\/code>, <code>\/banned_list<\/code>, <code>\/list<\/code>) enforce the premium check server-side.<\/li>\n<li><strong>Admin notice updated<\/strong> \u2013 The locked-features notice no longer lists \"Allow Chat\"; it now lists \"Chat Moderation (ban \/ delete)\" and notes that chat is free.<\/li>\n<\/ul>\n\n<p><strong>UX &amp; UI improvements<\/strong><\/p>\n\n<ul>\n<li><strong>Emoji picker overhaul<\/strong> \u2013 Expanded from 8 to 32 emojis across faces, hand gestures, and symbols. The picker now uses <code>position: fixed<\/code> (appended to <code>&lt;body&gt;<\/code>) so it renders above the video element on all browsers and devices, escaping any <code>overflow: hidden<\/code> clipping. Position is calculated from the button's bounding rect and clamped to stay fully within the viewport. On mobile (\u2264480 px) columns reduce from 8 to 6 to prevent overflow.<\/li>\n<li><strong>Chat form buttons<\/strong> \u2013 All chat buttons now have a white background for a lighter look; the Send button retains a dark style to stay visually distinct.<\/li>\n<li><strong>Mobile users panel full-width<\/strong> \u2013 On screens \u2264640 px, opening the users panel makes it take the full width of the chat area (messages are hidden), providing a proper mobile experience.<\/li>\n<li><strong>Admin cannot ban themselves<\/strong> \u2013 Both the sidebar ban button and the per-message ban button now detect when the target name matches the admin's own username and disable the action silently.<\/li>\n<\/ul>\n\n<p><strong>License page improvements<\/strong><\/p>\n\n<ul>\n<li>Active license badge is now a prominent green pill with a checkmark (\u2713 Active) instead of plain colored text.<\/li>\n<li>When the license is active, the license-key input is shown as read-only (disabled) so the key remains visible but cannot be accidentally edited.<\/li>\n<li>The \"Purchase Premium\" button is hidden when the license is active.<\/li>\n<li>The \"Save &amp; Verify\" button is always visible regardless of license status.<\/li>\n<\/ul>\n\n<p><strong>Admin page (<code>?page=castio_live<\/code>) improvements<\/strong><\/p>\n\n<ul>\n<li>The \"Description\" fieldset legend renamed to \"About this stream\" for clearer phrasing.<\/li>\n<li>The Invitations block moved to appear directly above the \"About this stream\" block.<\/li>\n<li>\"Allow Chat\" checkbox is always enabled; the disabled\/Premium state is removed.<\/li>\n<\/ul>\n\n<p><strong>Bug fixes<\/strong><\/p>\n\n<ul>\n<li>Fixed emoji popup appearing behind the <code>&lt;video&gt;<\/code> element on mobile browsers (hardware-composited video layer issue) by relocating the popup to <code>&lt;body&gt;<\/code> with <code>position: fixed<\/code>.<\/li>\n<li>Fixed emoji popup overflowing off-screen edges; popup now measures its own rendered size before positioning and clamps to the viewport with a 6 px margin on all sides.<\/li>\n<li>Fixed <code>can_moderate<\/code> being passed as <code>1<\/code> for admins without a premium license.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<p>Initial public release.<\/p>","raw_excerpt":"WordPress streaming plugin with HLS, real-time chat, PayPal &amp; Stripe paywall, and Gutenberg blocks. No OBS, no RTMP.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/270796","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=270796"}],"author":[{"embeddable":true,"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/proxymis"}],"wp:attachment":[{"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=270796"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=270796"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=270796"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=270796"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=270796"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=270796"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}