Podcasts and Podcatchers

Curating my subscriptions to switch to free software
Published on December 30, 2022.

About ten years ago I was a big Apple fanboy, using both Macs and an iPhone, even building a Hackintosh in 2015. So of course when I started listening to podcasts it was using iTunes. I later switched to Instacast, a paid podcatcher for Mac and iOS that no longer exists. So when Instacast stopped their cloud sync service, I had to switch back to Apple Podcasts. This is where I was stuck for a long time, only being able to listen to podcasts on my iPhone after switching to Arch Linux on my desktop.

Now I finally made the switch to an Android phone, so I had to reevaluate my options regarding podcatchers and the sync of subscriptions and episode states.

Unfortunately I no longer have the iTunes instance that was synced to the iPhone, so it seems there is no way to get the subscriptions as an OPML file. I had to manually list all subscribed podcasts and find their feed URL using Google. In times of Spotify and other podcast directory services it is often surprisingly difficult to get the actual feed for many podcasts. One good solution I found is this small Javascript snippet to extract the actual feed URL from an iTunes podcast directory URL. It is implemented using a request to the Apple servers, preserved here in case the link above has problems.

$.ajax({
    url: "https://itunes.apple.com/lookup",
    data: {
        id: parseInt(podID),
        entity: "podcast"
    },
    type: "GET",
    dataType: "jsonp",
    success: function(data, dataType) {
        console.log(data);
        var results = data.results;
        var feedUrl = results[0]['feedUrl'];
        var imgurl = results[0]['artworkUrl100'];

        // ...
    }
});

Here is the list of subscriptions I now moved over to my new podcatcher. You can also download it as an OPML file.

push2talk:
https://www.bonjwa.de/podcast/feed/push2talk

bonjwa podcast:
https://www.bonjwa.de/podcast/feed/bonjwa-podcast

rauschfunk:
https://chillout-pdm.de/feed/mpeg4/

casually cast
http://casuallycast.de/feed/mp3/

pentacast
https://www.c3d2.de/podcast.xml

fragezeichenpod – vier ohren
https://fragezeichenpod.podcaster.de/fragezeichenpod.rss

[die wahrheit]
https://feeds.feedburner.com/MonoxydDieWahrheit

trekcast – der star trek podcast
https://www.trekcast.de/feed/podcast/

teenagersexbeichte
https://teenagersexbeichte.de/feed/tsbfeed/

[ohm] – monoxyd
https://monoxyd.de/category/ohm/feed

the adam buxton podcast
http://rss.acast.com/adambuxton

the smartest man in the  world
https://feeds.simplecast.com/1PWmnSwT

collaborativerockers
http://www.collaborativerockers.de/feed/mp3/

devradio
http://ulm.ccc.de/dev/radio/podcast.xml

Sträter Bender Streberg
https://cdn.julephosting.de/podcasts/452-strater-bender-streberg-der-podcast/feed.rss

radio superlevel
https://letscast.fm/podcasts/radio-superlevel-06b2a7ab/feed

peinliches schweigen
https://feeds.soundcloud.com/users/soundcloud:users:229276118/sounds.rss

zwei nasen tanken
https://zweinasentanken.podigee.io/feed/mp3

AWO Podcast:
https://awo-deutschlanddukannstdas.podigee.io/feed/mp3

klabautercast
https://klabautercast.de/feed/podcast-aac/

[angespielt – spiel, sprites & spott]
https://blog.richter.fm/category/podcast/angespielt/feed

rechtsbelehrung – recht, technik & g…
https://rechtsbelehrung.com/feed/podcast

redebedarf -  schrankenloses wo…
https://blog.richter.fm/feed/podcast

omega tau science & engineering podcast
http://omegataupodcast.net/category/podcast/feed

skeptotalk
https://www.nrwision.de/mediathek/sendungen/skeptotalk/rss/100/feed.rss

abroad in japan
https://feeds.acast.com/public/shows/abroadinjapan

