Tool to extract and insert notes & highlights from a Pocketbook (also known as Vivlio in France) e-reader to another
TL;DR Usage:
- reboot your legacy e-reader
- copy legacy reader's
/mnt/ext1/system/config/books.db
into arun
directory to be created next tosource
- run
python source/main.py
(some other options can be interesting, seepython source/main.py -h
) - reboot your target e-reader
- copy target reader's
/mnt/ext1/system/config/books.db
intorun
directory - run
python source/main.py -a import -s -- dry-run|grep WARNING
(some other options can be interesting, seepython source/main.py -h
) - on target e-reader, open all missing books if you want its notes to be imported
- run again 4. to 7. until you are OK. You may also alter
run/notes.json
file if author and/or titles are different for same book between legacy and target e-reader, or to delete some useless notes... - copy
run/books.db
into target reader's/mnt/ext1/system/config/books.db
- reboot your target e-reader
- pray and/or enjoy
Take a books.db
file (typically found on /mnt/ext1/system/config/
; this can also be /system/profiles/default/
, especially for recent devices, I was said), and extract all notes and highlights into a notes.json file (deduplicated as far as we can)
caveats :
When getting books.db
, just make sure (for instance by rebooting the reader before) that all the wal are actually synced into books.db
, so no more books.db-wal
or books.db-shm
in /mnt/ext1/system/config/
Given a books.db
file and a notes.json file, add these into books.db
.
You will have to put back books.db
file on reader's /mnt/ext1/system/config/
Caveats : notes from notes.json from a book never opened on books.db
's reader (same Title/Author) won't be inserted
Definitely, it's not easy from a printed book to identify page & offset in order to uild a notes.json file, but in my case I wanted to re-insert notes from a previous reader's books.db database, so it's OK.
Caveats :
- Not quite sure how we should build UUID, when from scratch... might be dependent from other fields ? => by default, let us keep the same as in the original db
- I had it work on my PB632 (french vivlio version, with pocketbook ROM 6.7.1706 and rooted) YMMV, SGDG, toussa
devcontainer :