Fetch new books and highlights from Readwise and print the results as markdown files in a chosen directory (i.e. Obsidian vault)
I'm a huge fan of Readwise and Obsidian, and I hope this is helpful to others like me who wanted something a bit different than the basic markdown export (beta)
- Fetch all or subset of new books and highlights from Readwise (via their API https://readwise.io/api_deets)
- Filter by custom
date from
orlast script run
date
- Filter by custom
- Group and sort highlights by book/article/podcast/tweet
- Create new markdown notes or append to existing ones in a chosen directory (i.e. Obsidian vault)
- Filenames are formatted using slugify
- Highlights with 'discard' tag are removed
- Books with no highlights are ignored
- Markdown notes are formatted as:
- Book metadata - in YAML format
- Title
- Author
- Number of highlights
- Last updated date - formatted as "YYMMDD dddd" in wikilinks
- Readwise URL
- Title - as a heading 1
- Highlight data
- Text
- Block reference ID - using the Readwise highlight ID as the unique block reference
- Note
- Tags - optional
- References (e.g. original URL)
- Date - formatted as "YYMMDD dddd" in wikilinks
- Book metadata - in YAML format
- Store book and highlight data into JSON files for easy retrieval and manipulation
- Print outputs to the console and store in a log file for troubleshooting
- Clone this repo or download the ZIP folder and move to a chosen directory - this will serve as the
sourceDirectory
for running the scripts- Make sure the
readwiseCategories
folder is in the same directory as thereadwise-GET.py
script. This will store your JSON files.
- Make sure the
- Configure the
readwiseMetadata.py
file:- Required
- Rename
readwiseMetadata.py.default to readwiseMetadata.py
. - Add your token - https://readwise.io/access_token
- Specify a valid
targetDirectory
path for your markdown notes (e.g. Dropbox folder, Obsidian Vault).
- Rename
- Optional
- Customise the request query string - add a
dateFrom
(formatted as "YYYY-MM-DD"), otherwise thelast script run
will be used (if available) or all highlights will be fetched - Add your
email
andpassword
- Specify a
chromedriverDirectory
- instructions here - Update the
highlightLimitToFetchTags
- default is 10 (recommended) - Specify a valid
downloadsDirectory
- Customise the request query string - add a
- Required
- Install the Python modules specified in
readwise-GET_install.py
via pip - Open the terminal or command prompt and navigate to the
sourceDirectory
(i.e. downloaded folder) - e.g. cd C:/Users/johnsmith/Downloads/readwise2directory-main - Run the
readwise-GET.py
scriptpy readwise-GET.py
(on Windows) orpython3.9 readwise-GET.py
(on Mac)- Note: ~3 minutes to process ~1300 books, ~6200 highlights and ~2900 tags
- This is NOT an official plugin or integration, so please use mindfully.
- This is my first real contribution on GitHub, so I'm open to any and all feedback
- A Readwise account and a valid access token (https://readwise.io/access_token)
- Python 3.9.0+ (https://www.python.org/downloads/).
If you like this plugin, please consider donating; I really appreciate any and all support! ❤️