bib is a small Emacs package for quickly retrieving bibliographic metadata for books, academic papers, and films. Given only a title (and optionally an author), it searches the relevant public APIs -- Crossref, ISBNdb, OMDb, TMDb, Letterboxd -- locates the correct unique identifier (DOI, ISBN, IMDb ID, or Letterboxd slug), and returns a ready-to-use result: a DOI string, an IMDb URL, a Letterboxd slug, or a full BibTeX entry (via zotra).
If you regularly add references to a BibTeX file and want a fast way to go from "I know the title" to "I have the DOI/ISBN/IMDb URL", bib handles the lookup-and-select workflow so you don't have to leave Emacs. The interactive commands present a completion list of candidates from the upstream API, and the selected identifier is returned (and, where applicable, copied to the kill ring).
This is not a full-featured reference manager -- just a focused tool for identifier lookup and BibTeX entry generation.
bib requires Emacs 28.1 or later. All of its runtime dependencies (url, json, dom, seq) are built-in. The optional zotra package is only needed if you want to use bib-zotra-add-entry-from-title to generate BibTeX entries.
(package-vc-install "https://github.com/benthamite/bib")(use-package bib
:ensure (bib :host github :repo "benthamite/bib"))(straight-use-package
'(bib :type git :host github :repo "benthamite/bib"))Several commands require API keys. At minimum, set the keys for the services you plan to use:
(use-package bib
:ensure (bib :host github :repo "benthamite/bib")
:custom
(bib-isbndb-key "your-isbndb-key") ; for bib-search-isbn
(bib-omdb-key "your-omdb-key") ; for bib-search-imdb
(bib-tmdb-key "your-tmdb-key")) ; for bib-translate-title-into-englishThen try M-x bib-search-crossref (no API key needed) -- enter a paper title, pick from the completion candidates, and the DOI is returned and displayed in the echo area.
For a comprehensive description of all user options, commands, and functions, see the manual.
GPL-3.0 -- see COPYING.txt.