Podlove Publisher 2.2: Say hello to image caching

Four rotations

Hello everyone: a new Podlove Publisher release is out and it’s again an incremental update that focuses mostly on a single area: this time it’s all about images.

Because we are making use of WordPress latest image subsystem we have also upped the requirements to WordPress version 3.5 (however, we recommend using the very latest version of WordPress which as of today is 4.2.2).

As usual, feel free to discuss the release with the Podlove Community.

Images: URLs, caches, sizes and retina

As you might know, we have decided to go with external URLs when it comes to things like images. Podcast and episode image as well as avatars are all configured by providing external URLs. Problem was that it was difficult to control image and file size which can lead to huge load times for episode and archive pages etc.

We have now added an internal and automatic image cache that not only caches images but also automatically resizes images depending on the usage context. This should reduce image load times significantly.

We have also added new Podlove Template accessors to easily include those images in your templates. Use expressions like podcast.image.html, podcast.image({fallback: true}).html or contributor.image.html({ width: 32 }) to get proper <img> tags for your HTML.

Not only are these accessors easier to use than the old ones (which are now deprecated), they also bring the added benefit that we automatically provide “retina” images (the same image linked in 2x and 3x versions) to make the picture look nice on higher-resolution displays. Social and donation service icons have also been refreshed and are provided in higher resolutions.

The whole cache is put in the ./wp-content/cache/podlove directory and is properly marked so it can be automatically excluded by your backup plugin.

What about the Media Library?

We know that some of you would like to see a tighter integration with the WordPress Media Library to lessen the dependencies on external URLs and we have been discussing that. We might tackle this in a future update but it needs a lot of second thoughts in many ways.

Right now, Podlove Publisher is aimed at advanced users but we’d like to bring it all to a level where the tool is nice and fancy for starters too. This would include making the setup much much easier, automate the selection of hosting providers, handle direct uploads and make the setup of assets and feeds simpler and mostly automatic. We’re getting there eventually.

But we know we have demanding users that also want to see advancements in many other areas that are currently our focus.

So on the plus side you can be assured we have neither a lack of ideas nor a lack of todo items on our lists. You can help us getting to all these places by making a donation (or even better, subscribe to our professional support) and promoting our projects to other podcasters and podcast app developers in particular.

Introducing paid Podlove Publisher Support

Hi, I’m Eric.

I’m the guy who started developing the Podlove Publisher plugin more than three years ago with this commit. A year later, Podlove started to get significant support by donations and crowdfunding — from you. As I am the one who got the biggest chunk of it: Thank you!

Today, more than three years after the Podlove Publisher project started, I’m still here. And I’m just as excited to get us through the Roadmap as on day one. We have plenty ideas for how to improve the Podlove Publisher. The main constraint is time.

My aim is to make working on the Publisher, or other projects in the Podlove universe, a sustainable endeavor for me. Ideally full-time. Today I am taking the first step in that direction. Let me explain what I have worked on recently:

Professional Support for Podlove Publisher

According to WordPress we reached over 1000 active installs. Woohoo! While user numbers increased, so did the time we have to spend in our support channels. We have high standards to the quality of support we provide, but time spent answering questions is also time spent not working on the plugin.

Starting today, we offer private, professional support at publisher.podlove.org/support. I set up a ticket system where you can ask questions and get help in a confidential environment. All conversations will only be shared between you and our Support Agents (a fancy term for “me”). As of right now, every support request will be handled by me, the plugin developer, directly. So no matter if your questions are technical or not, I will be able to help. The support interface is english only, but please feel free to speak german.

There are three tiers for different requirements:

Basic — 5€ per month and podcast is the entry package for hobbyists. You get full access to the support system and your questions will be answered.

Business — 15€ per month and podcast is for professional podcasters who need quicker responses. This package includes “Backend Support”. If you like, you can let us login directly into your WordPress to find bugs and misconfigurations quickly.

Premium — 55€ per month and network is like the Business package, but for professional podcasters who are using WordPress Multisite for podcasts, no matter how many.

On a side note, this is a great way to regularly support Podlove Publisher development. Especially if you stayed away from traditional donations because you don’t get an invoice. With Podlove Publisher Support, you receive a proper invoice and can book it as an expense.

Get great support while helping to sustain continued development of the Podlove Publisher.

What does this mean for the existing channels?

GitHub Issues, our main support channel until now, will just be the bug tracker in the future. Free public support will always be available in our Podlove Community.

Oh, and before I forget, the Podlove Publisher has a cozy new home at publisher.podlove.org.

