Would it make sense to add Podping support?

App version: 2.3.0-beta2 (state whether from Google Play/F-Droid/Custom built APK)

Problem you may be having, or feature you want:
Pulling RSS feeds and then check if there are new episodes every X time is not very efficient. WebSub has been suggested as an alternative solution, but this also has downsides:

  • centralisation (AntennaPod would need its own server that pushes new update info to clients, and thus would collect info (namely: the subscriptions) of its users)
  • frequent check-ins (if a client doesn’t tell the server it’s still interested to receive updates every 15 days or so, the server will stop informing the client)
  • reliability (if a server dies out, as a client you won’t know and will simply stop receiving new episodes info)

Suggested solution:

Exploit PodPing, which makes it possible to stop pulling RSS feeds with high frequency, while avoiding the issues that WebSub has. PodPing explained:

Podping is a blockchain based global notification system for podcasting. Feed urls are written by the publisher to the blockchain within seconds of a new episode being published. Anyone can monitor for those updates and only pull a copy of that feed when it shows up on the chain.

AntennaPod could exploit PodPing to
a) check a node via an API to learn which feeds have been updated (and thus which RSS feeds we should poll)
b) pull the relevant RSS feeds and get a full episode info

Podcastindex.org is already getting informed of feed updates by a few bigger podcast hosters, so the system works.

Screenshots / Drawings / Technical details:

Of course not all RSS feeds are on the PodPing network yet, so some feeds would still need to be pinged/pulled as they are now. How we (AntennaPod as client) should know which feeds don’t need to be frequently checked any-more, I currently don’t know. I suppose this info is in the Podcast Index. There is also a proposal to include this info in feeds, as a Podcast Namespace tag: Proposal: <podcast:podping> tag · Issue #258 · Podcastindex-org/podcast-namespace · GitHub

There is code for ‘watchers’ in Python and JavaScript.

Here is explained what podping is:
Podcasting 2.0: Episode 38: Don’t Feed The Monkeys https://mp3s.nashownotes.com/PC20-38-2021-05-21-Final.mp3#t=2123 [00:35:23]