Automatically dereference DOI to .bib?












41















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










share|improve this question


















  • 6





    Also note the inverse problem asked recently here

    – Will Robertson
    Dec 10 '10 at 4:14
















41















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










share|improve this question


















  • 6





    Also note the inverse problem asked recently here

    – Will Robertson
    Dec 10 '10 at 4:14














41












41








41


16






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










share|improve this question














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







bibtex bibliographies doi






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Dec 10 '10 at 3:43









Tobin FrickeTobin Fricke

1,06411216




1,06411216








  • 6





    Also note the inverse problem asked recently here

    – Will Robertson
    Dec 10 '10 at 4:14














  • 6





    Also note the inverse problem asked recently here

    – Will Robertson
    Dec 10 '10 at 4:14








6




6





Also note the inverse problem asked recently here

– Will Robertson
Dec 10 '10 at 4:14





Also note the inverse problem asked recently here

– Will Robertson
Dec 10 '10 at 4:14










11 Answers
11






active

oldest

votes


















42














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





















  • 1





    Sometimes I get such responses: <html><body><h1>503 Service Unavailable</h1> No server is available to handle this request. </body></html>

    – math
    Mar 12 '14 at 16:56











  • For wget crowd: wget -qO- --header "Accept: text/bibliography; style=bibtex" http://dx.doi.org/10.1038/nrd842. This will print it to stdout. Remove the -qO- to store it in file.

    – Pouya
    Feb 18 at 13:26



















7














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






  • 4





    the link is broken

    – math
    Mar 12 '14 at 16:46



















7














There's also doi2bibtex from betterbib (a pet project of mine),



