New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for comments based on ActivityPub (podcast:socialInteract
)
#7078
Comments
This comment was marked as resolved.
This comment was marked as resolved.
Thanks for posting this @dellagustin. Some discussions on the approach are to be had, I think. One approach is AntennaPod becoming an AP client, another is to recognise the existence of the tag and opening it in dedicated apps. And a key point is Google's requirements when UGC is concerned: Tunous/Dawn#642 |
Thank you for the reply. Sure, I suppose we will need a lot of discussion on many aspects of this feature. I'm hoping that we will be able to enable Antennapod as a AP client, but let's see. I'll check the UGC topic, I need to learn more about that. |
@keunes I am interested in working on this feature. What do you think of Phase 1:
Phase 2:
Phase 3:
|
To be honest, in order to hopefully get fewer problems with UGC things on Google Play, I would just open that URL in a web browser instead of showing user comments directly inside AntennaPod |
@tonytamsf , @keunes , @ByteHamster , I can't comment on the do's and don'ts of User Generated Content (UGC) at the moment due to lack of knowledge and experience with the topic, but I'm hoping to familiarize myself with it in the near future. That said, and assuming we eventually conclude there is a safe way to show UGC in the app, my suggestion for the phased approach would be:
I'd be already happy with Phase 1, as it would raise awareness and curiosity towards ActivityPub based comments and the Fediverse, which I think resonates very well with the distributed and open nature of the podcasting ecosystem. Nevertheless, I think it would be great if we could go beyond and also support Phase 2 and 3 eventually. Footnotes |
If it's simply displaying a link to the commenting, I can work on this. @keunes thoughts on where to put the link? next to the Transcript and favorite icons on the player screen? Or off to a menu drop down? |
Sounds good. I think we should also add it to the podcast detail view, somehow. Maybe in the top app bar as well? What might be cool (but no idea how complex this is) is to show a bubble with a number, indicating the number of replies. |
Where would you place the link? I can show you a work in progress soon. |
I think the link should be:
Sorry, I'm not familiar yet with the terminology used in AntennaPod for the UI elements.
To the podcast detail view? I'm not sure I understood, but comments are so far are on episode levels, not podcast level. Nevertheless, in the future I hope that there will be a tag pointing to the ActivityPub Actor that represents the podcast.
It would be cool, but not practical to implement. To get the number of comments would mean fetching and counting all replies, that would require a good number of HTTP requests. |
Sorry, I meant episode detail view indeed. Same icon and placing as in the player. |
@dellagustin FYI I have started a PR for this feature #7127 |
We have to come up with a different way to access the comments. We can't just keep adding more and more icons to the toolbar (both for the player and the episode details page). With two more buttons (transcripts, comments), we already have too many buttons to display them on smaller screens. Currently, the metadata (chapters, description) is displayed as buttons below the cover. I think comments (and transcripts) would better fit there as buttons. Currently the buttons in the top are control buttons, not really metadata display buttons. |
I would agree, but that I think would require a big UI restructuring. I did make a proposal for the player screen in the past, based on user feedback: https://forum.antennapod.org/t/user-feedback-swipe-navigation-from-player-screen-2-3-beta/1119 Maybe it's time to look at this again? |
One remark, as I user I sometimes would like to access these type of metadata without being listening to the episode, so it would be good if I could somehow reach it from the episode view, as well as from the player. |
Makes sense, the link is in both views in my PR |
Checklist
App version
3.3.2
Where did you get the app from
Google Play
Problem you may be having, or feature you want
I would like be able to comments on podcast episodes and also see and reply to existing comments on podcast episodes.
Suggested solution
There are some existing support for comments on RSS 2.01 and RSS extension namespaces (reference needed). Most recently, the Podcasting 2.0
podcast
namespace introduced the tagpodcast:socialInteract
2. Among other things, the main function of this tag is to enable support for distributed comments for episodes through the ActivityPub protocol. This enables listeners to comment on episodes from any ActivityPub enabled instance, such as Mastodon instances, meaning that podcast comments will be part of the so called Fediverse (https://fediverse.info/, https://axbom.com/fediverse/).AntennaPod could use this to show comments for podcast episodes and also allow, with different functional degrees, that users would also author comments and reply to existing comments.
Screenshots / Drawings / Technical details
Screenshots
Comments shown on podcastindex.org for one of the episodes of the Podcasting 2.0 podcast:
Comments shown on Podverse for one of the episodes of the Podcasting 2.0 podcast:
Technical Details
The XML tag
podcasting:socialInteract
2 can be used under the RSS<item>
tag as in the example:Although there are other protocols that can be used,
activitypub
indicates that the URL indicated on theuri
parameter points to an ActivityPub Activity, usually a Note. This Activity is considered a root comment, and all the other comments will be either replies to this comment, or replies to replies, forming a (possibly deep) tree.A brief word on ActivityPub: It provides two APIs, a Client to Server (C2S) one and a Server to Server (S2S) one. The S2S one is predominantly more mature in the ecosystem, as it is required for interoperability between servers. The C2S is far less mature and, in certain aspects, underspecified. The interoperability between Clients and Servers often falls back to the Mastodon API. Nevertheless, a combination of ActivityPub C2S and Mastodon APIs is currently the only known way in use to generally fetch comments for a cross-app comments.
Fetching the comments
To fetch comments, one can fetch the Activity url of the root post, with the header
Accept: application/ld+json; profile="https://www.w3.org/ns/activitystreams"
. Here is an example of a response body:Fetching the
replies
recursively, it is possible to build the full tree of comments.The comments are public and do not require authentication.
Known quirks:
References
podcasting:socialInteract
tag specification - https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#social-interactFootnotes
Embeddable comments defined in RSS 2.0: https://www.rssboard.org/rss-weblog-comments-use-case ↩
podcasting:socialInteract
tag specification - https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#social-interact ↩ ↩2Pleroma issue about empty replies on ActivityPub C2S API Chttps://git.pleroma.social/pleroma/pleroma/-/issues/3061 ↩
Mastodon issue https://github.com/mastodon/mastodon/issues/17442 (list item 4 describes the infinite loop) ↩
The text was updated successfully, but these errors were encountered: