раздел 01

Как это устроено

Идея в трёх шагах. Zoom хранит записи в облаке. У него есть API, который отдаёт список ваших записей и для каждого файла - ссылку на скачивание. Вы берёте эту ссылку, добавляете токен доступа и качаете реальный медиафайл к себе.

1
Облачные записи лежат в Zoom
Каждая запись привязана к встрече (meeting) и пользователю (user).
2
API отдаёт список и download_url
Запрашиваете записи за период - получаете встречи, а в каждой набор файлов со ссылками на скачивание.
3
Качаете файл по download_url с токеном
Ссылка требует авторизации. Добавляете токен - и получаете настоящий mp4 (или другой файл) к себе на сервер.

Из чего состоит запись

Одна встреча в облаке - это не один файл, а набор. Видео, отдельная аудиодорожка, субтитры, чат. В ответе API они лежат в массиве recording_files внутри объекта встречи. У каждого файла свои поля: идентификатор, тип файла, тип записи, ссылки и размер.

Основные типы файлов (file_type):

MP4
Видео
Запись экрана и/или участников. Обычно самый крупный файл.
M4A
Аудио
Только звук встречи. Удобно для транскрибации - весит меньше видео.
TRANSCRIPT
Субтитры VTT
Текстовая расшифровка от Zoom в формате VTT, если включена.

Кроме них встречаются CHAT (текст чата встречи) и CC (вшитые субтитры). У каждого видеофайла есть ещё recording_type - какой именно вид записи: например shared_screen_with_speaker_view (экран плюс говорящий), gallery_view, audio_only и другие. По нему вы выбираете, что именно скачивать, если ракурсов несколько.

Что лежит в одном файле записи

Для каждого элемента recording_files API даёт поля, которые нам важны:

  • id - идентификатор файла записи.
  • file_type - тип содержимого (MP4, M4A, TRANSCRIPT и т.д.).
  • recording_type - вид записи (ракурс, audio_only и т.п.).
  • file_size - размер в байтах. Полезно для проверки, что скачали целиком.
  • download_url - ссылка для скачивания файла (с токеном).
  • play_url - ссылка для проигрывания в браузере (не для скачивания на сервер).

В следующем разделе - как получить токен и сам список с этими download_url.