On 28.01.2021 I wrote a python script using ISBN Tools by Alexandre Conde. The script I wrote opens the .csv list (where I uploaded the barcode scanned ISBNs) of ISBNs, then iterates over the list searching/querying the open databases Wiki, Openl and Goob. It adds the returned data (title, author, publisher, year) to a new .csv file, adding a new row after each ISBN is found. I built in a one second asyncio sleep, so that the databases are not flooded with requests and have time to respond even if I were to send 1000 or more ISBN pull requests.
I used a USD25 barcode scanner, scanned 194 books with the ISBN on their back cover. Then I ran the search query using the python script on the three different databases. Both Google and OpenL only found 124 while wiki found 175, before a 404 Error was thrown. Wiki was at an amazing 100% success rate before the Error. So I assume Wiki actually is best by an unbeatable large margin, especially for german books.
[update to the above paragraph: if you change webservices.py of ISBN tools to
if ISBNLibHTTPError('(%s) %s' % (e.code, e.msg)): print('Skipped this one.')
you can continue the running of the script. I got 99 or 100% of titles information by changing “raise” to “if” and adding that print line.
Once you have a working script you can get 100 books scanned and indexed in probably less than 15 minutes, including the largest time needed for actually scanning the barcode on the books. Note: Unfortunately older books don’t have the ISBN in barcode format on the book
From the ISBNTools website:
$ isbn_meta ISBN [goob|openl|wiki] [bibtex|...] [YOUR_APIKEY_TO_SERVICE]
gives you the main metadata associated with the ISBN,
goobuses the Google Books service (no key is needed), and is the default option (you only have to enter, e.g.
isbn_meta 9780321534965) ,
openluses the OpenLibrary.org api (no key is needed). You can enter API keys and set preferences in the file
$HOME\.isbntoolsdirectory (UNIX). For Windows, you should look at
%APPDATA%/isbntools/isbntools.conf. The output can be formatted as
json(BibJSON) bibliographic formats.
Here is the functioning code that gets the ISBN from open access databases.
Questions or feedback?
Feel free to write me at [email protected] or add a comment.