{"id":283249,"date":"2026-05-24T09:02:12","date_gmt":"2026-05-24T09:02:12","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/podcastmaker\/"},"modified":"2026-05-28T23:13:11","modified_gmt":"2026-05-28T23:13:11","slug":"quikvox-ai","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/quikvox-ai\/","author":23450892,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.13","stable_tag":"1.0.13","tested":"7.0","requires":"5.8","requires_php":"","requires_plugins":null,"header_name":"QuikVox AI","header_author":"takeshiue","header_description":"Generate podcast scripts from WordPress posts using Google Gemini AI.","assets_banners_color":"105b82","last_updated":"2026-05-28 23:13:11","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/github.com\/takeshiue","header_plugin_uri":"","header_author_uri":"https:\/\/github.com\/takeshiue","rating":0,"author_block_rating":0,"active_installs":0,"downloads":155,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.8.2":{"tag":"0.8.2","author":"takeshiue","date":"2026-05-24 09:29:24"},"1.0.10":{"tag":"1.0.10","author":"takeshiue","date":"2026-05-25 01:04:20"},"1.0.11":{"tag":"1.0.11","author":"takeshiue","date":"2026-05-28 13:58:44"},"1.0.12":{"tag":"1.0.12","author":"takeshiue","date":"2026-05-28 15:02:04"},"1.0.13":{"tag":"1.0.13","author":"takeshiue","date":"2026-05-28 23:13:11"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3546033,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3546033,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3546033,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.8.2","1.0.10","1.0.11","1.0.12","1.0.13"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"<strong>Dashboard Overivew<\/strong>: Manage your podcasting workflow and view current API status.","2":"<strong>Script Editor<\/strong>: Generate and refine your script with side-by-side post content.","3":"<strong>Voice Settings<\/strong>: Choose from a wide variety of AI voices with gender and character icons.","4":"<strong>Settings Page<\/strong>: Easily configure your Google Gemini API keys and default models."}},"plugin_section":[],"plugin_tags":[2353,452,238,16722,1449],"plugin_category":[50,56],"plugin_contributors":[264189],"plugin_business_model":[],"class_list":["post-283249","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-audio","plugin_tags-podcast","plugin_tags-text-to-speech","plugin_tags-tts","plugin_category-media","plugin_category-social-and-sharing","plugin_contributors-takeshiue","plugin_committers-takeshiue"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/quikvox-ai\/assets\/icon-128x128.png?rev=3546033","icon_2x":"https:\/\/ps.w.org\/quikvox-ai\/assets\/icon-256x256.png?rev=3546033","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>QuikVox AI<\/strong> is a powerful WordPress assistant designed to streamline your podcast production workflow. By leveraging the advanced capabilities of Google Gemini AI, it allows you to generate high-quality scripts from your existing content and convert them into natural-sounding audio\u2014all without leaving your WordPress dashboard.<\/p>\n\n<p>Whether you are an AI news blogger or a content creator looking to expand into audio, QuikVox AI provides the tools to automate the tedious parts of scriptwriting and voice generation.<\/p>\n\n<h3>Key Features<\/h3>\n\n<ul>\n<li><strong>AI-Powered Script Generation<\/strong>: Automatically extract content from your posts\/pages and generate professional podcast scripts using Google Gemini (Flash\/Pro\/Flash-Lite models).<\/li>\n<li><strong>Natural AI Voices<\/strong>: Convert scripts into audio using the latest Gemini 2.5 TTS (Generative Audio) models. Choose from 15+ high-quality voices with distinct characteristics.<\/li>\n<li><strong>Multilingual Support<\/strong>: Generate content in 5 major languages: Japanese, English, Chinese (Simplified\/Traditional), and Korean.<\/li>\n<li><strong>Prompt Management<\/strong>: Save and manage custom prompt sets for different podcast styles. Includes an AI translation tool to help you expand your prompts globally.<\/li>\n<li><strong>Seamless Media Integration<\/strong>: Generated audio files are automatically saved to your WordPress Media Library and can be embedded directly into your articles via a simple audio player.<\/li>\n<li><strong>Post &amp; Page Support<\/strong>: Works with both standard Posts and Pages, allowing you to turn any content into audio.<\/li>\n<\/ul>\n\n<h3>Advanced Voice Selection<\/h3>\n\n<p>Unlike basic TTS plugins, QuikVox AI provides detailed metadata for each voice:\n*   <strong>Gender Identification<\/strong>: Clear male\/female labels.\n*   <strong>Tone Characteristics<\/strong>: Voices are tagged with their unique style (e.g., \"Warm, deep, informative\" or \"Soft, narrating\").\n*   <strong>Dynamic UI<\/strong>: The editor dropdown shows icons and descriptions so you can find the perfect voice for your persona.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to an external service:<\/p>\n\n<ol>\n<li>Google Gemini API<\/li>\n<\/ol>\n\n<p>- Purpose: Generate podcast scripts from post content and convert text to speech\n- Data sent: Post content and optional user prompts\n- Service provider: Google\n- Privacy Policy: https:\/\/policies.google.com\/privacy\n- Terms of Service: https:\/\/policies.google.com\/terms<\/p>\n\n<p>Users must provide their own API key to use this feature. Script and voice generation data is sent only when the user triggers generation actions.<\/p>\n\n<ol>\n<li>QuikVox AI License Verification Service<\/li>\n<\/ol>\n\n<p>- Endpoint: https:\/\/quikvox-ai.com\/license\/verify\n- Purpose: Verify license keys and refresh plan\/status information\n- Data sent: License key, site URL, home URL, and plugin version\n- Service provider: QuikVox AI\n- Triggered only when:\n  - an administrator saves or activates a license key\n  - an administrator clicks the \"License Recheck\" button\n  - the QuikVox AI Settings page is opened and the scheduled next check time has passed<\/p>\n\n<p>No license verification request is sent from normal front-end page views, post views, or general admin screens.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>quikvox-ai<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Navigate to <strong>Settings &gt; QuikVox AI<\/strong> to enter your <strong>Google Gemini API Key<\/strong> and configure the main plugin settings.<\/li>\n<li>Use the <strong>QuikVox AI<\/strong> top-level menu for <strong>Talk Scripts<\/strong> and <strong>Audio Analytics<\/strong>.<\/li>\n<li>Optionally, configure Your <strong>Voice Generation API Key<\/strong> to enable TTS.<\/li>\n<li>Start creating by clicking \"Create Podcast Script\" in the sidebar of any Post or Page editor.<\/li>\n<li>If you need to issue a test license, run <code>scripts\/issue-license.ps1<\/code> from PowerShell and provide <code>LICENSE_SIGNING_SECRET<\/code> at runtime. You can also pass <code>-IssuedDate<\/code> to set the issue date explicitly. The script generates a Business or Pro license key without storing the secret in the repository.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20get%20a%20gemini%20api%20key%3F\"><h3>Where do I get a Gemini API Key?<\/h3><\/dt>\n<dd><p>You can obtain an API key from the <a href=\"https:\/\/aistudio.google.com\/\">Google AI Studio<\/a>.<\/p><\/dd>\n<dt id=\"are%20the%20audio%20files%20hosted%20locally%3F\"><h3>Are the audio files hosted locally?<\/h3><\/dt>\n<dd><p>Yes, generated audio files (WAV format) are saved directly into your <code>wp-content\/uploads<\/code> directory and registered in your Media Library for full ownership.<\/p><\/dd>\n<dt id=\"does%20it%20support%20multi-speaker%20podcasts%3F\"><h3>Does it support multi-speaker podcasts?<\/h3><\/dt>\n<dd><p>The current version supports single-speaker script generation. Multi-speaker support (dialogue) is available as a Pro feature.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Reworked the admin menu structure so QuikVox AI appears as a top-level menu with Talk Scripts and Audio Analytics beneath it.<\/li>\n<li>Kept the main settings page under the WordPress Settings menu and aligned the admin UI with WordPress conventions.<\/li>\n<li>Improved the admin settings screen by removing inline JavaScript from core controls and tightening settings sanitization.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Revised Smart Tone admin UI to match Prompt Sets behavior more closely.<\/li>\n<li>Restored default-star indicators in the Smart Tone list and removed the separate default summary cards.<\/li>\n<li>Simplified Smart Tone row actions so built-in styles use View\/Copy and custom styles use Edit\/Delete\/Copy as appropriate.<\/li>\n<li>Added read-only Smart Tone view mode and blocked direct edit\/delete operations for built-in styles.<\/li>\n<li>Documented the current built-in single-speaker Prompt Sets in docs\/prompt-sets-single-ja.md.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Reworked the workflow sidebar and modal layout to clarify selection, generation, and embedding steps.<\/li>\n<li>Added and reorganized planning docs for roadmap, task tracking, and release context.<\/li>\n<li>Removed generated <strong>pycache<\/strong> artifacts from the repository and ignored future Python cache files.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Refined the script generator sidebar UI for single and multi-speaker workflows.<\/li>\n<li>Simplified generation progress popups for script and voice creation.<\/li>\n<li>Added docs for mockup organization and audio chunk loudness tracking.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Security: Masked License Key input field with eye icon toggle to prevent credential exposure.<\/li>\n<li>Security: Masked Service Account JSON (Vertex AI) with blur filter and eye icon toggle.<\/li>\n<li>Security: Masked Google AI Studio Script Generation API Key with eye icon toggle.<\/li>\n<li>Security: Masked Google AI Studio Voice Generation API Key with eye icon toggle.<\/li>\n<li>Fix: Default Gemini model fallback updated from deprecated <code>gemini-pro<\/code> to <code>gemini-2.5-pro<\/code> to resolve 404 errors on script generation.<\/li>\n<li>Fix: Sidebar model fallback list updated to current Gemini 2.5 series.<\/li>\n<li>Fix: Plugin Check \u2014 NonceVerification warnings resolved for redirect notification flags.<\/li>\n<li>Fix: Plugin Check \u2014 Added <code>wp_unslash()<\/code> and sanitization to Smart Tone config and auth JSON inputs.<\/li>\n<li>Fix: Plugin Check \u2014 Wrapped <code>error_log()<\/code> in <code>WP_DEBUG<\/code> guard (Vertex AI error handler).<\/li>\n<li>Fix: Plugin Check \u2014 Replaced <code>esc_url()<\/code> with <code>esc_url_raw()<\/code> for input sanitization in audio URL handler.<\/li>\n<li>Fix: Plugin Check \u2014 <code>stable_tag_mismatch<\/code> resolved.<\/li>\n<li>Fix: Plugin Check \u2014 <code>plugin_header_nonexistent_domain_path<\/code> resolved by creating <code>languages\/<\/code> directory.<\/li>\n<li>Chore: Added <code>.distignore<\/code> to exclude development files from distribution packages.<\/li>\n<li>UI: Updated official website link to https:\/\/quikvox-ai.com\/.<\/li>\n<li>UI: Removed redundant \"Uses Global Endpoint\" label from Vertex AI model selector (behavior is automatic).<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Security: Removed internal API response body from client-facing error messages (Vertex AI TTS and Gemini API).<\/li>\n<li>Security: Added model ID format validation (regex) for TTS model parameter in voice generation handler.<\/li>\n<li>Security: Applied input sanitization to Smart Tone text handler for consistency.<\/li>\n<li>Security: Fixed IDOR vulnerability by adding post read permission check before script generation.<\/li>\n<li>Security: Replaced unsafe HTML rendering pattern in React component with regex-based tag stripping.<\/li>\n<li>Security: Corrected URL escaping function to use HTML-context-appropriate method in audio insert handler.<\/li>\n<li>Security: Suppressed internal URL and model details from client-facing Vertex AI error messages.<\/li>\n<li>Security: Added Service Account JSON format validation on settings save.<\/li>\n<li>Security: Removed project_id disclosure from Vertex AI connection test AJAX response.<\/li>\n<li>UI: Switched connection test status display to textContent to prevent potential HTML injection.<\/li>\n<li>Removed debug loading log from production script bundle.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed AI Translate issue in Prompt Sets by improving Gemini 2.5\/Thinking model support.<\/li>\n<li>Implemented comprehensive API response parsing to handle thinking blocks and Markdown code fences.<\/li>\n<li>Extended API timeout to 60 seconds.<\/li>\n<li>Removed <code>response_mime_type: 'application\/json'<\/code> to avoid conflicts with newer Gemini models.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Official stable release.<\/li>\n<li>Updated plugin versioning to 1.0.0.<\/li>\n<li>Verified plan-based features and UI consistency.<\/li>\n<\/ul>\n\n<h4>0.8.1<\/h4>\n\n<ul>\n<li>(Previous entries)<\/li>\n<li>Implemented Vertex AI integration for both script and voice generation.<\/li>\n<li>Added support for Cloud Text-to-Speech via Vertex AI (MP3 output).<\/li>\n<li>Implemented text chunking for TTS to handle Gemini TTS byte limits (512 bytes) and timeout issues.<\/li>\n<li>Improved error handling with a selectable\/copyable error modal in the editor.<\/li>\n<li>Added dynamic download labels (MP3 vs WAV) in the sidebar.<\/li>\n<li>Fixed endpoint routing for Vertex AI preview models (locations\/global).<\/li>\n<\/ul>\n\n<h4>0.7.8<\/h4>\n\n<ul>\n<li>Renamed plugin to QuikVox AI (slug: quikvox-ai).<\/li>\n<li>Migrated all inline scripts\/styles to wp_enqueue (admin.js \/ admin.css).<\/li>\n<li>Fixed i18n: text domain unified to quikvox-ai and missing 2nd args added.<\/li>\n<li>Added ABSPATH guards to all PHP files.<\/li>\n<\/ul>\n\n<h4>0.7.7<\/h4>\n\n<ul>\n<li>Code consistency improvements for WordPress.org standards.<\/li>\n<\/ul>\n\n<h4>0.7.6<\/h4>\n\n<ul>\n<li>WordPress.org submission preparation.<\/li>\n<li>Removed ElevenLabs API integration (Gemini TTS only).<\/li>\n<li>Added External Services disclosure section.<\/li>\n<li>Security improvements: Enhanced nonce verification and data sanitization.<\/li>\n<li>Code cleanup for WordPress.org compliance.<\/li>\n<\/ul>\n\n<h4>0.7.5<\/h4>\n\n<ul>\n<li>Official preparation for WordPress.org directory submission.<\/li>\n<li>Updated Gemini 2.5 TTS (GA) model support.<\/li>\n<li>Added support for Gemini 1.5 Flash-Lite.<\/li>\n<li>Enhanced Voice metadata (Name, Gender, Characteristics) in UI.<\/li>\n<li>Improved buttons: Scripts can now be embedded directly under the player.<\/li>\n<li>General UI\/UX polishing for the admin settings page.<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>Initial beta release with basic script generation and TTS support.<\/li>\n<\/ul>","raw_excerpt":"Turn your WordPress posts and pages into AI-generated podcast scripts and natural TTS audio using Google Gemini.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/283249","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=283249"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/takeshiue"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=283249"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=283249"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=283249"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=283249"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=283249"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=283249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}