Jonathan - No, I don't believe it's documented - at least not anywhere
publicly.  If any IA/OCA folks are lurking, here's an opportunity to
make a bunch of techies happy...


-----Original Message-----
From: Code for Libraries [mailto:[log in to unmask]] On Behalf Of
Jonathan Rochkind
Sent: Monday, February 25, 2008 2:48 PM
To: [log in to unmask]
Subject: Re: [CODE4LIB] oca api?

I hadn't known this "custom query interface" existed! This is welcome
news. Is this documented anywhere?


>>> Chris Freeland <[log in to unmask]> 02/25/08 2:51 PM >>>
Steve & Tim,

I'm the tech director for the Biodiversity Heritage Library (BHL), which
is a consortium of 10 natural history libraries who have partnered with
Internet Archive (IA)/OCA for scanning our collections.  We've just
launched our revamped portal, complete with more than 7,500 books & 2.8
million pages scanned by IA & other digitization partners, at:

To build this portal we ingest metadata from IA.  We found their OAI
interface to pull scanned items inconsistently based on date of
scanning, so we switched to using their custom query interface.  Here's
an example of a query we fire off:

This is returning scanned items from the "biodiversity" collection,
updated between 10/31/2007 - 11/30/2007, restricted to one of our
contributing libraries (MBLWHOI Library), and limited to 10 results.

The results are styled in the browser; view source to see the good
stuff.  We use this list to grab the identifiers we've yet to ingest.

Some background: When a book is scanned through IA/OCA scanning, they
create their own unique identifier (like "annalesacademiae21univ") and
grab a MARC record from the contributing library's catalog.  All of the
scanned files, derivatives, and metadata files are stored on IA's
clusters in a directory named with the identifier.

Steve mentioned using their /details/ directive, then sniffing the page
to get the cluster location and the files for downloading.  An easier
method is to use their /download/ directive, as in:$, or in the example above:

That automatically does a lookup on the cluster, which means you don't
have to scrape info off pages.  You can also address any files within
that directory, as in:

The only way to get standard identifiers (ISBN, ISSN, OCLC, LCCN) for
these scanned books is to grab them out of the MARC record.  So the
long-winded answer to your question, Tim, is no, there's no simple way
to crossref what IA has scanned with your catalog - THAT I KNOW OF.  Big
caveat on that last part.

Happy to help with any other questions I can,

Chris Freeland

-----Original Message-----
From: Code for Libraries [mailto:[log in to unmask]] On Behalf Of
Steve Toub
Sent: Sunday, February 24, 2008 11:20 PM
To: [log in to unmask]
Subject: Re: [CODE4LIB] oca api?

--- Tim Shearer <[log in to unmask]> wrote:

> Hi Folks,
> I'm looking into tapping the texts in the Open Content Alliance.
> A few questions...
> As near as I can tell, they don't expose (perhaps even store?) any
> unique identifiers (oclc number, issn, isbn, loc number).

I poked around in this world a few months ago in my previous job at
California Digital Library,
also an OCA partner.

The unique key seems to be text string identifier (one that seems to be
completely different from
the text string identifier in Open Library). Apparently there was talk
at the last partner meeting
about moving to ISBNs:

To obtain identifiers in bulk, I think the recommended approach is the
OAI-PMH interface, which
seems more reliable in recent months:


Additional instructions if you want to grab the content files.

From any book's metadata page (e.g.,
click through on the "Usage Rights: See Terms" link; the rights are on a
pane on the left-hand

Once you know the identifier, you can grab the content files, using this
Like so:

And then sniff the page to find the FTP link:

But I think they prefer to use HTTP for these, not the FTP, so switch
this to:

Hope this helps!


> We're a contributer so I can use curl to grab our records via http
> regexp my way to our local catalog identifiers, which they do
> store/expose).
> I've played a bit with the z39.50 interface at indexdata
> (, but I'm not confident about
> content behind it.  I get very limited results, for instance I can't
> any UNC records and we're fairly new to the game.
> Again, I'm looking for unique identifiers in what I can get back and
> slim pickings.
> Anyone cracked this nut?  Got any life lessons for me?
> Thanks!
> Tim
> +++++++++++++++++++++++++++++++++++++++++++
> Tim Shearer
> Web Development Coordinator
> The University Library
> University of North Carolina at Chapel Hill
> [log in to unmask]
> 919-962-1288
> +++++++++++++++++++++++++++++++++++++++++++