{"id":303035,"date":"2026-07-02T07:08:31","date_gmt":"2026-07-02T07:08:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/all-in-one-podcasting\/"},"modified":"2026-08-22T15:32:25","modified_gmt":"2026-08-22T15:32:25","slug":"aio-podcast-studio","status":"publish","type":"plugin","link":"https:\/\/nl.wordpress.org\/plugins\/aio-podcast-studio\/","author":23485175,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.4","stable_tag":"1.0.4","tested":"7.1","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"AiO Podcast Studio","header_author":"Team AiO Podcast Studio","header_description":"AiO Podcast Studio makes it easy to create, manage, and publish podcasts in WordPress. Import via RSS or add manually, organize content with categories, tags, and participants, and distribute to platforms like Apple and Spotify \u2014 all from a streamlined, creator-focused interface.","assets_banners_color":"42457a","last_updated":"2026-08-22 15:32:25","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/aiopodcasting.com","header_plugin_uri":"https:\/\/aiopodcasting.com","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":0,"downloads":331,"num_ratings":1,"support_threads":2,"support_threads_resolved":2,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"aiopodcasting","date":"2026-07-02 07:07:59"},"1.0.2":{"tag":"1.0.2","author":"aiopodcasting","date":"2026-07-20 10:17:58"},"1.0.3":{"tag":"1.0.3","author":"aiopodcasting","date":"2026-08-16 12:19:17"},"1.0.4":{"tag":"1.0.4","author":"aiopodcasting","date":"2026-08-22 15:32:25"}},"upgrade_notice":{"1.0.4":"<p>Introduces several new features, bug fixes &amp; enhancements. <a href=\"https:\/\/wordpress.org\/plugins\/aio-podcast-studio\/#developers\">See changelog<\/a><\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3593495,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3593495,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3593495,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3593495,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3660816,"resolution":false,"location":"assets","locale":"","contents":"{\"landingPage\":\"wp-admin\\\/admin.php?page=aio-podcast-studio\",\"preferredVersions\":{\"php\":\"8.0\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"steps\":[{\"step\":\"installPlugin\",\"options\":{\"activate\":true},\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"aio-podcast-studio\"}},{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"}]}"}},"all_blocks":{"aiopod\/tags":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"aiopod\/tags","version":"1.0.4","title":"AIOPOD - Tags","category":"aio-podcast-studio","keywords":["podcast","episode","tag","aio-podcast-studio","aiopod"],"description":"Display a list of your episode tags.","textdomain":"aio-podcast-studio","editorScript":"file:.\/index.js"},"aiopod\/categories":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"aiopod\/categories","version":"1.0.4","title":"AIOPOD - Categories","category":"aio-podcast-studio","keywords":["podcast","episode","categories","aio-podcast-studio","aiopod"],"description":"Display a list of your podcast categories.","textdomain":"aio-podcast-studio","editorScript":"file:.\/index.js"},"aiopod\/episodes":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"aiopod\/episodes","version":"1.0.4","title":"AIOPOD - Episodes","category":"aio-podcast-studio","keywords":["podcast","episode","aio-podcast-studio","aiopod"],"description":"Display a list of your episodes.","textdomain":"aio-podcast-studio","editorScript":"file:.\/index.js"},"aiopod\/podcasts":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"aiopod\/podcasts","version":"1.0.4","title":"AIOPOD - Podcasts","category":"aio-podcast-studio","keywords":["podcast","episode","aio-podcast-studio","aiopod"],"description":"Display a list of your podcasts.","textdomain":"aio-podcast-studio","editorScript":"file:.\/index.js"},"aiopod\/participants":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"aiopod\/participants","version":"1.0.4","title":"AIOPOD - Participants","category":"aio-podcast-studio","keywords":["podcast","episode","participant","aio-podcast-studio","aiopod"],"description":"Display a list of your participants.","textdomain":"aio-podcast-studio","editorScript":"file:.\/index.js"}},"tagged_versions":["1.0.1","1.0.2","1.0.3","1.0.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3593495,"resolution":"1","location":"assets","locale":"","width":1894,"height":1740},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3593495,"resolution":"10","location":"assets","locale":"","width":1894,"height":2925},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3593495,"resolution":"11","location":"assets","locale":"","width":1894,"height":2828},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3593495,"resolution":"12","location":"assets","locale":"","width":1894,"height":1740},"screenshot-13.png":{"filename":"screenshot-13.png","revision":3593495,"resolution":"13","location":"assets","locale":"","width":1894,"height":1790},"screenshot-14.png":{"filename":"screenshot-14.png","revision":3593495,"resolution":"14","location":"assets","locale":"","width":1894,"height":1585},"screenshot-15.png":{"filename":"screenshot-15.png","revision":3593495,"resolution":"15","location":"assets","locale":"","width":1894,"height":982},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3593495,"resolution":"2","location":"assets","locale":"","width":1894,"height":2230},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3593495,"resolution":"3","location":"assets","locale":"","width":1894,"height":3412},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3593495,"resolution":"4","location":"assets","locale":"","width":1894,"height":2308},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3593495,"resolution":"5","location":"assets","locale":"","width":1894,"height":2244},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3593495,"resolution":"6","location":"assets","locale":"","width":1894,"height":1458},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3593597,"resolution":"7","location":"assets","locale":"","width":1894,"height":1090},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3593495,"resolution":"8","location":"assets","locale":"","width":1894,"height":850},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3593495,"resolution":"9","location":"assets","locale":"","width":1894,"height":1311}},"screenshots":{"1":"<strong>Dashboard<\/strong> \u2014 The welcome screen showing the plugin logo and branding, a quick-start importer for standard podcast categories, and options to import an existing podcast from an RSS feed or create a new self-hosted podcast.","2":"<strong>Podcast editor<\/strong> \u2014 The podcast edit screen organized into Podcast Details, Distribution, and Import Options tabs, with accordion sections for podcast details, participants, subscribe buttons, and follow buttons.","3":"<strong>Episode editor<\/strong> \u2014 The episode edit screen with metaboxes for episode file, chapters, transcription, participants, and distribution.","4":"<strong>Episodes grid layout<\/strong> \u2014 Front-end grid display of episodes with cover art, title, and duration.","5":"<strong>Episodes list layout<\/strong> \u2014 Compact front-end list layout with cover art, title, and duration.","6":"<strong>Episodes compact layout<\/strong> \u2014 Space-saving layout with a featured episode and an inline mini-player above a compact episode list.","7":"<strong>Episode slider layout<\/strong> \u2014 Swiper-powered episode slider for embedding on landing pages.","8":"<strong>Single episode player<\/strong> \u2014 The embedded episode player with playback speed, volume, download, and sharing controls.","9":"<strong>Video episode player<\/strong> <em>(Premium)<\/em> \u2014 The embedded player rendering a video episode, with configurable width and aspect ratio alongside the standard playback, volume, download, and sharing controls.","10":"<strong>Settings panel<\/strong> \u2014 The tabbed settings panel showing the 100+ configuration options organized by category.","11":"<strong>Statistics \u2014 global view<\/strong> <em>(Premium)<\/em> \u2014 The global statistics screen showing plays and downloads over a date range with a Chart.js line graph.","12":"<strong>Statistics \u2014 episode view<\/strong> <em>(Premium)<\/em> \u2014 Per-episode statistics breakdown.","13":"<strong>Shortcode builder<\/strong> \u2014 The visual shortcode builder with grouped attribute controls that generate a ready-to-paste shortcode.","14":"<strong>Categories page<\/strong> \u2014 Front-end categories grid with cover images.","15":"<strong>Participants page<\/strong> \u2014 Front-end participant profile page with bio, social links, and linked episodes."}},"plugin_section":[],"plugin_tags":[4702,238,269806,144517,9527],"plugin_category":[56],"plugin_contributors":[269807,78154],"plugin_business_model":[],"class_list":["post-303035","plugin","type-plugin","status-publish","hentry","plugin_tags-audio-player","plugin_tags-podcast","plugin_tags-podcast-manager","plugin_tags-podcast-player","plugin_tags-rss-feed","plugin_category-social-and-sharing","plugin_contributors-aiopodcasting","plugin_contributors-freemius","plugin_committers-aiopodcasting","plugin_support_reps-wppodcaster"],"banners":{"banner":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/banner-772x250.png?rev=3593495","banner_2x":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/banner-1544x500.png?rev=3593495","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/icon-128x128.gif?rev=3593495","icon_2x":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/icon-256x256.gif?rev=3593495","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/screenshot-1.png?rev=3593495","caption":"<strong>Dashboard<\/strong> \u2014 The welcome screen showing the plugin logo and branding, a quick-start importer for standard podcast categories, and options to import an existing podcast from an RSS feed or create a new self-hosted podcast."},{"src":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/screenshot-2.png?rev=3593495","caption":"<strong>Podcast editor<\/strong> \u2014 The podcast edit screen organized into Podcast Details, Distribution, and Import Options tabs, with accordion sections for podcast details, participants, subscribe buttons, and follow buttons."},{"src":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/screenshot-3.png?rev=3593495","caption":"<strong>Episode editor<\/strong> \u2014 The episode edit screen with metaboxes for episode file, chapters, transcription, participants, and distribution."},{"src":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/screenshot-4.png?rev=3593495","caption":"<strong>Episodes grid layout<\/strong> \u2014 Front-end grid display of episodes with cover art, title, and duration."},{"src":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/screenshot-5.png?rev=3593495","caption":"<strong>Episodes list layout<\/strong> \u2014 Compact front-end list layout with cover art, title, and duration."},{"src":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/screenshot-6.png?rev=3593495","caption":"<strong>Episodes compact layout<\/strong> \u2014 Space-saving layout with a featured episode and an inline mini-player above a compact episode list."},{"src":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/screenshot-7.png?rev=3593597","caption":"<strong>Episode slider layout<\/strong> \u2014 Swiper-powered episode slider for embedding on landing pages."},{"src":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/screenshot-8.png?rev=3593495","caption":"<strong>Single episode player<\/strong> \u2014 The embedded episode player with playback speed, volume, download, and sharing controls."},{"src":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/screenshot-9.png?rev=3593495","caption":"<strong>Video episode player<\/strong> <em>(Premium)<\/em> \u2014 The embedded player rendering a video episode, with configurable width and aspect ratio alongside the standard playback, volume, download, and sharing controls."},{"src":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/screenshot-10.png?rev=3593495","caption":"<strong>Settings panel<\/strong> \u2014 The tabbed settings panel showing the 100+ configuration options organized by category."},{"src":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/screenshot-11.png?rev=3593495","caption":"<strong>Statistics \u2014 global view<\/strong> <em>(Premium)<\/em> \u2014 The global statistics screen showing plays and downloads over a date range with a Chart.js line graph."},{"src":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/screenshot-12.png?rev=3593495","caption":"<strong>Statistics \u2014 episode view<\/strong> <em>(Premium)<\/em> \u2014 Per-episode statistics breakdown."},{"src":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/screenshot-13.png?rev=3593495","caption":"<strong>Shortcode builder<\/strong> \u2014 The visual shortcode builder with grouped attribute controls that generate a ready-to-paste shortcode."},{"src":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/screenshot-14.png?rev=3593495","caption":"<strong>Categories page<\/strong> \u2014 Front-end categories grid with cover images."},{"src":"https:\/\/ps.w.org\/aio-podcast-studio\/assets\/screenshot-15.png?rev=3593495","caption":"<strong>Participants page<\/strong> \u2014 Front-end participant profile page with bio, social links, and linked episodes."}],"raw_content":"<!--section=description-->\n<blockquote>\n  <p><a href=\"https:\/\/demo.aiopodcasting.com\">View Demo<\/a> | <a href=\"https:\/\/aiopodcasting.com\/docs\/\">Getting Started<\/a> | <a href=\"https:\/\/aiopodcasting.com\/support\/\">Contact &amp; Support<\/a> | <a href=\"https:\/\/aiopodcasting.com\">Home Page<\/a><\/p>\n<\/blockquote>\n\n<p><strong>AiO Podcast Studio<\/strong> is a complete WordPress podcasting plugin built for creators at every stage \u2014 whether you are showcasing an existing show, self-hosting your own podcast, or migrating from a third-party platform.<\/p>\n\n<p>Whether you already have a podcast and want to display it beautifully on your WordPress site, prefer to host everything on your own server for full control, or are ready to move away from an external host entirely \u2014 AiO Podcast Studio handles every part of the workflow: importing your feed, organizing episodes and participants, generating a standards-compliant RSS feed, displaying your content with beautiful layouts, and tracking listener statistics \u2014 all inside the WordPress admin you already know.<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=GsDv9gA-Ipg&amp;rel=0<\/p>\n\n<h3>Why AiO Podcast Studio?<\/h3>\n\n<p>AiO Podcast Studio fits wherever you are in your podcasting journey \u2014 display an existing show on your site, self-host everything on your own server, or migrate away from an external platform at your own pace.<\/p>\n\n<ul>\n<li><strong>Showcase any podcast<\/strong> \u2014 embed and display your existing podcast on your WordPress site with beautiful layouts and a built-in player.<\/li>\n<li><strong>Self-hosted option<\/strong> \u2014 store audio files in your own media library and keep full ownership of your content and audience data.<\/li>\n<li><strong>Standards-compliant RSS<\/strong> \u2014 compatible with Apple Podcasts, Spotify, Amazon Music, Google Podcasts, and every directory that follows the iTunes namespace spec.<\/li>\n<li><strong>No per-episode or storage limits<\/strong> \u2014 unlimited podcasts, unlimited episodes, unlimited categories.<\/li>\n<li><strong>Developer-friendly<\/strong> \u2014 clean GPL code, filter\/action hooks throughout, and full WordPress Coding Standards compliance.<\/li>\n<\/ul>\n\n<h3>Key Features<\/h3>\n\n<p><strong>Import &amp; Migration<\/strong><\/p>\n\n<ol>\n<li><strong>RSS Feed Import<\/strong> \u2014 Paste your existing podcast RSS URL and import your entire back catalog in batches. Metadata, artwork, and episode files are all pulled in automatically.<\/li>\n<\/ol>\n\n<p><strong>Content Management<\/strong><\/p>\n\n<ol>\n<li><strong>Unlimited Podcasts &amp; Episodes<\/strong> \u2014 Create and manage as many podcasts and episodes as you want \u2014 no paywalls, no artificial limits.<\/li>\n<li><strong>Audio &amp; Video Support<\/strong> \u2014 Publish both audio and video podcast episodes from one unified interface. Video podcast support requires the Premium upgrade.<\/li>\n<li><strong>Episode Chapters<\/strong> \u2014 Add chapter markers so listeners can jump to specific segments inside an episode.<\/li>\n<li><strong>Episode Transcripts<\/strong> \u2014 Attach transcripts to episodes for improved accessibility and SEO indexing.<\/li>\n<li><strong>Participant Management<\/strong> \u2014 Add hosts, guests, and contributors as reusable participant profiles that can be linked to multiple shows and episodes.<\/li>\n<li><strong>Unlimited Categories &amp; Tags<\/strong> \u2014 Organize your podcast library with hierarchical categories and flat tags. Front-end filters use them for smart discovery. The standard WordPress categories and tags can optionally be switched on as well, so your podcasts and episodes join your site's own category and tag archives alongside your posts.<\/li>\n<li><strong>Comments &amp; Discussions<\/strong> \u2014 Enable listener comments on individual episodes to build community.<\/li>\n<\/ol>\n\n<p><strong>Distribution &amp; RSS Feed<\/strong><\/p>\n\n<ol>\n<li><strong>Standards-Compliant RSS Feed<\/strong> \u2014 Generates a fully compliant podcast RSS feed with iTunes, content, and media namespace support \u2014 accepted by Apple Podcasts, Spotify, Amazon Music, and more.<\/li>\n<li><strong>Follow &amp; Subscribe Buttons<\/strong> \u2014 Add platform-branded follow buttons (Apple Podcasts, Spotify, Amazon Music, and others) to your podcast and episode pages.<\/li>\n<li><strong>Social Sharing<\/strong> \u2014 Built-in share buttons let listeners share individual episodes across social platforms.<\/li>\n<li><strong>Episode Downloads<\/strong> \u2014 Allow listeners to download episodes for offline listening with a single click.<\/li>\n<\/ol>\n\n<p><strong>Display &amp; Layouts<\/strong><\/p>\n\n<ol>\n<li><strong>Multiple Layout Options<\/strong> \u2014 Display episodes in grid, list, compact, or slider layouts. Display podcasts in a grid. Display categories as grids, lists, or dropdowns.<\/li>\n<li><strong>Customizable Podcast Player<\/strong> \u2014 A fully featured embedded media player with playback speed control, volume, and playlist support. Styled to match your site.<\/li>\n<li><strong>Smart Search &amp; Filters<\/strong> \u2014 Front-end filter forms let listeners search, filter by tag, and sort episodes by date, title, or duration.<\/li>\n<li><strong>Related Episodes<\/strong> \u2014 Automatically suggest relevant episodes at the end of each episode page to keep listeners engaged.<\/li>\n<li><strong>Pagination &amp; Load More<\/strong> \u2014 Browse large episode archives with standard numbered pagination or a smooth \"Load More\" button.<\/li>\n<li><strong>Flexible Embedding<\/strong> \u2014 Place podcasts, episodes, categories, tags, and participant lists anywhere using Gutenberg blocks, shortcodes, or classic widgets.<\/li>\n<li><strong>Page Builder Friendly<\/strong> \u2014 Works with Elementor, Divi, Beaver Builder, and other popular page builders via shortcodes.<\/li>\n<\/ol>\n\n<p><strong>Analytics &amp; Statistics<\/strong><\/p>\n\n<ol>\n<li><strong>Advanced Statistics<\/strong> <em>(Premium)<\/em> \u2014 Track plays, downloads, and listener trends with built-in statistics. View breakdowns by podcast, by episode, and over custom date ranges. No third-party analytics service required.<\/li>\n<\/ol>\n\n<p><strong>Settings &amp; Customization<\/strong><\/p>\n\n<ol>\n<li><strong>100+ Settings for Full Control<\/strong> \u2014 Fine-tune every aspect of the player, feed, display layouts, image sizes, SEO output, privacy behavior, and more through a structured settings panel.<\/li>\n<li><strong>Shortcode Builder, Blocks &amp; Widgets<\/strong> \u2014 A visual shortcode builder lets you configure and preview shortcodes without writing any code. Gutenberg blocks and classic widgets are also included for flexible content placement anywhere on your site.<\/li>\n<\/ol>\n\n<p><strong>Accessibility, SEO &amp; Standards<\/strong><\/p>\n\n<ol>\n<li><strong>SEO Optimized<\/strong> \u2014 Integrates with Yoast SEO and Rank Math to output schema markup for podcasts and episodes. Transcripts and structured metadata improve search engine visibility.<\/li>\n<li><strong>GDPR Compliant<\/strong> \u2014 Fine-grained privacy controls. Statistics tracking respects user consent signals.<\/li>\n<li><strong>Multilingual Support<\/strong> \u2014 Full WPML and Polylang compatibility for multilingual podcast sites.<\/li>\n<\/ol>\n\n<p><strong>Developer &amp; Platform<\/strong><\/p>\n\n<ol>\n<li><strong>User Role Restrictions<\/strong> \u2014 Granular capability controls let you define who can create, edit, publish, and manage podcast content.<\/li>\n<li><strong>Built on WordPress Standards<\/strong> \u2014 Clean, well-documented GPL code. Custom post types, taxonomies, the Settings API, and the REST API \u2014 no proprietary lock-in.<\/li>\n<\/ol>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the following external services. All share-button connections are user-initiated \u2014 no data is transmitted to any third-party server at page load. Data is only sent when a visitor actively clicks a share button, at which point their browser navigates to the service URL.<\/p>\n\n<h4>Facebook<\/h4>\n\n<p>This plugin generates share links that allow visitors to share podcast episodes on Facebook via the Facebook Share dialog.<\/p>\n\n<p>Data sent: The episode page URL is passed as a query parameter in the share link.\nWhen: Only when a visitor clicks the Facebook share button.<\/p>\n\n<p><a href=\"https:\/\/www.facebook.com\/legal\/terms\">Terms of Service<\/a> | <a href=\"https:\/\/www.facebook.com\/privacy\/policy\/\">Privacy Policy<\/a><\/p>\n\n<h4>Twitter \/ X<\/h4>\n\n<p>This plugin generates share links that allow visitors to share podcast episodes on Twitter \/ X via the Tweet Intent dialog.<\/p>\n\n<p>Data sent: The episode title and page URL are passed as query parameters in the share link.\nWhen: Only when a visitor clicks the Twitter \/ X share button.<\/p>\n\n<p><a href=\"https:\/\/twitter.com\/en\/tos\">Terms of Service<\/a> | <a href=\"https:\/\/twitter.com\/en\/privacy\">Privacy Policy<\/a><\/p>\n\n<h4>LinkedIn<\/h4>\n\n<p>This plugin generates share links that allow visitors to share podcast episodes on LinkedIn via the LinkedIn Share Article dialog.<\/p>\n\n<p>Data sent: The episode title and page URL are passed as query parameters in the share link.\nWhen: Only when a visitor clicks the LinkedIn share button.<\/p>\n\n<p><a href=\"https:\/\/www.linkedin.com\/legal\/user-agreement\">Terms of Service<\/a> | <a href=\"https:\/\/www.linkedin.com\/legal\/privacy-policy\">Privacy Policy<\/a><\/p>\n\n<h4>Pinterest<\/h4>\n\n<p>This plugin generates share links that allow visitors to pin podcast episodes on Pinterest via the Pinterest Pin It dialog.<\/p>\n\n<p>Data sent: The episode title, page URL, and optionally the episode image URL are passed as query parameters in the share link.\nWhen: Only when a visitor clicks the Pinterest share button.<\/p>\n\n<p><a href=\"https:\/\/policy.pinterest.com\/en\/terms-of-service\">Terms of Service<\/a> | <a href=\"https:\/\/policy.pinterest.com\/en\/privacy-policy\">Privacy Policy<\/a><\/p>\n\n<h4>Tumblr<\/h4>\n\n<p>This plugin generates share links that allow visitors to share podcast episodes on Tumblr via the Tumblr Share dialog.<\/p>\n\n<p>Data sent: The episode title, page URL, and optionally the episode description are passed as query parameters in the share link.\nWhen: Only when a visitor clicks the Tumblr share button.<\/p>\n\n<p><a href=\"https:\/\/www.tumblr.com\/policy\/en\/terms-of-service\">Terms of Service<\/a> | <a href=\"https:\/\/www.tumblr.com\/policy\/en\/privacy\">Privacy Policy<\/a><\/p>\n\n<h4>WhatsApp<\/h4>\n\n<p>This plugin generates share links that allow visitors to share podcast episodes via WhatsApp. On mobile devices the native WhatsApp app is opened; on desktop the WhatsApp web interface is used.<\/p>\n\n<p>Data sent: The episode title and page URL are included in the share link URL.\nWhen: Only when a visitor clicks the WhatsApp share button.<\/p>\n\n<p><a href=\"https:\/\/www.whatsapp.com\/legal\/terms-of-service\">Terms of Service<\/a> | <a href=\"https:\/\/www.whatsapp.com\/legal\/privacy-policy\">Privacy Policy<\/a><\/p>\n\n<h4>Remote RSS Feeds<\/h4>\n\n<p>When importing or refreshing podcasts, this plugin fetches the remote RSS feed URL provided by the site administrator. This sends an HTTP GET request directly to the RSS feed's host server.<\/p>\n\n<p>Data sent: No personal visitor data is included in the request. The request is a standard HTTP GET to retrieve the RSS feed document.\nWhen: When a site administrator triggers an import or sync from the plugin's import screen.<\/p>\n\n<h3>Premium Features<\/h3>\n\n<p>AiO Podcast Studio includes premium features for creators and teams who need more advanced control.<\/p>\n\n<h4>Video Podcasting<\/h4>\n\n<p>Publish video podcast episodes alongside your audio shows. Upload or link video files directly from the episode editor, and let the built-in player handle the rest.<\/p>\n\n<h4>Podcasts &amp; Episodes Access Restrictions<\/h4>\n\n<p>Control who can listen to your content. Restrict entire podcasts or individual episodes to specific WordPress user roles \u2014 perfect for membership sites, private shows, and course-based content.<\/p>\n\n<h4>Advanced Statistics<\/h4>\n\n<p>Get a deeper view of your audience. Track plays and downloads per podcast and per episode, and explore trends over any custom date range.<\/p>\n\n<h3>Coming Soon<\/h3>\n\n<p>We are actively working on the next generation of AiO Podcast Studio. Here is what is planned for the upcoming release:<\/p>\n\n<h4>Podcasting 2.0 Support<\/h4>\n\n<p>The <a href=\"https:\/\/podcasting2.org\/\">Podcasting 2.0<\/a> initiative (<code>podcast:<\/code> namespace) extends the standard RSS format with richer metadata. The next release will import and integrate these elements automatically when you sync your podcast feed:<\/p>\n\n<ul>\n<li><strong>Transcripts<\/strong> \u2014 Import per-episode transcript URLs and types from <code>&lt;podcast:transcript&gt;<\/code> tags.<\/li>\n<li><strong>Chapters<\/strong> \u2014 Import chapter file URLs from <code>&lt;podcast:chapters&gt;<\/code> tags.<\/li>\n<li><strong>Hosts &amp; Guests<\/strong> \u2014 Import hosts and guests with roles and images from <code>&lt;podcast:person&gt;<\/code> tags.<\/li>\n<li><strong>Feed Lock<\/strong> \u2014 Respect the <code>&lt;podcast:locked&gt;<\/code> flag during feed migration.<\/li>\n<li><strong>Stable Feed GUID<\/strong> \u2014 Store the permanent feed identifier from <code>&lt;podcast:guid&gt;<\/code>.<\/li>\n<\/ul>\n\n<p>If you import a podcast today and your feed already uses these tags, simply re-sync your podcast after upgrading to pull in the new fields \u2014 no manual data entry required.<\/p>\n\n<h3>Feedback &amp; Feature Requests<\/h3>\n\n<p>Missing something? <a href=\"https:\/\/aiopodcasting.com\/support\/\">Contact us<\/a> and we will be happy to review your suggestion and include it in a future release if it is a good fit.<\/p>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Log in to your WordPress admin panel.<\/li>\n<li>Go to <strong>Plugins \u2192 Add Plugin<\/strong>.<\/li>\n<li>Search for <strong>AiO Podcast Studio<\/strong>.<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin ZIP file.<\/li>\n<li>Upload the <code>aio-podcast-studio<\/code> folder to <code>\/wp-content\/plugins\/<\/code> via FTP, or use <strong>Plugins \u2192 Add Plugin \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen.<\/li>\n<\/ol>\n\n<h4>Getting Started<\/h4>\n\n<ol>\n<li>After activation, a <strong>Podcasts<\/strong> menu item appears in the WordPress admin sidebar.<\/li>\n<li>Go to <strong>Podcasts \u2192 Add New Podcast<\/strong> to create your first podcast manually, or paste an RSS feed URL to import an existing show.<\/li>\n<li>Add episodes under <strong>Episodes \u2192 Add New Episode<\/strong>, or let the importer populate them from your feed.<\/li>\n<li>Configure the player, feed, and display options under <strong>Podcasts \u2192 Settings<\/strong>.<\/li>\n<li>Embed your content anywhere using the provided Gutenberg blocks, shortcodes, or widgets.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20aio%20podcast%20studio%20support%20video%20podcasts%3F\"><h3>Does AiO Podcast Studio support video podcasts?<\/h3><\/dt>\n<dd><p>Yes, with the Premium upgrade. The core plugin supports audio podcast episodes. Video podcast publishing and video playback in the built-in player require the Premium upgrade. The RSS feed correctly identifies the media type for each episode regardless of tier.<\/p><\/dd>\n<dt id=\"can%20i%20import%20my%20existing%20podcast%20from%20apple%20podcasts%2C%20spotify%2C%20or%20another%20host%3F\"><h3>Can I import my existing podcast from Apple Podcasts, Spotify, or another host?<\/h3><\/dt>\n<dd><p>Yes. Paste your public RSS feed URL into the importer (<strong>Podcasts \u2192 Add New Podcast \u2192 Import Podcast from RSS Feed<\/strong>). The plugin fetches the feed, creates the podcast and episode records, and pulls in metadata and artwork. Your original audio files are not re-uploaded \u2014 episode enclosure URLs continue to point to your existing host unless you re-upload them.<\/p><\/dd>\n<dt id=\"is%20there%20a%20limit%20on%20the%20number%20of%20podcasts%20or%20episodes%3F\"><h3>Is there a limit on the number of podcasts or episodes?<\/h3><\/dt>\n<dd><p>No. You can create an unlimited number of podcasts, episodes, categories, tags, and participant profiles.<\/p><\/dd>\n<dt id=\"does%20the%20rss%20feed%20work%20with%20apple%20podcasts%20and%20spotify%3F\"><h3>Does the RSS feed work with Apple Podcasts and Spotify?<\/h3><\/dt>\n<dd><p>Yes. The generated feed follows the RSS 2.0 specification extended with the iTunes podcast namespace \u2014 the same format required by Apple Podcasts, Spotify, Amazon Music, and most other directories.<\/p><\/dd>\n<dt id=\"why%20are%20older%20episodes%20missing%20from%20my%20rss%20feed%3F\"><h3>Why are older episodes missing from my RSS feed?<\/h3><\/dt>\n<dd><p>Feeds include the most recent 300 episodes. Apps and directories only ever see what the feed contains, so once a podcast grows past 300 episodes the oldest ones stop appearing in Apple Podcasts, Spotify, and your listeners' apps. Episodes a listener has already downloaded are not affected, and nothing is deleted \u2014 the episodes remain on your site and keep their pages.<\/p>\n\n<p>The limit keeps feeds quick to fetch and parse. It applies to member feeds in the same way. To change it, add this to your theme's <code>functions.php<\/code> file or a custom plugin:<\/p>\n\n<pre><code>add_filter( 'aiopod_feed_episodes_limit', function() { return 500; } );\n<\/code><\/pre><\/dd>\n<dt id=\"i%20changed%20something%20but%20my%20rss%20feed%20has%20not%20updated\"><h3>I changed something but my RSS feed has not updated<\/h3><\/dt>\n<dd><p>Feeds are cached, so that podcast apps checking for new episodes do not rebuild the whole feed every time. To refresh a feed straight away, open the podcast and click <strong>Update<\/strong>. That clears both the public feed and your members' feeds for that podcast.<\/p>\n\n<p>Developers who would rather not cache feeds at all can add this to their theme's <code>functions.php<\/code> file or a custom plugin:<\/p>\n\n<pre><code>add_filter( 'aiopod_feed_cache_enabled', '__return_false' );\n<\/code><\/pre><\/dd>\n<dt id=\"does%20the%20plugin%20support%20multiple%20podcasts%20on%20one%20site%3F\"><h3>Does the plugin support multiple podcasts on one site?<\/h3><\/dt>\n<dd><p>Yes. Each podcast is an independent post with its own RSS feed URL, settings, episodes, and participants.<\/p><\/dd>\n<dt id=\"where%20are%20statistics%20stored%3F\"><h3>Where are statistics stored?<\/h3><\/dt>\n<dd><p>All statistics data is stored in your own WordPress database. No data is sent to external services.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20translation-ready%3F\"><h3>Is the plugin translation-ready?<\/h3><\/dt>\n<dd><p>Yes. All user-facing strings use the <code>aio-podcast-studio<\/code> text domain. The plugin ships with a <code>.pot<\/code> template file in the <code>languages\/<\/code> directory.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20with%20caching%20plugins%3F\"><h3>Does the plugin work with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. Standard page caching is compatible. The RSS feed is generated server-side on each request; if you use a full-page caching plugin, exclude your podcast feed URLs from the cache or use the feed caching recommended in the plugin settings.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20multisite%3F\"><h3>Is the plugin compatible with multisite?<\/h3><\/dt>\n<dd><p>Yes. The plugin can be installed on a WordPress Multisite network, but it must be activated individually on each site. Network-wide activation is not supported.<\/p><\/dd>\n<dt id=\"can%20i%20use%20the%20standard%20wordpress%20categories%20and%20tags%3F\"><h3>Can I use the standard WordPress categories and tags?<\/h3><\/dt>\n<dd><p>Yes, although the plugin's own Podcast Categories and Episode Tags are the better fit for most sites: they are what your RSS feed publishes to Apple Podcasts and Spotify, and their pages are rendered by the plugin with your artwork and player. The standard WordPress categories and tags are worth adding when your podcast sits alongside a blog and you want one structure across everything you publish, or when you already use other plugins that work with them. They come with a few limits, described below.<\/p>\n\n<p>To switch them on, go to Settings \u2192 General \u2192 WordPress Categories &amp; Tags and tick one or both. The setting is off by default, and your own Podcast Categories and Episode Tags carry on working exactly as before \u2014 this adds a second set of boxes, it does not replace the first.<\/p>\n\n<p>Once it is on, your podcasts and episodes are listed in your site's own <code>\/category\/\u2026\/<\/code> and <code>\/tag\/\u2026\/<\/code> archives beside your blog posts, so someone browsing that subject finds your audio as well as your writing. Those archives are drawn by <strong>your theme<\/strong>, not by this plugin, so a podcast appears there looking like an ordinary blog post \u2014 no player, no episode count. The terms are not shown on the plugin's own output either: single podcast and episode pages, episode lists and the player continue to show your Podcast Categories and Episode Tags only. If you want the boxes purely for organising your own content, untick \"Include in WordPress Archives\" in the same settings section.<\/p>\n\n<p>Your RSS feed is not affected either way. Turning the setting back off removes your podcasts and episodes from those archives but keeps everything you filed, so switching it on again restores your work exactly as it was.<\/p><\/dd>\n<dt id=\"can%20i%20control%20who%20is%20allowed%20to%20listen%20to%20my%20podcasts%20and%20episodes%3F\"><h3>Can I control who is allowed to listen to my podcasts and episodes?<\/h3><\/dt>\n<dd><p>Yes, with the Premium upgrade. Restrict an entire podcast or an individual episode to specific WordPress user roles, straight from the podcast or episode editor. No other plugin is needed.<\/p>\n\n<p>Visitors without access see your restricted message in place of the episode, and the player is not loaded for them. In episode lists the episode is still shown with its artwork and title, marked with a padlock, so visitors can see what they are missing. Restricted episodes are left out of the RSS feed, and their download links return a \"403 Forbidden\" response to anyone without access \u2014 see \"What exactly does restricting an episode protect?\" below for what that does and does not cover.<\/p>\n\n<p>Restricting a podcast also restricts every episode belonging to it, including episodes added later by an RSS import or a scheduled sync, so you do not have to edit each one. If you would rather control access per episode, leave the podcast unrestricted and restrict individual episodes instead. To turn the inheritance off altogether, add this to your theme's <code>functions.php<\/code> file or a custom plugin:<\/p>\n\n<pre><code>add_filter( 'aiopod_inherit_podcast_access', '__return_false' );\n<\/code><\/pre><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20paid%20memberships%20pro%3F\"><h3>Is the plugin compatible with Paid Memberships Pro?<\/h3><\/dt>\n<dd><p>Yes. To restrict podcasts and episodes by membership level, you will also need the <a href=\"https:\/\/www.paidmembershipspro.com\/add-ons\/custom-post-type-membership-access\/\">Custom Post Type Membership Access<\/a> add-on, which is not part of the free Paid Memberships Pro plugin \u2014 see their website for what your plan includes. Select Podcasts and\/or Episodes on the add-on's settings page, then use the \"Require Membership\" box on any podcast or episode to choose which levels may view it.<\/p>\n\n<p>The restriction is applied everywhere the content appears: single pages, shortcodes, blocks, widgets, the player, and the RSS feed. Visitors without the required level see the restriction message from Paid Memberships Pro itself, so your membership levels, custom messages, and translations are used exactly as you set them up.<\/p>\n\n<p>The public feed shows the same episodes to everyone and leaves restricted ones out. Members can also have a feed of their own \u2014 see the next question.<\/p><\/dd>\n<dt id=\"can%20members%20subscribe%20to%20a%20private%20podcast%20feed%20in%20their%20podcast%20app%3F\"><h3>Can members subscribe to a private podcast feed in their podcast app?<\/h3><\/dt>\n<dd><p>Yes. This needs the <a href=\"https:\/\/www.paidmembershipspro.com\/add-ons\/pmpro-member-rss\/\">Member RSS<\/a> add-on for Paid Memberships Pro, which is not part of the free Paid Memberships Pro plugin \u2014 see their website for what your plan includes.<\/p>\n\n<p>Each member gets a feed address of their own. Opened in a podcast app, it delivers the episodes their membership entitles them to alongside every unrestricted episode. Everyone else carries on receiving the public feed, with restricted episodes left out of it.<\/p>\n\n<p>Members find their addresses on the page holding the <code>[pmpro_member_rss]<\/code> shortcode, or on their membership account page. Only the podcasts their own membership gives them access to are listed, so every address they are shown is one that works for them. Two ways of signing in are supported, both of them the add-on's own:<\/p>\n\n<ul>\n<li><strong>Member key in the address<\/strong> \u2014 the simpler option, and the one every podcast app can handle. The key is part of the address, so the address itself has to be treated as private.<\/li>\n<li><strong>Basic authentication<\/strong> \u2014 the member supplies their WordPress username and an application password. Stronger, because nothing secret sits in the address, but only some podcast apps support it. Turn it on under Memberships \u2192 Settings \u2192 Advanced.<\/li>\n<\/ul>\n\n<p>Regenerating a member's key takes effect at once: the old address stops working, and that member has to update the subscription in their app.<\/p><\/dd>\n<dt id=\"what%20exactly%20does%20restricting%20an%20episode%20protect%3F\"><h3>What exactly does restricting an episode protect?<\/h3><\/dt>\n<dd><p>Restricting an episode keeps it out of the public feed, replaces the player with your restricted message on the site, and makes the episode's download link answer \"403 Forbidden\" to anyone without access.<\/p>\n\n<p>It does not encrypt the media file or move it out of reach. The file stays where you uploaded it, and anyone who already has its direct address \u2014 from a link someone shared, or from a browser's network tools \u2014 can still open it. If you have also turned off download tracking with the <code>aiopod_rss_tracking_enabled<\/code> filter, to route downloads through an analytics service for example, feeds carry those direct addresses and the 403 check does not come into play at all.<\/p>\n\n<p>Where that matters, host the media on a service that issues signed addresses that expire. We are also working on built-in support for third-party storage services such as Amazon S3, which will make this easier to set up.<\/p><\/dd>\n<dt id=\"where%20can%20i%20report%20a%20bug%20or%20request%20a%20feature%3F\"><h3>Where can I report a bug or request a feature?<\/h3><\/dt>\n<dd><p>Please open a support thread on the WordPress.org plugin support forum.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>New: Podcasts and episodes can now use the standard WordPress categories and tags, alongside the plugin's own Podcast Categories and Episode Tags. Switch it on under Settings \u2192 General \u2192 WordPress Categories &amp; Tags; it is off by default, and it does not change your RSS feed. Once on, your podcasts and episodes are listed in your site's own category and tag archives alongside your posts, and other plugins that work with the standard taxonomies reach your podcast content with no further setup.<\/li>\n<li>New: Added an \"Episode File URL Format\" setting under Settings \u2192 General \u2192 Performance &amp; Compatibility. Some servers answer any address ending in a media file extension themselves, rather than passing the request on to WordPress. Where that happens, listeners are sent to your home page and podcast apps report the episode as an invalid or unplayable file. Two alternative address formats are now available for those servers.<\/li>\n<li>New: The player can now show the episode description below the episode details, so listeners can see what an episode is about without leaving the page. Switch it on under Settings \u2192 Display \u2192 Player by ticking \"Episode Description (Excerpt)\", and set its own \"Excerpt Length\" there \u2014 the player is usually best kept shorter than a list. Where a player sits above an episode list, the description changes with the episode you select. The option can also be set per shortcode, block, and widget.<\/li>\n<li>Tweak: The \"Categories\" column and filter on the Podcasts screen are now labelled \"Podcast Categories\", and the \"Tags\" column and filter on the Episodes screen are now labelled \"Episode Tags\" \u2014 the names the plugin already uses for them elsewhere. This keeps them distinct from the standard WordPress Categories and Tags columns, which appear alongside them when the new setting above is switched on.<\/li>\n<li>Tweak: Renamed the \"Performance\" settings section to \"Performance &amp; Compatibility\". Alongside the speed-related options it also holds settings for working around server and theme behaviour, and the name now says so.<\/li>\n<li>Tweak: For sites using Yoast SEO or Rank Math, the breadcrumb trail on a single episode now names the show the episode belongs to, reading \"Home &gt; Podcasts &gt; Your Show &gt; Episode Title\" instead of \"Home &gt; Episodes &gt; Episode Title\". The show is the page a listener would actually have come through, and naming it means the trail Google prints beneath your search result says which podcast an episode is from. The episodes archive no longer appears in an episode's trail. Both SEO plugins now read the same way, whether or not you use custom archive pages and wherever those pages sit in your page structure. An episode belonging to a podcast you have not published \u2014 one still in draft, or set to private \u2014 keeps the previous trail, and the unpublished podcast is never named or linked.<\/li>\n<li>Fix (Premium): Restricted podcasts and episodes could show their full description in listings the plugin does not render itself \u2014 your theme's category, tag and search pages, and the feeds for them \u2014 even though the same description is withheld on the episode's own page. Restricted content is now protected wherever it is listed. The title, image and any excerpt you have written yourself are still shown, so the episode stays discoverable and can still be found by search engines, but the description itself is not. The message explaining that content is restricted continues to appear only on the podcast or episode page, never inside a listing.<\/li>\n<li>Fix: Imported podcasts and episodes took their excerpt from the iTunes summary, which carries a full-length description rather than a short one. Excerpts therefore arrived at full length, and the excerpt length setting appeared to do nothing. Imports no longer set an excerpt at all: every description the feed offers is read into the content, and the excerpt is generated from it, so the excerpt length setting is always applied. The excerpt field is left free for wording you write yourself, and anything you put there is shown in full. Re-importing with \"Update existing content\" enabled refreshes the description and clears the excerpt \u2014 this is what repairs podcasts and episodes imported before this version, but it also removes an excerpt you have written by hand, so re-import deliberately. Nothing changes on existing content until you import again. Developers who know their feed puts a genuinely short line in a particular element can map it onto the excerpt with the new <code>aiopod_import_parsed_podcast<\/code> and <code>aiopod_import_parsed_episode<\/code> filters.<\/li>\n<li>Fix: Pages sitting underneath a custom archive page returned \"404 Not Found\". A category, tag, or participant page placed under the podcast archive page \u2014 or an episode archive page placed under the podcast one \u2014 was looked up as a podcast, was not found, and produced the error. Individual category and participant pages were unaffected, which made this look like a problem with the overview pages alone. These pages now display correctly wherever they sit in the page hierarchy.<\/li>\n<li>Fix: For sites using Yoast SEO or Rank Math, the breadcrumb trail was missing the pages above your podcast content. On a single podcast the archive page was absent altogether: assigning a custom archive page removes the default podcast archive, and both SEO plugins build their archive breadcrumb from that default, so the trail jumped straight from your home page to the podcast. On the category, tag, participant, and archive pages, whichever page they are nested inside could be missing as well. Every one of these pages now carries its full path \u2014 and nothing is added twice where your SEO plugin already had it right. Sites with no custom archive page assigned keep the archive breadcrumb they already had.<\/li>\n<li>Fix: For sites using Yoast SEO or Rank Math, the category, tag, and participant pages sent incomplete breadcrumb information to search engines. The step naming the category, tag, or participant being viewed was missing its address, which Yoast SEO treats as reason to discard the entire trail and Rank Math treats as reason to leave that step out \u2014 so Yoast sent nothing at all, and Rank Math sent a trail that stopped one step short. Both now send the whole trail. This is separate from the plugin's own \"Show Breadcrumbs\" option for these pages, which was never affected: what visitors saw on the page was correct throughout, and it was only the copy read by search engines that was wrong.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>New: Added support for Paid Memberships Pro and its \"Custom Post Type Membership Access\" add-on. Select Podcasts and\/or Episodes on the add-on's settings page and your membership restrictions are then enforced everywhere they appear \u2014 single pages, shortcodes, blocks, widgets, and the player.<\/li>\n<li>New: Restricted podcasts and episodes now display the restriction message from Paid Memberships Pro instead of a generic one, so your membership levels, custom non-member text, sign-up links, and translations are all used exactly as you configured them.<\/li>\n<li>New: Restricting a podcast now restricts every episode belonging to it, so a show can be closed off without editing each episode, and episodes added later by an RSS import or a scheduled sync are covered automatically. This applies to Paid Memberships Pro and to role-based restrictions in Premium alike. Developers can turn it off with the <code>aiopod_inherit_podcast_access<\/code> filter to restrict episodes individually instead.<\/li>\n<li>New: Added support for the \"Member RSS\" add-on for Paid Memberships Pro. Members can subscribe to a podcast in their own podcast app using a feed address of their own, and receive the episodes their membership entitles them to. Everyone else continues to receive the public feed. Both of the add-on's sign-in methods work \u2014 a member key in the address, and basic authentication with a WordPress application password.<\/li>\n<li>New: A member's sign-in details are carried through to the episode media links inside their feed, so podcast apps can download the audio without being turned away.<\/li>\n<li>New: A member's own podcast feeds are now listed on their RSS feeds page and their membership account page, so they can find and copy their feed addresses rather than being sent one by hand. Only the podcasts their membership gives them something extra in are listed \u2014 whether the whole show is for members, or it is a public show with members-only episodes in it.<\/li>\n<li>New: Podcast feeds now answer a repeat request with \"304 Not Modified\" when nothing has changed, so podcast apps that check frequently no longer download the whole feed every time.<\/li>\n<li>Fix: A restricted podcast or episode still displayed its full content, including a working player, when the restriction came from a membership plugin. This happened because our content was generated after the membership plugin had already replaced it.<\/li>\n<li>Fix: Restricted episodes were listed in the public RSS feed, exposing their title, description, and artwork, and appearing in podcast apps as episodes that cannot be played. Restricted episodes are now left out of the feed. This applies to role-based restrictions in Premium as well.<\/li>\n<li>Fix: Episode media files could be downloaded by anyone with the download URL, even when the episode was restricted. Downloads now return a \"403 Forbidden\" response for visitors without access. This applies to role-based restrictions in Premium as well, so files for restricted episodes are no longer reachable.<\/li>\n<li>Fix: Feed caching never took effect. The cached copy was stored in a format the database rejected, and the failure was hidden, so every request rebuilt the entire feed from scratch. Feeds are now cached as intended and are served roughly twice as fast.<\/li>\n<li>Fix (Premium): Role-based restrictions could grant back access that another access-control plugin had already denied, when restrictions were switched off globally or the episode was not individually marked as restricted.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>New: Added a \"Try a sample feed\" link below the RSS Feed URL field on the Add New Podcast screen. Clicking it fills in a sample podcast feed URL so you can test the import with a single click.<\/li>\n<li>Tweak: The player's download button is now hidden for streaming and embedded sources (HLS, DASH \u2014 plus YouTube and Vimeo in Premium), since these are not downloadable files.<\/li>\n<li>Tweak: Added a light background color to artwork images on the front end, providing a subtle loading state and a consistent surface for placeholder and transparent images.<\/li>\n<li>Tweak: The default tags layout is now Tag Cloud instead of List. Existing sites keep their saved layout setting.<\/li>\n<li>Tweak: Updated Freemius SDK to version 2.13.4.<\/li>\n<li>Fix (Premium): YouTube and Vimeo episodes did not start playing when selected from the episodes list while the player's autoplay setting was disabled.<\/li>\n<li>Fix: Switching between episodes with different source types (MP3, HLS, DASH \u2014 plus YouTube, Vimeo, and video files in Premium) could intermittently fail to load the newly selected episode.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Tweak: Lowered the per-image download timeout and reduced the import batch size while featured-image downloading is enabled, keeping each request well within typical shared-hosting limits.<\/li>\n<li>Fix: RSS imports could fail with a \"The connection to the server was lost\" error on shared hosting when downloading featured images for large feeds. Episodes are now imported in time-bounded, automatically resumable batches so imports complete reliably regardless of the host's request execution limit.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Create, manage, and publish podcasts in WordPress. Import via RSS, organize episodes, and distribute to Apple Podcasts, Spotify, and more.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/303035","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=303035"}],"author":[{"embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/aiopodcasting"}],"wp:attachment":[{"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=303035"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=303035"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=303035"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=303035"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=303035"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=303035"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}