Manchmal sind LLM’s garnicht schlecht wenn man unter Zeitdruck ein kleines Problem lösen muss. So ging es mir nämlich vor ein paar Wochen als mein Sohn auf einmal eine Papier Version seiner Goodnotes Lernkarten brauchte. Viel Ihm natürlich am Abend vorher ein.
Meine Frau nutzt Goodnotes schon seit ein paar Jahren um mit unseren Kindern Vokabeln zu üben. Das Programm funktioniert dafür gut und es ist auch schon auf den städtischen Schul- iPads der Kinder vorinstalliert.
Natürlich muss es da irgendwo wieder einen Haken geben. Hier ist es so das man die Lernkarten nur in einem Goodnotes eigenem Format exportieren kann. PDF, csv, txt? Fehlanzeige. Und das war in der Situation jetzt echt blöd. Allgemein möchte ich nicht das meine Daten irgendwie in einem proprietären Format gefangen sind.
Also habe ich mir so eine .goodnote Datei mal exportiert und reingeschaut. Es sind im Endeffekt nur Zip Dateien in welchen einige Dateien mit der Endung .pb stecken. In diesen .pb Datein ist manches im Klartext lesbar, auch die eingetragenen Vokabeln. Leider sind diese hinter sehr viel Daten Müll versteckt. Aber wenigstens sollte es so möglich sein das wichtigste zu extrahieren. Da ein LLM sowas viel schneller kann als ich selber und in Sachen Regex viel fitter ist dachte ich mal das ich es auf diesem Wege probiere.
Also habe ich einen Beispiel Export mal in Claude geladen und das LLM gebeten mir eine html Datei zu erstellen die es mir möglich macht die Lernkarten als PDF und CSV auszugeben. Das hat nach zwei Iterationen auch schon sehr anständig funktioniert, so das ich das Dokument was man Sohn brauchte erstellen konnte.
Man kann in der HTML Datei die Goodnotes Datei hochladen, bekommt die Päärchen angezeigt, kann dann ggf. noch Änderungen vornehmen und sich das ganze exportieren lassen. Entweder als PDF oder als CSV.
Ich würde das ganze ja auch in mein Codeberg Repo hochladen, aber nach dem letzten Voting dort gegen „AI Slop“ lass ich das lieber. Ich will schließlich nicht meinen Account dort riskieren.
Wenn ihr das Script ausprobieren wollt könnt ihr entweder die (gezippte) html Datei hier laden und lokal ausführen (JS Bibliotheken sind alle integiert), oder ihr nutzt die gehostete Version: https://flashcardtopdf.sengotta.net/
Ich hoffe das ganze hilft noch anderen Leuten ausser mir. Wenn ihr was am Code verbessern wollt könnt ihr das natürlich gerne tun.