Розділ 11 GET POST

getRecordings – Отримати записи

Кінцева точка getRecordings повертає список записів із вашого сервера BigBlueButton, відфільтрованих за ID зустрічі, ID запису або станом. Починаючи з BBB 2.7, вона підтримує пагінацію, що дозволяє легко отримувати великі набори записів керованими частинами.

Ендпоінт

GET/POST https://api-guide.bbbserver.com/bigbluebutton/api/getRecordings?<parameters>&checksum=replace-with-checksum

Параметри

Параметр Тип Обов’язково За замовчуванням Опис
meetingID String Список ID зустрічей, розділених комами. Ігнорується, якщо вказано recordID. Якщо параметр опущено, повертаються всі записи.
recordID String Список ID записів, розділених комами. Має пріоритет над meetingID. Підтримує зіставлення за префіксом — наприклад, 652c9eb4 відповідає всім записам, ID яких починається з цього префікса.
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 Зовнішній ID зустрічі, пов’язаний із цим записом.
internalMeetingID String Внутрішній 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>
bbbserver.de — На bbbserver.de кінцева точка getRecordings повністю доступна через API. Пагінація підтримується на всіх поточних серверних тарифах, що працюють на BBB 2.7 або новіше.

Поради

  • Використовуйте recordID із префіксом для пошуку записів, коли у вас є лише частковий ID — BigBlueButton зіставляє всі записи, ID яких починається з вказаного рядка.
  • Завжди явно вказуйте параметр state, якщо вам потрібно бачити записи, які ще обробляються або були видалені, оскільки за замовчуванням вони виключаються.
  • Поєднуйте meetingID із state, щоб ефективно звузити результати — наприклад, щоб знайти лише опубліковані записи для конкретної зустрічі.
  • Для великих інсталяцій із великою кількістю записів використовуйте пагінацію, щоб уникнути тайм-аутів і зменшити розмір відповідей.
  • Використовуйте фільтри метаданих (параметри meta_), щоб знаходити записи на основі користувацьких атрибутів, заданих під час створення зустрічі.

Поширені запитання

Кінцева точка повертає всі записи зі станом published або unpublished. Записи, які все ще обробляються або були позначені на видалення, не включаються, якщо ви явно не встановите параметр state.

Коли ви надаєте частковий ID запису, BigBlueButton зіставляє всі записи, повний ID яких починається з указаного рядка. Наприклад, передавання 652c9eb4 поверне кожен запис, ID якого починається з цього префікса. В офіційній документації це іноді називається зіставленням із шаблоном, але фактично це суворо зіставлення за префіксом (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 батьківської зустрічі та порядковий номер кімнати для груп.
Посібник з API BigBlueButton