A Change to Google Logins

I’ve made a small change to the login process for Google-connected accounts. It won’t have much impact, but here’s a little FAQ to explain what you might see if connecting with Google. I’ll also explain the technical details at the end of the FAQ.

I log into Player FM with Google. How does this change affect me?

If you’re currently logged in, it won’t affect you. It will only affect you the next time you log into Player FM.

When you next click the Google button to log into Player FM, you’ll be asked to authorize Player FM, like you were the first time you connected. This will only happen once and once you agree, everything is back to normal. You can keep logging in via Google.

I’m having problems logging in. Help!

I’ve done a lot of testing for this change, but if something goes wrong, please mail mike@player.fm.

I log into Player FM with Twitter. How does this change affect me?

It won’t affect you at all.

I log into Player FM with the “classic” username/password mechanism. How does this change affect me?

It won’t affect you at all.

What are the technical details?

Instead of connecting via openID, the Google button will now connect via OAuth. They are both pretty similar for this purpose, but oAuth has become more popular and more recommended lately. Firstly, it allows users to give fine-grained permissions. Secondly, OpenID is very much a web protocol these days; oAuth works better when connecting from other systems.

Surf Fast: A Redesign For Player FM

Welcome to the new-look Player FM. The new UI has been designed to make it easy to jump between channels, to overview a channels at a glance, and to show your own channel in more places.

Following responsive design principles as always, these enhancements are available to users of mobiles, tablets, and desktops at any size.

Side Menu: Topic-Surf With Ease

The new side menu allows you to explore all of our topics. It’s shown on the homepage so you can always find it by typing in player.fm. And it’s shown on topic pages, as well as your own channel page, so you can easily jump off to another topic.

Carousel: Explore A Channel’s Composition

The carousel on top of each channel shows the series that make it up. You can slide it left and right, and swipe it on touch devices. Clicking on a series will scroll down the page to the relevant entry.

Episodes Front and Center

You’ll notice the new design emphasises individual episodes much more, being the main element in the middle of the page. These are the things that change the most, so these are the things you’ll want to see first when visiting a topic page or looking at your own channel.

Your Stuff

Content from your own channel is now shown in the right sidebar, bringing your favourite episodes to many more places as you browse the site.

News-Y Sidebar

Posts from Player FM’s blog and social accounts are now available on the homepage.

Lots of Tweaks

You’ll also notice lots of small changes, with more to come. One important point for regular users: Channels no longer have an Edit button. The separate Edit mode wasn’t very useful, because most of the time users just manage their channel by hitting Subscribe and Unsubscribe buttons on their own channel and elsewhere. One thing it did allow advanced users to do is to bring new series into Player FM. To that end, I’ve made available a new feed importer tool which is available from the Edit tab on your own channel. I’ll also bring back OPML imports, and in a more intuitive way.

!player – Search Podcasts on DuckDuckGo, with a Bang

The DuckDuckGo search engine has grown and grown over recent years, now serving over a million queries per day I’m pleased to announce DuckDuckGo has now integrated Player FM’s podcast search, using their “!Bang” feature for cross-site searches. This is helpful for anyone doing research on a topic, who decides they want to burrow deeper and maybe even play a conversation in the background while continuing with their research on the topic.

If you haven’t seen DuckDuckGo’s !Bang before, here’s an example. The !youtube query below will redirect over to YouTube and continue searching for the query there.

Now, with the new Player FM Bang, DuckDuckGo users can search over 600,000 live podcast episodes by appending !player to their search:

This will take you straight to Player FM’s search results:

Power searchers will be pleased to note Player FM’s custom search grammar works right from inside the DuckDuckGo search box:

The quotes and minus sign entered on DuckDuckGo are acknowledged by Player FM:

That’s all for now. I’ll be introducing a major user-interface upgrade on homepage and channel pages soon, but meanwhile, give !player a whirl at DuckDuckGo!

Sort It: Change Episode Sort Order

I received a mail this morning asking if Player FM can show episodes in reverse order, i.e., oldest to newest. Although I haven’t heard the request, and it’s not crossed my mind to do this, it immediately made sense. So I decided to build it.

How is this useful? Since Player FM automatically plays episodes continuously, from top-to-bottom, showing Oldest First allows a listener to catch up on old episodes in the order they came out.

In fact, for some shows, it’s really the only way to listen to them. I’m thinking primarily of fiction such as novel readings and bedtime stories, since they’re often produced in series.

Furthermore, there’s a huge trend in TV recap podcasts, which work through TV show episodes one at a time. If you want the skinny on a whole season of Mad Men, you probably want this new feature.

Move Quick: Keyboard Shortcuts Arrive on Player FM

Keyboard shortcuts are the web trend no-one knows about. Only in hushed circles will you learn that Twitter, Google, GitHub, and others are all working tirelessly to end world dependency on the mouse. Yes, it’s true. And if you visit Twitter right now and hit “?”, you too can learn how to browse, search, and compose without ever lifting your hands off your keyboard.

