Skip to main content

Ralsina.Me — Roberto Alsina's website

Quick Hack to Catalog your Books

If you have ac­tu­al, pa­per books and want to cat­a­log their in­fo quick­ly, this book­da­ta.py script may be handy:

import sys
import time
import gdata.books.service
import json

def get_book_info(isbn):
    print "Looking for ISBN:", isbn
    google_books = gdata.books.service.BookService()
    result = google_books.search('ISBN %s '%isbn)
    data = [x.to_dict() for x in result.entry]
    if not data:
        print "No results"
        return
    title = data[0]['title']
    with open(title+'.json','w') as f:
        f.write(json.dumps(data))
    print "Guardada info de '%s' en '%s.json'" %(isbn, title)

if __name__ == "__main__":
    while True:
        isbn = sys.stdin.readline().strip()
        if isbn:
            get_book_info(isbn)
        time.sleep(1)

What does it do? It reads IS­BN num­bers from stan­dard in­put and saves the book's in­fo in a ti­tle.j­son file for lat­er pro­cess­ing and for­mat­ting.

If you want to ed­it that in­for­ma­tion, you can just do it or you can try do­ing a lit­tle script us­ing json­wid­get like this:

python -c 'import jsonwidget; jsonwidget.run_editor("abook.json", schemafile="gbooks.schema")'

Where abook.j­son is a file gen­er­at­ed by the pre­vi­ous script and gbook­s.schema is this file.

Oh, and if your books have bar­codes, you can just do:

zbarcam --raw | python bookdata.py

Show your com­put­er your books and let it do the rest :-)

PS: I would love if some­one gath­ered all this and made a nice per­son­al book cat­a­logu­ing thing.

Pablo Valentini / 2012-07-13 18:01:

Tenés un pequeño error en la línea 17.

Saludos.

Roberto Alsina / 2012-07-13 18:08:

Gracias, arreglado!

Walter Alini / 2012-07-13 23:26:

Tenés un pequeño error en "gbooks.chema"

Giacomo Lacava / 2012-07-14 15:38:

It's 2012, dude :) there are so many online options without having to hack your own... LibraryThing, Goodreads, Anobii, etc etc.

The real problem is reading all those ISBN. I wish there was an iPhone app that just reads a barcode and adds it to a list, which you can then export, so that you can do mass-scanning in a few minutes. Probably there is one out there I don't know about.

Roberto Alsina / 2012-07-14 15:49:

If you just want to read the ISBNs, then zbarcam and a webcam is enough, or zbar for android (no idea about iPhone).

I use goodreads a lot, actually. The goal here is to give you your data, in your device, for you. Relying exclusively on online services from which there is no easy exit strategy is not something I like a lot.

Giacomo Lacava / 2012-07-14 22:01:

http://www.goodreads.com/re... on the right has a link to export in csv format. Just sayin'.

Roberto Alsina / 2012-07-14 22:08:

Ever tried reading that CSV file? I did :-) LibreOffice, at least, fails miserably.

In any case, if you want to load your books into goodreads, use this script and then import them. Noone is stopping you :-)


Contents © 2000-2023 Roberto Alsina