OpenLibrary JSON API is deprecated, sometimes produces incorrect book covers

Bug #1475315 reported by Remington Steed on 2015-07-16
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Evergreen
Undecided
Unassigned

Bug Description

The OpenLibrary JSON API that we use is deprecated, according to their website. Possibly related (though not certainly), the JSON API sometimes produces incorrect book cover images. Here is the example I encountered:

Book record at OpenLibrary (which displays the correct cover image):
https://openlibrary.org/books/OL4263809M/The_glorious_cause

Deprecated JSON API call (used by Evergreen):
http://openlibrary.org/api/volumes/brief/json/isbn:0195029216

...which returns three cover IDs, the first two of which are incorrect:
"covers": [
    122035,
    121045,
    120915
]

Evergreen displays the first one in the catalog:
https://covers.openlibrary.org/b/id/122035-M.jpg

New RESTful API call:
https://openlibrary.org/books/OL4263809M.json

...which returns a single correct cover ID:
"covers": [
    120914
]

https://covers.openlibrary.org/b/id/120914-M.jpg

Remington Steed (rjs7) wrote :

For the record, this bug doesn't improve with Galen's fix on https://bugs.launchpad.net/evergreen/+bug/1306823

Dan Scott (denials) wrote :

Hmm. I think you're confusing the deprecated JSON API at https://openlibrary.org/dev/docs/json_api with the OpenLibrary Read API (https://openlibrary.org/dev/docs/api/read), which is marked as "new" at https://openlibrary.org/developers/api.

I think that what you're seeing is the result of problematic data on OpenLibrary's part, more than anything to do with our use of the API. See a recent discussion on data quality issues in OpenLibrary at https://<email address hidden>/msg01112.html for example.

Dan Wells (dbw2) wrote :

It does seem to be more of a data issue than an API issue. These mixed up covers look like different volumes from the same series (or something along those lines).

One other comment I want to add (for anyone else poking) is that we seem to be using the Read "multi-request format" even when only having one identifier. I'm sure that's fine to do, but it just threw me for a second to see:

http://openlibrary.org/api/volumes/brief/json/isbn:0195029216

instead of:

http://openlibrary.org/api/volumes/brief/isbn/0195029216.json

They give the same results other than one extra layer of wrapping, so again, this looks just fine from an API perspective.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers