RSS/Atom feed generator for various (mainly social media) websites, including Twitter and Instagram.
As of the time of writing:
- Flickr
- Instagram (images, videos, albums, stories, livestreams/replays, messages, news)
- Livedoor
- Naver blogs (posts, search)
- Various news websites (posts, search, but it's a mess at the moment)
- Reddit (messages only)
- Soundcloud
- Tistory (posts, search, categories, tags)
- Tumblr
- Vine (deprecated due to vine's closure)
- XDG Notifications (requires
notifications_server
to be set totrue
) - XE (search only)
This list may change. Check https://github.com/qsniyg/rssit/tree/master/rssit/generators to see the full list.
RSSit requires Python 3, and various packages outlined in requirements.txt. You can install them automatically via:
$ pip install -r requirements.txt
RSSit optionally requires dbus-python
and PyGObject
for desktop notifications support.
None required.
$ python rssit.py
By default, it will serve at http://localhost:8123/
.
Access it via your web browser, and submit the URL you wish to generate a feed for. If it's supported, it will return a link to the feed.
You can also run rssit as a command-line application by submitting a URL path directly (without the leading http://...):
$ python rssit.py '/f/twitter/u/Support'
Configuration is primarily done at ~/.config/rssit/config.ini
. Here is a sample configuration:
[core]
hostname = localhost
port = 8123
[default]
output = rss
You can also add specific configurations for any generator and feed.
[twitter]
output = atom
[twitter/u/Support]
title = Support from Twitter
description = Twitter's Support User
Since configuration is applied from parent folders to children, with the configuration above, http://localhost:8123/f/twitter/u/Support will result in this configuration:
title = Support from Twitter
description = Twitter's Support User
output = atom
Configuration is lazily applied, so the following entry is perfectly acceptable, and would modify the previous URL's configuration accordingly:
[twitter/u]
output = rss
If you only wish to modify the configuration per-request, you can do so via standard GET request parameters:
http://localhost:8123/f/twitter/u/Support?title=Support&output=atom
You can also modify the configuration on the command-line:
$ python rssit.py '/f/twitter/u/Support' output=rss "title=Support from Twitter"
Other applications can be hooked to run at any stage of the feed generation process. One such application is download.py, which uses data from the "social" output format to download media.
To use download.py, clone the dlscripts repo somewhere, and add the following to your configuration:
social_hooks = python path/to/download.py
RSSit will then send the data to the program's stdin.
To disable hooks entirely (useful for one-off usages):
nohooks = true
While each generator can have their own options, these options will modify most generators' behaviour
output
- Output format. Possible options:social
- Simple format used to describe most social media-like posts (represented in JSON)feed
- General format used to describe a feed (every generator must generate to this directly or to a format such as social that supports generating to this)rss
- RSSatom
- Atom
count
- Minimum amount of entries to return. Currently not all generators support this. Possible values:-1
- All entries (can be very slow)0
- No entries1
- Minimum possible number of entries (fastest)n
- Minimum ofn
entries
brackets
- Adds the generator's name in brackets to the title of the feed, e.g. '[Twitter] TwitterDev'title
- Title of the feeddescription
- Description of the feedtimeout
- Timeout for downloads submitted by the generatorproxy
- Proxy for downloadshttpheaders_[...]
- Sets an HTTP header for downloads, for examplehttpheaders_Cookie = ...
(useful for at least Instagram and Weibo)
Options that affect the core engine for RSSit
hostname
- Network hostname. This is used for self-referencing URLs within RSSitport
- Port to run RSSit