{"id":343351,"date":"2026-07-24T16:26:47","date_gmt":"2026-07-24T16:26:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/audio-converter\/"},"modified":"2026-08-20T19:39:01","modified_gmt":"2026-08-20T19:39:01","slug":"nomad-pipeline-audio-to-draft","status":"publish","type":"plugin","link":"https:\/\/sa.wordpress.org\/plugins\/nomad-pipeline-audio-to-draft\/","author":7333653,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.6","stable_tag":"0.1.6","tested":"7.1","requires":"7.0","requires_php":"8.0","requires_plugins":null,"header_name":"Nomad Pipeline Audio to Draft","header_author":"Carlo Daniele","header_description":"Generate post drafts from audio in the WordPress block editor using WordPress AI connectors.","assets_banners_color":"c7cdd1","last_updated":"2026-08-20 19:39:01","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":162,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"veleno","date":"2026-07-24 16:26:12"},"0.1.6":{"tag":"0.1.6","author":"veleno","date":"2026-08-20 19:39:01"}},"upgrade_notice":{"0.1.6":"<p>Documentation and FAQ update confirming WordPress 7.1 compatibility.<\/p>","0.1.5":"<p>Simplifies token analytics display to plain total-token labels and removes prompt\/completion columns.<\/p>","0.1.4":"<p>Clarifies token analytics with clickable calculation info and removes uncertain connector-level breakdown.<\/p>","0.1.3":"<p>Adds monthly usage breakdown by connector and a tooltip marker for non-actual token totals.<\/p>","0.1.2":"<p>Adds usage analytics (sidebar + settings) and hardens audio path validation.<\/p>","0.1.1":"<p>WordPress 7.1 compatibility update with Free anti-abuse protections and safe invocation telemetry.<\/p>","0.1.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3621634,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3621634,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3621634,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3621634,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0","0.1.6"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3621634,"resolution":"1","location":"assets","locale":"","width":2264,"height":1382},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3621634,"resolution":"2","location":"assets","locale":"","width":2228,"height":1326},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3621634,"resolution":"3","location":"assets","locale":"","width":2228,"height":1328},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3621634,"resolution":"4","location":"assets","locale":"","width":2120,"height":1440},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3621634,"resolution":"5","location":"assets","locale":"","width":2130,"height":1368}},"screenshots":{"1":"Settings page with Free editorial defaults (language, tone, target length, insertion mode).","2":"Gutenberg sidebar with selected audio and Generate draft action.","3":"Current post updated with generated Gutenberg blocks (heading, paragraphs, list).","4":"Media Library modal used to pick the audio file before generation.","5":"Error message shown in the sidebar when no AI connector is configured\/available."}},"plugin_section":[],"plugin_tags":[2353,452,529,1332,148076],"plugin_category":[46,50],"plugin_contributors":[143375],"plugin_business_model":[],"class_list":["post-343351","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-audio","plugin_tags-content","plugin_tags-editor","plugin_tags-gutenberg","plugin_category-editor-and-writing","plugin_category-media","plugin_contributors-veleno","plugin_committers-veleno"],"banners":{"banner":"https:\/\/ps.w.org\/nomad-pipeline-audio-to-draft\/assets\/banner-772x250.png?rev=3621634","banner_2x":"https:\/\/ps.w.org\/nomad-pipeline-audio-to-draft\/assets\/banner-1544x500.png?rev=3621634","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/nomad-pipeline-audio-to-draft\/assets\/icon-128x128.png?rev=3621634","icon_2x":"https:\/\/ps.w.org\/nomad-pipeline-audio-to-draft\/assets\/icon-256x256.png?rev=3621634","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/nomad-pipeline-audio-to-draft\/assets\/screenshot-1.png?rev=3621634","caption":"Settings page with Free editorial defaults (language, tone, target length, insertion mode)."},{"src":"https:\/\/ps.w.org\/nomad-pipeline-audio-to-draft\/assets\/screenshot-2.png?rev=3621634","caption":"Gutenberg sidebar with selected audio and Generate draft action."},{"src":"https:\/\/ps.w.org\/nomad-pipeline-audio-to-draft\/assets\/screenshot-3.png?rev=3621634","caption":"Current post updated with generated Gutenberg blocks (heading, paragraphs, list)."},{"src":"https:\/\/ps.w.org\/nomad-pipeline-audio-to-draft\/assets\/screenshot-4.png?rev=3621634","caption":"Media Library modal used to pick the audio file before generation."},{"src":"https:\/\/ps.w.org\/nomad-pipeline-audio-to-draft\/assets\/screenshot-5.png?rev=3621634","caption":"Error message shown in the sidebar when no AI connector is configured\/available."}],"raw_content":"<!--section=description-->\n<p>Nomad Pipeline Audio to Draft helps editors turn audio notes into post drafts.<\/p>\n\n<p>Draft generation requires at least one configured WordPress AI connector. If no connector is available, the plugin can stay active but generation requests will return provider errors.<\/p>\n\n<p>Free version includes:<\/p>\n\n<ul>\n<li>Audio selection from Media Library<\/li>\n<li>Supported file types: MP3, OGG, WAV, M4A, AAC, FLAC<\/li>\n<li>Draft generation from audio (AI pipeline)<\/li>\n<li>Language, tone, and target length defaults<\/li>\n<li>Proper noun hints<\/li>\n<li>Insert mode: append or replace<\/li>\n<li>Auto-apply generated title<\/li>\n<li>Editor flow updates the current post<\/li>\n<li>WordPress 7.1 lifecycle support with anti-abuse rate limiting for ability runs<\/li>\n<li>Ability invocation telemetry hook support (safe metadata only)<\/li>\n<li>Usage counters in editor sidebar (daily\/monthly calls and token totals)<\/li>\n<li>Usage analytics section in plugin settings (daily\/monthly calls and token totals)<\/li>\n<li>Clear total-token labels (<code>token<\/code>, <code>estimated tokens<\/code>, <code>unknown tokens<\/code>)<\/li>\n<\/ul>\n\n<p>How it works:<\/p>\n\n<ol>\n<li>Open a post in the block editor.<\/li>\n<li>Open the Nomad Pipeline Audio to Draft sidebar.<\/li>\n<li>Select an audio file from Media Library.<\/li>\n<li>Click \"Generate draft from audio\".<\/li>\n<\/ol>\n\n<p>The plugin generates content blocks and inserts them into the current post.<\/p>\n\n<p>External services and data handling:<\/p>\n\n<ul>\n<li>To generate a draft, the plugin sends the selected audio payload and selected editorial options to the configured WordPress AI connector.<\/li>\n<li>Data processing, retention, and model behavior are managed by the active connector\/provider, not by this plugin.<\/li>\n<li>This plugin does not add its own analytics tracker or advertising pixel.<\/li>\n<li>Site owners should review the privacy policy and terms of the selected AI connector\/provider before production use.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to \/wp-content\/plugins\/ or install from Plugins.<\/li>\n<li>Activate \"Nomad Pipeline Audio to Draft\".<\/li>\n<li>Go to Settings &gt; Nomad Pipeline Audio to Draft and save your defaults.<\/li>\n<li>Open any post in the block editor and use the Nomad Pipeline Audio to Draft sidebar.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20create%20a%20new%20post%3F\"><h3>Does it create a new post?<\/h3><\/dt>\n<dd><p>In the editor flow, it updates the current post.\nIf the ability is invoked externally (outside the editor flow), the plugin creates a new post draft.<\/p><\/dd>\n<dt id=\"why%20do%20i%20see%20ai%20provider%20errors%3F\"><h3>Why do I see AI provider errors?<\/h3><\/dt>\n<dd><p>Check that WordPress AI connectors are correctly configured and available.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20wordpress%207.1%3F\"><h3>Is the plugin compatible with WordPress 7.1?<\/h3><\/dt>\n<dd><p>Yes. Version 0.1.6 confirms WordPress 7.1 compatibility for the free editor workflow.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.6<\/h4>\n\n<ul>\n<li>Documentation refresh for the WordPress 7.1 release.<\/li>\n<li>Added explicit WordPress 7.1 compatibility FAQ entry.<\/li>\n<li>Aligned local README and FAQ docs with the current compatibility statement.<\/li>\n<\/ul>\n\n<h4>0.1.5<\/h4>\n\n<ul>\n<li>Removed prompt\/completion token columns from usage analytics.<\/li>\n<li>Removed question-mark token notes from editor and settings.<\/li>\n<li>Token totals now use plain labels: <code>token<\/code>, <code>estimated tokens<\/code>, or <code>unknown tokens<\/code>.<\/li>\n<\/ul>\n\n<h4>0.1.4<\/h4>\n\n<ul>\n<li>Removed connector-level usage table from settings to avoid displaying uncertain connector attribution.<\/li>\n<li>Replaced passive token marker with clickable info icon (?) showing token calculation details.<\/li>\n<li>Prompt\/completion tokens now display as not available when provider split metrics are unavailable.<\/li>\n<\/ul>\n\n<h4>0.1.3<\/h4>\n\n<ul>\n<li>Free: added current-month usage breakdown by connector in plugin settings.<\/li>\n<li>Free: added tooltip marker (<code>?<\/code>) on token totals when source is <code>estimated<\/code> or <code>unknown<\/code>.<\/li>\n<li>Added connector metadata in stored usage for completed runs.<\/li>\n<li>Added per-window token source classification (<code>today<\/code> and <code>current month<\/code>).<\/li>\n<li>Added filter to tune fallback token estimate: <code>npatd_estimated_tokens_per_model_call<\/code>.<\/li>\n<\/ul>\n\n<h4>0.1.2<\/h4>\n\n<ul>\n<li>Free: added usage counters in the editor sidebar (today\/month calls and tokens).<\/li>\n<li>Free: added usage analytics section in plugin settings with today\/month totals.<\/li>\n<li>Added usage stats REST endpoint: <code>\/wp-json\/nomad-pipeline-audio-to-draft\/v1\/usage-stats<\/code>.<\/li>\n<li>Added token source labeling (<code>actual<\/code>, <code>estimated<\/code>, <code>unknown<\/code>) based on connector usage availability.<\/li>\n<li>Hardened audio input\/path validation to prevent <code>file_exists()<\/code> warnings from malformed attachment path values.<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>WordPress 7.1 compatibility update (<code>Tested up to: 7.1<\/code>).<\/li>\n<li>Free: added anti-abuse protection using <code>wp_pre_execute_ability<\/code> before ability execution.<\/li>\n<li>Free: added invocation telemetry using <code>wp_ability_invoked<\/code> for run accounting and monitoring.<\/li>\n<li>Privacy-by-default telemetry: only safe metadata is recorded (no raw input payload logging).<\/li>\n<li>Added configurable rate-limit thresholds via filters:\n\n<ul>\n<li><code>npatd_rate_limit_max_requests<\/code><\/li>\n<li><code>npatd_rate_limit_window_seconds<\/code><\/li>\n<\/ul><\/li>\n<li>Added explicit HTTP <code>429<\/code> response for burst traffic above the configured limit.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial public Free release.<\/li>\n<li>Audio-to-draft pipeline with Gutenberg integration.<\/li>\n<\/ul>","raw_excerpt":"Generate a structured post draft from an audio file directly in the WordPress block editor.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/343351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=343351"}],"author":[{"embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/veleno"}],"wp:attachment":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=343351"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=343351"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=343351"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=343351"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=343351"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=343351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}