Overview
Interested in supporting cross-app comments for podcasts?
Podcasters
You don't need this project or any custom software to get started today!
- Create an account for your podcast on any existing Fediverse server (Mastodon/Pleroma/Castopod/etc), or host your own.
- For each new episode you publish, create a post for it and add the post url to the podcast:socialInteract tag in your podcast's rss feed.
For example:
<rss xmlns:podcast="https://podcastindex.org/namespace/1.0" ...>
...
<item>
<title>Episode 70: An episode about nothing</title>
...
<podcast:socialInteract platform="mastodon" protocol="activitypub" accountId="@yourpodcast">
https://mastodon.social/@yourpodcast/123456123456123456
</podcast:socialInteract>
</item>
...
</rss>
Podcast App Developers
The best way to give your existing users the ability to comment to these posts is to host a service that speaks ActivityPub .
Assuming you have an existing user/profile system in your app, you need to:
- Create and host an ActivityPub Actor for each of your users that wants to post a comment
- Create and host an ActivityPub object of type Note for each comment generated by your app, using the inReplyTo attribute to reference the parent comment on the remote Fediverse server
- Create and host an ActivityPub activity of type Create that points to the Note
- Federate the Create activity over to the remote Fediverse server, via an HTTP
POST
to the remote user's inbox - Federate out profile updates (Update Actor activities) and "likes" (Like Object activities) in a similar way
- Implement WebFinger lookups for each of your Actors
- Maintain a separate rsa keypair for each Actor to sign your federation calls with HTTP Signatures
What is Minipub?
Minipub is an open-source microservice for podcast app developers that does all of this for you.
You can host Minipub on your own server, or in your own Cloudflare Workers account. It gives you a single access point for creating users and comments, and federating them out to the world.