highlights icon indicating copy to clipboard operation
highlights copied to clipboard

download your kindle highlights and email random ones to your inbox

Highlights

Automatically email yourself a random Amazon Kindle highlight from your collection with this script. I run it on Heroku for free and email you a highlight each day.

Heroku Setup Instructions

  1. Clone this repository.

  2. Install the Heroku toolbelt. (and run heroku login)

  3. In the highlights repository, create a new Heroku app:

heroku apps:create
  1. Push your Ruby app to Heroku:
git push heroku master
  1. Add the Heroku Scheduler add on to your app:
heroku addons:create scheduler
  1. Add the free Heroku Mailgun add on to your app. This will automatically set your email environment variables as well:
heroku addons:create mailgun
  1. Set your additional environment variables in Heroku:
heroku config:set AMAZON_USER="[email protected]"
heroku config:set AMAZON_PASS="youramazonpassword"
heroku config:set TO="[email protected]"
  1. On your Heroku scheduler dashboard, schedule the default rake task daily (or at an interval of your choosing):
bundle exec rake
  1. Add and verify your own Mailgun SMTP Domain from the dashboard or add your email as an authorized receipient.

Optionally you can test the script via heroku run bundle exec rake

Notes

The default rake task first downloads and updated list of your highlights, then emails a random one to the TO address. This is because the file system on the Heroku Cedar stack is ephemeral. Each time a dyno is spun up, the file system is wiped, including any previous copies of data.json, the JSON file containing your highlights. For this reason, the script naively downloads an updated copy each time.