Vom Kindle zu Zotero

Mein erstes Python-Script

Das Problem

Wenig Software begeistert mich so sehr wie Zotero, insbesondere seit es den PDF-Reader gibt, der für digitale Leser*innen wie mich perfekt ist. Ein Nachteil ist jedoch, dass sich Zotero aktuell nur am Computer oder auf dem IPad nutzen lässt und das Lesen am PC nicht unbedingt immer Spaß macht. Mein Traumgerät um akademische Texte zu lesen wäre ein eInk-Tablet, von denen gibt es aktuell aber noch nicht besonders viele und diejenigen die es gibt, sind für unter 400€ nicht zu haben. Ich besitze zwar einen Kindle, auf dem macht das Lesen von PDFs aber nicht unbedingt Spaß, vor allem wenn es sich um Scans oder Journal-Artikel handelt, die auf dem kleinen Bildschirm fast unlesbar sind. Von manchen Büchern habe ich zwar eBook-Versionen, etwa vom Project Gutenberg, die sind aber selten zitierfähig. Trotzdem kam ich vor Kurzem auf die Idee, den Kindle doch auch für das akademische Lesen stärker zu nutzen.

(Akademische) PDFs auf dem Kindle

Nach etwas Recherche bin ich dann auf K2pdfopt gestoßen und das Tool ist genial. Das für mich relevanteste Feature ist, dass es PDFs einfach an die Kindle-Displaygröße anpassen kann und somit die Lesbarkeit auf dem Kindle stark verbessert.

Die so erzeugten PDFs lassen sich auf dem Kindle sehr angenehm lesen und dabei markiere ich auch direkt im Text. Das Problem ist aber, dass der Kindle solche Hervorhebungen nicht direkt im PDF speichert (sondern u.a. in der Datei „My Clippings.txt“) und selbst wenn er das täte, wären die Seitenzahlen durch k2pdfopt verschoben. Bei eBooks im ePub- oder .mobi-Format sind ohnehin meistens keine Seitenzahlen vorhanden.

Und zurück nach Zotero

(Die Anleitung setzt Grundkenntnisse mit der Kommandozeile voraus - aber ich versuche bei Fragen auch gerne zu unterstützen!)

Um trotzdem mit den gelesenen Texten in Zotero weiterarbeiten zu können habe ich mir also mit viel Googeln und StackOverflow-Unterstützung ein einfaches Python-Skript geschrieben. Das nutzt pymupdf, das vor Benutzung via pip installiert werden muss, um die auf dem Kindle markierten Zitate auch in einer PDF-Version des Buchs zu markieren. Dafür ist es nur nötig, die Datei „My Clippings.txt“ auf dem Kindle zu finden (das Dokument ist chronologisch sortiert, also sind es meistens die Zeilen ganz unten) und alle Hervorhebungen aus dem aktuell gelesenen Buch in ein neues .txt-Dokument zu kopieren (die Trennbalken und Metadaten entfernt das Skript automatisch). Außerdem braucht man natürlich ein PDF, z.B. einen Scan oder das Original-PDF, aus dem man die kindle-optimierte Version erstellt hat.

Die Datei *My Clippings* findet sich bei meinem Kindle im *Documents*-Ordner und sieht so aus.
Die Datei My Clippings findet sich bei meinem Kindle im Documents-Ordner und sieht so aus.

Jetzt startet man das Programm über den Kommandozeilen-Befehl python3 highlights.py pdfdateiname.pdf textdateiname.txt – als Ergebnis sollte man nach kurzer Zeit im aktuell geöffneten Verzeichnis eine PDF-Datei mit dem Dateizusatz annotated finden, in der die im Kindle hervorgehobenen Sätze nun auch gelb hervorgehoben sind. Mit diesem PDF lässt sich jetzt z.B. in Zotero gut weiterarbeiten. Zitate, die pymupdf nicht findet (was z.B. bei seitenübergreifenden Zitaten vorkommen kann), spuckt das Script am Ende auch nochmal aus, sodass man die händisch im PDF-Reader der Wahl markieren kann.

Python-Skripte von Unwissenden

Selbstverständlich ist das Skript sehr rudimentär und bietet noch viel Verbesserungspotential (für Anregungen und Unterstützung bin ich natürlich dankbar). Trotzdem hat es mir viel Spaß gemacht, für das Problem, das ich hatte, eine Lösung selbst zu entwickeln. Dabei haben meine auch, aber nicht ganz so, rudimentären R-Kenntnisse mit Sicherheit geholfen, aber ich war trotzdem erstaunt, wie einfach ich ohne echte Programmierkenntnisse mein Konzept in Python mit etwas Suchmaschinennutzung umsetzen konnte. Ich habe auf jeden Fall jetzt Lust, mich noch etwas weiter in die Sprache einzuarbeiten.

Matthias Heil
Matthias Heil
Doktorand

Ich promoviere an der Universität Heidelberg zum Thema Schule und Revolution und arbeite als wissenschaftlicher Mitarbeiter am Lehrstuhl für Moderne Politische Theorie. Ich interessiere mich für politische Bildung, Politische Theorie und dafür, wie beides zusammenhängt.