Files
2026-05-20 12:27:01 +02:00

2.2 KiB
Raw Permalink Blame History

doi2ris

Python-Skript, das eine Liste von Literaturquellen einliest, DOIs extrahiert, bibliographische Metadaten via Crossref (Fallback DataCite) ergänzt und eine Zotero-kompatible .ris-Datei erzeugt.

Voraussetzungen

pip install requests

Verwendung

python doi2ris.py quellen.txt -o bibliothek.ris --email du@example.com --workers 8

Argumente

Argument Beschreibung
input Eingabedatei, eine Quelle pro Zeile
-o/--output RIS-Ausgabepfad (Default library.ris)
--email Mailadresse für Crossref Polite-Pool (empfohlen, beschleunigt Antworten)
--workers Anzahl paralleler Requests (Default 8)
--cache JSON-Cache, damit Wiederholungsläufe instantan laufen
--unresolved Logdatei für Zeilen ohne erfolgreiche Auflösung
-v/--verbose Debug-Logging

Eingabeformate

Pro Zeile beliebig — das Skript zieht via Regex die DOI heraus:

10.1038/s41586-020-2649-2
https://doi.org/10.1109/5.771073
Coble, R. L. (1961). Sintering crystalline solids ... doi:10.1063/1.1736107
@article{smith2020, doi = {10.1000/xyz123}, ...}

Zeilen ohne DOI werden per Crossref-Titelsuche aufgelöst (Top-Treffer ab Score 40). Klappt das nicht, landet die Zeile in unresolved.txt.

Zotero-Import

In Zotero: Datei → Importieren … → RIS-Datei wählen. Die Felder werden korrekt gemappt (Autor:innen, Journal, Band/Heft, Seiten, DOI, Abstract, Schlagwörter, ISSN/ISBN, URL).

Hinweise

  • Crossref erlaubt großzügige Anfragen, im Polite-Pool (mit --email) bekommt man bevorzugte Antwortzeiten. Auch ohne Mail funktioniert es.
  • 5-fach Retry mit exponentiellem Backoff für HTTP 429/5xx ist eingebaut.
  • Der lokale .doi_cache.json macht erneute Läufe verlustfrei reproduzierbar.
  • Bei 107 Einträgen läuft das Skript typischerweise in 3060 Sekunden durch.