Autenticación
Cada llamada a la API requiere un token de autenticación como encabezado. Estos tokens son generados por los administradores de TI/administradores y pueden revocarse. Los tokens de autenticación permiten el acceso a la API de una institución específica. El token tiene 32 caracteres y puede obtenerse en Panel de administración -> API.
Asegúrese de guardar también el token de la API después de generarlo.
Uso del token: el token debe enviarse como encabezado, con la clave “authToken” y como valor el token, en cada llamada a la API
URL base de la API
La URL base de la API de YuJa actual es {organization_subdomain}.yuja.com/services/. Organization_subdomain se asigna cuando la cuenta de la organización se aprovisiona con YuJa. Por motivos de seguridad, solo se permite el acceso mediante https. Por ejemplo, si el dominio asignado a la organización es tested, la página de destino es api-testing.yuja.com y el endpoint de la API es api-testing.yuja.com/services.
Parámetros de la solicitud
Hay varias formas de pasar parámetros de solicitud a las llamadas a la API.
- Como componente de la ruta de la URL. Se denomina parámetro de ruta.
- Como parte de la cadena de consulta. Se denomina parámetro de cadena de consulta.
- En el cuerpo de la solicitud, para solicitudes distintas de GET. Se denomina parámetro del cuerpo. El contenido debe estar codificado en JSON.
- En el encabezado personalizado HTTP. Se denomina parámetro de encabezado.
Operaciones CRUD
Las API siguen la convención REST para implementar las funcionalidades CREATE, READ, UPDATE y DELETE. La siguiente tabla describe la convención común utilizada.
| Operación | Método HTTP | Notas |
|---|---|---|
| CREATE | POST | POST es la forma estándar de crear un objeto. La API POST devolverá el ID del objeto creado para que pueda utilizarse en llamadas posteriores a la API. |
| READ | GET | GET recupera información. El resultado puede ser una lista o un solo objeto, según la API a la que se llame. |
| UPDATE | PUT | PUT requiere el ID del objeto que se debe actualizar. Todos los campos de actualización son opcionales, a menos que se indique lo contrario. Se actualizarán los campos que se establezcan. |
| DELETE | DELETE | DELETE requiere el ID del objeto que se debe eliminar. El ID y el tipo del objeto deben coincidir entre sí. |
Códigos de respuesta de la API REST
| 200 | OK |
| 201 | Created |
| 204 | No Content |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
1 - Descripción general de la API de usuarios
Los usuarios representan a todos los usuarios registrados en la institución. Esto incluye a instructores, estudiantes y administradores de TI. Los usuarios pueden inscribirse en cursos, crear capturas y solicitar reuniones, invitar a otros o ser invitados a ellas. Los usuarios también pueden tener una colección de videos.
1.1 - Modelo de objeto de usuario
| Variable | Tipo | Descripción |
|---|---|---|
| user_id | string | Un user_id único que genera el sistema. |
| email_address/email | string[255] | Dirección de correo electrónico del usuario; debe ser única entre todos los usuarios. |
| first_name | string[30] | Nombre del usuario. |
| last_name | string[30] | Apellido del usuario. |
| login_id/userName | string[20] | ID de inicio de sesión del usuario. |
| login_password | string[20] | Contraseña de inicio de sesión del usuario. |
| custom_id | string[20] | ID personalizado del usuario. |
| timezone | string | Zona horaria del usuario. |
| user_type | string enum | Tipo de usuario. Puede ser uno de los siguientes: “Student”, “Instructor”, “IT Manager”. |
| phone_number | string[20] | Número de teléfono del usuario. |
| updateDescendants | Boolean | Permite aplicar el permiso a las subcarpetas. |
| groupName | string | El nombre del grupo tal como aparece en Lumina. |
| linkage | string | El valor de vinculación del usuario. Puede obtenerse en Panel de administración > Lista de participantes de Lumina, consultando la columna Vinculación de un usuario. Seleccione su tipo de vinculación en la columna y copie el valor de vinculación LTI, vinculación LTI3 o vinculación SAML que se muestra. |
| status | string | El estado de la cuenta que desea establecer para el usuario. Puede ser "active" o "suspended". |
Para obtener el user_id de los usuarios, primero realice la llamada a la API GET /users (sección 1.2.1). De la respuesta se pueden recopilar los user_id de todos los usuarios, que luego pueden utilizarse en otras llamadas a la API.
1.2 - Endpoints principales
| Método | Ruta | Descripción |
|---|---|---|
| GET | /users | Recupera todos los usuarios que pertenecen a la organización. |
| GET | /users/{user_id} | Recupera un usuario individual según su user_id. |
| POST | /users | Agrega un usuario |
| PUT | /users/{user_id} | Actualiza un usuario individual según su user_id. |
| DELETE | /users/{user_id} | Elimina un usuario individual según su user_id. |
| GET | /users/{user_id}/groups/members | Recupera todos los grupos en los que el usuario está inscrito. |
| GET | /users/{user_id}/groups/content_owners | Recupera todos los grupos de los que el usuario es propietario del contenido. |
| POST | /users/addUserWithExternalIdentifier | Crea nuevos usuarios, teniendo en cuenta los identificadores externos para vincular a los usuarios con cuentas existentes y nuevas según los inicios de sesión de LMS y SSO. |
| POST | /services/media/permission |
Agrega o modifica los permisos de las carpetas. |
| DELETE | /services/media/permission |
Elimina los permisos de una carpeta. |
| POST | /services/media/mediaByLinkageValue |
Obtiene información sobre los videos contenidos en la cuenta del usuario. |
| PUT | /services/users/updateStatus |
Cambia el estado de la cuenta de un usuario mediante su ID de usuario o su correo electrónico. |
1.2.1 - GET /services/users
Devuelve una lista JSON de objetos, donde cada objeto es un usuario. No se necesitan parámetros para esta llamada.
URL de ejemplo: https://api-testing.yuja.com/services/users
Respuesta de ejemplo:
[
{
"login_id": "loginID123",
"user_status": "Active",
"user_type": "IT Manager",
"user_id": "3432",
"timezone": "America/New_York",
"last_name": "doe,
"phone_number": "123-456-7890",
"first_name": "john",
"email": "john.doe@yuja.com"
},
{
"login_id": "loginID456",
"user_status": "Suspended",
"user_type": “Student",
"user_id": "44",
"timezone": "Canada/Easter",
"last_name": "doe",
"phone_number": "123-456-7890",
"first_name": "jane",
"email": "jane.doe@yuja.com"
}
]
1.2.2 - GET /services/users/{user_id}
Devuelve un objeto JSON con la información del estudiante.
URL de ejemplo: https://api-testing.yuja.com/services/users/3432
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| user_id | parámetro de ruta | string | El valor debe coincidir con el campo user_id de la llamada GET /users. |
Respuesta de ejemplo:
{
"login_id": "loginID123",
"user_type": "IT Manager",
"user_id": "3432",
"timezone": "America/New_York",
“custom_id”: ”otherName”,
"last_name": "doe",
"phone_number": "123-456-7890",
"first_name": "john",
"email": "john.doe@yuja.com"
}
1.2.3 - POST /services/users
Crea un nuevo usuario dentro de la institución. Los datos JSON pueden componerse sin los parámetros opcionales. Consulte la sección 1.1 para conocer los detalles de los parámetros.
URL de ejemplo: https://api-testing.yuja.com/services/users
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| email_address | parámetro del cuerpo | string[255] | Obligatorio |
| first_name | parámetro del cuerpo | string[30] | Obligatorio |
| last_name | parámetro del cuerpo | string[30] | Obligatorio |
| login_id | parámetro del cuerpo | string[20] | Obligatorio |
| login_password | parámetro del cuerpo | string[20] | Obligatorio |
| custom_id | parámetro del cuerpo | string[20] | Opcional |
| user_type | parámetro del cuerpo | string enum | Obligatorio |
| phone_number | parámetro del cuerpo | string[20] | Opcional |
Este endpoint espera datos JSON con este formato en el parámetro del cuerpo:
{
"email_address": String email,
"first_name": String firstName,
"last_name": String lastName,
"login_id": String logidID,
"login_password": String password,
"custom_id": String custom_id,
"user_type": String userType,
"phone_number”: String phoneNumber
}
Datos JSON de ejemplo:
{
"login_id": "IT_1",
"user_type": "IT Manager",
"last_name": "doe",
"login_password": "Password1@gmail.com",
"phone_number": "123-456-7890",
"first_name": "john",
"email_address": "john.doe@yuja.com"
}
1.2.4 - PUT /services/users/{user_id}
Actualiza un usuario individual según {user_id}. Consulte la sección 1.1 para conocer los detalles de los parámetros.
URL de ejemplo:https://api-testing.yuja.com/services/users/1000
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| user_id | parámetro de ruta | string | El valor debe coincidir con el campo user_id de la llamada GET /users. |
| email_address | parámetro del cuerpo | string[255] | Se establece para actualizar la dirección de correo electrónico. |
| first_name | parámetro del cuerpo | string[30] | Se establece para actualizar el nombre del usuario. |
| last_name | parámetro del cuerpo | string[30] | Se establece para actualizar el apellido del usuario. |
| login_password | parámetro del cuerpo | string[20] | Se establece para actualizar la contraseña de inicio de sesión del usuario. |
| custom_id | parámetro del cuerpo | string[20] | Se establece para actualizar el ID personalizado del usuario. |
| timezone | parámetro del cuerpo | string | Se establece para actualizar la zona horaria del usuario. |
| user_type | parámetro del cuerpo | string enum | Se establece para actualizar el tipo de usuario. |
| phone_number | parámetro del cuerpo | string[20] | Se establece para actualizar el número de teléfono del usuario. |
Este endpoint espera datos JSON con este formato en el parámetro del cuerpo:
{
"email_address": String email,
"first_name": String firstName,
"last_name": String lastName,
"login_password": String password,
"custom_id": String custom_id,
"timezone": String timeZone,
"user_type": String userType,
"phone_number”: String phoneNumber
}
Todos los campos son opcionales. Solo se actualizan los campos que se proporcionan.
1.2.5 - DELETE /services/users/{user_id}
Elimina de la institución al usuario con el ID {user_id}.
URL de ejemplo: https://api-testing.yuja.com/services/users/1000
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| user_id | parámetro de ruta | string | El valor debe coincidir con el campo user_id de la llamada GET /users. |
1.2.6 - GET /services/users/{user_id}/groups/members
Recupera todos los grupos en los que un usuario está inscrito.
URL de ejemplo: https://api-testing.yuja.com/services/users/3432/groups/members
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| user_id | parámetro de ruta | string | El valor debe coincidir con el campo user_id de la llamada GET /users. |
Respuesta de ejemplo:
[
{
"publish_type": "ALL",
"is_active": "1",
"group_code": "GROUP_CODE",
"group_id": 1365,
"group_name": "Name of group",
"owner_id": "2469",
"group_security": "FREE_JOIN",
"group_term": "Fall 2020"
},
{
"publish_type": "ADMIN",
"is_active": "1",
"group_code": "354",
"group_id": 121,
"group_name": "Name of group",
"owner_id": "898",
"group_security": "INVITE_ONLY",
"group_term": "Spring 2020"
}
]
1.2.7 - GET /services/users/{user_id}/groups/content_owners
Recupera todos los grupos de los que un usuario es propietario del contenido. El user_id requerido se puede obtener mediante la llamada a la API GET /users.
URL de ejemplo: https://api-testing.yuja.com/services/users/2469/groups/content_owners
Parámetros:
No se requiere ningún parámetro.
Respuesta de ejemplo:
[
{
"publish_type": "ALL",
"is_active": "1",
"group_code": "GROUP_CODE",
"group_id": 1365,
"group_name": "Name of group",
"owner_id": "2469",
"group_security": "FREE_JOIN",
"group_term": "Fall 2020"
},
{
"publish_type": "ADMIN",
"is_active": "0",
"group_code": "354",
"group_id": 121,
"group_name": "Invite Only",
"owner_id": "2469",
"group_security": "INVITE_ONLY",
"group_term": "Spring 2020"
}
]
1.2.8 - POST /services/users/addUserWithExternalIdentifier
Crea nuevos usuarios con los mismos parámetros de los endpoints post de services y users (consulte la sección 1.2.3), con dos parámetros adicionales: primary_identifier y secondary_identifier. Esto vincula al usuario con usuarios existentes o futuros creados mediante la integración con LMS o SSO. Aunque primary_identifier y secondary_identifier son opcionales, debe estar presente uno de los dos parámetros. Comuníquese con el Soporte de YuJa si necesita más ayuda.
URL de ejemplo: https://api-testing.yuja.com/services/users/primary_identifier
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| email_address | parámetro del cuerpo | string[255] | Obligatorio |
| first_name | parámetro del cuerpo | string[30] | Obligatorio |
| last_name | parámetro del cuerpo | string[30] | Obligatorio |
| login_id | parámetro del cuerpo | string[20] | Obligatorio |
| login_password | parámetro del cuerpo | string[20] | Obligatorio |
| custom_id | parámetro del cuerpo | string[20] | Opcional |
| user_type | parámetro del cuerpo | string enum | Obligatorio |
| phone_number | parámetro del cuerpo | string[20] | Opcional |
| primary_identifier | parámetro del cuerpo | string[255] | Opcional |
| secondary_identifier | parámetro del cuerpo | string[255] | Opcional |
1.2.9 - POST /services/media/permission
Agrega o modifica los permisos de las carpetas en CampusTube o EnterpriseTube.
URL de ejemplo: https://api-testing.yuja.com/services/media/permission
Parámetros:
No se necesitan parámetros para esta llamada.
Datos JSON de ejemplo:
Este endpoint espera datos JSON con este formato en el parámetro del cuerpo:
Utilice la siguiente entrada JSON al asignar según el rol:
{
"folderID": "9931153",
"type": "Role",
"name": "Student" OR "Instructor",
"updateDescendants": "true" OR "false",
"access": "Full Access" OR "Edit Access'" OR "Edit Caption Access" OR "Read Access"
}
Utilice la siguiente entrada JSON al asignar según el usuario:
{
"folderID": "9931153",
"type": "User",
"updateDescendants": "true" OR "false",
"userName": "username",
"access": "Full Access" OR "Edit Access" OR "Edit Caption Access" OR "Read Access"
}
Utilice la siguiente entrada JSON al asignar según el grupo:
{
"folderID": "9931153",
"type": "Group",
"updateDescendants": "true" OR "false",
"groupName": "group name",
"access": "Full Access" OR "Edit Access" OR "Edit Caption Access" OR "Read Access"
}
Respuesta de ejemplo:
Successfuly Modified permission
1.2.10 - DELETE /services/media/permission
Elimina los permisos de una carpeta.
URL de ejemplo: https://api-testing.yuja.com/services/media/permission
Parámetros:
No se necesitan parámetros para esta llamada.
Datos JSON de ejemplo:
Este endpoint espera datos JSON con este formato en el parámetro del cuerpo:
Utilice la siguiente entrada JSON al asignar según un rol:
{
"folderID":"9931153",
"type": "Role",
"name": "Student" OR "Instructor"
}
Utilice la siguiente entrada JSON al asignar según el usuario:
{
"folderID": "9931153",
"type": "User",
"userName": "username"
}
Utilice la siguiente entrada JSON al asignar según el grupo:
{
"folderID": "9931153",
"type": "Group",
"groupName": "group name"
}
Respuesta de ejemplo:
Success
1.2.11 - POST /services/media/mediaByLinkageValue
Obtiene información sobre los videos contenidos en la cuenta del usuario mediante un valor de "linkage" (vinculación). Este valor puede obtenerse en Panel de administración > Lista de participantes de Lumina, consultando la columna Vinculación de un usuario. Seleccione su tipo de vinculación en la columna y copie el valor de vinculación LTI, vinculación LTI3 o vinculación SAML que se muestra.
URL de ejemplo: https://api-testing.yuja.com/services/media/mediaByLinkageValue
Parámetros:
No se necesitan parámetros para esta llamada.
Datos JSON de ejemplo:
Este endpoint espera datos JSON con este formato en el parámetro del cuerpo:
{
"linkage": "stu.bct"
}
Respuesta de ejemplo:
[{"createdDate": "2023-08-24 06:01:06","duration": "131.968","ownerName": "Miley Kendra","videoDesc": "","videoPID": 322731,"videoTags": [[]],"videoTitle": "Live Recording"},{"createdDate": "2022-07-11 12:43:42","duration": "121.54","ownerName": "Sales Rep","videoDesc": "","videoPID": 265367,"videoTags": [[]"videoTitle": "Presentation"],]
1.2.12 - POST /services/media/modifySharePermissions
Agrega un usuario a una carpeta compartida con los permisos especificados.
URL de ejemplo: https://hudson.yuja.com/services/media/modifySharePermissions
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| node_id | Parámetro del cuerpo | string | El ID de nodo de la carpeta que desea compartir. |
| user_id | parámetro del cuerpo | string | El ID del propietario de la carpeta. |
| share_with_user_id | parámetro del cuerpo | string | El ID del usuario con quien desea compartir la carpeta. |
| access_level | parámetro del cuerpo | string | El nivel de acceso del usuario con quien se comparte: "Full Access", "Edit Access", "Edit Caption Access" o "Read Only". |
Datos JSON de ejemplo:
Este endpoint espera datos JSON con este formato en el parámetro del cuerpo:
{
"node_id":"10265558",
"user_id":"tryan",
"share_list":[
{
"share_with_user_id":"smichael",
"access_level":"Edit Access"
},
{
"share_with_user_id":"alia",
"access_level":"Edit Caption Access"
}
]
}
Respuesta de ejemplo:
Share list successfully updated.
1.2.13 - DELETE /services/media/modifySharePermissions
Quita a un usuario de una carpeta compartida.
URL de ejemplo: https://hudson.yuja.com/services/media/modifySharePermissions
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| node_id | Parámetro del cuerpo | string | El ID de nodo de la carpeta de la que desea quitar a un usuario. |
| user_id | parámetro del cuerpo | string | El ID del propietario de la carpeta. |
| delete_list | parámetro del cuerpo | string | Una lista de los usuarios que desea eliminar, separados por comas. |
Datos JSON de ejemplo:
Este endpoint espera datos JSON con este formato en el parámetro del cuerpo:
{
"node_id":"10352458",
"user_id":"tryan",
"delete_list":[
"alia", "smichael", "rkhan"
]
}
Respuesta de ejemplo:
Share list successfully updated.
1.2.14 - PUT /services/users/updateStatus
Cambia el estado de la cuenta de un usuario mediante su ID de usuario, su ID de inicio de sesión o su correo electrónico. Para actualizar varios usuarios a la vez, utilice una lista de IDs de usuario, IDs de inicio de sesión o correos electrónicos. En total, se deben proporcionar dos parámetros: email O login_id O user_id, y status.
URL de ejemplo: https://hudsonlake.yuja.com/services/users/updateStatus
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| parámetro del cuerpo | string | La dirección de correo electrónico del usuario. | |
| user_id | parámetro del cuerpo | string | El ID del usuario. Ejemplo: "123456" |
| login_id | parámetro del cuerpo | string | El ID de inicio de sesión del usuario. Ejemplo: "laurie_thompson". |
| status | parámetro del cuerpo | string | El estado de la cuenta que desea establecer para el usuario: "active" o "suspended". |
Cambio del estado de la cuenta mediante user_id
Datos JSON de ejemplo:
Este endpoint espera datos JSON con este formato en el parámetro del cuerpo:
{
"user_id":"brendansheedy,caseymelvin,cecilleminkov,danielsteen",
"status":"active"
}
Respuesta de ejemplo:
The status for the given user(s) has been successfully updated.
Cambio del estado de la cuenta mediante correo electrónico
Datos JSON de ejemplo:
Este endpoint espera datos JSON con este formato en el parámetro del cuerpo:
{
"email":"brendan.sheedy@yuja.com,caseymelvin@yuja.com,cecilie.minkov@yuja.com,daniel.steen@yuja.com",
"status":"suspended"
}
Respuesta de ejemplo:
The status for the given user(s) has been successfully updated.
2 - Descripción general de la API de grupos
Los grupos representan todos los cursos disponibles en la organización. Cada curso tiene una seguridad específica que filtra el acceso de los usuarios a ese curso. El curso también puede publicar políticas que solo permiten a ciertos tipos de usuarios publicar en esos grupos.
Tenga en cuenta: Mientras avanzamos hacia la distinción entre cursos y grupos, las API existentes de las secciones 2.2.1 a 2.2.13 seguirán funcionando con normalidad por el momento. Para pasar a las API más actualizadas para cursos, le recomendamos utilizar las API de las secciones 2.2.14 a 2.2.23. Para las API específicas de grupos, visite la sección que aparece más abajo, titulada 3 - Descripción general de la API de UserGroups.
2.1 - Modelo de objeto de grupo
| Variable | Tipo | Descripción |
|---|---|---|
| group_id | string | Un ID de grupo único que genera el sistema. |
| owner_id | string | El ID del propietario que creó el grupo. |
| group_name | string[200] | Nombre del grupo. |
| group_code | string[25] | Nombre corto del grupo. |
| group_security | string enum | La configuración de seguridad del grupo. Puede ser uno de los siguientes valores: “INVITE_ONLY”, “REQUEST_JOIN”, “SECURITY_RULE”, “FREE_JOIN”. |
| group_term | string[30] | El nombre del período de este grupo. |
| publish_type | string enum | Especifica los usuarios que pueden publicar en este grupo. Puede ser uno de los siguientes valores: “ALL”, “CURATE”, “ADMIN”. |
| is_active | boolean | Especifica si el grupo está activo o no. |
| groupName | string | Nombre deseado para un grupo. |
| groupMemeber | string | El PID de usuario de los miembros que se agregarán a un grupo. |
Para obtener el group_id de los grupos, primero realice la llamada a la API GET /groups (sección 2.2.1). De la respuesta se pueden recopilar los group_id de todos los grupos, que luego pueden utilizarse en otras llamadas a la API.
2.2 - Endpoints principales
| Método | Ruta | Descripción |
|---|---|---|
| GET | /groups | Recupera todos los grupos que pertenecen a la organización. |
| GET | /groups/{group_id} | Recupera un grupo individual según group_id. |
| PUT | /groups/{group_id} | Actualiza un grupo individual según group_id. |
| POST | /groups | Crea un grupo nuevo |
| DELETE | /groups/{group_id} | Elimina un grupo creado |
| POST | /groups/{group_id}/members/add/{user_id} | Agrega un usuario al grupo como miembro inscrito. |
| POST | /groups/{group_id}/content_owners/add/{user_id} | Agrega un usuario al grupo como propietario de contenido |
| GET | /groups/{group_id}/content_owners | Recupera todos los usuarios que tienen acceso de propietario de contenido al grupo. |
| GET | /groups/{group_id}/members | Recupera todos los usuarios que se han inscrito en el grupo. |
| DELETE | /groups/{group_id}/members/{user_id} | Elimina a un usuario miembro del grupo. No hace nada si el usuario no es miembro. |
| DELETE | /groups/{group_id}/content_owners/{user_id} | Elimina a un propietario de contenido del grupo. No hace nada si el usuario no es propietario de contenido. |
| GET | /groups/groupCode/{group_code} | Devuelve los detalles del grupo para el código de grupo indicado (código de curso). |
| post | /services/users/createGroup | Crea grupos y/o agrega miembros a los grupos. |
| GET | /courses/code/{course_code} | Devuelve los detalles del curso para el código de curso indicado |
| DELETE | /services/courses/{course_id}/owners/{user_id} | Elimina al propietario de un curso. |
| DELETE | /services/courses/{course_id}/members/{user_id} | Elimina a un miembro de un curso. |
| GET | /courses/{course_id}/owners | Recupera los propietarios del curso. |
| DELETE | /services/courses/{course_id} | Elimina el curso. |
| PUT | /services/courses/{course_id} | Edita un curso existente. |
| POST | /services/courses/{course_id}/owners/{user_id} | Agrega un propietario de curso. |
| POST | /services/courses/{course_id}/members/{user_id} | Agrega un miembro a un curso. |
| POST | /services/courses | Crea un curso. |
| GET | /services/courses | Recupera los detalles de todos los cursos. |
2.2.1 - GET /services/groups
Devuelve una lista JSON de todos los grupos organizados en páginas de 1000 grupos. Si desea devolver todos los grupos en una sola página, comuníquese con su administrador de cuenta para cambiar la funcionalidad de esta API para su institución. Nota: No podrá devolver todos los grupos en una sola página después del 31 de diciembre de 2023.
URL de ejemplo: https://api-testing.yuja.com/services/groups?page=2&sortDescending=false
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| page | Parámetro de ruta | Integer | Opcional | Especifica el número de página. El valor predeterminado es 0, que recupera los primeros 1000 grupos a partir de la primera página. |
| sortDescending | Parámetro de ruta | Boolean | Opcional | Si el valor es true, los resultados se mostrarán en orden descendente según el PID. Si el valor es false, los resultados se mostrarán en orden ascendente según el PID. Si no se especifica ningún valor, el valor predeterminado será true. |
Ejemplo de respuesta:
[
{
"publish_type":"CURATE",
"is_active":true,
"group_code":"FALL 2020",
"group_id":1536,
"group_name":"Name of Group",
"owner_id":2468,
"sis_id":"996633",
"group_security":"INVITE_ONLY",
"group_term":"Default Term"v },
{,
"publish_type":"ADMIN",
"is_active":true,
"group_code":"",
"group_id":1098,
"group_name":"Name of Group",
"owner_id":1588,
"sis_id":"996633",
"group_security":"INVITE_ONLY",
"group_term":"Default Term"
}
]
2.2.2 - GET /services/groups/{group_id}
Devuelve un objeto JSON que contiene la información del grupo.
URL de ejemplo: https://api-testing.yuja.com/services/groups/1098
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | parámetro de ruta | string | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
Ejemplo de respuesta:
{
"publish_type": "ADMIN",
"is_active": “0”,
"group_code": "ECE150",
"group_id": 1098,
"group_name": "Math Class",
"owner_id": 1588,
"group_security": "INVITE_ONLY"
}
2.2.3 - PUT /services/groups/{group_id}
Edita la información de un grupo con el id {group_id}. Consulte la sección 2.1 para ver los detalles de los parámetros.
URL de ejemplo: https://api-testing.yuja.com/services/groups/1098
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | parámetro de ruta | string | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
| group_name | parámetro de cuerpo | string[200] | Se establece para actualizar el nombre del grupo. |
| group_code | parámetro de cuerpo | string[25] | Se establece para actualizar el nombre corto del grupo. |
| group_term | parámetro de cuerpo | string[30] | Se establece para actualizar el nombre personalizado del grupo. |
| group_type | parámetro de cuerpo | string enum | Se establece para actualizar el tipo de publicación del grupo. |
Este endpoint espera datos JSON con este formato en el parámetro de cuerpo:
{
"group_name": String group_name,
"group_code": String group_code,
"group_term": String group_security,
"publish_type": String publish_type
}
Todos los campos son opcionales. Solo se actualizan los campos proporcionados.
2.2.4 - POST /services/groups
Crea un grupo nuevo. Consulte la sección 2.1 para ver los detalles de los parámetros.
URL de ejemplo: https://api-testing.yuja.com/services/groups
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| owner_id | parámetro de cuerpo | integer | Obligatorio. |
| group_name | parámetro de cuerpo | string[200] | Obligatorio. |
| group_code | parámetro de cuerpo | string[25] | Obligatorio. |
| group_term | parámetro de cuerpo | string | Obligatorio. |
| publish_type | parámetro de cuerpo | string enum | Obligatorio. |
Este endpoint espera datos JSON con este formato en el parámetro de cuerpo:
{
"owner_id": Integer owner_id,
"group_name": String group_name,
"group_code": String group_code,
"group_term": String group_term,
"publish_type": String publish_type
}
2.2.5 - DELETE /services/groups/{group_id}
Elimina de la institución un grupo o clase con el id {group_id}.
URL de ejemplo: https://api-testing.yuja.com/services/groups/1098
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | parámetro de ruta | string | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
2.2.6 - POST /services/groups/{group_id}/members/add/{user_id}
Agrega un usuario a un grupo como miembro.
URL de ejemplo: https://api-testing.yuja.com/services/groups/1098/members/add/1000
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | parámetro de ruta | string | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
| user_id | parámetro de ruta | string | El valor debe coincidir con el campo user_id de la llamada GET /users. |
2.2.7 - POST /services/groups/{group_id}/content_owners/add/{user_id}
Agrega un usuario a un grupo como propietario de contenido.
URL de ejemplo: https://api-testing.yuja.com/services/groups/1098/content_owners/add/1000
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | parámetro de ruta | string | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
| user_id | parámetro de ruta | string | El valor debe coincidir con el campo user_id de la llamada GET /users. |
2.2.8 - GET /services/groups/{group_id}/content_owners
Devuelve una lista JSON de objetos, donde cada objeto es un usuario que es propietario de contenido del grupo con el id {group_id}.
URL de ejemplo: https://api-testing.yuja.com/services/groups/1098/content_owners
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | parámetro de ruta | string | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
Ejemplo de respuesta:
[
{
"login_id": "loginID123",
"user_type": "IT Manager",
"user_id": "3432",
"timezone": "America/New_York",
"last_name": "doe",
"phone_number": "123-456-7890",
"first_name": "john",
"email": "john.doe@yuja.com"
},
{
"login_id": "loginID456",
"user_type": “Student",
"user_id": "44",
"timezone": "Canada/Easter",
"last_name": "doe",
"phone_number": "123-456-7890",
"first_name": "jane",
"email": "jane.doe@yuja.com"
}
]
2.2.9 - GET /services/groups/{group_id}/members
Devuelve una lista JSON de objetos, donde cada objeto es un usuario que es miembro del grupo con el id {group_id}.
URL de ejemplo: https://api-testing.yuja.com/services/groups/1098/members
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | parámetro de ruta | string | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
Ejemplo de respuesta:
[
{
"login_id": "loginID123",
"user_type": "IT Manager",
"user_id": "3432",
"timezone": "America/New_York",
"last_name": "doe",
"phone_number": "123-456-7890",
"first_name": "john",
"email": "john.doe@yuja.com"
},
{
"login_id": "loginID456",
"user_type": “Student",
"user_id": "44",
"timezone": "Canada/Easter",
"last_name": "doe",
"phone_number": "123-456-7890",
"first_name": "jane",
"email": "jane.doe@yuja.com"
}
]
2.2.10 - DELETE /services/groups/{group_id}/members/{user_id}
Elimina al miembro con el id {user_id} de un grupo con el id {group_id}.
URL de ejemplo: https://api-testing.yuja.com/services/groups/1098/members/1000
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | parámetro de ruta | string | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
| user_id | parámetro de ruta | string | El valor debe coincidir con el campo user_id de la llamada GET /users. |
2.2.11 - DELETE /services/groups/{group_id}/content_owners/{user_id}
Elimina al propietario de contenido con el id {user_id} de un grupo con el id {group_id}.
URL de ejemplo: https://api-testing.yuja.com/services/groups/1098/content_owners/1000
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | parámetro de ruta | string | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
| user_id | parámetro de ruta | string | El valor debe coincidir con el campo user_id de la llamada GET /users. |
2.2.12 - GET /services/groups/groupCode/{group_code}
Devuelve los detalles del grupo para el código de grupo indicado (código de curso).
URL de ejemplo: https://api-testing.yuja.com/services/groups/groupCode/123
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| group_code | Parámetro de ruta | String | Obligatorio | El código de grupo para el cual se devolverán los detalles del grupo. |
Ejemplo de respuesta:
[
{
"publish_type": "ADMIN",
"is_active": 1,
"group_code": "123 ",
"group_id": 138,
"group_name": "scriptTest",
"owner_id": 148,
"sis_id": 0,
"group_security": "INVITE_ONLY",
"group_term": "Spring 2017"
},
{
"publish_type": "ALL",
"is_active": 1,
"group_code": "123",
"group_id": 172,
"group_name": "TestNumber222", "owner_id": 43,
"sis_id": 0,
"group_security": "INVITE_ONLY",
"group_term": "Spring 2017"
}
]
2.2.13 - POST /services/users/createGroup
Crea grupos y/o agrega miembros a los grupos.
URL de ejemplo: https://evergreen.yuja.com/services/users/createGroup
Parámetros:
No se necesitan parámetros para esta llamada.
Datos JSON de ejemplo:
Este endpoint espera datos JSON con este formato en el parámetro de cuerpo:
{"groupName": "ChemistryGroup","groupMembers": "374983,342842,418637 (can be left empty)"}
Ejemplo de respuesta:
Group created successfully
2.2.14 - GET /services/courses/code/{course_code}
Devuelve los detalles del curso para el código de curso indicado.
URL de ejemplo:https://api-testing.yuja.com/services/courses/code/BIO232
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| course_code | Parámetro de ruta | String | Obligatorio | El código de curso para el cual se devolverán los detalles del curso. |
Ejemplo de respuesta:
{"embed_code": "<iframe width='100%' height='540' src=\"https://evergreen.yuja.com/V/PlayList?node=391100&a=1510937947&preload=false\" frameborder=\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen loading=\"lazy\"></iframe>","publish_type": "ALL","is_active": 1,"group_code": "BIO232","group_id": 8610,"group_name": "Intro to Microbiology","owner_id": 71923,"sis_id": 0,"group_security": "INVITE_ONLY","group_term": "Winter 2015","direct_link": "https://evergreen.yuja.com/V/PlayList?node=311900&a=1510937147"}
2.2.15 - DELETE /services/courses/{course_id}/owners/{user_id}
Elimina al propietario de un curso.
URL de ejemplo: https://api-testing.yuja.com/services/courses/152463/owners/782915
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| course_id | parámetro de ruta | string | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
| user_id | parámetro de ruta | string | El valor debe coincidir con el campo user_id de la llamada GET /users. |
Ejemplo de respuesta:
Successfully deleted user from group/class
2.2.16 - DELETE /services/courses/{course_id}/members/{user_id}
Elimina a un miembro que pertenece a un curso.
URL de ejemplo: https://api-testing.yuja.com/services/courses/2463/members/782295
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| course_id | parámetro de ruta | string | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
| user_id | parámetro de ruta | string | El valor debe coincidir con el campo user_id de la llamada GET /users. |
Ejemplo de respuesta:
Successfully deleted user from group/class
2.2.17 - GET /services/courses/{course_id}/owners
Recupera los propietarios del curso.
URL de ejemplo: https://api-testing.yuja.com/services/courses/2463/owners
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| course_id | parámetro de ruta | string | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
Ejemplo de respuesta:
{
"login_id":"zmasht4","email_address":"zaid.masht@yuja.com","user_type":"Instructor","user_id":"609","timezone":"Canada/Eastern","custom_id":"8763","last_name":"Masht","phone_number":"745-286-8877","first_name":"Zaid"
}
2.2.18 - DELETE - /services/courses/{course_id}
Elimina el curso.
URL de ejemplo: https://api-testing.yuja.com/services/courses/2463
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| course_id | parámetro de ruta | string | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
Ejemplo de respuesta:
Successfully deleted course/class
2.2.19 - PUT /services/courses/{course_id}
Edita un curso existente.
URL de ejemplo: https://api-testing.yuja.com/services/courses/2463
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| course_id | parámetro de ruta | string | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
| course_name | parámetro de cuerpo | string | El nuevo nombre del curso (opcional). |
| course_code | parámetro de cuerpo | string | El valor debe existir y ser válido. |
| course_term | parámetro de cuerpo | string | Nuevo período del curso (opcional). |
| is_active | parámetro de cuerpo | boolean/int/string | El valor determina el estado activo del curso (opcional; acepta true/false, 1/0 o sus equivalentes en cadena de texto) |
Este endpoint espera datos JSON con este formato en el parámetro de cuerpo:
{
"course_name": "newcoursename",
"course_code": "999676",
"course_term": "winter",
"is_active": true;
}
Ejemplo de respuesta:
Successfully updated course of id: 2463
2.2.20 - POST /services/courses/{course_id}/owners/{user_id}
Agrega un propietario a un curso existente.
URL de ejemplo: https://api-testing.yuja.com/services/courses/2463/owners/74927
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| course_id | parámetro de ruta | string | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
| user_id | parámetro de ruta | string | El valor debe coincidir con el campo user_id de la llamada GET /users. |
Ejemplo de respuesta:
Successfully made user a content owner to this course/class
2.2.21 - POST /services/courses/{course_id}/members/{user_id}
Agrega un miembro a un curso existente.
URL de ejemplo: https://api-testing.yuja.com/services/courses/2463/members/74927
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| course_id | parámetro de ruta | string | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
| user_id | parámetro de ruta | string | El valor debe coincidir con el campo user_id de la llamada GET /users. |
Ejemplo de respuesta:
Successfully made user a member to this course/class
2.2.22 - POST /services/courses
Crea un curso nuevo.
URL de ejemplo: https://api-testing.yuja.com/services/courses
Este endpoint espera datos JSON con este formato en el parámetro de cuerpo:
{
"owner_id": 374971,
"course_name": "newcourse1",
"course_code": "999000",
"course_term": "Summer",
"publish_type": "ADMIN"
}
Ejemplo de respuesta:
Successfully created a new course
2.2.23 - GET /services/courses
Recupera los detalles de los cursos en lotes de 200.
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| page | número, valor predeterminado 0 | Integer | Opcional |
| sortDescending | true/false, valor predeterminado true, ordenado por classpid | Boolean | Opcional |
URL de ejemplo: https://api-testing.yuja.com/services/courses
Ejemplo de respuesta:
{"embed_code":"<iframe width='100%' height='540' src=\"https://evergreen.yuja.com/V/PlayList?node=1004712&a=90319216&preload=false\" frameborder=\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen loading=\"lazy\"><\/iframe>","course_id":15129,"publish_type":"ADMIN","is_active":true,"course_code":"99000","course_name":"newcourse1","owner_id":374971,"sis_id":"","course_security":"INVITE_ONLY","course_term":"Summer","direct_link":"https://evergreen.yuja.com/V/PlayList?node=10147412&a=9039216"},
{"embed_code":"<iframe width='100%' height='540' src=\"https://evergreen.yuja.com/V/PlayList?node=1004680&a=25455921&preload=false\" frameborder=\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen loading=\"lazy\"><\/iframe>","course_id":151484,"publish_type":"ADMIN","is_active":true,"course_code":"bio1011","course_name":"bio","owner_id":368555,"sis_id":"","course_security":"INVITE_ONLY","course_term":"Winter 2022","direct_link":"https://evergreen.yuja.com/V/PlayList?node=10046201&a=2455921"}
3 - Descripción general de la API UserGroups
UserGroups representa todos los grupos disponibles en la organización. Cada grupo tiene un ID único y miembros que se pueden agregar o quitar.
3.1 - Modelo de objeto de dispositivo
| Variable | Tipo | Descripción |
|---|---|---|
| group_id | string | Un ID de grupo único generado por el sistema. El valor debe coincidir con el ID único de la plataforma para el grupo o con el valor del campo group_id en la llamada 3.2.1 GET /services/usergroups/all. |
| groupMembers | string | El PID de usuario de los miembros que se agregarán a un grupo. |
| groupName | string | Nombre deseado para un grupo. |
| user_id | string | El ID de un usuario de Lumina. Se puede obtener de 1.2.1 - GET /users. |
3.2 - Endpoints principales
| Método | Ruta | Descripción |
|---|---|---|
| GET | /services/usergroups/all | Recupera todos los grupos. |
| GET | /services/users/{user_id}/userGroups | Recupera todos los grupos a los que pertenece un usuario. |
| GET | /services/usergroups/name/members | Recupera todos los miembros de grupo que pertenecen al nombre de un grupo. |
| GET | /services/usergroups/{group_id}/members | Recupera todos los miembros de grupo que pertenecen al ID de un grupo. |
| GET | /services/usergroups/{group_id} | Recupera la información de un grupo por su ID de grupo. |
| POST | /services/usergroups/create | Crea un grupo nuevo y agrega miembros al grupo. |
| PUT | /services/usergroups/{group_id} | Edita el nombre de un grupo. |
| DELETE | /services/usergroups/{group_id} | Elimina un grupo según su ID. |
| DELETE | /services/usergroups/{group_id}/clear | Elimina a todos los miembros del grupo. |
| DELETE | /services/usergroups/{group_id}/members/{user_id} | Elimina a un miembro específico del grupo por su ID. |
| POST | /services/usergroups/foldersByGroupPID | Recupera una lista de las carpetas a las que tiene acceso el grupo especificado. |
3.2.1 - GET /services/usergroups/all
Recupera todos los grupos.
URL de ejemplo: https://api-testing.yuja.com/services/usergroups/all
Respuesta de ejemplo:
{"userGroupPID":{"value":269},"groupName":"Anthropology","institutePID":2},{"userGroupPID":{"value":297},"groupName":"NewGroup","institutePID":2},{"userGroupPID":{"value":298},"groupName":"Group","institutePID":2}
3.2.2 - GET /services/users/{user_id}/userGroups
Recupera todos los grupos a los que pertenece un usuario.
URL de ejemplo: https://api-testing.yuja.com/services/users/3276/userGroups
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| user_id | parámetro de ruta | string | El valor debe coincidir con el campo user_id de 1.2.1 - GET /users |
Respuesta de ejemplo:
[
Anthropology, Microbiology, AdminGroup
]
3.2.3 - GET /services/usergroups/name/members
Recupera todos los miembros de grupo que pertenecen al nombre de un grupo.
URL de ejemplo: https://api-testing.yuja.com/services/usergroups/name/members
Este endpoint espera datos JSON con este formato en el parámetro de cuerpo:
{
"groupName":"anthropology"
}
Respuesta de ejemplo:
[
275749, 352461, 355740, 362283, 380225, 381147
]
3.2.4 - GET /services/usergroups/{group_id}/members
Recupera todos los miembros de grupo que pertenecen al ID de un grupo.
URL de ejemplo: https://api-testing.yuja.com/services/usergroups/73527/members
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | parámetro de ruta | string | El valor debe coincidir con el ID único de la plataforma para el grupo o con el valor del campo group_id en la llamada 3.2.1 GET /services/usergroups/all. |
Respuesta de ejemplo:
[
472862, 840173, 294591
]
3.2.5 - GET /services/usergroups/{group_id}
Recupera la información de un grupo por su ID de grupo.
URL de ejemplo: https://api-testing.yuja.com/services/usergroups/73527/members
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | parámetro de ruta | string | El valor debe coincidir con el ID único de la plataforma para el grupo o con el valor del campo group_id en la llamada 3.2.1 GET /services/usergroups/all. |
Respuesta de ejemplo:
{"value":{"userGroupPID":{"value":298},"groupName":"Admin Group","institutePID":2}}
3.2.6 - POST /services/usergroups/create
Crea un grupo y agrega miembros. Si el grupo ya existe, los miembros se agregarán a él. Para crear un grupo sin miembros, ingrese "groupMembers":"" con los datos JSON.
URL de ejemplo: https://api-testing.yuja.com/services/usergroups/create
Este endpoint espera datos JSON con este formato en el parámetro de cuerpo:
{
"groupName":"Admin Group",
"groupMembers":"37291,34370"
}
Respuesta de ejemplo:
Group created and Members added successfully
3.2.7 - PUT /services/usergroups/{group_id}
Edita el nombre de un grupo.
URL de ejemplo: https://api-testing.yuja.com/services/usergroups/482
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | parámetro de ruta | string | El valor debe coincidir con el ID único de la plataforma para el grupo o con el valor del campo group_id en la llamada 3.2.1 GET /services/usergroups/all. |
Este endpoint espera datos JSON con este formato en el parámetro de cuerpo:
{
"groupId":"847",
"groupName":"Admin Group"
}
Respuesta de ejemplo:
Successfully changed the group name
3.2.8 - DELETE /services/usergroups/{group_id}
Elimina el nombre de un grupo.
URL de ejemplo: https://api-testing.yuja.com/services/usergroups/482
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | parámetro de ruta | string | El valor debe coincidir con el ID único de la plataforma para el grupo o con el valor del campo group_id en la llamada 3.2.1 GET /services/usergroups/all. |
Respuesta de ejemplo:
Successfully deleted the group
3.2.9 - DELETE /services/usergroups/{group_id}/clear
Quita a todos los miembros de un grupo.
URL de ejemplo: https://api-testing.yuja.com/services/usergroups/482/clear
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | parámetro de ruta | string | El valor debe coincidir con el ID único de la plataforma para el grupo o con el valor del campo group_id en la llamada 3.2.1 GET /services/usergroups/all. |
Respuesta de ejemplo:
Successfully cleared group members
3.2.10 - DELETE /services/usergroups/{group_id}/members/{user_id}
Elimina a un miembro específico del grupo por su ID.
URL de ejemplo: https://api-testing.yuja.com/services/usergroups/482/members/73847
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | parámetro de ruta | string | El valor debe coincidir con el ID único de la plataforma para el grupo o con el valor del campo group_id en la llamada 3.2.1 GET /services/usergroups/all. |
| user_id | parámetro de ruta | string | El valor debe coincidir con el campo user_id de 1.2.1 - GET /users |
Respuesta de ejemplo:
Successfully deleted group member
3.2.11 - POST /services/usergroups/foldersByGroupPID
Recupera una lista de las carpetas a las que tiene acceso el grupo especificado.
URL de ejemplo: https://api-testing.yuja.com/services/usergroups/foldersByGroupPID
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| pageNumber | Parámetro de cuerpo | Integer | Opcional: El número de página de la lista. El valor predeterminado es 1. |
| pageSize | Parámetro de cuerpo | Integer | Opcional: El número de resultados por página. El valor predeterminado es 20 y el valor máximo es 200. |
| groupPID | Parámetro de cuerpo | Integer | El ID único de la plataforma para el grupo. |
Solicitud de ejemplo:
{
"pageNumber":1,
"pageSize":10,
"groupPID":368
}
Respuesta de ejemplo:
[
{
"folderPID": 10301538,
"folderTitle": "123321",
"directLink": "https://evergreen.yuja.com/V/PlayList?node=10301538&a=514129661",
"embedCode": "<iframe width='100%' height='540' src=\"https://evergreen.yuja.com/V/PlayList?node=10301538&a=514129661&preload=false\" frameborder=\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen loading=\"lazy\"></iframe>",
"folderVideosCount": 1
},
{
"folderPID": 10350161,
"folderTitle": "arjun internal lib test",
"directLink": "https://evergreen.yuja.com/V/PlayList?node=10350161&a=577455668",
"embedCode": "<iframe width='100%' height='540' src=\"https://evergreen.yuja.com/V/PlayList?node=10350161&a=577455668&preload=false\" frameborder=\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen loading=\"lazy\"></iframe>",
"folderVideosCount": 0
}
]
4 - Descripción general de la API Device
Los dispositivos representan todos los dispositivos de captura registrados en la organización. Opcionalmente, a cada dispositivo se le puede asignar una IP en la interfaz de administración. Este ID se recuperará junto con los demás ID de dispositivo.
4.1 - Modelo de objeto de dispositivo
| Variable | Tipo | Descripción |
|---|---|---|
| device_id | string | Un ID único generado por el sistema. |
| device_type | string enum | Tipo del dispositivo registrado. Puede ser uno de los siguientes valores: “software_capture”, “hardware_capture”. |
| name | string[100] | El nombre asignado al dispositivo. |
| access_level | string enum | Quién puede acceder a este dispositivo; puede ser uno de los siguientes valores: “it_admin”, “me”, “content_owner”, “member”. |
| register_user_id | string | ID del usuario que registró el dispositivo. |
| profile_id | string |
Un ID único generado por el sistema y asignado a un perfil. Nota: Para los dispositivos de hardware, establezca profile_id en "-1" |
| session_id | string | Un ID único generado por el sistema y asignado a una sesión. |
| _live_broadcast | boolean | Opcional, solo para dispositivos de hardware. Especifica si la sesión está configurada para transmisión en vivo. |
4.2 - Endpoints principales
| Método | Ruta | Descripción |
|---|---|---|
| GET | /devices | Recupera todos los dispositivos que pertenecen a la organización. |
| GET | /devices/{device_id} | Recupera un dispositivo individual según device_id. |
| PUT | /devices/{device_id} | Actualiza el nombre de un dispositivo individual según device_id. |
| POST | /devices/register | Registra un dispositivo. |
| GET | /devices/registrations/{access_id} | Una forma alternativa de obtener (GET) la información del dispositivo mediante access_id en lugar del device_id interno de YuJa. Solo está disponible para los tipos de dispositivo que usan un access_id. |
| GET | /devices/{device_id}/schedule | Recupera todas las programaciones asociadas con este dispositivo. |
| POST | /devices/{device_id}/profiles/create | Crea un perfil de captura para un dispositivo. |
| POST | /devices/session | Crea una sesión programada con el dispositivo y el perfil seleccionados. |
| POST | /devices/startsession | Crea una sesión al instante con el dispositivo y el perfil especificados. |
| GET | /session/{sessionId}/livestream/urls | Recupera las URL de transmisión en vivo y la URL de reproducción para el sessionId indicado. |
| POST | ||
| POST | /devices/stopstation | Detiene todas las sesiones que el dispositivo está grabando actualmente. |
| POST | /devices/{device_id}/status | Un endpoint para enviar periódicamente información de estado y de registro a Lumina. |
| GET | /devices/session/{session_id}/commands | La estación consultará periódicamente a Lumina para recuperar los comandos de pausa o detención, que se usarán para el control dentro de la sesión de una sesión activa. |
| DELETE | /devices/{session_id} | Quita una sesión de la programación del dispositivo. |
| GET | /devices/profiles/{device_id}/{login_id} | Recupera todos los perfiles de un usuario en un dispositivo especificado. |
| GET | /devices/profiles/{device_id} | Recupera todos los perfiles de un dispositivo especificado. |
| GET | /devices/userID/{sso} | Recupera el userID correspondiente. |
| POST | /devices/editsession | Edita una sesión existente. |
| DELETE | /devices/{device_id}/schedules | Quita todas las programaciones asociadas con este dispositivo. |
| POST | /devices/{device_id}/status | Guarda los estados y la información de registro de un dispositivo en particular. |
| POST | /devices/yujahardware/{device_id}/profiles/create | Crea un perfil nuevo. |
| PUT | devices/yujahardware/{device_id}/profiles/update | Actualiza un perfil de hub. |
| DELETE | /devices/yujahardware/{device_id}/profiles/{profile_id}/delete | Elimina un perfil de hub. |
| GET | /devices/{deviceId}/profiles/{externalProfileId} | Devuelve el ID de perfil de YuJa correspondiente al ID de perfil externo proporcionado. |
| DELETE | /devices/unregister/{deviceId} | Elimina cualquier dispositivo registrado. |
| PUT | /devices/{sessionId}/extend | Extiende el tiempo de sesión de los dispositivos de terceros (de forma predeterminada, 30 minutos). |
| GET | /devices/{deviceId}/{profileId}/previewlinks | Devuelve las URL de S3 prefirmadas que se pueden usar para actualizar las vistas previas de audio/imagen. |
| PUT | /devices/{sessionId}/stop | Detiene de inmediato la sesión de los dispositivos de terceros |
| POST | /devices/session/{sessionPId}/pause | Pausa la reproducción de la transmisión en vivo de una sesión en particular. |
| POST | /devices/session/{sessionPId}/resume | Reanuda la reproducción de la transmisión en vivo de una sesión en particular. |
4.2.1 - GET /services/devices
Devuelve una lista JSON de objetos, donde cada objeto es un dispositivo.
URL de ejemplo: https://api-testing.yuja.com/services/devices
Parámetros:
No se necesitan parámetros para esta llamada.
Respuesta de ejemplo:
{
{
"name": "station1",
"device_type": "software_capture",
"access_level": "it_admin",
“device_id ” : “12345”,
“register_user_id” : “user1”
},
{
"name": "station2",
"device_type": "hardware_capture",
"access_level": "me",
“device_id ” : “12346”,
“register_user_id” : “user2”
}
}
4.2.2 - GET /services/devices/{device_id}
Devuelve un objeto JSON, donde el objeto es un dispositivo.
URL de ejemplo: https://api-testing.yuja.com/services/devices/12456
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| device_id | parámetro de ruta | string | El valor debe coincidir con el campo device_id de la llamada GET /devices. |
Respuesta de ejemplo:
{
"name": "station2",
"device_type": "hardware_capture",
"access_level": "me",
“device_id ” : “12346”,
“register_user_id” : “user2”
}
4.2.3 - PUT /services/devices/{device_id}
Actualiza el dispositivo.
URL de ejemplo: https://api-testing.yuja.com/services/devices/12345
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| device_id | parámetro de ruta | string | El valor debe coincidir con el campo device_id de la llamada GET /devices. |
4.2.4 - POST /services/devices/register
Registra un dispositivo. Puede usar el endpoint existente PUT /devices/{device_id} para editar el dispositivo después del registro.
URL de ejemplo: https://api-testing.yuja.com/services/devices/register
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| access_id | Parámetro de cuerpo | string[100] | Obligatorio | Un identificador único de la estación de captura. |
| display_name | Parámetro de cuerpo | string[100] | Obligatorio | El nombre para mostrar que ve el usuario final. |
| station_type | Parámetro de cuerpo | string enum | Obligatorio | Especifica qué dispositivo de terceros se está registrando (Ejemplo: "extron", "epiphan"). |
| device_model | Parámetro de cuerpo | string | Opcional | El modelo del dispositivo. |
| firmware_version | Parámetro de cuerpo | string | Opcional | La versión del firmware del dispositivo. |
| user_identifier | Parámetro de cuerpo | string | Obligatorio | Un identificador del usuario de Lumina que será el propietario del dispositivo. |
| user_identifier_type | Parámetro de cuerpo | string enum | Obligatorio | Valores posibles: "ID", "LOGIN", "SSO". Determina cómo se tratará el parámetro user_identifier. ID representa el ID interno de YuJa, LOGIN representa el nombre de usuario de inicio de sesión del usuario y SSO representa el identificador de usuario de SSO del usuario. |
| configuration | Parámetro de cuerpo | JSON object | Opcional | Configuración diversa. |
| contact_list | Parámetro de cuerpo | string | Opcional | Una lista de usuarios a los que se enviarán las notificaciones del dispositivo. La cadena tendrá el formato de valores separados por comas, donde cada valor es un ID de usuario interno de Lumina o un correo electrónico. |
| save_folder (próximamente) | Parámetro de cuerpo | string | Opcional | La carpeta de Colecciones de medios en la que se guardará. La ruta será una ruta relativa que comienza en la carpeta del usuario, no una ruta absoluta. Si no se establece, se usará de forma predeterminada la colección predeterminada del usuario. |
Solicitud de ejemplo:
{
"access_id": "r0RQUYSM89TvCo9sm3AM",
"display_name" : "Device 1",
"device_model": "",
"firmware_version": "1.0",
"user_identifier": "username",
"user_identifier_type": "LOGIN",
"configuration": "",
"contact_list" :"11111, 11112, user@gmail.com",
"save_folder": "/MyMediaCollections/84fbbff5-b2bf-42ad-8b05-a5a227b0462e/6cfc190f-f7a4-4010-899d-b70456668e7c"
}
Respuesta de ejemplo:
{
“success”: “true”,
“error_message”: “”,
“id”: “12345”
}
4.2.5 - GET /services/devices/registrations/{access_Id}
Una forma alternativa de obtener (GET) la información del dispositivo mediante access_id en lugar del device_id interno de Lumina. Solo está disponible para los tipos de dispositivo que usan un access_id.
URL de ejemplo: https://api-testing.yuja.com/services/devices/registrations/r0RQUYSM89TvCo9sm3AM
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| access_id | Parámetro de ruta | string[100] | Obligatorio | Un identificador único de la estación de captura. |
Respuesta de ejemplo:
{
"name": "station1",
"device_type": "software_capture",
"access_level": "it_admin",
“device_id” : “12345”,
“register_user_id” : “user1”
}
4.2.6 - GET /services/devices/{device_id}/schedule
Devuelve los detalles de las sesiones del dispositivo dentro de un período de tiempo.
URL de ejemplo: https://api-testing.yuja.com/services/devices/12345/schedule?startTime=01-08-2021&endTime=07-08-2021
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| device_id | parámetro de ruta | string | El valor debe coincidir con el campo device_id de la llamada GET /devices. |
| startTime | Parámetro de consulta | string | Hora de inicio de la programación (dd-mm-yyyy) |
| endTime | Parámetro de consulta | string | Hora de finalización de la programación (dd-mm-yyyy) |
Respuesta de ejemplo:
[
{
"session_name": "First Day",
"isLiveStream": false,
"start_timestamp": 1707856200000,
"session_creator": "Martin Manson",
"owner_id": 374172,
"device_profile": "onestream",
"session_id": 76124,
"duration": "30:10",
"start_time": "Tue Feb 13 20:30:00 UTC 2024",
"session_description": "epiphan",
"repeat_summary": "Does Not Repeat",
"class_name": "Intro to Physics",
"class_code": "2255",
"platform_unique_id": "141070",
"video_id": 1974523
}
]
4.2.7 - POST /services/devices/{device_id}/profiles/create
Crea un perfil de captura para un dispositivo.
URL de ejemplo: https://api-testing.yuja.com/services/devices/{device_id}/profiles/create
Parámetros: El cuerpo contendrá un arreglo JSON en el que cada objeto JSON tendrá los siguientes campos.
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| profile_id | Parámetro del cuerpo | string[100] | Obligatorio | Un identificador único para el perfil. |
| name | Parámetro del cuerpo | string | Obligatorio | El nombre del perfil que se muestra al usuario final. |
| description | Parámetro del cuerpo | string | Opcional | La descripción del perfil que se muestra al usuario final. |
| isLiveStream | Parámetro del cuerpo | boolean | Opcional | El valor booleano determinará si la sesión creada mediante este perfil se transmitirá en vivo o no. El valor predeterminado es false |
Ejemplo de solicitud:
[
{
"profile_id": "456juhgj",
"name": "LiveStreamProfile",
"description": "No desc needed",
"isLiveStream": true
},
{
"profile_id": "789juhgj",
"name": "NormalProfile",
"description": "Normal Profile",
"isLiveStream": false
}
]
Ejemplo de respuesta:
{
"success": true,
"profile_ids": [
{
"external_profile_id": "456juhgj",
"yuja_profile_id": 3440
},
{
"external_profile_id": "789juhgj",
"yuja_profile_id": 3441
}
]
}
4.2.8 - POST /services/devices/session
Cree una sesión.
URL de ejemplo: https://api-testing.yuja.com/services/devices/session
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| start_year | Parámetro del cuerpo | string | Año de inicio de la sesión. |
| start_month | Parámetro del cuerpo | string | Mes de inicio de la sesión. |
| start_day | Parámetro del cuerpo | string | Día de inicio de la sesión. |
| start_hour | Parámetro del cuerpo | string | Hora de inicio de la sesión. |
| start_minute | Parámetro del cuerpo | string | Minuto de inicio de la sesión. |
| duration_hour | Parámetro del cuerpo | string | Número de horas que durará la sesión. |
| duration_minute | Parámetro del cuerpo | string | Número de minutos que durará la sesión. |
| is_live_broadcast | Parámetro del cuerpo | boolean | Para grabar una transmisión en vivo, ingrese true; de lo contrario, ingrese false. |
| station_id | Parámetro del cuerpo | string | ID correspondiente al dispositivo con el que desea grabar (se obtiene en 4.2.1). |
| login_id | Parámetro del cuerpo | string | Use sso O login_id. |
| sso | Parámetro del cuerpo | string | Use sso O login_id. |
| session_title | Parámetro del cuerpo | string | Un título para la sesión. |
| session_description | Parámetro del cuerpo | string | Opcional. |
| label_colour | Parámetro del cuerpo | string | Opcional; debe tener el formato “#ABCDEF”. |
| profile_id | Parámetro del cuerpo | string |
Un ID correspondiente al perfil que desea usar para la grabación (los ID de perfil se encuentran en 4.2.16). Nota: Para dispositivos de hardware, establezca profile_id en “-1” |
| folderPIDs | Parámetro del cuerpo | string | Opcional: Ingrese los PID válidos de las carpetas de CampusTube en las que desea publicar las grabaciones del Hub, separándolos con una coma. |
| group_id | Parámetro del cuerpo | string | Opcional: El ID de grupo se puede encontrar mediante la solicitud para obtener todos los grupos (2.2.1). Solo puede tener group_id O class_code, no ambos. |
| class_code | Parámetro del cuerpo | string | Opcional: El class_code lo agrega el usuario. Solo puede tener group_id O class_code, no ambos. |
| return_session | Parámetro del cuerpo | boolean | Opcional: Envíe true para obtener los detalles de la sesión en la respuesta. |
| storage_path | Parámetro del cuerpo | string | Opcional: Indique la ruta relativa a Mis colecciones de medios para almacenar el video en esa carpeta. Si se envía un valor en blanco (“”) o solo una barra (“/”), el video se almacenará en las colecciones predeterminadas. Además, si la carpeta indicada no existe, la API creará una por usted. |
| manuallyStartScheduledSession | Parámetro del cuerpo | boolean | Opcional: Requiere que la sesión se inicie manualmente. |
| usersToSendScheduleCopy | Parámetro del cuerpo | string | Opcional: Los PID de los usuarios a los que se enviará una invitación de calendario. |
| createPlaceholder | Parámetro del cuerpo | boolean | Opcional: Cree un marcador de posición de miniatura en la colección predeterminada o en el storage_path especificado. |
Ejemplo de solicitud:
{
"start_year":"2021",
"start_month":"10",
"start_day":"7",
"start_hour":"0",
"start_minute":"0",
"duration_hour":"1",
"duration_minute":"30",
"is_live_broadcast":true,
"station_id":"2906",
"login_id":"marythompson",
"session_title":"A Change In The Current Of Microbiology",
"session_description":"Introduction to Microbiology",
"label_colour":“#33AA99”,
"profile_id":“700847”,
"group_id": "216710,216298,216301",
"folderPIDs": "9999909,9973996,10001141,9983955",
"manuallyStartScheduledSession":true,
"usersToSendScheduleCopy":"374971,375097",
"return_session":true,
"createPlaceholder":true
}
Ejemplo de respuesta:
{
"success": true,
"sessionDetails": {
"sessionPID": 41194,
"ownerPID": 284667,
"userName": "APITester_NA",
"sessionTitle": "Test session",
"duration": 60,
"startTime": "2021-11-24 13:50:00",
"endTime": "2021-11-24 14:50:00"
}
}
4.2.9 - POST /services/devices/startsession
Inicie una sesión de inmediato.
URL de ejemplo: https://api-testing.yuja.com/services/devices/startsession
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| is_live_broadcast | Parámetro del cuerpo | string | Use “true” para grabar una transmisión en vivo y “false” en caso contrario. |
| group_id | Parámetro del cuerpo | string | Opcional: El ID de grupo se puede encontrar mediante la solicitud para obtener todos los grupos (2.2.1). Se necesita group_id o class_code si la sesión es en vivo. Solo puede tener group_id O class_code, no ambos. |
| class_code | Parámetro del cuerpo | string | Opcional: El class_code lo agrega el usuario. Se necesita group_id o class_code si la sesión es en vivo. Solo puede tener group_id O class_code, no ambos. |
| duration_minute | Parámetro del cuerpo | string | La duración de la grabación en minutos. |
| station_id | Parámetro del cuerpo | string | El ID del dispositivo de grabación se puede encontrar con (4.2.1). |
| login_id | Parámetro del cuerpo | string | Use sso O login_id. |
| sso | Parámetro del cuerpo | string | Use sso O login_id. |
| session_title | Parámetro del cuerpo | string | Título de la sesión |
| session_description | Parámetro del cuerpo | string | Descripción opcional de la sesión. |
| profile_id | Parámetro del cuerpo | string | El ID de perfil se puede encontrar con 4.2.16. |
| storage_path | Parámetro del cuerpo | string | Opcional: Indique la ruta relativa a Mis colecciones de medios para almacenar el video en esa carpeta. Si se envía un valor en blanco (“”) o solo una barra (“/”), el video se almacenará en las colecciones predeterminadas. Además, si la carpeta indicada no existe, la API creará una por usted. |
Ejemplo de solicitud:
{
"is_live_broadcast": "true",
"duration_minute": "45"
"station_id": "2906"
"login_id": "marythompson"
"session_title": "A Change In The Current Of Microbiology",
"profile_id": "7008c47"
"storage_path" : "/Sem4/CompScience"
}
4.2.10 - GET/POST /services/devices/{sessionId}/livestream/urls
Un endpoint que responde con las URL de transmisión en vivo y las URL de reproducción para un sessionId determinado. Tenga en cuenta que, antes de usar la API, YuJa Software Capture debe estar registrado en su zona.
Parámetros de la solicitud:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| sessionId | Parámetro de ruta | Integer | Obligatorio | El sessionId de la sesión programada (se puede obtener de /device_id/schedule) |
| JSONArray | Parámetro del cuerpo | string |
JSONArray (arreglo de los siguientes objetos JSON) (se permiten como máximo 3 transmisiones por sesión)
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| streamName | JSONProperty | String | Obligatorio | Nombre de transmisión único que se utiliza para crear la clave de transmisión |
| streamQuality | JSONProperty | String | Opcional |
Metadatos opcionales Valores posibles: 240 Valor predeterminado: 720 |
| audioOnly | JSONProperty | Boolean | Opcional |
Metadatos opcionales Valores posibles: True Valor predeterminado: False |
| videoOnly | JSONProperty | Boolean | Opcional |
Metadatos opcionales: Valores posibles: True Valor predeterminado: False |
| streamPriority | JSONProperty | String | Opcional |
Metadatos opcionales Un valor menor indica mayor prioridad Valores posibles: 1 Valor predeterminado: 1 |
Cuerpo de solicitud de ejemplo:
[
{
"streamName": "stream1",
"streamQuality" : "720",
"videoOnly" : false,
"streamPriority" : "1"
},
{
"streamName": "stream2",
"streamQuality" : "720",
"audioOnly": false,
"videoOnly" : false,
"streamPriority" : "2"
}
]
Respuesta de ejemplo:
{
"success": true,
"playbackURL": "https://api-testing.yuja.com/LiveStream/E/37148/1071373286",
"liveStreamDetails": [
{
"streamName": "stream2",
"streamKey": "stream2_34016ce3-1982-4597-802c-90cef0402682_1626897215559",
"liveStreamURL": "rtmp://staging-lc1.yuja.com:1935/rtmp_live?token=adf3086d-b2fd-4369-a992-c3052d42ffc9_1071373286"
},
{
"streamName": "stream1",
"streamKey": "stream1_30613ac6-2cd8-4388-937b-bb2c0c105e1b_1626897215412",
"liveStreamURL": "rtmp://staging-lc1.yuja.com:1935/rtmp_live?token=ee1731b7-9b11-42f5-9e36-2dd5a1316664_1071373286"
}
]
}
4.2.11 - POST /services/devices/stopstation
Detenga una sesión de inmediato.
URL de ejemplo: https://api-testing.yuja.com/services/devices/stopstation
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| device_id | Parámetro del cuerpo | string | El ID del dispositivo de grabación se puede encontrar con (4.2.1). |
| login_id | Parámetro del cuerpo | string | Inicio de sesión. |
Ejemplo de solicitud:
{
"device_id": "55492",
"login_id": "marythompson",
}
4.2.12 - POST /services/devices/{device_id}/status (Próximamente)
Un endpoint para enviar periódicamente información de estado y de registro a Lumina. Esto incluye nuestros registros de auditoría, registros de errores y alertas, como las alertas de micrófono bajo (audio de entrada).
URL de ejemplo: https://api-testing.yuja.com/services/devices/12345/status
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| device_id | Parámetro de ruta | integer | Obligatorio | El ID de dispositivo de la estación de captura. |
| timestamp | Parámetro del cuerpo | Timestamp | Obligatorio | Una marca de tiempo que corresponde al momento en que ocurrió el evento. |
| type | Parámetro del cuerpo | string | Obligatorio | Valores: status, alert, error. |
| content | Parámetro del cuerpo | integer | Opcional | El estado del dispositivo (uploading, connected, streaming, disconnected), el contenido de la alerta o los registros de errores, según el parámetro type. |
Ejemplo de solicitud:
{
"device_id": 52341,
"timestamp": 2021-05-20 12:00:00,
"type": "status",
}
Ejemplo de respuesta:
{
“success”: true
}
4.2.13 - GET /services/devices/session/{session_id}/commands (Próximamente)
La estación consultará periódicamente a Lumina para obtener los comandos de pausa o detención que se usarán para controlar durante la sesión una sesión activa. El intervalo de sondeo en medio de una sesión de grabación tendrá una frecuencia mayor que cuando la estación está en espera. La frecuencia máxima de sondeo no debe superar una vez cada 10 segundos.
URL de ejemplo: https://api-testing.yuja.com/services/devices/session/614/commands
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| session_id | Parámetro de ruta | integer | Obligatorio | El ID de la sesión. |
Respuesta:
| Nombre | Tipo | Descripción |
|---|---|---|
| command | string | do-nothing, pause, stop. |
4.2.14 - DELETE /services/devices/{session_id}
Elimine una sesión programada.
URL de ejemplo: https://api-testing.yuja.com/services/devices/679
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| session_id | Parámetro de ruta | string | El ID del dispositivo se puede encontrar con (4.2.4). |
4.2.15 - GET /services/devices/profiles/{device_id}/{login_id}
Obtenga los perfiles de un usuario específico con un dispositivo específico.
URL de ejemplo: https://api-testing.yuja.com/services/devices/profiles/12345/loginID123
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| device_id | Parámetro del cuerpo | string | El ID del dispositivo de grabación se puede encontrar con (4.2.1). |
| login_id | Parámetro del cuerpo | string | Inicio de sesión del usuario que tiene el perfil. |
Ejemplo de respuesta:
{
"profiles":[
{
"profile_name": "rylmao",
"profile_id": "1150"
},
{
"profile_name": "notlive",
"profile_id": "1155"
},
{
"profile_name": "liveoncesource",
"profile_id": "1160"
},
{ "profile_name": "allofthem3sources",
"profile_id": "1164"
},
{
"profile_name": "Audio Only",
"profile_id": "1173"
},
{
"profile_name": "Screen Only",
"profile_id": "1176"
}
]
}
4.2.16 - GET /services/devices/profiles/{device_id}
Obtenga los perfiles de un usuario específico con un dispositivo específico.
URL de ejemplo: https://api-testing.yuja.com/services/devices/profiles/12345
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| device_id | Parámetro del cuerpo | string | El ID del dispositivo de grabación se puede encontrar con (4.2.1). |
Ejemplo de respuesta:
{
"profiles": [
{
"profile_name": "prof1",
"profile_id": "3431",
"external_profile_id": "85693erf"
},
{
"profile_name": "prof2",
"profile_id": "3432",
"external_profile_id": "85693bgh"
}
]
}
4.2.17 - GET /services/devices/userID/{sso}
Recupere el userID correspondiente.
URL de ejemplo: https://api-testing.yuja.com/services/devices/userid/testuser
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| sso | Parámetro del cuerpo | string | Se puede obtener de 4.2.4. |
Ejemplo de respuesta:
testuser
4.2.18 - POST /services/devices/editsession
Actualice una sesión con los parámetros indicados.
URL de ejemplo: https://api-testing.yuja.com/services/devices/editsession
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| session_id | Parámetro del cuerpo | string | Se puede obtener de 4.2.11. |
| start_year | Parámetro del cuerpo | string | Opcional: Año de inicio de la sesión. |
| start_month | Parámetro del cuerpo | string | Opcional: Mes de inicio de la sesión. |
| start_day | Parámetro del cuerpo | string | Opcional: Día de inicio de la sesión. |
| start_hour | Parámetro del cuerpo | string | Opcional: Hora de inicio de la sesión. |
| start_minute | Parámetro del cuerpo | string | Opcional: Minuto de inicio de la sesión. |
| duration_hour | Parámetro del cuerpo | string | Opcional: Número de horas que durará la sesión. |
| duration_minute | Parámetro del cuerpo | string | Opcional: Número de minutos que durará la sesión. |
| station_id | Parámetro del cuerpo | string | Opcional: ID correspondiente al dispositivo con el que desea grabar (se obtiene en 4.2.1). |
| login_id | Parámetro del cuerpo | string | Opcional: Use sso O login_id. |
| sso | Parámetro del cuerpo | string | Opcional: Use sso O login_id. |
| session_title | Parámetro del cuerpo | string | Opcional: Un título para la sesión. |
| session_description | Parámetro del cuerpo | string | Opcional: Una descripción. |
| label_colour | Parámetro del cuerpo | string | Opcional; debe tener el formato “#ABCDEF”. |
| profile_id | Parámetro del cuerpo | string | Opcional: Un ID correspondiente al perfil que desea usar para la grabación (los ID de perfil se encuentran en 4.2.16). |
| group_id | Parámetro del cuerpo | string | Opcional: El ID de grupo se puede encontrar mediante la solicitud para obtener todos los grupos (2.2.1). Solo puede tener group_id O class_code, no ambos. |
| class_code | Parámetro del cuerpo | string | Opcional: El class_code lo agrega el usuario. Solo puede tener group_id O class_code, no ambos. |
| storage_path | Parámetro del cuerpo | string | Opcional: Indique la ruta relativa a Mis colecciones de medios para almacenar el video en esa carpeta. Si se envía un valor en blanco (“”) o solo una barra (“/”), el video se almacenará en las colecciones predeterminadas. Además, si la carpeta indicada no existe, la API creará una por usted. |
Ejemplo de solicitud:
{
"session_id": ,
"start_year": "2021",
"start_month": "10",
"start_day": "7",
"start_hour": "0",
"start_minute": "0",
"duration_hour": "1",
"duration_minute": "30",
"station_id": "2906",
"login_id": "marythompson",
"session_title": "A Change In The Current Of Microbiology",
"session_description": "Introduction to Microbiology",
"label_colour": "#33AA99",
"profile_id": "<7008c47>"
"storage_path" : "/Sem4/CompScience"
}
4.2.19 - DELETE /services/devices/{device_id}/schedules
Elimine todas las sesiones programadas asociadas con el dispositivo.
URL de ejemplo: https://api-testing.yuja.com/services/devices/12345/schedules
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| device_id | Parámetro de ruta | string | El ID del dispositivo se puede encontrar con (4.2.4). |
4.2.20 - GET /services/devices/{user_id}/sessions
Devuelve los detalles del usuario dentro de un período de tiempo.
URL de ejemplo: https://api-testing.yuja.com/services/devices/marythompson
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| user_id | Parámetro de ruta | string | El valor debe ser un user_id válido |
| startTime | Parámetro de consulta | string | Hora de inicio de una programación (dd-mm-yyyy) |
| endTime | Parámetro de consulta | string | Hora de finalización de la programación (dd-mm-yyyy) |
Ejemplo de respuesta:
[
{
"duration": "0:10",
"session_name": "Chemistry 101 Lecture",
"start_time": "Sun May 10 18:00:00 EDT 2020",
"start_timestamp": 1589148000000,
"session_description": "CHEM 101 Recurring Lecture",
"session_creator": "April Hurst",
"repeat_summary": "Weekly on Sunday for 12 sessions",
"device_profile": "",
"session_id": 1121,
"class_name": "Chemistry 101",
"class_code": "",
"video_id": -1
}
]
4.2.21 - POST /services/devices/{device_id}/status
Un endpoint para enviar periódicamente información de estado y de registro a YuJa EVP.
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| device_id | Parámetro de ruta | Integer | Obligatorio | El ID de dispositivo de la estación de captura |
| statusType | Parámetro del cuerpo | string | Obligatorio | Valores posibles: DEVICE_STATUS |
| deviceStatus | Parámetro del cuerpo JSON | string | Obligatorio |
Valores aceptados actualmente: uploading, streaming, ready, recording Podría agregarse: paused |
URL de ejemplo: https://api-testing.yuja.com/services/devices/1480/status
Cuerpo de solicitud de ejemplo:
{
"statusType": "DEVICE_STATUS",
"deviceStatus": {
"recording": false,
"uploading": true,
"streaming": false,
"ready": true,
“extra_info”: Objeto JSON que contiene cualquier otra información útil que aún no se ha definido.
}
}Respuesta de ejemplo:
{
"success": true,
"command": "",
"command_data": ""
}
Nota: command y command_data son marcadores de posición para funcionalidades futuras de control de los dispositivos, como la posibilidad de indicar a los dispositivos que pausen o finalicen la sesión desde nuestro portal.
4.2.22 - POST /services/devices/yujahardware/{device_id}/profiles/create
Un endpoint para crear perfiles de hub.
URL de ejemplo: https://api-testing.yuja.com/services/devices/yujahardware/{device_id}/profiles/create
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| device_id | Parámetro de ruta | Integer | Un ID de estación de captura válido. |
| Name | Cuerpo | String [255] | El nombre del perfil del hub no puede estar vacío. |
| Description | Cuerpo | String [255] | Descripción del perfil. |
| MediaDevice0 | Cuerpo | Boolean | Habilita o no el dispositivo multimedia 0. |
| MediaDevice1 | Cuerpo | Boolean | Habilita o no el dispositivo multimedia 1. |
| MediaDevice2 | Cuerpo | Boolean | Habilita o no el dispositivo multimedia 2. |
| LineInAudio | Cuerpo | Boolean | Habilita o no el audio de entrada de línea. |
Cuerpo de solicitud de ejemplo:
[{
"Name": "1",
"Description": "",
"MediaDevice0": true,
"MediaDevice1": false,
"MediaDevice2": false,
"LineInAudio": true
}]
Respuesta de ejemplo:
{"error_message":"","success":true,"profiles":[{"profile_name":"1","profile_id":"3313"}]}
4.2.23 - PUT /services/devices/yujahardware/{device_id}/profiles/update
Un endpoint para actualizar un perfil de hub.
URL de ejemplo: https://api-testing.yuja.com/services/devices/yujahardware/{device_id}/profiles/update
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| device_id | Parámetro de ruta | Integer | Un ID de estación de captura válido. |
| Name | Cuerpo | String [255] | El nombre del perfil del hub no puede estar vacío. |
| Description | Cuerpo | String [255] | Descripción del perfil. |
| MediaDevice0 | Cuerpo | Boolean | Habilita o no el dispositivo multimedia 0. |
| MediaDevice1 | Cuerpo | Boolean | Habilita o no el dispositivo multimedia 1. |
| MediaDevice2 | Cuerpo | Boolean | Habilita o no el dispositivo multimedia 2. |
| LineInAudio | Cuerpo | Boolean | Habilita o no el audio de entrada de línea. |
Cuerpo de solicitud de ejemplo:
{
"ProfilePID": 3217,
"Name":"Test Update",
"Description": "A capture profile containing 1 video stream and 1 audio stream",
"MediaDevice0": false,
"MediaDevice1": true,
"MediaDevice2": false,
"LineInAudio": true
}
Respuesta de ejemplo:
{
"errorMessage": "",
"success": true
}
4.2.24 - DELETE /services/devices/yujahardware/{device_id}/profiles/{profile_id}/delete
Un endpoint para eliminar un perfil de hub.
URL de ejemplo:
https://api-testing.yuja.com/services/devices/yujahardware/{device_id}/profiles/{profile_id}/delete
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| device_id | Parámetro de ruta | Integer | Un ID de estación de captura válido. |
| profile_id | Parámetro de ruta | Integer | Un ID de perfil válido. |
Respuesta de ejemplo:
{ "errorMessage": "",
"success": true
}
4.2.25 - GET /services/devices/{deviceId}/profiles/{externalProfileId}
Devuelve el ID de perfil de YuJa correspondiente al ID de perfil externo proporcionado.
URL de ejemplo: https://api-testing.yuja.com/services/devices/1543/profiles/external/wstestprofile
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| deviceId | Parámetro de ruta | Integer | Obligatorio | El ID del dispositivo de grabación |
| externalProfileId | Parámetro de ruta | String | Obligatorio | El ID de perfil del dispositivo externo |
Ejemplo de respuesta:
{
"profile_Id": "wstestprofile",
"yuja_profile_Id": 3412
}
4.2.26 - DELETE /services/devices/unregister/{deviceId}
Elimina cualquier dispositivo registrado.
URL de ejemplo: https://api-testing.yuja.com/services/devices/unregister/1547
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| device_id | Parámetro de ruta | Integer | Obligatorio | El ID del dispositivo de grabación se puede encontrar con (4.2.1). |
Ejemplo de respuesta:
{
"success": true
}
4.2.27 - PUT /services/devices/{sessionId}/extend
Amplía el tiempo de sesión de los dispositivos de terceros (30 minutos de forma predeterminada).
URL de ejemplo: https://api-testing.yuja.com/services/devices/38957/extend?minutes=6
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| sessionId | Parámetro de ruta | Integer | Obligatorio | El ID de la sesión que se debe ampliar |
| minutes | Parámetro de consulta | Integer | Opcional | Cantidad de minutos que se agregarán a la duración de la sesión |
Ejemplo de respuesta:
{
"success": true,
"message": "Successfully extended session for 6 minutes"
}
4.2.28 - GET - /services/devices/{deviceId}/{profileId}/previewlinks
Devuelve las URL de S3 prefirmadas que se pueden usar para actualizar las vistas previas de audio e imagen.
URL de ejemplo: https://api-testing.yuja.com/services/devices/1480/3431/previewlinks?videoStream=1&audioStream=1
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| deviceId | Parámetro de ruta | Integer | Obligatorio | El ID del dispositivo de grabación. |
| profileId | Parámetro de ruta | String | Obligatorio | El ID de perfil de YuJa del dispositivo externo. |
| videoStream | Parámetro de consulta | Integer | Obligatorio | Cantidad de transmisiones de video asociadas al perfil. Cantidad máxima de videos - 3 |
| audioStream | Parámetro de consulta | Integer | Obligatorio | Cantidad de transmisiones de audio asociadas al perfil. Cantidad máxima de audios - 2 |
Ejemplo de respuesta:
{
"audios": [
{
"audioJsonURL":
"https://yuja-device-thumbnail.s3.amazonaws.com/sanchitbig2-epiphansanchitprof1-audio-0.json?X-Amz-Security-Token=IQoJb3JpZ2luX2VjEM%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMSJHMEUCIDhdEg115WlmnSKN8uqgmgL%2BDOcee6x6RSmE3OoMH22IAiEAwaFQQ4TbarjWBCvdVj1lS5JBs08IeNyIhMkhU%2FenksIq%2BgMISBAAGgw2MzE5OTkzNDU1OTMiDG9nrti1XJHkrtrKJyrXA2er1rESVKfXjPXRTrn7nLqbpFQ6uXyC2ajQMiNsQl8OMN5zcE04YXQeIrnnB6FweDvD00f7xIzHoB6w%2Fk1pkxmA%2FN%2BvJuPjeUVeIs1qy6Ksv1C5pR1Ua9HGg56lLuVxmit0jn5VWWaFkF9fzSBNX9g6ZeexKnQOUjMvYUxnTbyL0S3Tb0gEumIwf7L%2Fm5zQgqVoH4RQaSofmOVKc2sFrgi%2BwjyPC9BmB1XzairI7MasbfWZqNlCu%2BrG5HAv7TcA1aPeJ%2BbWxh8XkTKf3P%2B1xXjsTOxcHWjJCDnyLJ7dNfkNe1D2QV8c9wb2Bs98%2B2zEPuIFr%2FlQXYwuROjSVMk3QU714cF09q8W5jwwjSFQJedWfBwQrmEGNzg2CbM5gbJPh%2BLuuUkWZ78Y0xL1rMWQgK2Fd3OXWdqkWqgVbhTm%2FOalftwQ7GLD9WElErRLYz1OKPp2UpESpIrJd8B%2BVDFeBxlF3Zdums9yKhW4xBK8sDaXyna8DvlwtJqvo3pNQjjm4%2FJHwYgz32parf%2Fc6v7sgcXeEt2Rh7yQ8D8RanVqFzElhbg0IVoaU7RlQaLJXwtf1Ofkdbn%2FhwKZ8jRmAsM3FfkK97bkmOTZYGBniGMjvarXMoNP3EhAizCJqOyKBjqlAfeQJq5Prq3TBXA0fd4wA2sAHAstHfN6PKjnllZahJj04r4a5NQqG4NxLgX4XbpInydKijLCSFfRwtgi1ar6I5EMJG23hZwhIbg2%2FR1crTUcUZ7PxPfsGLtxnpaco%2FIImR1ljNA6z9fs4iq%2F4TxUKNRQpIBgqqIScGq0dqFF1CRnROW8ptmv1zTotHHtLIBabWPT9RjwgAuSGfOLyG7DYmAj%2Fa6Q8Q%3D%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20211004T153617Z&X-Amz-SignedHeaders=host&X-Amz-Expires=518399&X-Amz-Credential=ASIAZGJQYWO42OPAIK5Z%2F20211004%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=29ff5b318d3e7032e9f460680e8325bb94d8f81118057f6c3c9c7bdd9bcb46fb", "audioMp4URL":
"https://yuja-device-thumbnail.s3.amazonaws.com/sanchitbig2-epiphansanchitprof1-audio-0.mp4?X-Amz-Security-Token=IQoJb3JpZ2luX2VjEM%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMSJHMEUCIDhdEg115WlmnSKN8uqgmgL%2BDOcee6x6RSmE3OoMH22IAiEAwaFQQ4TbarjWBCvdVj1lS5JBs08IeNyIhMkhU%2FenksIq%2BgMISBAAGgw2MzE5OTkzNDU1OTMiDG9nrti1XJHkrtrKJyrXA2er1rESVKfXjPXRTrn7nLqbpFQ6uXyC2ajQMiNsQl8OMN5zcE04YXQeIrnnB6FweDvD00f7xIzHoB6w%2Fk1pkxmA%2FN%2BvJuPjeUVeIs1qy6Ksv1C5pR1Ua9HGg56lLuVxmit0jn5VWWaFkF9fzSBNX9g6ZeexKnQOUjMvYUxnTbyL0S3Tb0gEumIwf7L%2Fm5zQgqVoH4RQaSofmOVKc2sFrgi%2BwjyPC9BmB1XzairI7MasbfWZqNlCu%2BrG5HAv7TcA1aPeJ%2BbWxh8XkTKf3P%2B1xXjsTOxcHWjJCDnyLJ7dNfkNe1D2QV8c9wb2Bs98%2B2zEPuIFr%2FlQXYwuROjSVMk3QU714cF09q8W5jwwjSFQJedWfBwQrmEGNzg2CbM5gbJPh%2BLuuUkWZ78Y0xL1rMWQgK2Fd3OXWdqkWqgVbhTm%2FOalftwQ7GLD9WElErRLYz1OKPp2UpESpIrJd8B%2BVDFeBxlF3Zdums9yKhW4xBK8sDaXyna8DvlwtJqvo3pNQjjm4%2FJHwYgz32parf%2Fc6v7sgcXeEt2Rh7yQ8D8RanVqFzElhbg0IVoaU7RlQaLJXwtf1Ofkdbn%2FhwKZ8jRmAsM3FfkK97bkmOTZYGBniGMjvarXMoNP3EhAizCJqOyKBjqlAfeQJq5Prq3TBXA0fd4wA2sAHAstHfN6PKjnllZahJj04r4a5NQqG4NxLgX4XbpInydKijLCSFfRwtgi1ar6I5EMJG23hZwhIbg2%2FR1crTUcUZ7PxPfsGLtxnpaco%2FIImR1ljNA6z9fs4iq%2F4TxUKNRQpIBgqqIScGq0dqFF1CRnROW8ptmv1zTotHHtLIBabWPT9RjwgAuSGfOLyG7DYmAj%2Fa6Q8Q%3D%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20211004T153617Z&X-Amz-SignedHeaders=host&X-Amz-Expires=518399&X-Amz-Credential=ASIAZGJQYWO42OPAIK5Z%2F20211004%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=ff843f683a0b01aa09b4c96c443a6e80f7b30f476397a234b578dc1e2dbd4cc1" }
],
"deviceId": 1480,
"images": [
"https://yuja-device-thumbnail.s3.amazonaws.com/sanchitbig2-epiphansanchitprof1-img-0?X-Amz-Security-Token=IQoJb3JpZ2luX2VjEM%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMSJHMEUCIDhdEg115WlmnSKN8uqgmgL%2BDOcee6x6RSmE3OoMH22IAiEAwaFQQ4TbarjWBCvdVj1lS5JBs08IeNyIhMkhU%2FenksIq%2BgMISBAAGgw2MzE5OTkzNDU1OTMiDG9nrti1XJHkrtrKJyrXA2er1rESVKfXjPXRTrn7nLqbpFQ6uXyC2ajQMiNsQl8OMN5zcE04YXQeIrnnB6FweDvD00f7xIzHoB6w%2Fk1pkxmA%2FN%2BvJuPjeUVeIs1qy6Ksv1C5pR1Ua9HGg56lLuVxmit0jn5VWWaFkF9fzSBNX9g6ZeexKnQOUjMvYUxnTbyL0S3Tb0gEumIwf7L%2Fm5zQgqVoH4RQaSofmOVKc2sFrgi%2BwjyPC9BmB1XzairI7MasbfWZqNlCu%2BrG5HAv7TcA1aPeJ%2BbWxh8XkTKf3P%2B1xXjsTOxcHWjJCDnyLJ7dNfkNe1D2QV8c9wb2Bs98%2B2zEPuIFr%2FlQXYwuROjSVMk3QU714cF09q8W5jwwjSFQJedWfBwQrmEGNzg2CbM5gbJPh%2BLuuUkWZ78Y0xL1rMWQgK2Fd3OXWdqkWqgVbhTm%2FOalftwQ7GLD9WElErRLYz1OKPp2UpESpIrJd8B%2BVDFeBxlF3Zdums9yKhW4xBK8sDaXyna8DvlwtJqvo3pNQjjm4%2FJHwYgz32parf%2Fc6v7sgcXeEt2Rh7yQ8D8RanVqFzElhbg0IVoaU7RlQaLJXwtf1Ofkdbn%2FhwKZ8jRmAsM3FfkK97bkmOTZYGBniGMjvarXMoNP3EhAizCJqOyKBjqlAfeQJq5Prq3TBXA0fd4wA2sAHAstHfN6PKjnllZahJj04r4a5NQqG4NxLgX4XbpInydKijLCSFfRwtgi1ar6I5EMJG23hZwhIbg2%2FR1crTUcUZ7PxPfsGLtxnpaco%2FIImR1ljNA6z9fs4iq%2F4TxUKNRQpIBgqqIScGq0dqFF1CRnROW8ptmv1zTotHHtLIBabWPT9RjwgAuSGfOLyG7DYmAj%2Fa6Q8Q%3D%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20211004T153617Z&X-Amz-SignedHeaders=host&X-Amz-Expires=518399&X-Amz-Credential=ASIAZGJQYWO42OPAIK5Z%2F20211004%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=18898f478edf1505c71ea25f287dd6fea5bb252fd240616cb3d2c0c760bbfccc" ],
"success": true,
"yujaProfileId": 3431
}
4.2.29 - PUT - /services/devices/{sessionId}/stop
Detiene de inmediato la sesión de los dispositivos de terceros
URL de ejemplo: https://api-testing.yuja.com/services/devices/38957/stop
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| sessionId | Parámetro de ruta | Integer | Obligatorio | El ID de la sesión que se debe detener. |
Ejemplo de respuesta:
{
"success": true,
"message": "Successfully stopped the session"
}
4.2.30 - POST - /services/devices/session/{sessionPId}/pause
Pausa la reproducción de la transmisión en vivo de una sesión determinada.
URL de ejemplo: https://api-testing.yuja.com/services/devices/session/38519/pause
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| sessionPId | Parámetro de ruta | Integer | Obligatorio | El ID de la sesión que se debe pausar. |
Ejemplo de respuesta:
{
"success": true
}
4.2.31 - POST - /services/devices/session/{sessionPId}/resume
Reanuda la reproducción de la transmisión en vivo de una sesión determinada.
URL de ejemplo: https://api-testing.yuja.com/services/devices/session/38519/resume
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| sessionPId | Parámetro de ruta | Integer | Obligatorio | El ID de la sesión que se debe reanudar. |
Ejemplo de respuesta:
{
"success": true
}
4.2.32 - DELETE /services/devices/{deviceId}/profiles/thirdParty/{yujaProfileId}
Elimina perfiles de terceros.
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| DeviceId | Parámetro de ruta | Integer | Un ID de dispositivo válido. |
| YuJaProfileId | Parámetro de ruta | Integer | Un ID de perfil de YuJa válido (disponible en GET /devices/profiles/{device_id}) |
Ejemplo de respuesta:
{
"success": true,
"message": "Profile Deleted Successfully!"
}
4.2.33 - PUT /services/devices/{deviceId}/profiles/thirdParty/{yujaProfileId}
Actualiza los detalles de los perfiles de terceros.
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| DeviceId | Parámetro de ruta | Integer | Un ID de dispositivo válido |
| YuJaProfileId | Parámetro de ruta | Integer | Un ID de perfil de YuJa válido (disponible en GET /devices/profiles/{device_id}) |
Ejemplo de cuerpo de solicitud:
{
"profile_id": "456juhgj",
"Name": "LiveStreamProfile",
"description": "No desc needed",
"isLiveStream": true
}
Ejemplo de respuesta:
{
"success": true,
"message": "Profile Updated Successfully!"
}
4.2.34 - GET /services/devices/{deviceId}/{yujaProfileId}/previewURLs
Devuelve las URL de vista previa de video y audio para el dispositivo indicado y su perfil correspondiente.
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| DeviceId | Parámetro de ruta | Integer | Un ID de dispositivo YSC válido. |
| YuJaProfileId | Parámetro de ruta | Integer | Un ID de perfil de YuJa válido. |
Ejemplo de respuesta:
{
"videoPreviewURLs": [
{
"headUrl": "https://yuja-device-thumbnail.s3.amazonaws.com/1bb8f4f8-dc6b-43bb-b2ce-a616acb5e760-screen-0?ClassPID=0&response-content-disposition=attachment%3B%20filename%3D%22preview.jpg%22&response-content-type=application%2Foctet-stream&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20220118T170342Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AKIAZGJQYWO4SSYZXBEL%2F20220118%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=53f08cfef1c28a31ba28b5266146b8a17be1de94b67c03cbae652792b548e685",
"url": "https://yuja-device-thumbnail.s3.amazonaws.com/1bb8f4f8-dc6b-43bb-b2ce-a616acb5e760-screen-0?ClassPID=0&response-content-disposition=attachment%3B%20filename%3D%22preview.jpg%22&response-content-type=application%2Foctet-stream&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20220118T170340Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AKIAZGJQYWO4SSYZXBEL%2F20220118%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=aca44942c4f693032751287ccbbf5f362474d834462976cf2558b70641816544"
}
],
"audioPreviewURLs": [
{
"headUrl": "https://yuja-device-thumbnail.s3.amazonaws.com/1bb8f4f8-dc6b-43bb-b2ce-a616acb5e760MicrophoneMpowHC.mp4?ClassPID=0&response-content-disposition=attachment%3B%20filename%3D%22preview.mp4%22&response-content-type=video%2Fmp4&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20220118T170342Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AKIAZGJQYWO4SSYZXBEL%2F20220118%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=2522d8969ecb46eb400d74c12520dc35301274bcba49de3ec92cb50e0a3729e3",
"url": "https://yuja-device-thumbnail.s3.amazonaws.com/1bb8f4f8-dc6b-43bb-b2ce-a616acb5e760MicrophoneMpowHC.mp4?ClassPID=0&response-content-disposition=attachment%3B%20filename%3D%22preview.json%22&response-content-type=application%2Fjson&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20220118T170340Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AKIAZGJQYWO4SSYZXBEL%2F20220118%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=e936ec2e95203c3cddf68cf7bce02490a615613429c6c3dc05c164f8a4fd36b1"
}
],
"audioJsonURLs": [
{
"headUrl": "https://yuja-device-thumbnail.s3.amazonaws.com/1bb8f4f8-dc6b-43bb-b2ce-a616acb5e760MicrophoneMpowHC.json?ClassPID=0&response-content-disposition=attachment%3B%20filename%3D%22preview.json%22&response-content-type=application%2Fjson&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20220118T170342Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AKIAZGJQYWO4SSYZXBEL%2F20220118%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=64f515d41b9c61f4241e0db97d12a373de872612284b1a45c4f81530d56955da",
"url": "https://yuja-device-thumbnail.s3.amazonaws.com/1bb8f4f8-dc6b-43bb-b2ce-a616acb5e760MicrophoneMpowHC.json?ClassPID=0&response-content-disposition=attachment%3B%20filename%3D%22preview.json%22&response-content-type=application%2Fjson&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20220118T170340Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AKIAZGJQYWO4SSYZXBEL%2F20220118%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=241384d39d8953c32c4d16f2ee9ebbd83dfc1441a0c091d8e10de2f6f35dcff5"
}
]
}
4.2.35 - GET /services/devices/{deviceId}/status
Responde con los estados de los dispositivos de las estaciones YSC registradas.
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| DeviceId | Parámetro de ruta | Integer | Un ID de dispositivo YSC válido. |
Ejemplo de respuesta:
{
"connected": true,
"streaming": false,
"ready": true,
"access_id": "presenter-service-1bb8f4f8-dc6b-43bb-b2ce-asdvsadfvf",
"recording": false,
"uploading": false
}
5 - Descripción general de la API de medios
Los medios representan todos los recursos de la institución. Esto incluye archivos de audio, archivos de video y otros documentos.
5.1 - Modelo de objetos de medios
| Variable | Tipo | Descripción |
|---|---|---|
| login_id/loginid | string | ID de inicio de sesión del usuario. |
| group_id | string | ID de grupo único generado por el sistema. |
| title | string | Título del video cargado o de la carpeta que se creará. |
| file_key | string | Clave devuelta por el sistema para cargar un archivo. |
| description | string | Descripción del video cargado. |
| video_id/videonode_id/videoPID | string | ID de video único generado por el sistema. |
| old_video_id | string | ID del video que se reemplazará. |
| new_video_id | string | ID del video después del reemplazo. |
| folder_id/folderID/nodePID | string | PID de carpeta único generado por el sistema. |
| video_id/VideoPID | integer | ID del video seleccionado. |
| media_file_id | integer | ID de archivo multimedia único y válido. |
| DirectStreamEnabled | boolean | Si se establece en true, el canal RSS tendrá enlaces directos para descargar el medio. Si es false, no se recuperarán enlaces directos al medio. |
| extension | string | El tipo de archivo de los subtítulos que se cargarán. El valor puede ser srt o vtt. |
| type | string | Al cargar subtítulos, el tipo siempre será “caption”. Al cargar un archivo de transcripción, indique si el archivo es “txt” o “pdf”. |
| language | string | El idioma del archivo de subtítulos que se cargará. |
| file_key | integer | Se obtiene de la respuesta JSON de la sección 5.2.44. |
| metadataPrefix | string |
Ingrese una de las siguientes opciones: lom_ims: Recupera datos mediante el modelo de metadatos de objetos de aprendizaje (Learning Object Metadata).
oai_dc: Recupera datos mediante el modelo estándar Dublin Core de la Open Archives Initiative. |
5.2 - Endpoints principales
| Variable | Tipo | Descripción |
|---|---|---|
| GET | /media/createuploadlink | Recupera un enlace de carga y file_key para cargar un archivo multimedia. |
| POST | /media/upload/video | Carga los detalles de un video. |
| POST | /media/publish/video | Publica un video en un curso. |
| POST | /media/replace/video | Reemplaza un video. |
| GET | /media/video/group/{group_id} | Recupera los videos publicados en un curso. |
| GET | /media/video/directlink/{video_id} | Recupera el enlace directo y el código de inserción de un video. |
| GET | /media/retrievebranding | Recupera la personalización de marca del reproductor multimedia de la institución. |
| PUT | /media/updatebranding | Actualiza la personalización de marca del reproductor multimedia de la institución. |
| GET | /media/retrieveuserassets/{login_id} | Recupera los recursos del usuario (carpetas, archivos de video, otros documentos). |
| GET | /media/retrieveuserassets/{folder_id} | Recupera los recursos contenidos en una carpeta. |
| POST | /media/upload/session/{session_id}/createlinks | Genera enlaces de carga para cargar las grabaciones de la sesión. |
| POST | /media/upload/session/{session_id} | Envía una señal de que la carga de la grabación en las URL de S3 se completó y de que debe comenzar el procesamiento del video. |
| GET | /media/metadata/{video_id} | Recupera todas las entradas de metadatos correspondientes al video_id proporcionado. |
| POST | /media/metadata/{video_id} | Inserta las entradas de metadatos en el video_id proporcionado. |
| DELETE | /media/metadata/{video_id} | Elimina las entradas de metadatos correspondientes al video_id proporcionado y a los nombres indicados en los parámetros del cuerpo. |
| GET | /media/searchVideo | Recupera todos los videos que coinciden con los criterios de búsqueda indicados en los parámetros del cuerpo. |
| GET | /media/searchVideoWithQueryString | Recupera todos los videos que coinciden con los criterios de búsqueda indicados en los parámetros de consulta. |
| Controladores que permiten que la ventana principal controle el reproductor multimedia. | ||
| GET | /media/videos/{videoPId}/streams/hls | Devuelve las transmisiones HLS junto con otra información importante sobre el video. |
| GET | /media/videos/{videoPId}/streams/thumbnail | Devuelve las URL de las miniaturas junto con otra información importante sobre el video. |
| POST | /media/document_link/{video_id}/{mediaFilePID} | Adjunta un archivo multimedia al video |
| DELETE | /media/document_link/{video_id}/{mediaFilePID} | Elimina un archivo multimedia del video |
| POST | /media/videos/{video_id}/indexes | Inserta texto en archivos de subtítulos o de transcripción |
| DELETE | /media/videos/{video_id}/{index} | Elimina texto de archivos de subtítulos o de transcripción |
| Get | /media/folder/{folderId} | Obtiene información de las carpetas dentro de Lumina. |
| POST | /media/videos/{video_id}/captions/{language}/text/{line}/{position} | Inserta texto en archivos de subtítulos. |
| DELETE | /media/videos/{video_id}/captions/{language}/text/{line}/{start}/{end} |
Elimina texto de un archivo de subtítulos. |
| POST | /media/videos/{video_id}/captions/{language} |
Inserta una línea de subtítulos. |
| DELETE | /media/videos/{video_id}/captions/{language}/{line} |
Elimina una línea de subtítulos. |
| POST | /media/videos/{video_id}/captions/{language}/generatetranscript |
Genera una transcripción a partir de los subtítulos del video. |
| POST | /services/media/publishToInstitutionChannel/video |
Publica un video en EnterpriseTube o CampusTube. |
| POST | /services/media/publishToInstitutionChannel/video |
Publica un video en EnterpriseTube o CampusTube. |
| POST | /services/media/unpublishMedia |
Cancela la publicación de un video en EnterpriseTube o CampusTube. |
| GET | /services/media/allFolders/ETubeAndILib | Recupera todas las carpetas de EnterpriseTube y CampusTube. |
| GET | services/media/retrievefolderassets/{folderID} |
Recupera todos los recursos dentro de una carpeta. |
| POST | services/media/RSS |
Obtiene información de la carpeta, que incluye los videos que contiene y el acceso a los enlaces de los videos. |
| GET | services/media/video/{video_id} |
Recupera los detalles de un video que se editó y reemplazó, ingresando su video_id original. |
| POST | /services/media/createFolderInEnterpriseTubeLibrary |
Crea una subcarpeta dentro de la carpeta Biblioteca de EnterpriseTube. |
| POST | /services/media/createFolderInSharedFolder |
Crea una carpeta o subcarpeta dentro de Carpeta compartida/Biblioteca interna. |
| POST | /services/media/captionFileUploadLink |
Proporciona una URL para cargar un archivo de subtítulos o de transcripción en el servidor y una clave para la URL. |
| PUT | La URL se obtiene de la siguiente API: POST /services/media/captionFileUploadLink |
Carga un archivo de subtítulos o de transcripción en el servidor. |
| POST | services/media/captionFileToVideo |
Carga un archivo de subtítulos o de transcripción en un video. |
| GET | /services/metadata/oai-pmh?verb=GetRecord&identifier=video/mediaPID |
Devuelve los metadatos agregados por el usuario en Lumina. |
| GET | /services/metadata/oai-pmh?verb=ListRecords |
Devuelve todos los archivos con metadatos que tienen seleccionada la opción “Permitir que este medio se pueda buscar mediante la API” en los Detalles del medio. Si lo desea, también se puede aplicar un intervalo de fechas. Nota: Solo se devolverán los primeros 100 archivos. Para acceder a otros 100 archivos, será necesario ejecutar la API de nuevo con el token de reanudación que se proporciona en la respuesta. |
| GET | /services/metadata/oai-pmh?verb=ListIdentifiers |
Devuelve todos los archivos con PID de video o de medio que no contienen metadatos. Si lo desea, también se puede aplicar un intervalo de fechas. Nota: Solo se devolverán los primeros 100 archivos. Para acceder a otros 100 archivos, será necesario ejecutar la API de nuevo con el token de reanudación que se proporciona en la respuesta. |
| GET | /services/metadata/oai-pmh?verb=Identify |
Devuelve los detalles de esta API en particular, como el nombre del repositorio, el correo electrónico de contacto y otra información relevante. |
| GET | /services/metadata/oai-pmh?verb=ListMetadataFormats |
Devuelve documentación sobre la implementación de Dublin Core utilizada para dar formato a los metadatos de las API 5.2.47 a 5.2.49. |
| GET | /services/media/video/{video_id}/captions |
Descarga el archivo de subtítulos del video. |
5.2.1 - GET /services/createuploadlink
Devuelve un objeto JSON que contiene el enlace de carga y file_key. Para cargar el video en S3, realice una solicitud HTTP PUT usando el enlace de carga devuelto como destino y adjunte el archivo de video.
URL de ejemplo: https://api-testing.yuja.com/services/media/createuploadlink
Parámetros:
No se necesitan parámetros para esta llamada.
Respuesta de ejemplo:
[
{
"url": "<upload_link>",
"key": "<key>"
}
]
5.2.2 - POST /services/upload/video/
Carga un video en la biblioteca de medios del usuario cuyo login_id coincida con el parámetro del cuerpo.
URL de ejemplo: https://api-testing.yuja.com/services/media/upload/video/
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| login_id | Parámetro del cuerpo | string | Obligatorio. |
| title | Parámetro del cuerpo | string | Obligatorio. |
| file_key | Parámetro del cuerpo | string | Obligatorio; el valor debe coincidir con el campo “key” de la respuesta de la llamada GET /createuploadlink. |
| description | Parámetro del cuerpo | string | Opcional. |
5.2.3 - POST /services/publish/video/
Publica un video que pertenece al usuario con login_id en un grupo cuyo group_id coincida con el parámetro del cuerpo.
URL de ejemplo: https://api-testing.yuja.com/services/media/publish/video
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| login_id | Parámetro del cuerpo | string | Obligatorio. |
| class_id | Parámetro del cuerpo | string | Obligatorio. |
| video_id | Parámetro del cuerpo | string | Obligatorio. |
5.2.4 - GET /services/video/group/{group_id}
Devuelve un objeto JSON que contiene los detalles de los videos de la clase.
URL de ejemplo: https://api-testing.yuja.com/services/media/video/group/121
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | Parámetro de ruta | string | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
Respuesta de ejemplo:
{
"description": " uploaded by abcd",
"title": "avi_test1",
"video_id": "67890"
},
{
"description": " uploaded by pqrs",
"title": "flv_test1",
"video_id": "67891"
}
5.2.5 - GET /services/video/directlink/{video_id}
Devuelve un objeto JSON que contiene el enlace directo y el código de inserción de un video.
URL de ejemplo: https://api-testing.yuja.com/services/media/video/directlink/67890
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| video_id | Parámetro de ruta | string | El valor debe coincidir con el campo video_id de la llamada GET /video/group/{group_id}. |
Respuesta de ejemplo:
{
"directlink": "<Direct link to the video>",
"embedcode": "<The embedded code for the video>"
}
5.2.6 - POST /services/replace/video/
Reemplaza un video que pertenece al usuario con login_id por otro video.
URL de ejemplo: https://api-testing.yuja.com/services/media/replace/video
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| login_id | Parámetro del cuerpo | string | Obligatorio. |
| old_video_id | Parámetro del cuerpo | string | Obligatorio. |
| new_video_id | Parámetro del cuerpo | string | Obligatorio. |
5.2.7 - GET /services/retrievebranding
Devuelve un objeto JSON que contiene los detalles de personalización de marca del reproductor multimedia de la organización.
URL de ejemplo: https://api-testing.yuja.com/services/media/retrievebranding
Parámetros:
No se requieren parámetros para esta llamada.
Respuesta de ejemplo:
{
"button_color": "#ffffff",
"setting_menu_color": "#011100",
"sidebar_color": "#ABCDEF",
"setting_text_color": "#ffffff"
}
5.2.8 - PUT /services/updatebranding/
Actualiza los detalles de personalización de marca del reproductor multimedia de la organización.
URL de ejemplo: https://api-testing.yuja.com/services/media/updatebranding
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| button_color | Parámetro del cuerpo | string | Opcional |
| setting_menu_color | Parámetro del cuerpo | string | Opcional |
| sidebar_color | Parámetro del cuerpo | string | Opcional |
| setting_text_color | Parámetro del cuerpo | string | Opcional |
5.2.9 - GET /services/retrieveuserassets/{login_id}
Devuelve un objeto JSON que contiene los detalles de los videos de la clase.
URL de ejemplo: https://api-testing.yuja.com/services/media/retrieveuserassets/marythompson
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| login_id | Parámetro del cuerpo | string | Obligatorio. |
Respuesta de ejemplo:
{
{
"Asset_type": "Folder",
"folder_id": 45621,
"title": "New Folder"
},
{
"Asset_type": "Video File",
"title": "Hello World",
"video_id": 12345
}
}
5.2.10 - POST /services/media/upload/session/{session_id}/createlinks
Genera enlaces de carga para cargar las grabaciones de la sesión.
URL de ejemplo: https://api-testing.yuja.com/services/media/upload/session/619/createlinks
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| session_id | Parámetro de ruta | integer | Obligatorio | El ID de la sesión con la que se asociará la grabación. Controla el título, la descripción, la ubicación de guardado de la grabación dentro de Lumina y el propietario de la grabación. |
| video_sources | Parámetro del cuerpo | JSON Array | Obligatorio | Consulte la tabla de campos de video_sources. |
| pause_timestamps | Parámetro del cuerpo | JSON Array | Obligatorio | Consulte la tabla de campos de pause_timestamps. |
Campos de video_sources:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| stream_id | Parámetro del cuerpo | string | Obligatorio | Un identificador de la transmisión. |
| stream_type | Parámetro del cuerpo | string enum | Opcional | Valores posibles: videoCapture, audioCapture, screenCapture. |
Campos de pause_timestamps:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| pause_timestamp | Parámetro del cuerpo | long | Obligatorio | Una marca de tiempo correspondiente al momento en que se pausó la sesión, en milisegundos. |
| resume_timestamp | Parámetro del cuerpo | long | Obligatorio | Una marca de tiempo correspondiente al momento en que se reanudó la sesión, en milisegundos. |
Solicitud de ejemplo:
{
"video_sources": [{
"stream_type": "videoCapture",
"stream_id": "Gv9U5qvNpR"
},{
"stream_type": "screenCapture",
"stream_id": "vKYrIkpqp2",
}],
"pause_timestamps": [{
"pause_timestamp": 5000,
"resume_timestamp": 10000
}]
}
Respuesta de ejemplo:
{
upload_urls: [
{
stream_id: string,
url: string
}, {...}]
}
5.2.11 - POST /services/media/upload/session/{session_id}
Indica que la carga de la grabación a las URL de S3 se completó y que debe comenzar el procesamiento del video.
URL de ejemplo: https://api-testing.yuja.com/services/media/upload/session/1234
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| session_id | Parámetro de ruta | integer | Obligatorio | El ID de la sesión con la que se asociará la grabación. |
Respuesta de ejemplo:
{
“success”: true
}
5.2.12 - GET /services/media/metadata/{video_id}
Recupera todas las entradas de metadatos correspondientes al video_id indicado.
URL de ejemplo: https://api-testing.yuja.com/services/media/metadata/187195
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| video_id | Parámetro de ruta | integer | Obligatorio | Descripción |
Respuesta de ejemplo:
[
{
"Name": "PhyExam",
"Type": "Date",
"Value": "Thu May 20 00:00:00
EDT 2021"
},
{
"Name": "ChemExam",
"Type": "String",
"Value": "Chemistry"
}
]
5.2.13 - POST /services/media/metadata/{video_id}
Inserta todas las entradas de metadatos correspondientes al video_id indicado.
URL de ejemplo: https://api-testing.yuja.com/services/media/metadata/187195
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| video_id | Parámetro de ruta | integer | Obligatorio | El ID del video para el cual se requieren los metadatos |
| newMetadata | Parámetro del cuerpo | JOSN Array | Obligatorio | Consulte la tabla de campos de newMetadata |
Campos de newMetadata:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| Name | Parámetro del cuerpo | String | Obligatorio | Nombre de la etiqueta de metadatos |
| Type | Parámetro del cuerpo | string | Obligatorio | Valores posibles: String, Date |
| Value | Parámetro del cuerpo | string | Obligatorio | Valor asociado al nombre del metadato. Formato de fecha: dd/mm/yyyy |
Parámetros de cuerpo de ejemplo:
{
newMetadata: [
{
"Name": "PhyExam",
"Type": "String",
"Value": "Easy"
},
{
"Name": "ChemExam",
"Type": "Date",
"Value": "05/05/2021"
}
]
}
Respuesta de ejemplo:
"Successfully Inserted 1 record/s in to the database !!!"
5.2.14 - DELETE /services/media/metadata/{video_id}
Elimina todas las entradas de metadatos correspondientes al video_id indicado y a la lista de nombres de metadatos indicada.
URL de ejemplo: https://api-testing.yuja.com/services/media/metadata/187195
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| video_id | Parámetro de ruta | integer | Obligatorio | El ID del video para el cual se requieren los metadatos. |
| Parámetro del cuerpo | List | Obligatorio | Lista de nombres de etiquetas de metadatos. |
Parámetros de cuerpo de ejemplo:
[
"PhyExam",
"ChemExam"
]
Respuesta de ejemplo:
"Successfully Deleted 2 record/s form the database !!!"
5.2.15 - GET /services/media/searchVideo
Recupera todos los videos que coincidan con los criterios de búsqueda indicados en el parámetro del cuerpo.
URL de ejemplo: https://api-testing.com/services/media/searchVideo
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| searchingString | Parámetro del cuerpo | String | Obligatorio | Cadena que desea buscar para encontrar el video |
| searchAs | Parámetro del cuerpo | String | Opcional | ID del usuario bajo el cual se buscarán todos los videos. El valor predeterminado será el administrador de TI de esa institución |
| searchInMediaContent | Parámetro del cuerpo | String | Opcional | Valores posibles: “true”, “false”. Se buscará la cadena indicada en los subtítulos, las etiquetas, etc... |
| ownerId | Parámetro del cuerpo | String | Opcional | ID del usuario propietario del video. |
| createdBefore | Parámetro del cuerpo | String | Opcional | Fecha (yyyy-mm-dd) anterior a la cual se creó el video |
| createdAfter | Parámetro del cuerpo | String | Opcional | Fecha (yyyy-mm-dd) posterior a la cual se creó el video |
| tag | Parámetro del cuerpo | String | Opcional | Etiqueta (si existe) asociada a ese video |
| metadata | Parámetro del cuerpo | String | Opcional | Nombre del metadato asociado a ese video |
Parámetros de cuerpo de ejemplo:
{
"searchString": "Polish",
"searchAs": "John_ITManager",
"searchInMediaContent": "false",
"ownerId": "",
"createdBefore": "",
"createdAfter": "",
"tag":"",
"metadata": ""
}
Respuesta de ejemplo:
[
{
"videoPID": 187126,
"videoTitle": "Polish capt",
"videoDesc": "",
"ownerName": "john_itmanager",
"directLink":
"https://localhost.yuja.com/V/Video?v=187126&node=9388965&a=1581885302&autoPlay=1",
embedCode": "<iframe width='560'height= '315' src=
'https://localhost.yuja.com/V/Video?v=187126&node=9388965&a=1581885302'frameborder= '0'
webkitallowfullscreen mozallowfullscreen allowfullscreen allow=’autoplay’></iframe>",
"duration": "584.006",
"createdDate": "2021-04-30 16:19:39",
"contentFoundInMedia": false
},
{
"videoPID": 188016,
"videoTitle": "Polish capt",
"videoDesc": "",
"ownerName": "john_itmanager",
"directLink":
"https://localhost.yuja.com/V/Video?v=187126&node=9388965&a=1581885302&autoPlay=1",
"embedCode": "<iframe width='560'height= '315' src=
'https://localhost.yuja.com/V/Video?v=187126&node=9388965&a=1581885302'frameborder= '0'
webkitallowfullscreen mozallowfullscreen allowfullscreen allow=’autoplay’></iframe>",
"duration": "584.006",
"createdDate": "2021-05-06 11:49:52",
"contentFoundInMedia": false
}
]
5.2.16 - GET /services/media/searchVideoWithQueryString
Recupera todos los videos que coincidan con los criterios de búsqueda indicados en los parámetros de consulta.
URL de ejemplo: https://api-testing.com/services/media/searchVideoWithQueryString?searchString=Polish&searchAs=John_ITManager
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| searchString | Parámetro de ruta | String | Obligatorio | Cadena que desea buscar para encontrar el video |
| searchAs | Parámetro de ruta | String | Opcional | ID del usuario bajo el cual se buscarán todos los videos. El valor predeterminado será el administrador de TI de la institución |
Respuesta de ejemplo:
[
{
"videoPID": 187126,
"videoTitle": "Polish capt",
"videoDesc": "",
"ownerName": "john_itmanager",
"directLink":
"https://localhost.yuja.com/V/Video?v=187126&node=9388965&a=1581885302&autoPlay=1",
"embedCode": "<iframe width='560'height= '315' src=
'https://localhost.yuja.com/V/Video?v=187126&node=9388965&a=1581885302'frameborder= '0'
webkitallowfullscreen mozallowfullscreen allowfullscreen allow=’autoplay’></iframe>",
"duration": "584.006",
"createdDate": "2021-04-30 16:19:39",
"contentFoundInMedia": false
},
{
"videoPID": 188016,
"videoTitle": "Polish capt",
"videoDesc": "",
"ownerName": "john_itmanager",
"directLink":
"https://localhost.yuja.com/V/Video?v=187126&node=9388965&a=1581885302&autoPlay=1",
"embedCode": "<iframe width='560'height= '315' src=
'https://localhost.yuja.com/V/Video?v=187126&node=9388965&a=1581885302'frameborder= '0'
webkitallowfullscreen mozallowfullscreen allowfullscreen allow=’autoplay’></iframe>",
"duration": "584.006",
"createdDate": "2021-05-06 11:49:52",
"contentFoundInMedia": false
}
]
5.2.17 - Controladores expuestos
Escucharemos el evento postMessage, que transmitirá un parámetro JSON.
Parámetros del evento:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| name | Parámetro JSON | String | Opcional |
Valores posibles:
|
| value | Parámetro JSON | Number | Obligatorio |
Obligatorio en el caso de AdjustVolume y SeekTo
|
Parámetro JSON de ejemplo:
var pass_data = {
'name':’AdjustVolume’,
‘value’: ‘50’
};
document.getElementById('yujaIFrame').contentWindow.postMessage(JSON.stringify(pass_data),"*");
5.2.18 - GET /services/media/folders/user_id
Recupera todas las carpetas a las que un usuario tiene acceso en YuJa según el user_id indicado.
URL de ejemplo: https://api-testing.com/services/media/folders/john_manager
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| user_id | Parámetro de ruta | String | Obligatorio | ID del usuario cuyas carpetas se obtendrán. |
Respuesta de ejemplo:
[
{
"directLink": "https://api-testing.yuja.com/V/Video?v=186622&node=&a=1121111456&autoPlay=1",
"embedCode": "<iframe width='560' height= '315' src=
'https://api-testing.yuja.com/V/Video?v=186622&node=&a=1121111465' frameborder= '0' webkitallowfullscreen
mozallowfullscreen allowfullscreen allow='autoplay'></iframe>",
"folderPID": 9385799,
"folderTitle": "My Media Collections",
"folderVideosCount": 15
},
{
"directLink": "https://api-testing.yuja.com/V/Video?v=186643&node=&a=1121111648&autoPlay=1",
"embedCode": "<iframe width='560' height= '315' src= 'https://api-testing.yuja.com/V/Video?v=186643&node=&a=1121111648' frameborder= '0' webkitallowfullscreen mozallowfullscreen allowfullscreen allow='autoplay'></iframe>",
"folderPID": 9385801,
"folderTitle": "Shared With Me",
"folderVideosCount": 0
}
]
5.2.19 - GET /services/media/videos/user/user_id
Recupera todos los videos a los que un usuario tiene acceso en YuJa según el user_id indicado.
URL de ejemplo: https://api-testing.com/services/media/videos/user/john_manager
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| user_id | Parámetro de ruta | String | Obligatorio | ID del usuario cuyas carpetas se obtendrán. |
Respuesta de ejemplo:
[
{
"videoPID": 186643,
"videoTitle": "Ted Talk",
"videoDesc": "",
"ownerName": "john_manager",
"directLink": "https://api-testing.yuja.com/V/Video?v=186643&node=&a=1121111648&autoPlay=1",
"embedCode": "<iframe width='560' height= '315' src=
'https://api-testing.yuja.com/V/Video?v=186643&node=&a=1121111648' frameborder= '0' webkitallowfullscreen
mozallowfullscreen allowfullscreen allow='autoplay'></iframe>",
"duration": "146.0",
"createdDate": "2021-04-28 10:05:27",
"contentFoundInMedia": false },
{
"videoPID": 187118,
"videoTitle": "Learn English",
"videoDesc": "",
"ownerName": "john_manager",
"directLink": "https://api-testing.yuja.com/V/Video?v=187118&node=&a=1616050998&autoPlay=1",
"embedCode": "<iframe width='560' height= '315' src=
'https://api-testing.yuja.com/V/Video?v=187118&node=&a=1616050998' frameborder= '0' webkitallowfullscreen
mozallowfullscreen allowfullscreen allow='autoplay'></iframe>",
"duration": "194.282",
"createdDate": "2021-04-30 15:32:37",
"contentFoundInMedia": false
}
]
5.2.20 - GET /services/media/videos/user_id/folder_id
Recupera los videos de una carpeta determinada a la que un usuario tiene acceso en YuJa.
URL de ejemplo: https://api-testing.com/services/media/videos/john_manager/9385800
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| user_id | Parámetro de ruta | String | Obligatorio | ID del usuario cuyos videos se obtendrán. |
| folder_id | Parámetro de ruta | String | Obligatorio | ID de la carpeta de la cual se obtendrán todos los videos. |
Respuesta de ejemplo:
{
"directLink": "https://api-testing.yuja.com/V/Video?v=184543&node=&a=1121111423&autoPlay=1",
"embedCode": "<iframe width='560' height= '315' src= 'https://api-testing.yuja.com/V/Video?v=184543&node=&a=1121111423' frameborder= '0' webkitallowfullscreen mozallowfullscreen allowfullscreen allow='autoplay'></iframe>","folderPID": 9385800,
"folderTitle": "Default Collection",
"folderVideosCount": 1,
"videos": [
{
"videoPID": 188166,
"videoTitle": "Ted Talk",
"videoDesc": "",
"ownerName": "john_manager",
"directLink": "https://api-testing.yuja.com/V/Video?v=188166&node=&a=814045209&autoPlay=1",
"embedCode": "<iframe width='560' height= '315' src=
'https://api-testing.yuja.com/V/Video?v=188166&node=&a=814045209' frameborder= '0' webkitallowfullscreen
mozallowfullscreen allowfullscreen allow='autoplay'></iframe>",
"duration": "584.006",
"createdDate": "2021-05-07 15:15:19",
"contentFoundInMedia": false
}
]
{
5.2.21 - GET /services/media/videos/video_id
Recupera todos los videos que coincidan con los criterios de búsqueda indicados en los parámetros de consulta.
URL de ejemplo: https://api-testing.com/services/media/videos/video_id
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| video_id | Parámetro de ruta | Integer | Obligatorio | ID del video que permite obtener ese video en particular. |
Respuesta de ejemplo:
[
{
"videoPID": 187195,
"videoTitle": "Learn English",
"videoDesc": "",
"ownerName": "john_manager",
"directLink":
"https://api-testing.yuja.com/V/Video?v=187126&node=9388965&a=1581885302&autoPlay=1",
"embedCode": "<iframe width='560' height= '315' src=
'https://api-testing.yuja.com/V/Video?v=187126&node=9388965&a=1581885302' frameborder= '0'
webkitallowfullscreen mozallowfullscreen allowfullscreen allow=’autoplay’></iframe>",
"duration": "584.006",
"createdDate": "2021-04-30 16:19:39",
"contentFoundInMedia": false
}
]
5.2.22 - GET /services/media/videos/{videoPId}/streams/hls
Devuelve las transmisiones HLS junto con otra información importante sobre el video.
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
| videoPId | Parámetro de ruta | Integer | Un ID de video válido |
Respuesta de ejemplo:
{
"success": true,
"streams": [
{
"typeAndVideoSourceMap": {
"MP4": {
"streamName": "torontobig2QP0203PCI1",
"fileURL": "https://dtafh6l1ipq5n.cloudfront.net/lcd42SVbjcZ_toronto-big-2-QP0203PCI1_append.mp4?ClassPID=0&response-content-disposition=attachment%3B%20filename%3D&Expires=1628261919&Signature=iHM-DJhekk4HmS36oHlg3MuRIpw~DRFSlkWC6C6UAAHIG3JQvQw7ERc1ckFDJ1VvkZmjbhtz9EKbzQ44hU4J0-zQwg9WBB1y~IZBzMCLBB-H0Vb6DC9YdRQ1c3E8Xm4DmBbdLv6qrjdlot6U3AtRsBU4pySrU7-XpRC1u3fL4Pah9Bx-GSXru3vz2UaF9PJSMr0Ip43nbkwigBUGP3innbAfONRZ3WN4oXoXXqjUmImjwE84JWFtYWTpl6hZwevYzVIgp9uoPnCPMJh20xbHH~jaeb8rcAnuJXOTaOEvN71yq4eeOsIOnhZ6yDtkteVs42IdWoaPrf44lB9DmNf1Kw__&Key-Pair-Id=APKAIXVPTKJJZUC2WWIA", "offset": 1061,
"timestamp": 1628109498455,
"streamType": "MP4",
"cloudFrontURL": ""
},
"HLS": {
"streamName": "torontobig2QP0203PCI1",
"fileURL": "/P/Data/VideoUrl/lcd42SVbjcZ_torontobig2QP0203PCI1_appendmp4_-index.m3u8?dist=staging-hub-video&key=lcd42SVbjcZ_toronto-big-2-QP0203PCI1_append.mp4_hls/index.m3u8&classPID=0&cookie=false", "offset": 1061,
"timestamp": 1628109498455,
"streamType": "HLS",
"cloudFrontURL": "https://dtafh6l1ipq5n.cloudfront.net/P/Data/VideoUrl/lcd42SVbjcZ_torontobig2QP0203PCI1_appendmp4_-index.m3u8?dist=staging-hub-video&key=lcd42SVbjcZ_toronto-big-2-QP0203PCI1_append.mp4_hls/index.m3u8&classPID=0&cookie=true" }
},
"isAudioOnly": false,
"streamName": "torontobig2QP0203PCI1",
"isScreenCapture": false
}
],
"captionURL": {
"English": "/P/DataPage/CaptionFile/183732_English.srt",
"English_ConfScore": "https://staging-caption.s3.us-west-1.amazonaws.com/183732_English_ConfScore.txt?X-Amz-Security-Token=IQoJb3JpZ2luX2VjEC4aCXVzLWVhc3QtMSJGMEQCIB5UE2AThxBH%2B4sUpqiFgd7%2BuGEWuWhoY1c8uhhd3NG7AiBxZMKNCh3ZORLnC8gI4PnyXC%2Bthcw87zYV6X9Sn9yiQSrvAQhHEAAaDDYzMTk5OTM0NTU5MyIMM1J4miNUMy7mV%2F1NKswBa%2BC5eisKYAqjGKPjEbTUIEwZMyRcraPABvSlBuhuw1iXXz07YRG6e0yJi1qfO3C02wb%2B3lcorHqlThGgAziUMTEOz%2FYFDJFqhr4p0Gn9PBhemIELA7jRPaBU0YsCmWqwH%2BQTBMm91M2joil7EyK7H0x8MlxJB4HbU3D1%2FUGIeoPiYEPiYH3axOUJlaCJd73k86FJrWRw1DnB%2BifREob%2FD4Zcy2THbHwuINNn5IPncO7aCtVKkNzcjtw7%2FA6Up5hJez4M4Z55BxTeB2jEMOHXr4gGOpkBruyB%2Bh%2FgrMuPzpqPFNWyZRgDbWbdFR5lGHSKHhOIOCWE0VcXXvuO0pDBPtPy1WJxDl%2FqOuQs64AFtDB7fLJpGg55h0Y72Fbc3PUNb4jWVkWtl4sHoZys21ecN8WVyc5aTC6TZ2fKmfK2D5HkpQKtxJdnsx9IELd9llk2lBgaTJdrdkJKqJhqoYgzgRKcklRwQlw2Nbwz9hU3&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20210805T145838Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86399&X-Amz-Credential=ASIAZGJQYWO4UQVXAUUZ%2F20210805%2Fus-west-1%2Fs3%2Faws4_request&X-Amz-Signature=234ba10c282b8d96584ced3fb7c619604f758a4df94fa6a3d2e41a42903f5561" }
}
5.2.23 - GET /services/media/videos/{videoPId}/streams/thumbnail
Devuelve las URL de las miniaturas junto con otra información importante sobre el video.
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
| videoPId | Parámetro de ruta | Entero | Un ID de video válido. |
Ejemplo de respuesta:
{
"success": true,
"streams": [
{
"isAudioOnly": false,
"streamName": "Video-40d36c8a-1382-4cac-a755-3e34c4cd4918_processed.mp4",
"isScreenCapture": false,
"thumbnailList": [
{
"url": "https://staging-video-thumbnail.s3.amazonaws.com/Video-40d36c8a-1382-4cac-a755-3e34c4cd4918_processed_medium_0001.jpg",
"timestamp": 0
},
{
"url": "https://staging-video-thumbnail.s3.amazonaws.com/Video-40d36c8a-1382-4cac-a755-3e34c4cd4918_processed_medium_0071.jpg",
"timestamp": 349368
}
]
}
],
"captionURL": {
"Italian": "/P/DataPage/CaptionFile/184088_Italian.srt"
}
}
5.2.24 - GET /services/media/createuploadlink/multiple?streams=1
Responde con una clave única y una URL que se utilizarán para cargar el video.
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| Streams | Parámetro de consulta | Entero | Un conteo de flujos entre 1 y 3 que indica la cantidad de URL que se devolverán. |
Ejemplo de respuesta:
[
{
"url": "https://staging-chatter.s3.us-west-1.amazonaws.com/053b3e76-2759-48b9-8575-ea221e2949a9?X-Amz-Security-Token=IQoJb3JpZ2luX2VjEMD%2F%2F%2F%2F%2F%22F%2F%2FARAAGgw2MzE5OTkzNDU1OTMiDIqw%2FI%2BuxmJSfzc7zCrXAw1usQ%3D%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20220118T165122Z&X-Amz-SignedHeaders=content-type%3Bhost&X-Amz-Expires=518399&X-Amz-Credential=ASIAZGJQYWO4QSXU3VAE%2F20220118%2Fus-west-1%2Fs3%2Faws4_request&X-Amz-Signature=1ee3b0fe2d3ce4997c3fbc522b46417fff562ba8f25be507baad2847f897a681",
"key": "053b3e76-2759-48b9-8575-ea221e2949a9"
}
]
5.2.25 - POST /services/media/upload/video/multiple
Incorpora videos de múltiples flujos a la colección predeterminada del usuario.
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| Login_id | Parámetro de cuerpo | Cadena | ID de inicio de sesión del usuario. |
| Title | Parámetro de cuerpo | Cadena | Título del video. |
| Description | Parámetro de cuerpo | Cadena | Descripción del video. |
| File_keys | Parámetro de cuerpo | Arreglo de cadenas | Claves únicas devueltas por la API GET - /media/createuploadlink/multiple |
Ejemplo de solicitud:
{
"login_id": "john_doe",
"title": "Multi Stream Ingestion",
"description": "",
"file_keys":[
"379e3235-0538-480d-8bf2-14f74b328",
"7b31d4b8-c8c2-468b-87e2-2f4505258f"
]
}
Ejemplo de respuesta:
{
"success": true,
"message": "Uplaoded Successfully, video will be available soon!"
}
5.2.26 - POST /services/media/document_link/{video_id}/{media_file_id}
Adjunta un archivo multimedia a un origen de video.
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| video_id | Parámetro de ruta | Entero | Un ID de video válido. |
| media_file_id | Parámetro de ruta | Entero | Un ID de archivo multimedia válido. |
Ejemplo de respuesta:
{
"success": true
}
5.2.27 - DELETE /services/media/document_link/{video_id}/{media_file_id}
Elimina un archivo multimedia de un origen de video.
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| video_id | Parámetro de ruta | Entero | Un ID de video válido. |
| media_file_id | Parámetro de ruta | Entero | Un ID de archivo multimedia válido. |
Ejemplo de respuesta:
{
"success": true
}
5.2.28 - POST /services/media/videos/{video_id}/indexes
Inserta marcas de tiempo con marcador en un origen de video.
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| video_id | Parámetro de ruta | Entero | Un ID de video válido. |
| timestamp | Parámetro de cuerpo | Entero | Una marca de tiempo define dónde aparecerá el marcador en el video. |
| label | Parámetro de cuerpo | Cadena | Un título para la marca de tiempo creada. |
| bold | Parámetro de cuerpo | Booleano | Especifica si la etiqueta está en negrita. |
| indent | Parámetro de cuerpo | Entero | Especifica la sangría de la etiqueta. |
Ejemplo de datos JSON:
{
"timestamp": "0:06:10",
"label": "Bookmark 1",
"bold": false,
"indent": 0
}
Ejemplo de respuesta:
{
"success": true
}
5.2.29 - DELETE /services/media/videos/{video_id}/indexes/{index}
Elimina marcas de tiempo con marcador de un origen de video.
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| video_id | Parámetro de ruta | Entero | Un ID de video válido. |
| index | Parámetro de ruta | Entero | Ingrese un índice válido para eliminar del archivo de subtítulos. Los índices comienzan en 0. |
Ejemplo de respuesta:
{
"success": true
}
5.2.30 - GET /services/media/folder/{folder_Id}
Obtiene información de las carpetas dentro de Lumina.
Parámetro:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| folder_id | Parámetro de ruta | Entero | Un ID de carpeta válido. |
Ejemplo de respuesta:
{
"directLink": "https://api-testing.yuja.com/V/PlayList?node=9875788&a=599025644",
"embedCode": "<iframe width='100%' height='540' src=\"https://evergreen.yuja.com/V/PlayList?node=9875788&a=599025644&preload=false\" frameborder=\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen loading=\"lazy\"></iframe>"
"folderPID": 9875788,
"folderTitle": "mp3_test1",
"folderVideosCount": 0
}
5.2.31 - POST /services/media/videos/{video_id}/captions/{language}/text/{line}/{position}
Inserta un texto de cuerpo sin formato en el archivo de subtítulos.
Parámetro:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| video_id | Parámetro de ruta | Entero | Un ID de video válido. |
| language | Parámetro de ruta | Cadena | Ingrese el idioma del archivo de subtítulos (p. ej., inglés) |
| line | Parámetro de ruta | Entero | Ingrese la posición de la línea dentro del archivo de subtítulos. La posición de la línea comienza en 0. |
| position | Parámetro de ruta | Entero | Ingrese la posición de la letra dentro de la línea seleccionada en el archivo de subtítulos. La posición de la letra comienza en 0. |
Ejemplo de respuesta:
{
"success": true
}
5.2.32 - DELETE /services/media/videos/{video_id}/captions/{language}/text/{line}/{start}/{end}
Elimina texto de un archivo de subtítulos.
Parámetro:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| video_id | Parámetro de ruta | Entero | Un ID de video válido. |
| language | Parámetro de ruta | Cadena | Ingrese el idioma del archivo de subtítulos (p. ej., inglés) |
| line | Parámetro de ruta | Entero | Ingrese la posición de la línea dentro del archivo de subtítulos. La posición de la línea comienza en 0. |
| start | Parámetro de ruta | Entero | Ingrese la posición del carácter inicial dentro de la línea seleccionada en el archivo de subtítulos. La posición de los caracteres comienza en 0. |
| End | Parámetro de ruta | Entero | Ingrese la posición del carácter final dentro de la línea seleccionada en el archivo de subtítulos. La posición de los caracteres comienza en 0. |
Ejemplo de respuesta:
{
"success": true
}
5.2.33 - POST /services/media/videos/{video_id}/captions/{language}
Inserta una línea de subtítulos.
Parámetro:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| video_id | Parámetro de ruta | Entero | Un ID de video válido. |
| language | Parámetro de ruta | Cadena | Ingrese el idioma del archivo de subtítulos (p. ej., inglés). |
| start_time | Parámetro de cuerpo | Entero | Ingrese la hora de inicio de la línea de subtítulos. |
| stop_time | Parámetro de cuerpo | Entero | Ingrese la hora de finalización de la línea de subtítulos. |
| text | Parámetro de cuerpo | Cadena | Ingrese el texto de la línea de subtítulos. |
Ejemplo de datos JSON:
{
"start_time": "00:00:10",
"stop_time": "00:00:15",
"text": "text"
}
Ejemplo de respuesta:
{
"success": true
}
5.2.34 - DELETE /services/media/videos/{video_id}/captions/{language}/{line}
Elimina una línea de subtítulos.
Parámetro:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| video_id | Parámetro de ruta | Entero | Un ID de video válido. |
| language | Parámetro de ruta | Cadena | Ingrese el idioma del archivo de subtítulos (p. ej., inglés). |
| line | Parámetro de ruta | Entero | Ingrese la posición de la línea dentro del archivo de subtítulos. La posición de la línea comienza en 0. |
Ejemplo de respuesta:
{
"success": true
}
5.2.35 - POST /services/media/videos/{video_id}/captions/{language}/generatetranscript
Genera una transcripción a partir de los subtítulos del video.
Parámetro:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| video_id | Parámetro de ruta | Entero | Un ID de video válido. |
| language | Parámetro de ruta | Cadena | Ingrese el idioma del archivo de subtítulos (p. ej., inglés). |
Ejemplo de respuesta:
{
"success": true
}
5.2.36 - POST /services/media/publishToInstitutionChannel/video
Publica un video en EnterpriseTube o CampusTube.
URL de ejemplo: https://api-testing.yuja.com/services/media/publishToInstitutionChannel/video
Parámetros:
No se necesitan parámetros para esta llamada.
Ejemplo de datos JSON:
Este endpoint espera datos JSON con este formato en el parámetro de cuerpo:
{
"login_id":"aswin_syras",
"folder_id":"9913954",
"videonode_id":"9964550"
}
Ejemplo de respuesta:
Published video: success.
5.2.37 - POST /services/media/unpublishMedia
Cancela la publicación de un video de EnterpriseTube o CampusTube.
URL de ejemplo: https://api-testing.yuja.com/services/media/unpublishMedia
Parámetros:
No se necesitan parámetros para esta llamada.
Ejemplo de datos JSON:
Este endpoint espera datos JSON con este formato en el parámetro de cuerpo:
{
"login_id":"michael_lee",
"videonode_id":"9964550"
}
Ejemplo de respuesta:
Unpublished video: success.
5.2.38 - GET /services/media/allFolders/ETubeAndILib?{pageNumber}&{pageSize}
Recupera carpetas de EnterpriseTube y CampusTube.
URL de ejemplo: https://api-testing.yuja.com/services/media/allFolders/ETubeAndILib?pageNumber=4&pageSize=20
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| pageNumber | Parámetro de ruta | Entero | El número de página de las carpetas paginadas que se recuperarán del backend. |
| pageSize | Parámetro de ruta | Entero | La cantidad de carpetas que se obtendrán a partir del parámetro pageNumber especificado. |
Ejemplo de respuesta:
[{"folderPID":5,"folderTitle":"Library","directLink":"https://staging-demo.yuja.com/V/PlayList?node\u003d5\u0026a\u003d1376969883","embedCode":"\u003ciframe width\u003d\u0027100%\u0027 height\u003d\u0027540\u0027 src\u003d\"https://staging-demo.yuja.com/V/PlayList?node\u003d5\u0026a\u003d1376969883\u0026preload\u003dfalse\" frameborder\u003d\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen loading\u003d\"lazy\"\u003e\u003c/iframe\u003e","folderVideosCount":7},{"folderPID":6,"folderTitle":"Featured Videos","directLink":"https://staging-demo.yuja.com/V/PlayList?node\u003d6\u0026a\u003d347409592","embedCode":"\u003ciframe width\u003d\u0027100%\u0027 height\u003d\u0027540\u0027 src\u003d\"https://staging-demo.yuja.com/V/PlayList?node\u003d6\u0026a\u003d347409592\u0026preload\u003dfalse\" frameborder\u003d\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen loading\u003d\"lazy\"\u003e\u003c/iframe\u003e","folderVideosCount":8},{"folderPID":9700540,"folderTitle":"Sauga","directLink":"https://staging-demo.yuja.com/V/PlayList?node\u003d9700540\u0026a\u003d1359623583","embedCode":"\u003ciframe width\u003d\u0027100%\u0027 height\u003d\u0027540\u0027 src\u003d\"https://staging-demo.yuja.com/V/PlayList?node\u003d9700540\u0026a\u003d1359623583\u0026preload\u003dfalse\" frameborder\u003d\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen loading\u003d\"lazy\"\u003e\u003c/iframe\u003e","folderVideosCount":4},{"folderPID":9700561,"folderTitle":"North York Campus"
}]
5.2.39 - GET /services/media/retrievefolderassets/{folderID}
Recupera todos los recursos dentro de una carpeta.
URL de ejemplo: https://api-testing.yuja.com/services/media/retrievefolderassets/9995943
Parámetro:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| folderID | Parámetro de ruta | Entero | Un ID de carpeta válido. |
Ejemplo de respuesta:
[{"Node_id":9995953,"Asset_type":"Video File","title":"chemistry","video_id":304743},{"Node_id":9995957,"Asset_type":"Video File","title":"intro to anthropology","video_id":299276},{"Asset_type":"Folder","folder_id":9995958,"title":"Algebra I"},{"Node_id":9995995,"Asset_type":"Video File","title":"Why we sleep","video_id":304762},{"Node_id":9995998,"Asset_type":"Video File","title":"Public speaking","video_id":304763},{"Node_id":9996001,"Asset_type":"Video File","title":"biological anthropology":304765}]
5.2.40 - POST /services/media/RSS
Obtiene información de una carpeta, que incluye los videos que contiene y el acceso a los enlaces de los videos.
URL de ejemplo: https://api-testing.yuja.com/services/media/RSS
Parámetros:
No se necesitan parámetros para esta llamada.
Ejemplo de datos JSON:
Este endpoint espera datos JSON con este formato en el parámetro de cuerpo:
{
"folderID":"9913952",
"directStreamEnabled" : "true" OR "false"
}
Ejemplo de respuesta:
https://api-testing.yuja.com/P/RSSFeeds/2/992532
5.2.41 - GET /services/media/video/{video_id}
Recupera los detalles de un video mediante su video_id, o de un video que se editó y reemplazó, ingresando su video_id original.
URL de ejemplo: https://api-testing.yuja.com/services/media/video/313415
Parámetro:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| video_id | Parámetro de ruta | Entero | Un ID de video válido del video original antes de que se editara y reemplazara. |
Ejemplo de respuesta:
{"videoPID": 318918,"videoTitle": "Environmental Science ","videoDesc": "","ownerName": "ryan","duration": "209.92","createdDate": "2023-07-06 13:59:49"}
5.2.42 - POST /services/media/createFolderInEnterpriseTubeLibrary
Crea una subcarpeta dentro de la carpeta de la biblioteca de EnterpriseTube.
URL de ejemplo: https://api-testing.yuja.com/services/media/createFolderInEnterpriseTubeLibrary
Parámetros:
No se requieren parámetros.
Este endpoint espera datos JSON con este formato en el parámetro de cuerpo:
{
"loginId":"brianstev",
"title":"Campus Life",
"nodePID":"10177148"
}
Ejemplo de respuesta:
Folder created successfully
5.2.43 - POST /services/media/createFolderInSharedFolder
Crea una carpeta o subcarpeta dentro de SharedFolder/Internal Library.
URL de ejemplo: https://api-testing.yuja.com/services/media/createFolderInSharedFolder
Parámetros:
No se requieren parámetros.
Este endpoint espera datos JSON con este formato en el parámetro de cuerpo:
{
"loginId":"brianstev",
"title":"Intro to Anthropology",
"nodePID":"10172048"
}
Ejemplo de respuesta:
Folder created successfully
5.2.44 - POST /services/media/captionFileUploadLink
Proporciona una URL que se puede usar para cargar al servidor un archivo de subtítulos o de transcripción. La API que usará la URL se encuentra en la sección 5.2.45. También se proporciona una clave que se utiliza en el parámetro de cuerpo JSON de la API ubicada en la sección 5.2.46.
URL de ejemplo: https://api-testing.yuja.com/services/media/captionFIleUploadLink
Parámetros:
No se requieren parámetros.
Este endpoint espera datos JSON con este formato en el parámetro de cuerpo para subtítulos:
{
"videoPID": "672982",
"extension": "srt/vtt",
"type": "caption",
"language": "language of the caption file"
}
Este endpoint espera datos JSON con este formato en el parámetro de cuerpo para transcripciones y PDF:
{
"videoPID": "491182",
"type": "txt/pdf"
}
Ejemplo de respuesta:
{
"url":"https://staging-yuja-upload.s3.us-west-1.amazonaws.com/294229_english.srt?x-amz-storage-class=INTELLIGENT_TIERING&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEMn%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMSJHMEUCIDC%2F3c5R9xvAdVWtVuM5A9DaBun3cSkPri4vSMOnqr2lAiEA1Yvp7joCt016nE9w3psZbLAbZVSOLcN2qva21CLPx4cquwUIkv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw2MzE5OTkzNDU1OTMiDEzdcJiKNf1jrn7ZByqPBYZXTrOZWoeXWxDDoWQhb4vfn%2FltSvEB315uCYAptKXLiKcIZj88MZsgEUPf%2FYvC%2B1%2FcNkYfxCWWZLSVPtCtrfm%2FXc9w359kHBsBOAD02rj6Z%2BRXOMAZTqbQ%2F%2FnNWzZjCJobgUxjXlU6pwys39JhhGN7X05mt6HCpCXpIyYe0vj8T7vWuIs5T%2FZF0nT9mo9cMN6hkj2qyPHmt8syI8kMttvyyakJ1CxCMZQcc0qdPhzgmTp1n9sV6Y5oi1jyyHG57Ja%2BQ2%2BLXqggS2egxA0n6A9dI1IHs1ZFCiPvfIp0UYiDQRQgyV1B0wrRfovcR2NAGHg4c1RbP7bmeObzE%2F%2BVktIMpGXuQkQIvqLxy9VdThk7wACZ1zx3XC6Jr%2FMNrE95P252esq9GmMW7Xykg83jXg1cVSNGy36LSeST%2FeF4Ub65WI1UWn2wHdsdvcjJGmAWbLX8qZBuTLhWCQ3Rt1F%2Bc3gYIbh%2BcuvzBiSdjDpuKPAtERShHwhuvrbUY31EkDBMeqj2G3KkCKmZkDqXCNnY7jCVrnvPQobD5MMIEXGA%2BZM3QEakotwNOOWgXX8%2FlWgxTimtk%2B83pxp6m%2FxiivIDVeTkQ8mAP3i4QB0bUuNf076KErbT8khbVduIQMyz3VJ0YhnmGq3dwgDxTgu40UA%2FlcUd9y2oOqfBj5AezxU3cjNEPBYiid7jY7siZAHCwWUS5nbPxkj7ASeen5m2nEhyN8nzZ9M6n26ZOFMXaQTstAgWnhkU4iP1ayt%2FELZESXTllpin%2FjHvUjDca7cMm1fJjJr06eJTxpjsjI3d%2Fx8oHVlVpsJXhm7mkM6f4ddpyfSFFN3iSqfsqkWEa9t06HeLpeTcBPzTUIQUY%2F8NatWRMYwsKmzpwY6sQFrbZTQQ1QMerTBaivYS%2BQ0bH6osAbrbWGeQJ2C1VnKhU1GsHNUTdbuyANoLProgcri6yvz5ZFzwzNsNpjN%2FZngqn3OFJ1TyBpW9EO5pR1fx%2BtqBR8vqwHZnpTiisFAVdxU4Jfi1eVcvCkGza9otufU9mLG4E1Bw21kYTVKPXN7ENnH5NYEoGhqb6nxZlEEKXUhDvK8NQCUKDwKY7eHOV4o3DCV9x0yiZXfRE30LCGX0G0%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230828T181024Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Credential=ASIAZGJQYWO4X4VIAIPW%2F20230828%2Fus-west-1%2Fs3%2Faws4_request&X-Amz-Signature=18393b17290ec181bfb6a8ab53b58998de77202c91e34ede49489ee7a96ddc45","key":"294229_english.srt"
}
5.2.45 - PUT <URL_Received_from_the_API_in_Section_5.2.44>
Carga un archivo de subtítulos en el servidor, el cual luego se puede agregar a un video mediante la API de la sección 5.2.46
URL de ejemplo: https://staging-yuja-upload.s3.us-west-1.amazonaws.com/294229_english.srt?x-amz-storage-class=INTELLIGENT_TIERING&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEMn%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMSJHMEUCIDC%2F3c5R9xvAdVWtVuM5A9DaBun3cSkPri4vSMOnqr2lAiEA1Yvp7joCt016nE9w3psZbLAbZVSOLcN2qva21CLPx4cquwUIkv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw2MzE5OTkzNDU1OTMiDEzdcJiKNf1jrn7ZByqPBYZXTrOZWoeXWxDDoWQhb4vfn%2FltSvEB315uCYAptKXLiKcIZj88MZsgEUPf%2FYvC%2B1%2FcNkYfxCWWZLSVPtCtrfm%2FXc9w359kHBsBOAD02rj6Z%2BRXOMAZTqbQ%2F%2FnNWzZjCJobgUxjXlU6pwys39JhhGN7X05mt6HCpCXpIyYe0vj8T7vWuIs5T%2FZF0nT9mo9cMN6hkj2qyPHmt8syI8kMttvyyakJ1CxCMZQcc0qdPhzgmTp1n9sV6Y5oi1jyyHG57Ja%2BQ2%2BLXqggS2egxA0n6A9dI1IHs1ZFCiPvfIp0UYiDQRQgyV1B0wrRfovcR2NAGHg4c1RbP7bmeObzE%2F%2BVktIMpGXuQkQIvqLxy9VdThk7wACZ1zx3XC6Jr%2FMNrE95P252esq9GmMW7Xykg83jXg1cVSNGy36LSeST%2FeF4Ub65WI1UWn2wHdsdvcjJGmAWbLX8qZBuTLhWCQ3Rt1F%2Bc3gYIbh%2BcuvzBiSdjDpuKPAtERShHwhuvrbUY31EkDBMeqj2G3KkCKmZkDqXCNnY7jCVrnvPQobD5MMIEXGA%2BZM3QakotwNOOWgXX8%2FlWgxTimtk%2B83pxp6m%2FxiivIDVeTkQ8mAP3i4QB0bUuNf076KErbT8khbVduIQMyz3VJ0YhnmGq3dwgDxTgu40UA%2FlcUd9y2oOqfBj5AezTxU3cjNEPBYiid7jY7siZAHCwWUS5nbPxkj7ASeen5m2nEhyN8nzZ9M6n26ZOFMXaQTstAgWnhkU4iP1ayt%2FELZESXTllpin%2FjHvUjDca7cMm1fJjJr06eJTxpjsjI3d%2Fx8oHVlVpsJXhm7mkM6f4ddpyfSFFN3iSqfsqkWEa9t06HeLpeTcBPzTUIQUY%2F8NatWRMYwsKmzpwY6sQFrbZTQQ1QMerTBaivYS%2BQ0bH6osAbrbWGeQJ2C1VnKhU1GsHNUTdbuyANoLProgcri6yvz5ZFzwzNsNpjN%2FZngqn3OFJ1TyBpW9EO5pR1fx%2BtqBR8vqwHZnpTiisFAVdxU4Jfi1eVcvCkGza9otufU9mLG4E1Bw21kYTVKPXN7ENnH5NYEoGhqb6nxZlEEKXUhDvK8NQCUKDwKY7eHOV4o3DCV9x0yiZXfRE30LCGX0G0%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230828T181024Z&X-Amz-SignedHeaders=host&X-Amz-Expires=604800&X-Amz-Credential=ASIAZGJQYWO4X4VIAIPW%2F20230828%2Fus-west-1%2Fs3%2Faws4_request&X-Amz-Signature=18393b17290ec181bfb6a8ab53b58998de77202c91e34ede49489ee7a96ddc45
Parámetros:
No se requieren parámetros.
Este endpoint espera datos binarios que se transmiten al cargar su archivo de subtítulos o de transcripción.
Respuesta de ejemplo:
200 OK
5.2.46 - POST /services/media/captionFileToVideo
Cargue un archivo de subtítulos o de transcripción en un video seleccionado.
URL de ejemplo: https://api-testing.yuja.com/services/media/captionFileToVideo
Parámetros:
No se requieren parámetros.
Este endpoint espera datos JSON con este formato en el parámetro body para los subtítulos:
{
"login_id": "749371",
"videoPID": "74492",
"file_key": "294229_english.srt",
"type": "caption"
}
Respuesta de ejemplo:
Archivo cargado correctamente
Este endpoint espera datos JSON con este formato en el parámetro body para las transcripciones:
{
"videoPID": "74492",
"type": "txt/pdf"
}
Respuesta de ejemplo:
Archivo cargado correctamente
5.2.47 - GET /services/metadata/oai-pmh?verb=GetRecord&identifier={videoPID}&metadataPrefix=<lom_ims or oai_dc>
Devuelve los metadatos agregados por el usuario en Lumina. Nota: La API solo localizará los medios que se permita buscar mediante las API. Para saber cómo habilitar sus medios para la búsqueda mediante API, siga nuestra guía Cómo habilitar que los medios se puedan buscar mediante API.
URL de ejemplo: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=GetRecord&identifier=4827
Parámetro:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| videoPID | Parámetro de ruta | Entero | Un ID válido del video. |
Respuesta de ejemplo:
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<responseDate>2024-03-04T19:13:26Z</responseDate>
<request identifier="323797" metadataPrefix="oai_dc" verb="GetRecord">https://evergreen.yuja.com/services/</request>
<GetRecord>
<record>
<header>
<identifier>321797</identifier>
<datestamp>2023-08-31T20:13:04Z</datestamp>
<setSpec/>
</header>
<metadata>
<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
<dc:description/>
<dc:publisher>Joran Manson</dc:publisher>
<dc:date>08/31/2023</dc:date>
<dc:type/>
<dc:format/>
<dc:identifier>323797</dc:identifier>
<dc:source>https://evergreen.yuja.com/V/Video?v=321797&a=109689478</dc:source>
<dc:language>en</dc:language>
<dc:relation/>
<dc:coverage/>
<dc:rights/>
<dc:list>chunky</dc:list>
<dc:date2/>
<With_Space/>
<thh_new_space/>
<dc:contributor>Jordan Manson</dc:contributor>
<search/>
</oai_dc:dc>
</metadata>
</record>
</GetRecord>
</OAI-PMH>
5.2.48 - GET /services/metadata/oai-pmh?verb=ListRecords&metadataPrefix=<lom_ims or oai_dc>
Devuelve todos los archivos con metadatos que tengan seleccionada la opción “Habilitar este medio para que se pueda buscar mediante API” en los detalles del medio. Si lo desea, también se puede aplicar un rango de fechas. Nota: Solo se devolverán los primeros 100 archivos. Para acceder a otros 100 archivos, la API deberá ejecutarse de nuevo con el token de reanudación que se proporciona en la respuesta.
URL de ejemplo: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=ListRecords
URL de ejemplo con rango de fechas: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=ListRecords&from=2023-01-01&until=2024-03-01
URL de ejemplo con token de reanudación: https://api-testing.yuja.com/services/metadata/oai-pmh?&verb=ListRecords&resumptionToken=eyJhbGciOiJub25lIn0.eyJsaW1pdCI6MTAwLCJtZXRob2RQcmVmaXgiOiIiLCJ0aW1lc3RhbXAiOjE3MDk1NzIyNzQTB9.
Parámetros:
No se necesitan parámetros para esta llamada.
Respuesta de ejemplo:
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<responseDate>2024-03-04T19:11:47Z</responseDate>
<request metadataPrefix="oai_dc" verb="ListRecords">https://staging-demo.yuja.com/services/</request>
<ListRecords>
<record>
<header>
<identifier>271109</identifier>
<datestamp>2022-08-30T21:34:23Z</datestamp>
<setSpec/>
</header>
<metadata>
<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
<dc:description>1255</dc:description>
<dc:publisher>Martin Lauro</dc:publisher>
<dc:date>08/30/2022</dc:date>
<dc:type/>
<dc:format/>
<dc:identifier>271109</dc:identifier>
<dc:source>https://evergreen.yuja.com/V/Video?v=271129&a=167512691</dc:source>
<dc:language>en</dc:language>
<dc:relation/>
<dc:coverage/>
<dc:rights/>
<dc:list>chunky</dc:list>
<dc:date2/>
<With_Space/>
<thh_new_space/>
<dc:contributor>saleena mgeorge</dc:contributor>
<search/>
</oai_dc:dc>
</metadata>
</record>
<resumptionToken>eyJhbGciOiJub25lIn0.eyJsaW1pdCI6MTAwLCJtZXRob2RQcmVmaXgiOiIiLCJ0aW1lc3RhbXAiOjE3MDk1Nzk1MDg1NDh9.</resumptionToken>
</ListRecords>
</OAI-PMH>
5.2.49 - GET /services/metadata/oai-pmh?verb=ListIdentifiers
Devuelve todos los archivos con PID de video o de medio que no contengan metadatos, dentro de un rango de fechas opcional que se puede incluir. Solo se devolverán los primeros 100 archivos. Para acceder a otros 100 archivos, la API deberá ejecutarse de nuevo con el token de reanudación que se proporciona en la respuesta. Nota: La API solo localizará los medios que se permita buscar mediante las API. Para saber cómo habilitar sus medios para la búsqueda mediante API, siga nuestra guía Cómo habilitar que los medios se puedan buscar mediante API.
URL de ejemplo: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=ListIdentifiers
URL de ejemplo con rango de fechas: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=ListIdentifiers&from=2023-01-01&until=2024-03-01
URL de ejemplo con token de reanudación: https://api-testing.yuja.com/services/metadata/oai-pmh?&verb=ListIdentifiers&resumptionToken=eyJhbGciOiJub25lIn0.eyJsaW1pdCI6MTAwLCJtZXRob2RQcmVmaXgiOiIiLCJ0aW1lc3RhbXAiOjE3MDk1NzIyNzQTB9. (Nota: No se puede aplicar un rango de fechas al usar el token de reanudación.)
Parámetros:
No se necesitan parámetros para esta llamada.
Respuesta de ejemplo:
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<responseDate>2024-03-04T19:09:44Z</responseDate>
<request metadataPrefix="oai_dc" verb="ListIdentifiers">https://staging-demo.yuja.com/services/</request>
<ListIdentifier>
<header>
<identifier>271109</identifier>
<datestamp>2022-08-30T21:34:23Z</datestamp>
<setSpec/>
</header>
<header>
<identifier>27652</identifier>
<datestamp>2021-11-17T20:25:07Z</datestamp>
<setSpec/>
</header>
<resumptionToken>eyJhbGciOiJub25lIn0.eyJsaW1pdCI6MTAwLCJtZXRob2RQcmVmaXgiOiIiLCJ0aW1lc3RhbXAiOjE3MDk1NzkzODQ0OD.</resumptionToken>
</ListIdentifier>
</OAI-PMH>
5.2.50 - GET /services/metadata/oai-pmh?verb=Identify
Devuelve los detalles de esta API en particular, como el nombre del repositorio, el correo electrónico de contacto y otra información relevante.
URL de ejemplo: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=Identify
Parámetros:
No se necesitan parámetros para esta llamada.
Respuesta de ejemplo:
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<responseDate>2024-03-04T19:08:45Z</responseDate>
<request verb="Identify">https://evergreen.yuja.com/services/</request>
<Identify>
<repositoryName>YuJa Enterprise Video Platform</repositoryName>
<baseURL>https://evergreen.yuja.com/services/</baseURL>
<protocolVersion>1.0</protocolVersion>
<adminEmail>support@yuja.com</adminEmail>
<earliestDatestamp>2024-03-04T00:00:00Z</earliestDatestamp>
<deletedRecord>persistent</deletedRecord>
<granularity>YYYY-MM-DDThh:mm:ssZ</granularity>
</Identify>
</OAI-PMH>
5.2.51 - GET /services/metadata/oai-pmh?verb=ListMetadataFormats
Devuelve la documentación sobre la implementación de Dublin Core utilizada para el formato de metadatos de las API 5.2.47 a 5.2.49.
URL de ejemplo: https://api-hudson.yuja.com/services/metadata/oai-pmh?verb=Identify
Parámetros:
No se necesitan parámetros para esta llamada.
Respuesta de ejemplo:
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<responseDate>2024-03-04T19:07:39Z</responseDate>
<request verb="ListMetadataFormats">https://staging-demo.yuja.com/services/</request>
<ListMetadataFormats>
<metadataFormat>
<metadataPrefix>oai_dc</metadataPrefix>
<schema>https://www.dublincore.org/specifications/dublin-core/dces/1999-07-02/</schema>
<metadataNamespace>https://schema.org/</metadataNamespace>
</metadataFormat>
</ListMetadataFormats>
</OAI-PMH>
5.2.52 GET /services/media/video/{video_id}/captions
Descarga el archivo de subtítulos del video.
URL de ejemplo: https://api-hudson.yuja.com/services/media/video/146852/captions
Parámetros:
No se necesitan parámetros para esta llamada.
Respuesta de ejemplo:
"English": "https://api-hudson.s3.us-west-1.amazonaws.com/489890_English.srt?X-Amz-Security-Token=IBnJb3JpZ2lun1VjEPL%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMSJIMELMQDYm3K1ksoNy4opXIjBMBJrp6Qjr7NCPDj1T3EJWQGNKwIhAItNIZWxg%2BNCQifjW8xCI6dfGJMg5edLLpYHQk4kD%2BAhKrIFCBsQABoMNjMxOTk5MzQ1NTkzIgxBv0Yv4gDr0snlDh4qjwVLraCQo4TcpTfL%2FzVXWXhnoBvuA1DElXi4qZb70lo3KLlc47z9V4XHOcGLDA5sx9yNU0LdR%2Fq8s%2FKxpZfvKs2iIy1lmU9ufOCAJlay%2BssJN4E3O%2BsFpHb6NCMsQc%2BVrG%2FHAWDCTi%2F1SAbTTTkFSvz8QCG3KN7zY8EoHpbp1pVM0Fs%2F7yHZD0yCoJHR18%2FC6QImVHQKx1dCXBEumc1gQiymsbFRFch5swNyCuV%2FqPYPWrheCo3G%2FwXttkHNvtyMWX0zW9TUsyweiTiINg9TYQ3En2VvPW0AUz8ldg0aAXOH%2F58MIceDL1d0ReXe2BIbROJEpTUFdbH7cM5wyX0CmPoV%2BOf6V9yA3cIbIyZIc4xeFLvnPuGV0l4RVm396F529F%2FesjjVhbO5Kes2Vmb8QN1onNQdJiaDGlw184U3qIOqjhi9dXxnrEFusKAd9%2FpHNllz00t2%2Be8SAIijOQmEjkAUo6vO0saKMwHuzkHAC8dXOePfYga8sYf5mOOrjsliPgi6dGG72GfpucUNd9ODVDFIVqjA3e8GtSTXoBeqd1JWY55k52ZO5twTS6U82BzPetD2b0njoUJMn3GKfJJj34S02DLobmYqebBmiNkqRxH9HJPDxGdAvdphNKJkQND1VUO%2FE1OokGx0Fj7mvC0MIiq8iHqeXBkgp4XsXlFjjaCRslT7TaIdlKf8widO6T%2Bv1V4xOa1IiXclmHBRgP%2F9OA2n0YA%2F43cleZrvz2uuGYY3EjWeVLW7Qhd76HBokkorzCog4cCedfwIs3tBfw%2FXH1qmwVDYD9ghWp8UuY9S3InvGjfrA2aaXB3Esl%2FCzeXAzZNL3JTFp9wMVzuxCDdBLjJganPVJuRJMgJUgVIPkqG2MOS8hMQGOrABVQkKcbeYPVWbp95PHprNovna8E8lGpstUxpIHX%2Bg%2FsCrz7%2FkwQ3r5chw%2BAPp4Gl2RieJowaHE%2B7Vm1OcD1FGTv2wm%2B3kZwMZc13SW30n7CD3%2BZSgM2B4GPe5hww6b1VbfSs2KZ38cZ1wqY3DHAxz1%2FrrPoFG1Ax%2FtXuXAlvm8NufrKj0dhPwhcBOJcOt6n20wq1wqw5evOjyovU96%2Brayzn4gsK2hbj9aRj1IhIJfLU%3D&X-Amz-Algorithm=AWS4-HNAC-SHA256&X-Amz-Date=20250723T183412Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86549&X-Amz-Credential=ASICAYJQYWO474CQZN7R%2F20250713%2Fus-west-1%2Cs3%2Faws4_request&X-Amz-Signature=55763a2548L17dc16063e3fa74813da2881464689a45acf98f22d850"
5.2.53 - POST /services/media/importLink
Importe un video de otra plataforma a su biblioteca de medios de YuJa Lumina desde un enlace de descarga.
URL de ejemplo: https://staging-demo.yuja.com/services/media/importLink
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
| login_id | Entero | ID del usuario |
| title | Cadena | Título del video |
| DownloadURL | Cadena | Enlace al archivo de video |
| autoEAD | Booleano | Indica si se debe agregar la audiodescripción automáticamente (true o false) |
| description | Cadena | Descripción opcional del video |
Este endpoint espera datos JSON con este formato en el parámetro body:
{
"login_id":"12",
"title":"Lecture 1",
"description":"Recording of Lecture 1",
"DownloadURL":"https:\/\/cdnapisec.kaltura.com\/p\/1038472\/sp\/103847200\/playManifest\/entryId\/1_2iep6n7p\/format\/download\/protocol\/https\/flavorParamIds\/0",
"autoEAD":true
}
Respuesta de ejemplo:
{
"title": "Lecture 1",
"id": 1234567,
"videoDirectLink": "https://staging-demo.yuja.com/V/Video?v=1234567&a=987654321"
}
6 - Descripción general de la API de analíticas
Los medios representan todos los recursos de la institución. Esto incluye archivos de audio, archivos de video y otros documentos.
6.1 - Modelo de objetos de analíticas
| Variable | Tipo | Descripción |
|---|---|---|
| group_id | cadena | Un ID de clase único generado por el sistema. |
6.2 - Endpoints principales
| Método | Ruta | Descripción |
|---|---|---|
| GET | /analytics/report/bandwidth/{group_id} | Obtiene el informe de ancho de banda del grupo. |
| GET | /analytics/report/storage/{group_id} | Obtiene el informe de almacenamiento del grupo. |
| GET | /analytics/report/videoview/{group_id} | Obtiene el informe de reproducciones de video del grupo. |
| GET | /analytics/report/visitors | Obtiene el informe de visitantes de la institución. |
6.2.1 - GET /analytics/report/bandwidth/{group_id}
Devuelve un archivo con los detalles de uso de ancho de banda de un grupo.
URL de ejemplo: https://api-testing.yuja.com/services/analytics/report/bandwidth/1365
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | Parámetro de ruta | cadena | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
6.2.2 - GET /analytics/report/storage/{group_id}
Devuelve un archivo con los detalles de uso de almacenamiento de un grupo.
URL de ejemplo: https://api-testing.yuja.com/services/analytics/report/storage/1365
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | Parámetro de ruta | cadena | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
6.2.3 - GET /analytics/report/videoview/{group_id}
Devuelve un archivo con los detalles de reproducciones de video de un grupo.
URL de ejemplo: https://api-testing.yuja.com/services/analytics/report/videoview/1365
Parámetros:
| Nombre | Tipo de parámetro | Tipo | Descripción |
|---|---|---|---|
| group_id | Parámetro de ruta | cadena | El valor debe coincidir con el campo group_id de la llamada GET /groups. |
6.2.4 - GET /analytics/report/visitors
Devuelve un archivo con los detalles de visitantes de la institución.
URL de ejemplo: https://api-testing.yuja.com/services/analytics/report/visitors
Parámetros:
No se requieren parámetros para esta llamada.
7 - Descripción general de la API de registro de auditoría
AuditLog representa todos los registros disponibles según el rango de fechas y el tipo.
7.1 - Modelo de objetos del registro de auditoría
| Variable | Tipo | Descripción |
|---|---|---|
| creationTimestamp | Marca de tiempo | Marca de tiempo en que ocurrió el evento. Nota: La marca de tiempo corresponderá a la zona horaria de la institución. |
| eventName | cadena | Nombre del evento |
| details | cadena | Detalles específicos de ese evento |
7.2 - Endpoints principales
| Método | Ruta | Descripción |
|---|---|---|
| GET | /auditLog/entries | Obtiene los registros de todas las entradas especificadas en el tipo de evento dentro del rango de fechas. |
7.2.1 - GET /auditLog/entries
Devuelve una lista JSON de objetos, donde cada objeto es un registro.
URL de ejemplo: https://staging-demo.yuja.com/services/auditLog/entries?startTime=01/12/2024&endTime=02/01/2025&eventType=New Log In
Parámetros
| Nombre | Tipo de parámetro | Tipo | Opcional | Descripción |
|---|---|---|---|---|
| startTime | Parámetro de consulta | Fecha | Opcional | El valor debe tener el formato dd/mm/yyyy |
| endTime | Parámetro de consulta | Fecha | Opcional | El valor debe tener el formato dd/mm/yyyy |
| eventType | Parámetro de consulta | Cadena | Obligatorio | El valor debe coincidir exactamente con cómo aparece (mayúsculas, minúsculas y espacios en blanco) en la columna Actividad de Panel de administración > Notificaciones > Notificaciones recientes de Lumina. |
| offset | Parámetro de consulta | int | Opcional |
Omite el número especificado de registros. El valor debe ser un número entero válido. Ejemplo: Si ingresa el valor 25, se devolverá una lista JSON a partir del registro 26. |
Respuesta de ejemplo:
[
{
"creationTimestamp": "2021-05-20 16:48:48",
"eventName": "Change Owner",
"details": "John changed owner of media object titled mpg_test1 from user JohnInstructor to user David"
},
{ "creationTimestamp": "2021-05-18 16:11:31",
"eventName":"Change Owner",
"details": "Nick changed owner of media object titled My Event on Thursday, March 30, 2017 from user Ronald to user Terry"
}
]