This repository has been archived on 2021-11-29. You can view files and clone it, but cannot push or open issues or pull requests.
rsstube-bash-old/docs/sites.md

12 KiB

Sites

Below are two lists: Sites that are supported by rsstube, and sites that are explicitly not supported (because they do not seem to natively support RSS). If any of the unsupported sites actually do support RSS natively, or if you want me to add/look into a site that's not on either list, please let me know.

I tried to give sample URLs for each site or software. These are just examples and should not be taken as endorsements. I like some of them, but for some of them, I just needed examples.

Supported Sites

These sites support RSS natively, and rsstube can get a feed for them.

Chirbit

Chirbit users have a built-in RSS feed at https://www.chirbit.com/[username]/rss. If a user's page URL is passed in, rsstube just appends /rss after the username. If a track URL (at chirb.it) is passed in, the page is downloaded, and the username is grabbed from the page.

Sample URLs:

DeviantArt

DeviantArt RSS URLs are complicated, but the basic idea is https://backend.deviantart.com/rss.xml followed by arguments. A feed for a given user's deviations can be found at: https://backend.deviantart.com/rss.xml?type=deviation&q=by%3A[username]+sort%3Atime+meta%3Aall. See the DeviantArt page on RSS feeds for more information.

rsstube doesn't do anything fancy here; it just generates the above URL for the given user.

Sample URLs:

Hugo

Sites generated with Hugo have a feed at /index.xml. I don't know if this is true of all Hugo sites, but it at least sometimes works.

Sample URLs:

Invidious

Invidious is basically a free software proxy to YouTube with several public instances, and it supports URL schemes in the same way YouTube does. It also supports other things, for instance, URLs in the form https://www.youtube.com/user/[username] have an Invidious RSS feed at [invidious domain]/feed/channel/[username]. Playlist feeds can be found at [invidious domain]/feed/playlist/[playlist_id].

If the page must be downloaded to find additional information, rsstube looks for <div class="h-box"> <a href="/channel/[channel_id]" style="display:block;width:fit-content;width:-moz-fit-content"> <div class="channel-profile">, and uses that to form [domain]/feed/channel/[channel_id].

Sample URLs:

Mastodon

Mastodon user pages are at [domain]/@[username], and posts are at [domain]/@[username]/[postID]. Mastodon user pages can also be found at [domain]/users/[username] (I think for compatability with Pleroma). The RSS feed for a given user is at [domain]/@[username].rss.

Sample URLs:

Nitter

Nitter is like Invidious, but for Twitter. It has several public instances. Nitter feeds have URLs at [nitter domain]/[username]/rss.

Note, Twitter is not supported.

Sample URLs:

Pleroma

Pleroma user URLs are at [domain]/users/[username]. The Atom feed for a given user is at [domain]/users/[username]/feed.atom. This may not work for all instances.

Sample URLs:

Plume

Some Plume pages directly link to the Atom feed in an alternate link. rsstube first looks for this link: <link href='[domain]/@/[username]/atom.xml' rel='alternate' type='application/atom+xml'>. If it doesn't find the link, it tries to create it. The feed for a given user is at [domain]/@/[username]/atom.xml. If the provided URL is a user's page ([domain]/@/[username]), it just puts the atom.xml on the end. If it's a blog post ([domain]/~/[username]/[post-title]/), it looks for a link to the user page: <a rel="author" class="u-url" href="[domain]/@/[username]/"></a> and appends the atom.xml to that.

Sample URLs:

Podcasts

A podcast is just an RSS feed, but a lot of people post links to specific services like Apple Podcasts, instead of just posting the feed link. rsstube supports the following podcast sites, so you should be able to put in the URL for a podcast, and it will return the RSS feed URL.

Basically, rsstube just looks on the page for a link to the actual RSS file.

Sites with sample URLs:

Reddit

Reddit URLs are extremely hackable, so rsstube assumes the user wants a feed for the actual URL provided, not specifically a user or a subreddit. To get an RSS feed for a Reddit page, just add /.rss to the end of the URL.

Sample URLs:

Soundcloud

Soundcloud users have built-in RSS feeds, which rsstube returns; however, by default tracks are not added to them. The feed comes in the form: https://feeds.soundcloud.com/users/soundcloud:users:[user_id]/sounds.rss

To get the user ID, we download the page and search for the string soundcloud:users:[user_id]"

Unfortunately, most Soundcloud RSS feeds will be empty, unless they are for a serialized podcast or something like that.

Sample URLs:

Tumblr

Tumblr provides an RSS feed for a given page at [page URL]/rss. For example, the feed for username's posts will be: https://username.tumblr.com/rss. If you wanted all of username's posts that were tagged funny, you could use https://username.tumblr.com/tagged/funny/rss

(Note: Tumblr does not support HTTPS on all pages, so the URL may actually start with http:// )

Sample URLs:

Vimeo

The Vimeo RSS feed for a user comes in the form: https://vimeo.com/user[user_id]/videos/rss

If rsstube receives a URL in the form https://vimeo.com/user[user_id]/ it can just append videos/rss to the end. If it receives a video URL, it will need to download the video page and find the user ID. It can be found in various parts of the page, including by searching for creator_id

Sample URLs:

Write.as

See WriteFreely.

WriteFreely

WriteFreely(/Write.as) puts an RSS feed at [user page]/feed/. For single-user instances, this means [domain]/feed/, and for multi-user instances, this means [domain]/[username]/feed/.

The user's page also lists the feed directly in a link element: <link rel="alternate" type="application/rss+xml" title="[username] &raquo; Feed" href="[RSS link]" />

Sample URLs:

YouTube

The YouTube RSS feed comes in the form: https://www.youtube.com/feeds/videos.xml?channel_id=[channel_id]

Some YouTube channels have a URL in the form: https://www.youtube.com/channel/[channel_id]. In this case, we just take the channel ID from the end of the URL. In the case of https://www.youtube.com/user/[username] we can instead use https://www.youtube.com/feeds/videos.xml?user=[username]. For a playlist (https://www.youtube.com/playlist?list=[playlist_id]) we can use https://www.youtube.com/feeds/videos.xml?playlist_id=[playlist_id].

If the channel's URL is not in this form (e.g., if the user passes in a video URL), we download the page and try to get the channel ID from the metadata. YouTube seems to have moved this metadata info to JSON that's parsed by the JavaScript. rsstube now looks for the string: ("channelId":"[channel_id]"). If it's a user/channel page that for some reason wasn't already covered, we can also just use the canonical link to the /channel/ page (<link rel="canonical" href="https://www.youtube.com/channel/[channel_id]">).

Sample URLs:

Unsupported Sites

These sites are explicitly unsupported because they do not seem to support RSS natively. For these sites, you might have better luck with a tool like RSS Box that can be run from your own server (or may have public instances) to create the RSS feed.

Links here are not guaranteed to be accurate but are included for some reference of why I believe the given site does not support RSS natively.