| .envrc | ||
| .gitignore | ||
| de-scribe.py | ||
| flake.lock | ||
| flake.nix | ||
| hello.py | ||
| kindle_sync.org | ||
| LICENSE | ||
| README.md | ||
De-Scribe
Liberate you Kindle Scribe notebooks! (You need a jailbroken kindle scribe.)
De-Scribe allows to parse the Kindle (Scribe) content database
(ksdk.content.db) to determine the notebook file-system structure on
the kindle scribe. With this information in hand, it can bulk-export
Kindle Scribe notebooks to PDF to replicate the notebook "file system"
of the kindle including modification and access times!
Dependencies
This hack stands on the shoulders of giants:
- Calibre
- with the KFX Input Plugin installed
- pdftk
- svg2pdf
Usage
First you need the content database which can be found under
/var/base-local/ksdk.content.db on the Kindle. Additionally, you
need the the notebook directory from the scribe which is to be found
under .notebooks in the user storage of the Kindle
(/mnt/us/.notebooks). I sync those two things to my machine using
syncthing and automatically run de-scribe upon changes.
usage: de-scribe.py [-h] --db DB -n NOTEBOOKS -o OUTPUT [-f] [-p] [-c CONVERT [CONVERT ...]] [-w]
Read the kindle content database and convert scribe notebooks to pdf.
options:
-h, --help show this help message and exit
--db DB Path to the Kindle database file (ksdk.content.db).
-n NOTEBOOKS, --notebooks NOTEBOOKS
Path to the Kindle notebook directory (.notebooks in the root directory).
-o OUTPUT, --output OUTPUT
Path to the output directory for converted PDFs. The Kindle Scribe notebook
directory-structure will be recreated under this directory.
-f, --force Force conversion even if the notebook is not modified.
-p, --print-tree Print the tree structure of the Kindle database.
-c CONVERT [CONVERT ...], --convert CONVERT [CONVERT ...]
Convert the notebooks with the given UIDs to pdf. Use 'all' to convert all
notebooks.
-w, --watch Watch the notebook directory for changes and re-export changed notes
automatically.
If you have nix you can directly run the flake nix run git+https://git.protagon.space/hiro/de-scribe -- [args].