Medium-Import¶
Bibliogon importiert das gesamte Medium-Archiv, das du über "Download your information" erhältst. Jeder Beitrag wird ein Bibliogon-Artikel mit Provenienz-Metadaten und (optional) lokal heruntergeladenen Bildern.
Wann verwenden¶
- Du verlässt Medium und möchtest eine strukturierte lokale Kopie jedes Beitrags.
- Du bist auf deine eigene Publikation umgezogen und möchtest den gesamten Katalog in Bibliogon durchsuchbar haben.
- Du willst weiter in Bibliogon schreiben und parallel zu Medium spiegeln.
Archiv abholen¶
- Auf Medium Settings → Security and apps → Download your information öffnen.
- Download .zip klicken. Medium schickt den Link per E-Mail – bei kleinen Accounts in Minuten, bei großen in Stunden.
- Die ZIP-Datei lokal speichern. Nicht entpacken – Bibliogon liest die ZIP direkt.
Import durchführen¶
- Artikel in der Seitenleiste öffnen.
- Aus Medium importieren in der Werkzeugleiste klicken.
- Die dedizierte Import-Seite öffnet sich unter
/articles/import/medium. Bei Bedarf Einstellungen anpassen (siehe unten), dann die ZIP-Datei in die Upload-Zone ziehen oder per Dateidialog auswählen. Maximalgröße: 200 MB. - Import starten klicken. Der Fortschrittsbalken zeigt den Upload in Prozent; sobald der Upload abgeschlossen ist, wechselt das Panel auf eine Server-Verarbeitungsanzeige. Ein Archiv mit 200 Artikeln dauert typischerweise 30–60 Sekunden.
- Das Ergebnis erscheint darunter mit drei Bereichen: importiert, übersprungen (bereits vorhanden), Fehler. Die Titel der importierten Artikel verlinken direkt auf den Bibliogon-Artikel.
Du kannst die Seite während des Imports verlassen und später zurückkehren. Das Ergebnis-Panel geht beim Verlassen verloren – unerwartete Fehler vorher notieren.
Einstellungen¶
Die Einstellungen gelten für jeden Import; Überschreibungen pro Archiv werden nicht unterstützt.
- Bilder lokal herunterladen – empfohlen. Bibliogon speichert jedes Bild im Bibliogon-Datenverzeichnis statt das Medium-CDN zu referenzieren. Nur deaktivieren, wenn du absichtlich CDN-gehostete Bilder behalten willst.
- Timeout pro Bild-Download (Sekunden) – Standard 30. Auf langsamen Verbindungen erhöhen; bei Timeout überspringt der Importer das Bild und setzt fort.
- Bereits importierte Artikel überspringen – standardmäßig an. Erkennung erfolgt über die kanonische Medium-URL. Nur deaktivieren, wenn du ein korrigiertes Archiv erneut über ein bestehendes laufen lassen willst (siehe "Erneuter Import" unten).
- Standardstatus für importierte Artikel – Entwurf, Veröffentlicht oder Archiviert. Standard ist Veröffentlicht, da Medium-Beiträge per Definition veröffentlicht sind.
- Erstes Bild als Titelbild setzen – standardmäßig an. Das erste Bild im Beitragstext wird als Titelbild des Artikels gespeichert (
Article.featured_image_url). Beiträge ohne Bilder bleiben ohne Titelbild; kein Fehler, keine Warnung. Deaktivieren, wenn du Titelbilder manuell kuratierst.
Diese Einstellung wirkt nur auf neue Importe. Um Titelbilder rückwirkend auf bereits importierte Artikel zu setzen, das Skript scripts/fix_medium_import_featured_images.py ausführen (Dry-run als Standard; mit --apply schreiben). Artikel mit bereits gesetztem Titelbild werden übersprungen – deine manuelle Kuratierung bleibt erhalten.
Erneuter Import desselben Archivs¶
Der Importer ist idempotent über die kanonische Medium-URL. Dasselbe Archiv zweimal mit Standardeinstellungen zu importieren erzeugt keine Änderungen – jeder Beitrag landet im "Übersprungen"-Bereich. Um einen Re-Import zu erzwingen (du hast etwas am Archiv korrigiert oder willst die Bilder neu laden), vor dem erneuten Lauf Bereits importierte Artikel überspringen ausschalten.
Was pro Beitrag importiert wird¶
- Titel, Untertitel (Medium-"Kicker"), Veröffentlichungsdatum, kanonische URL.
- SEO-Standardwerte.
seo_titlewird auf den Artikeltitel gesetzt;seo_descriptionauf den Medium-Untertitel, sofern vorhanden. Tags bleiben leer (Mediums HTML-Export liefert keine). Alle drei Felder sind im Editor bearbeitbar; der bestehende AI-Generieren-Button ist der Weg zur Verfeinerung. Bei Artikeln ohne Untertitel bleibtseo_descriptionbewusst leer — keine Heuristik-Rätselei aus dem Body-Text. - Inhalt, von Medium-HTML in TipTap-JSON (Bibliogons Editor-Format) konvertiert.
- Veröffentlichungsdatum. Das ursprüngliche Medium-Veröffentlichungsdatum wird beim Import erfasst und in der Publication-Zeile des Artikels gespeichert. Die Dashboard-Kachel und die Artikelansicht zeigen es als Datum des Artikels an (bevorzugt gegenüber
updated_at), sodass ein 2020 veröffentlichter Medium-Artikel "Feb. 2020" anzeigt – nicht den Import-Zeitstempel. Native Bibliogon-Artikel ohne Publication behalten ihreupdated_at-Anzeige. - Sprache, automatisch aus dem Beitragstext erkannt mittels
langdetect. Medium-HTML enthält keine Sprachangabe, daher erfolgt die Erkennung statistisch über den Beitragstext. Sichere Erkennungen (≥0,85) werden inArticle.languagegespeichert; mehrdeutige oder sehr kurze Beiträge fallen aufdefault_language("en") zurück. Du kannst die Sprache jedes Artikels im Editor ändern; ein erneuter Import überschreibt manuelle Änderungen nicht. - Bilder, lokal gespeichert, wenn die Einstellung aktiv ist. Bildreferenzen im Beitragstext werden auf die lokalen Kopien umgeschrieben.
- Provenienz: Ein
ArticleImportSource-Eintrag speichert den Namen der Quell-ZIP und den ursprünglichen HTML-Dateinamen darin. Nützlich, um einen Artikel auf seinen Medium-Ursprung zurückzuführen. - Publikationszugehörigkeit: Eine
Publicationwird für jede im Archiv referenzierte Medium-Publikation angelegt (oder gematcht), und der Artikel wird damit verknüpft.
Um die Sprache rückwirkend für vor dem Feature importierte Artikel zu erkennen, das Skript scripts/fix_medium_import_language.py ausführen (Dry-run als Standard; mit --apply schreiben). Manuell korrigierte Zeilen werden übersprungen – das Skript fasst nur Zeilen an, die noch auf dem historischen "en"-Default stehen.
Um seo_title und seo_description rückwirkend für vor Commit 2062393 importierte Artikel zu setzen, das Skript scripts/fix_medium_import_seo.py ausführen (Dry-run als Standard; mit --apply schreiben). Das Skript füllt seo_title aus title und seo_description aus subtitle nur dort, wo das Feld aktuell leer ist – manuelle Bearbeitungen bleiben erhalten.
Was NICHT importiert wird¶
Der HTML-Export von Medium enthält nur Daten, die du selbst erzeugt hast — deine Beiträge, deine Claps, deine Antworten auf Artikel anderer, deine Bookmarks. Per Design nicht enthalten:
- Kommentare, die andere unter deine Artikel
geschrieben haben. Das sind Plattform-Interaktionen,
die den Kommentierenden gehören; sie zählen nicht zu
"deinen Daten" im Sinne des Medium-Exports. Die
"Wow, sehr beeindruckend"-Antwort, die jemand unter
deinen Artikel geschrieben hat, ist nicht im ZIP.
Wenn du Antworten auf deine Artikel archivieren
willst, müsstest du sie manuell erfassen, bevor sie
auf Medium altern; siehe Backlog-Eintrag
MEDIUM-COMMENT-MANUAL-ENTRY-01für einen künftigen manuellen Eingabe-Workflow.
Hinweis: deine EIGENEN Antworten auf fremde Artikel
SIND im Export (unter posts/ wie jeder andere
Beitrag). Diese werden von der Heuristik in die
Tabelle article_comments einsortiert, wenn
import_comments_mode=as_comments gesetzt ist.
- Entwürfe, die nie auf Medium veröffentlicht wurden (Medium nimmt sie nicht ins Archiv auf).
- Claps, Follower-Listen, Statistiken.
- Eigenes CSS oder Formatierungen, die Medium über Inline-Styles außerhalb des Body-Elements behandelt.
- Member-only-Paywall-Flags. Alle importierten Artikel erhalten den gewählten Standardstatus; Medium-spezifische Paywall-Metadaten werden nicht übernommen.
Fehlersuche¶
- "Datei zu groß"-Fehler: Das Frontend lehnt ZIPs über 200 MB hart ab. Für größere Archive entpacken und in Batches neu zippen (jeder ZIP wird unabhängig verarbeitet).
- Ein Artikel landet unter "Fehler" mit einem Parse-Fehler: Das Post-HTML im Archiv ist defekt (ein bekannter Edge-Case bei sehr alten Medium-Beiträgen). Die Fehlermeldung nennt die betreffende Datei. Die übrigen Beiträge sind nicht betroffen.
- Bilder wurden nicht heruntergeladen: Prüfen, ob Bilder lokal herunterladen an ist und der Timeout pro Bild für deine Verbindung nicht zu niedrig liegt. Artikel werden auch dann erfolgreich importiert, wenn einzelne Bilder fehlschlagen; Bildfehler erscheinen als Warnungen auf der importierten Zeile.
- Server-Verarbeitung dauert deutlich länger als 60 Sekunden: Große Archive mit Bilddownloads können mehrere Minuten laufen. Die Verarbeitungsphase zeigt einen unbestimmten Balken – Seite offen lassen. Den Browser-Tab zu schließen bricht den Import ab.
Einstellungs-Karte unter Settings → Plugins¶
Die Karte unter Settings → Plugins → Medium-Import zeigt einen Verweis-Button auf diese Seite. Einstellungen sind im Settings-Tab nicht editierbar; die dedizierte Seite ist die einzige Quelle der Wahrheit.