How I'm Syncing My Podcasts
When I first got into podcast listening, I started with Google Podcasts. Pretty soon after I was wanting something a bit more developed, so I switched to PocketCasts, and there I stayed for years until very recently.
I really liked PocketCasts. Enough to pay for their monthly subscription to get access to their web player. It’s been super handy having all my podcast subscriptions and playback positions synced between all my devices and available anywhere I can pull up a web browser.
More recently though I’ve been running into basic issues with playback in their web player. Episodes randomly restarting 30 minutes in, seeking sometimes not working, those sorts of things. If I could find an alternative to PocketCasts, I’d be solving those issues for myself while also saving a little bit of money in the process, even if their subscription is pretty cheap.
Attempt #1: Audiobookshelf
I found a pretty neat looking self-hosted audiobook and podcast server called Audiobookshelf. It has a web interface and mobile apps so it seemed like it would serve as a nice replacement. Since one of my goals was to save a little bit of money I decided to add it to a small VPS I already had. Using docker for the install and caddy for the reverse proxy I was able to get it up and running in less than ten minutes.
After I created my user, I poked around the web interface a bit until I found where to import the podcast subscriptions I had just exported from PocketCasts. I started the import, opened my library and… a connection error?
I was able to open a shell, so my VPS was still reachable obviously. I started investigating and, for some reason, Audiobookshelf’s docker container had been killed. I gave it a restart, logged back into the web interface, switched back to my library view, and there was that connection error again!
After doing some logging it seemed like Audiobookshelf was getting killed due to memory constraints while trying to create the show thumbnails. Granted, this VPS only had 1 GB of RAM and I was trying to import a lot of shows at once, but I still found that surprising. Even if I worked around this particular issue, I didn’t want to have to worry about accidentally overloading and killing the container again later down the line so I went back to searching.
Attempt #2: Nextcloud
During all this I was chatting with Joel who pointed me towards the AntennaPod Android app. It turns out that AntennaPod supports syncing via a Nextcloud Gpodder extension (I call Nextcloud apps extensions — apps is a stupid name for them). With this I’d be able to sync my podcasts to any other app or program that also supported it.
I’ve had Nextcloud installed on my home server for some time, so setting this up was as easy as adding the extension via the admin panel and logging into my Nextcloud from AntennaPod. I then installed Kasts on my PC since it also supports this method of syncing. Pretty much right away I saw all my subscriptions pop up into Kasts from my Nextcloud, and not only that but I soon found out that playback positions were synced as well. This was exactly what I wanted!
The only thing I was missing now was a web interface. I didn’t have to search very hard for a solution to that though, because through the Nextcloud Gpodder syncer’s README I discovered RePod, another Nextcloud extension which adds a synced podcast streaming web interface. I obviously added that one too, and while it’s pretty simple it seems to work great. I’ll be using AntennaPod or Kasts when I can anyway, so I don’t need a very advanced web interface.
So far this all is working pretty well for me, and I’m kinda surprised how easy it was to setup since I already had Nextcloud. If there are any other solutions to this that you think I might like to know about though, let me know!
— JP