{"id":333918,"date":"2026-06-30T14:59:50","date_gmt":"2026-06-30T14:59:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/connector-for-vozcaster\/"},"modified":"2026-10-08T07:08:30","modified_gmt":"2026-10-08T07:08:30","slug":"connector-for-vozcaster","status":"publish","type":"plugin","link":"https:\/\/bcc.wordpress.org\/plugins\/connector-for-vozcaster\/","author":15156070,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.10.1","stable_tag":"1.10.1","tested":"7.1.3","requires":"6.3","requires_php":"8.0","requires_plugins":null,"header_name":"Connector for VozCaster","header_author":"Miguel \u00c1ngel Terr\u00f3n Bote","header_description":"Connect your WordPress to the VozCaster Telegram bot \u2014 publish podcast episodes from voice notes directly into PowerPress.","assets_banners_color":"97207f","last_updated":"2026-10-08 07:08:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/vozcaster.com","header_author_uri":"https:\/\/potencia.pro","rating":0,"author_block_rating":0,"active_installs":0,"downloads":1424,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.10.0":{"tag":"1.10.0","author":"materron","date":"2026-10-05 09:32:49","revision":3728516},"1.10.1":{"tag":"1.10.1","author":"materron","date":"2026-10-08 07:08:30","revision":3733846},"1.5.11":{"tag":"1.5.11","author":"materron","date":"2026-06-30 14:59:30","revision":3591677},"1.5.12":{"tag":"1.5.12","author":"materron","date":"2026-06-30 15:05:28","revision":3591680},"1.5.13":{"tag":"1.5.13","author":"materron","date":"2026-06-30 16:13:26","revision":3591742},"1.5.14":{"tag":"1.5.14","author":"materron","date":"2026-07-02 15:09:53","revision":3594210},"1.5.15":{"tag":"1.5.15","author":"materron","date":"2026-07-29 07:28:11","revision":3626810},"1.6.0":{"tag":"1.6.0","author":"materron","date":"2026-09-10 16:54:26","revision":3690227},"1.6.1":{"tag":"1.6.1","author":"materron","date":"2026-09-11 05:49:41","revision":3690861},"1.7.0":{"tag":"1.7.0","author":"materron","date":"2026-09-14 10:58:31","revision":3695026},"1.7.1":{"tag":"1.7.1","author":"materron","date":"2026-09-14 11:04:36","revision":3695034},"1.8.0":{"tag":"1.8.0","author":"materron","date":"2026-10-01 11:59:40","revision":3723059},"1.8.1":{"tag":"1.8.1","author":"materron","date":"2026-10-02 11:13:26","revision":3724638},"1.9.0":{"tag":"1.9.0","author":"materron","date":"2026-10-04 18:02:39","revision":3727683}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3591677,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3591677,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3591717,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3591717,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.10.0","1.10.1","1.5.11","1.5.12","1.5.13","1.5.14","1.5.15","1.6.0","1.6.1","1.7.0","1.7.1","1.8.0","1.8.1","1.9.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3727668,"resolution":"1","location":"assets","locale":"","width":2046,"height":864},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3727668,"resolution":"2","location":"assets","locale":"","width":938,"height":498},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3727668,"resolution":"3","location":"assets","locale":"","width":810,"height":2094},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3727668,"resolution":"4","location":"assets","locale":"","width":1396,"height":1880},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3727668,"resolution":"5","location":"assets","locale":"","width":3496,"height":1842},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3727668,"resolution":"6","location":"assets","locale":"","width":3498,"height":1808}},"screenshots":{"1":"VozCaster \u2192 Connect: one \"Connect in Telegram\" button per podcast. No address to type and no second login.","2":"The bot asks for confirmation before connecting the site.","3":"<code>\/podcast<\/code> in Telegram: the podcast data with its artwork, and whether it is ready to submit to platforms.","4":"VozCaster \u2192 Distribute: feed address, readiness checklist and the platforms ordered by importance.","5":"VozCaster \u2192 Episodes: title prefix, season and episode numbering, and the post signature.","6":"VozCaster \u2192 Access: roles authorised to publish from the bot and connected users."}},"plugin_section":[],"plugin_tags":[569,238,49684,9171,1983],"plugin_category":[56],"plugin_contributors":[259269],"plugin_business_model":[],"class_list":["post-333918","plugin","type-plugin","status-publish","hentry","plugin_tags-automation","plugin_tags-podcast","plugin_tags-powerpress","plugin_tags-telegram","plugin_tags-transcription","plugin_category-social-and-sharing","plugin_contributors-materron","plugin_committers-materron"],"banners":{"banner":"https:\/\/ps.w.org\/connector-for-vozcaster\/assets\/banner-772x250.png?rev=3591717","banner_2x":"https:\/\/ps.w.org\/connector-for-vozcaster\/assets\/banner-1544x500.png?rev=3591717","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/connector-for-vozcaster\/assets\/icon-128x128.png?rev=3591677","icon_2x":"https:\/\/ps.w.org\/connector-for-vozcaster\/assets\/icon-256x256.png?rev=3591677","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/connector-for-vozcaster\/assets\/screenshot-1.png?rev=3727668","caption":"VozCaster \u2192 Connect: one \"Connect in Telegram\" button per podcast. No address to type and no second login."},{"src":"https:\/\/ps.w.org\/connector-for-vozcaster\/assets\/screenshot-2.png?rev=3727668","caption":"The bot asks for confirmation before connecting the site."},{"src":"https:\/\/ps.w.org\/connector-for-vozcaster\/assets\/screenshot-3.png?rev=3727668","caption":"<code>\/podcast<\/code> in Telegram: the podcast data with its artwork, and whether it is ready to submit to platforms."},{"src":"https:\/\/ps.w.org\/connector-for-vozcaster\/assets\/screenshot-4.png?rev=3727668","caption":"VozCaster \u2192 Distribute: feed address, readiness checklist and the platforms ordered by importance."},{"src":"https:\/\/ps.w.org\/connector-for-vozcaster\/assets\/screenshot-5.png?rev=3727668","caption":"VozCaster \u2192 Episodes: title prefix, season and episode numbering, and the post signature."},{"src":"https:\/\/ps.w.org\/connector-for-vozcaster\/assets\/screenshot-6.png?rev=3727668","caption":"VozCaster \u2192 Access: roles authorised to publish from the bot and connected users."}],"raw_content":"<!--section=description-->\n<p><strong>VozCaster<\/strong> is a Telegram bot that turns voice notes into fully published podcast episodes on your WordPress site. This plugin \u2014 <strong>Connector for VozCaster<\/strong> \u2014 is the WordPress side of the system: it receives episodes from the bot and publishes them using <a href=\"https:\/\/wordpress.org\/plugins\/powerpress\/\">PowerPress<\/a>.<\/p>\n\n<p>You send a voice note to the bot, and a published draft (or live episode) appears on your site with audio, title, content and featured image. No editing, no manual file uploads, no opening the WordPress dashboard.<\/p>\n\n<h4>See it in action<\/h4>\n\n<p>From an empty WordPress to your first published episode in five minutes (video in Spanish):<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=WexfifEie7M<\/p>\n\n<p>Can't see the player? <a href=\"https:\/\/www.youtube.com\/watch?v=WexfifEie7M\">Watch it on YouTube<\/a>.<\/p>\n\n<h4>What it does<\/h4>\n\n<ul>\n<li><strong>Receives audio<\/strong> from the VozCaster bot and uploads it to your WordPress media library.<\/li>\n<li><strong>Creates podcast episodes<\/strong> using PowerPress, with episode and season numbering managed automatically.<\/li>\n<li><strong>Supports multiple podcasts on the same site<\/strong> \u2014 works with any PowerPress custom channels you have configured.<\/li>\n<li><strong>Per-podcast settings<\/strong>: title prefix, intro\/outro audio, post footer (signature), fixed image style, category mapping.<\/li>\n<li><strong>One-click connection from wp-admin<\/strong>: press \"Connect in Telegram\" and confirm in the bot. No address to type, no second login.<\/li>\n<li><strong>Role-based permissions<\/strong>: Authors and above can publish from the bot by default; administrators can authorise custom roles too.<\/li>\n<li><strong>Podcast data from Telegram<\/strong>: artwork, Apple Podcasts category, owner, language and explicit flag, written straight into PowerPress, with a checklist of what platforms need before you submit.<\/li>\n<li><strong>Distribute to platforms<\/strong>: Spotify, Apple Podcasts, YouTube Music, iVoox, Amazon Music, Podcast Index, Pocket Casts, Castbox and Deezer, ordered by importance, with submit links and a status for each one.<\/li>\n<li><strong>Connect from any page<\/strong>: the <code>[vozcaster_connect]<\/code> shortcode shows the \"Connect in Telegram\" button on the front end, so people can connect without opening wp-admin.<\/li>\n<li><strong>Optional review<\/strong>: episodes from roles that cannot publish posts can be held as \"Pending review\", with an email to the site administrator.<\/li>\n<li><strong>AI content notice<\/strong>: posts whose text was written by AI show a short, customisable notice (on by default, can be turned off).<\/li>\n<li><strong>Token-based authentication<\/strong> so the bot never sees your WordPress password.<\/li>\n<\/ul>\n\n<h4>Free and Pro<\/h4>\n\n<p>This plugin is free and open source, and basic publishing through the bot is free too \u2014 no card, no invitation. The audio is always processed for you: silence trimming, basic noise reduction and intro\/outro mixing.<\/p>\n\n<p>The paid <strong>Pro<\/strong> and <strong>Studio<\/strong> plans add the full AI workflow: automatic transcription (Whisper), a complete article written from what you said, a generated featured image, and advanced noise reduction (DeepFilter) \u2014 so the published episode arrives with title, content and cover already done, sounding its best. Pro includes 30 AI episodes per month, Studio 100. See <a href=\"https:\/\/vozcaster.com\/pricing.html\">plans and pricing<\/a>.<\/p>\n\n<h4>Languages<\/h4>\n\n<p>The bot conversation is currently in Spanish. Episode content is generated in the language you record in \u2014 the transcription detects it automatically.<\/p>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>Install and activate PowerPress and this plugin on your WordPress site.<\/li>\n<li>Open the new <strong>VozCaster<\/strong> menu in wp-admin and press <strong>Connect in Telegram<\/strong>. Telegram opens with the bot: press Start and confirm.<\/li>\n<li>Send a voice note or audio file to the bot. The episode appears on your site, ready to review or publish.<\/li>\n<\/ol>\n\n<p>If your site's address cannot be passed to the bot automatically (for example, WordPress installed in a subfolder), the same page tells you to send <code>\/conectar<\/code> to the bot and paste the address instead.<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress with the <a href=\"https:\/\/wordpress.org\/plugins\/powerpress\/\">PowerPress<\/a> plugin installed and activated.<\/li>\n<li>A Telegram account.<\/li>\n<li>A WordPress user with an authorised role: Author, Editor or Administrator by default, or any custom role the administrator authorises in <strong>VozCaster \u2192 Access<\/strong>.<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin requires an external service to function: the <strong>VozCaster bot<\/strong>, a Telegram bot operated by the plugin author (Miguel \u00c1ngel Terr\u00f3n Bote). The plugin is the WordPress-side component; the bot performs audio processing and orchestrates publication.<\/p>\n\n<p>The following data is transmitted:<\/p>\n\n<ol>\n<li><p><strong>From the bot to your WordPress site, via this plugin's REST API<\/strong><\/p>\n\n<ul>\n<li>Audio files received by the bot (sent by you via Telegram).<\/li>\n<li>Optional featured images.<\/li>\n<li>Episode metadata: title, description, content, episode number, season, feed slug.<\/li>\n<li>An authentication token issued to your WordPress user during the connection flow.<\/li>\n<\/ul>\n\n<p>These calls are initiated by the bot, not by the plugin. They reach your site through standard REST endpoints registered by this plugin under <code>\/wp-json\/vozpress\/v1\/<\/code>.<\/p><\/li>\n<li><p><strong>From your WordPress site to the bot (only when a user connects)<\/strong><\/p>\n\n<ul>\n<li>When a user presses <strong>Connect in Telegram<\/strong> in wp-admin, the browser opens a <code>t.me<\/code> link to the bot containing a single-use code and your site's address. The bot then calls this plugin to read who is connecting (username, display name, podcast name) and, after the user confirms, to redeem the code for a token.<\/li>\n<li>When a user connects with <code>\/conectar<\/code> instead, the browser is redirected to your WordPress login; after login, this plugin issues a token and returns it to the bot.<\/li>\n<li>The plugin itself makes no outgoing requests; the \"Connect in Telegram\" button only opens Telegram in the user's browser.<\/li>\n<\/ul><\/li>\n<li><p><strong>From the bot's server to Telegram's servers<\/strong><\/p>\n\n<ul>\n<li>User-sent voice messages and audio files pass through Telegram's infrastructure as part of normal bot communication. See Telegram's Privacy Policy: https:\/\/telegram.org\/privacy<\/li>\n<\/ul><\/li>\n<li><p><strong>From the bot's server to Apple's public catalogue<\/strong><\/p>\n\n<ul>\n<li>When you open the distribution list in the bot, it searches the public iTunes Search API for your podcast title to check whether your feed is already on Apple Podcasts. Only the podcast title is sent; the plugin itself makes no such request. Apple's privacy policy: https:\/\/www.apple.com\/legal\/privacy\/<\/li>\n<\/ul><\/li>\n<li><p><strong>From the bot's server to AI providers (text only)<\/strong><\/p>\n\n<ul>\n<li>To draft the episode title, description and content, the bot sends the transcribed <em>text<\/em> of your recording to <strong>Anthropic (Claude)<\/strong>.<\/li>\n<li>If you request a cover image, the bot sends a <em>text prompt<\/em> to <strong>OpenAI<\/strong> to generate the image.<\/li>\n<li>Only text is sent, and only when content or image generation is requested. Your audio file is <strong>never<\/strong> transmitted to these providers.<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<p>Audio is transcribed locally with a Whisper model on the bot's server; other audio processing (DeepFilter noise reduction, ffmpeg, and an Ollama model used only as a local fallback) also runs locally. The audio file itself is not sent to any third-party AI service.<\/p>\n\n<p>Service URLs and policies:<\/p>\n\n<ul>\n<li>VozCaster (bot service): https:\/\/vozcaster.com<\/li>\n<li>VozCaster privacy policy: https:\/\/vozcaster.com\/privacy<\/li>\n<li>VozCaster terms of service: https:\/\/vozcaster.com\/terms<\/li>\n<li>Telegram Messenger: https:\/\/telegram.org<\/li>\n<li>Telegram privacy policy: https:\/\/telegram.org\/privacy<\/li>\n<li>Telegram terms of service: https:\/\/telegram.org\/tos<\/li>\n<li>Anthropic (Claude, AI text generation): https:\/\/www.anthropic.com<\/li>\n<li>Anthropic privacy policy: https:\/\/www.anthropic.com\/legal\/privacy<\/li>\n<li>Anthropic terms of service: https:\/\/www.anthropic.com\/legal\/consumer-terms<\/li>\n<li>OpenAI (AI image generation): https:\/\/openai.com<\/li>\n<li>OpenAI privacy policy: https:\/\/openai.com\/policies\/privacy-policy<\/li>\n<li>OpenAI terms of service: https:\/\/openai.com\/policies\/terms-of-use<\/li>\n<li>Apple Podcasts \/ iTunes Search API (catalogue check from the bot): https:\/\/performance-partners.apple.com\/search-api<\/li>\n<li>Apple privacy policy: https:\/\/www.apple.com\/legal\/privacy\/<\/li>\n<li>Apple Media Services terms: https:\/\/www.apple.com\/legal\/internet-services\/itunes\/<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>connector-for-vozcaster<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Open the <strong>VozCaster<\/strong> menu and press <strong>Connect in Telegram<\/strong>, then confirm in the bot.<\/li>\n<li>Optional: administrators find the settings in the same menu \u2014 <strong>Episodes<\/strong> (titles, signature, image style, AI notice), <strong>Audio<\/strong> (intro\/outro), <strong>Access<\/strong> (roles and connected users) and <strong>History<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20powerpress%3F\"><h3>Does it work with PowerPress?<\/h3><\/dt>\n<dd><p>Yes. PowerPress is a hard requirement \u2014 the plugin uses PowerPress to register episode metadata, enclosures, season and episode numbers.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20paid%20account%20to%20use%20it%3F\"><h3>Do I need a paid account to use it?<\/h3><\/dt>\n<dd><p>This plugin is free and open source. The VozCaster bot it connects to offers a free tier and a paid (Pro) tier. Basic episode publishing (including basic audio cleanup) works on the free tier; the Pro features \u2014 automatic transcription, a fully written article, a generated featured image and advanced noise reduction (DeepFilter) \u2014 require a Pro or Studio subscription. See https:\/\/vozcaster.com\/pricing.html for the current plans.<\/p><\/dd>\n<dt id=\"where%20is%20my%20audio%20stored%3F\"><h3>Where is my audio stored?<\/h3><\/dt>\n<dd><p>Permanently, only in your own WordPress media library. The bot processes the audio on a private server operated by the author (located in Spain) and deletes the temporary files after publishing.<\/p><\/dd>\n<dt id=\"does%20the%20bot%20send%20my%20audio%20to%20third-party%20ai%20services%3F\"><h3>Does the bot send my audio to third-party AI services?<\/h3><\/dt>\n<dd><p>Your <strong>audio is never sent to a third-party AI service<\/strong>. Transcription runs on a local Whisper model on the bot's server, so the audio file itself stays on that server (and on Telegram, which carries your message).<\/p>\n\n<p>To draft the episode <strong>title, description and content<\/strong>, the bot sends the transcribed <em>text<\/em> to Anthropic's Claude API. If you ask the bot to generate a cover image, the <em>image prompt<\/em> is sent to OpenAI's image API. These providers receive text only, and only when you request content or image generation. See the \"External Services\" section below for the providers and their privacy policies.<\/p><\/dd>\n<dt id=\"can%20i%20connect%20more%20than%20one%20wordpress%20site%20to%20the%20bot%3F\"><h3>Can I connect more than one WordPress site to the bot?<\/h3><\/dt>\n<dd><p>Yes. Each site needs its own installation of this plugin and its own connection from Telegram (<code>\/conectar<\/code> for each site).<\/p><\/dd>\n<dt id=\"can%20a%20single%20wordpress%20site%20host%20more%20than%20one%20podcast%3F\"><h3>Can a single WordPress site host more than one podcast?<\/h3><\/dt>\n<dd><p>Yes. The plugin works with PowerPress's multi-podcast (custom channels) configuration. From Telegram you switch between podcasts with <code>\/feed<\/code>.<\/p><\/dd>\n<dt id=\"who%20can%20publish%20from%20the%20bot%3F\"><h3>Who can publish from the bot?<\/h3><\/dt>\n<dd><p>Anyone whose role is authorised in <strong>VozCaster \u2192 Access<\/strong>. By default that is every role that can publish posts (Author, Editor, Administrator). Administrators can also authorise a custom role \u2014 users with it can then publish from the bot even if they cannot publish from wp-admin. Every authorised user can publish to every podcast on the site. The same screen lists who has connected the bot and lets you revoke access.<\/p><\/dd>\n<dt id=\"can%20people%20publish%20without%20access%20to%20wp-admin%2C%20for%20example%20the%20teachers%20of%20a%20school%3F\"><h3>Can people publish without access to wp-admin, for example the teachers of a school?<\/h3><\/dt>\n<dd><p>Yes. Create a role for them (for example \"Podcast teachers\", a copy of Subscriber made with any role editor plugin) and check it in <strong>VozCaster \u2192 Access<\/strong>. Then add the <code>[vozcaster_connect]<\/code> shortcode to a page: once logged in, they see a \"Connect in Telegram\" button there and never need to open wp-admin. Avoid authorising the whole Subscriber role if anyone can register on your site.<\/p><\/dd>\n<dt id=\"can%20i%20review%20episodes%20before%20they%20go%20live%3F\"><h3>Can I review episodes before they go live?<\/h3><\/dt>\n<dd><p>Yes. Turn on <strong>Review before publishing<\/strong> in <strong>VozCaster \u2192 Access<\/strong>. Episodes sent by users whose role cannot publish posts in WordPress are saved as \"Pending review\" and the site administrator gets an email with a link to approve them; the bot tells the sender that the episode is waiting for review. Authors and above keep publishing directly.<\/p><\/dd>\n<dt id=\"why%20do%20some%20posts%20show%20a%20notice%20about%20ai%3F\"><h3>Why do some posts show a notice about AI?<\/h3><\/dt>\n<dd><p>When the bot writes the text of a post with AI, the plugin shows a short notice with it so readers know. It is on by default, and you can change its text and position or turn it off in <strong>VozCaster \u2192 Episodes<\/strong>, or hide it on a single post from the editor. The notice is added when the post is displayed, so changes apply to all posts at once.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20my%20podcast%20on%20spotify%2C%20apple%20podcasts%20and%20the%20rest%3F\"><h3>How do I get my podcast on Spotify, Apple Podcasts and the rest?<\/h3><\/dt>\n<dd><p>Go to <strong>VozCaster \u2192 Distribute<\/strong> in wp-admin, or send <code>\/difundir<\/code> to the bot. First it checks that the feed has everything platforms ask for (title, description, square artwork of 1400\u20133000 px, category, author, owner email and at least one episode). Then it lists the platforms by importance, each with its submit link, a link to find your podcast there and a status you can mark: not submitted, submitted or live. You only submit once: after that every platform picks up new episodes by itself. The bot also checks Apple Podcasts on its own and marks it as live when your feed appears there.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20podcast%20artwork%2C%20category%20or%20owner%20from%20the%20bot%3F\"><h3>Can I change the podcast artwork, category or owner from the bot?<\/h3><\/dt>\n<dd><p>Yes, with <code>\/podcast<\/code> (site administrators only). It writes into the same PowerPress settings, so you can keep editing them in PowerPress too. The artwork is cropped to a square and resized to 3000 px if needed.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20add%20links%20to%20my%20site%3F\"><h3>Does the plugin add links to my site?<\/h3><\/dt>\n<dd><p>Not unless you ask it to. There is an optional \"Published with VozCaster\" credit line with a link, which is <strong>off by default<\/strong> and can be turned on in <strong>VozCaster \u2192 Episodes<\/strong>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20support%3F\"><h3>How do I get support?<\/h3><\/dt>\n<dd><p>For documentation, see the <a href=\"https:\/\/vozcaster.com\/manual\">VozCaster manual<\/a>. For issues or questions, email info@vozcaster.com.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.10.1<\/h4>\n\n<ul>\n<li>Fix: strings added in recent versions (the AI content notice, the VozCaster pages, the connect shortcode) showed in English on sites using a language pack from translate.wordpress.org that did not have them yet. The translation shipped with the plugin now fills in whatever the language pack is missing.<\/li>\n<\/ul>\n\n<h4>1.10.0<\/h4>\n\n<ul>\n<li>New: <code>[vozcaster_connect]<\/code> shortcode \u2014 the \"Connect in Telegram\" buttons on any page of the site, with a login link for visitors and a notice for users without access. Optional <code>feed<\/code> attribute to show a single podcast.<\/li>\n<li>New: <strong>Review before publishing<\/strong> (VozCaster \u2192 Access). Episodes and posts from roles that cannot publish posts in WordPress are saved as \"Pending review\", and the administrator receives an email to approve them.<\/li>\n<li>Change: episode numbering also counts pending and scheduled episodes, so episodes waiting for review never share a number; ties between episodes created in the same second are broken by ID.<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>New: podcast data from the bot. <code>\/podcast<\/code> shows and changes the show data PowerPress publishes in the feed \u2014 title, description, artwork, Apple Podcasts category, author\/owner, owner email, language and explicit \u2014 for the main feed, custom channels and category feeds, with a checklist of what platforms need. New REST endpoint <code>GET\/POST \/podcast<\/code>.<\/li>\n<li>New: distribution to platforms. <strong>VozCaster \u2192 Distribute<\/strong> (and <code>\/difundir<\/code> in the bot) lists Spotify, Apple Podcasts, YouTube Music, iVoox, Amazon Music, Podcast Index, Pocket Casts, Castbox and Deezer by importance, with submit and search links and a status per platform. New REST endpoint <code>GET\/POST \/distribution<\/code>.<\/li>\n<\/ul>\n\n<h4>1.8.1<\/h4>\n\n<ul>\n<li>Fix: saving a form on the Audio, Access or History page went back to the Episodes page instead of staying on the same page.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>New: <strong>VozCaster<\/strong> menu in wp-admin. Everyone authorised sees <strong>Connect<\/strong>; administrators also get <strong>Episodes<\/strong>, <strong>Audio<\/strong>, <strong>Access<\/strong> and <strong>History<\/strong>, which replace the single long page under Settings \u2192 VozCaster (old links redirect).<\/li>\n<li>New: connect the bot from wp-admin. <strong>VozCaster \u2192 Connect<\/strong> has a \"Connect in Telegram\" button for each podcast; it opens the bot, which asks for confirmation and connects you. No address to type and no second login. <code>\/conectar<\/code> still works.<\/li>\n<li>New: permissions by role. The per-user allowlist and the per-podcast permissions are gone: every role that can publish posts (Author and above) can publish from the bot, in every podcast, and administrators can authorise custom roles as well. The settings screen lists the connected users with a Revoke button.<\/li>\n<li>New: AI content notice. Posts whose text was written by AI show a short notice, on by default, with customisable text and position, and a per-post option to hide it. It is rendered by the plugin, so changes apply to all posts.<\/li>\n<li>New: optional \"Published with VozCaster\" credit line, off by default.<\/li>\n<li>Fix: an allowlisted user without the capability to publish (e.g. a Contributor) could publish episodes directly.<\/li>\n<li>Security: bot tokens are now stored hashed. Existing connections are migrated automatically and keep working.<\/li>\n<\/ul>\n\n<h4>1.7.1<\/h4>\n\n<ul>\n<li>Fix: episodes published by the bot never set PowerPress's per-episode \"Apple Podcast Episode Artwork\" (<code>itunes_image<\/code>) \u2014 only the regular WordPress featured image. It had to be filled in by hand every time. New episodes now get it automatically from the same image (the one uploaded by the bot, or the podcast's default cover as fallback). Episodes published before this fix are unaffected \u2014 their Apple Podcasts artwork field stays empty until edited manually or the episode is republished.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>New \"Image style\" setting under Settings \u2192 VozCaster: fixed text prepended to every AI-generated cover image prompt for this podcast (e.g. a recurring subject or look). Previously only settable from the bot with <code>\/estilo<\/code>, and stored only in the bot's own database \u2014 it now lives on the site (<code>GET<\/code>\/<code>POST \/settings<\/code>), so <code>\/estilo<\/code> and wp-admin both read and write the same value.<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>Season change now reports the real next episode number instead of always announcing E1: reverting to a season that already has published episodes continues from the last one (e.g. back to T3E6, not T3E1). New season with no episodes still starts at E1.<\/li>\n<li><code>POST \/season\/increment<\/code> returns <code>next_episode_number<\/code> and <code>next_episode_in_season<\/code>.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Season number: any authorised user who can edit posts can now view and change the podcast season from the bot with <code>\/temporada<\/code> \u2014 it no longer requires a WordPress administrator. <code>\/temporada 4<\/code> fixes the season to a given number after a confirmation prompt; <code>\/temporada<\/code> on its own shows the current season and offers a one-tap jump to the next one.<\/li>\n<li>Season number is now shown and editable under Settings \u2192 VozCaster.<\/li>\n<li>Reconciliation: if an editor bumps the season directly in the PowerPress episode box, the connector adopts it instead of silently reverting to the stored value. Moving to a season below the latest published episode still requires editing that episode.<\/li>\n<\/ul>\n\n<h4>1.5.15<\/h4>\n\n<ul>\n<li>Performance: the episode log no longer autoloads on every request. Existing installs are migrated automatically on first load after the update.<\/li>\n<li>Hardening: the PowerPress <code>enclosure<\/code> field is now read with <code>unserialize()<\/code> restricted to <code>allowed_classes =&gt; false<\/code>, ruling out PHP object injection.<\/li>\n<li>Accessibility: added accessible labels to the per-user permission checkboxes and to the intro\/outro file pickers on the settings screen.<\/li>\n<li>Code quality: the category-feed lookup now goes through <code>$wpdb-&gt;prepare()<\/code>, and <code>uninstall.php<\/code> carries an explicit <code>ABSPATH<\/code> guard.<\/li>\n<\/ul>\n\n<h4>1.5.14<\/h4>\n\n<ul>\n<li>Fixed a fatal error on audio episode upload: <code>wp-admin\/includes\/media.php<\/code> (which defines <code>wp_read_audio_metadata()<\/code>) was not loaded in the REST API request context, causing attachment metadata generation to fail for audio files.<\/li>\n<\/ul>\n\n<h4>1.5.13<\/h4>\n\n<ul>\n<li>Added plugin banner, icon and screenshots for the WordPress.org listing.<\/li>\n<\/ul>\n\n<h4>1.5.12<\/h4>\n\n<ul>\n<li>Documentation: corrected the \"paid account\" FAQ to describe the free and Pro tiers of the VozCaster bot (removed outdated \"beta\" wording).<\/li>\n<\/ul>\n\n<h4>1.5.11<\/h4>\n\n<ul>\n<li>Settings-changing REST endpoints (global intro\/outro, mix settings, plugin options, season) now require an administrator capability, not just an authorised bot user.<\/li>\n<li>The media picker script on the settings screen is now enqueued via <code>admin_enqueue_scripts<\/code> and <code>wp_localize_script<\/code> instead of inline output.<\/li>\n<li>Core admin includes in the REST upload helpers are loaded only where needed, immediately before the function that uses them.<\/li>\n<\/ul>\n\n<h4>1.5.10<\/h4>\n\n<ul>\n<li>Passes Plugin Check with no errors. File operations during chunked audio assembly now use the WordPress Filesystem API; output escaping, input unslashing and <code>wp_parse_url()<\/code> applied where flagged.<\/li>\n<li>The Telegram connection result pages are now fully translatable (English source strings with an updated Spanish es_ES translation).<\/li>\n<\/ul>\n\n<h4>1.5.9<\/h4>\n\n<ul>\n<li>Hardened the REST authentication token handling (sanitised header input).<\/li>\n<li>Documentation: the \"External Services\" section and FAQ now disclose the AI providers used by the VozCaster bot to generate episode text (Anthropic) and cover images (OpenAI). Your audio is never sent to these providers; only text is.<\/li>\n<\/ul>\n\n<h4>1.5.8<\/h4>\n\n<ul>\n<li>Spanish (es_ES) translation added. The plugin automatically displays in Spanish on WordPress installations set to Spanish.<\/li>\n<\/ul>\n\n<h4>1.5.7<\/h4>\n\n<ul>\n<li>Renamed from VozPress Connector to Connector for VozCaster to align with WordPress.org plugin guidelines on naming.<\/li>\n<li>Endpoint <code>\/episode\/next-number<\/code> now also returns the chapter number within the current season so the bot can name uploaded media files using the season+chapter scheme.<\/li>\n<\/ul>\n\n<h4>1.5.6<\/h4>\n\n<ul>\n<li><code>\/episode\/next-number<\/code> includes <code>episode_no_in_season<\/code> for season-aware media file naming.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Feed detection now includes PowerPress \"category podcasting\" feeds. Each linked category is exposed as a feed using the category slug.<\/li>\n<li><code>assign_podcast_category()<\/code> no longer creates new categories \u2014 prevents duplicate \"Podcast\" categories on sites with custom slugs.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Season and chapter-within-season numbering derived from the previous published episode's PowerPress metadata, instead of the previous year-based heuristic.<\/li>\n<li>Multi-feed detection now reads from <code>powerpress_general.custom_feeds<\/code> \u2014 the per-podcast permissions UI in wp-admin now appears correctly on sites with PowerPress custom channels.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>All admin UI strings translated and properly wrapped in i18n functions.<\/li>\n<li>Added <code>== External Services ==<\/code> section to readme.<\/li>\n<\/ul>\n\n<h4>1.2.x<\/h4>\n\n<ul>\n<li>Multi-feed support: per-feed permissions, automatic category assignment, per-feed episode counters.<\/li>\n<li>Chunked audio upload with gzip compression for large files (&gt;25 MB).<\/li>\n<li>Manual season increment via REST endpoint and <code>\/temporada<\/code> command in the bot.<\/li>\n<\/ul>\n\n<h4>1.1.x<\/h4>\n\n<ul>\n<li>Intro and outro mixing with configurable ducking.<\/li>\n<li>Settings endpoints for remote configuration from the bot.<\/li>\n<li>Transcript attachment via REST endpoint.<\/li>\n<\/ul>\n\n<h4>1.0.x<\/h4>\n\n<ul>\n<li>Initial release: <code>\/ping<\/code>, <code>\/auth\/verify<\/code>, <code>\/media\/audio<\/code>, <code>\/media\/image<\/code>, <code>\/episode<\/code> REST endpoints.<\/li>\n<li>Token-based authentication using <code>wp_check_password()<\/code>.<\/li>\n<li>Settings page with access token and episode log.<\/li>\n<\/ul>","raw_excerpt":"Connect your WordPress to the VozCaster Telegram bot to publish podcast episodes from voice notes, directly into PowerPress.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/333918","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=333918"}],"author":[{"embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/materron"}],"wp:attachment":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=333918"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=333918"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=333918"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=333918"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=333918"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=333918"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}