I wasn't going to write this post because I've already said most of what I wanted to on Twitter. Yesterday though, I changed my mind when I saw this Tweet from Product Hunt.
It's a link to a question posted on Product Hunt over three months ago asking for a decent Mac podcast app because iTunes is dreadful. The recommendations are what really angered me:
- Downcast - The is the only remotely sensible suggestion as it's a native Mac app that comes with an iOS counterpart. However the app isn't an improvement over iTunes to me as the UI could do with some work. The iPhone app also lacks features like Smart Speed that can be seen in Overcast and Pocket Casts.
- Overcast - No, Marco hasn't made a Mac version of Overcast but someone recommended using the web UI which doesn't in any way fill the place of a native app.
- Castro - Yep, no Mac app here either but even worse, there's no web UI and the user recommended using AirPods with your iPhone. My face hit my palm at that point.
I don't know why I even clicked the link because I knew after repeatedly searching for months there wasn't.
It's no secret that my favourite podcast app on my iPhone is Pocket Casts. I love the UI, the smart playlists, and up next feature. Not to mention the fact that it cuts out gaps in audio like Overcast and has a web UI.
While the web UI is okay it doesn't feel native and still leaves a number of issues. Most notably there is no media key or chapter support. On top of that, because I have it pinned as a tab in Safari I constantly find myself closing the window.
Building Desktop Casts
I opened up the web inspector for the Pocket Casts site and started recording the XHR requests. Reverse engineering their private API was simple as it's logically designed and uses a user token stored in a cookie for authentication.
That Friday I spent the day bashing something together that would interface with the Pocket Casts private API.
With a little tidying up this could be something pic.twitter.com/ZowMmZu1N4— Stephen Radford (@steve228uk) June 30, 2017
I was excited with what I had and quickly registered desktopcasts.com, thinking that I could release this as an unofficial Pocket Casts Mac app.
Thankfully I had nothing planned that weekend and spent the entirety of it working on Desktop Casts. That's not hyperbole at all. The project had its grip on me and I couldn't stop thinking about it or working on it. I stayed awake until 3am Sunday working on it, got up at midday and worked some more.
I can’t decide if I like that bottom bar in dark. It is on the iPhone app and I do like the separation. pic.twitter.com/KfPYZReItg— Stephen Radford (@steve228uk) June 30, 2017
A lot happier with this now and think I have a general idea for the player layout at the bottom. pic.twitter.com/XKd94TJabE— Stephen Radford (@steve228uk) July 2, 2017
We’ve got show notes! 😄 pic.twitter.com/hLipNlboNa— Stephen Radford (@steve228uk) July 2, 2017
Let’s get that individual podcast screen in 😄 pic.twitter.com/BExjh4F36z— Stephen Radford (@steve228uk) July 2, 2017
Login screen looks a little nicer now pic.twitter.com/jBRNTVGHJB— Stephen Radford (@steve228uk) July 2, 2017
Chapters were easier than expected to add. Now just needs some tidy up. pic.twitter.com/aguqyt5AG4— Stephen Radford (@steve228uk) July 2, 2017
Turns out that panel is perfect for show notes too! pic.twitter.com/ExOim5zbUO— Stephen Radford (@steve228uk) July 3, 2017
Chapter support + seeking fully implemented 😊 pic.twitter.com/pY8epbQM6y— Stephen Radford (@steve228uk) July 4, 2017
I was excited. Finally it felt like I would finally have the Pocket Casts Mac app I so desperately wanted. In my excitement I'd assumed that this would all be fine but I wanted to make sure so I looped the @PocketCasts account in on the thread.
Hopefully @pocketcasts don’t mind me using their private API for this 👀— Stephen Radford (@steve228uk) July 2, 2017
It turns out that was the right thing to do as they're not currently in a position to support an API.
I think this is cool personally, but please don't do this. We don't have an API for a reason, we just don't have the...— Pocket Casts (@pocketcasts) July 3, 2017
...resources to support it. Current changes we're working on will also probably break what you're doing...— Pocket Casts (@pocketcasts) July 3, 2017
...and finally if you implement it wrong you risk getting people's accounts locked who use this app...— Pocket Casts (@pocketcasts) July 3, 2017
...don't want to be a buzz kill, but just hoping to be open and honest about using an API we don't have or support.— Pocket Casts (@pocketcasts) July 3, 2017
I was disappointed but I understood. It's their API, I broke their user terms by reverse engineering it and I totally understand not being able to support something as a small team from experience.
That said, I reached out to them via email to apologise for causing any alarm and they explained some more of their reasoning.
Well I still get to use the best podcast app on the Mac. It syncs perfectly with Pocket Casts on my iPhone, I can skip to chapters and it's simply fantastic — and, you don't. You get to keep using a web UI that's a mediocre experience or put up with podcasts in iTunes if you can wade through that piece of crap.
I did consider releasing it as a standalone app that would subscribe to feeds on its own but that idea proved to not be popular and the additional time it would take to do that isn't worthwhile. If Pocket Casts (or Overcasts) ever release a public API that will sync with their service or mobile apps I will be ready and waiting.
Until then, the perfect podcast app for Mac is all but a dream.