{"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-03-30T13:00:20","modified_gmt":"2026-03-30T13:00:20","slug":"castio-live","status":"publish","type":"plugin","link":"https:\/\/twd.wordpress.org\/plugins\/castio-live\/","author":15506312,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.2.0","stable_tag":"trunk","tested":"6.9.4","requires":"6.2","requires_php":"7.3","requires_plugins":null,"header_name":"Castio.live \u2013 WordPress Live Streaming (HLS) + Real\u2011Time 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-03-30 13:00:20","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":367,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":{"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":""},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3494613,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3494613,"resolution":"772x250","location":"assets","locale":""}},"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":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3441310,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3441310,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3441310,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3441310,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3441310,"resolution":"6","location":"assets","locale":""},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3441310,"resolution":"7","location":"assets","locale":""}},"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"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[257972,2379,17272,90867,259006],"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-chat","plugin_tags-live-streaming","plugin_tags-video-streaming","plugin_tags-wordpress-live-streaming","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>live streaming plugin for WordPress<\/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>Live streaming plugin for WordPress (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><br \/>\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<br \/>\nWebsite: https:\/\/proxymis.com<br \/>\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.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><br \/>\nAccept payments via PayPal in addition to Stripe.<br \/>\nSecure redirect flow (Orders API v2) \u2014 no webhooks required.<\/p>\n\n<p>\ud83e\uddf1 <strong>Gutenberg Blocks (NEW)<\/strong><br \/>\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><br \/>\nNew responsive 2-column layout for better readability.<\/p>\n\n<p>\ud83c\udf9e\ufe0f <strong>Animated plugin icon<\/strong><br \/>\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":"Live streaming plugin for WordPress with HLS, real-time chat, PayPal &amp; Stripe paywall, and Gutenberg blocks. No OBS, no RTMP.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/270796","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=270796"}],"author":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/proxymis"}],"wp:attachment":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=270796"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=270796"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=270796"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=270796"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=270796"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=270796"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}