Readwise Reader and Omnivore are both great read-later services. Each offers unique features and experiences. Although I was an avid user of Readwise Reader, I didn't use all of its features to their fullest. Omnivore, with its open-sourced nature, catered more closely to my needs. In situations where your needs change, migrating your saved content from Readwise Reader to Omnivore could become a necessity. Facing this issue myself, I decided to write my own tool to facilitate this process.
I had two main reasons for developing this tool. Firstly, I wanted to address this need that I have to seamlessly transfer my content between these two services. Fortunately, Omnivore provides a very extensive API to achieve this. Secondly, this project served as an opportunity for me to learn Rust, a programming language popular for its performance and memory safety.
This blog post will describe the steps you need to perform to import your data into Omnivore. The GitHub project with the source code can be found here.
Prerequisites
To get started with the data migration tool, you will need the following:
- Exported CSV file from Readwise Reader using the web interface. Check Readwise's FAQ for the steps.
- API key from Omnivore
Running the importer tool
There are two ways to run the importer tool. The easiest way without requiring to install Rust is by using the binary. For those who would like to explore the repository or make changes to the source code, it's also possible to run the tool with the Rust build tools.
Running it with the binary
A compiled binary is available for download in the project GitHub Releases of this project.
1. Download the binary
Navigate to the Release page and download the latest version for your operating system
2. Run the binary
Open a terminal and navigate to the directory where you downloaded the binary. Add your CSV file in that directory and then run the following command with the two parameters replaced
./readwise_to_omnivore_importer --key YOUR_API_KEY --file-path PATH_TO_CSV
Running it locally
To run the project locally, make sure to first install Rust on your local machine. This should only take a few minutes. When that is done, open up a terminal and follow these steps:
1. Clone the repository
git clone git@github.com:duncanlew/readwise-to-omnivore-importer.git
cd readwise-to-omnivore-importer
2. Add your CSV file
Add your exported CSV file from Readwise Reader into the directory called readwise-to-omnivore-importer
.
3. Run the importer
In the following command replace YOUR_API_KEY
and PATH_TO_CSV
with your api key and file path to your CSV, respectively.
cargo run -- --key YOUR_API_KEY --file-path PATH_TO_CSV
Takeaway
Transitioning your reading list from Readwise Reader to Omnivore is a streamlined process thanks to their easy export and import tools and APIs. Moreover, creating your own tool using an unfamiliar tech can be both rewarding and educational. I hope this guide, along with the provided source code in the GitHub project inspires you to embark on your own journey of continuous learning. Happy coding! 😎
Readwise to Omnivore importer
The "Readwise to Omnivore Importer" is a custom tool developed using Rust to facilitate the import of articles from Readwise Reader into Omnivore. It uses a CSV file exported from Readwise Reader using the web interface The importer parses this CSV file, ensuring all data is transferred to Omnivore. Additionally, a verification check is run to confirm the existence of a URL before importing it into Omnivore. This is done to avoid polluting your Omnivore library with broken links Furthermore, the tool provides clear logging results and a summary of the import process.
Features
- Parse the exported CSV file
- URLs that are invalid won't be imported into Omnivore
- Import into Omnivore using an API key for authentication
- Detailed logging of invalid and errored results shown in the terminal and stored as a CSV file
- Possibility to run the project locally or use the tool as…
If the content was helpful, feel free to support me here:
![Buy Me A Coffee](https://res.cloudinary.com/practicaldev/image/fetch/s--6Oibfu3K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.buymeacoffee.com/buttons/default-orange.png)
Top comments (0)