I am trying to build a simple (I hope) automation either by shortcut or Keyboard Maestro (preferred) to trigger either Goodlinks or Instapaper to add articles to DEVONthink as pdf. However, I cannot find anything suitable in either option.
Has anyone done or come across something similar on the Mac or iPad . Hope this does not involve AppleScript or things even more complicated
I do this also. Only difference is that I set the RSS feeds to save as Markdown to keep size down as text only good enough for me. If later i need the images i go back to the web site. 99% of time web site and page still there but of course i know the risk of the source database disappearing–that’s life.
And the rules I use to move are more selective based on rules. I do not move all.
I find for my most-read feeds that I often save into DEVONthink, this a very quick way to do so.
This is a very timely thread and really helpful post by @shandy. I have a large Instapaper library of articles going back 10 years that I’d quite like to save to DevonThink - I found Instapaper’s ‘clean’ reading mode to be excellent, but want to take advantage of all the features for linking/surfacing knowledge in DevonThink
However, short of exporting them all individually as PDFs from the Web version of Instapaper I’d not found a way of doing this. You can create an Instapaper RSS feed of your articles, but when I played with this I couldn’t get them to show up in DevonThink (I think the RSS feed from Instapaper only has the first few characters, IIRC).
I will need to give this another shot - but I wonder whether, even if this does work for Instapaper as @shandy describes - it will only capture new things that are added to Instapaper from that point on. If so, is there a way of retrieving a decade’s worth of nicely formatted Instapaper articles…?
Edit: I’ve just checked, and the Instapaper RSS feed only provides the 10 most recent articles (and the is updated as new items added) and per this Tweet from @InstapaperHelp in 2020 can’t retrieve anything older than this. More importantly, it only provides a short preview of the content - the image below is an example from a CNN article I saved yesterday, viewed within DevonThink, but the same applies to all of the 10 items in my Instapaper RSS feed.
So unfortunately it looks like Instapaper is a bit of a black-hole when it comes to the ‘read it later’ formatted articles. The options to get the formatted full text into DevonThink would seem to be:
Manually click through each article in your Instapaper account, then export to PDF and important that to DevonThink. You’d need to repeat this process at regular intervals - which makes it fairly impractical.
Retrieve all the Instapaper URLs from your account (you can download these as a CSV or HTML from your account - see below for the CSV format) and then add these to DevonThink some other way. I don’t know DevonThink well enough to know whether it can crawl URLs and retrieve them as PDFs in a read-it-later format.
https://www.cnn.com/travel/article/refugee-airplane-mystery-reunion-cec/index.html,Finding Tracy: How a CNN story led to a long-awaited reunion | CNN Travel,,Unread,1652648874
I suspect if you asked Instapaper how long they keep their older feeds, this will help you figure out. Also depends on the source that Instapaper points to, I would think. If you try pointing the DEVONthink feed to the source RSS and not the Instagram feed, different result?
The issue is that Instapaper’s feed only has 10 items, and only provides a preview of content (rather than full text). The articles are all ones that I’ve saved to Instapaper over the years using their bookmarklet or extension - so there is no other source RSS I could use to get them into another client.
I’ve made a couple of suggestions of how to work around this, albeit manual/clunky, in the post above. Doesn’t seem to be a good, automated way of doing it, sadly. I’m definitely going to have to rethink using Instapaper as the ‘prettification’ service - which is a shame, I’d hoped I could simply use that as an intermediary to DevonThink.
I suspect anything that has a valid RSS Feed, be it a read-later, or read now, will work with DEVONthink. but have to try. I have used Feedly for years and it’s connected to my “Reeder” app. I don’t find a way that Feedly exposes what they have as an RSS feed for DEVONthink to use. What I’ve done is for my *very frequent and important" feeds, I use the RSS feed:// url noted in Reeder to add that feed to DEVONthink. Feedly not involved, and as I mentioned, I can’t find a way to involve that.
For the other read later apps, look at their web site and read their documentation to see if they expose RSS feeds for you.
For your archive of older Instapaper articles, there’s an AppleScript by Annard Brouwer which can batch save/import them as PDFs. I’ve pasted the script below, but it’s also linked to here:
-- Use Instapaper to export a CSV file of your articles.
-- Must have Numbers to open it in.
-- Will create PDF documents in /Instapaper/<your folder in Instapaper> groups.
-- Be sure to select an open database in DT Pro before you run this.
-- Created by Annard Brouwer, 24/08/2014
-- Share and enjoy!
property kCSVFileType : "csv"
property kRootGroupName : "Instapaper"
tell application "Numbers"
local csvFile, csvDocument, cellRange, aRow, loadURL, theTitle, theGroup
set downloadsFolder to path to downloads folder from user domain
tell application id "DNtp"
set csvFile to choose file with prompt "Select a csv file exported from Instapaper" of type kCSVFileType default location (downloadsFolder as alias)
set csvDocument to open csvFile
tell first sheet
tell first table
set cellRange to cell range
my windUp(count of rows)
repeat with aRow in rows
if address of aRow > 1 then
set loadURL to the value of first cell
set theTitle to value of second cell
set theGroup to value of fourth cell
my importArticle(loadURL, theTitle, theGroup)
on error errorMessage number errorNumber
if the errorNumber is not -128 then display alert "DEVONthink" message errorMessage as warning
tell application id "DNtp"
show progress indicator "Archiving Instapaper articles..." steps numberOfArticles
tell application id "DNtp"
hide progress indicator
on importArticle(aURL, aTitle, aGroup)
local groupPath, theGroup, theRecord
tell application id "DNtp"
step progress indicator aTitle
set groupPath to kRootGroupName & "/" & aGroup
if not (exists record at groupPath) then
set theGroup to create location groupPath
set theGroup to get record at groupPath
set theRecord to create PDF document from aURL name aTitle in theGroup pagination no
on error errorMessage
log message aURL info errorMessage
For me, Raindrop.io works well with DT, including automatically saving the whole article (not just preview) as PDF.
For an archive of older saved links (which probably won’t appear in the RSS feed) the Applescript I posted above should do the trick.
Also worth noting that Raindrop.io works with Zapier and Make.com (previously known as Integromat). So you can use Raindrop.io alongside Instapaper (or whatever) and automatically get new saved articles pushed from one service to the other.
I haven’t tried this in DT so I don’t know how it works, but Pocket does have an RSS feed, it does sync your entire collection (and its tags), and the feed is the entire article, not just a snippet. I have my Pocket feed pointing to Reeder and it has all 5000 of my Pocket items in there. Pocket has the added bonus of being owned by Mozilla and believing in data privacy.
I moved off Instapaper during their data privacy shenanigans years ago (they cut off support to all EU citizens because they couldn’t comply with the then-new data regulations - which makes you wonder what data they were harvesting…). Anyway, at the time my export was a giant csv file. I’ve kept it, but gradually “rebuilt” my saved pages as PDFs which I store locally.
thanks a lot @shandy , the script works. I am very happy. Very interesting that the script had to work on a CSV file exported from Instapaper account.
I guess my next question is how to update the archive, the instapaper export option does not seem to have means to limit to newer articles since last export. Perhaps I manually go to the CSV file using Numbers to remove those already imported into DEVONthink?
I use indexed folders in Devonthink. Indexed folders don’t have bidirectional sync with DTTG, which means I need to use something that’s not DTTG to capture URLs on my phone.
I want the PDFs captured in a desktop format (i.e. not mobile) and I don’t want to wait around for them to be rendered and saved before I can continue using the phone. This rules out creating the PDFs on the phone. I.e. my priority is to capture the URL, knowing that the PDF will then be automatically generated in the right format, in the background on my mac, and auto-filed in the right folder.
I prefer Raindrop’s workflow for quickly capturing a URL and allocating it to a folder. No other tool I’ve tried (including DT & DTTG) makes this as quick, painless and reliable across all browsers, apps and devices.
If I only use Raindrop, then I won’t get the archived PDF.