Create a gist now

Instantly share code, notes, and snippets.

How to track your Instapaper queue with Beeminder

How to track your Instapaper queue with Beeminder

A step by step guide to tracking your Instapaper reading list using Beeminder. This method can also be used more generally to track many things that spit out an RSS feed.

In short: Instapaper gives you (private) RSS feeds for your Read later folder and your Archive. We give IFTTT these feeds and tell it to send an email to Beeminder whenever either feed updates. We'll send a "+1" when you add an item to your read later folder and a "-1" when you archive an item. Your Beeminder goal will track the total number of articles in your queue.

Ingredients

Recipe

  1. Set up a Beeminder goal!

    • Open up Beeminder, create a new goal.
    • For goal type, choose custom (again, you'll need a Beeminder subscription to get a custom goal). Give the goal a name, choose an URL for it, and choose the weekly rate at which you want to chew through your article backlog.
    • Once the goal is set up, open goal settings > advanced to tweak a few values. These are the important settings:
      • good side of road: below
      • direction of road: up
      • exprd: no
      • kyoom: yes
      • odom: no
      • noisy: no
      • aggday: sum
      • plotall: yes
    • You should (in theory) be able to tweak the other custom settings to your heart's delight.
  2. Get the URLs of your Instapaper RSS feeds:

  • Unread feed: Go to your Unread folder, open the Downloads menu (top right), then click RSS Feed. Hold on to the URL of this feed; you'll need it in step 3.

  • Archive feed: This is slightly more complicated. With the recent Instapaper site redesign, the RSS feed for your archive folder has disappeared. But there's a link to it in the source of the archive page!

    • Go to your Archive folder
    • Right-click somewhere on the page and View Page Source
    • Look for a line like this (for me, it's on line 16):

    <link rel="alternate" type="application/rss+xml" title="RSS" href="/archive/rss/1234567/longrandomstringofnumbersandletters" />

  1. Set up two IFTTT recipes. Each recipe will tell IFTTT to check one of these feeds, then send an email when it sees a new item. You will need the RSS channel activated to check the feeds, and the Gmail channel activated to send the emails.
  • Here is my recipe for the unread folder.
  • Here is my recipe for the archive folder.
  • Copy both to your recipes and update some fields:
    • Feed url: Fill in the feed URLs you found earlier (one for each recipe).
    • To address: bot@beeminder.com
    • Subject: yourbeeminderusername/yourgoalname
    • Body: ^ 1 "{{EntryTitle}}" for the unread recipe; ^ -1 "{{EntryTitle}}" for the archived recipe.
    • Attachment URL: Leave this guy blank.
  1. Go read!

Issues

  • Sometimes the Beeminder count can get out of sync with the actual number of articles in Instapaper.
    • This happens when you add an article but then archive it very soon after; if . It will also happen if you delete an article rather than archiving it - in this case IFTTT will send a +1 when you add the article, but it will never appear in the archive feed.
    • Solution? Don't delete articles; always archive. Don't archive articles immediately. Check your count occasionally (ReadKit will give you a count if you need one).
  • If your article title has quote marks in it, the Beeminder bot won't understand the email from IFTTT.
    • Solution? The bot will email you asking for clarification - just reply without the quotes. If you read a lot of articles with quote marks in the title and this annoys you a lot, you could get IFTT to send only "^ +1" and "^ -1", without the article title in the comment.
  • I don't want to track my Instapaper! I want to track some other RSS feed!
    • Cool. Just give IFTTT whatever RSS feed you like. Maybe you'll have to tweak some of the other settings for your needs - have a go. I believe in you.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment