Tell me more ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Is there an established way to, given a list of DOI identifiers, produce a .bib file containing the citation information?

share|improve this question
4  
Also note the inverse problem asked recently here – Will Robertson Dec 10 '10 at 4:14

9 Answers

Crossref has just enabled content-negotiation on their API, where they are able to generate bibtex. Here's an example from their blog

curl -LH "Accept: text/bibliography; style=bibtex" http://dx.doi.org/10.1038/nrd842

here's how you'd do it in Ruby

open("http://dx.doi.org/10.1038/nrd842","Accept" => "text/bibliography; style=bibtex"){|f| f.each {|line| print line}}

(from StackOverflow)

share|improve this answer

It is possible to obtain the bibliographic information associated with a doi in XML format (except the abstract) via a web query to crossref.org. I've have been following instructions at

http://labs.crossref.org/site/quick_and_dirty_api_guide.html

and the service works as advertised.

share|improve this answer
this does not work for me: OpenURL-specific logins are no longer valid. – Sebastian Jun 21 '12 at 8:01

Unfortunately, there is no any tools trying to dealing with this. I think it's nearly impossible. Because DOI system is similar to URL but more strictly. It's aiming to establish a unique permanent link system, which is not limited to published materials. Although it is used by many publishers.

Technically, from a DOI number, what we can get directly is only a redirect link, whose content can be organized in any style with any codes. To recognize them correctly, we need something like import filters of Zotero but more.

share|improve this answer

I stumbled over this issue and it annoyed me as well so I invested some time and came up with a VEEERRRYYY simple little webtool:

http://doi-to-bibtex.herokuapp.com

I might invest some more time at some point, but got now it just WORKS!!

share|improve this answer
Welcome to TeX.sx! – lockstep Nov 23 '12 at 9:44

(Note: the script linked to is untested by me.)

If your DOI number is something that is included in the Harvard ADS database, then you can try this python script by Filipe Fernandes.

In general you'll probably need some sort of maintained database, or something like what gerry said in his answer.

share|improve this answer
With the support of BeautifulSoup, it works perfectly for single record. But many fields do not have similar powerful databases like ADS, which is really good for astrophysics/physics/arxiv. – gerry Dec 10 '10 at 13:31
the link to the python script is broken – alfC Oct 14 '11 at 23:17
@alfC: the author changed the organisation of his code.google.com projects. I fixed the link now. – Willie Wong Oct 15 '11 at 19:51
thanks, does anybody have a C/C++ code to read the query results? – alfC Oct 17 '11 at 20:48

Hi the proper link to "doi2bibtex" is this url:

http://code.google.com/p/ocefpaf-python/source/browse/ocefpaf/doi2bibtex.py

The one list here is just the "wrapper" to the script.

In the end, this script is just an ugly hack to get the ADS database (with some prototype to other databases and google scholar.) Anyone interested in taking this forward is welcome, since I cannot afford the time for this project anymore.

share|improve this answer

I've found something of a solution. Mind you it's not brilliant. I recently had this problem and was quite frustrated with it.

I've been using this method (implemented in java) to extract the .bib from a doi using the crossref.org website. They have a query function which I've been abusing with cURL in order to extract the information from the xml returned. (It's not the best but it is a solution). N.B. crossref fails to look up the title. No idea why. I'll upload the Jar when I'm done.

share|improve this answer

BibSonomy is a website for reference management, similar to CiteULike. BibSonomy allows posting publications via DOI, afterwards you can download your complete library as a .bib file. If the DOI is displayed on a webpage, you can highlight it and post it with a bookmarklet.

share|improve this answer

Another crossref lookup (in python) -- even with titles! :)

different journals use different fields, this script works now with the journals i'm usually referencing to.

in order to produce a bibtex file, save the script e.g. as doi2bib.py and run python doi2bibtex.py DOI1 DOI2 DOI3 etc > mybibtexfile.bib (under linux; there should be an equivalent possibility for windows)

There's a Ruby "translation" available here as well.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.