📰 I consume the world via RSS feeds, and this is my attempt to keep it that way.
  • Ruby 67.9%
  • HTML 23.4%
  • JavaScript 6.6%
  • Dockerfile 0.9%
  • CSS 0.6%
  • Other 0.6%
Find a file
2023-01-15 10:32:57 -08:00
.ebextensions Elastic Beanstalk: Ruby 3.0 is finally supported. 2021-11-21 16:07:42 -08:00
.platform Add a simple way to configure puma to use a TLS certificate for https connections. 2022-02-13 22:42:41 -08:00
app Make Redis an optional dependency. Handle URL resolution gracefully if Redis is unavailable. 2022-02-21 23:06:03 -08:00
bin Ruby 3.2.0 2023-01-07 15:24:40 -08:00
config Fix minutes being used as months.. oopsie 2022-11-25 21:40:33 -08:00
kubernetes Add INSTAGRAM_SESSIONID. This also removes support for passing a sessionid parameter in the request, so you are no longer able to subscribe to private feeds (unless you self-host RSS Box). 2021-01-13 23:01:52 -08:00
lib Move files around so that initializers run before all App classes. 2022-02-21 22:38:09 -08:00
log YouTube 2015-05-24 19:14:41 -07:00
public Replace Heroku with Fly. 2022-11-25 19:56:33 -08:00
tmp YouTube 2015-05-24 19:14:41 -07:00
views bootstrap v4.6.2, jquery v3.6.3 2023-01-07 15:26:18 -08:00
.dockerenv.example Remove Google Analytics tracking. Never really looked at the data anyway. 2021-01-13 23:06:03 -08:00
.dockerignore Ruby 3.2.0 2023-01-07 15:24:40 -08:00
.env.example Skip reporting 404 errors by default. Use AIRBRAKE_REPORT_404 if you still want them. The variable can be set to "true" to report all 404 errors, or a regexp which indicates what to skip. 2021-08-22 19:15:46 -07:00
.gitignore Update gems. 2019-11-30 18:17:15 -08:00
.irbrc irb tweaks. 2022-10-23 23:28:08 -07:00
.ruby-version Ruby 3.2.0 2023-01-07 15:24:40 -08:00
app.rb Replace Heroku with Fly. 2022-11-25 19:56:33 -08:00
Caddyfile Caddy v2 2020-05-22 15:25:53 -07:00
config.ru Freeze strings with magic comment frozen_string_literal. 2017-10-06 14:50:45 -07:00
docker-compose.yml Docker image improvements. 2019-09-28 18:57:08 -07:00
Dockerfile Switch to Ruby built with jemalloc. 2023-01-15 10:32:57 -08:00
fly.toml Replace Heroku with Fly. 2022-11-25 19:56:33 -08:00
Gemfile irb tweaks. 2022-10-23 23:28:08 -07:00
Gemfile.lock Add more platforms. This is annoying. 2023-01-07 17:18:58 -08:00
LICENSE Create LICENSE 2018-01-21 20:03:51 -08:00
Procfile Puma port binding tweak. 2020-05-09 21:21:13 -07:00
prometheus.yml Add prometheus metrics endpoint. 2018-11-17 21:55:20 -08:00
Rakefile Update github-release-party which now supports Fly. 2022-11-25 23:07:36 -08:00
README.md Replace Heroku with Fly. 2022-11-25 19:56:33 -08:00
Vagrantfile Enable clogger again, with an option to only send to a file. 2021-02-02 23:02:47 -08:00

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

Go to Twitter Application Management 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.

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.