I’m in Love with LibraryThing

July 31, 2007

I discovered LibraryThing over the weekend, and I’m in love.

Anyone who knows me or has visited my house knows I love books. Since 1994, I’ve tried to keep a list of the books I’ve read. I started this habit because I found I was forgetting what I’d read. I’d be in a bookstore and be unsure if I’d read something before. (This was particularly true of all of the sci-fi & fantasy books I read in junior high & high school.) The simple act of writing down the titles what I’d read helped me remember the content of the books.

If you want to read more about my history trying to keep track of what I’ve read, why I love LibraryThing, and the tools I wrote to make it easier to move over to LibraryThing, then keep reading this post.

It started with just a list of titles and authors written on paper. Then, for several years, I kept a BibTeX file with everything I read. At the end of each year, I’d print out this beautifully formatted list of the books I’d read that year.

Eventually, writing down just the titles & authors wasn’t enough to help me remember the contents of the book, so I started writing a couple of sentences of what I thought of the book. It also became hard to keep working in BibTeX once I left college, so I moved over to keeping my records in a home-grown XML file that I edited with InfoPath.

Earlier this year, I thought, “Wouldn’t it be great to put my reading list up on the web?” I first started going down the road of writing website code that would let me display my home-grown file. But then I discovered there were already websites that let people input their book collections and share them with others.

For a few months, I used Shelfari — primarily because this is a local, Seattle company. Over the course of a couple of weeks, I manually copied entries from my home-grown file into their website. Things were working well. I could enter all of the information I needed about the books, and Shelfari would display a nice faux bookshelf with all of the covers of my books. (You can see it here if you’re interested.)

My biggest annoyance was the user interface. Doing bulk data entry like I was doing was tedious, quirky, and a little slow.

Then, this past weekend, I stumbled across LibraryThing. I’d seen it before when I was first deciding if I should move to Shelfari, but opted against using the site because it wasn’t free. LibraryThing costs $10 per year or $25 for a lifetime membership if you want to store more than 200 books on the site. Shelfari is completely free.

Well, I’d just hit the 200-books-tediously-entered-by-hand stage at Shelfari, so I figured I’d try LibraryThing with those same books. So I exported my book list from Shelfari and imported it into LibraryThing. There were several things about this experience that sold me on LibraryThing over Shelfari and turned me into a paying lifetime member.

  • LibraryThing’s website feels snappier. They show cool, useless information that I just find fascinating.
  • LibraryThing’s philosophy is based on the open exchange of information. They’ve got some great APIs. When you export your data from LibraryThing, you get everything back that you entered into the system: Your ratings, your tags, your reviews. When I exported my data from Shelfari, it didn’t give me my ratings or my reviews. This is important personal information I have about my books, which I entered manually into Shelfari, and I now feel like it went into a black hole. I love that what I enter into LibraryThing stays “my” information and I can get it back whenever I want.

In my giddiness, I even ordered a $15 barcode scanner from LibraryThing. That will speed up the process of cataloging the rest of my books. (I’m looking forward to learning how many books I currently have in the house. I’m guessing between 400 and 500. Stay tuned.)

I also stayed up late last night and played with the LibraryThing APIs. I’ve produced two little tools that are useful for me, as a LibraryThing user, and will make useful sample code. Here’s what I wrote:

  • A PowerShell script that gets your library from LibraryThing and parses the results. You can then do all sorts of interesting things to sort, filter, and display your collection of books. This is a good PowerShell example of how to send & process web requests and how to create & format custom objects. You can find the code here: LibraryThing.zip. It’s covered by the Microsoft Community License.
  • A C# program that does a bulk-update of LibraryThing books. This is how I got my ratings & reviews into LibraryThing. I already had the content sitting in my custom file. Instead of having to enter them one at a time in the website, like I did in Shelfari, I used this tool to update 181 entries at once. Now, I may have spent just as much time writing the tool as I would have doing a lot of repetitive copy & paste… but this taught me how to use the .NET WebBrowser control to programmatically fill out web forms. It’s not the most user-friendly program, but it’s good sample code. You can find it here: BulkLibraryThing.zip. It’s also covered by the Microsoft Community License.

If you’re a lover of books, and a cataloger of books, LibraryThing is a great site to try.