And now, Player FM lets you go mouse-free too. Hit “?” any time on any Player FM page to see the shortcuts you can use:

I should explain that seeking can be slow at times; since the website streams directly from publishers’ servers, it depends on their respective server setup how nicely it will respond to jumping around the track. Unfortunately, some servers need to load everything up until that point, so if you go forward 10 minutes, it will need to load 10 minutes of audio.

Also, you might wonder how next and previous work. What playlist do they move through? The playlist is the list of episodes the current episode first appeared in, as shown in the image below. If I start playing the Tim Burton episode, the next track will be the one below it and the previous track will be the one above it. This is even true if you navigate away from the Kermode page; the player remembers the most recent time you started any episode.

As you can see on the screenshot, this is still experimental and I’d love to hear from people who have suggestions for further shortcuts or anyone encountering difficulty with these, which might happen on certain international keyboards. Note that web app shortcuts should generally be just simple keys, not modifiers like ctrl, shift, alt, etc., to avoid conflicting with built-in browser and operating system shortcuts. And also the space bar (which would be the ideal choice for play/pause) is reserved for scrolling. I used this Wikipedia page to help ensure the keyboard shortcuts will work reasonably well across different layouts, but I can probably do more if there are any major issues with certain layouts.

Special thanks to Stuart Memo and others who participated in this Google Plus thread to help plan this feature.

Look Sharp: Better Replacement Images

Most podcasts have pretty good “album art” images…as with mobile apps, it’s the first impression and the way they often get discovered.

Unfortunately, some don’t.

In some cases, they never created an image in the first place. In other cases, they stuck with the default branding of their publishing system. And sometimes, they only check if it’s working in iTunes, which might have saved their old image years ago, so the publisher doesn’t actually realise the image in their feed is no longer working!

Whatever the case, it’s not so pretty when you see this:

So Player FM now allows for feed images to be overridden. If a feed doesn’t include an image, we can manually set it after searching for the image online. And if we can’t find the podcast’s official image, we’ll automatically add one with the right label:

We have a back-end tool to make it easy for Player FM’s researchers to quickly add replacement images, so we’ve now gone through all 2000 or so featured series and ensured they have good images, and will do so for non-featured images soon. Image overriding is only available to the researcher team for now, but as I work to wikify content, it will become available for more users.

Be Cool: Podcast Fetching Improvements

“Cool URIs don’t change”
— Sir Tim Berners-Lee, Web Developer

For the first time since launching, I’ve added a bunch of improvements to Player FM’s feed fetching bot. This change improves timeliness (i.e., content is now more up-to-date), removes duplicate entries, and removes many error pages.

This article is mostly technical back-end stuff, so you may wish to look away now if you don’t want to know how the sausage is made.

I’ll share a quick summary below, but a brief background on the feed bot first. The feed bot is a continuous process that runs on its own server. It checks every series on Player FM about once every few hours, requesting the latest episode data from the publisher’s server. When new episodes are recognised, it adds them to Player FM’s database. If there’s an error calling the server, an exponential decay algorithm is applied to ensure the bot doesn’t waste time on it.


Player FM has elements of being a wiki, including the fact that any user can add a new podcast series. So it’s not surprising that Player FM borrows some concepts from Wikipedia, and this “alias” concept is related to Wikipedia’s redirects. When a Wikipedia user renames an article, the old title lives on so it can redirect to the new one. That’s nice if people (or computers) have previously saved the old article. Now, Player FM does the same thing. If a feed title changes, it will remember the old title and redirect it to the new one.

In more detail, Player FM now aliases three identifiers: “slugs”, ids, and URLs. “Slugs” are similar to the title and designed to appear in the URL, e.g. the show titled “This Week In Startups – Audio” has the slug “this-week-in-startups-audio”. IDs are the underlying ID, and will be important for applications outside of the website, like mobile apps. URLs are the feed URLs where the podcast lives on the web.

The next few points identify some of the benefits of this alias concept.

Manually updating aliases and slugs

Because of the alias concept, we can now safely update the URL for a series. Some publishers have asked me to do so, because someone previously submitted a URL they consider to be unofficial. I’ve also noticed some shows, like 5by5 network, have moved away from Feedburner, so we need the ability to switch around URLs. In cases where Player FM has indexed both the old and the new URL, the system will automatically merge subscriptions too. And because of aliases, if someone later on tries subscribing to the old URL, they’ll automatically be subscribed to the new one.

Similarly, we can now update slugs safely. The first implication is that I was able to make our slugs a little bit cooler. Specfically, you won’t see paths like /series/—a–great_show. It would now appear as /a-great-show. Slug aliases made it possible to update Player FM’s URLs without breaking old links and angering the Googlebot. A possible future implication of slug aliases is we can manually change individual shows’ slugs if they are complicated.

Handling Redirects

The bot has always followed redirects, but previously, it would just follow the redirect every single time it called it. Now, it will update the series URL to reflect the new place it’s pointing to. And of course, it will create a URL alias in case someone tries to add the old URL again. (Are you spotting the pattern here?) This happens as long as the redirect is a permanent one (301).