If you have any thoughts or feedback, please let us know in the comments or on Twitter (@ericteubert or @podlove_org).

Podlove Publisher 2.1 is here

We have finally released Podlove Publisher 2.1. Despite it’s “minor” release number, it’s a packed release with more than 200 changes to the core.

We have already hinted at some of the new features but let’s give you an overview of the major milestones version 2.1 represents:

WordPress Multisite Support

As some of you might know, WordPress can be installed in a way that you can actually run multiple blogs with the same code base on one server. This is handy for everyone who needs to run more than one blog – or more than one podcast.

You can activate Podlove Publisher now system-wide and not only get support in each blog but you also get a network-wide dashboard, the ability to create “lists of podcasts” that can be used for overviews and a network-wide installation of Podlove Templates.

We see this as a feature for advanced users and blog administrators but we tried to keep it as easy to use as possible. This area will most probably be enhanced and evolved over time.

Podlove Widgets

WordPress has a simple system to put information in sidebars, footers etc. called widgets. The Podlove Publisher now adds a few Podlove-specific widgets to make it easy to display your podcasts logo and description, license information or invoke a Podlove template.

More template power

For the experienced user, Podlove templates are a powerful tool to enhance your website and create a consistent presentation of your podcast information. Release 2.1 contains various new accessors, direct support for the Podlove Subscribe Button and Flattr buttons and much more minor enhancements.

Other changes

There are more changes that might be of interest to you. There is also a fancy new dashboard widget telling you more about gender distribution in your podcast team.

To get the full list, move over to our Podlove Community where we you can discuss the new features and ask us questions about it. We are happy to answer and give you tips on how to make use of the new stuff that’s in 2.1.

Podlove Analytics

With little fanfare we released Podlove Publisher 2 a few weeks ago. While major version numbers usually bring a lot to brag about we kept it quiet because we wanted to be ready to adjust bugs that could have stemmed from a huge new feature: Podlove Analytics.

But it all worked so we should talk about it. Podlove Analytics brings you statistics about your podcast you always wanted. There is still work to be done so we have just started with what everybody was desperately looking for in the first place: download statistics.

Actually, we have brought tracking of download to Podlove Publisher a while ago. It silently sneaked in your Expert Settings and those who found it and enabled it have already started to collect information. With Podlove Publisher 2 you can now visualise the data in your blog.


How to activate Analytics

In your admin interface, go to “Podlove -> Expert Settings -> Tracking” and enable the “Tracking URL Parameters & Analytics” setting. The day you switch that on, Podlove will start collecting information about downloads.

When tracking is enabled, you get a new menu called “Podlove -> Analytics”. After a day or so, you will get the first results and can start exploring how your podcast is downloaded.

Download Intents

What we actually track is something we call “Download Intents”. Podlove Publisher does not manage media file delivery so we do not have access to actual download log files. But when tracking is enabled, download links are routed via a redirect mechanism that starts counting when a client wants to access the file. This mechanism seems to work much better than we expected.

So while the user interface simply calls it “downloads”, it’s actually “download intents”. But our tests show that this seems to be in line with reality.

Interactive Visualizer

Right now, you can dive into download statistics for each episode. You look at the total downloads over time but you can also break it down by operating system, client used, download source (download via feed, web player or direct download), download context (which feed, which page etc.) or episode asset.

Please play around with the options and let us know what you find useful and interesting an in what way you want this to evolve.

Future Development

In the future, we will add geo information (which already gets collected) and we will further enhance the way you can break down numbers, compare averages, detect exceptions and how clients will be detected.

In addition to download statistics we will also tackle feed subscription statistics. This still needs some work as we need to research realities with feed proxys and statistics services (like FeedBurner or FeedPress) but it’s definitely on our list.

The Podlove Community and support

At Podlove, we use GitHub issue pages for bug reports and in the last years there have been a lot of helpful feedback. We have also received a lot of support questions which was fine.

But in order to get to a more sustainable model for support we have recently opened the Podlove Community web site. This is the place where you can not only get in touch with developers but with all the other Podlove users too. So it should be your first address for posting questions, finding answers, sharing solutions, workflows and templates too.


There are categories for all major Podlove projects and we are also posting information about major releases there too so you can discuss and ask questions about it right there.

We hope you all join the Podlove Community and make it an ever better place to share your experiences. We closely follow the discussions and use the feedback to further improve our software and standards.

Get ready for Podlove Publisher 2.1

After having spent many releases in the 1.x version branch we are changing the way we release features since version 2 of the Podlove Publisher.

In the future, we will release in a more focused way, adding new features only in 2.x releases and let 2.x.x versions provide bug fixes only. It should have been like this all the time but that’s just how life works, right?