stimmen der kulturwissenschaften
https://stimmen-kulturwissenschaften.univie.ac.at/?feed=mp3

amzapfhahn
https://www.nrwision.de/mediathek/sendungen/am-zapfhahn/rss/100/feed.rss

kuchenradio
http://kuchenkram.com/?feed=podcast

psychotalk
https://www.psycho-talk.de/feed/m4a

stay forever
https://podcastd45a61.podigee.io/feed/mp3

der lautsprecher
https://der-lautsprecher.de/feed/m4a

sexy cripples
https://feeds.feedburner.com/sexycripplespodcast

die drei vogonen
https://www.die-drei-vogonen.de/feed/m4a/

pubkameraden
http://www.pubkameraden.de/feed/mp3/

1337@kultur:~$
https://1337kultur.de/feed/podcast-aac/

fokus europa
https://fokus-europa.de/feed/m4a/

staatsbürgerkunde
https://www.staatsbuergerkunde-podcast.de/feed/aac-rss/

werkstattgespräche
https://werkstattgespraeche.podigee.io/feed/mp3

random encounter
https://randomencounter.de/feed/mp3/

300hertz
http://300hertz.de/feed/Gitarren-Verstarker-Gadgets/

raumzeit
https://raumzeit-podcast.de/feed/m4a/

wir. Müssen reden
https://wir.muessenreden.de/feed/podcast/

the lunatic fringe
https://tim.pritlove.org/feed/m4a/

lauer informiert
https://christopherlauer.de/feed/lauerinformiert/

humoralpathologie
http://feeds.feedburner.com/UnbenannterPodcastberEsoterikUndhnlichen

kolophon
https://kolophon.oreilly.de/feed/m4a/

not safe for work
https://not-safe-for-work.de/feed/m4a/

bartocast
http://bartocast.de/?feed=podcast

serial
https://feeds.simplecast.com/xl36XBC2

s-town
http://feeds.stownpodcast.org/stownpodcast

the trojan horse affair
https://feeds.simplecast.com/B9KgArY4

das interview. Mit philip banse
https://www.kuechenstud.io/medienradio/feed/mp3/

hoaxilla - der skeptische podcast…
https://feeds.hoaxilla.com/hoaxilla

küchenradio
https://www.kuechenstud.io/kuechenradio/feed/m4a/

mikrodilletanten
https://feeds.viertausendhertz.de/mikrodilettanten

resonator
https://resonator-podcast.de/feed/m4a/

forschergeist
https://forschergeist.de/feed/m4a/

die sondersendung
https://das-sendezentrum.de/feed/m4a/

hockdiher bayern-podcast
https://cdn.stationista.com/feeds/hockdiher-bayern-podcast

elementarfragen
https://feeds.viertausendhertz.de/elementarfragen

systemfehler
https://feeds.viertausendhertz.de/systemfehler

lage der nation – der politik-podcast aus b…
https://feeds.lagedernation.org/feeds/ldn-mp3.xml

[der weisheit]
https://blog.richter.fm/category/podcast/derweisheit/feed

radiorollenspiel
http://radiorollenspiel.de/category/podcast/feed/

alternativlos
http://alternativlos.org/alternativlos.rss

hooked fm
http://www.hookedmagazin.de/feed/hookedfm/

neusprech.org
http://neusprech.org/feed/podcast/

minkorrekt
https://minkorrekt.de/feed/m4a/

die wochendämmerung
https://wochendaemmerung.podigee.io/feed/mp3

spezialgelagerter sonderpodcast
https://spezialgelagert.de/feed/podcast/

minutenweise matrix
https://compendion.net/minutenweisematrix/feed/m4a/

netzpolitik
https://netzpolitik.org/category/netzpolitik-podcast/feed/itunes

citr – nardwuar
https://www.spreaker.com/show/4254039/episodes/feed

nachgefragt
https://nachgefragt-podcast.de/feed/episodes/

