раздел 05

Шпаргалка

Всё главное на одной странице.

Поток скачивания

1. access_token   <- Server-to-Server OAuth (account_id + client_id + client_secret)
2. список записей <- GET /v2/users/{userId}/recordings?from=...&to=...
3. для каждой meeting -> recording_files[] -> взять download_url
4. скачать файл   <- download_url + токен (?access_token= или заголовок Authorization)
5. проверить      <- размер на диске == file_size
6. сложить        <- диск сервера или S3
7. (опц.) удалить <- API удаления записей встречи, только после проверки

Автоматический вариант: вместо шагов 1-3 ловите webhook recording.completed, берёте download_url и download_token из payload, дальше шаги 4-7.

Основные эндпоинты

ЧтоЗапрос
Получить токенPOST https://zoom.us/oauth/token?grant_type=account_credentials&account_id=...
Список записей пользователяGET https://api.zoom.us/v2/users/{userId}/recordings
Записи одной встречиGET https://api.zoom.us/v2/meetings/{meetingId}/recordings
Скачать файлGET {download_url} с токеном (заголовок или ?access_token=)

Параметры списка: from, to (формат YYYY-MM-DD), page_size, next_page_token.

Чек-лист

  • Завёл приложение Server-to-Server OAuth, есть account_id, client_id, client_secret.
  • Выдал scope на чтение записей (cloud recording).
  • Получаю access_token и обновляю его по истечении (около часа).
  • Запрашиваю список за период, прохожу все страницы по next_page_token.
  • Достаю download_url нужных файлов (MP4 / M4A / TRANSCRIPT).
  • Качаю с -L (curl) или stream=True (Python), токен передаю безопасно.
  • Сверяю размер скачанного с file_size.
  • Складываю на диск или в S3 с понятным именем (дата + тема).
  • Для автоматики - подписан на webhook recording.completed.
  • Удаляю из Zoom только после проверки бэкапа (сначала в корзину).

Глоссарий

ТерминЧто это
recording_filesМассив файлов одной встречи: видео, аудио, субтитры, чат.
download_urlСсылка на скачивание конкретного файла записи. Требует токен, секрет.
download_tokenКороткоживущий токен из webhook для скачивания файлов события.
recording.completedWebhook-событие: облачная запись готова к скачиванию.
next_page_tokenТокен следующей страницы списка записей при пагинации.
file_typeТип файла: MP4 (видео), M4A (аудио), TRANSCRIPT (субтитры), CHAT, CC.
recording_typeВид записи: ракурс экрана, gallery_view, audio_only и т.д.

Куда дальше

  • Курс Zoom API - приложение Server-to-Server OAuth, scopes, эндпоинт удаления записей.
  • Курс Серверы - куда складывать: диск сервера и объектное хранилище S3.
  • Курс Работа с API - как вообще устроены запросы, токены и пагинация.