So now version 2.1 is around the corner and one of the big news is that it’s coming with extensive support for WordPress Networks (also called multisite installations). We add some new stuff but we are also going to move some existing features to the network level making them more useful in the future.

Necessary incompatible changes for templates

The first and most obvious candidate for networks are Podlove Templates: Publisher 2.1 allows you to install site-wide templates and use them in every single podcast within the same WordPress Network. This should make it much easier to maintain a general feature set and/or look.

But be prepared: we needed to make a backward incompatible change to how Podlove Templates integrate with WordPress’ shortcode system.

If you call templates via [podlove-template template="my-template" arg1="foo" arg2="bar"] then the system passed the arguments as twig variables arg1 and arg2 to the called template.

However, with Publisher 2.1 these variables will be renamed to option.arg1 and option.arg2 respectively so you will need to change your own templates as they might stop working properly once updated to the new version of the Publisher.

All internal templates are of course automatically adjusted so you need to be aware only if you have created your own templates with parameters. If you don’t yet use these, nothing will haunt your sleep. If you do, please make sure to apply proper changes right after having updated.

Template name changes

In order to be compatible and side-effect free when you also install the new Podlove Subscribe Button plugin, we have renamed the shortcodes for displaying the Subscribe Button within Podlove Publisher.

What used to be called [podlove-subscribe-button] is now [podlove-podcast-subscribe-button] for consistency. The dashboard will tell you that but we thought it might be worth noting up front.

We apologise for the inconveniences. We hope the new release will otherwise entertain you and make you happy.

Introducing the Podlove Subscribe Button

The Podlove Subscribe Button — One button to subscribe them all

Podcasts are becoming more and more popular for many reasons – the subscription model being one of the more important ones. Automatic downloads make podcast content easy to access and flexible to use and create an important bond between creators and the audience.

However, to actually subscribe to a podcast has proven to be a confusing and error prone task. No more: because today, we are going to change all this with the introduction of the Podlove Subscribe Button.

The idea is simple: present one simple button that makes selecting a podcast feed and passing it along to your favourite podcast app (either on your computer, mobile phone or in the cloud) a no-brainer. To subscribe, your audience just clicks the Podlove Subscribe Button, selects an app and there is (usually) no step three.

One button to subscribe them all

Okay, so we say it’s simple. Let us walk you through this to prove our point.

On the podcast website, you see the Podlove Subscribe Button somewhere. We use the established term “subscribe” and the well-known generic Podcast logo (once popularised by Apple) to make clear this button is all about subscribing to a podcast and not to be confused with blog subscription which is a totally different thing for the user (although being technically similar).

That’s how the button looks up-close. Please note, the button comes in various sizes to be able to fit various contexts in web sites. We like the big smashy version that combines with podcast cover best:


Once you activate the button by clicking it, it displays a summary of what you are about to do. We do this to ensure you know what you are going to subscribe to. This is how this looks on an iPhone 5:


When you select “choose app” the button automatically detects the OS you are using and presents a list of well-known apps for that particular platform.


In this example, we choose to open the podcast in the Castro app for iOS which brings up the app’s subscription dialog window. Here you can review your decision once more and proceed to actually subscribe to the podcast (or cancel the process). Please note that some apps just go straight to subscribing to the podcast without asking. This depends on the App and can’t be influenced by us.


What if launching failed or if the app is not yet installed? Well, then you get some strange OS-dependent error, but the Podlove Subscribe Button still has you covered: you can retry or just proceed to the primary location to download/install/buy these chosen app (or go back and choose a different one).


Alternatively, you can change to the “Cloud” tab and get a list of web-based services where you can log in with your account and subscribe to the podcast there. This means you can actually subscribe to a podcast even if you are not using your or your primary podcast device.


In the rare case that you use an app that is not yet supported by the Subscribe Button, you can also choose “other app” and copy the usual feed URL that you can then manually transfer to the application. This is somehow still the tedious old way of doing it but at least there is a defined way how to present the URL to the user.


The button has been translated in many languages already and we will provide as many translations as the community is willing to contribute.

The button is hosted by Podlove and will silently be updated to accommodate for new or updated apps and services. Podcasters simply have to set up the button once and they’re set. When new podcasts app surface: we will include it. If new platforms become important: we will support it. When things break and change: we will take care of it.

Supported apps

As of today, the following apps and cloud backends are actively supported by the Podlove Subscribe Button (with more to follow):

Working with the developers