haschimitenfürst
https://feeds.acast.com/public/shows/haschimitenfurst-der-bobcast

Cui bono wer hat angst vorm drachenlord
https://cui-bono.podigee.io/feed/mp3

Der mörder und meine cousine
https://feeds.br.de/der-moerder-und-meine-cousine/feed.xml

Werkgetreu james cameron
https://compendion.net/werkgetreujamescameron/feed/mp3/

Wer hat burak erschossen?
https://www.rbb-online.de/rbbkultur/podcasts/wer-hat-burak-erschossen.xml/feed=podcast.xml

Mord verjährt nicht
https://www.rbb-online.de/rbbkultur/podcasts/mord-verjaehrt-nicht/index.xml/feed=podcast.xml

Aus politik und zeitgeschichte
https://www.bpb.de/rss-feed/342466.rss

Denkangebot podcast
https://www.denkangebot.org/feed/mp3/

Malik.fm
https://malik.fm/feed/mp3/

Rechter terror – vier jahrzehnte ...
https://feeds.br.de/rechter-terror-vier-jahrzehnte-rechtsextreme-gewalt-in-deutschland/feed.xml

Saal 101 - dokumentarhörspiel
https://feeds.br.de/saal-101/feed.xml

Sprechen wir über mord
https://www.swr.de/~podcast/swr2/leben-und-gesellschaft/podcast-sprechen-wir-ueber-mord-100.xml

Entführt der fall ursula herrmann
https://feeds.br.de/entfuehrt-der-fall-ursula-herrmann/feed.xml

Bayern 3 true crime aussage gegen aussage
https://feeds.br.de/true-crime/feed.xml

grounded with louis theroux
https://podcasts.files.bbci.co.uk/p089sfrz.rss

ndr dokucast wir erzählen gesellschaft
https://www.ndr.de/nachrichten/info/podcast4678.xml

a podcast of unnecessary detail
https://feeds.acast.com/public/shows/61deed94f2acc80013aab8aa

ukw
https://ukw.fm/feed/mp3/

this american life
https://www.thisamericanlife.org/podcast/rss.xml

schrottcast titus jonas
http://feeds.feedburner.com/SchrottcastTitusJonas

jason scott talks his way out
http://textfiles.libsyn.com/rss

wrint
http://www.wrint.de/feed/podcast/

chaosradio
https://chaosradio.de/feed/m4a

newz of the world
https://newz-of-the-world.com/feed/m4a/

logbuch:netzpolitik
https://logbuch-netzpolitik.de/feed/m4a

freak show
https://freakshow.fm/feed/m4a

cre: technik, kultur, gesellschaft
https://cre.fm/feed/m4a

die ratsherren
http://www.superkreuzburg.de/?feed=ratsherren

super 35
http://www.superkreuzburg.de/?feed=super35

superkreuzburg
http://www.superkreuzburg.de/?feed=podcast

best of diverses
http://www.superkreuzburg.de/?feed=bod

nie im kino – spektakulär gescheit…
https://feeds.br.de/nie-im-kino/feed.xml

die spur der täter – der true crime pod…
https://www.mdr.de/nachrichten/podcast/spurdertaeter/spurdertaeter-104-podcast.xml

christin und ihre mörder -serienstoff
https://www.rbb-online.de/rbbkultur/podcasts/rbb-serienstoff/christin-und-ihre-moerder-feed.xml/feed=podcast.xml

ndr 2 – täter unbekannt
https://www.ndr.de/ndr2/sendungen/taeterunbekannt/podcast4282.xml

verbrechen (die zeit)
https://verbrechen.podigee.io/feed/mp3

Because of the age of my subscriptions, some of the podcasts no longer even exist. I also list these here.

still untitled: the adam savage project
https://www.tested.com/podcast-xml/still-untitled-the-adam-savage-project/

we are vr
http://vr.bosepark.com/

opa harald erzählt
http://opa-harald.de/

schall und rauch
https://www.reflab.ch/category/podcasts/schall-und-rauch/

