Een e-reader synchroniseren met Obsidian zonder cloud

Markeringen die je op een e-reader maakt, blijven meestal op die e-reader. De gebruikelijke uitweg is een synchronisatiedienst, en dan maakt je leesgeschiedenis een reisje via de server van iemand anders, zodat hij daarna weer in een map op je eigen laptop terechtkomt. Dat leek me een flinke omweg.

koreader-obsidian-sync neemt de korte route. Het draait een KOSync-compatibele server in Obsidian zelf, zodat de e-reader via het lokale netwerk met de vault praat en er niets het huis uit gaat.

Hoe het in elkaar zit

Er zijn twee helften. Aan de kant van Obsidian start een plug-in een kleine HTTP-server die op poort 7777 luistert, met een gebruikersnaam en wachtwoord. Aan de kant van de reader stuurt een KOReader-plug-in markeringen en aantekeningen naar dat adres. Beide apparaten moeten op hetzelfde wifinetwerk zitten, en in KOReader vul je het lokale IP-adres van je computer in als http://<IP>:7777.

Wat eruit komt is één Markdown-bestand per boek, met de naam Book Title - Author.md. Daarin staan de auteur, je voortgang als percentage, een tijdstempel van de synchronisatie, en daarna de markeringen gegroepeerd per paginanummer, met je eigen aantekeningen naast de citaten. Gewone notities, in je vault, die je kunt linken en doorzoeken zoals al het andere daarin.

Goed om te weten voordat je het installeert

De aantekeningen worden tijdens een synchronisatie uit het werkgeheugen gelezen. Sluit je eerst het boek, dan staan de nieuwste notities er misschien nog niet bij, en dat is het soort detail dat je ontdekt door iets kwijt te raken. Synchroniseer dus voordat je het boek sluit.

Automatisch synchroniseren gebeurt alleen als de wifi al verbonden is, omdat het niet even stopt om je om een wachtwoord te vragen. Oudere versies van de reader-plug-in crashten op Android, maar dat is inmiddels opgelost. En de Obsidian-helft werkt alleen op desktop: de mobiele app kan geen luisterende socket openen, dus is er niets waar de reader verbinding mee kan maken.

Waarom een server in de notitie-app

Als je de server neerzet waar de notities al staan, valt elk bewegend onderdeel ertussen weg. Geen account, geen achtergrondproces dat je draaiende moet houden, geen derde partij die haar voorwaarden kan veranderen of kan verdwijnen. De reader spreekt een protocol dat hij al kent, en wat er luistert is toevallig precies de plek waar de tekst toch al naartoe moest.

De code staat op GitHub: de Obsidian-plug-in als drie bestanden die je in .obsidian/plugins/koreader-sync/ zet, en de reader-helft als een map obsidian-sync.koplugin voor je apparaat.

← Alle berichten