Capítulo 11 GET POST

getRecordings – Recuperar grabaciones

El endpoint getRecordings devuelve una lista de grabaciones de tu servidor BigBlueButton, filtrada por ID de reunión, ID de grabación o estado. Admite paginación a partir de BBB 2.7, lo que facilita recuperar grandes conjuntos de grabaciones en bloques manejables.

Endpoint

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

Parámetros

Parámetro Tipo Obligatorio Predeterminado Descripción
meetingID String Lista de IDs de reunión separada por comas. Se ignora cuando se proporciona recordID. Si se omite, se devuelven todas las grabaciones.
recordID String Lista de ID de grabación separadas por comas. Tiene prioridad sobre meetingID. Admite coincidencia por prefijo; por ejemplo, 652c9eb4 coincide con todas las grabaciones cuyo ID comienza con ese prefijo.
state String published,unpublished Filtro de estado separado por comas. Valores válidos: processing, processed, published, unpublished, deleted. Usa any para devolver todos los estados.
meta String Filtro de metadatos usando el mismo formato que en la llamada create (p. ej., meta_presenter=John).
offset Integer 0 Índice inicial para la paginación. Solo surte efecto cuando también se proporciona limit. BBB 2.7+
limit Integer Número máximo de grabaciones por respuesta (de 1 a 100). Los valores fuera de este rango se ajustan automáticamente. BBB 2.7+

Ninguno de los parámetros es obligatorio. Llamar a getRecordings sin ningún filtro devuelve todas las grabaciones published y unpublished del servidor.

Estados de grabación

Estado Descripción
processing La grabación se está procesando actualmente.
processed El procesamiento se ha completado, pero la grabación aún no se ha publicado.
published La grabación está publicada y es accesible para los usuarios.
unpublished La grabación existe, pero no es accesible para los usuarios.
deleted La grabación ha sido marcada para eliminación.

El filtro de estado predeterminado solo incluye grabaciones published y unpublished. Para ver grabaciones que aún se están procesando o que han sido eliminadas, debes establecer explícitamente el parámetro state.

Campos de respuesta

Campo Tipo Descripción
recordID String Identificador único de la grabación.
meetingID String El ID externo de reunión asociado con esta grabación.
internalMeetingID String El ID interno de reunión utilizado por BigBlueButton.
name String El nombre de la reunión en el momento en que fue grabada.
isBreakout Boolean Si esta grabación es de una sala de grupos.
published Boolean Si esta grabación está publicada actualmente.
state String Estado actual de la grabación (processing, processed, published, unpublished, deleted).
startTime Long Marca de tiempo Unix en milisegundos cuando comenzó la reunión.
endTime Long Marca de tiempo Unix en milisegundos cuando terminó la reunión.
participants Integer Número de participantes en la reunión.
rawSize Long Tamaño de los datos brutos de la grabación en bytes.
size Long Tamaño de la grabación procesada en bytes.
metadata Object Pares clave-valor de metadatos personalizados asociados con la grabación.
playback Object Detalles del formato de reproducción, incluidos URL, tiempo de procesamiento, duración, tamaño y miniaturas de vista previa.
totalElements Integer Número total de grabaciones coincidentes. Solo está presente cuando se usan parámetros de paginación. BBB 2.7+

Ejemplo de solicitud

Todas las grabaciones publicadas

getRecordings?checksum=replace-with-checksum

Grabaciones de una reunión específica

getRecordings?meetingID=replace-with-meeting-id&checksum=replace-with-checksum

Varias reuniones

getRecordings?meetingID=replace-with-meeting-id-1,replace-with-meeting-id-2&checksum=replace-with-checksum

Por ID de grabación

getRecordings?recordID=replace-with-recording-id&checksum=replace-with-checksum

Todos los estados

getRecordings?state=any&checksum=replace-with-checksum

Solicitud paginada (grabaciones 21 a 30)

getRecordings?state=published&offset=20&limit=10&checksum=replace-with-checksum

Respuesta de ejemplo

<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>

Paginación BBB 2.7+

Cuando incluyes los parámetros offset y/o limit, la respuesta contiene un campo adicional totalElements que indica el número total de grabaciones coincidentes. Esto te permite calcular el número total de páginas y crear controles de paginación en tu aplicación.

<response>
  <returncode>SUCCESS</returncode>
  <totalElements>42</totalElements>
  <recordings>
    <!-- recording elements -->
  </recordings>
</response>
bbbserver.de — En bbbserver.de, el endpoint getRecordings está totalmente disponible a través de la API. La paginación es compatible en todos los planes de servidor actuales que ejecutan BBB 2.7 o posterior.

Consejos

  • Usa recordID con un prefijo para buscar grabaciones cuando solo tengas un ID parcial: BigBlueButton coincide con todas las grabaciones cuyo ID comienza con la cadena dada.
  • Especifica siempre explícitamente el parámetro state si necesitas ver grabaciones que aún se están procesando o que han sido eliminadas, ya que estas se excluyen de forma predeterminada.
  • Combina meetingID con state para acotar los resultados de forma eficiente; por ejemplo, para encontrar solo las grabaciones publicadas de una reunión específica.
  • En implementaciones grandes con muchas grabaciones, usa paginación para evitar tiempos de espera y reducir el tamaño de las respuestas.
  • Usa filtros de metadatos (parámetros meta_) para encontrar grabaciones según atributos personalizados establecidos durante la creación de la reunión.

Preguntas frecuentes

El endpoint devuelve todas las grabaciones con estado published o unpublished. Las grabaciones que aún se están procesando o que han sido marcadas para eliminación no se incluyen a menos que establezcas explícitamente el parámetro state.

Cuando proporcionas un ID de grabación parcial, BigBlueButton coincide con todas las grabaciones cuyo ID completo comienza con la cadena dada. Por ejemplo, pasar 652c9eb4 devolverá todas las grabaciones cuyo ID empiece con ese prefijo. Esto a veces se denomina coincidencia comodín en la documentación oficial, pero es estrictamente basada en prefijo (startsWith), no en subcadena.

Sí. Usa el parámetro meta con los mismos nombres de clave que estableciste durante la creación de la reunión. Por ejemplo, si pasaste meta_presenter=John al crear la reunión, puedes filtrar por el mismo par clave-valor en getRecordings. Ten en cuenta que el comportamiento exacto de coincidencia para los filtros de metadatos no está completamente especificado en la documentación oficial.

El meetingID es el identificador externo que asignaste al crear la reunión. Una sola reunión puede producir varias grabaciones. El recordID es un identificador único para cada grabación individual. Cuando se proporcionan ambos, recordID tiene prioridad y meetingID se ignora.

La paginación requiere BBB 2.7 o posterior. Establece el parámetro limit para controlar cuántas grabaciones se devuelven por solicitud (de 1 a 100), y usa offset para omitir una cantidad de resultados. La respuesta incluirá un campo totalElements para que puedas calcular el número total de páginas. El parámetro offset no tiene efecto a menos que también se especifique limit.

BigBlueButton ajusta automáticamente el valor al rango permitido. Si pasas un valor mayor que 100, se trata como 100. Si pasas un valor menor que 1, se trata como 1. No se devuelve ningún error.

Sí. Las grabaciones de salas de grupos están incluidas y pueden identificarse mediante el campo isBreakout establecido en true. También pueden contener campos adicionales, como el ID de la reunión principal y el número de secuencia de la sala de grupos.