Skip to content
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

Provide private RSS feed for non federated actors #6262

Open
kevincox opened this issue Mar 11, 2024 · 7 comments
Open

Provide private RSS feed for non federated actors #6262

kevincox opened this issue Mar 11, 2024 · 7 comments

Comments

@kevincox
Copy link

Describe the problem to be solved

I've been using PeerTube feeds for a while now and overall they work well. However a major limitation is that the feeds only appear on the instance that hosts the channel. This meas that when watching videos you are not using your "home instance" so can't interact, track watch progress or any other features that require being logged in.

Describe the solution you would like

I suspect that part of the reason that the feeds are like this is to avoid issues with publishing content from other instances which may be against the policies of the current instance. If that is the case then users can be authenticated via a feed authentication token included in the URL. This would allow users to subscribe to channels via their own instance without forcing their instance to publish public feeds for channels on other instances.

Another approach that may fulfill this use-case is creating for each user a "to watch" feed. This could provide a feed of videos from channels that they have subscribed to in a single feed. This would be authenticated with a personal authentication token. This approach may be a bit less flexible as the user may want to handle different subscriptions differently, so putting them into one feed may be less convenient.

@Chocobozzz
Copy link
Owner

However a major limitation is that the feeds only appear on the instance that hosts the channel

What feed are you talking about? Because the "Videos of a specific channel" feed correctly appears on remote channels too.

@Chocobozzz Chocobozzz added the Status: Waiting for answer Waiting issue author answer label Mar 12, 2024
@kevincox
Copy link
Author

I can't reproduce this on any of the instances I have found. (But note that I am not running my own, so maybe this is just a common configuration option to disable on public instances?). The feed exists and has the correct metadata but no videos. Browsing the HTML UI shows videos.

Original (works): https://framatube.org/feeds/videos.xml?videoChannelId=2215

Not working:

@kevincox
Copy link
Author

Actually with further searching I did find one instance with a working feed: https://neat.tube/feeds/videos.xml?videoChannelId=370

Maybe there is some sort of issue when rendering new channels as feeds? It seems like if the regular HTML page works though the feed should also work.

@Chocobozzz
Copy link
Owner

These instances don't seem to have federated content with framatube (maybe because they don't follow framasoft account, framaconf channel or framatube.org instance). For example https://diode.zone/c/framaconf@framatube.org/videos is empty.

If you find an instance federated with framatube.org, like peertube2.cpy.re you can see there are videos: https://peertube2.cpy.re/c/framaconf@framatube.org/videos

And the RSS feed works as expected: https://peertube2.cpy.re/feeds/videos.xml?videoChannelId=25078

@kevincox
Copy link
Author

kevincox commented Mar 12, 2024

I see videos for that example:
image

And the feed is empty:

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>FramaConf</title>
        <link>https://diode.zone/c/framaconf@framatube.org/videos</link>
        <description>Replays de conférences données par les membres de Framasoft</description>
        <lastBuildDate>Tue, 12 Mar 2024 13:36:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>Toraifōsu</generator>
        <image>
            <title>FramaConf</title>
            <url>https://diode.zone/lazy-static/avatars/cda26839-356f-42a6-ad32-9051cb5e6f8b.png</url>
            <link>https://diode.zone/c/framaconf@framatube.org/videos</link>
        </image>
        <copyright>All rights reserved, unless otherwise specified in the terms specified at https://diode.zone/about and potential licenses granted by each content's rightholder.</copyright>
        <atom:link href="https://diode.zone/feeds/videos.xml?videoChannelId=6804" rel="self" type="application/rss+xml"/>
    </channel>

@Chocobozzz
Copy link
Owner

Ok I understand now: you're logged in so the instance displays videos. I'm not so I can't see the videos (it's an admin setting to allow users or anonymous users to "escape" from the admin federation).

Common RSS feeds (except your subscriptions feed) don't support authentication so it's as if you were not logged-in, and so you can't see videos.

@kevincox
Copy link
Author

Ah yes, you are right. I was logged in to https://diode.zone. If I browse in a private window there are no videos there.

You are also right that the subscription feed does have an auth token. I missed that on my first look at the page. (It isn't advertised via RSS auto-discovery, but if you find the link on the page it has an auth token)

The subscriptions solution is ok. It is kind of annoying that they all get bundled into one feed but it is good enough. Maybe I can file a dedicated feature request to allow auth tokens for any feed if the videos would otherwise be suppressed.

Also maybe it is better to return a 404 or 401 for these feeds to make it clear that they are intended non-functioning, rather than providing a "working" feed that will never get a video.

@Chocobozzz Chocobozzz changed the title Provide RSS feed for remote channels. Provide private RSS feed for non federated actors Mar 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants