2

The absolute audacity of Apple Podcasts

 1 year ago
source link: https://basta.substack.com/p/the-absolute-audacity-of-apple-podcasts
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

The absolute audacity of Apple Podcasts

A bit of a rant about Apple

Apple Podcasts, formerly the podcast feature of iTunes, was once the dominant way to listen to podcasts. And when I say that, I mean overall: they had an overwhelming percentage of market share. In recent years, that was challenged by Spotify, and now they’re somewhere close to 40% of market share.

40% is nothing to shake a stick at. If you entered the podcasting space (like Spotify did) and captured 40% of users, you’d have an amazing product. The problem is what happens when you have an attitude like you own the place.

The disappointing thing about Apple’s dominance has been their lack of trying to really anything since the aughts. In 2017, they updated their RSS extension to add some additional elements, adding support for season and episode numbering (among other minor features). It helped give Apple Podcasts a fresh coat of paint and address some long-standing pain points, like supporting podcasts that aren’t best listened to in reverse-chronological order.

In 2021 (or 2020, I guess—I doubt they wrote all the code in 2021), Apple realized they were playing catch-up and launched an update to their app that added a bunch of new features and changed the way podcasting worked.

Under the hood, Apple stopped having each device request a copy of RSS feeds. Instead, Apple’s servers would request the feed once, and the Apple Podcasts app on your Mac or iOS device would ping Apple for episode updates. On one hand, you could argue this is a good thing (more anonymous if you trust Apple, significant bandwidth savings for hosting services). On the other hand, it means that you now need to trust that Apple isn’t going to fuck with the podcasts you listen to.

The 2021 update also included some new features. The notable one was that Apple was dipping its toes into podcast hosting. You could sign up to allow Apple to host your show and its audio (for a cool $20/year). In exchange, you could charge a subscription fee to your listeners.

I run Pinecast, a podcast hosting service. Apple’s hosting feature competes directly (well, almost directly, as you’ll see) with Pinecast. It’s a weird situation: they maintain a list of recommended podcast hosting providers (which Pinecast is on!), but then they compete with those services.

I’ll admit: when Apple announced their 2021 update, I was miffed. Pinecast already has a subscription feature (the Tip Jar). I’d have bent over backwards to integrate Pinecast with whatever Apple was planning to build. Give me a spec and I’ll make it work, and I’ll do it faster than all of their other partners! Alas, Apple YOLOed a solution out into the world

and it lived quietly.

I truthfully had completely forgotten about Apple’s hosting feature. Frankly, I didn’t think anyone would actually go use it. My assumption was that it was their attempt to get their foot in the door, and some PMs would figure out how to adjust it later to become a “real product.”

This past week, a new Pinecast customer reached out. They were looking to move their show from Apple to Pinecast, and Pinecast’s import tool wasn’t working. Looking into the situation, the problem was spooky.

The import tool allows you to paste an RSS feed into a text input, and the feed details are pulled and populated for a new podcast on Pinecast. All of the audio files are copied over after you review the details. One convenience feature is that if you paste the Apple Podcasts directory listing instead of the feed URL, I’ll look up the feed URL from the listing and treat it as a redirect. Easy peasy.

This customer was pasting their Apple listing URL, but the import tool was not getting a feed back. In fact, Apple was returning no results for the podcast ID. That’s weird, because visiting the show in your browser shows the podcast’s details.

What I learned is that Apple does not produce an RSS feed for podcasts that they host. That’s right: if you host your show with Apple, the only listeners you can have are folks with the Apple Podcasts app. This feels like an absolutely wild choice from a product perspective; it’s the mindset of a company who still thinks that they have dominance over the podcasting world. It’s ludicrous to assume that it’s a good thing for listeners to have to have specific hardware in order to listen to a podcast.

Alas, it is what it is. My solution was simple: if fetching a feed URL from an Apple Podcast listing failed, I’d hit the cheeky API that Apple uses to power the web UI. This would let me get the show and episode details, and I’d use this to return a synthetic RSS feed to the import tool. Easy enough!

I managed to get this working. The only thing that wasn’t working, though was the audio. Apple provides a HLS playlist URL for episode audio instead of the URL of an audio file. This isn’t ideal. There are no podcast apps (besides Apple Podcasts, apparently) that can play HLS streams. My solution was this: set up a Lambda function that accepts the HLS URL, pull the stream and save it as AAC in an S3 bucket, and return a 302 redirect to the AAC file’s URL. The synthetic feed would simply link to the Lambda function for the audio. The import tool would be none the wiser.

Except, when I crafted the ffmpeg incantation to pull and convert the HLS stream, it errored. I tried some different command line options and it simply refused to play. So I tried in the browser with a HLS player, and it still didn’t play. My last hope was VLC. VLC can play _literally anything_ you throw at it, it seems. And VLC, sure enough, failed to play this HLS stream. What gives?

I signed up for the Apple Podcasters Program (their name for the hosting service) and uploaded a test podcast. When I went to upload my audio file, something jumped out at me: they note that the audio will be protected with DRM. Sure enough, opening the m3u8 playlist, there is Apple Fairplay DRM info. Keep in mind, this is for audio that’s going to be publicly available without a paid subscription.

Here’s what’s fucked: once you’ve started using Apple for hosting, you’re stuck. You’re permanently locked into using Apple, unless you want to start your podcast over. Maybe you’re tired of throwing away 60% of potential listenership, or you don’t like the UI, or the features aren’t sufficient for you. Too bad.

The first problem is that there’s no RSS feed. With an RSS feed, returning a 301 redirect allows you to change your feed URL. If you’re moving from Pinecast to Libsyn, Pinecast will happily allow you to redirect your Pinecast feed URL to your new Libsyn feed URL. Every podcast app (including Apple Podcasts) knows what this means, and updates your feed URL so that it only checks Libsyn going forward.

With Apple, there’s no feed, which means there’s no redirects. You can’t switch to anything because there’s nothing to switch with. Even if you were able to copy your show to another hosting service, your existing subscribers wouldn’t be able to hear any new episodes you post.

The second problem is that you can’t get your own audio files back. Once you’ve uploaded a file to Apple, that file is no longer available to you, and the DRM prevents it from being downloaded by a tool or another hosting service. Only Apple Podcasts can access that audio, even if you’ve chosen to make that audio freely available. Hell, even choosing to download the audio in Apple Podcasts makes it available for offline listening, but doesn’t produce an MP3 or M4A file that you can move around or archive—it retains its DRM.

What I hate the most about all of this is that they don’t make this clear. At every step, they do tell you the truth. They say that your podcast will be available to listeners on Apple Podcasts, but they don’t explicitly say that your podcast won’t be available to anyone else. When you upload your audio, they say it will have DRM, but they don’t make it clear what the consequences of this are. They tell you your show won’t have an RSS feed, but they don’t tell you what you’re giving up by not having one. This is predatory.

Apple is letting people pay $20/year for the privilege of being locked into an ecosystem run by people who think that they’re the best thing since the transistor radio. They make it virtually impossible to leave, even when they offer no meaningful value-add to folks who have outgrown their meager offering.

Apple: y’all need to offer a way to leave. Trapping your customers is an incredibly shitty thing to do. The podcast hosting ecosystem has allowed podcasters to move freely between services forever. What you’re doing to your paying customers is malicious.

1

I’ll note, the launch went very poorly. Apple Podcasts was intermittently unavailable for months after the launch. They were woefully unprepared, causing customer support issues for podcast hosting providers like Pinecast. Many Pinecast competitors (Transistor, notably) put out posts and videos explaining the situation.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK