Peertube: Support for WebSub

Created on 28 Jun 2018  路  7Comments  路  Source: Chocobozzz/PeerTube

Hello,
This is a suggestion to consider implementing WebSub / PubSubHubbub for the existing RSS/Atom feeds.

(Already mentioned in https://github.com/Chocobozzz/PeerTube/issues/493#issuecomment-386458200 )


Roadmap

  • [x] launch a notification task every time the ressource is updated with new content/modifications
  • [x] add the Hub to the feed (it's already supported by pfeed as a parameter but we might want to add multiple hub support)
Type

Most helpful comment

My use-case is for RSS/Atom feed readers. For instance, I am one of the developers of FreshRSS, but some larger actors include Feedly, The Old Reader, Inoreader, NewsBlur, IFTTT, etc.

P.S.: While RSS/Atom works fine with pull, WebSub / PubSubHubbub enables push, which is faster and often times more resource efficient. For instance, FreshRSS automatically reduces the pull frequency to at max one per day when a feed supports WebSub / PubSubHubbub.

All 7 comments

@Alkarex do you know of any potential clients that would effectively use our WebSub feeds? (apart from the internal notification system)

My use-case is for RSS/Atom feed readers. For instance, I am one of the developers of FreshRSS, but some larger actors include Feedly, The Old Reader, Inoreader, NewsBlur, IFTTT, etc.

P.S.: While RSS/Atom works fine with pull, WebSub / PubSubHubbub enables push, which is faster and often times more resource efficient. For instance, FreshRSS automatically reduces the pull frequency to at max one per day when a feed supports WebSub / PubSubHubbub.

Maybe @julien51 could have a tip there

@Alkarex @julien51 do you think we should setup a WebSub hub ourselves, as common infrastructure for PeerTube instances?

ping @Alkarex @julien51 - before I go forward with the PR, I need to know if pubsubhubbub.superfeedr.com is the only hub I should care about for know. Being new to WebSub, I don't see a lot of hubs and this one seems like the default to stand out.

In your experience, is it fine if we default to that hub, or should we use/setup another one?

Hello @rigelk
Here are some statistics from my FreshRSS instance:

$ find -name '!hub.json' | xargs jq -r .hub | sort | uniq -c | sort -nr
     38 http://pubsubhubbub.appspot.com/
      2 https://pubsubhubbub.appspot.com
      2 https://mamot.fr/api/push
      1 https://websub.rocks/blog/102/DZ0RbPbGlPdQVR6xPX8U/hub
      1 https://techcrunch.com/?pushpress=hub
      1 https://pubsubhubbub.superfeedr.com/
      1 https://kristinahobbs.com/?pushpress=hub
      1 https://humblr.social/api/push
      1 https://henningjust.wordpress.com/?pushpress=hub
      1 https://hackaday.com/?pushpress=hub
      1 https://f.a80.fr/pubsubhubbub/alkarex
      1 https://blog.ouseful.info/?pushpress=hub
      1 http://pubsubhubbub.superfeedr.com/
      1 http://medium.superfeedr.com/
      1 http://hackaday.com/?pushpress=hub
      1 http://feedpress.superfeedr.com/

When using a third-party hub, https://pubsubhubbub.appspot.com (Google) or some variants is the most used (especially because it is used by https://feedburner.google.com and other Google services), but https://pubsubhubbub.superfeedr.com is also a good option (used by e.g. Medium http://medium.superfeedr.com).

But instead of a third-party hub, some systems are using a built-in mechanism. This is the case for WordPress (when using a plug-in https://wordpress.org/plugins/pubsubhubbub/ or when hosted on WordPress.com), Friendica, GNU Social...

Using a third-party hub is easier (it is really just sending a very simple HTTP request when something has changed) but less decentralised and less powerful. In particular, it is not practical to use a third-party hub if you would like to support custom filters (e.g. having clients interested only in some specific news but not all).

Using a shared hub as a common infrastructure for PeerTube instances would be half way between those two approaches.

I can gladly help with testing / architecture / and other feedback.

For testing, see https://websub.rocks/publisher and https://websub.rocks/subscriber (the subscription part might not be relevant for you).

Here are some examples of feeds using WebSub with various mechanisms:

Let me know whether that answers your questions so far :-)

P.S.: Maybe https://github.com/hemerajs/websub-hub could be inspiring (not tried)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

milleniumbug picture milleniumbug  路  3Comments

filmaidykai picture filmaidykai  路  3Comments

XenonFiber picture XenonFiber  路  3Comments

zilti picture zilti  路  3Comments

conferences-gesticulees picture conferences-gesticulees  路  3Comments