games und so
http://www.gamesundso.de/

spreeblick

hoaxilla porträt
https://hoaxilla.com/podcast/skeptoskop.xml

fnordfunk
http://www.fnordfunk.de/

die serienabfertigung
http://serienabfertigung.de/

audioflick
https://audioflick.de/feed.php

wikigeeks
http://www.wikigeeks.de/

mahacast
https://www.maha-online.de/

behind the hoax
http://www.hoaxilla.de/podcast/bth.xml

metrolaut
https://www.metronaut.de/feed/mp3/

And finally some podcasts are no longer interesting to me nowadays. These are here, but obviously I don't recommend them.

true klein crime – der kurzgeschichten-po…

podcast ohne (richtigen) namen

scenesat

jimquisition

padmen

doomian

sanft & sorgfältig – radioeins

nerds.fm

id10t with chris hardwick

insert moin

kp alert ! - the official podcast of k…

the co-optional podcast

auf ein bier von gamespodcast.de

fest & flauschig

h3 podcast

nerdizismus – der podcast für nerds
https://www.nerdizismus.de/

plauschangriff

gedankensprung

press select

beanscast

the joe rogan experience

radio nukular

I also want to talk a bit about the technical side. The de-facto Linux podcatcher, which I'm now also using, seems to be gPodder. It does the job well and, in the true Unix sense, only is responsible for downloading episodes, while the actual playing is handled by an extrnal player, like VLC. On the Android side I'm using AntennaPod. Both of these are open source, of course.

Now I just needed a way to sync the subscriptions and play-state of episodes, which is also implemented in both clients and comes in the form of gpodder.net (formerly mygpo). This came with a bunch of problems however. While the site itself is reachable, many links return an HTTP 500 error, including the registration of new user accounts. This seems to be the case since at least August 2022. While the admin mentioned they are working on the problem, nothing changed in the past four months.

Fortunately the gpodder.net service is also open source and seems documented well enough. So I decided to try to run it on one of my cloud server instances. According to the docs there's not much needed to get it running. You just need to install some dependencies, configure some settings and run a Python script that listenes for HTTP requests. This was easy to implement and the webpage was in fact reachable afterwards. I was also able to configure the server in my clients and sync the subscriptions to the cloud.

But it was not actually functional after following the installation instructions. Actually syncing subscriptions between the devices did not work. Clicking the corresponding button in the webinterface seemed to succeed, but nothing happened in the background. In the GitHub issues I found some other people unsuccessfully trying to run the service, from nearly two years ago.

So this was where I got stuck as well, at least initially. But then I luckily took a quick look into the Pull Requests of the project on GitHub and found the original author having made an unfinished Docker container implementation in 2014. The stuff in there provided the solution. You also need to launch some workers besides the script mentioned in the docs.

And that did the trick. The clients now not only synced their subscriptions, but also the play-state of each episode, as well as the time where an episode was paused.

There still are some problems, but because I never was able to register on gpodder.net, I'm not sure if the problem is on my side or in the code. But like in this issue and a bunch of duplicates, the names of podcasts don't show properly on the webinterface.

There's also the mygpo-feedservice that's integrated in gpodder.net without being mentioned anywhere. But this seems to still be running on the upstream instance, at least running this returns a valid-looking result:

SERVER=http://feeds.gpodder.net/parse curl --header "Accept: application/json" "$SERVER?url=http://feeds.feedburner.com/linuxoutlaws&inline_logo=1&scale_logo=30"

So I haven't further looked into hosting this as well. For now it works well enough for my usecase.

Of course, as usual, I integrated into my Ansible scripts. Please take a look there to find the exact steps, if you want to run your own gpodder.net instance.

As you can probably tell this was quite a bit of work. And all that just to be able to listen to some podcasts, like I did ten years ago with a commercial app that cost 99ct. I guess this was kind of my "2022 is the year of Linux on the Desktop" moment... 🐧