Локальный архив
Загрузите или импортируйте расшифровки, сохраните облачные записи и проверьте архив.
Сделайте текст встреч доступным для поиска и сохраните записи до окончания срока хранения в Zoom. Выберите загрузку встреч организатора, импорт готовой расшифровки или архивирование облачного аудио и видео. Текст в базе и медиафайлы в папке — разные копии; резервная запись не становится автоматически доступной для поиска в базе.
Выберите, что сохранить
| Что есть | Команда | Что проверить |
|---|---|---|
| Встречи организатора, доступные приложению | zm pull --lookback-days 7 | Список, расшифровку одной встречи и недостающие части |
| Скачанные VTT-файлы | zm import ./downloaded-transcripts | Дату и название относительно оригинала |
| Облачные записи | Список, загрузку или синхронизацию записей | Манифест папки и контрольные суммы |
| Архивные VTT для поиска | Импорт архива | Подтверждение импорта, затем поиск текста |
Для API подключите приложение с разрешениями нужной задачи. Импорт файлов и локальная проверка архива не требуют входа в браузере. Начните с одной встречи, затем настройте повторные загрузки или ежедневную резервную копию.
Где хранятся встречи
Вход, загрузка записей и удалённые команды работают независимо от базы встреч. Импорт, загрузка,
наблюдение за папкой и чтение используют опубликованный общий адаптер SQLite. Соединения открываются
по необходимости и закрываются до успешного вывода. Данные сохраняются в общей базе WireCat;
MESSAGING_STORE задаёт путь. Общая модель, экспорт и обработка — в @wirecat/cli-messaging/meetings.
Общая база называется wirecat.db. Открытие стандартного пути удаляет старую незашифрованную
messages.db и файлы -wal, -shm, без переноса данных. Они сохраняются при заданном
MESSAGING_STORE, явном пути или открытой другим процессом старой базе. Следующее открытие стандартного
пути повторяет удаление после завершения процесса.
Перед импортом или загрузкой выберите локальный профиль.
Загрузить встречи организатора
Выберите API, загрузите недавний период и проверьте результат:
zm config set source api
zm pull --lookback-days 7
zm meetings list --json
zm meetings transcript <meeting-id> --jsonИспользуйте ID из списка. zm pull получает встречи организатора и доступных участников,
расшифровки и резюме ИИ. Он не создаёт отсутствующий текст. Если его нет, проверьте
создание и хранение расшифровок.
pull --lookback-days 7 снова проверяет семь дней; pull --since 2026-10-01 позволяет вернуться к
более ранним встречам с поздней расшифровкой. Один курсор не гарантирует повторную проверку.
Загрузки одного аккаунта выполняйте последовательно: одновременные могут создавать события.
Ошибка встречи не меняет курсор, поэтому следующая загрузка повторит её.
Скачанные расшифровки
Для встречи, где вы были участником, получите VTT у организатора или скачайте его, если разрешено.
Участие не гарантирует доступ. Положите файл прямо в выбранную папку и назовите по дате, времени
и теме, например 2026-10-01_1000_example-planning.vtt. Переименование не меняет текст внутри.
zm config set account.profile personal
zm config set files.timezone Europe/Madrid
zm import ./downloaded-transcripts
zm meetings list --jsonИсточник читает обычные .vtt прямо в папке, без вложенных каталогов. Имена имеют формат
YYYY-MM-DD_HHMM_topic-slug.vtt. ID выводится из времени и нормализованной темы; UUID Zoom в этих
файлах нет. Участники неизвестны: имена говорящих остаются текстом без угадывания личности.
Проверьте дату, название и расшифровку до добавления проекта или людей.
Время по умолчанию UTC. files.timezone задаёт пояс IANA, использованный при создании имён, например
Europe/Madrid. Неоднозначное или несуществующее время перехода на летнее время отклоняется.
Разное содержимое одного нормализованного ключа — ошибка: исправьте конфликт перед повтором.
Неверное имя вызывает явную ошибку, а не незаметный импорт части папки.
Наблюдать за новыми встречами
zm watch --source api --lookback-days 7 --jsonl повторно загружает API. Аргумент папки выбирает
файлы, иначе используется настройка; для файлов можно задать files.folder. API требует сети,
поддерживает --since и перекрытие 0–31 день. --since — начальная граница; после успешной записи
курсора используется курсор с перекрытием. При ошибке начальная граница сохраняется. Перекрытие
также вычитается из начального --since.
--interval задаёт паузу между завершёнными циклами. Профиль, источник, файловые настройки и клиент
OAuth фиксируются до начала: после изменений перезапустите наблюдение. Циклы не перекрываются,
закрывают базу до квитанции. Ctrl-C останавливает процесс.
Для папки расшифровок:
zm watch ./downloaded-transcripts --interval 10s --jsonlКаждый цикл снова просматривает папку, включая исправленные старые файлы. Импорт последовательный,
база закрывается до квитанции; следующий цикл ждёт освобождения вывода. Интервал — от секунды до суток.
Процесс работает в текущем терминале до Ctrl-C. Без интерактивного терминала нужен --jsonl;
поток не использует --json. Сначала выберите профиль, как для разового импорта.
Если отмена приходит при закрытии базы, завершённой квитанции даётся до секунды на вывод. Заблокированный канал останавливает этот вывод; новый цикл не начинается.
Архивировать облачные записи
zm сохраняет доступные видео, аудио, расшифровки и чат. Найдите встречу и скачайте файлы в явный каталог:
zm recordings list --from 2026-10-01 --to 2026-10-10 --json
zm recordings show <zoom-occurrence-uuid> --json
zm recordings download <zoom-occurrence-uuid> --destination ./zoom-archive --json
zm recordings archive verify ./zoom-archive --offline --jsonЗамените <zoom-occurrence-uuid> на UUID из списка записей, а не локальный ID или числовой номер
встречи Zoom. Подтверждение отмечает сохранённые и недоступные файлы. Проверка сравнивает локальные
файлы с манифестом, но не доказывает наличие всех записей в Zoom. При пустом списке проверьте даты,
аккаунт организатора, доступность облачных записей и разрешения, прежде чем расширять период.
Для истории по месяцам:
zm recordings sync --from 2026-01-01 --to 2026-10-10 --destination ./zoom-archive --jsonlДаты должны идти по порядку и охватывать не более десяти календарных лет. Запросы выполняются
помесячно, UUID очищаются от повторов, загрузки последовательные. Каждая JSONL-квитанция описывает
завершённую встречу; прежние квитанции и файлы остаются при поздней ошибке. Повторите диапазон или
недавний период для новых файлов. Выбранный профиль сохраняет прогресс и очередь записей.
--recheck-from YYYY-MM-DD повторно проверяет даты, --checkpoint задаёт файл состояния.
--max-pages и --max-entries ограничивают обнаружение. Без терминала нужен --jsonl.
Контрольные точки подтверждают прежние загрузки, а не текущую целостность или полноту доступных
записей провайдера. recordings archive verify проверяет файлы. --no-resume заново просматривает
весь диапазон без сохранённого прогресса.
Список записей принимает диапазон до 31 дня. Файлы потоково пишутся на диск, видео не загружается
целиком в память. Предел файла по умолчанию 20 ГиБ, меняется через --max-bytes. --file-ids выбирает
ID через запятую. Сохраняются только завершённые доступные файлы; прочие перечисляет квитанция.
Доступ зависит от разрешений, срока хранения и функций аккаунта. Запись встречи, где вы участвовали,
не обязательно доступна вашему API.
Манифест содержит метаданные, размеры и SHA-256, без подписанных URL и токенов. Повторная загрузка
проверяет файлы и пропускает совпадающие. Ничего не перезаписывается; при несовпадении нужен новый
каталог. Выбранный профиль сохраняет проверенные частичные данные; продолжение допускается только
при совпадении сильного валидатора и диапазона ответа. Изменённое представление безопасно начинается
заново. Явный --resume требует профиль; --no-resume и загрузка без профиля используют временные
части. Завершённые записи манифеста сохраняются при поздней ошибке.
Блокировки и восстановление
Локальная проверка работает без входа и базы. Одновременные записи в один каталог запрещены.
После сбоя просмотрите recordings archive locks и план recordings archive recover. --yes
убирает распознанные блокировки завершившихся процессов этого компьютера; активные, чужие и неизвестные
сохраняются. Убираются только маркеры блокировок. Продолжение может восстановить завершённую публикацию,
если принадлежащий операции журнал, проверенная часть и итоговый файл совпадают. Посторонние файлы защищены.
Ежедневные копии
Выберите абсолютный каталог и пояс таймера:
zm recordings schedule create --name daily --destination /home/AliceExample/zoom-archive --from 2026-01-01 --at 03:15 --timezone Europe/Madrid --json
zm recordings schedule list --offline --json
zm recordings schedule run <schedule-id> --jsonl
zm recordings schedule disable <schedule-id> --yes --jsonСоздание сначала показывает план. --yes устанавливает пользовательский таймер systemd на Linux;
--dry-run важнее. Автоматическая установка только для Linux. Таймер следует поясу IANA, а поиск
записей — датам UTC и по умолчанию повторно проверяет семь дней. Нужен доступный пользовательский
systemd; планы работают и на других платформах. Задание сохраняет профиль, публичный client ID,
каталог и пути запуска и настроек, без секретов. Для выполнения его профиль и клиент должны оставаться
выбранными. Статус описывает последнюю подтверждённую операцию; список и просмотр не опрашивают таймер.
Отключение останавливает таймер, сохраняя задания и файлы.
Читать и импортировать архивные расшифровки
Облачные файлы имеют хешированные имена, их идентичность находится в манифесте:
zm recordings archive transcript ./zoom-archive --offline --json
zm recordings archive search ./zoom-archive "example plan" --limit 100 --offline --jsonОбе команды проверяют размер и SHA-256 каждого прочитанного WebVTT до выдачи фрагментов. Поиск
останавливается после одного совпадения сверх лимита; следующие файлы не читает. Вход, настройки
и база не нужны. --uuid или --file-ids выбирают данные, --max-bytes меняет предел 8 МиБ на файл.
Поиск нормализует Unicode и регистр текста, не ищет имена говорящих. Лимит 100, максимум 1000.
hasMore сообщает ещё одно совпадение: увеличьте лимит или сузьте встречу, файл или запрос.
Курсора нет. Вывод ограничен --max-output-bytes; ошибка проверки не выдаёт успешный результат.
Для импорта в выбранный профиль:
zm recordings archive import ./zoom-archive --offline --jsonlВсе выбранные VTT проверяются до открытия базы. Пределы — 8 МиБ на файл и 64 МиБ суммарно;
--max-bytes и --max-total-bytes меняют их. Выберите --uuid или --file-ids. Встреча добавляется
атомарно по исходному UUID Zoom, сохраняя другие расшифровки, сводки, участников и курсор загрузки.
Исправления сохраняют старые версии; одинаковые хеши не создают дублей. Если время начала неизвестно,
добавление возможно только в существующую встречу. Квитанции показывают подтверждённые или недоступные
встречи. При поддержке точного результата они показывают создание встречи, вставку, повтор и замещение
из той же транзакции; старые адаптеры не угадывают счётчики. Ранее подтверждённые встречи могут
остаться сохранёнными, если следующее добавление не удалось.
Расшифровать локальное аудио
Создайте отдельную расшифровку файла для уже сохранённой встречи:
zm meetings transcribe 1 ./AliceExample.wav --model parakeet-v3 --json
zm meetings transcribe 1 ./AliceExample.wav --model parakeet-v3 --yes --jsonПлан проверяет вход и описывает выбранный компонент без его открытия. --yes распознаёт уже
установленным локальным компонентом и атомарно добавляет полную расшифровку; --dry-run важнее.
Ничего автоматически не устанавливается. Принимается PCM16 WAV, моно или стерео, 16 или 48 кГц;
видео не декодируется. --models-dir выбирает абсолютный каталог компонента. Размер, время,
число сегментов и объём текста ограничиваются через --max-bytes, --max-duration, --max-segments
и --max-text-bytes. Окна до 30 секунд дают приблизительные границы времени. Говорящие неизвестны.
Расшифровки провайдера и история сохраняются; квитанция содержит счётчики транзакции и происхождение.
Распознавание требует установленного поддерживаемого речевого компонента; руководство не предполагает,
что он уже есть. Преобразуйте неподдерживаемое аудио/видео в указанный WAV знакомым инструментом.
После применения откройте meetings transcript и проверьте слова и временные окна перед использованием
как источника. Затем переходите к поиску и ссылкам.