Kobo2Notion is an Electron application built with TypeScript and React that extracts bookmark data from Kobo e-readers and seamlessly uploads it into your Notion database. Additionally, it can summarize bookmarks using Google Gemini. This project offers a cost-free alternative to existing solutions like Readwise, providing users with greater control over their reading data.
This app is still under development. Some features are not implemented yet.
- Extract bookmarks from Kobo e-readers
- Upload bookmarks to a Notion database
- Summarize bookmarks using Google Gemini AI
- Modern desktop interface built with Electron
- Free and open-source
- Node.js 18 or later
- Kobo e-reader
- Notion account
- Google Cloud account (for Gemini API access)
-
Clone the repository:
git clone https://github.com/ghnmqdtg/Kobo2Notion.git cd Kobo2Notion
-
Install dependencies:
npm install
-
Create your environment configuration:
cp .env.example .env
Example
.env
file:# SQLite Source (The default path is defined in MacOS) SQLITE_SOURCE=/Volumes/KOBOeReader/.kobo/KoboReader.sqlite # Notion API Key and Database ID NOTION_API=your_notion_api_key_here NOTION_DB=your_notion_database_id_here # Summarize Bookmarks SUMMARIZE_ENABLED=true SUMMARIZE_LANGUAGE=zh GEMINI_MODEL=gemini-1.5-flash GEMINI_API=your_gemini_api_key_here
-
Connect your Kobo e-reader to your computer.
-
Set the
SQLITE_SOURCE
in your.env
file to the path of the KoboReader.sqlite file:- MacOS:
/Volumes/KOBOeReader/.kobo/KoboReader.sqlite
- Windows: Usually under the drive letter assigned to your Kobo device, e.g.,
E:\.kobo\KoboReader.sqlite
- MacOS:
-
Get the Notion API key
-
Go to Notion Integrations
-
Create a new integration named
kobo-export
and set associated workspace to your workspace. -
Click
Save
. -
Click
Show
and copy theSECRET
value. -
Paste the
SECRET
value into theNOTION_API
environment variable in.env
file.
-
-
Get the Notion Database ID
-
Duplicate the database template here to your workspace.
-
Click
Share
and copy the link. -
Extract the
Notion Database ID
from the URL.For example, if the URL is
https://www.notion.so/ghnmqdtg/4978bcc5eda847a59940f5cb4aff32d9?v=28a249bcfa92488889f3505127a8e1ef&pvs=4
, theNotion Database ID
is4978bcc5eda847a59940f5cb4aff32d9
. -
Paste the
Notion Database ID
value into theNOTION_DB
environment variable in.env
file. -
Connect the database to the
kobo-export
integration.
-
-
Get the Google Gemini API key here (optional)
This is an optional feature if you want to summarize your bookmarks. The API for
gemini-1.5-flash
is free on Google AI Studio. If you don't need it, setSUMMARIZE_ENABLED
tofalse
in.env
file.Copy the
API Key
value into theGEMINI_API
environment variable in.env
file.
-
Start the application in development mode:
npm run dev
Or build and run the production version:
npm run build npm start
-
The application will display your Kobo library. Select the books you want to export and click the export button.
-
Check your Notion database to see the exported bookmarks and summaries.
-
The overview of the library. You can see all the books you purchased.
-
Once you select and export a book, the application will start to extract the bookmarks and upload them to Notion.
-
The detail of the book. The original highlight is saved in
Highlight
page, and the summary is saved in the main page.
-
To build the application for your platform:
# For Windows
npm run build:win
# For macOS
npm run build:mac
# For Linux
npm run build:linux
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.
- mollykannn/kobo2notion
- starsdog/export_kobo
- Kobo bookmark
- Notion for their API
- Google for the Gemini AI model
For questions or support, please open an issue on the GitHub repository.