Multiplatform Highlights Importer

by wwwkieran
5
4
3
2
1
Score: 19/100

Description

Category: 3rd Party Integrations

The Multiplatform Highlights Importer plugin gathers your reading annotations from different eBook services and consolidates them into neatly formatted notes. By matching books using ISBN or title, it unifies all related highlights under one entry, removing the need to juggle multiple files. You can switch between sources like Kobo or Apple Books without duplicating highlights, ensuring every relevant excerpt is synced in a single place. This approach streamlines your research or study workflow, letting you reference all your reading notes together. Its modular design also enables expandability, so new services can easily be added in the future. With a standardized note format, it becomes simpler to follow your learning progress and extract key insights from your material, no matter which device or platform you use for reading.

Reviews

No reviews yet.

Stats

2
stars
381
downloads
1
forks
673
days
680
days
680
days
1
total PRs
1
open PRs
0
closed PRs
0
merged PRs
1
total issues
1
open issues
0
closed issues
77
commits

Latest Version

2 years ago

Changelog

This release updates how WASM binaries are loaded into the plugin.

README file from

Github

Obsidian Multi-Platform Book Highlight Importer

This plugin pulls your highlights and annotations from various different reading sources into Obsidian. This plugin reconciles books based on ISBN or title, so if you read the same book on different devices this plugin will only create one note (per book) with all the highlights.

Currently supported data sources

  • Kobo
  • Apple Books (iBooks)

Why would I use this instead of kobo-highlights-importer / apple-books-highlights-plugin etc.?

  1. Highlights/annotations of the same book made using different services will be reconciled and consolidated into one note.
  2. Note format is standardized regardless of reading platform. Even if you do not read the same book across multiple services, you might read different books on different services. This plugin can still help you by getting all your annotations into one standard note format.

How to use

  1. Install the plugin, either from the Obsidian plugin library or by cloning this repo to /your/vault/.obsidian/plugins/.
  2. Enable the plugin on the Community plugins page.
  3. Configure the plugin on the Multiplatform Highlights Importer page. Here you can enable the reading services you would like to extract from. Note that some extractor require additional configuration (see below).
  4. Trigger extraction by clicking the eBook icon in the sidebar or by using the Import multiplatform highlights command in the command palette.

Extractor specific configuration

Kobo

You need to specify the path to your KoboReader.sqlite database. It is located in the /.kobo folder on your Kobo when you plug it in to your computer. On a Mac, this would be /Volumes/KOBOeReader/.kobo/KoboReader.sqlite.

Apple Books (macOS only)

No additional configuration is necessary beyond enabling the extractor on the Multiplatform Highlights Importer settings page. Note that this extractor only works on macOS.

Contributing

I would really appreciate contributions, either to develop connections to new services or to improve the note generation process (or anything else you can think of)!.

Architecture

The modular architecture of this plugin is really what distinguishes this plugin from others in the space. The highlight extraction logic contains three main elements: extractors, the aggregator, and the extraction loop.

Extractors are modular components that extract highlights from a single specific service. They must conform to the IExtractor interface, which means that they must implement a function called extractHighlights() which returns a list of IBookWithHighlights. IBookWithHighlights is a simple data structure representing a book with both book metadata and a list of highlights from that book.

The aggregator is responsible for accepting lists of IBookWithHighlights, performing reconciliation, and outputting markdown. The aggregator implements a function addBooks() which accepts []IBookWithHighlights from an extractor and adds them to the aggregator's internal map. This function also performs reconciliation so that duplicate entries are not added to the map if the same book is extracted by multiple extractors. The aggregator implements a second function outputMarkdown() which adds markdown files to the Obsidian vault for each book in its internal map. This function is called once we have finished extracting from all services.

The extraction loop ties the extractors and the aggregator together to extract the highlights and pipe them into Obsidian. This is the entry point when you run the Import Book Highlights command of this plugin. It is quite simple: we call on each enabled extractor to produce highlights and pipe those highlights into the aggregator. Once we've done this for each extractor, we ask the aggregator to output markdown for all the books. In pseudocode, the main extraction loop looks something like this:

for (extractor of extractors) {
	booksWithHighlights = extractor.extractHighlights()
	aggregator.addBooks(booksWithHighlights)
}
aggregator.outputMarkdown()

Why you should contribute to this plugin instead of writing your own

If you're thinking of writing your own plugin to do something with book annotations/highlights, it's likely for one of two reasons:

  1. You want to import highlights from a service which does not currently have a plugin.
  2. You don't like the files that an existing plugin creates and you want to create markdown files from highlights in a wildly different way.

In both cases, I would argue that you would be better off contributing to this plugin instead of writing your own. If you fall into camp (1), you can simply create an extractor for your service, which will require you to only write the code to extract from your service. The IExtractor interface is simple, and only requires you to implement one By implementing an extractor, you get all the rest of the functionality (reconciliation between services, Markdown formatting and output) for free. It's less work for you to create an extractor than to implement a whole plugin from scratch.

If you fall into camp (2), I'd make the same argument as (1) but in reverse. If you want to output markdown in a specific way, please build that in as an optional functionality on the aggregator. By extending the aggregator, which already maintains a map of books and highlights, you won't have to worry about sourcing the data at all. This means less work for you; you can focus your energies exclusively on writing code to output the files exactly the way you want them.

