iv-org / invidious

Invidious is an alternative front-end to YouTube
https://invidious.io
GNU Affero General Public License v3.0
16.18k stars 1.79k forks source link

[Feature request] PubSubHubbub/WebSub support for feeds #4762

Closed mrnoname1000 closed 3 months ago

mrnoname1000 commented 3 months ago

Is your feature request related to a problem? Please describe. From what I understand, Invidious subscribes to some kind of PubSub endpoint or Webhook when subscribing to channels. Downstream consumers of channel feeds still operate on a pull basis. I'm not sure if this triggers more traffic between Invidious and YouTube, but it certainly causes delays between videos being uploaded and appearing in feed readers.

Describe the solution you'd like Invidious should provide a PubSubHubbub/WebSub hub to push articles directly to consumers as soon as it's aware of them. This would remove almost all delay between upload and consumption, and possibly reduce traffic from Invidious which could help Instances stay unblocked.

Describe alternatives you've considered I'm not familiar with the Crystal ecosystem, but I somewhat doubt anyone has written a WebSub hub library. It shouldn't be too difficult to implement from scratch, but a third-party hub such as https://pubsubhubbub.appspot.com or https://websubhub.com (self-hostable) could be used too.

Additional context The PubSubHubbub Github organization has lots of good resources on the protocol.

The feed reader I use, FreshRSS, only pulls feeds once a day when subscribed to WebSub, and I've heard from others that their readers only pull once a week. I have over 100 channels I subscribe to and follow feeds for, and since those get refreshed every 30 minutes currently, we're talking about a huge reduction in traffic.

unixfox commented 3 months ago

Out of scope of what invidious should be and should provide. If you want this kind of functionality, just use google pubsubhub: https://developers.google.com/youtube/v3/guides/push_notifications.

Any domain can do subscribe to it.

Also, this would be such a nice feature because the rss feed reader has to be exposed on the internet.