Canonical FeedBurner URLs

About a quarter of feeds are Feedburner-hosted, and since Feedburner URLs come in many different forms, it was worth “canonicalising” them. Basically, we want to see all of these as the same thing: http://feeds.feedburner.com/GoodShow, http://feeds.feedburner.com/goodshow.xml, http://feeds2.feedburner.com/goodshow?format=rss. I wrote this up in more detail on my blog.

“Untitled” Titles

New or broken feeds would previously show up with title “Untitled”. This was poor user experience in the event a user had just imported several series. Now the title will show up a little more intelligently; typically, as the domain name of the feed, and in the case of FeedBurner, will show up as the path (e.g. “GoodShow” in the example above). Untitled episodes will now show with the name of their parent series, combined with the date.

Work Remaining

The main thing left here is actually identifying duplicate series, now that we have a mechanism for dealing with them. For now, this happens automatically in the event of redirection, and we’ll respond to manual requests from publishers, but in the future, I hope to automate more of this using a tool to flag possible duplicates. This would probably be based on matching titles (as proposed here, the “dumb” technique of matching titles is probably the most effective technique too).

A New Look for Episodes and Series

I finally made a much-needed renovation to the episodes and series design recently (as you may have noticed, both types of page are driven by the same underlying template, so it’s really a change to both at the same time).

How is this different?

  • Overall, a cleaner look which emphasises the main series or episode being displayed.
  • The latest 10 episodes now show a summary, which is extracted from the publisher’s description. Previously, only the title was shown.
  • Tags are now active links. They’re linked to a search, which I’ve found works quite well in practice and probably better than just linking to other series with the same tags.
  • Related items are shown on the right. These are related episodes if you’re looking at an episode page and related series if you’re looking at a series page. Most of the time, these use a matching algorithm which looks across the whole site for similar content. However, if the series is in a featured channel, the related series will generally be other shows in the same channel.
  • Added sharing buttons.
  • Text is now cleaner – I’ve improved processing of podcast feeds, so there’s much less code shown now!
  • The page loads faster as episodes and related content is loaded via Ajax, i.e. after the initial page load.

Here’s a recent example.

Now you can search over 600,000 podcast episodes on Player FM

Search has been the most demanded feature on Player FM’s UserVoice forum and I’m pleased to say it’s now here! It comes at a point where we have 600,000 episodes indexed, synchronised with about 10,000 podcast series, so if you’re looking for a listen on just about any topic, enter it into the search bar. You’ll find it on top of every page.

The search results are focused on individual episodes, but will also bring up matching series and featured channels (curated “mega-lists” on various topics). By default, episodes are ordered by date…latest episodes first.

Search Format

Search works similarly to Google search. When you enter two or more terms, it will look for shows matching all terms you enter. Not just one term, but all terms, must match.

You can search for a phrase by including it in quotes.

And you can exclude a term by including a “-” before it.

Search Options

There are various search options available too, if you hit “Advanced Search”. You can restrict results by episode duration, time, and sort by relevance instead of date. You can also turn on safe search to avoid podcasts marked as explicit.

Easy to Bookmark and Share

As with most things Player FM, we care about clean URLs. To bookmark or share a search on batman, for example, just use http://player.fm/search?q=batman.

Keep Them Coming: 100+ New Channels on Player FM

As of today, Player FM has 230 curated channels on the site. Since the last content update a month back, the research team has continued to dig deep and found fresh audio content on 106 new niche topics.

We’ve added language learning channels (English, French, Italian, Portuguese, Spanish), about a dozen new “fandom” channels themed around TV shows and movies (Breaking Bad has been the most popular of these lately, with Batman and Mad Men providing some stiff competition). And a wide range of music and education topics too, as well as professions and discliplines like fashion and beauty, design, psychology, and linguistics.

I’ve updated the homepage to help deal with all these new channels. It’s still a work in progress, but hopefully it’s easier way to find what you’re looking for now.

In other news, the app finally works in Internet Explorer. Well, IE9 at least! Users of IE6-IE8 should be prompted for Chrome frame support. The app also works on IE in Windows Phone, but again I have to give a caveat here, and it’s a big one. Due to the problems WP7 has with loading external fonts, icons are broken. (I did tell you this was going to be a biggie.) At least we know the app is tantalisingly close to functional, and I have a task on the backlog to get this up to speed. (Full disc
losure: I am the fortunate recipient of a WP7 test device from Microsoft Developer Relations.)

Finally, I’ve improved the basic player for Android browser. It now supports seeking in both directions, shows duration, and is overall more responsive. However, this work has also uncovered a major bug with Android Browser. In short, any phone call or text message will cause a paused track to resume. This is surprisingly difficult to work around, so for the time being I’ve left this behaviour as is. I can’t unfortunately recommend switching to Chrome until its own bug is fixed, where it stops playback altogether when the screen is turned off or the app switches. Please star this bug on Google’s tracker if you’d like them to fix it.