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> 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
recordIDcon un prefijo para buscar grabaciones cuando solo tengas un ID parcial:BigBlueButtoncoincide con todas las grabaciones cuyo ID comienza con la cadena dada. - Especifica siempre explícitamente el parámetro
statesi necesitas ver grabaciones que aún se están procesando o que han sido eliminadas, ya que estas se excluyen de forma predeterminada. - Combina
meetingIDconstatepara 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
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.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.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.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.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.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.