Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

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