Behind the scenes we have been reaching out to almost every podcast app developer on every popular computing platform. We have pushed for simple changes to their apps (while many have been compatible from the start) and we have seen many small updates in the recent months to prepare for the launch of the Podlove Subscribe Button.

While we cover most of the current podcast app ecosphere, we are going to add new apps and services as long as they are compatible with the Podlove Subscribe Button. If you are a developer and your app is missing, please review our technical guidelines and contact us.

We provide extensive documentation on how to properly integrate with the Subscribe Button and there is also a fancy testing page to make sure your integration works the way it should.

Loose ends and future plans

Currently, the Podlove Subscribe Button only supports audio podcasts but we will extend it so that you can actually subscribe to video (and even ebook) podcasts as well soon.

We are also thinking about how to support explicit selection of specific formats (like MPEG-4 AAC, MP3, Vorbis, Opus) or feed variants (high and low quality versions etc.). Right now, we automatically choose the right format for you which should serve most customers properly.

There are some issues with new podcast websites that (understandably) go https-only as many podcast apps have problems dealing with podcast feeds via https properly and/or have just trouble subscribing to them once the Subscribe Button presents an actual https URL to them.

We are also working on a solution to make the button blend in more friendly in your web site design so that colours can be easily customised.

Podlove Publisher 2: phasing out PHP 5.3

As of today, PHP 5.3 has reached “end of life” status with the release of version 5.3.29 which means that the PHP community will no longer bring out any updates and wants everybody to move to either version 5.4 or – even better – 5.5. This also means no more bugs and/or security issues will get fixed.

Therefore we have decided to move on with Podlove Publisher and require PHP 5.4 starting with the next major release (2.0) which might be ready in a few weeks from now. This also allows us to use some nice new language features in 5.4 for upcoming features of the Publisher.

We know that there are quite a few web hosters out there who neither care much about security nor regular feature upgrades. Locked in a “legacy world”, these companies do not provide timely updates and are unable to provide you with a modern foundation for your web applications. Just to be clear: PHP 5.3 is now FIVE YEARS OLD. On the Internet, this means ancient. If your hosting company can’t help you, leave them asap as they are not worthy of the name “host”.

Even the initial release of PHP 5.4 is now two and a half years ago and that version will be phased out in a year from now (as it stands today, March 2015). Expect us to require PHP 5.5 then and we will probably continue to dump outdated versions quickly in the future.

Podlove Publisher 2 will also be a change in how we orchestrate and choose version numbers. Don’t expect version 2 to be a huge change: it’s going to be as incremental as recent releases in the 1.x chain have been. But we are going to drop the “alpha” in the version string once and for all as for sure have left the alpha stage and are even beyond beta right now.

Major release number will then increase more often than before, denoting significant feature upgrades while “x.y” releases will be more about a reorganisation of these features and “x.y.z” releases mostly about bug fixes.

Finally, we’d like to encourage you to upgrade often. We know we didn’t manage to make the upgrade process flawless in all cases but we have always responded as fast as we can when things were messed up. We think everyone who has asked for help using GitHub issues can tell that we care a lot about system stability and compatibility and try to be as responsive as possible. Please use this path for any bug reports and feature requests. It really helps.

Podlove Publisher 1.10

After a series of significant but officially “minor” releases in the 1.9.x branch we are proud to announce that version 1.10 of the Podlove Publisher has seen the light of day and while the release notes might not strike you as particular revolutionary, it has been one of the most effortful and sophisticated updates yet.

Let us introduce you to the new features we have baked for you.

New template system

At the center of this release is a completely reworked template system. Podlove Templates are made to create well-defined automated appearances for episode postings and pages but their capabilities have been limited so far as they were just static blocks of code that were able to insert information here and there.

No more: we have now integrated the Twig template engine into the Publisher. This enables much more complex templates than before as we are also exposing the podcast’s metadata via an internal API to the template system. You can iterate over internal data structures and optionally include or exclude information depending on other values! It is really, really flexible.

We have also replaced all internal code for generating lists and other things invoked by our internal shortcodes with the new template language. So we are eating our own dog food here to make sure the new API makes sense to everyone.

Advanced users should be able to come up with new styles of lists and overviews for their podcast content to accommodate their needs. Templates can be shared with other users so we are expecting a vivid exchange of nice templates among podcasters. Let us know if you have made a nice template that others might be interested in!

Along with the new template system come a lot new shortcodes that you can you use to create overview pages. [podlove-feed-list] creates a list of all your podcast feeds and [podlove-episode-list] generates an archive page of all episodes for you. Similarly [podlove-podcast-contributor-list] lists all the people behind a podcast. There is more to explore. Read more about it in the template documentation.

Other changes

One of the more visible changes is the new input method for social media accounts and donation buttons. You can now create a list of accounts and change the order among them. We have significantly extended the list of supported social networks, contact addresses and creative platforms and you can even add multiple accounts per network (if you like).

Social media accounts and donation information can also be applied at podcast level in addition to contributors alone. This allows a more logical specification of meta data and together with the new templates, you can make more parts of the website auto-generated including team and donation pages. It’s a treasure hunt.

Turn to the release notes for the full monty. There are a ton of small fixes regarding better usability, clarification of texts, slightly tweaked UI behaviour and other niceties that are usually not worth talking about individually but that make for a much better overall user experience. We like it cosy.

Our Roadmap

We have spent quite a lot of time thinking about our roadmap for the Podlove Publisher. Nothing is set in stone, but we have a plan. For the next releases we have taken aim at few “big” features that many people have been asking for (including ourselves).

A big focus is the Podlove Web Player. It hasn’t seen much love since version 2 but we want to take it to the next level very soon. We are working on a thorough technical and visual redesign that enables fancy stuff like embedding and displaying sophisticated timeline-based metadata. We think some minds will end up being blown.

Then there are statistics. We are going to put a sophisticated statistics framework into the Publisher that will enable both internal and external collection and evaluation of download statistics. More on this once we have made significant progress here. It’s complicated and we don’t know how good our progress will be.

Another huge target is a fancy conflict system that will change how the Publisher will deal with all kinds of errors and external failure to ensure a proper state of the system and a decent way of notifying the administrator of necessary actions. It’s basically voodoo but you will be pleasantly surprised.

Last but not least we want to extend the help system, documentation and the out-of-the-box user experience (with wizards and other magically sparkling thingies) including translating the UI to other languages than English. We feel the overall UI will have stabilized significantly soon so that it might be time to finally do this.

You might think these are worthwhile goals. We tend to agree. However, this all depends on getting our next funding round to work. More on this in the next blog post. Up to this point we want to thank everybody who has contributed financially to this project.


Our core developer Eric has been behind the new template system including all the nice API work. Eric is also in charge of the releases incorporating all the changes brought in by other developers which can be a tedious task sometimes.

Alex has done a lot of housekeeping, bug fixing and enhancing of the system, especially the nice new way of adding social media accounts and donation information, better Bitlove integration and the new feed widget.

Others have helped a lot by sending in bug reports, feature request and actual code too. It’s good to see a community grow. Thanks to everybody who cares about this project. It really helps.

Contributors: Groups and Roles

In version 1.9 the Podlove Publisher featured a brand new “contributor” feature that allows podcasters to represent people and/or organisations in addition to all the other generic metadata of a podcast episode. Since the initial release we have provided 12 minor updates to the system and we have improved and extended the contributor feature in many ways.

It’s now possible to assign contributors to both episodes and the podcast itself. Using the “Contributor Settings” menu you can also set up a default set of contributors to be included with each episode. This makes it easy to list everybody who has contributed in any way to your work. For Podcasts, the most personal medium on the Internet, this makes a lot of sense.

But many of you might have been confused by the option to also create a list of “groups” and “roles” and assign either or both of them to contributors. What is this all about? Well, let me explain.

While many people (or groups of people) might contribute to your work, there is some demand to properly express what kind of contribution it actually is and to decide which kind of support to show where and how. With “groups” and “roles” we give you flexible building blocks to make this work for your case. While the first version came with a set of “default roles” we have made a step back and now deliver Podlove Publisher with no default settings for either groups or roles as everybody will probably have a different approach to this and it is next to impossible to define a default set that works for everyone.

So what is a group, what is a role?

Groups are meant to express division of work on a podcast. Good examples for groups might be the people who are actually visible/audible on the show (group: “On Air”) or the team that prepares the content (“editors”) or takes care of the technical setup to make everything work (“backstage”). Once grouped, you can select which group to actually show on your website using the “group” parameter for the [podlove-contributor-list] short code.

Roles are meant to actually describe what kind of role somebody plays within the podcast. You could set up roles for “moderation” or “guest”, there might be one for people providing “shownotes” or other things.

So by combining groups and roles you get a very powerful way to actually express contributions to your podcast. How you decide to use it is up to totally you. You can also ignore groups and/or roles and they will never show up in the user interfaces.

If you still have the set of default roles of our initial implementation show up in the roles list and you don’t know how to use them: delete all of them and create new ones once you think you could benefit from it.

We are still not done with Contributors. They are going to be the building blocks for some cool future features and in the next release you will see some significant improvements to the user interface too.