A service that will sync items from your raindrop.io account to your remarkable tablet in pdf format.
It will check your raindrop.io account for any items that match a search expression (by default: #on_remarkable
),
and when it finds them, it will simplify the html (using outline.com for now), convert to pdf, then
upload to your remarkable account via the cloud api.
The docker container is configured to run periodically.
Before you begin, you will need both your remarkable device token, and a raindrop api test token for your account.
-
Generate a new uuid for your deviceId. You can do this by running
uuidgen
on the cli, or by going to one of many online uuid generators. This will be your deviceId. -
Grab a one time code by going to (https://my.remarkable.com/#desktop).
-
Make a post request to the remarkable api to generate new device token:
# example using curl curl -X "POST" "https://webapp-production-dot-remarkable-production.appspot.com/token/json/2/device/new" \ -H 'Content-Type: application/json' \ -d $'{ "deviceDesc": "desktop-windows", "deviceID": "put your generated deviceId here", "code": "<place one time code from step 2 here" }'
-
Log into your raindrop.io account in the browser, then go to (https://app.raindrop.io/settings/integrations)
-
Down at the bottom, under "For Developers", click create new app.
-
Give it a name, accept the terms, and click create
-
Click on the newly created app, and the under "Credentials" click on "Create test token".
The easiest way to use this is via the docker image.
The docker image uses cron to periodically check for new raindrop.io items.
docker run \
--env RMKDROP_REMARKABLE_DEVICE_TOKEN=<deviceToken from above> \
--env RMKDROP_RAINDROP_TEST_TOKEN=<raindrop test token from above> \
-it gordlea/remarkable-raindrop
Example docker-compose.yml
version: "3.8"
services:
remarkable_raindrop:
image: gordlea/remarkable-raindrop:latest
environment:
- RMKDROP_REMARKABLE_DEVICE_TOKEN=<deviceToken from above>
- RMKDROP_RAINDROP_TEST_TOKEN=<raindrop test token from above>
Ensure you have nodejs 16 + installed, as well as the yarn package manager.
- clone the git repo locally
- run yarn inside the repo directory
- create a .env file in the repo directory with the following in it:
RMKDROP_REMARKABLE_DEVICE_TOKEN=<deviceToken from above>
RMKDROP_RAINDROP_TEST_TOKEN=<raindrop test token from above>
In the project directory, run yarn start
.
You can run yarn start --help
for detailed information on cli options.
cli option | env var | default | description |
---|---|---|---|
--raindrop-test-token |
RMKDROP_RAINDROP_TEST_TOKEN | no default, required | Your raindrop.io api test token. See How to get your Raindrop API Test Token above. |
--raindrop-search |
RMKDROP_RAINDROP_SEARCH | #on_remarkable |
This is the search query used to determine which items in your raindrop.io account to send to your remarkable tablet. See https://help.raindrop.io/using-search/#operators for more information. Basically any raindrop item in your account that matches this search will be copied to your tablet. |
--log-level |
RMKDROP_LOG_LEVEL | info |
One of [error, warn, info, debug, trace]. This sets how verbose you want the log output to be. |
--remarkable-device-token |
RMKDROP_REMARKABLE_DEVICE_TOKEN | no default, required | Your remarkable device token. See How to get your Remarkable Device Token above. |
--remarkable-directory |
RMKDROP_REMARKABLE_DIRECTORY | raindrop.io |
The name of the directory on your remarkable device where pdfs will be placed. |
RMKDROP_CRON | */10 * * * * |
This option is only available when running the docker container. This sets the cron expression that determines how often the docker container will check raindrop.io for updates. The default is 10 minutes. See https://crontab.guru/. |