Kobo (ereader) Highlights importer

Use case or problem

In the Netherlands (and probably other parts in Europe), Kobo is one of the leading ereader manufacturers instead of Kindle. I enjoy reading books and using the highlight function on my Kobo, but there is no frictionless way of importing them into Obsidian. This is a major hurdle for me in using my Kobo again for books I know I want to take notes from.

Proposed solution

The highlights are stored in an .sqlite file on the internal Kobo memory. I don’t have any python or coding-experience, but several websites/tools exist that are able to read this file and show the highlights, for instance;

More examples can be found on GitHub (Search · kobo highlights · GitHub)

I would really love to see a feature within Obsidian that would access, read the .sqlite file and import new highlights when a Kobo is connected in a note.

Current workaround (optional)

I currently use this tool:

I upload my SQLite file manually, look for any new notes and export them all to individual .md files. Then copy and paste this in new Obsidian notes.


I’ve moved this to plugin ideas, if you don’t mind. I think it has a much higher chance of being implemented as a plugin.

(I also use Kobo)

1 Like

I just switched out my ancient Kindle with a Kobo Clara HD, and I’ve started looking into this. I’m still in the discovery phase, but I’ll keep this thread updated with my progress if I get something of the ground.


And as for me, several years ago, I used this Python tool to export my Kobo notes.

It worked well. And as far as I remember it just outputted a large well-formatted text file of everything. Which would then have to be parsed/separated. I have never finished parsing them.

(But it hasn’t been updated since 2018, so it might be out of date.)

It might be worth considering too, since it is Python, MIT-licensed, and can run locally on your machine, so it could be the basis of a script/tool that could be used with Obsidian directly. The other two options listed so far seem to be websites only?

1 Like

The work-around I mentioned is a website indeed but opensource code:

1 Like

The extraction of the data is pretty easy, as it is basically a relatively simple query to the sqlite database on the Kobo device. Making a good user experience, and packaging it up as a plugin, is another story and where the main challenge lies. :slight_smile:

1 Like

@rsletta Really appreciate you having a go at this!

1 Like

I just bought a Kobo and installed KOReader and I see that it support sending notes to joplin (because joplin offers API).
I’m a backend nodejs developer so creating a (partial) API compatible with joplin should be fairly easy, this way I can create a obsidian plugin to send highlights and notes from KOReader … is anyone interested or is something that can already be achieved in some way?

1 Like

At this point I’m even considering buying a kindle because I can’t integrate my Kobo notes properly with my PKM system. So yes, Im definitely interested!!

Are you using koreader or the native reader on your kobo?

Native at the moment, had Koreader on it previously, but I think that got wiped off with an previous update and never bothered to install it again. But that would definitely change if I could export my notes with Koreader to Obsidian.

I don’t use a Kobo, I just really like the KOReader on Android since it offers many features and makes any tablet a good ereading device. I’m experienced in Python and it would be fairly easy to write a Python exporter and parser like the one posted above… I just don’t know how to package that into a Obsidian plugin. No experience with Javascript… yet.

I’m working on a proof of concept and I’m having fun with the Obsidian API.

I was thinking to create a single obsidian note for each note taken in a book (instead of the kindle plugin that put all the notes in a note for the book).

Not sure if I’m able to made myself clear (English isn’t my first language and I have a strong headache right now).

The code itself is ugly as hell but it’s a working proof of concept GitHub - Edo78/obsidian-koreader-sync: Obsidian.md plugin to sync highlights/notes from koreader

Right now I still haven’t released it yet so if you want to test it you must follow the same instructions as if you want to develop a plugin.

I’m planning to refactor the code and made a first beta release in the weekend so if you aren’t eager to test it you can wait a few days.

1 Like

Oooo I’m very eager! But since I’m not that technical and its weekend by now, I guess I’ll wait a few days more :slight_smile:

I had some free time, so I was ahead of my schedule. As soon as they approve my [PR] (Add obsidian-koreader-sync to community plugins list by Edo78 · Pull Request #738 · obsidianmd/obsidian-releases · GitHub) my plugin can be installed like any other community plugin.

BTW, I only have Linux, so I can’t test it with other operating systems (I’m pretty sure it shouldn’t have any major problems on Mac but I have no idea how it might behave on Windows).

Anyway any feedback will be welcomed


Perfect! I would be able to test it on Mac and Windows this weekend.

I took a look at the GitHub ReadMe. Will the plug-in generate a note for each highlight/note made in Koreader or a new note for each book with all associated highlights?

1 Like

The plugin KOReader Sync is now available :sunglasses:

Right now it generate an obsidian note for each note in koreader so a single book can have multiple notes.

Do you prefer a single big note for each book?

1 Like

Thank you very much for this. I’ve tested it with my rather large KoReader library that I use Syncthing to sync between multiple devices. Just pointed the plugin at the Sync folder, and setup the destination for the notes. Worked just as needed, and now I can read on other devices, click one button, and know the things I’ve highlighted will be captured/noted in Obsidian for later combination with other notes.

I’m fine with separate files vs one big file, since I don’t think the management of updating notes in the file is going to ever be a “nice” experience, my idea is to just link these extracted notes from other actual notes with my thoughts (and combine multiple together if I need to).

1 Like