Files
obsidian-vault/personal/projects/personal-os/zoom-ai-transcript-export.md
T

108 lines
6.5 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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]]