Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

arXiv2Conf

English 简体中文

Resolve arXiv preprints to official conference proceedings pages (ACL Anthology, CVF Open Access, OpenReview, PMLR, and more).

Search flow

flowchart LR
    A["Input<br/>arXiv URL / ID"] --> B["Fetch metadata<br/>title · comment · journal_ref"]
    B --> C{"URL in<br/>metadata?"}
    C -->|Yes| Z["Return<br/>official link"]
    C -->|No| D{"Venue<br/>hint?"}
    D -->|Yes| E["Search hinted venue<br/>e.g. CVPR → cvf"]
    E --> F{Found?}
    F -->|Yes| Z
    F -->|No| G["Sequential search"]
    D -->|No| G
    G --> V1["ACL Anthology"] --> V2["CVF"] --> V3["ECVA"] --> V4["OpenReview"] --> V5["PMLR"] --> V6["AAAI"]
    V6 --> N{Found?}
    N -->|Yes| Z
    N -->|No| O["DBLP<br/>fallback"]
    O --> P{Found?}
    P -->|Yes| Z
    P -->|No| Q["Not found"]
Loading

Install

git clone <your-repo-url>
cd arxiv2conf
pip install -e .

Requires Python 3.10+. No third-party dependencies.

Quick start

arxiv2conf https://arxiv.org/abs/2502.12134
arxiv2conf 2512.10226 --json
python -m arxiv2conf 2505.23648

In an interactive terminal, a spinner shows live progress (e.g. Searching CVPR 2026 (cvf)...). Use --json or --quiet to disable it.

Example output

✓ Found ACL 2025 via aclanthology
arXiv:       2502.12134
Title:       SoftCoT: Soft Chain-of-Thought for Efficient Reasoning with LLMs
Venue:       ACL 2025
Proceedings: https://aclanthology.org/2025.acl-long.1137/
Source:      aclanthology
Hint:        acl 2025

Python API

from arxiv2conf import resolve

result = resolve("https://arxiv.org/abs/2502.12134")
if result:
    print(result.venue, result.proceedings_url)

Batch usage

Use the batch subcommand to resolve many arXiv IDs at once and optionally export normalized BibTeX.

# One ID per line; lines starting with # are ignored
arxiv2conf batch -i arxiv_ids.txt

# JSON array + combined .bib file
arxiv2conf batch -i arxiv_ids.txt --json --bibtex-out papers.bib

# JSONL for streaming pipelines
arxiv2conf batch 2502.12134 2507.06203 --jsonl --progress

# Faster lookup without BibTeX
arxiv2conf batch -i arxiv_ids.txt --no-bibtex --json

Input file format (arxiv_ids.txt):

2502.12134
https://arxiv.org/abs/2507.06203
# comments are ignored

Default TSV output

2502.12134	ACL 2025	https://aclanthology.org/2025.acl-long.1137/
2507.06203	NOT_FOUND	A Survey on Latent Reasoning

Python API

from arxiv2conf import batch_resolve

items = batch_resolve(["2502.12134", "2507.06203"], with_bibtex=True)
for item in items:
    print(item.arxiv_id, item.status, item.venue, item.cite_key)

Use --delay SEC between papers to reduce arXiv rate limiting (default 3.0, per arXiv API guidance).

HTTP 429 (rate limited)

The arXiv API requires at least 3 seconds between requests. If you see HTTP Error 429:

  1. Wait 1–2 minutes and retry (the client backs off automatically, up to ~90s)
  2. Use the local cache: successful metadata is stored in .cache/arxiv-api/; repeat lookups skip the API
  3. Increase batch delay: arxiv2conf batch -i ids.txt --delay 5
  4. Avoid rapid repeated tests during development; reuse cached IDs

BibTeX export

Single-paper mode also supports BibTeX:

arxiv2conf 2502.12134 --bibtex
arxiv2conf 2502.12134 --bibtex-out softcot.bib
arxiv2conf 2502.12134 --json --bibtex

BibTeX is fetched from the best available source (ACL Anthology .bib, OpenReview data-bibtex, PMLR page embed, or arXiv /bibtex) and normalized to a consistent style:

  • Tab-indented fields, trailing commas, blank line between entries
  • Cite keys like xu_softcot_2025
  • arXiv-only papers become @article with journal = {arXiv preprint arXiv:...}, DOI 10.48550/arXiv....
  • Conference papers become @inproceedings with enriched booktitle, publisher, month, address, doi, url when the source BibTeX is incomplete
  • Drops noisy fields (editor, ISBN, abstract, …)

If no proceedings link is found, batch mode still emits an arXiv @article entry so your .bib file stays complete.

Supported venues

Venue Source
ACL / EMNLP / NAACL ACL Anthology
CVPR / ICCV / WACV CVF Open Access
ECCV ECVA Papers
AAAI AAAI OJS
ICLR / NeurIPS / COLM OpenReview
ICML PMLR (falls back to OpenReview)
All venues (last resort) DBLP

Venue configuration lives in data/conferences.json.

Exit codes

Code Meaning
0 Proceedings link found
1 Not found
2 Invalid input
3 Network error

Cache

ACL, CVF, ECVA, and PMLR pages are cached under .cache/ on first fetch. Repeat lookups are faster. This directory is git-ignored.

Project layout

arxiv2conf/
├── arxiv2conf/          # Python package
│   ├── cli.py           # CLI entry (resolve + batch)
│   ├── batch.py         # Batch resolver
│   ├── bibtex.py        # BibTeX fetch + normalize
│   ├── bibtex_util.py   # BibTeX parse/format helpers
│   ├── resolver.py      # Main search orchestration
│   ├── status.py        # Terminal spinner
│   └── resolvers/       # Per-venue search backends
├── data/
│   └── conferences.json # Venue registry
├── README.md            # English (default)
└── README.zh-CN.md      # 简体中文

License

MIT

About

Resolve arXiv preprints to official conference proceedings pages — ACL, CVPR, ICLR, NeurIPS, ICML, AAAI, ECCV, and more.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages