rssbox

:newspaper: I consume the world via RSS feeds, and this is my attempt to keep it that way.

776
73
Ruby

RSS Box

This app uses the API of other websites and gives you an RSS feed in return. Quick and simple.

List of public RSS Box instances: https://github.com/stefansundin/rssbox/discussions/64

To open vlc:// links, see vlc-protocol.

Roll your own

To deploy to Elastic Beanstalk, see .ebextensions/README.md.

To deploy to Kubernetes, see kubernetes/README.md.

A Docker image is available on Docker Hub and Amazon ECR.

Note: Redis is an optional dependency! It is only used for the URL resolution feature.

Configuration

You need to get API keys for the respective services and populate the environment variables, e.g. by using an .env file.

A couple of services do not have official APIs, or do not require API keys, so they will work without any keys.

These services do not require API keys: Instagram, Periscope, Mixcloud, Speedrun, Dailymotion.

Twitter

[!WARNING]
The Twitter integration is legacy code and is not maintained. It may be broken or have serious issues.

[!CAUTION]
Use at your own risk! I am not responsible if RSS Box uses all of your Twitter API quota!

[!IMPORTANT]
RSS Box uses Twitter API v2.

Go to the Twitter Developer Portal and create a new app.

Once you have the consumer key and consumer secret, run the following to get the bearer token.

curl -X POST -d grant_type=client_credentials -u CONSUMER_KEY:CONSUMER_SECRET https://api.twitter.com/oauth2/token

Copy the access_token and put it in the config.

You need to create a project and add the app to it for it to work.

YouTube

Go to the Google Developer Console, create a project and a server key. Copy the server key. Enable “YouTube Data API v3” in the project.

Vimeo

Go to the Vimeo developer website and create an app. Then create a personal access token.

Instagram

The Instagram support works without a sessionid, although it appears that the Instagram rate limits are much higher when one is used.

I highly recommend that you create a dedicated Instagram account for this. If someone manages to access your sessionid then your account may be compromised!

Login to Instagram and then inspect your browser’s cookies (this is easiest accomplished via the browser’s developer tools) and copy the value of the sessionid cookie.

Once you’ve configured RSS Box, be sure to delete the cookie from the browser to avoid it being accidentally invalidated when you sign out. The sessionid should be valid for a long time, but you may have to repeat this procedure if it stops working in the future.

Facebook

Facebook was supported in the past, but I have been unable to obtain API access since they locked it down in 2018. Maybe we can rebuild it some day, but using scraping techniques or something. Discuss here.

SoundCloud

Go to the SoundCloud developer website and create an app. Copy your client id and secret.

Twitch

Go to your Twitch settings and create an app. Copy your client id.

To download Twitch videos, you also need to configure a separate client id.

Imgur

Go to the Imgur settings and create an app. Copy your client id.