$ doi2bibtex 10.1038/nrd842
@article{bibtex,
author = {Atkins, Joshua H. and Gershell, Leland J.},
doi = {10.1038/nrd842},
issn = {1474-1784},
journal = {Nature Reviews Drug Discovery},
month = jul,
number = {7},
pages = {491-492},
publisher = {Springer Nature},
source = {Crossref},
title = {From the analyst's couch: {Selective} anticancer drugs},
url = {http://dx.doi.org/10.1038/nrd842},
volume = {1},
year = {2002}
}


It's a bit more consistent than Crossref's API endpoint, for example in the conversion of the month item or the capitalization in titles.






share|improve this answer

































    4














    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































      4














      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






      • 3





        this link appears to be broken...

        – Try Hard
        Jul 29 '13 at 17:52



















      3














      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





















      • 2





        The link is broken

        – alfC
        Oct 28 '13 at 3:04



















      2














      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































        1














        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































          1














          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

































            1














            I used the answer of Stian Håklev to write a small emacs function which retrieves the bibtex from a doi. Just call M-x doi-to-bib (adjust "~/bib/ref.bib" to the location of your main bibtex file).



            (defun string-starts-with (s arg)
            "returns non-nil if string S starts with ARG. Else nil."
            (cond ((>= (length s) (length arg))
            (string-equal (substring s 0 (length arg)) arg))
            (t nil)))

            (defun doi-to-bib (doi)
            (interactive "sEnter the doi to expand to bibtex via crossref: ")
            (with-current-buffer (find-file-noselect (expand-file-name "~/bib/ref.bib"))
            (goto-char (point-max))
            ; doi:10.1016/j.egypro.2014.12.316 to http://dx.doi.org/10.1016/j.egypro.2014.12.316
            (when (string-starts-with doi "doi:")
            (setq doi (concat "http://dx.doi.org/" (string-remove-prefix "doi:" doi))))
            (insert (concat "nn"
            (string-trim
            (shell-command-to-string
            (concat
            "curl -sLH "Accept: text/bibliography; style=bibtex" "
            doi)))
            "nn"))))





            share|improve this answer































              1














              Just found this npm package:
              https://github.com/davidagraf/doi2bib2
              https://www.doi2bib.org/

              A simple web interface that, when entered a digital object identifier (DOI), returns the BibTeX entry. They retrieve citation records directly from publishers through public interfaces provided by The International DOI Foundation and Crossref.






              share|improve this answer























                Your Answer








                StackExchange.ready(function() {
                var channelOptions = {
                tags: "".split(" "),
                id: "85"
                };
                initTagRenderer("".split(" "), "".split(" "), channelOptions);

                StackExchange.using("externalEditor", function() {
                // Have to fire editor after snippets, if snippets enabled
                if (StackExchange.settings.snippets.snippetsEnabled) {
                StackExchange.using("snippets", function() {
                createEditor();
                });
                }
                else {
                createEditor();
                }
                });

                function createEditor() {
                StackExchange.prepareEditor({
                heartbeatType: 'answer',
                autoActivateHeartbeat: false,
                convertImagesToLinks: false,
                noModals: true,
                showLowRepImageUploadWarning: true,
                reputationToPostImages: null,
                bindNavPrevention: true,
                postfix: "",
                imageUploader: {
                brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                allowUrls: true
                },
                onDemand: true,
                discardSelector: ".discard-answer"
                ,immediatelyShowMarkdownHelp:true
                });


                }
                });














                draft saved

                draft discarded


















                StackExchange.ready(
                function () {
                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f6848%2fautomatically-dereference-doi-to-bib%23new-answer', 'question_page');
                }
                );

                Post as a guest















                Required, but never shown

























                11 Answers
                11






                active

                oldest

                votes








                11 Answers
                11






                active

                oldest

                votes









                active

                oldest

                votes






                active

                oldest

                votes









                42














                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





















                • 1





                  Sometimes I get such responses: <html><body><h1>503 Service Unavailable</h1> No server is available to handle this request. </body></html>

                  – math
                  Mar 12 '14 at 16:56











                • For wget crowd: wget -qO- --header "Accept: text/bibliography; style=bibtex" http://dx.doi.org/10.1038/nrd842. This will print it to stdout. Remove the -qO- to store it in file.

                  – Pouya
                  Feb 18 at 13:26
















                42














                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





















                • 1





                  Sometimes I get such responses: <html><body><h1>503 Service Unavailable</h1> No server is available to handle this request. </body></html>

                  – math
                  Mar 12 '14 at 16:56











                • For wget crowd: wget -qO- --header "Accept: text/bibliography; style=bibtex" http://dx.doi.org/10.1038/nrd842. This will print it to stdout. Remove the -qO- to store it in file.

                  – Pouya
                  Feb 18 at 13:26














                42












                42








                42







                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















                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














                share|improve this answer



                share|improve this answer








                edited May 23 '17 at 12:39









                Community

                1




                1










                answered Feb 23 '12 at 18:36









                Stian HåklevStian Håklev

                52345




                52345








                • 1





                  Sometimes I get such responses: <html><body><h1>503 Service Unavailable</h1> No server is available to handle this request. </body></html>

                  – math
                  Mar 12 '14 at 16:56











                • For wget crowd: wget -qO- --header "Accept: text/bibliography; style=bibtex" http://dx.doi.org/10.1038/nrd842. This will print it to stdout. Remove the -qO- to store it in file.

                  – Pouya
                  Feb 18 at 13:26














                • 1





                  Sometimes I get such responses: <html><body><h1>503 Service Unavailable</h1> No server is available to handle this request. </body></html>

                  – math
                  Mar 12 '14 at 16:56











                • For wget crowd: wget -qO- --header "Accept: text/bibliography; style=bibtex" http://dx.doi.org/10.1038/nrd842. This will print it to stdout. Remove the -qO- to store it in file.

                  – Pouya
                  Feb 18 at 13:26








                1




                1





                Sometimes I get such responses: <html><body><h1>503 Service Unavailable</h1> No server is available to handle this request. </body></html>

                – math
                Mar 12 '14 at 16:56





                Sometimes I get such responses: <html><body><h1>503 Service Unavailable</h1> No server is available to handle this request. </body></html>

                – math
                Mar 12 '14 at 16:56













                For wget crowd: wget -qO- --header "Accept: text/bibliography; style=bibtex" http://dx.doi.org/10.1038/nrd842. This will print it to stdout. Remove the -qO- to store it in file.

                – Pouya
                Feb 18 at 13:26





                For wget crowd: wget -qO- --header "Accept: text/bibliography; style=bibtex" http://dx.doi.org/10.1038/nrd842. This will print it to stdout. Remove the -qO- to store it in file.

                – Pouya
                Feb 18 at 13:26











                7














                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






                • 4





                  the link is broken

                  – math
                  Mar 12 '14 at 16:46
















                7














                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






                • 4





                  the link is broken

                  – math
                  Mar 12 '14 at 16:46














                7












                7








                7







                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













                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












                share|improve this answer



                share|improve this answer










                answered Nov 23 '12 at 9:28









                jogamjogam

                8711




                8711













                • Welcome to TeX.sx!

                  – lockstep
                  Nov 23 '12 at 9:44






                • 4





                  the link is broken

                  – math
                  Mar 12 '14 at 16:46



















                • Welcome to TeX.sx!

                  – lockstep
                  Nov 23 '12 at 9:44






                • 4





                  the link is broken

                  – math
                  Mar 12 '14 at 16:46

















                Welcome to TeX.sx!

                – lockstep
                Nov 23 '12 at 9:44





                Welcome to TeX.sx!

                – lockstep
                Nov 23 '12 at 9:44




                4




                4





                the link is broken

                – math
                Mar 12 '14 at 16:46





                the link is broken

                – math
                Mar 12 '14 at 16:46











                7














                There's also doi2bibtex from betterbib (a pet project of mine),



                $ doi2bibtex 10.1038/nrd842
                @article{bibtex,
                author = {Atkins, Joshua H. and Gershell, Leland J.},
                doi = {10.1038/nrd842},
                issn = {1474-1784},
                journal = {Nature Reviews Drug Discovery},
                month = jul,
                number = {7},
                pages = {491-492},
                publisher = {Springer Nature},
                source = {Crossref},
                title = {From the analyst's couch: {Selective} anticancer drugs},
                url = {http://dx.doi.org/10.1038/nrd842},
                volume = {1},
                year = {2002}
                }


                It's a bit more consistent than Crossref's API endpoint, for example in the conversion of the month item or the capitalization in titles.






                share|improve this answer






























                  7














                  There's also doi2bibtex from betterbib (a pet project of mine),



                  $ doi2bibtex 10.1038/nrd842
                  @article{bibtex,
                  author = {Atkins, Joshua H. and Gershell, Leland J.},
                  doi = {10.1038/nrd842},
                  issn = {1474-1784},
                  journal = {Nature Reviews Drug Discovery},
                  month = jul,
                  number = {7},
                  pages = {491-492},
                  publisher = {Springer Nature},
                  source = {Crossref},
                  title = {From the analyst's couch: {Selective} anticancer drugs},
                  url = {http://dx.doi.org/10.1038/nrd842},
                  volume = {1},
                  year = {2002}
                  }


                  It's a bit more consistent than Crossref's API endpoint, for example in the conversion of the month item or the capitalization in titles.






                  share|improve this answer




























                    7












                    7








                    7







                    There's also doi2bibtex from betterbib (a pet project of mine),



                    $ doi2bibtex 10.1038/nrd842
                    @article{bibtex,
                    author = {Atkins, Joshua H. and Gershell, Leland J.},
                    doi = {10.1038/nrd842},
                    issn = {1474-1784},
                    journal = {Nature Reviews Drug Discovery},
                    month = jul,
                    number = {7},
                    pages = {491-492},
                    publisher = {Springer Nature},
                    source = {Crossref},
                    title = {From the analyst's couch: {Selective} anticancer drugs},
                    url = {http://dx.doi.org/10.1038/nrd842},
                    volume = {1},
                    year = {2002}
                    }


                    It's a bit more consistent than Crossref's API endpoint, for example in the conversion of the month item or the capitalization in titles.






                    share|improve this answer















                    There's also doi2bibtex from betterbib (a pet project of mine),



                    $ doi2bibtex 10.1038/nrd842
                    @article{bibtex,
                    author = {Atkins, Joshua H. and Gershell, Leland J.},
                    doi = {10.1038/nrd842},
                    issn = {1474-1784},
                    journal = {Nature Reviews Drug Discovery},
                    month = jul,
                    number = {7},
                    pages = {491-492},
                    publisher = {Springer Nature},
                    source = {Crossref},
                    title = {From the analyst's couch: {Selective} anticancer drugs},
                    url = {http://dx.doi.org/10.1038/nrd842},
                    volume = {1},
                    year = {2002}
                    }


                    It's a bit more consistent than Crossref's API endpoint, for example in the conversion of the month item or the capitalization in titles.







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Mar 14 at 22:45

























                    answered Jul 24 '17 at 7:26









                    Nico SchlömerNico Schlömer

                    2,06931836




                    2,06931836























                        4














                        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




























                          4














                          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


























                            4












                            4








                            4







                            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













                            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












                            share|improve this answer



                            share|improve this answer










                            answered Dec 10 '10 at 9:51









                            gerrygerry

                            7371511




                            7371511























                                4














                                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






                                • 3





                                  this link appears to be broken...

                                  – Try Hard
                                  Jul 29 '13 at 17:52
















                                4














                                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






                                • 3





                                  this link appears to be broken...

                                  – Try Hard
                                  Jul 29 '13 at 17:52














                                4












                                4








                                4







                                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













                                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












                                share|improve this answer



                                share|improve this answer










                                answered Jun 23 '11 at 23:26









                                JAMJAM

                                6511




                                6511













                                • this does not work for me: OpenURL-specific logins are no longer valid.

                                  – Sebastian
                                  Jun 21 '12 at 8:01






                                • 3





                                  this link appears to be broken...

                                  – Try Hard
                                  Jul 29 '13 at 17:52



















                                • this does not work for me: OpenURL-specific logins are no longer valid.

                                  – Sebastian
                                  Jun 21 '12 at 8:01






                                • 3





                                  this link appears to be broken...

                                  – Try Hard
                                  Jul 29 '13 at 17:52

















                                this does not work for me: OpenURL-specific logins are no longer valid.

                                – Sebastian
                                Jun 21 '12 at 8:01





                                this does not work for me: OpenURL-specific logins are no longer valid.

                                – Sebastian
                                Jun 21 '12 at 8:01




                                3




                                3





                                this link appears to be broken...

                                – Try Hard
                                Jul 29 '13 at 17:52





                                this link appears to be broken...

                                – Try Hard
                                Jul 29 '13 at 17:52











                                3














                                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





















                                • 2





                                  The link is broken

                                  – alfC
                                  Oct 28 '13 at 3:04
















                                3














                                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





















                                • 2





                                  The link is broken

                                  – alfC
                                  Oct 28 '13 at 3:04














                                3












                                3








                                3







                                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















                                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














                                share|improve this answer



                                share|improve this answer








                                edited Oct 18 '11 at 6:43









                                N.N.

                                23.9k19116189




                                23.9k19116189










                                answered Oct 17 '11 at 13:52









                                ocefpafocefpaf

                                1392




                                1392








                                • 2





                                  The link is broken

                                  – alfC
                                  Oct 28 '13 at 3:04














                                • 2





                                  The link is broken

                                  – alfC
                                  Oct 28 '13 at 3:04








                                2




                                2





                                The link is broken

                                – alfC
                                Oct 28 '13 at 3:04





                                The link is broken

                                – alfC
                                Oct 28 '13 at 3:04











                                2














                                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




























                                  2














                                  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


























                                    2












                                    2








                                    2







                                    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













                                    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












                                    share|improve this answer



                                    share|improve this answer










                                    answered Mar 14 '11 at 23:18









                                    EricREricR

                                    1,68282331




                                    1,68282331























                                        1














                                        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




























                                          1














                                          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


























                                            1












                                            1








                                            1







                                            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













                                            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












                                            share|improve this answer



                                            share|improve this answer










                                            answered Nov 17 '11 at 12:29









                                            matthmatth

                                            9,32344268




                                            9,32344268























                                                1














                                                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






























                                                  1














                                                  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




























                                                    1












                                                    1








                                                    1







                                                    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















                                                    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














                                                    share|improve this answer



                                                    share|improve this answer








                                                    edited Feb 21 '12 at 16:50









                                                    Stian Håklev

                                                    52345




                                                    52345










                                                    answered Oct 18 '11 at 11:42









                                                    Sebastian BuschSebastian Busch

                                                    80865




                                                    80865























                                                        1














                                                        I used the answer of Stian Håklev to write a small emacs function which retrieves the bibtex from a doi. Just call M-x doi-to-bib (adjust "~/bib/ref.bib" to the location of your main bibtex file).



                                                        (defun string-starts-with (s arg)
                                                        "returns non-nil if string S starts with ARG. Else nil."
                                                        (cond ((>= (length s) (length arg))
                                                        (string-equal (substring s 0 (length arg)) arg))
                                                        (t nil)))

                                                        (defun doi-to-bib (doi)
                                                        (interactive "sEnter the doi to expand to bibtex via crossref: ")
                                                        (with-current-buffer (find-file-noselect (expand-file-name "~/bib/ref.bib"))
                                                        (goto-char (point-max))
                                                        ; doi:10.1016/j.egypro.2014.12.316 to http://dx.doi.org/10.1016/j.egypro.2014.12.316
                                                        (when (string-starts-with doi "doi:")
                                                        (setq doi (concat "http://dx.doi.org/" (string-remove-prefix "doi:" doi))))
                                                        (insert (concat "nn"
                                                        (string-trim
                                                        (shell-command-to-string
                                                        (concat
                                                        "curl -sLH "Accept: text/bibliography; style=bibtex" "
                                                        doi)))
                                                        "nn"))))





                                                        share|improve this answer




























                                                          1














                                                          I used the answer of Stian Håklev to write a small emacs function which retrieves the bibtex from a doi. Just call M-x doi-to-bib (adjust "~/bib/ref.bib" to the location of your main bibtex file).



                                                          (defun string-starts-with (s arg)
                                                          "returns non-nil if string S starts with ARG. Else nil."
                                                          (cond ((>= (length s) (length arg))
                                                          (string-equal (substring s 0 (length arg)) arg))
                                                          (t nil)))

                                                          (defun doi-to-bib (doi)
                                                          (interactive "sEnter the doi to expand to bibtex via crossref: ")
                                                          (with-current-buffer (find-file-noselect (expand-file-name "~/bib/ref.bib"))
                                                          (goto-char (point-max))
                                                          ; doi:10.1016/j.egypro.2014.12.316 to http://dx.doi.org/10.1016/j.egypro.2014.12.316
                                                          (when (string-starts-with doi "doi:")
                                                          (setq doi (concat "http://dx.doi.org/" (string-remove-prefix "doi:" doi))))
                                                          (insert (concat "nn"
                                                          (string-trim
                                                          (shell-command-to-string
                                                          (concat
                                                          "curl -sLH "Accept: text/bibliography; style=bibtex" "
                                                          doi)))
                                                          "nn"))))





                                                          share|improve this answer


























                                                            1












                                                            1








                                                            1







                                                            I used the answer of Stian Håklev to write a small emacs function which retrieves the bibtex from a doi. Just call M-x doi-to-bib (adjust "~/bib/ref.bib" to the location of your main bibtex file).



                                                            (defun string-starts-with (s arg)
                                                            "returns non-nil if string S starts with ARG. Else nil."
                                                            (cond ((>= (length s) (length arg))
                                                            (string-equal (substring s 0 (length arg)) arg))
                                                            (t nil)))

                                                            (defun doi-to-bib (doi)
                                                            (interactive "sEnter the doi to expand to bibtex via crossref: ")
                                                            (with-current-buffer (find-file-noselect (expand-file-name "~/bib/ref.bib"))
                                                            (goto-char (point-max))
                                                            ; doi:10.1016/j.egypro.2014.12.316 to http://dx.doi.org/10.1016/j.egypro.2014.12.316
                                                            (when (string-starts-with doi "doi:")
                                                            (setq doi (concat "http://dx.doi.org/" (string-remove-prefix "doi:" doi))))
                                                            (insert (concat "nn"
                                                            (string-trim
                                                            (shell-command-to-string
                                                            (concat
                                                            "curl -sLH "Accept: text/bibliography; style=bibtex" "
                                                            doi)))
                                                            "nn"))))





                                                            share|improve this answer













                                                            I used the answer of Stian Håklev to write a small emacs function which retrieves the bibtex from a doi. Just call M-x doi-to-bib (adjust "~/bib/ref.bib" to the location of your main bibtex file).



                                                            (defun string-starts-with (s arg)
                                                            "returns non-nil if string S starts with ARG. Else nil."
                                                            (cond ((>= (length s) (length arg))
                                                            (string-equal (substring s 0 (length arg)) arg))
                                                            (t nil)))

                                                            (defun doi-to-bib (doi)
                                                            (interactive "sEnter the doi to expand to bibtex via crossref: ")
                                                            (with-current-buffer (find-file-noselect (expand-file-name "~/bib/ref.bib"))
                                                            (goto-char (point-max))
                                                            ; doi:10.1016/j.egypro.2014.12.316 to http://dx.doi.org/10.1016/j.egypro.2014.12.316
                                                            (when (string-starts-with doi "doi:")
                                                            (setq doi (concat "http://dx.doi.org/" (string-remove-prefix "doi:" doi))))
                                                            (insert (concat "nn"
                                                            (string-trim
                                                            (shell-command-to-string
                                                            (concat
                                                            "curl -sLH "Accept: text/bibliography; style=bibtex" "
                                                            doi)))
                                                            "nn"))))






                                                            share|improve this answer












                                                            share|improve this answer



                                                            share|improve this answer










                                                            answered Mar 29 '17 at 12:19









                                                            Arne BabenhauserheideArne Babenhauserheide

                                                            1113




                                                            1113























                                                                1














                                                                Just found this npm package:
                                                                https://github.com/davidagraf/doi2bib2
                                                                https://www.doi2bib.org/

                                                                A simple web interface that, when entered a digital object identifier (DOI), returns the BibTeX entry. They retrieve citation records directly from publishers through public interfaces provided by The International DOI Foundation and Crossref.






                                                                share|improve this answer




























                                                                  1














                                                                  Just found this npm package:
                                                                  https://github.com/davidagraf/doi2bib2
                                                                  https://www.doi2bib.org/

                                                                  A simple web interface that, when entered a digital object identifier (DOI), returns the BibTeX entry. They retrieve citation records directly from publishers through public interfaces provided by The International DOI Foundation and Crossref.






                                                                  share|improve this answer


























                                                                    1












                                                                    1








                                                                    1







                                                                    Just found this npm package:
                                                                    https://github.com/davidagraf/doi2bib2
                                                                    https://www.doi2bib.org/

                                                                    A simple web interface that, when entered a digital object identifier (DOI), returns the BibTeX entry. They retrieve citation records directly from publishers through public interfaces provided by The International DOI Foundation and Crossref.






                                                                    share|improve this answer













                                                                    Just found this npm package:
                                                                    https://github.com/davidagraf/doi2bib2
                                                                    https://www.doi2bib.org/

                                                                    A simple web interface that, when entered a digital object identifier (DOI), returns the BibTeX entry. They retrieve citation records directly from publishers through public interfaces provided by The International DOI Foundation and Crossref.







                                                                    share|improve this answer












                                                                    share|improve this answer



                                                                    share|improve this answer










                                                                    answered Mar 14 at 16:58









                                                                    matthmatth

                                                                    9,32344268




                                                                    9,32344268






























                                                                        draft saved

                                                                        draft discarded




















































                                                                        Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


                                                                        • Please be sure to answer the question. Provide details and share your research!

                                                                        But avoid



                                                                        • Asking for help, clarification, or responding to other answers.

                                                                        • Making statements based on opinion; back them up with references or personal experience.


                                                                        To learn more, see our tips on writing great answers.




                                                                        draft saved


                                                                        draft discarded














                                                                        StackExchange.ready(
                                                                        function () {
                                                                        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f6848%2fautomatically-dereference-doi-to-bib%23new-answer', 'question_page');
                                                                        }
                                                                        );

                                                                        Post as a guest















                                                                        Required, but never shown





















































                                                                        Required, but never shown














                                                                        Required, but never shown












                                                                        Required, but never shown







                                                                        Required, but never shown

































                                                                        Required, but never shown














                                                                        Required, but never shown












                                                                        Required, but never shown







                                                                        Required, but never shown







                                                                        Popular posts from this blog

                                                                        Biblatex bibliography style without URLs when DOI exists (in Overleaf with Zotero bibliography)

                                                                        ComboBox Display Member on multiple fields

                                                                        Is it possible to collect Nectar points via Trainline?