Publishes RSS/Atom feeds to Diaspora*
Switch branches/tags
Nothing to show
Clone or download
Failed to load latest commit information.
.gitignore Ignore *.db Apr 19, 2016
LICENSE Initial commit Apr 17, 2015 Update Dec 11, 2017 Extract 'content' from ATOM feeds #23 Dec 22, 2017


Publishes RSS/Atom feeds to Diaspora*

This is a lightweight, customizable "bot" script to harvest RSS/Atom feeds and re-publish them to the Diaspora social network. It is posted here without warranty, for public use.


You must have the following perl modules installed:

  • LWP::UserAgent
  • URI::Escape
  • HTML::Entities
  • JSON
  • XML::Simple
  • DBD::SQLite
  • HTML::FormatMarkdown

For instance, on a debian system you can install them like so:

sudo apt-get install libwww-perl libany-uri-escape-perl libhtml-parser-perl libjson-perl libxml-simple-perl libdbd-sqlite3-perl libhtml-format-perl

This script is intended to be run as a cron job, which might look something like this:

@hourly ~/ --feed-id myfeed --feed-url --pod-url --username user --password supersecretpassword --category-tags --title-tags > /dev/null 2>&1


-a   --aspect-id <id>                Aspects to share with. May specify multiple times (default: 'public')
-b   --embed-image                   Embed an image in the post if a link exists (default: off)
     --body                          Post the body of the feed (description or content:encoded item)
-c   --category-tags                 Attempt to automatically hashtagify RSS item 'categories' (default: off)
-d   --database <sqlite file>        The SQLite file to store feed data (default: 'feed.db')
-e   --title-tags                    Automatically hashtagify RSS item title
-f   --feed-url <http://...>         The feed URL
-g   --user-agent <string>           Use this to spoof the user-agent if the feed blocks bots (ex: 'Mozilla/5.0')
-i   --feed-id <string>              An arbitrary identifier to associate database entries with this feed
-j   --no-branding                   Do not include 'posted via pod_feeder' footer to posts
-l   --pod-url <https://...>         The pod URL
-m   --timeout <hours>               How long (in hours) to keep attempting failed posts (default 72)
-n   --ignore-tag <#hashtag>         Hashtags to filter out. May be specified multiple times (default: none)
-o   --fetch-only                    Don't publish to Diaspora, just queue the new feed items for later
-p   --password <********>           The D* user password
-r   --url-tags                      Attempt to automatically hashtagify the RSS link URL (default: off)
-t   --auto-tag <#hashtag>           Hashtags to add to all posts. May be specified multiple times (default: none)
-s   --insecure                      Allows the option to bypass any errors caused from self-signed certificates(default: off)
-u   --username <user>               The D* login username
-v   --via <string>                  Sets the 'posted via' text (default: 'pod_feeder')
-w   --post-raw-link                 Post the raw link instead of hyperlinking the article title (default: off)
-x   --limit <n>                     Only post n items per script run, to prevent post-spamming (default: no limit)

A Note on YouTube Feeds

It is possible to publish a YouTube channel's feed, by using the following URL format:<channel id>