{"id":291125,"date":"2026-06-10T08:57:47","date_gmt":"2026-06-10T08:57:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/instaread\/"},"modified":"2026-06-10T08:57:31","modified_gmt":"2026-06-10T08:57:31","slug":"instaread-audio-player","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/instaread-audio-player\/","author":23467457,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.0","requires":"5.0","requires_php":"7.0","requires_plugins":null,"header_name":"Instaread Audio Player \u2014 Text-to-Speech & Article-to-Audio","header_author":"Instaread","header_description":"Adds the Instaread AI-powered audio player to your posts, letting readers listen to your articles in natural-sounding voices.","assets_banners_color":"","last_updated":"2026-06-10 08:57:31","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/instaread.co","rating":0,"author_block_rating":0,"active_installs":0,"downloads":30,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"instaread","date":"2026-06-10 08:57:31"}},"upgrade_notice":{"1.0.2":"<p>Clarifies the plugin is not Trialware\/Serviceware (no license\/paywall on local features), makes front-end injection admin-controlled, and adds external-service disclosure. No new external endpoints.<\/p>","1.0.1":"<p>Fixes the admin dashboard failing to load on some sites and silences PHP 8.1+ deprecation notices under WP_DEBUG.<\/p>","1.0.0":"<p>Initial release of Instaread Audio Player. Adds article-to-audio conversion with an embedded player on your posts.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3567071,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3567071,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[1953,4702,53891,16722,1449],"plugin_category":[34],"plugin_contributors":[266460],"plugin_business_model":[],"class_list":["post-291125","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-audio-player","plugin_tags-text-to-audio","plugin_tags-text-to-speech","plugin_tags-tts","plugin_category-accessibility","plugin_contributors-instaread","plugin_committers-instaread"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/instaread-audio-player\/assets\/icon-128x128.png?rev=3567071","icon_2x":"https:\/\/ps.w.org\/instaread-audio-player\/assets\/icon-256x256.png?rev=3567071","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Instaread Audio Player converts your WordPress articles, blog posts, and pages into natural-sounding audio and embeds an audio player on your content. The plugin is provided at no cost to publishers; Instaread operates on an ad-supported model, where revenue is generated through optional audio advertising and shared with the publisher.<\/p>\n\n<p>The plugin is intended for publishers who want to add an audio version of their text content to improve accessibility and offer an alternative way to consume articles.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Automatic text-to-speech conversion for posts, pages, and custom post types<\/li>\n<li>Embedded audio player with waveform visualizer<\/li>\n<li>Color and style customization to match your site's branding<\/li>\n<li>Voice library with multiple natural-sounding voices; voice cloning available on request<\/li>\n<li>Site-specific pronunciation dictionary for proper nouns and brand names<\/li>\n<li>Analytics dashboard with listener metrics<\/li>\n<li>Audio podcast feed generation for distribution to podcast platforms<\/li>\n<li>Playlist support for serialized content<\/li>\n<li>Subscribe-to-listen flow for paywalled content<\/li>\n<li>Optional ad suppression for logged-in subscribers<\/li>\n<li>Works with standard WordPress themes<\/li>\n<li>Compatible with major page builders (Elementor, Divi, Beaver Builder, Gutenberg)<\/li>\n<li>Mobile-responsive player layout<\/li>\n<li>Asynchronous player loading \u2014 does not block page rendering<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li>Install and activate the Instaread Audio Player plugin<\/li>\n<li>Connect your site through the onboarding wizard<\/li>\n<li>Choose your voice, customize the player appearance, and add the required ads.txt lines<\/li>\n<li>Submit your site for approval<\/li>\n<li>Once approved, your articles are converted to audio and the player appears on every post<\/li>\n<\/ol>\n\n<h4>Who Is This For?<\/h4>\n\n<ul>\n<li>News publishers who want to offer an audio version of their articles<\/li>\n<li>Bloggers who want to make content accessible to audio-first audiences<\/li>\n<li>Content-heavy websites looking to add audio without a separate production pipeline<\/li>\n<li>Magazine and media sites that want an audio version of their archive<\/li>\n<\/ul>\n\n<h4>Pricing and Monetization<\/h4>\n\n<p>The plugin is provided at no cost to publishers. Instaread's revenue comes from optional audio advertising played within the audio stream; publishers receive a share of that revenue.<\/p>\n\n<h3>Configuration Guide<\/h3>\n\n<h4>Admin Dashboard<\/h4>\n\n<p>After activation, the <strong>Instaread<\/strong> menu appears in the WordPress admin sidebar. All settings are managed through a locally-rendered admin interface \u2014 no iframes, no external page loads in the admin.<\/p>\n\n<h4>Step 1 \u2014 Register Your Site<\/h4>\n\n<p>Fill in:\n* <strong>Website Name<\/strong> \u2014 your publication name\n* <strong>Homepage URL<\/strong> \u2014 your site's root URL (e.g. https:\/\/example.com)\n* <strong>Email Address<\/strong> \u2014 for account notifications<\/p>\n\n<h4>Step 2 \u2014 Choose a Voice<\/h4>\n\n<ul>\n<li>Browse the voice library and click the play button to preview any voice<\/li>\n<li>Select one or more voices \u2014 the system will alternate between them<\/li>\n<li>Browse the available voices and choose the ones that best fit your publication<\/li>\n<\/ul>\n\n<h4>Step 3 \u2014 Configure the Player<\/h4>\n\n<ul>\n<li><strong>Player Design<\/strong>: Choose from Acoustic Player (waveform visualizer), Compact Acoustic, or Compact<\/li>\n<li><strong>Player Color<\/strong>: Set the primary accent color to match your branding<\/li>\n<li><strong>Player Label<\/strong>: Defaults to \"Listen to this article\" \u2014 customize as needed<\/li>\n<li><strong>Waveform Colors<\/strong>, <strong>Timestamps Color<\/strong>, and <strong>Advertisement Text<\/strong> are available depending on design<\/li>\n<li>A live preview updates instantly as you change settings \u2014 no need to save first<\/li>\n<\/ul>\n\n<h4>Step 4 \u2014 Set Player Position<\/h4>\n\n<ul>\n<li><strong>Default Position<\/strong> (recommended): Player is injected above <code>.entry-content<\/code> automatically<\/li>\n<li><strong>Custom Position<\/strong>: Enter a CSS selector (e.g. <code>.article-body<\/code>) and choose above or below<\/li>\n<\/ul>\n\n<h4>Step 5 \u2014 Submit for Approval<\/h4>\n\n<p>Click <strong>Submit for Approval<\/strong>. You will be taken to a confirmation screen that shows:\n* Your submission status (pending \u2192 accepted)\n* The <strong>ads.txt content<\/strong> you must add to your domain<\/p>\n\n<h4>Step 6 \u2014 Add ads.txt<\/h4>\n\n<p>Instaread requires ads.txt entries to serve audio ads. Add the provided lines to your domain's <code>\/ads.txt<\/code> file. You can:\n* Edit the file manually at <code>https:\/\/yourdomain.com\/ads.txt<\/code>\n* Use the free <strong>Ads.txt Manager<\/strong> WordPress plugin (recommended)<\/p>\n\n<p>The confirmation screen shows a live verification indicator \u2014 green when detected correctly.<\/p>\n\n<h4>Step 7 \u2014 Approval and Go-Live<\/h4>\n\n<p>Once Instaread verifies your ads.txt and approves your site, audio generation begins automatically. New posts are converted within minutes of publishing. Your full archive is also converted at no additional cost.<\/p>\n\n<p>Approval typically happens within a few hours of submission. After approval, additional settings pages unlock in the admin sidebar:\n* <strong>Voice Selection<\/strong> \u2014 change or add voices\n* <strong>Audio Player<\/strong> \u2014 update player design and colors\n* <strong>Position<\/strong> \u2014 change player placement\n* <strong>Manage Posts<\/strong> \u2014 include\/exclude posts by date or category\n* <strong>Pronunciation<\/strong> \u2014 add custom pronunciations for brand names or proper nouns\n* <strong>Ads<\/strong> \u2014 view and copy your ads.txt configuration\n* <strong>Analytics<\/strong> \u2014 view listener metrics (plays, duration, geography)<\/p>\n\n<h3>Testing the Plugin<\/h3>\n\n<h4>For WordPress.org Reviewers<\/h4>\n\n<p>The plugin has two distinct phases: <strong>before approval<\/strong> (configuration only) and <strong>after approval<\/strong> (player active on posts).<\/p>\n\n<p><strong>To test the admin interface:<\/strong><\/p>\n\n<ol>\n<li>Install and activate the plugin<\/li>\n<li>Click <strong>Instaread<\/strong> in the admin sidebar<\/li>\n<li>You will see the setup wizard \u2014 fill in any website name, URL, and email to explore the interface<\/li>\n<li>Use the voice library to preview voices (click the play button next to any voice)<\/li>\n<li>Change the player design, colors, and label \u2014 the live preview updates instantly without saving<\/li>\n<li>The admin UI is a locally-rendered React application \u2014 no iframes, no external page loads in the admin<\/li>\n<\/ol>\n\n<p><strong>To test with a live account:<\/strong><\/p>\n\n<ol>\n<li>Complete the registration form with real site details and submit<\/li>\n<li>Add the provided ads.txt lines to your domain<\/li>\n<li>After submitting, visit any post on the front end \u2014 a player placeholder (\"Audio coming soon\") appears immediately on all posts, confirming the plugin is injecting correctly<\/li>\n<li>Once Instaread approves your site, audio is generated for your articles and the placeholder is replaced with a fully playable audio player<\/li>\n<li>Click play to hear the article read aloud<\/li>\n<\/ol>\n\n<p><strong>Note for reviewers:<\/strong> The player widget is injected on posts immediately after activation \u2014 you will see it on the front end right away showing \"Audio coming soon\". Audio generation requires a one-time Instaread approval (to prevent abuse of TTS resources). The admin UI, player preview, voice previews, and all settings pages are fully functional without approval.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>Instaread Audio Player connects to external services operated by Instaread (https:\/\/instaread.co).\nBy installing this plugin, you agree to the Instaread Terms of Service and Privacy Policy.<\/p>\n\n<h4>External Service Disclosure<\/h4>\n\n<p>This plugin connects to Instaread's external audio service. Instaread's hosted service performs article-to-audio processing, audio hosting, player delivery, ad serving, analytics, and revenue-share reporting. These functions are not performed locally by the WordPress plugin.\nWhen enabled by the site administrator, the plugin may send article URLs, article text, site domain, and basic playback\/ad event data to Instaread for the purpose of generating audio, serving the audio player, measuring usage, and supporting ad monetization.\nUse of the Instaread service is subject to Instaread's Terms of Use (https:\/\/instaread.co\/terms).<\/p>\n\n<h4>Instaread API (https:\/\/api.instaread.co)<\/h4>\n\n<p>Purpose: Plugin registration, hourly settings sync, activation\/deactivation\/deletion lifecycle signals, and voice metadata lookups (name, gender, accent) for voices selected by the site administrator.\nData sent: Site publication identifier, website URL, and (for voice lookups) the voice identifier the administrator selected. No reader, author, or post content is sent to this endpoint.\nTerms of Service: https:\/\/instaread.co\/terms\nPrivacy Policy: https:\/\/instaread.co\/privacy<\/p>\n\n<h4>Instaread Player API (https:\/\/player-api.instaread.co)<\/h4>\n\n<p>Purpose: Submits article content for text-to-speech conversion each time a published post is saved.\nData sent: Article title, author, publication date, body content (plain text), article URL, featured image URL, and your site's publication identifier.\nTerms of Service: https:\/\/instaread.co\/terms\nPrivacy Policy: https:\/\/instaread.co\/privacy<\/p>\n\n<h4>Amazon S3 \u2014 Instaread Player Service (https:\/\/s3.us-east-1.amazonaws.com\/instaread-scripts\/)<\/h4>\n\n<p>Purpose: Delivers the Instaread audio player JavaScript as part of the Instaread service. This\nis not an offloaded static asset \u2014 it is a per-publisher service bundle generated and maintained\nserver-side by Instaread. It cannot be included inside the plugin ZIP because:<\/p>\n\n<ol>\n<li>Every publisher receives a unique bundle compiled for their specific Instaread account.<\/li>\n<li>The bundle contains publication-specific configuration, monetization logic, voice model\nbindings, and audio delivery settings that are updated server-side without requiring a\nplugin update.<\/li>\n<li>There is no single file to bundle \u2014 the URL path (instaread.{publication}.js) is unique\nper publisher and resolved at runtime using the configured publication identifier.<\/li>\n<\/ol>\n\n<p>This is the same model used by services such as Disqus, Wistia, and Mailchimp, which deliver\naccount-specific JavaScript bundles from their own servers. Instaread operates as a managed\ntext-to-speech and audio monetisation service; the JavaScript delivery is an integral part of\nthat service, not a convenience offload.<\/p>\n\n<p>No personal user data is transmitted to this endpoint.\nAmazon Web Services Privacy Policy: https:\/\/aws.amazon.com\/privacy\/<\/p>\n\n<h4>Data Sent Summary<\/h4>\n\n<ul>\n<li>Plugin activation: site URL and publication ID \u2192 api.instaread.co<\/li>\n<li>Post publish\/update: article title, author, content, URL, image \u2192 player-api.instaread.co<\/li>\n<li>Hourly sync: publication ID \u2192 api.instaread.co<\/li>\n<li>Voice metadata lookup (on admin save of selected voices): voice identifier \u2192 api.instaread.co<\/li>\n<li>Plugin deactivation\/deletion: publication ID \u2192 api.instaread.co<\/li>\n<\/ul>\n\n<p>Instaread does not use your content to train AI models. You retain all intellectual property rights.\nSee https:\/\/instaread.co\/privacy for full details.<\/p>\n\n<h3>Source Code<\/h3>\n\n<p>The admin dashboard is a React (TypeScript) application compiled with Vite. To comply with the WordPress.org plugin directory's human-readable code requirement, the full unminified source is included in this distribution alongside the compiled bundle:<\/p>\n\n<ul>\n<li>Compiled bundle (loaded by the plugin): react-app\/dist\/js\/index.js<\/li>\n<li>Unminified source: react-app\/src\/<\/li>\n<li>Build configuration: react-app\/vite.config.ts, react-app\/package.json, react-app\/tsconfig.json<\/li>\n<\/ul>\n\n<p>To rebuild the bundle from source:<\/p>\n\n<pre><code>cd react-app &amp;&amp; npm install &amp;&amp; npm run build\n<\/code><\/pre>\n\n<p>This regenerates react-app\/dist\/ with the same compiler settings used to ship the distribution (Vite + esbuild minification, console\/debugger stripped).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>instaread-audio-player<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install directly through the WordPress plugin installer by searching for \"Instaread Audio Player\"<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to <strong>Instaread<\/strong> in the WordPress admin sidebar \u2014 you will see the setup wizard<\/li>\n<li>Fill in your <strong>Website Name<\/strong>, <strong>Homepage URL<\/strong>, and <strong>Email Address<\/strong><\/li>\n<li>Select one or more <strong>voices<\/strong> from the voice library (American English voices are pre-selected by default \u2014 you can preview any voice before choosing)<\/li>\n<li>Choose your <strong>Player Design<\/strong> (Acoustic Player is recommended), set your <strong>Player Color<\/strong>, and customize the player label<\/li>\n<li>Set the <strong>Player Position<\/strong> \u2014 \"Default Position\" places the player above article content automatically; \"Custom Position\" lets you target a specific CSS selector<\/li>\n<li>Configure <strong>Manage Posts<\/strong> \u2014 choose to enable audio on all posts, filter by date range, or exclude specific categories\/URLs<\/li>\n<li>Click <strong>Submit for Approval<\/strong> \u2014 your settings are sent to Instaread for review<\/li>\n<li><strong>Add the ads.txt lines<\/strong> shown on the confirmation page to your domain's <code>\/ads.txt<\/code> file (this is required before your account can be approved)<\/li>\n<li>Once Instaread approves your site, audio is generated for your articles automatically and the player appears on every post<\/li>\n<\/ol>\n\n<h4>Minimum Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.0 or higher<\/li>\n<li>PHP 7.0 or higher<\/li>\n<li>An active internet connection (audio is generated via Instaread's cloud service)<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"why%20does%20the%20player%20show%20%22audio%20coming%20soon%22%20on%20my%20posts%3F\"><h3>Why does the player show \"Audio coming soon\" on my posts?<\/h3><\/dt>\n<dd><p>After submitting the registration form, a player placeholder appears on all your posts immediately. The placeholder changes to a fully playable audio player once Instaread approves your site and generates the audio files \u2014 this typically happens within a few hours of submission. No additional steps are needed on your end after submission.<\/p><\/dd>\n<dt id=\"how%20much%20does%20the%20plugin%20cost%3F\"><h3>How much does the plugin cost?<\/h3><\/dt>\n<dd><p>The plugin is provided at no cost to publishers. Instaread generates revenue through optional audio advertising and shares a portion with the publisher.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20api%20key%20or%20external%20account%3F\"><h3>Do I need an API key or external account?<\/h3><\/dt>\n<dd><p>The plugin handles onboarding for you. Simply install, activate, and follow the setup wizard to connect your site.<\/p><\/dd>\n<dt id=\"what%20voices%20are%20available%3F\"><h3>What voices are available?<\/h3><\/dt>\n<dd><p>Instaread offers a library of natural-sounding AI voices across multiple languages and accents. Voice cloning is also available on request.<\/p><\/dd>\n<dt id=\"how%20quickly%20are%20articles%20converted%20to%20audio%3F\"><h3>How quickly are articles converted to audio?<\/h3><\/dt>\n<dd><p>New content is typically converted within minutes of publishing. When you first install the plugin, your existing article archive is also converted.<\/p><\/dd>\n<dt id=\"will%20this%20slow%20down%20my%20website%3F\"><h3>Will this slow down my website?<\/h3><\/dt>\n<dd><p>The audio player loads asynchronously after the page has rendered, so it does not block page rendering.<\/p><\/dd>\n<dt id=\"does%20instaread%20work%20with%20my%20theme%3F\"><h3>Does Instaread work with my theme?<\/h3><\/dt>\n<dd><p>The player is designed to work with standard WordPress themes, including themes built with Elementor, Divi, Beaver Builder, and the default block editor.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20player%27s%20appearance%3F\"><h3>Can I customize the player's appearance?<\/h3><\/dt>\n<dd><p>Yes. You can change colors, select from multiple player styles, and position the player where you want on the page.<\/p><\/dd>\n<dt id=\"i%20have%20paywalled%20content.%20can%20i%20restrict%20audio%20access%3F\"><h3>I have paywalled content. Can I restrict audio access?<\/h3><\/dt>\n<dd><p>Yes. Instaread offers a \"Subscribe to Listen\" feature that restricts audio playback to subscribers or logged-in users.<\/p><\/dd>\n<dt id=\"can%20i%20suppress%20ads%20for%20paying%20subscribers%3F\"><h3>Can I suppress ads for paying subscribers?<\/h3><\/dt>\n<dd><p>Yes. Audio ads can be suppressed for logged-in subscribers so they get an ad-free listening experience.<\/p><\/dd>\n<dt id=\"who%20owns%20the%20audio%20files%3F\"><h3>Who owns the audio files?<\/h3><\/dt>\n<dd><p>You do. Instaread stores and serves the files, but you retain full ownership. If you cancel the service, your audio files are deleted from our servers.<\/p><\/dd>\n<dt id=\"do%20you%20use%20my%20content%20to%20train%20ai%20models%3F\"><h3>Do you use my content to train AI models?<\/h3><\/dt>\n<dd><p>No. You retain all intellectual property rights. Instaread does not use your content to train AI or machine learning models.<\/p><\/dd>\n<dt id=\"does%20this%20help%20with%20accessibility%20compliance%3F\"><h3>Does this help with accessibility compliance?<\/h3><\/dt>\n<dd><p>Adding an audio version of your articles can help meet WCAG and ADA accessibility guidelines by providing an alternative way to consume content for users with visual impairments or reading difficulties.<\/p><\/dd>\n<dt id=\"can%20i%20distribute%20my%20audio%20as%20a%20podcast%3F\"><h3>Can I distribute my audio as a podcast?<\/h3><\/dt>\n<dd><p>Yes. Instaread can generate a podcast RSS feed from your audio content, allowing you to distribute it to Apple Podcasts, Spotify, Google Podcasts, and other platforms.<\/p><\/dd>\n<dt id=\"do%20you%20provide%20analytics%3F\"><h3>Do you provide analytics?<\/h3><\/dt>\n<dd><p>Yes. You get access to a detailed analytics dashboard with listener counts, play duration, geographic data, and more.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Clarified that the plugin is not Trialware\/Serviceware: there is no license key check, no paid unlock, and no local plugin feature is disabled behind a payment, trial, quota, or license. The plugin connects to Instaread's external service, which performs the core functionality (article-to-audio processing, audio hosting, player delivery, ad serving, revenue-share reporting) outside of WordPress.<\/li>\n<li>Removed \"Submit for approval\" wording that could imply local plugin functionality is locked; the call-to-action is now \"Connect to Instaread\".<\/li>\n<li>Removed payment, revenue-share, and marketplace-style terms from the plugin settings screen.<\/li>\n<li>External services: added an \"External Service Disclosure\" section to readme.txt and an in-dashboard authorization notice describing what data is sent to Instaread and why. No new endpoints were added.<\/li>\n<li>Front-end injection is now fully admin-controlled: the partner script, wrapper markup, and player element are injected only when the site administrator enables the \"Show Audio coming soon\" setting; otherwise post content is returned unchanged.<\/li>\n<li>Layout stability: when shown, the player slot reserves a fixed per-design min-height (responsive desktop\/mobile) to avoid cumulative layout shift; the per-post loader script is emitted inline alongside its slot for reliable loading.<\/li>\n<li>Voice selection: removed promotional tier\/pricing wording from the admin UI.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Distribution: include the unminified React\/TypeScript source (react-app\/src\/, vite.config.ts, package.json, tsconfig.json) alongside the compiled bundle, so the plugin ships with a human-readable counterpart to the minified admin asset.<\/li>\n<li>Documentation: added a \"Source Code\" section to readme.txt with the build command and pointers to the source files.<\/li>\n<li>External services: disclosed the voice-metadata lookup endpoint (api.instaread.co \/v1\/wordpress\/admin\/voices\/{id}) used when administrators select voices in the dashboard.<\/li>\n<li>Admin: load the React admin bundle as an ES module so the dashboard mounts correctly across modern browsers (resolves \"Loading Instaread admin\u2026\" never disappearing on some sites).<\/li>\n<li>Admin: surface a clear error notice if the bundled assets are missing, instead of leaving an indefinite loading state.<\/li>\n<li>PHP 8.1+ compatibility: cast nullable post fields before string functions (strtotime, trim, preg_split, rtrim) to silence deprecation notices under WP_DEBUG.<\/li>\n<li>Hardened API response handling in voice sync against non-array payloads (array_merge type errors).<\/li>\n<li>Defensive guards around DOMXPath query results in custom-position injection.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Automatic article-to-audio conversion<\/li>\n<li>Customizable embedded audio player with waveform visualizer<\/li>\n<li>Voice selection and voice cloning support<\/li>\n<li>Audio ad monetization with publisher revenue share<\/li>\n<li>Archive conversion on activation<\/li>\n<li>Analytics dashboard<\/li>\n<li>WCAG\/ADA accessibility support<\/li>\n<li>Compatible with major page builders and themes<\/li>\n<\/ul>","raw_excerpt":"Convert articles, blog posts, and pages into natural-sounding audio. Improves accessibility and supports optional audio advertising.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/291125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=291125"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/instaread"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=291125"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=291125"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=291125"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=291125"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=291125"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=291125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}