.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]
.