Future work

  • Make extractor settings modular
  • Support for article services (Pocket, Zotero)
  • Specify different destination folders for different services (reconcile at the folder level, ie Kobo and Apple Books should output to the Books folder while Pocket and Zotero should output to the Articles folder)
  • Specify destination folders based on tags
  • More customization of note format

Acknowledgements

I built this plugin by forking obsidian-kobo-highlights-import because I wanted Kobo support and I liked how their output notes grouped annotations by chapter. I also looked at the code for obsidian-apple-books-highlight-plugin to build the Apple Books plugin. Thank you to the creators of those plugins.

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Kindle Highlights
3 years ago by Hady Osman
Sync your Kindle notes and highlights directly into your Obsidian vault
PDF Highlights
5 years ago by Alexis Rondeau
Extract highlights, underlines and annotations from your PDFs into Obsidian
HiNote
a year ago by Kai
Add comments to highlighted notes, use AI for thinking, and flashcards for memory.
Raindrop Highlights
4 years ago by kaiiiz
An Obsidian.md plugin that syncs highlights from Raindrop.
Dynamic Highlights
4 years ago by nothingislost
An experimental Obsidian plugin that highlights all occurrences of the word under the cursor
Sidebar Highlights
10 months ago by trevware
Extract Highlights
5 years ago by Alexis Rondeau
Manage your highlights in Obsidian by easily creating, removing and exporting them.
Advanced Codeblock
4 years ago by Lijyze
An obsidian plugin that give additional features to code blocks.
WuCai highlights Official
3 years ago by 希果壳五彩
WuCai highlights Official, for Sync highlights into your obsidian notes
Cloze
3 years ago by Vikki
A plugin for Obsidian which enables converting highlights, underlines, bolded texts, or any selected texts into clozes.
Enhanced Annotations
2 years ago by ycnmhd
Hypothes.is
5 years ago by weichenw
An Obsidian.md plugin that syncs highlights from Hypothesis.
Kobo Highlights Importer
4 years ago by Flavio Cordari
Readwise Community
5 years ago by renehernandez
Sync Readwise highlights into your obsidian vault
Apple Books - Import Highlights
2 years ago by bandantonio
Import highlights and notes from your Apple Books to Obsidian
Focus and Highlight
4 years ago by BO YI TSAI
A plugin for obsidian to focus and highlight on a specific heading in Reading mode.
aDHL
a year ago by tine-schreibt
The Dynamic Highlights Plugin, but with hotkeys, more options and sorting; works well with Highlightr.
Vim Yank Highlight
2 years ago by Aleksey Rowan
Highlight yanked text in Vim mode. Enjoy that subtle animation you've missed so much.
Highlight Public Notes
5 years ago by dennis seidel
TreeFocus
3 years ago by iOSonntag
Obsidian plugin: Highlight, dim & style your files & folders in the file explorer (navigation) based on predefined or custom rules.
Onyx Boox Annotation & Highlight Extractor
4 years ago by Akos Balasko
This tool extracts the highlights and the annotations from OnyxBoox Reading Notes txt files, and converts them to linked zettelkasten literature and permanent notes
Apple Books Highlights
3 years ago by Atif Afzal
Sync your Apple Books highlights in Obsidian
Simple Mention
4 years ago by der-tobi
Obsidian plugin for mentioning people
BookFusion
2 years ago by BookFusion
BookFusion Obsidian Plugin
Vocabulary Highlighter
2 years ago by eatgrass
Highlight English words according to the frequency with Obsidian
Floating Highlights
3 years ago by Karthik S Raju
This is a plugin for obsidian which highlights a block of text or a word as you scroll down while reading.
Pocketbook Cloud Highlight Importer
3 years ago by Lena Brüder
Imports highlights and notes from books stored in the pocketbook cloud to your obsidian vault
HamsterBase Official
3 years ago by HamsterBase
Readavocado Sync
4 years ago by Cyrus Zhang
Readavocado obsidian plugin to sync your favorite highlights.
Highlight Helper
2 years ago by Chongmyung Park
Helper to collect highlight in Obsidian
KoReader Highlight Importer
a year ago by Tahsin Kocaman
Imports highlights and metadata from KoReader into Obsidian notes
Unearthed (Kindle Sync)
a year ago by CheersCal
Kindle Highlights Import
10 months ago by Leon Luttenberger
Plugin for Obsidian that allows users to import Kindle highlights into their Obsidian vault.
TODO Highlighter
a year ago by Nuraly Dyussenov
Obsidian Plugin that formats the exact string TODO, so it can be easily seen in your notes.
MatchSyntax
a year ago by Eda
An Obsidian plugin that lets you write "regex-like" syntax to search the contents of a note, including part-of-speech tagging and (limited) fuzzy matching.
InfoFlow
a year ago by RockieStar Inc.
Obsidian plugin for InfoFlow.app - This plugin integrates InfoFlow with Obsidian, allowing you to sync your saved articles, web pages, notes, and highlights directly into your Obsidian vault.