Maschinenübersetzung
Diese Seite wurde automatisch von KI übersetzt und kann Fehler enthalten. Bei Unklarheiten konsultieren Sie die englische Quelle.
pplx-export¶
pplx-export ist die Archiver-CLI: Sie ruft Konversationsindizes von Perplexity ab, exportiert Threads in das lokale Archiv und pflegt die abgeleiteten Ansichten (Space-Index, Cron-Snippet). Diese Seite behandelt die Erfassungsseitigen Unterbefehle — index, space-index, export, batch, spaces, sync-space, schedule — sowie den einmaligen Einrichtungsbefehl init. Die Unterbefehle für Backfill/Reparatur befinden sich in maintenance-commands.md; die Abfrage-CLI wird in pplx-ask.md behandelt.
a. Gemeinsame Optionen¶
Jeder Unterbefehl akzeptiert diese Flags (einmalig in pplx_export/commands/common.py definiert):
| Flag | Bedeutung | Standard |
|---|---|---|
--account NAME |
Zielkonto. Wenn die E-Mail des Cookies nicht mit der registrierten E-Mail übereinstimmt, werden pro-Konto Browser-Sitzungstoken aufgezählt, um automatisch zu wechseln | default_account aus der Benutzerkonfiguration |
--config PATH |
Benutzerkonfigurationsdatei (Kontoregister). Priorität: --config > Umgebungsvariable PPLX_EXPORT_CONFIG > ~/.config/pplx-export/config.toml |
Standard-Suchkette |
--skip-auth-check |
Überspringe die Start-Kontozuordnungs-Sitzungsprüfung und vertraue dem aktuellen Login, um eine lange Startwartezeit bei schlechtem Netzwerk zu vermeiden; batch führt eine verzögerte Kontoprüfung durch, wenn sich Fehler ansammeln — siehe Konfiguration |
aus |
--site NAME |
Site-Adapter | perplexity |
--out DIR |
Archiv-Ausgabeverzeichnis | --out > Konfiguration archive_root > ./web_archive |
--cookies-from BROWSER |
Cookies aus einem Browser importieren (edge/chrome/firefox/safari/brave…) |
— |
--cookies FILE |
Netscape-Cookie-Datei oder JSON-Cookie-Datei | — |
--transport MODE |
cookie = Cookie-direkte Anfragen; webbridge = Abruf im Browser-Seitenkontext |
cookie |
-v, --verbose |
DEBUG-Ausgabe (Anforderungsspuren, interne Entscheidungen); wiederholbar | aus |
--log-file [PATH] |
Schreibe das vollständige Log auf die Festplatte; ohne Wert, automatischer Pfad <out>/index/logs/<cmd>-<timestamp>.log |
aus |
--cookies-from/--cookiesschließen sich gegenseitig mit--transport webbridgeaus — die Brücke läuft im Seitenkontext und trägt bereits die Browser-Cookies.pplx-export --versiongibt die Paketversion aus und beendet sich (nur auf oberster Ebene, kein Unterbefehls-Flag).- Kontoregistrierung, Cookie-Quellen und Multi-Konto-Wechsel: configuration.md. Wo alles auf der Festplatte landet: archive-layout.md.
b. init¶
Konten aus Browser-Cookies erkennen und die Benutzerkonfiguration schreiben — die automatische Alternative zum manuellen Kopieren von config.example.toml (siehe configuration.md).
| Flag | Bedeutung | Standard |
|---|---|---|
--force |
Vorhandene Konfigurationsdatei überschreiben | aus (weigert sich zu überschreiben) |
--create-bot-space [TITLE] |
Erstelle den BOT-Space über die API, wenn kein Space-Titel übereinstimmt (ein Schreibvorgang auf dem Konto); ein expliziter TITLE steuert sowohl das Matching als auch die Erstellung, andernfalls stammt der Titel von --bot-title; ohne dieses Flag wird [bot_space] leer geschrieben |
aus |
--bot-title TITLE |
Space-Titel, der sowohl zum Abgleichen eines vorhandenen Spaces als auch zur Benennung eines erstellten verwendet wird | BOT |
| (Gemeinsame Optionen gelten) | Cookie-Quellen-Flags bestimmen, wo Konten erkannt werden; nur für init ist --config der Schreib-Pfad (das strenge Konfigurationsladen wird übersprungen) |
Wichtige Verhaltensweisen:
- Token-Aufzählung: Pro-Konto Sitzungs-Cookies (
__Secure-pplx.session.<uid>) werden aus den Browser-Speichern gesammelt — oder, mit--cookies FILE, aus der Cookie-Datei gescannt (ein vollständiger Export kann mehrere Konten enthalten). Ohne aufzählbare Token wird nur die aktuell aktive Sitzung geprüft. - Sitzungsprüfung: Jeder Token wird gegen
GET /api/auth/sessionversucht, um die E-Mail / den Anzeigenamen des Kontos zu erfahren; Token, die fehlschlagen oder keine E-Mail zurückgeben, werden mit einer Warnung übersprungen. - Registerzusammenstellung: Jeder Kontoschlüssel wird aus dem lokalen Teil der E-Mail abgeleitet (Kollisionen erhalten
-2/-3… Suffixe);default_accountwird auf das aktuell aktive Konto gesetzt, andernfalls auf das zuerst entdeckte. - BOT-Space: Ein Space wird durch exakten Titel (Groß-/Kleinschreibung nicht beachtet) über
list_user_collectionsabgeglichen; wenn nichts übereinstimmt, erstellt--create-bot-space [TITLE]ihn sofort (ein expliziter TITLE überschreibt--bot-titlesowohl für das Matching als auch für die Erstellung), andernfalls wird[bot_space]leer gelassen. - Das TOML wird atomar geschrieben (temporäre Datei + Umbenennung) mit 0600-Berechtigungen, und eine vorhandene Datei wird niemals ohne
--forceüberschrieben. Der Befehl endet mit einer zusammenfassenden JSON-Zeile: Konfigurationspfad, Kontoschlüssel, Standardkonto, BOT-Space-UUID/Slug. - Modell-Seeding (bestmöglich): Nach dem Schreiben der Konfiguration ruft
initmodels/config/v2ab und befüllt die maschinenverwaltete[models]-Tabelle, sodass eine frische Konfiguration bereits die aktuellen Modellvorgaben/Katalog enthält; bei Fehlschlag wird es mit einer Warnung übersprungen (später mitpplx-ask models --refreshaktualisieren). Siehe Konfiguration. --transport webbridgewird abgelehnt — der Seitenkontext-Kanal kann keine Pro-Konto-Token aufzählen.
pplx-export init # write the default ~/.config/pplx-export/config.toml
pplx-export init --create-bot-space [TITLE] # create the BOT space when no title matches (custom title optional)
pplx-export init --config /path/to/config.toml --force # custom path, overwrite allowed
c. index¶
Aktualisiere den Konversationslistenindex des Kontos index/library_<account>.json — die Basis, gegen die jeder andere Befehl abgleicht.
| Flag | Bedeutung | Standard |
|---|---|---|
--full |
Durchblättere die gesamte Bibliothek und überschreibe den Index; setzt den inkrementellen Zähler zurück | inkrementell |
Wichtige Verhaltensweisen:
- Standardmäßig inkrementell. Es blättert neueste zuerst und stoppt, sobald eine vollständige Seite (
_STOP_RUN) aufeinanderfolgender Zeilen bereits bekannt und unverändert ist, dann führt es den abgerufenen Kopf mit dem vorhandenen Index zusammen — ältere Zeilen werden wörtlich übernommen (kein Verlust). Der erste Durchlauf oder jeder Durchlauf ohne vorhandenen Index ist ein vollständiger Durchlauf. --fullblättert alles durch und überschreibt den Index; verwenden Sie es als periodisches Frontend für die Abgleichung.- Blinder Fleck des inkrementellen Pfads: Remote Löschungen und Space-Änderungen älterer Threads erscheinen nie im abgerufenen Kopf und werden daher nicht beobachtet. Die Löschautorität bleibt bei
sync-deleted --online. Das Indexdokument verfolgtincremental_runs_since_full; nach genügend inkrementellen Durchläufen warnt es Sie,--full(undsync-deleted --online) auszuführen. - Bewahrt die von
search_modegeschriebenesearch-mode-backfill-Anreicherung, die vonentryUUIDzurückgeführt wird. - Führen Sie es vor
batch,sync-spaceundsync-deletedaus — ihre Abgleiche sind nur so aktuell wie dieser Index.
pplx-export index --account alice # incremental refresh
pplx-export index --account alice --full # full sweep + reconciliation front-end
d. sync¶
Hochfrequenter Komforteinstieg: inkrementelles index + inkrementelles batch, nur auf Konversationen fokussiert.
| Flag | Bedeutung | Standard |
|---|---|---|
--full |
Vollständige Abgleichung: vollständiger index + vollständiger batch-Durchlauf (und führt die Lösch-/Space-Schritte unten aus) |
aus |
--check-deleted |
Führe auch sync-deleted --online aus, um remote gelöschte Threads zu überprüfen und zu markieren |
aus |
--refresh-spaces |
Baue auch spaces --fetch-meta neu auf und führe sync-space aus |
aus |
--limit N / --mode X / --delay-min / --delay-max |
Werden an die batch-Phase durchgereicht |
— |
Wichtige Verhaltensweisen:
- Standardlauf ruft nur neue/aktualisierte Konversationen ab und überspringt Löscherkennung und Space-Aktualisierung — die günstigste Form für häufige Synchronisation.
- Lösch-/Space-Abgleichung ist optional (
--check-deleted/--refresh-spaces) oder wird durch--fullgebündelt. Derindex-Zähler (incremental_runs_since_full) ist die Absicherung: Er erinnert Sie, wenn eine--full-Abgleichung überfällig ist.
pplx-export sync --account alice # conversations only (fast)
pplx-export sync --account alice --full # periodic full reconciliation
pplx-export sync --account alice --check-deleted # also mark remote deletions
e. space-index¶
Extrahiere die "Alle"-Konversationsliste eines Spaces — einschließlich von anderen Mitgliedern geteilter Threads — in index/space_<slug>.json.
| Flag | Bedeutung | Standard |
|---|---|---|
SPACE_URL (positionsabhängig) |
Space-Seiten-URL | erforderlich |
--transport webbridge |
Verwende den Legacy-Browser-Rendering-Pfad anstelle von REST | cookie (REST direkt) |
Wichtige Verhaltensweisen:
- Standardpfad ist REST direkt:
list_collection_threadsüber den Cookie-Transport mit Offset-Paginierung; Zeilen enthaltencontext_uuidundanswer_preview. - Mit
--transport webbridgefällt es zurück auf das Scrollen der gerenderten Space-Seite und das Auslesen von Zeilen-Eigenschaften — eine Sicherung für den Fall, dass sich die REST-Struktur ändert. - Zeilen werden neueste zuerst von
lastUpdatedgeschrieben.
pplx-export space-index "https://www.perplexity.ai/spaces/<space-slug>" --account alice
f. export¶
Exportiere einen einzelnen Thread (URL oder bare UUID) in sein Archivverzeichnis <out>/<account-folder>/<mode>/<thread-dir>/.
| Flag | Bedeutung | Standard |
|---|---|---|
THREAD (positionsabhängig) |
Thread-URL oder UUID | erforderlich |
--force |
Erneut exportieren, auch wenn lastUpdated unverändert ist |
aus |
Wichtige Verhaltensweisen:
- Wenn die archivierte Kopie bereits aktuell ist, wird der Export ohne Schreibvorgänge übersprungen;
--forceüberschreibt die Prüfung. lastUpdatedwird aus dem lokalen Bibliotheksindex entnommen, wenn der Thread dort aufgeführt ist (gleiche Semantik und Format wiebatch), andernfalls auf den Plattformwert zurückgegriffen.- Terminalzustände werden ordentlich registriert, ohne Traceback:
ENTRY_DELETEDmarkiertdeletedinbatch_state.json,ENTRY_EXPIREDmarkiertexpired— das vorhandene lokale Archiv wird in beiden Fällen unberührt gelassen. - Ein erfolgreicher Export schreibt
okinindex/batch_state.json, sodass der inkrementelle Plan den Thread als "exportiert und unverändert" zählt. - Was im Thread-Verzeichnis landet: archive-layout.md; die Export-Pipeline selbst: ../architecture/export-pipeline.md.
pplx-export export "https://www.perplexity.ai/search/<thread-uuid>" --account alice
g. batch¶
Massenexport der Threads eines Kontos — der tägliche Treiber, mit inkrementellem frühen Stopp und fortsetzbaren Prüfpunkten.
| Flag | Bedeutung | Standard |
|---|---|---|
--force |
Alle Threads erneut exportieren (Terminalzustände ausgeschlossen) | aus |
--full |
Vollständiger Scan: unveränderte Threads werden dennoch übersprungen, aber kein früher Stopp | aus |
--limit N |
Verarbeite nur die ersten N Zeilen der Liste (neueste zuerst) | alle |
--mode MODE |
Exportiere nur search / deep-research / computer / council / study-Threads |
alle Modi |
--delay-min SEC |
Untere Grenze des zufälligen Intervalls zwischen Threads | 10 |
--delay-max SEC |
Obere Grenze des zufälligen Intervalls zwischen Threads | 20 |
Wichtige Verhaltensweisen:
- Erfordert
index/library_<account>.json— führen Sie zuerstindexaus. - Standard inkrementeller früher Stopp: Die Liste wird neueste zuerst sortiert und der nachlaufende Block von "exportiert und unverändert"-Threads wird vollständig abgeschnitten; Lücken, die durch unterbrochene Läufe (Fehler/nie exportiert) entstanden sind, liegen oberhalb dieses Suffixes und werden dennoch repariert.
--fulldeaktiviert den frühen Stopp (periodische Absicherung oder wenn Archivlücken vermutet werden);--forceexportiert alles außer Terminalzuständen erneut, die nie wiederholt werden. Vollständige Semantik: incremental-sync.md. --mode-Filterung: Zeilen, diesearch_modetragen (das plattformautoritative Feld, angereichert durchsearch-mode-backfill), stimmen exakt überSEARCH_MODE_MAPüberein — auf diesem Pfad zieht--mode searchkeine Deep-Research/Council/Study-Threads mehr herein. Zeilen ohnesearch_modefallen auf Index-Heuristiken zurück:computer= ModusCOMPUTER;deep-research= displayModelpplx_alpha;council=pplx_agentic_research;study=pplx_study;search= die verbleibenden Modus-SEARCH-Zeilen (einschließlich dieser drei Arten — filtern Sie sie genau aus, indem Sie die spezifischen Modi separat exportieren).- Der Zustand wird nach jedem Thread in
index/batch_state.jsongespeichert — unterbrechen und erneut ausführen nach Belieben. - Auth-Fail-Fast: 3 aufeinanderfolgende 401/403-Antworten brechen den Lauf ab (ein abgelaufenes Cookie kann sich nicht selbst heilen, und das Durchlaufen würde Hunderte von Threads einzeln zum Scheitern bringen).
- Taktung: Eine zufällige
--delay-min–--delay-max-Pause zwischen Threads; 429/5xx werden von der Transportschicht zurückgefahren. Details: rate-limiting.md. - Threads, die auf umgeschriebene Antwortvarianten stoßen, werden in
index/answer_variants_log.jsonlmit einer Warnung registriert, sie so bald wie möglich manuell zu behandeln (siehe ../reference/api/api-responses-errors.md).
pplx-export batch --account bob --mode deep-research --limit 50
h. spaces¶
Baue den Space-Ansichtsindex neu auf — eine Markdown-Seite pro Space plus ein spaces.json-Register — aus den lokalen Bibliotheksindizes.
| Flag | Bedeutung | Standard |
|---|---|---|
--fetch-meta |
Aktualisiere Besitzer/Mitglieder-Metadaten vor dem Neubau | aus |
Wichtige Verhaltensweisen:
- Ohne
--fetch-metaist der Befehl rein lokal (kein Netzwerk): Er aggregiert Threads pro Space-Slug über allelibrary_*.json-Dateien, mit Statistiken der teilnehmenden Konten und Backlinks zu den exportierten Thread-Verzeichnissen. - Die Ausgabe erfolgt in
./spaces/relativ zum aktuellen Arbeitsverzeichnis — führen Sie es aus dem Verzeichnis aus, dasweb_archive/enthält, damit die Backlinks in den Space-Seiten aufgelöst werden. --fetch-metaaktualisiert zuerst den Besitzer/Mitglieder-Cache jedes Spaces überget_collection(1 Anfrage pro Space, 3s Intervall) inindex/space_meta.json; wenn das aktuelle Konto einen Space nicht sehen kann, wird automatisch ein Konto, das dies kann, erneut versucht (Cookies wechseln von selbst).
pplx-export spaces --fetch-meta --account alice
i. sync-space¶
Synchronisiere das space-Feld bereits archivierter thread.json-Dateien mit dem aktuellen Index — rein lokal, kein Netzwerk.
| Flag | Bedeutung | Standard |
|---|---|---|
(nur gemeinsame Optionen; nur --out ist relevant) |
Wichtige Verhaltensweisen:
- Voraussetzung: Führen Sie zuerst
indexaus — der aktualisiertelibrary_*.jsonist die Quelle der Wahrheit für die aktuelle Space-Zugehörigkeit. - Vergleicht Space-Slugs pro Thread und patcht
thread.jsonbei Abweichungen direkt; die ersten 30 Änderungen werden protokolliert. - Nach jeder Änderung wird der
spaces/-Index automatisch neu aufgebaut.
pplx-export index --account alice && pplx-export sync-space
j. schedule¶
Berechne den inkrementellen Exportplan für diese Runde und schreibe ein Cron-Snippet, das der System-Cron direkt aufrufen kann.
| Flag | Bedeutung | Standard |
|---|---|---|
| (nur gemeinsame Optionen) |
Wichtige Verhaltensweisen:
- Ruft einen Live-Index ab und meldet den Plan als Gesamt-/Neu-/Aktualisiert-Zahlen, unter Verwendung derselben Early-Stop-Reinfunktion (
plan_incremental) wiebatch— siehe incremental-sync.md. - Schreibt
<out>/index/cron_snippet.txt, das eine17 3 * * *-Zeile der Formcd '<archive-parent>' && '<abs-path-to-pplx-export>' batch --account '<account>' --out '<abs-archive-root>'enthält — Pfade sind absolut und in Anführungszeichen, da cwd und PATH von cron unvorhersehbar sind. Der ausführbare Pfad wird übershutil.whichaufgelöst; wenn dies fehlschlägt, fällt das Snippet auf den bloßenpplx-export-Namen zurück. - Geplante Läufe sind standardmäßig nur inkrementell; führen Sie
batch --fullmanuell als periodische Absicherung aus.
pplx-export schedule --account alice