Looks like it can be done via WorldCat‘s xisbn API.
My approach is something like this:
foo:~ $ curl 'http://xisbn.worldcat.org/webservices/xid/isbn/0521288843?method=getMetadata&format=xml&fl=year,ed,title,author,publisher,city'
which returns an XML block like the following:
0521288843
A little XSLT, such as that below:
book2bib.xsl
1 2 3 4 5 6 @BOOK{CiteKeyGoesHere, 7 AUTHOR = " ", 8 TITLE = " ", 9 PUBLISHER = " ", 10 ADDRESS = " ", 11 YEAR =" "} 12 13 14 15
…emits the following:
@BOOK{CiteKeyGoesHere,
AUTHOR = "John Maynard Smith.",
TITLE = "Evolution and the theory of games",
PUBLISHER = "Cambridge Univ. Press",
ADDRESS = "Cambridge [u.a.]",
YEAR ="1986"}
The user will need to supply her own citation key, but many bibliography management tools (such as BibDesk) will do this, or you can use the bibtexformat perl script to insert them for you.
Here’s the whole deal in action. Creating a shell script which takes the ISBN as a parameter and plugs it into something like the following is left as an exercise for the reader.
$ curl -s 'http://xisbn.worldcat.org/webservices/xid/isbn/0521288843?method=getMetadata&format=xml&fl=year,ed,title,author,publisher,city' | xsltproc ~/Dev/book2bib.xsl -
@BOOK{CiteKeyGoesHere,
AUTHOR = “John Maynard Smith.”,
TITLE = “Evolution and the theory of games”,
PUBLISHER = “Cambridge Univ. Press”,
ADDRESS = “Cambridge [u.a.]”,
YEAR =”1986″}