Машинный перевод
Эта страница была автоматически переведена ИИ и может содержать ошибки. Если что-то неясно, обращайтесь к английскому источнику.
pplx-export¶
pplx-export — это CLI-архиватор: он извлекает индексы бесед из Perplexity, экспортирует треды в локальный архив и поддерживает производные представления (индекс пространства, фрагмент cron). Эта страница охватывает подкоманды захвата — index, space-index, export, batch, spaces, sync-space, schedule — а также одноразовую команду настройки init. Подкоманды обратного заполнения/восстановления находятся в maintenance-commands.md; CLI запросов описан в pplx-ask.md.
a. Общие параметры¶
Каждая подкоманда принимает эти флаги (определены один раз в pplx_export/commands/common.py):
| Флаг | Значение | По умолчанию |
|---|---|---|
--account NAME |
Целевая учетная запись. Когда email из cookie не совпадает с зарегистрированным email, перечисляются токены сеанса браузера для каждой учетной записи для автоматического переключения | default_account из конфигурации пользователя |
--config PATH |
Файл конфигурации пользователя (реестр учетных записей). Приоритет: --config > env PPLX_EXPORT_CONFIG > ~/.config/pplx-export/config.toml |
цепочка поиска по умолчанию |
--skip-auth-check |
Пропустить начальный зонд сеанса атрибуции учетной записи и доверять текущему входу, избегая длительного ожидания запуска при плохой сети; batch выполняет отложенную проверку учетной записи, если накапливаются ошибки — см. Configuration |
выкл |
--site NAME |
Адаптер сайта | perplexity |
--out DIR |
Корень вывода архива | --out > config archive_root > ./web_archive |
--cookies-from BROWSER |
Импортировать куки из браузера (edge/chrome/firefox/safari/brave…) |
— |
--cookies FILE |
Файл куки в формате Netscape или JSON | — |
--transport MODE |
cookie = запросы напрямую через куки; webbridge = выборка в контексте страницы браузера |
cookie |
-v, --verbose |
Вывод DEBUG (трассировка запросов, внутренние решения); повторяемый | выкл |
--log-file [PATH] |
Записать полный журнал на диск; без значения автоматический путь <out>/index/logs/<cmd>-<timestamp>.log |
выкл |
--cookies-from/--cookiesвзаимно исключают--transport webbridge— мост работает в контексте страницы и уже несет куки браузера.pplx-export --versionвыводит версию пакета и завершает работу (только верхний уровень, не флаг подкоманды).- Регистрация учетной записи, источники куки и переключение между несколькими учетными записями: configuration.md. Где все сохраняется на диске: archive-layout.md.
b. init¶
Обнаружить учетные записи из куки браузера и записать конфигурацию пользователя — автоматическая альтернатива ручному копированию config.example.toml (см. configuration.md).
| Флаг | Значение | По умолчанию |
|---|---|---|
--force |
Перезаписать существующий файл конфигурации | выкл (отказывается перезаписывать) |
--create-bot-space [TITLE] |
Создать пространство BOT через API, когда ни одно название пространства не совпадает (операция записи в учетную запись); явный TITLE управляет как сопоставлением, так и созданием, иначе название берется из --bot-title; без этого флага [bot_space] записывается пустым |
выкл |
--bot-title TITLE |
Название пространства, используемое как для сопоставления существующего пространства, так и для именования созданного | BOT |
| (применяются общие параметры) | Флаги источника куки определяют, где обнаруживаются учетные записи; только для init, --config — это путь записи (строгая загрузка конфигурации пропускается) |
Ключевые особенности:
- Перечисление токенов: куки сеанса для каждой учетной записи (
__Secure-pplx.session.<uid>) собираются из хранилищ браузера — или, с--cookies FILE, сканируются из файла куки (полный экспорт может содержать несколько учетных записей). Если нет перечисляемых токенов, проверяется только текущий активный сеанс. - Зонд сеанса: каждый токен проверяется на
GET /api/auth/session, чтобы узнать email / отображаемое имя учетной записи; токены, которые не проходят проверку или не возвращают email, пропускаются с предупреждением. - Сборка реестра: ключ каждой учетной записи формируется из локальной части email (коллизии получают суффиксы
-2/-3…);default_accountустанавливается на текущую активную учетную запись, иначе на первую обнаруженную. - Пространство BOT: пространство сопоставляется по точному названию (без учета регистра) через
list_user_collections; если ничего не совпадает,--create-bot-space [TITLE]создает его на месте (явный TITLE переопределяет--bot-titleкак для сопоставления, так и для создания), иначе[bot_space]остается пустым. - TOML записывается атомарно (временный файл + переименование) с правами 0600, и существующий файл никогда не перезаписывается без
--force. Команда завершается строкой JSON сводки: путь к конфигурации, ключи учетных записей, учетная запись по умолчанию, uuid/slug пространства BOT. - Заполнение моделей (по возможности): после записи конфигурации
initполучаетmodels/config/v2и заполняет управляемую машиной таблицу[models], чтобы свежая конфигурация уже содержала текущие модели по умолчанию/каталог; при сбое пропускается с предупреждением (обновить позже сpplx-ask models --refresh). См. Configuration. --transport webbridgeотклоняется — канал контекста страницы не может перечислять токены для каждой учетной записи.
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¶
Обновить индекс списка бесед учетной записи index/library_<account>.json — базовый уровень, с которым сравнивается каждая другая команда.
| Флаг | Значение | По умолчанию |
|---|---|---|
--full |
Пролистать всю библиотеку и перезаписать индекс; сбрасывает инкрементальный счетчик | инкрементально |
Ключевые особенности:
- Инкрементально по умолчанию. Пролистывает сначала новые и останавливается, когда полная страница (
_STOP_RUN) последовательных строк уже известна и не изменена, затем объединяет полученную голову с существующим индексом — старые строки переносятся дословно (без потерь). Первый запуск или любой запуск без существующего индекса — полный проход. --fullпролистывает все и перезаписывает индекс; используйте его как периодический интерфейс сверки.- Слепое пятно инкрементального пути: удаленные удаления и изменения пространства старых тредов никогда не появляются в полученной голове, поэтому они не наблюдаются. Авторитет удаления остается за
sync-deleted --online. Документ индекса отслеживаетincremental_runs_since_full; после достаточного количества инкрементальных запусков он предупреждает вас о необходимости запустить--full(иsync-deleted --online). - Сохраняет обогащение
search_mode, записанноеsearch-mode-backfill, объединенное обратноentryUUID. - Запустите его перед
batch,sync-spaceиsync-deleted— их различия актуальны настолько, насколько свеж этот индекс.
pplx-export index --account alice # incremental refresh
pplx-export index --account alice --full # full sweep + reconciliation front-end
d. sync¶
Высокочастотная удобная точка входа: инкрементальный index + инкрементальный batch, ориентированный только на беседы.
| Флаг | Значение | По умолчанию |
|---|---|---|
--full |
Полная сверка: полный проход index + полный batch (и выполняет шаги удаления/пространства ниже) |
выкл |
--check-deleted |
Также запустить sync-deleted --online для проверки и пометки удаленных на сервере тредов |
выкл |
--refresh-spaces |
Также перестроить spaces --fetch-meta и запустить sync-space |
выкл |
--limit N / --mode X / --delay-min / --delay-max |
Передаются в фазу batch |
— |
Ключевые особенности:
- Запуск по умолчанию получает только новые/обновленные беседы и пропускает обнаружение удалений и обновление пространства — самая дешевая форма для частой синхронизации.
- Сверка удалений/пространства включается по желанию (
--check-deleted/--refresh-spaces) или объединяется--full. Счетчикindex(incremental_runs_since_full) является предохранителем: он напоминает вам, когда сверка--fullпросрочена.
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¶
Извлечь список бесед "Все" одного пространства — включая треды, опубликованные другими участниками — в index/space_<slug>.json.
| Флаг | Значение | По умолчанию |
|---|---|---|
SPACE_URL (позиционный) |
URL страницы пространства | обязательно |
--transport webbridge |
Использовать устаревший путь рендеринга браузера вместо REST | cookie (REST напрямую) |
Ключевые особенности:
- Путь по умолчанию — REST напрямую:
list_collection_threadsчерез транспорт куки с постраничной навигацией по смещению; строки включаютcontext_uuidиanswer_preview. - С
--transport webbridgeон возвращается к прокрутке отрисованной страницы пространства и извлечению свойств строк — резервный вариант на случай изменения структуры REST. - Строки записываются сначала новые по
lastUpdated.
pplx-export space-index "https://www.perplexity.ai/spaces/<space-slug>" --account alice
f. export¶
Экспортировать один тред (URL или голый UUID) в его каталог архива <out>/<account-folder>/<mode>/<thread-dir>/.
| Флаг | Значение | По умолчанию |
|---|---|---|
THREAD (позиционный) |
URL треда или UUID | обязательно |
--force |
Повторный экспорт, даже если lastUpdated не изменился |
выкл |
Ключевые особенности:
- Если архивная копия уже актуальна, экспорт пропускается без записи;
--forceпереопределяет проверку. lastUpdatedберется из локального индекса библиотеки, если тред там указан (те же семантика и формат, что иbatch), иначе используется значение платформы.- Конечные состояния регистрируются корректно, без traceback:
ENTRY_DELETEDпомечаетdeletedвbatch_state.json,ENTRY_EXPIREDпомечаетexpired— существующий локальный архив в любом случае остается нетронутым. - Успешный экспорт записывает
okвindex/batch_state.json, поэтому инкрементальный план считает тред "экспортированным и неизменным". - Что попадает в каталог треда: archive-layout.md; конвейер экспорта: ../architecture/export-pipeline.md.
pplx-export export "https://www.perplexity.ai/search/<thread-uuid>" --account alice
g. batch¶
Массовый экспорт тредов учетной записи — ежедневный драйвер, с инкрементальной ранней остановкой и возобновляемыми контрольными точками.
| Флаг | Значение | По умолчанию |
|---|---|---|
--force |
Повторный экспорт всех тредов (исключая конечные состояния) | выкл |
--full |
Полное сканирование: неизмененные треды все равно пропускаются, но без ранней остановки | выкл |
--limit N |
Обработать только первые N строк списка (сначала новые) | все |
--mode MODE |
Экспортировать только треды search / deep-research / computer / council / study |
все режимы |
--delay-min SEC |
Нижняя граница случайного интервала между тредами | 10 |
--delay-max SEC |
Верхняя граница случайного интервала между тредами | 20 |
Ключевые особенности:
- Требует
index/library_<account>.json— сначала запуститеindex. - Инкрементальная ранняя остановка по умолчанию: список сортируется сначала новые, и хвостовой прогон "экспортированных и неизменных" тредов обрезается целиком; пробелы, оставленные прерванными запусками (ошибка/никогда не экспортирован), находятся выше этого суффикса и все равно исправляются.
--fullотключает раннюю остановку (периодический предохранитель или при подозрении на пробелы в архиве);--forceповторно экспортирует все, кроме конечных состояний, которые никогда не повторяются. Полная семантика: incremental-sync.md. - Фильтрация
--mode: строки, несущиеsearch_mode(авторитетное поле платформы, обогащенноеsearch-mode-backfill), сопоставляются точно черезSEARCH_MODE_MAP— на этом пути--mode searchбольше не подтягивает треды deep-research/council/study. Строки безsearch_modeвозвращаются к эвристикам индекса:computer= режимCOMPUTER;deep-research= displayModelpplx_alpha;council=pplx_agentic_research;study=pplx_study;search= оставшиеся строки режима-SEARCH(включая эти три вида — отфильтруйте их точно, экспортируя конкретные режимы отдельно). - Состояние сохраняется в
index/batch_state.jsonпосле каждого треда — прерывайте и запускайте заново свободно. - Быстрый отказ при аутентификации: 3 последовательных ответа 401/403 прерывают запуск (просроченный куки не может самовосстановиться, и продолжение приведет к сбою сотен тредов один за другим).
- Темп: случайная пауза
--delay-min–--delay-maxмежду тредами; 429/5xx обрабатываются транспортным уровнем с откатом. Подробности: rate-limiting.md. - Треды, попадающие на варианты переписанных ответов, регистрируются в
index/answer_variants_log.jsonlс предупреждением о необходимости обработать их вручную как можно скорее (см. ../reference/api/api-responses-errors.md).
pplx-export batch --account bob --mode deep-research --limit 50
h. spaces¶
Перестроить индекс представления пространства — одну страницу Markdown на пространство плюс реестр spaces.json — из локальных индексов библиотеки.
| Флаг | Значение | По умолчанию |
|---|---|---|
--fetch-meta |
Обновить метаданные владельца/участника перед перестроением | выкл |
Ключевые особенности:
- Без
--fetch-metaкоманда является чисто локальной (ноль сети): она агрегирует треды по слагу пространства во всех файлахlibrary_*.json, со статистикой участвующих учетных записей и обратными ссылками на каталоги экспортированных тредов. - Вывод идет в
./spaces/относительно текущего рабочего каталога — запускайте его из каталога, содержащегоweb_archive/, чтобы обратные ссылки на страницах пространства разрешались. --fetch-metaсначала обновляет кеш владельца/участника каждого пространства черезget_collection(1 запрос на пространство, интервал 3 с) вindex/space_meta.json; когда текущая учетная запись не видит пространство, автоматически повторяется попытка с учетной записью, которая может (куки переключаются сами).
pplx-export spaces --fetch-meta --account alice
i. sync-space¶
Синхронизировать поле space уже заархивированных файлов thread.json с текущим индексом — чисто локально, ноль сети.
| Флаг | Значение | По умолчанию |
|---|---|---|
(только общие параметры; важен только --out) |
Ключевые особенности:
- Предварительное условие: сначала запустите
index— обновленныйlibrary_*.jsonявляется источником истины для текущего владения пространством. - Сравнивает слоги пространств для каждого треда и исправляет
thread.jsonна месте при расхождении; первые 30 изменений регистрируются. - После любого изменения индекс
spaces/перестраивается автоматически.
pplx-export index --account alice && pplx-export sync-space
j. schedule¶
Вычислить инкрементальный план экспорта на этот раунд и записать фрагмент cron, который системный cron может вызывать напрямую.
| Флаг | Значение | По умолчанию |
|---|---|---|
| (только общие параметры) |
Ключевые особенности:
- Получает живой индекс и сообщает план в виде количества всего/нового/обновленного, используя ту же чистую функцию ранней остановки (
plan_incremental), что иbatch— см. incremental-sync.md. - Записывает
<out>/index/cron_snippet.txt, содержащий одну строку17 3 * * *видаcd '<archive-parent>' && '<abs-path-to-pplx-export>' batch --account '<account>' --out '<abs-archive-root>'— пути абсолютные и в кавычках, потому что cwd и PATH cron непредсказуемы. Путь к исполняемому файлу разрешается черезshutil.which; при сбое фрагмент возвращается к голому имениpplx-export. - Плановые запуски по замыслу только инкрементальные; запускайте
batch --fullвручную в качестве периодического предохранителя.
pplx-export schedule --account alice