It would be nice if Apple stopped sucking at podcasts

Short version:

Podcasts will never be good in Apple’s ecosystem until it implements better syncing. Ideally, podcast syncing should work just like other forms of RSS syncing–that is, with a web app backend.

Long version:

Apple has done a lot to help podcasting. Podcasts existed before Apple, but by integrating podcasts into iTunes, and making it easy to discover and subscribe to podcasts, and listen to them both on computers and iPods, Apple made this new medium more accessible to people who don’t want to fiddle around with specialized software, feeds, and media files.

That’s why it’s unfortunate that Apple has done nothing useful with podcasts for years–first allowing its software to stagnate, then releasing a flawed application that does little to move podcast-listening forward (and due to its flawed execution, even moves it backward).

This piece is right: Apple’s iOS app “Podcasts” might be the worst consumer software Apple ever released–even beating Quicktime 4.0. But it is important to recall that podcasts sucked the way they were, too. Before, you had to manage podcasts in iTunes on a Mac or PC and sync the recordings over. You could manually download individual episodes of subscribed podcasts from iOS but not add new subscriptions or have feeds automatically refresh directly on your device.

One of the many failings of the new app is that it does not entirely move away from this obsolete model–probably because iPod Nanos and Classics still require it. It is still possible to use iTunes to manage individual podcast files and sync them over to your iPhone or iPod. I hope this goes away soon–podcasts should stay in sync between portable devices and iTunes, but they should not sync directly from iTunes to anywhere. iTunes should be just another client application when it comes to podcasts, not some sort of podcast master control system. More on syncing in a bit. (Also, it should be noted that unless you have “Podcasts” installed on your iOS device you can still use podcasts the exact same way as always, manually syncing over files and listening to them in the Music app.)

But the basic premise of the new Podcasts app is correct–podcast should download directly to the phone and not have to sync over from a desktop client. They should be in a separate app that is customized to podcast listening and not part of the music app.

The most obvious flaw with the Podcast app is its lack of execution. It is hard to use, ugly, crashes frequently, and mysteriously re-downloads old episodes. It works well sometimes–but an erratic program is in some ways worse than one that doesn’t work at all, because it can be more frustrating. Third-party apps like Downcast and Instacast are better, more reliable implementations of the idea of standalone podcatchers that run right on an iOS device. They make it easy to add subscriptions, refresh your feeds, add/delete individual episodes, and organize podcasts into playlists. They even offer better playback controls–I am fond of Downcast’s 2 minute and 30 second skip features, and that it can play back podcasts at “3x” speed.

(Side note. Most people understand by now how time-stretching works. This is what allows you to listen to recordings at a higher speed without changing their pitch. This involves more signal processing than just playing back a recording faster, which causes “chipmunking.” But most time-shifting speeds are labelled misleadingly. Apple’s 2x speed is really 1.5x speed; a 100 second original recording will go by in 68 seconds. Downcast’s advertised 3x speed is actually 2x speed. It is not difficult to get accustomed to listening to podcasts at this faster rate, but much faster than double is too difficult to understand. Side side note: Time-shifting works as well as it does because human speech is so redundant. This is what makes it possible to understand someone in a noisy room or talk over a low-bandwidth connection. The more redundancies you can cut out of human speech, the faster you can listen to it, but it becomes more likely that you’ll miss a word or two if, e.g., a dog barks.)

Most of the problems with Podcasts are fixable. It shouldn’t be hard for Apple to make a standalone podcaster for iOS that doesn’t totally suck. But the more basic problem will be harder to fix. This is the lack of synchronization between devices.

When I add a podcast subscription to Podcasts on my iPhone it should automatically show up on my iPad and on Apple TV and in the iTunes application on a Mac or PC. An episode that shows as unplayed should show as unplayed on the others, and the play position should likewise sync between devices. (A file might be downloaded to one device, however, and not the others. For example, an Apple TV might only stream podcasts and not download them all ahead of time. Whether or not a new and unplayed episode downloads to a device, or is only streamed, should be a per-device setting that does not sync.)

As it stands, the only synchronization between devices is play position, and only in the case that the same file is downloaded to different devices. This is exactly how syncing in iBooks works, by the way. There, if you copy a Project Gutenberg ePub (“sideloading”) to both your iPhone and your iPad the page-position will sync between your devices. The file itself will not sync between devices, unless you’ve bought it from the iBookstore. This might be an appropriate behavior for books, but with podcasts, it is more useful if played/unplayed and subscriptions sync between devices.

(Podcast files can also sync between Podcasts and iTunes, just as ePub files and PDFs can sync from iBooks back to iTunes and thence to another iOS device. However, the synchronization I am talking about is not the traditional “device attached by a wire or WiFi to a computer” syncing, but automatic syncing over the Internet. While for large files there is still a place for device-to-device syncing, and even with Android some device management tasks are best done via a computer, most sync tasks should happen over the Internet. For example, iCloud syncing of contacts and calendars works much better than syncing through iTunes ever did.)

A few third-party apps try to implement syncing on their own. Downcast does an ok job of it using iCloud as a back-end. Instacast did the same thing for a while but switched to a custom syncing solution. When it works, this is fine as far as it goes, but it only allows iOS apps to sync with other iOS apps–not iOS to sync with iTunes or an Apple TV.

A simple syncing solution like this is probably not good enough. Each device should not have to individually query each feed to see if a podcast is updated. This is slow, and could cause inconsistencies if feeds are different when different devices check them. Also, synchronizing between apps that manually refresh feeds in this way is extremely difficult.

But this problem has been solved. Syncing RSS readers was a huge pain and largely did not happen until Bloglines, and then Google Reader came along. These are not “dumb” syncing solutions like iCloud–rather, they are applications that run on a server and keep feeds updated. Client apps then synchronize with the server instead of going out to check each individual feed. “The truth is in the cloud,” and client applications simply display it. This is a faster process and less prone to error (though it does require that the back-end web app stay up and running). Before I ever had a smartphone I was able to sync RSS subscriptions between different computers in a way that seems to elude podcasts on Apple devices today.

To sum up, Apple should implement a podcast backend, perhaps accessible directly over the web through, along the lines of Google Reader. Client devices and apps would then stay in sync with each other through this backend and would not individually query feeds themselves. After it fixes this basic problem with its podcasting software, Apple can maybe fix other things: Building an infrastructure for paid subscriptions, removing podcasting from “iTunes” entirely and placing them in a separate app on the desktop, etc.

But until Apple deploys some sort of better podcast syncing back-end, syncing won’t work right. Podcasts won’t sync correctly or at all between different devices, and the user experience will continue to be poor. Apple has an advantage in that many users use Apple client software on their computers, on mobile devices, on, and maybe even the living room with an Apple TV. It is strange that it has not capitalized on this by implementing a podcast solution that allows for seamless synchronization and listening across devices.