Preface
My primary software for managing Kindle books is Calibre. I’m using Amazon cloud for books synchronisation and sometimes I’d like to ensure that all my books stored in Calibre have been already sent to the cloud. Mainly, to avoid re-sending books and avoid duplicates.
Getting a list of Amazon books
Refer to Kindle Library List article.
After executing this step you should have one or more text listing your books:
Jareks-MacBook-Pro:Downloads jhartman$ java -jar KindleLibrary.jar 1.htm Amazon book list extractor Elements found:400 Saving 1.html Saving 1.txt Saving 1.xml Done! Jareks-MacBook-Pro:Downloads jhartman$ java -jar KindleLibrary.jar 2.htm Amazon book list extractor Elements found:400 Saving 2.html Saving 2.txt Saving 2.xml Done! Jareks-MacBook-Pro:Downloads jhartman$ java -jar KindleLibrary.jar 3.htm Amazon book list extractor Elements found:373 Saving 3.html Saving 3.txt Saving 3.xml Done!
Getting a list of Calibre books
Now open your Calibre, press a small triangle icon next to the Convert Books icon. Follow the instructions below:
After pressing OK you should get your Calibre books:
Jareks-MacBook-Pro:Downloads jhartman$ head CalibreBooks.csv title,authors "Świat pani Malinowskiej ; Trzecia płeć","Tadeusz Dołęga-Mostowicz" "Drugie życie doktora Murka","Tadeusz Dołęga-Mostowicz" "Świat pani Malinowskiej","Tadeusz Dołęga-Mostowicz" "Wysokie Progi","Tadeusz Dołęga-Mostowicz" "Złota maska","Tadeusz Dołęga-Mostowicz" "Morderstwo pod cenzura","Marcin Wroński" "Wąż Marlo t1","Marcin Wroński"
Compare the lists
In the very last step, use tide up the output files.
#!/usr/bin/env bash awk -F $'\t' '{print $1,$2}' 1.txt > Amazon.tmp awk -F $'\t' '{print $1,$2}' 2.txt >> Amazon.tmp awk -F $'\t' '{print $1,$2}' 3.txt >> Amazon.tmp sort Amazon.tmp > Amazon.txt awk -F ',' '{print $1,$2}' CalibreBooks.csv | sed 's/"//g' | sort | grep -v "title authors" > Calibre.txt
And finally – use a side-to-side text compare tool (JEdit, WinMerge, any other) and view the differences between Amazon.txt and Calibre.txt:
Review the differences and take proper actions:
- Send the file to the cloud
- Remove duplicates in the cloud (yes, this will be also visible in the output)
I hope it will help.