{"id":268723,"date":"2026-01-09T01:46:24","date_gmt":"2026-01-09T01:46:24","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/postu-tts\/"},"modified":"2026-02-13T16:58:29","modified_gmt":"2026-02-13T16:58:29","slug":"postu-tts","status":"publish","type":"plugin","link":"https:\/\/frp.wordpress.org\/plugins\/postu-tts\/","author":7414045,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.3.3","stable_tag":"1.3.3","tested":"6.9.4","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Postu","header_author":"Postu Team","header_description":"Generate audio and video for new posts using your Postu endpoint and embed the player in the article.","assets_banners_color":"","last_updated":"2026-02-13 16:58:29","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/postu.com.br\/wordpress-plugin","header_author_uri":"https:\/\/postu.com.br","rating":0,"author_block_rating":0,"active_installs":0,"downloads":367,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.1":{"tag":"1.2.1","author":"hugohenrique","date":"2026-01-10 14:23:14"},"1.2.2":{"tag":"1.2.2","author":"hugohenrique","date":"2026-01-09 02:24:57"},"1.2.3":{"tag":"1.2.3","author":"hugohenrique","date":"2026-01-10 14:23:14"},"1.2.4":{"tag":"1.2.4","author":"hugohenrique","date":"2026-01-11 16:43:55"},"1.2.5":{"tag":"1.2.5","author":"hugohenrique","date":"2026-01-13 12:50:14"},"1.3.0":{"tag":"1.3.0","author":"hugohenrique","date":"2026-01-24 21:09:28"},"1.3.1":{"tag":"1.3.1","author":"hugohenrique","date":"2026-01-25 19:57:03"},"1.3.2":{"tag":"1.3.2","author":"hugohenrique","date":"2026-02-13 16:17:15"},"1.3.3":{"tag":"1.3.3","author":"hugohenrique","date":"2026-02-13 16:58:29"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3435593,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3435593,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.1","1.2.2","1.2.3","1.2.4","1.2.5","1.3.0","1.3.1","1.3.2","1.3.3"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[452,16722,1449,222],"plugin_category":[50],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-268723","plugin","type-plugin","status-publish","hentry","plugin_tags-audio","plugin_tags-text-to-speech","plugin_tags-tts","plugin_tags-video","plugin_category-media","plugin_committers-hugohenrique"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/postu-tts\/assets\/icon-128x128.png?rev=3435593","icon_2x":"https:\/\/ps.w.org\/postu-tts\/assets\/icon-256x256.png?rev=3435593","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Postu turns every new WordPress post into an audio player (TTS), can display an interactive transcript, and can trigger a vertical video render using the template saved in your Postu dashboard. Videos are rendered by the Postu video worker and published through your connected integrations (for example, Instagram).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install it from the WordPress Plugins screen.<\/li>\n<li>Activate the plugin through the \u201cPlugins\u201d menu.<\/li>\n<li>Go to Settings \u2192 Postu and set your API URL and API Key. Choose whether to generate audio and\/or video. The video template comes from your Postu dashboard.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20does%20the%20plugin%20do%3F\"><h3>What does the plugin do?<\/h3><\/dt>\n<dd><p>When you publish a post, the plugin sends the title\/date\/author\/content to the Postu API. It generates audio (default voice) and, if enabled, requests a vertical video render using your saved template and publishes it via Postu integrations.<\/p><\/dd>\n<dt id=\"what%20data%20is%20sent%3F\"><h3>What data is sent?<\/h3><\/dt>\n<dd><p>Title, date, author, and post content are sent to the Postu API for TTS and video rendering.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20load%20remote%20assets%3F\"><h3>Does the plugin load remote assets?<\/h3><\/dt>\n<dd><p>No. All assets (icons, styles, scripts) are local. The only external requests are to the Postu API URL you configure and the images used in your posts or settings.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Uses the unified transcript player in WordPress when transcript is available, enabling listener language selection directly in the player flow.<\/li>\n<li>Keeps legacy player only as fallback when no transcript is available.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Removes the audio language selector from the WordPress settings page; default language now comes from your Postu account configuration.<\/li>\n<li>Stops forcing <code>targetLang<\/code> from WordPress when generating audio (backend applies account defaults).<\/li>\n<li>Keeps listener language switching as a temporary playback choice in the player flow.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Adds audio playback analytics: the player injects API context and sends play\/progress\/complete beacons to the Postu API (API, embed, WordPress).<\/li>\n<li>Stores the Postu audio id on generation\/regeneration so beacons carry the correct identifiers.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Adds an option to show the interactive transcript below the player (uses the <code>transcriptId<\/code> returned by the API).<\/li>\n<li>Shortcode <code>[postu_transcript id=\"...\"]<\/code> to embed the transcript manually on any page.<\/li>\n<li>Adjusts the character limit sent to TTS and returns <code>transcriptId<\/code> in the webhook.<\/li>\n<\/ul>\n\n<h4>1.2.5<\/h4>\n\n<ul>\n<li>Adds a Standard\/Neural voice selector in settings and sends <code>voiceType<\/code> to the API.<\/li>\n<li>Notes that Neural consumes 4x credits in the voice description.<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>Plugin interface now ships in Portuguese (pt-BR) by default with a full English translation (en-US).<\/li>\n<li>All translation files (.pot, pt_BR.po, en_US.po) included in <code>\/languages<\/code>.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Displays the credit cycle renewal date (<code>resetDate<\/code>) on the settings screen.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Shows current credit usage (characters used\/limit) on the settings screen based on your API Key and plan.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Removed remote fallbacks for icons and the default image; everything uses local WordPress or plugin assets.<\/li>\n<li>Removed an unused HTML that referenced Google Fonts\/CDN.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Single API URL + API Key for audio (media-worker) and video (video-worker) via Postu.<\/li>\n<li>Template defined in the Postu dashboard; the plugin only triggers generation\/publication.<\/li>\n<li>Fixed default voice (Camila) for TTS.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release with audio generation for published posts.<\/li>\n<\/ul>","raw_excerpt":"Automatically generate audio and vertical videos when you publish WordPress posts using your Postu API.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/268723","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=268723"}],"author":[{"embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/hugohenrique"}],"wp:attachment":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=268723"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=268723"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=268723"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=268723"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=268723"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=268723"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}