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, Open Library, 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.
(use-package bib
:vc (:url "https://github.com/benthamite/bib"))(use-package bib
:ensure (:host github :repo "benthamite/bib"))(use-package bib
:straight (:host github :repo "benthamite/bib"))Some commands require API keys. bib-search-crossref and bib-search-isbn work without any key. For the others, set the relevant keys:
(use-package bib
:ensure (bib :host github :repo "benthamite/bib")
:custom
(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 or M-x bib-search-isbn (no API key needed) -- enter a title, pick from the completion candidates, and the identifier is returned.
For a comprehensive description of all user options, commands, and functions, see the manual.
GPL-3.0 -- see COPYING.txt.