Skip to main content

Paindrop

Introduction

Paindrop is a command line utility that helps you export your pins from Pinboard and import them into Raindrop.

While Raindrop already supports importing Pinboard data just fine, it was missing two things that were important to me:

  • Support for public/private bookmarks.
  • Support for an "unread" status.

So I wrote Paindrop to solve this particular problem for me. It works for me. This might not work for you.

The solution for me is to use just two collections in Raindrop: one for public bookmarks, one for private bookmarks. Pins that are marked as "unread" are left with no collection (so the act of "marking read" will be dropping it into either the Public or Private collection).

Installing

pipx

The package can be installed using pipx:

$ pipx install paindrop

Homebrew

The package is available via Homebrew. Use the following commands to install:

$ brew tap davep/homebrew
$ brew install paindrop

Usage

Getting ready to use

There's 3 things you need to do to use this importer:

Create public and private collections in Raindrop

In Raindrop create two collections, one will be the collection for public pins, the other will be the one for private pins. You don't need to make the public collection public just yet, but the idea is that you will at some point in the future.

Get your Pinboard access token

You can find it in your account settings.

Generate a Raindrop access token

This is a little more involved in Raindrop, but not difficult. In your account settings go to Integrations and under the For Developers heading click on Create new app. Give it a name (probably Paindrop so you can remember what it was for). Accept the API terms and guidelines and hit Create.

Now click on the newly-created application and towards the bottom of the dialog that appears click on Create test token; say ok when asked. Copy the token and keep it to hand as you'll need this too.

Running an import

After you've done the above steps you're ready to import. Assuming you named your public and private collections Public and Private, you can run the command like this:

paindrop example:xxxxxxxxxxxxxxxxxxxx xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

where the first parameter is the Pinboard access token and the second the Raindrop access token.

If all goes well, after a few moments, you the importer should finish and you should find that all of your Pins have migrated to Raindrop, all public pins are in the Public collection and all private pins are in the Private collection. Any pins that were marked as unread will be Unsorted.

Note that if you used different names for your public and private collections you can pass those names to paindrop with the --public and --private switches.

Getting help

If you need help please feel free to raise an issue.

Thanks

Many thanks to Darren who suggested the name.

Release files for paindrop 1.0.0

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

Source distribution (sdist)

Source distribution for paindrop 1.0.0
File Size Uploaded
paindrop-1.0.0.tar.gz 30.3 kB Details

Built distribution (wheel)

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

Total release size: 59.8 kB

Release files / paindrop-1.0.0.tar.gz

Download URL paindrop-1.0.0.tar.gz
Size 30.3 kB
Tags Source
SHA-256 checksum
How to use checksums
6ca7ace65e7f9bcabedf2894f27046016b6bd5dd39de0573a68bb7c192bf369a
BLAKE2b-256 checksum
How to use checksums
4a8dc2b9090e9d88921f2c4b5a947ad682d1d5a45455be8bc0b3285207e35ba2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.4

Release files / paindrop-1.0.0-py3-none-any.whl

Download URL paindrop-1.0.0-py3-none-any.whl
Size 29.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
05f053b29bdbee3667c3639c1f6997e18ce9bdb9463f6428567d704c0e611530
BLAKE2b-256 checksum
How to use checksums
645855e6606368e5e53b9b61e1d73aa5c0aa976198d6db137b3ce217363f062b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.4

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.0.2

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