getRecordings – Получить записи
Эндпоинт getRecordings возвращает список записей с вашего сервера BigBlueButton, отфильтрованных по meeting ID, recording ID или состоянию. Начиная с BBB 2.7 он поддерживает пагинацию, что позволяет удобно получать большие наборы записей управляемыми порциями.
Конечная точка
GET/POST https://api-guide.bbbserver.com/bigbluebutton/api/getRecordings?<parameters>&checksum=replace-with-checksum Параметры
| Параметр | Тип | Обязательно | По умолчанию | Описание |
|---|---|---|---|---|
meetingID | String | — | — | Список meeting ID, разделённых запятыми. Игнорируется, если указан recordID. Если параметр опущен, возвращаются все записи. |
recordID | String | — | — | Список идентификаторов записей, разделённых запятыми. Имеет приоритет над meetingID. Поддерживается сопоставление по префиксу — например, 652c9eb4 соответствует всем записям, идентификатор которых начинается с этого префикса. |
state | String | — | published,unpublished | Фильтр состояния, разделённый запятыми. Допустимые значения: processing, processed, published, unpublished, deleted. Используйте any, чтобы вернуть все состояния. |
meta | String | — | — | Фильтр метаданных в том же формате, что и в вызове create (например, meta_presenter=John). |
offset | Integer | — | 0 | Начальный индекс для пагинации. Используется только если также указан limit. BBB 2.7+ |
limit | Integer | — | — | Максимальное количество записей в одном ответе (от 1 до 100). Значения вне этого диапазона автоматически ограничиваются. BBB 2.7+ |
Ни один из параметров не является обязательным. Вызов getRecordings без каких-либо фильтров возвращает все записи published и unpublished на сервере.
Состояния записи
| Состояние | Описание |
|---|---|
processing | Запись в настоящее время обрабатывается. |
processed | Обработка завершена, но запись ещё не опубликована. |
published | Запись опубликована и доступна пользователям. |
unpublished | Запись существует, но недоступна пользователям. |
deleted | Запись помечена для удаления. |
Фильтр состояния по умолчанию включает только записи published и unpublished. Чтобы увидеть записи, которые всё ещё обрабатываются или были удалены, необходимо явно задать параметр state.
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
recordID | String | Уникальный идентификатор записи. |
meetingID | String | Внешний идентификатор встречи, связанный с этой записью. |
internalMeetingID | String | Внутренний meeting ID, используемый BigBlueButton. |
name | String | Название встречи на момент записи. |
isBreakout | Boolean | Является ли эта запись записью из комнаты для групповой работы. |
published | Boolean | Опубликована ли эта запись в данный момент. |
state | String | Текущее состояние записи (processing, processed, published, unpublished, deleted). |
startTime | Long | Unix-метка времени в миллисекундах, когда началась встреча. |
endTime | Long | Unix-метка времени в миллисекундах, когда завершилась встреча. |
participants | Integer | Количество участников встречи. |
rawSize | Long | Размер исходных данных записи в байтах. |
size | Long | Размер обработанной записи в байтах. |
metadata | Object | Пользовательские пары ключ-значение метаданных, связанных с записью. |
playback | Object | Сведения о формате воспроизведения, включая URL, время обработки, длительность, размер и миниатюры предпросмотра. |
totalElements | Integer | Общее количество совпадающих записей. Присутствует только при использовании параметров пагинации. BBB 2.7+ |
Пример запроса
Все опубликованные записи
getRecordings?checksum=replace-with-checksum Записи для конкретной встречи
getRecordings?meetingID=replace-with-meeting-id&checksum=replace-with-checksum Несколько встреч
getRecordings?meetingID=replace-with-meeting-id-1,replace-with-meeting-id-2&checksum=replace-with-checksum По ID записи
getRecordings?recordID=replace-with-recording-id&checksum=replace-with-checksum Все состояния
getRecordings?state=any&checksum=replace-with-checksum Запрос с пагинацией (записи с 21 по 30)
getRecordings?state=published&offset=20&limit=10&checksum=replace-with-checksum Пример ответа
<response>
<returncode>SUCCESS</returncode>
<recordings>
<recording>
<recordID>replace-with-recording-id</recordID>
<meetingID>replace-with-meeting-id</meetingID>
<internalMeetingID>replace-with-internal-meeting-id</internalMeetingID>
<name>Project Meeting</name>
<isBreakout>false</isBreakout>
<published>true</published>
<state>published</state>
<startTime>1462283509434</startTime>
<endTime>1462284509434</endTime>
<participants>5</participants>
<metadata>
<bbb-origin>greenlight</bbb-origin>
</metadata>
<rawSize>123456789</rawSize>
<size>98765432</size>
<playback>
<format>
<type>presentation</type>
<url>https://api-guide.bbbserver.com/playback/presentation/2.3/replace-with-recording-id</url>
<processingTime>62890</processingTime>
<length>45</length>
<size>98765432</size>
<preview>
<images>
<image width="176" height="136" alt="Welcome">
https://api-guide.bbbserver.com/presentation/replace-with-recording-id/thumbnail_0.png
</image>
</images>
</preview>
</format>
</playback>
</recording>
</recordings>
</response> Пагинация BBB 2.7+
Если вы включаете параметры offset и/или limit, ответ содержит дополнительное поле totalElements, указывающее общее количество совпадающих записей. Это позволяет вычислить общее число страниц и создать элементы управления пагинацией в вашем приложении.
<response>
<returncode>SUCCESS</returncode>
<totalElements>42</totalElements>
<recordings>
<!-- recording elements -->
</recordings>
</response> getRecordings полностью доступен через API. Пагинация поддерживается на всех актуальных тарифах сервера с BBB 2.7 или новее.Советы
- Используйте
recordIDс префиксом для поиска записей, когда у вас есть только частичный ID —BigBlueButtonсопоставляет все записи, ID которых начинается с указанной строки. - Всегда явно указывайте параметр
state, если вам нужно видеть записи, которые всё ещё обрабатываются или были удалены, так как по умолчанию они исключаются. - Комбинируйте
meetingIDсstate, чтобы эффективно сузить результаты — например, чтобы найти только опубликованные записи для конкретной встречи. - Для крупных развертываний с большим количеством записей используйте пагинацию, чтобы избежать тайм-аутов и уменьшить размер ответов.
- Используйте фильтры метаданных (параметры
meta_), чтобы находить записи на основе пользовательских атрибутов, заданных при создании встречи.
Часто задаваемые вопросы
published или unpublished. Записи, которые всё ещё обрабатываются или были помечены на удаление, не включаются, если вы явно не зададите параметр state.BigBlueButton сопоставляет все записи, полный ID которых начинается с заданной строки. Например, передача 652c9eb4 вернёт каждую запись, ID которой начинается с этого префикса. В официальной документации это иногда называют wildcard matching, но фактически используется строгое сопоставление по префиксу (startsWith), а не поиск по подстроке.meta с теми же именами ключей, которые вы задавали при создании встречи. Например, если при создании встречи вы передали meta_presenter=John, вы можете фильтровать по той же паре ключ-значение в getRecordings. Обратите внимание, что точное поведение сопоставления для фильтров метаданных в официальной документации описано не полностью.meetingID — это внешний идентификатор, который вы назначили при создании встречи. Одна встреча может породить несколько записей. recordID — это уникальный идентификатор каждой отдельной записи. Если указаны оба параметра, recordID имеет приоритет, а meetingID игнорируется.BBB 2.7 или новее. Установите параметр limit, чтобы контролировать количество записей, возвращаемых за запрос (от 1 до 100), и используйте offset, чтобы пропустить определённое число результатов. Ответ будет содержать поле totalElements, чтобы вы могли вычислить общее количество страниц. Параметр offset не оказывает эффекта, если также не указан limit.BigBlueButton автоматически ограничивает значение допустимым диапазоном. Если вы передадите значение больше 100, оно будет трактоваться как 100. Если вы передадите значение меньше 1, оно будет трактоваться как 1. Ошибка не возвращается.isBreakout со значением true. Они также могут содержать дополнительные поля, такие как ID родительской встречи и номер последовательности групповой комнаты.