Skip to main content

Friends2Feeds: Taking Feeds Back from Social Media

Long ago (in Internet time), people used feeds to stay up-to-date with what happened on the Web. Then came big platforms who took that concept (and sometimes the word itself) and made everyone believe that it was better when there were lots of ads in it and an algorithm choosing what you saw.

We can do better. Social media might be suitable for some purposes, but often you want to make sure you see every post from a particular person, organisation, or project. Feed readers are a better fit for this, but feed discovery is cumbersome -- we've become conditioned to the instant gratification of hitting 'follow' rather than taking the time to hunt down a feed and hooking it up in a feed reader.

Friends2Feeds helps to reverse this tendency, by searching the people you follow on social media (specifically Twitter, to start with) and creating an OPML file from any feeds it finds, so that you can easily import them into your feed reader. Then you can decide whether or not you need to follow all of those social media accounts.

Installation

If you already have Python on your system, it's as easy as:

> pip3 install friends2feeds

Creating an OPML File

friends2feeds.py takes a Twitter username as the -t option, and outputs an OPML file for that person's friends. For example:

> TWITTER_ACCESS_TOKEN=MY_TOKEN friends2feeds.py -t mnot > friends.opml

Then, import that OPML file to your feed reader.

Note that TWITTER_ACCESS_TOKEN needs to be in the environment, carrying your twitter API access token. To get one, you'll need to:

  1. Sign up for a Twitter developer account
  2. Create a new project
  3. Create a new app within that project
  4. Go to the "Keys and Tokens" tab and copy down the Bearer Token (generating a new one if necessary).

In the example above, the token is MY_TOKEN; yours is likely to be considerably longer than that.

Updating Your Feeds

Over time, you might follow new people, and the people you follow might add new feeds. To update your feed reader without adding a lot of duplicates, you can use the -i flag to specify the location of your old OPML file (either an export from your feed reader, or preferably the last OPML file you generated with friends2feeds); all of the feeds in it will be excluded from the output:

> TWITTER_ACCESS_TOKEN=MY_TOKEN friends2feeds.py -t mnot -i old.opml > friends.opml

Release files for friends2feeds 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for friends2feeds 0.1.1
File Size Uploaded
friends2feeds-0.1.1.tar.gz 5.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for friends2feeds 0.1.1
File Interpreter ABI Platform
friends2feeds-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 11.4 kB

Release files / friends2feeds-0.1.1.tar.gz

Download URL friends2feeds-0.1.1.tar.gz
Size 5.6 kB
Tags Source
SHA-256 checksum
How to use checksums
91e3af398d4f3f1d21e14ca758f46951a836e7a253676aed478453cbc3ddac19
BLAKE2b-256 checksum
How to use checksums
83abd34da9220bf4296dc05e6ee61b83ef117e6ea568d3ccbe67804442abb022
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Release files / friends2feeds-0.1.1-py3-none-any.whl

Download URL friends2feeds-0.1.1-py3-none-any.whl
Size 5.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bf48efe5df0175f31c6d430743c0e292b1b67419e0fcf01438a3c241b839c2f0
BLAKE2b-256 checksum
How to use checksums
b7fa438a6baf67e28c0ca14346063923678a3a37e4cdd9ed0206d755b0964383
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page