Extract BibTeX metadata from PDFs, EPUBs, URLs, and identifiers
Project description
antifile
Extract BibTeX metadata from PDFs, EPUBs, URLs, and identifiers (DOI, arXiv, ISBN)
and append it to a .bib file.
Install
pip install antifile
# or
uv tool install antifile
Usage
antifile INPUT -o refs.bib
INPUT can be:
- a PDF or EPUB file —
antifile paper.pdf -o refs.bib - a folder of PDFs/EPUBs —
antifile ~/Downloads/papers -o refs.bib(add--recursiveto descend into subfolders) - a URL —
antifile https://example.com/article -o refs.bib - a DOI —
antifile 10.1145/3292500 -o refs.bib - an arXiv ID —
antifile arXiv:1706.03762 -o refs.bib - an ISBN —
antifile 9780262033848 -o refs.bib
Entries are appended with de-duplication: a new entry matching an existing one
(by DOI, arXiv ID, ISBN, or normalized title+author) fills in any missing fields
rather than creating a duplicate. Pass --no-merge to skip on duplicate, or
--force to append anyway with an auto-suffixed key.
Options
| flag | effect |
|---|---|
-o, --output FILE |
target .bib (required; created if missing) |
--method {auto,doi,arxiv,isbn,crossref,llm,claude-code,codex} |
force a PDF extraction method (default: auto) |
--recursive |
recurse into subfolders for folder input |
--no-preview |
skip the first-page PDF preview |
--no-merge |
on duplicate, skip instead of filling missing fields |
--force |
append even if a duplicate exists |
LLM-assisted extraction
When a PDF has no resolvable identifier, antifile falls back to an LLM to read the first page. Set whichever API key you have — it's picked up from the environment:
export ANTHROPIC_API_KEY=... # or OPENAI_API_KEY, or GEMINI_API_KEY / GOOGLE_API_KEY
With no API key set, antifile falls back to a CLI agent if one is installed —
first the claude CLI, then the codex CLI. Each tier is skipped if its binary
isn't on your PATH. Full chain:
DOI → arXiv → ISBN → CrossRef title → LLM API →
claudeCLI →codexCLI → none
Related
- antilibrary — manage BibTeX libraries from the terminal (can call antifile via
--add-from-files). - antifind — online metadata search → BibTeX.
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file antifile-0.1.2.tar.gz.
File metadata
- Download URL: antifile-0.1.2.tar.gz
- Upload date:
- Size: 37.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
666bf73270bb89f83629a748585e2300a6a445010711f8023ce97de373b7407d
|
|
| MD5 |
92c3ce6377b0950b1d99a7110881e3ac
|
|
| BLAKE2b-256 |
9c84f441d53efefb913aaa86eb9415c42e8c2472879d42393fa2277364d599b5
|
File details
Details for the file antifile-0.1.2-py3-none-any.whl.
File metadata
- Download URL: antifile-0.1.2-py3-none-any.whl
- Upload date:
- Size: 25.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
78b04dea0ed8ca4ca16739eb5e70610d64596b0bd40b62126ed44770cf95187a
|
|
| MD5 |
6af0c7a98dbb7311d9a365da833ea960
|
|
| BLAKE2b-256 |
c8032d7d78c4dcee6613c2313f45606d3032dba88431bb22f2109f069c94b19d
|