--- title: "Zoom AI Transcript Export" aliases: - "Zoom transcript" - "zoom-ai-transcript-export" - "Zoom automation" created: '2026-05-11' updated: '2026-10-04' tags: - zoom-ai-transcript-export - personal-os - automation - zoom - pgvector - webhook related: - "[[personal/projects/personal-os/executor-security-analysis]]" - "[[personal/projects/personal-os/hermes-calendar-access]]" --- # Automating Zoom AI Meeting Transcript/Summary Export Связано: [[executor-security-analysis]] ## Проверено 2026-10-04 - Zoom **My Notes** включён и автоматически транскрибирует Zoom, Teams, Google Meet и другие встречи. - Заметки хранятся в Zoom Cloud и открываются через `https://us01mynotes.zoom.us`. - У каждой заметки есть постоянный `note_id` в URL: `https://us01mynotes.zoom.us/{note_id}`. - Страница заметки содержит полный transcript: текст, спикеров и временные метки. - Текущий корпоративный аккаунт не разрешает создавать приложения в Zoom Marketplace: General App, Server-to-Server OAuth и Webhook Only App отключены. Раздел **User Management → Roles** пользователю недоступен. - Открытая вкладка My Notes сама ничего не экспортирует. Ночной headless Chrome авторизован в отдельном профиле. LaunchAgent запускает импорт ежедневно в 02:15 (Asia/Bishkek) и закрывает браузер после работы. ## Options ### 1. Встроенный Zoom Workflow — только обработанные итоги В My Notes есть кнопка **Workflow**. Проверенные готовые сценарии: - Send Meeting Summary to Gmail - Save Meeting Summary to Google Docs - Generate Post-Meeting Action Tracker - Log Meeting Summary as Salesforce Note Они работают с summary и action items. Готового Workflow для автоматического сохранения полного сырого transcript не обнаружено. ### 2. Zoom My Notes API — справочная альтернатива Endpoints: - `GET /v2/my_notes/notes?meeting_id={meeting_id}` — список заметок встречи - `GET /v2/my_notes/notes/{note_id}/content?include=transcript` — заметка, AI content и полный transcript Required scopes: - `my_notes:read:note` - `my_notes:read:content` Webhook: - `my_notes.transcript_generated` Этот путь не используется в текущей реализации. ### 3. Браузерный экспортёр — выбранная реализация Экспортёр сам запускает отдельный авторизованный Chrome в headless-режиме: 1. Открывает **My Notes → All notes**. 2. Собирает `note_id` и обрабатывает только новые заметки. 3. Открывает каждую страницу заметки. 4. Извлекает transcript из страницы. 5. Сохраняет Markdown и JSON в Obsidian; индекс по `note_id` не допускает повторов. Индексация в pgvector остаётся отдельным этапом. Текущая структура: ```text /Users/admin/obsidian/work/zoom-transcripts/ index.json 2026-09-29 Meeting title {note_id}/ transcript.md transcript.json ``` Авторизация хранится в отдельном профиле `~/.config/personal-os/zoom-browser-profile`. Пользовательский Chrome не нужен: экспортёр открывает My Notes и закрывает браузер после завершения. Код браузерного импорта: `personal-os` commit `4b403ed`; запасной API-импортёр сохранён в commit `2728aee`, но не активирован из-за ограничений корпоративного Zoom. Проверка Zoom: 14/14 тестов прошли. ### 4. Zoom MCP connector Официальный Zoom MCP может получать материалы встреч при наличии разрешённых scopes. Для текущего корпоративного аккаунта доступ к данным через MCP нужно проверять отдельно: наличие одобренного коннектора не гарантирует разрешение на полный My Notes transcript. ## Caveats - My Notes transcript retention включён и управляется политикой аккаунта. Заметки могут удаляться автоматически. - Два transcript от 29 сентября сохранены в Obsidian. Два ручных запуска LaunchAgent завершились с кодом 0, но нашли 0 новых заметок; по ночному расписанию импорт ещё не проверен. Первый запуск по расписанию — 5 октября. Старый Codex heartbeat остановлен. - Пользовательский Chrome может оставаться закрытым: расписание использует отдельный headless-профиль. `ZOOM_BROWSER_SINCE` по умолчанию равен `2026-09-30`; более ранние заметки требуют явного backfill. ## Recommended path 1. ✅ Headless-экспортёр и ночной LaunchAgent активны; отдельный Chrome-профиль авторизован. 2. ✅ Markdown + JSON сохраняются в Obsidian с дедупликацией по `note_id`. 3. ⏳ Проверить запуск 5 октября по расписанию и первый новый transcript; код 0 при `scanned: 0` доказывает только успешный пустой проход. 4. ⏳ Превращение всех сохранённых transcript в проверенные обязательства/карьерные факты и индексация в pgvector ещё не завершены. --- ## Связанные заметки - [[personal/projects/personal-os/executor-security-analysis|Executor Security Analysis]] - [[personal/projects/personal-os/hermes-calendar-access|Hermes Calendar Access]]