Autenticação
Toda chamada de API exige um token de autenticação como cabeçalho. Esses tokens são gerados por gerentes de TI/administradores e podem ser revogados. Os tokens de autenticação permitem o acesso à API de uma instituição específica. O token tem 32 caracteres e pode ser obtido em Painel de administração -> API.
Lembre-se de também salvar o token da API depois de gerá-lo.
Uso do token: o token deve ser enviado como cabeçalho, com a chave “authToken” e o valor igual ao token, em cada chamada de API
URL base da API
A URL base da YuJa API atual é {organization_subdomain}.yuja.com/services/. O Organization_subdomain é atribuído quando a conta da organização é provisionada na YuJa. Por motivos de segurança, apenas o acesso por https é permitido. Por exemplo, se o domínio atribuído à organização for tested, a página inicial será api-testing.yuja.com e o endpoint da API será api-testing.yuja.com/services.
Parâmetros da requisição
Há várias maneiras de passar parâmetros de requisição para chamadas de API.
- Como componente do caminho da URL. Isso é chamado de parâmetro de caminho.
- Como parte da query string. Isso é chamado de parâmetro de query string.
- No corpo da requisição, para requisições que não sejam GET. Isso é chamado de parâmetro de corpo. O conteúdo deve ser codificado em JSON.
- No cabeçalho personalizado HTTP. Isso é chamado de parâmetro de cabeçalho.
Operações CRUD
As APIs seguem a convenção REST para realizar as funcionalidades CREATE, READ, UPDATE e DELETE. A tabela a seguir descreve a convenção comum utilizada.
| Operação | Método HTTP | Observações |
|---|---|---|
| CREATE | POST | POST é a forma padrão de criar um objeto. A POST API retorna o ID do objeto criado, para que ele possa ser usado em chamadas de API subsequentes. |
| READ | GET | GET recupera informações. O resultado pode ser uma lista ou um único objeto, dependendo da API chamada. |
| UPDATE | PUT | PUT exige o ID do objeto que precisa ser atualizado. Todos os campos de atualização são opcionais, salvo indicação em contrário. Os campos definidos serão atualizados. |
| DELETE | DELETE | DELETE exige o ID do objeto que precisa ser excluído. O ID e o tipo do objeto devem corresponder entre si. |
Códigos de resposta da API REST
| 200 | OK |
| 201 | Created |
| 204 | No Content |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
1 - Visão geral da API de usuários
Os usuários representam todos os usuários registrados na instituição. Isso inclui instrutores, estudantes e gerentes de TI. Os usuários podem ser matriculados em cursos, criar capturas e solicitar reuniões, convidar para elas ou ser convidados. Os usuários também podem ter uma coleção de vídeos.
1.1 - Modelo de objeto de usuário
| Variável | Tipo | Descrição |
|---|---|---|
| user_id | string | Um user_id exclusivo gerado pelo sistema. |
| email_address/email | string[255] | Endereço de e-mail do usuário, que deve ser exclusivo entre todos os usuários. |
| first_name | string[30] | Nome do usuário. |
| last_name | string[30] | Sobrenome do usuário. |
| login_id/userName | string[20] | ID de login do usuário. |
| login_password | string[20] | Senha de login do usuário. |
| custom_id | string[20] | ID personalizado do usuário. |
| timezone | string | Fuso horário do usuário. |
| user_type | string enum | Tipo de usuário. Pode ser um dos seguintes: “Student”, “Instructor”, “IT Manager”. |
| phone_number | string[20] | Número de telefone do usuário. |
| updateDescendants | Boolean | Concede permissão para subpastas. |
| groupName | string | O nome do grupo como aparece no Lumina. |
| linkage | string | O valor de linkage do usuário. Ele pode ser obtido em Painel de administração > Lista de usuários do Lumina, na coluna Linkage de um usuário. Selecione o tipo de linkage dele na coluna e copie o valor de LTI Linkage, LTI3 Linkage ou SAML Linkage fornecido. |
| status | string | O status da conta que você deseja definir para o usuário. Pode ser "active" ou "suspended". |
Para obter o user_id dos usuários, primeiro faça a chamada de API GET /users (Seção 1.2.1). Na resposta, é possível coletar o user_id de todos os usuários, que poderá ser usado depois em outras chamadas de API.
1.2 - Principais endpoints
| Método | Caminho | Descrição |
|---|---|---|
| GET | /users | Recupera todos os usuários pertencentes à organização. |
| GET | /users/{user_id} | Recupera um único usuário com base no user_id. |
| POST | /users | Adiciona um usuário |
| PUT | /users/{user_id} | Atualiza um único usuário com base no user_id. |
| DELETE | /users/{user_id} | Exclui um único usuário com base no user_id. |
| GET | /users/{user_id}/groups/members | Recupera todos os grupos nos quais o usuário está matriculado. |
| GET | /users/{user_id}/groups/content_owners | Recupera todos os grupos dos quais o usuário é proprietário de conteúdo. |
| POST | /users/addUserWithExternalIdentifier | Cria novos usuários, levando em conta identificadores externos para vincular usuários a contas existentes e novas com base em logins de LMS e SSO. |
| POST | /services/media/permission |
Adiciona ou modifica permissões de pastas. |
| DELETE | /services/media/permission |
Exclui as permissões de uma pasta. |
| POST | /services/media/mediaByLinkageValue |
Obtém informações sobre os vídeos contidos na conta do usuário. |
| PUT | /services/users/updateStatus |
Altera o status da conta de um usuário usando o ID de usuário ou o e-mail. |
1.2.1 - GET /services/users
Retorna uma lista JSON de objetos, em que cada objeto é um usuário. Nenhum parâmetro é necessário para esta chamada.
URL de exemplo: https://api-testing.yuja.com/services/users
Exemplo de resposta:
[
{
"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}
Retorna um objeto JSON com as informações do estudante.
URL de exemplo: https://api-testing.yuja.com/services/users/3432
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| user_id | parâmetro de caminho | string | O valor deve corresponder ao campo user_id na chamada GET /users. |
Exemplo de resposta:
{
"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
Cria um novo usuário na instituição. Os dados JSON podem ser compostos sem os parâmetros opcionais. Consulte a Seção 1.1 para ver os detalhes dos parâmetros.
URL de exemplo: https://api-testing.yuja.com/services/users
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| email_address | parâmetro de corpo | string[255] | Obrigatório |
| first_name | parâmetro de corpo | string[30] | Obrigatório |
| last_name | parâmetro de corpo | string[30] | Obrigatório |
| login_id | parâmetro de corpo | string[20] | Obrigatório |
| login_password | parâmetro de corpo | string[20] | Obrigatório |
| custom_id | parâmetro de corpo | string[20] | Opcional |
| user_type | parâmetro de corpo | string enum | Obrigatório |
| phone_number | parâmetro de corpo | string[20] | Opcional |
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"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
}
Dados JSON de exemplo:
{
"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}
Atualiza um único usuário com base em {user_id}. Consulte a Seção 1.1 para ver os detalhes dos parâmetros.
URL de exemplo:https://api-testing.yuja.com/services/users/1000
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| user_id | parâmetro de caminho | string | O valor deve corresponder ao campo user_id na chamada GET /users. |
| email_address | parâmetro de corpo | string[255] | Defina para atualizar o endereço de e-mail. |
| first_name | parâmetro de corpo | string[30] | Defina para atualizar o nome do usuário. |
| last_name | parâmetro de corpo | string[30] | Defina para atualizar o sobrenome do usuário. |
| login_password | parâmetro de corpo | string[20] | Defina para atualizar a senha de login do usuário. |
| custom_id | parâmetro de corpo | string[20] | Defina para atualizar o ID personalizado do usuário. |
| timezone | parâmetro de corpo | string | Defina para atualizar o fuso horário do usuário. |
| user_type | parâmetro de corpo | string enum | Defina para atualizar o tipo do usuário. |
| phone_number | parâmetro de corpo | string[20] | Defina para atualizar o número de telefone do usuário. |
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"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 os campos são opcionais. Somente os campos informados são atualizados.
1.2.5 - DELETE /services/users/{user_id}
Remove da instituição o usuário com o ID {user_id}.
URL de exemplo: https://api-testing.yuja.com/services/users/1000
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| user_id | parâmetro de caminho | string | O valor deve corresponder ao campo user_id na chamada GET /users. |
1.2.6 - GET /services/users/{user_id}/groups/members
Recupera todos os grupos nos quais um usuário está matriculado.
URL de exemplo: https://api-testing.yuja.com/services/users/3432/groups/members
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| user_id | parâmetro de caminho | string | O valor deve corresponder ao campo user_id na chamada GET /users. |
Exemplo de resposta:
[
{
"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 os grupos dos quais um usuário é proprietário de conteúdo. O user_id necessário pode ser obtido com a chamada de API GET /users.
URL de exemplo: https://api-testing.yuja.com/services/users/2469/groups/content_owners
Parâmetros:
Nenhum parâmetro é necessário.
Exemplo de resposta:
[
{
"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
Cria novos usuários com base nos mesmos parâmetros dos endpoints post de services e users (consulte a Seção 1.2.3), com dois parâmetros adicionais: primary_identifier e secondary_identifier. Isso vinculará o usuário a usuários existentes ou futuros criados por meio da integração com LMS ou SSO. Embora primary_identifier e secondary_identifier sejam opcionais, um dos dois parâmetros deve estar presente. Entre em contato com o suporte da YuJa se precisar de mais assistência.
URL de exemplo: https://api-testing.yuja.com/services/users/primary_identifier
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| email_address | parâmetro de corpo | string[255] | Obrigatório |
| first_name | parâmetro de corpo | string[30] | Obrigatório |
| last_name | parâmetro de corpo | string[30] | Obrigatório |
| login_id | parâmetro de corpo | string[20] | Obrigatório |
| login_password | parâmetro de corpo | string[20] | Obrigatório |
| custom_id | parâmetro de corpo | string[20] | Opcional |
| user_type | parâmetro de corpo | string enum | Obrigatório |
| phone_number | parâmetro de corpo | string[20] | Opcional |
| primary_identifier | parâmetro de corpo | string[255] | Opcional |
| secondary_identifier | parâmetro de corpo | string[255] | Opcional |
1.2.9 - POST /services/media/permission
Adicione ou modifique permissões de pastas no CampusTube ou no EnterpriseTube.
URL de exemplo: https://api-testing.yuja.com/services/media/permission
Parâmetros:
Nenhum parâmetro é necessário para esta chamada.
Dados JSON de exemplo:
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
Use a entrada JSON abaixo ao atribuir com base na função:
{
"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"
}
Use a entrada JSON abaixo ao atribuir com base no usuário:
{
"folderID": "9931153",
"type": "User",
"updateDescendants": "true" OR "false",
"userName": "username",
"access": "Full Access" OR "Edit Access" OR "Edit Caption Access" OR "Read Access"
}
Use a entrada JSON abaixo ao atribuir com base no 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"
}
Exemplo de resposta:
Successfuly Modified permission
1.2.10 - DELETE /services/media/permission
Exclui as permissões de uma pasta.
URL de exemplo: https://api-testing.yuja.com/services/media/permission
Parâmetros:
Nenhum parâmetro é necessário para esta chamada.
Dados JSON de exemplo:
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
Use a entrada JSON abaixo ao atribuir com base em uma função:
{
"folderID":"9931153",
"type": "Role",
"name": "Student" OR "Instructor"
}
Use a entrada JSON abaixo ao atribuir com base no usuário:
{
"folderID": "9931153",
"type": "User",
"userName": "username"
}
Use a entrada JSON abaixo ao atribuir com base no grupo:
{
"folderID": "9931153",
"type": "Group",
"groupName": "group name"
}
Exemplo de resposta:
Success
1.2.11 - POST /services/media/mediaByLinkageValue
Obtenha informações sobre os vídeos contidos na conta do usuário usando um valor de “linkage”. Ele pode ser obtido em Painel de administração > Lista de usuários do Lumina, visualizando a coluna Linkage de um usuário. Selecione o tipo de linkage dele na coluna e copie o valor de LTI Linkage, LTI3 Linkage ou SAML Linkage fornecido.
URL de exemplo: https://api-testing.yuja.com/services/media/mediaByLinkageValue
Parâmetros:
Nenhum parâmetro é necessário para esta chamada.
Dados JSON de exemplo:
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"linkage": "stu.bct"
}
Exemplo de resposta:
[{"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
Adicione um usuário a uma pasta compartilhada com as permissões especificadas.
URL de exemplo: https://hudson.yuja.com/services/media/modifySharePermissions
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| node_id | Parâmetro de corpo | string | O ID do nó da pasta que você deseja compartilhar. |
| user_id | parâmetro de corpo | string | O ID do proprietário da pasta. |
| share_with_user_id | parâmetro de corpo | string | O ID do usuário com quem você deseja compartilhar a pasta. |
| access_level | parâmetro de corpo | string | O nível de acesso do usuário com quem a pasta é compartilhada: "Full Access", "Edit Access", "Edit Caption Access" ou "Read Only". |
Dados JSON de exemplo:
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"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"
}
]
}
Exemplo de resposta:
Share list successfully updated.
1.2.13 - DELETE /services/media/modifySharePermissions
Remova um usuário de uma pasta compartilhada.
URL de exemplo: https://hudson.yuja.com/services/media/modifySharePermissions
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| node_id | Parâmetro de corpo | string | O ID do nó da pasta da qual você deseja remover um usuário. |
| user_id | parâmetro de corpo | string | O ID do proprietário da pasta. |
| delete_list | parâmetro de corpo | string | Uma lista de usuários que você deseja excluir, separados por vírgulas. |
Dados JSON de exemplo:
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"node_id":"10352458",
"user_id":"tryan",
"delete_list":[
"alia", "smichael", "rkhan"
]
}
Exemplo de resposta:
Share list successfully updated.
1.2.14 - PUT /services/users/updateStatus
Altere o status da conta de um usuário usando o ID de usuário, o ID de login ou o e-mail dele. Para atualizar vários usuários de uma vez, use uma lista de IDs de usuário, IDs de login ou e-mails. No total, é preciso informar dois parâmetros: email OU login_id OU user_id, e status.
URL de exemplo: https://hudsonlake.yuja.com/services/users/updateStatus
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| parâmetro de corpo | string | O endereço de e-mail do usuário. | |
| user_id | parâmetro de corpo | string | O ID do usuário. Exemplo: "123456" |
| login_id | parâmetro de corpo | string | O ID de login do usuário. Exemplo: "laurie_thompson". |
| status | parâmetro de corpo | string | O status da conta que você deseja definir para o usuário: "active" ou "suspended". |
Alteração do status da conta usando user_id
Dados JSON de exemplo:
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"user_id":"brendansheedy,caseymelvin,cecilleminkov,danielsteen",
"status":"active"
}
Exemplo de resposta:
The status for the given user(s) has been successfully updated.
Alteração do status da conta usando o e-mail
Dados JSON de exemplo:
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"email":"brendan.sheedy@yuja.com,caseymelvin@yuja.com,cecilie.minkov@yuja.com,daniel.steen@yuja.com",
"status":"suspended"
}
Exemplo de resposta:
The status for the given user(s) has been successfully updated.
2 - Visão geral da API de grupos
Os grupos representam todos os cursos disponíveis na organização. Cada curso tem uma segurança de curso específica, que filtra o acesso dos usuários a ele. O curso também pode publicar políticas que permitem que apenas certos tipos de usuários publiquem nesses grupos.
Observação: À medida que avançamos na distinção entre cursos e grupos, as APIs existentes das seções 2.2.1 a 2.2.13 continuarão funcionando normalmente por enquanto. Para migrar para as APIs mais atuais para cursos, recomendamos usar as APIs das seções 2.2.14 a 2.2.23. Para APIs específicas de grupos, consulte a seção abaixo, intitulada 3 - Visão geral da API UserGroups.
2.1 - Modelo de objeto de grupo
| Variável | Tipo | Descrição |
|---|---|---|
| group_id | string | Um ID de grupo exclusivo gerado pelo sistema. |
| owner_id | string | O ID do proprietário que criou o grupo. |
| group_name | string[200] | Nome do grupo. |
| group_code | string[25] | Nome curto do grupo. |
| group_security | string enum | A configuração de segurança do grupo. Pode ser um dos seguintes valores: “INVITE_ONLY”, “REQUEST_JOIN”, “SECURITY_RULE”, “FREE_JOIN”. |
| group_term | string[30] | O nome do período letivo deste grupo. |
| publish_type | string enum | Especifica os usuários autorizados a publicar neste grupo. Pode ser um dos seguintes valores: “ALL”, “CURATE”, “ADMIN”. |
| is_active | boolean | Especifica se o grupo está ativo ou não. |
| groupName | string | Nome desejado para um grupo. |
| groupMemeber | string | O PID de usuário dos membros que serão adicionados a um grupo. |
Para obter o group_id dos grupos, primeiro faça a chamada de API GET /groups (Seção 2.2.1). Na resposta, é possível coletar o group_id de todos os grupos, que poderá ser usado depois em outras chamadas de API.
2.2 - Principais endpoints
| Método | Caminho | Descrição |
|---|---|---|
| GET | /groups | Recupera todos os grupos pertencentes à organização. |
| GET | /groups/{group_id} | Recupera um único grupo individual com base em group_id. |
| PUT | /groups/{group_id} | Atualiza um único grupo individual com base em group_id. |
| POST | /groups | Cria um novo grupo |
| DELETE | /groups/{group_id} | Exclui um grupo criado |
| POST | /groups/{group_id}/members/add/{user_id} | Adiciona um usuário ao grupo como membro inscrito. |
| POST | /groups/{group_id}/content_owners/add/{user_id} | Adiciona um usuário ao grupo como proprietário de conteúdo |
| GET | /groups/{group_id}/content_owners | Recupera todos os usuários que têm acesso de proprietário de conteúdo ao grupo. |
| GET | /groups/{group_id}/members | Recupera todos os usuários inscritos no grupo. |
| DELETE | /groups/{group_id}/members/{user_id} | Remove o usuário membro do grupo. Não faz nada se o usuário não for membro. |
| DELETE | /groups/{group_id}/content_owners/{user_id} | Remove o proprietário de conteúdo do grupo. Não faz nada se o usuário não for proprietário de conteúdo. |
| GET | /groups/groupCode/{group_code} | Retorna os detalhes do grupo para o código de grupo informado (código do curso). |
| post | /services/users/createGroup | Cria grupos e/ou adiciona membros a grupos. |
| GET | /courses/code/{course_code} | Retorna os detalhes do curso para o código de curso informado |
| DELETE | /services/courses/{course_id}/owners/{user_id} | Exclui o proprietário de um curso. |
| DELETE | /services/courses/{course_id}/members/{user_id} | Exclui um membro de um curso. |
| GET | /courses/{course_id}/owners | Recupera os proprietários do curso. |
| DELETE | /services/courses/{course_id} | Exclui o curso. |
| PUT | /services/courses/{course_id} | Edita um curso existente. |
| POST | /services/courses/{course_id}/owners/{user_id} | Adiciona um proprietário ao curso. |
| POST | /services/courses/{course_id}/members/{user_id} | Adiciona um membro a um curso. |
| POST | /services/courses | Cria um curso. |
| GET | /services/courses | Recupera os detalhes de todos os cursos. |
2.2.1 - GET /services/groups
Retorna uma lista JSON de todos os grupos, organizada em páginas de 1000 grupos. Se quiser retornar todos os grupos em uma única página, entre em contato com o seu gerente de contas para alterar a funcionalidade desta API para a sua instituição. Observação: Você não poderá retornar todos os grupos em uma única página após 31 de dezembro de 2023.
URL de exemplo: https://api-testing.yuja.com/services/groups?page=2&sortDescending=false
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| page | Parâmetro de caminho | Integer | Opcional | Especifica o número da página. O valor padrão é 0, que recupera os primeiros 1000 grupos a partir da primeira página. |
| sortDescending | Parâmetro de caminho | Boolean | Opcional | Se o valor for true, os resultados serão exibidos em ordem decrescente do PID. Se o valor for false, os resultados serão exibidos em ordem crescente do PID. Se nenhum valor for especificado, o valor padrão será true. |
Exemplo de resposta:
[
{
"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}
Retorna um objeto JSON com as informações do grupo.
URL de exemplo: https://api-testing.yuja.com/services/groups/1098
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
Exemplo de resposta:
{
"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 as informações de um grupo com id {group_id}. Consulte a seção 2.1 para ver os detalhes dos parâmetros.
URL de exemplo: https://api-testing.yuja.com/services/groups/1098
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
| group_name | parâmetro de corpo | string[200] | Defina para atualizar o nome do grupo. |
| group_code | parâmetro de corpo | string[25] | Defina para atualizar o nome curto do grupo. |
| group_term | parâmetro de corpo | string[30] | Defina para atualizar o nome personalizado do grupo. |
| group_type | parâmetro de corpo | string enum | Defina para atualizar o tipo de publicação do grupo. |
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"group_name": String group_name,
"group_code": String group_code,
"group_term": String group_security,
"publish_type": String publish_type
}
Todos os campos são opcionais. Somente os campos informados são atualizados.
2.2.4 - POST /services/groups
Cria um novo grupo. Consulte a seção 2.1 para ver os detalhes dos parâmetros.
URL de exemplo: https://api-testing.yuja.com/services/groups
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| owner_id | parâmetro de corpo | integer | Obrigatório. |
| group_name | parâmetro de corpo | string[200] | Obrigatório. |
| group_code | parâmetro de corpo | string[25] | Obrigatório. |
| group_term | parâmetro de corpo | string | Obrigatório. |
| publish_type | parâmetro de corpo | string enum | Obrigatório. |
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"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}
Remove da instituição um grupo/turma com id {group_id}.
URL de exemplo: https://api-testing.yuja.com/services/groups/1098
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
2.2.6 - POST /services/groups/{group_id}/members/add/{user_id}
Adiciona um usuário a um grupo como membro.
URL de exemplo: https://api-testing.yuja.com/services/groups/1098/members/add/1000
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
| user_id | parâmetro de caminho | string | O valor deve corresponder ao campo user_id na chamada GET /users. |
2.2.7 - POST /services/groups/{group_id}/content_owners/add/{user_id}
Adiciona um usuário a um grupo como proprietário de conteúdo.
URL de exemplo: https://api-testing.yuja.com/services/groups/1098/content_owners/add/1000
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
| user_id | parâmetro de caminho | string | O valor deve corresponder ao campo user_id na chamada GET /users. |
2.2.8 - GET /services/groups/{group_id}/content_owners
Retorna uma lista JSON de objetos, em que cada objeto é um usuário que é proprietário de conteúdo do grupo com id {group_id}.
URL de exemplo: https://api-testing.yuja.com/services/groups/1098/content_owners
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
Exemplo de resposta:
[
{
"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
Retorna uma lista JSON de objetos, em que cada objeto é um usuário que é membro do grupo com id {group_id}.
URL de exemplo: https://api-testing.yuja.com/services/groups/1098/members
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
Exemplo de resposta:
[
{
"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}
Remove o membro com id {user_id} de um grupo com id {group_id}.
URL de exemplo: https://api-testing.yuja.com/services/groups/1098/members/1000
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
| user_id | parâmetro de caminho | string | O valor deve corresponder ao campo user_id na chamada GET /users. |
2.2.11 - DELETE /services/groups/{group_id}/content_owners/{user_id}
Remove o proprietário de conteúdo com id {user_id} de um grupo com id {group_id}.
URL de exemplo: https://api-testing.yuja.com/services/groups/1098/content_owners/1000
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
| user_id | parâmetro de caminho | string | O valor deve corresponder ao campo user_id na chamada GET /users. |
2.2.12 - GET /services/groups/groupCode/{group_code}
Retorna os detalhes do grupo para o código de grupo informado (código do curso).
URL de exemplo: https://api-testing.yuja.com/services/groups/groupCode/123
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| group_code | Parâmetro de caminho | String | Obrigatório | O código do grupo cujos detalhes serão retornados. |
Exemplo de resposta:
[
{
"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
Cria grupos e/ou adiciona membros a grupos.
URL de exemplo: https://evergreen.yuja.com/services/users/createGroup
Parâmetros:
Nenhum parâmetro é necessário para esta chamada.
Exemplo de dados JSON:
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{"groupName": "ChemistryGroup","groupMembers": "374983,342842,418637 (can be left empty)"}
Exemplo de resposta:
Group created successfully
2.2.14 - GET /services/courses/code/{course_code}
Retorna os detalhes do curso para o código de curso informado.
URL de exemplo:https://api-testing.yuja.com/services/courses/code/BIO232
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| course_code | Parâmetro de caminho | String | Obrigatório | O código do curso cujos detalhes serão retornados. |
Exemplo de resposta:
{"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}
Exclui o proprietário de um curso.
URL de exemplo: https://api-testing.yuja.com/services/courses/152463/owners/782915
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| course_id | parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
| user_id | parâmetro de caminho | string | O valor deve corresponder ao campo user_id na chamada GET /users. |
Exemplo de resposta:
Successfully deleted user from group/class
2.2.16 - DELETE /services/courses/{course_id}/members/{user_id}
Exclui um membro pertencente a um curso.
URL de exemplo: https://api-testing.yuja.com/services/courses/2463/members/782295
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| course_id | parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
| user_id | parâmetro de caminho | string | O valor deve corresponder ao campo user_id na chamada GET /users. |
Exemplo de resposta:
Successfully deleted user from group/class
2.2.17 - GET /services/courses/{course_id}/owners
Recupera os proprietários do curso.
URL de exemplo: https://api-testing.yuja.com/services/courses/2463/owners
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| course_id | parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
Exemplo de resposta:
{
"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}
Exclui o curso.
URL de exemplo: https://api-testing.yuja.com/services/courses/2463
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| course_id | parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
Exemplo de resposta:
Successfully deleted course/class
2.2.19 - PUT /services/courses/{course_id}
Edita um curso existente.
URL de exemplo: https://api-testing.yuja.com/services/courses/2463
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| course_id | parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
| course_name | parâmetro de corpo | string | O novo nome do curso (opcional). |
| course_code | parâmetro de corpo | string | O valor deve existir e ser válido. |
| course_term | parâmetro de corpo | string | Novo período do curso (opcional). |
| is_active | parâmetro de corpo | boolean/int/string | O valor determina o status ativo do curso (opcional; aceita true/false, 1/0 ou equivalentes em string) |
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"course_name": "newcoursename",
"course_code": "999676",
"course_term": "winter",
"is_active": true;
}
Exemplo de resposta:
Successfully updated course of id: 2463
2.2.20 - POST /services/courses/{course_id}/owners/{user_id}
Adiciona um proprietário a um curso existente.
URL de exemplo: https://api-testing.yuja.com/services/courses/2463/owners/74927
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| course_id | parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
| user_id | parâmetro de caminho | string | O valor deve corresponder ao campo user_id na chamada GET /users. |
Exemplo de resposta:
Successfully made user a content owner to this course/class
2.2.21 - POST /services/courses/{course_id}/members/{user_id}
Adiciona um membro a um curso existente.
URL de exemplo: https://api-testing.yuja.com/services/courses/2463/members/74927
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| course_id | parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
| user_id | parâmetro de caminho | string | O valor deve corresponder ao campo user_id na chamada GET /users. |
Exemplo de resposta:
Successfully made user a member to this course/class
2.2.22 - POST /services/courses
Cria um novo curso.
URL de exemplo: https://api-testing.yuja.com/services/courses
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"owner_id": 374971,
"course_name": "newcourse1",
"course_code": "999000",
"course_term": "Summer",
"publish_type": "ADMIN"
}
Exemplo de resposta:
Successfully created a new course
2.2.23 - GET /services/courses
Recupera os detalhes dos cursos em lotes de 200.
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| page | número, padrão 0 | Integer | Opcional |
| sortDescending | true/false, padrão true, ordenação por classpid | Boolean | Opcional |
URL de exemplo: https://api-testing.yuja.com/services/courses
Exemplo de resposta:
{"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 - Visão geral da API UserGroups
Os UserGroups representam todos os grupos disponíveis na organização. Cada grupo tem um ID exclusivo e membros que podem ser adicionados ou removidos.
3.1 - Modelo de objeto de dispositivo
| Variável | Tipo | Descrição |
|---|---|---|
| group_id | string | Um ID de grupo exclusivo gerado pelo sistema. O valor deve corresponder ao ID exclusivo da plataforma do grupo ou ao campo de valor group_id na chamada 3.2.1 GET /services/usergroups/all. |
| groupMembers | string | O PID de usuário dos membros que serão adicionados a um grupo. |
| groupName | string | Nome desejado para um grupo. |
| user_id | string | O ID de um usuário do Lumina. Pode ser obtido em 1.2.1 - GET /users. |
3.2 - Principais endpoints
| Método | Caminho | Descrição |
|---|---|---|
| GET | /services/usergroups/all | Recupera todos os grupos. |
| GET | /services/users/{user_id}/userGroups | Recupera todos os grupos aos quais um usuário pertence. |
| GET | /services/usergroups/name/members | Recupera todos os membros de um grupo pelo nome do grupo. |
| GET | /services/usergroups/{group_id}/members | Recupera todos os membros de um grupo pelo ID do grupo. |
| GET | /services/usergroups/{group_id} | Recupera as informações de um grupo pelo ID do grupo. |
| POST | /services/usergroups/create | Cria um novo grupo e adiciona membros ao grupo. |
| PUT | /services/usergroups/{group_id} | Edita o nome de um grupo. |
| DELETE | /services/usergroups/{group_id} | Exclui um grupo com base no ID dele. |
| DELETE | /services/usergroups/{group_id}/clear | Exclui todos os membros do grupo. |
| DELETE | /services/usergroups/{group_id}/members/{user_id} | Exclui um membro específico do grupo pelo ID dele. |
| POST | /services/usergroups/foldersByGroupPID | Recupera uma lista das pastas às quais o grupo especificado tem acesso. |
3.2.1 - GET /services/usergroups/all
Recupera todos os grupos.
URL de exemplo: https://api-testing.yuja.com/services/usergroups/all
Exemplo de resposta:
{"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 os grupos aos quais um usuário pertence.
URL de exemplo: https://api-testing.yuja.com/services/users/3276/userGroups
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| user_id | parâmetro de caminho | string | O valor deve corresponder ao campo user_id em 1.2.1 - GET /users |
Exemplo de resposta:
[
Anthropology, Microbiology, AdminGroup
]
3.2.3 - GET /services/usergroups/name/members
Recupera todos os membros de um grupo pelo nome do grupo.
URL de exemplo: https://api-testing.yuja.com/services/usergroups/name/members
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"groupName":"anthropology"
}
Exemplo de resposta:
[
275749, 352461, 355740, 362283, 380225, 381147
]
3.2.4 - GET /services/usergroups/{group_id}/members
Recupera todos os membros de um grupo pelo ID do grupo.
URL de exemplo: https://api-testing.yuja.com/services/usergroups/73527/members
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | parâmetro de caminho | string | O valor deve corresponder ao ID exclusivo da plataforma do grupo ou ao campo de valor group_id na chamada 3.2.1 GET /services/usergroups/all. |
Exemplo de resposta:
[
472862, 840173, 294591
]
3.2.5 - GET /services/usergroups/{group_id}
Recupera as informações de um grupo pelo ID do grupo.
URL de exemplo: https://api-testing.yuja.com/services/usergroups/73527/members
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | parâmetro de caminho | string | O valor deve corresponder ao ID exclusivo da plataforma do grupo ou ao campo de valor group_id na chamada 3.2.1 GET /services/usergroups/all. |
Exemplo de resposta:
{"value":{"userGroupPID":{"value":298},"groupName":"Admin Group","institutePID":2}}
3.2.6 - POST /services/usergroups/create
Cria um grupo e adiciona membros. Se o grupo já existir, os membros serão adicionados a ele. Para criar um grupo sem membros, insira "groupMembers":"" nos dados JSON.
URL de exemplo: https://api-testing.yuja.com/services/usergroups/create
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"groupName":"Admin Group",
"groupMembers":"37291,34370"
}
Exemplo de resposta:
Group created and Members added successfully
3.2.7 - PUT /services/usergroups/{group_id}
Edita o nome de um grupo.
URL de exemplo: https://api-testing.yuja.com/services/usergroups/482
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | parâmetro de caminho | string | O valor deve corresponder ao ID exclusivo da plataforma do grupo ou ao campo de valor group_id na chamada 3.2.1 GET /services/usergroups/all. |
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"groupId":"847",
"groupName":"Admin Group"
}
Exemplo de resposta:
Successfully changed the group name
3.2.8 - DELETE /services/usergroups/{group_id}
Exclui o nome de um grupo.
URL de exemplo: https://api-testing.yuja.com/services/usergroups/482
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | parâmetro de caminho | string | O valor deve corresponder ao ID exclusivo da plataforma do grupo ou ao campo de valor group_id na chamada 3.2.1 GET /services/usergroups/all. |
Exemplo de resposta:
Successfully deleted the group
3.2.9 - DELETE /services/usergroups/{group_id}/clear
Remove todos os membros de um grupo.
URL de exemplo: https://api-testing.yuja.com/services/usergroups/482/clear
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | parâmetro de caminho | string | O valor deve corresponder ao ID exclusivo da plataforma do grupo ou ao campo de valor group_id na chamada 3.2.1 GET /services/usergroups/all. |
Exemplo de resposta:
Successfully cleared group members
3.2.10 - DELETE /services/usergroups/{group_id}/members/{user_id}
Exclui um membro específico do grupo pelo ID dele.
URL de exemplo: https://api-testing.yuja.com/services/usergroups/482/members/73847
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | parâmetro de caminho | string | O valor deve corresponder ao ID exclusivo da plataforma do grupo ou ao campo de valor group_id na chamada 3.2.1 GET /services/usergroups/all. |
| user_id | parâmetro de caminho | string | O valor deve corresponder ao campo user_id em 1.2.1 - GET /users |
Exemplo de resposta:
Successfully deleted group member
3.2.11 - POST /services/usergroups/foldersByGroupPID
Recupera uma lista das pastas às quais o grupo especificado tem acesso.
URL de exemplo: https://api-testing.yuja.com/services/usergroups/foldersByGroupPID
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| pageNumber | Parâmetro de corpo | Integer | Opcional: o número da página da lista. O valor padrão é 1. |
| pageSize | Parâmetro de corpo | Integer | Opcional: o número de resultados por página. O valor padrão é 20 e o valor máximo é 200. |
| groupPID | Parâmetro de corpo | Integer | O ID exclusivo da plataforma para o grupo. |
Exemplo de solicitação:
{
"pageNumber":1,
"pageSize":10,
"groupPID":368
}
Exemplo de resposta:
[
{
"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 - Visão geral da API Device
Os dispositivos representam todos os dispositivos de captura registrados na organização. Opcionalmente, cada dispositivo pode receber um IP na interface de gerenciamento. Este ID será recuperado junto com os demais IDs de dispositivo.
4.1 - Modelo de objeto de dispositivo
| Variável | Tipo | Descrição |
|---|---|---|
| device_id | string | Um ID exclusivo gerado pelo sistema. |
| device_type | string enum | Tipo do dispositivo registrado. Pode ser um dos seguintes valores: “software_capture”, “hardware_capture”. |
| name | string[100] | O nome dado ao dispositivo. |
| access_level | string enum | Quem pode acessar este dispositivo; pode ser um dos seguintes valores: “it_admin”, “me”, “content_owner”, “member”. |
| register_user_id | string | ID do usuário que registrou o dispositivo. |
| profile_id | string |
Um ID exclusivo gerado pelo sistema e atribuído a um perfil. Observação: Para appliances de hardware, defina profile_id como "-1" |
| session_id | string | Um ID exclusivo gerado pelo sistema e atribuído a uma sessão. |
| _live_broadcast | boolean | Opcional, somente para appliances de hardware. Especifica se a sessão está configurada para transmissão ao vivo. |
4.2 - Principais endpoints
| Método | Caminho | Descrição |
|---|---|---|
| GET | /devices | Recupera todos os dispositivos pertencentes à organização. |
| GET | /devices/{device_id} | Recupera um único dispositivo com base em device_id. |
| PUT | /devices/{device_id} | Atualiza o nome de um único dispositivo com base em device_id. |
| POST | /devices/register | Registra um dispositivo. |
| GET | /devices/registrations/{access_id} | Uma forma alternativa de usar GET para obter informações do dispositivo, usando access_id em vez do device_id interno da YuJa. Disponível apenas para tipos de dispositivo que usam um access_id. |
| GET | /devices/{device_id}/schedule | Recupera todos os agendamentos associados a este dispositivo. |
| POST | /devices/{device_id}/profiles/create | Cria um perfil de captura para um dispositivo. |
| POST | /devices/session | Cria uma sessão agendada com o dispositivo e o perfil selecionados. |
| POST | /devices/startsession | Cria uma sessão imediatamente com o dispositivo e o perfil especificados. |
| GET | /session/{sessionId}/livestream/urls | Recupera os URLs da transmissão ao vivo e o URL de reprodução para o sessionId informado. |
| POST | ||
| POST | /devices/stopstation | Interrompe todas as sessões que estão sendo gravadas no momento pelo dispositivo. |
| POST | /devices/{device_id}/status | Um endpoint para enviar periodicamente informações de status e de log ao Lumina. |
| GET | /devices/session/{session_id}/commands | A estação consultará o Lumina para obter comandos de pausar ou parar, que serão usados para o controle, durante a sessão, de uma sessão ativa. |
| DELETE | /devices/{session_id} | Remove uma sessão do agendamento do dispositivo. |
| GET | /devices/profiles/{device_id}/{login_id} | Recupera todos os perfis de um usuário em um dispositivo especificado. |
| GET | /devices/profiles/{device_id} | Recupera todos os perfis em um dispositivo especificado. |
| GET | /devices/userID/{sso} | Recupera o userID correspondente. |
| POST | /devices/editsession | Edita uma sessão existente. |
| DELETE | /devices/{device_id}/schedules | Remove todos os agendamentos associados a este dispositivo. |
| POST | /devices/{device_id}/status | Salva os status e as informações de log de um dispositivo específico. |
| POST | /devices/yujahardware/{device_id}/profiles/create | Cria um novo perfil. |
| PUT | devices/yujahardware/{device_id}/profiles/update | Atualiza o perfil do hub. |
| DELETE | /devices/yujahardware/{device_id}/profiles/{profile_id}/delete | Exclui um perfil de hub. |
| GET | /devices/{deviceId}/profiles/{externalProfileId} | Retorna o ID de perfil da YuJa correspondente ao ID de perfil externo informado. |
| DELETE | /devices/unregister/{deviceId} | Exclui qualquer dispositivo registrado. |
| PUT | /devices/{sessionId}/extend | Estende o tempo de sessão de dispositivos de terceiros (por padrão, em 30 minutos). |
| GET | /devices/{deviceId}/{profileId}/previewlinks | Retorna os URLs pré-assinados do S3 que podem ser usados para atualizar as pré-visualizações de áudio/imagem. |
| PUT | /devices/{sessionId}/stop | Interrompe imediatamente a sessão de dispositivos de terceiros |
| POST | /devices/session/{sessionPId}/pause | Pausa a reprodução da transmissão ao vivo de uma sessão específica. |
| POST | /devices/session/{sessionPId}/resume | Retoma a reprodução da transmissão ao vivo de uma sessão específica. |
4.2.1 - GET /services/devices
Retorna uma lista JSON de objetos, em que cada objeto é um dispositivo.
URL de exemplo: https://api-testing.yuja.com/services/devices
Parâmetros:
Nenhum parâmetro é necessário para esta chamada.
Exemplo de resposta:
{
{
"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}
Retorna um objeto JSON, em que o objeto é um dispositivo.
URL de exemplo: https://api-testing.yuja.com/services/devices/12456
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| device_id | parâmetro de caminho | string | O valor deve corresponder ao campo device_id na chamada GET /devices. |
Exemplo de resposta:
{
"name": "station2",
"device_type": "hardware_capture",
"access_level": "me",
“device_id ” : “12346”,
“register_user_id” : “user2”
}
4.2.3 - PUT /services/devices/{device_id}
Atualiza o dispositivo.
URL de exemplo: https://api-testing.yuja.com/services/devices/12345
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| device_id | parâmetro de caminho | string | O valor deve corresponder ao campo device_id na chamada GET /devices. |
4.2.4 - POST /services/devices/register
Registra um dispositivo. Você pode usar o endpoint existente PUT /devices/{device_id} para editar o dispositivo após o registro.
URL de exemplo: https://api-testing.yuja.com/services/devices/register
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| access_id | Parâmetro de corpo | string[100] | Obrigatório | Um identificador exclusivo da estação de captura. |
| display_name | Parâmetro de corpo | string[100] | Obrigatório | O nome de exibição mostrado ao usuário final. |
| station_type | Parâmetro de corpo | string enum | Obrigatório | Especifica qual dispositivo de terceiros está sendo registrado (exemplo: "extron", "epiphan"). |
| device_model | Parâmetro de corpo | string | Opcional | O modelo do dispositivo. |
| firmware_version | Parâmetro de corpo | string | Opcional | A versão do firmware do dispositivo. |
| user_identifier | Parâmetro de corpo | string | Obrigatório | Um identificador do usuário do Lumina que será o proprietário do dispositivo. |
| user_identifier_type | Parâmetro de corpo | string enum | Obrigatório | Valores possíveis: "ID", "LOGIN", "SSO". Determina como o parâmetro user_identifier será tratado. ID representa o ID interno da YuJa, LOGIN representa o nome de usuário de login do usuário e SSO representa o identificador de usuário de SSO do usuário. |
| configuration | Parâmetro de corpo | JSON object | Opcional | Configurações diversas. |
| contact_list | Parâmetro de corpo | string | Opcional | Uma lista de usuários para os quais enviar notificações do dispositivo. A string estará no formato de valores separados por vírgula, em que cada valor é um ID de usuário interno do Lumina ou um e-mail. |
| save_folder (em breve) | Parâmetro de corpo | string | Opcional | A pasta em Coleções de mídia na qual salvar. O caminho será relativo, a partir da pasta do usuário, e não absoluto. Se não for definido, o padrão será a coleção padrão do usuário. |
Exemplo de solicitação:
{
"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"
}
Exemplo de resposta:
{
“success”: “true”,
“error_message”: “”,
“id”: “12345”
}
4.2.5 - GET /services/devices/registrations/{access_Id}
Uma forma alternativa de usar GET para obter informações do dispositivo, usando access_id em vez do device_id interno do Lumina. Disponível apenas para tipos de dispositivo que usam um access_id.
URL de exemplo: https://api-testing.yuja.com/services/devices/registrations/r0RQUYSM89TvCo9sm3AM
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| access_id | Parâmetro de caminho | string[100] | Obrigatório | Um identificador exclusivo da estação de captura. |
Exemplo de resposta:
{
"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
Retorna os detalhes das sessões do dispositivo em um período.
URL de exemplo: https://api-testing.yuja.com/services/devices/12345/schedule?startTime=01-08-2021&endTime=07-08-2021
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| device_id | parâmetro de caminho | string | O valor deve corresponder ao campo device_id na chamada GET /devices. |
| startTime | Parâmetro de consulta | string | Horário de início do agendamento (dd-mm-yyyy) |
| endTime | Parâmetro de consulta | string | Horário de término do agendamento (dd-mm-yyyy) |
Exemplo de resposta:
[
{
"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
Cria um perfil de captura para um dispositivo.
URL de exemplo: https://api-testing.yuja.com/services/devices/{device_id}/profiles/create
Parâmetros: O corpo conterá um array JSON em que cada objeto JSON terá os campos a seguir.
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| profile_id | Parâmetro de corpo | string[100] | Obrigatório | Um identificador exclusivo do perfil. |
| name | Parâmetro de corpo | string | Obrigatório | O nome do perfil exibido ao usuário final. |
| description | Parâmetro de corpo | string | Opcional | A descrição do perfil exibida ao usuário final. |
| isLiveStream | Parâmetro de corpo | boolean | Opcional | O valor booleano determina se a sessão criada por meio deste perfil será transmitida ao vivo ou não. O valor padrão é false |
Exemplo de requisição:
[
{
"profile_id": "456juhgj",
"name": "LiveStreamProfile",
"description": "No desc needed",
"isLiveStream": true
},
{
"profile_id": "789juhgj",
"name": "NormalProfile",
"description": "Normal Profile",
"isLiveStream": false
}
]
Exemplo de resposta:
{
"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
Cria uma sessão.
URL de exemplo: https://api-testing.yuja.com/services/devices/session
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| start_year | Parâmetro de corpo | string | Ano de início da sessão. |
| start_month | Parâmetro de corpo | string | Mês de início da sessão. |
| start_day | Parâmetro de corpo | string | Dia de início da sessão. |
| start_hour | Parâmetro de corpo | string | Hora de início da sessão. |
| start_minute | Parâmetro de corpo | string | Minuto de início da sessão. |
| duration_hour | Parâmetro de corpo | string | Número de horas de duração da sessão. |
| duration_minute | Parâmetro de corpo | string | Número de minutos de duração da sessão. |
| is_live_broadcast | Parâmetro de corpo | boolean | Grave uma transmissão ao vivo informando true; caso contrário, informe false. |
| station_id | Parâmetro de corpo | string | ID correspondente ao dispositivo com o qual você deseja gravar (obtido em 4.2.1). |
| login_id | Parâmetro de corpo | string | Use sso OU login_id. |
| sso | Parâmetro de corpo | string | Use sso OU login_id. |
| session_title | Parâmetro de corpo | string | Um título para a sessão. |
| session_description | Parâmetro de corpo | string | Opcional. |
| label_colour | Parâmetro de corpo | string | Opcional; deve estar no formato "#ABCDEF". |
| profile_id | Parâmetro de corpo | string |
Um ID correspondente ao perfil que você deseja usar na gravação (os IDs de perfil são obtidos em 4.2.16). Observação: Para dispositivos de hardware, defina profile_id como "-1" |
| folderPIDs | Parâmetro de corpo | string | Opcional: informe os PIDs válidos das pastas do CampusTube nas quais você deseja publicar as gravações do Hub, separando cada um com vírgula. |
| group_id | Parâmetro de corpo | string | Opcional: o ID do grupo pode ser obtido usando a requisição de obter todos os grupos (2.2.1). Só é possível ter group_id OU class_code, não ambos. |
| class_code | Parâmetro de corpo | string | Opcional: o class_code é adicionado pelo usuário. Só é possível ter group_id OU class_code, não ambos. |
| return_session | Parâmetro de corpo | boolean | Opcional: envie true para obter os detalhes da sessão na resposta. |
| storage_path | Parâmetro de corpo | string | Opcional: Informe o caminho relativo às suas Minhas coleções de mídia para armazenar o vídeo nessa pasta. Se for informado um valor em branco (“”) ou apenas uma barra (“/”), o vídeo será armazenado em Coleções padrão. Além disso, se a pasta mencionada não existir, a API criará uma para você. |
| manuallyStartScheduledSession | Parâmetro de corpo | boolean | Opcional: exige que a sessão seja iniciada manualmente. |
| usersToSendScheduleCopy | Parâmetro de corpo | string | Opcional: os PIDs dos usuários para os quais enviar um convite de calendário. |
| createPlaceholder | Parâmetro de corpo | boolean | Opcional: cria um marcador de posição de miniatura na coleção padrão ou no storage_path especificado. |
Exemplo de requisição:
{
"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
}
Exemplo de resposta:
{
"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
Inicia uma sessão imediatamente.
URL de exemplo: https://api-testing.yuja.com/services/devices/startsession
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| is_live_broadcast | Parâmetro de corpo | string | Use “true” para gravar uma transmissão ao vivo e “false” caso contrário. |
| group_id | Parâmetro de corpo | string | Opcional: o ID do grupo pode ser obtido usando a requisição de obter todos os grupos (2.2.1). É necessário informar group_id ou class_code se a sessão for ao vivo. Só é possível ter group_id OU class_code, não ambos. |
| class_code | Parâmetro de corpo | string | Opcional: o class_code é adicionado pelo usuário. É necessário informar group_id ou class_code se a sessão for ao vivo. Só é possível ter group_id OU class_code, não ambos. |
| duration_minute | Parâmetro de corpo | string | A duração da gravação em minutos. |
| station_id | Parâmetro de corpo | string | O ID do dispositivo de gravação pode ser obtido em (4.2.1). |
| login_id | Parâmetro de corpo | string | Use sso OU login_id. |
| sso | Parâmetro de corpo | string | Use sso OU login_id. |
| session_title | Parâmetro de corpo | string | Título da sessão |
| session_description | Parâmetro de corpo | string | Descrição opcional da sessão. |
| profile_id | Parâmetro de corpo | string | O ID do perfil pode ser obtido em 4.2.16. |
| storage_path | Parâmetro de corpo | string | Opcional: Informe o caminho relativo às suas Minhas coleções de mídia para armazenar o vídeo nessa pasta. Se for informado um valor em branco (“”) ou apenas uma barra (“/”), o vídeo será armazenado em Coleções padrão. Além disso, se a pasta mencionada não existir, a API criará uma para você. |
Exemplo de requisição:
{
"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
Um endpoint que responde com URLs de transmissão ao vivo e URLs de reprodução para um determinado sessionId. Observação: antes de usar a API, o YuJa Software Capture deve estar registrado na sua zona.
Parâmetros da requisição:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| sessionId | Parâmetro de caminho | Integer | Obrigatório | O sessionId da sessão agendada (pode ser obtido em /device_id/schedule) |
| JSONArray | Parâmetro de corpo | string |
JSONArray (array dos seguintes objetos JSON) (máximo de 3 transmissões permitidas por sessão)
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| streamName | JSONProperty | String | Obrigatório | Nome de transmissão exclusivo usado para criar a chave de transmissão |
| streamQuality | JSONProperty | String | Opcional |
Metadados opcionais Valores possíveis: 240 Valor padrão: 720 |
| audioOnly | JSONProperty | Boolean | Opcional |
Metadados opcionais Valores possíveis: True Valor padrão: False |
| videoOnly | JSONProperty | Boolean | Opcional |
Metadados opcionais: Valores possíveis: True Valor padrão: False |
| streamPriority | JSONProperty | String | Opcional |
Metadados opcionais Um valor menor significa prioridade maior Valores possíveis: 1 Valor padrão: 1 |
Exemplo de corpo da requisição:
[
{
"streamName": "stream1",
"streamQuality" : "720",
"videoOnly" : false,
"streamPriority" : "1"
},
{
"streamName": "stream2",
"streamQuality" : "720",
"audioOnly": false,
"videoOnly" : false,
"streamPriority" : "2"
}
]
Exemplo de resposta:
{
"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
Interrompe uma sessão imediatamente.
URL de exemplo: https://api-testing.yuja.com/services/devices/stopstation
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| device_id | Parâmetro de corpo | string | O ID do dispositivo de gravação pode ser obtido em (4.2.1). |
| login_id | Parâmetro de corpo | string | Login. |
Exemplo de requisição:
{
"device_id": "55492",
"login_id": "marythompson",
}
4.2.12 - POST /services/devices/{device_id}/status (Em breve)
Um endpoint para enviar periodicamente informações de status e de registro à Lumina. Isso inclui nossos registros de auditoria, registros de erros e alertas, como os de microfone com volume baixo (áudio de entrada).
URL de exemplo: https://api-testing.yuja.com/services/devices/12345/status
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| device_id | Parâmetro de caminho | integer | Obrigatório | O ID do dispositivo da Capture Station. |
| timestamp | Parâmetro de corpo | Timestamp | Obrigatório | Um carimbo de data e hora correspondente ao momento em que o evento ocorreu. |
| type | Parâmetro de corpo | string | Obrigatório | Valores: status, alert, error. |
| content | Parâmetro de corpo | integer | Opcional | O status do dispositivo (uploading, connected, streaming, disconnected), o conteúdo do alerta ou os registros de erro, dependendo do parâmetro type. |
Exemplo de requisição:
{
"device_id": 52341,
"timestamp": 2021-05-20 12:00:00,
"type": "status",
}
Exemplo de resposta:
{
“success”: true
}
4.2.13 - GET /services/devices/session/{session_id}/commands (Em breve)
A estação consultará a Lumina periodicamente para obter os comandos de pausa ou parada, que serão usados para o controle, durante a sessão, de uma sessão ativa. O intervalo de consulta no meio de uma sessão de gravação terá frequência maior do que quando a estação está em espera. A frequência máxima de consulta não deve exceder uma vez a cada 10 segundos.
URL de exemplo: https://api-testing.yuja.com/services/devices/session/614/commands
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| session_id | Parâmetro de caminho | integer | Obrigatório | O ID da sessão. |
Resposta:
| Nome | Tipo | Descrição |
|---|---|---|
| command | string | do-nothing, pause, stop. |
4.2.14 - DELETE /services/devices/{session_id}
Exclui uma sessão agendada.
URL de exemplo: https://api-testing.yuja.com/services/devices/679
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| session_id | Parâmetro de caminho | string | O ID do dispositivo pode ser obtido em (4.2.4). |
4.2.15 - GET /services/devices/profiles/{device_id}/{login_id}
Obtém os perfis de um usuário específico com um dispositivo específico.
URL de exemplo: https://api-testing.yuja.com/services/devices/profiles/12345/loginID123
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| device_id | Parâmetro de corpo | string | O ID do dispositivo de gravação pode ser obtido em (4.2.1). |
| login_id | Parâmetro de corpo | string | Login do usuário com o perfil. |
Exemplo de resposta:
{
"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}
Obtém os perfis de um usuário específico com um dispositivo específico.
URL de exemplo: https://api-testing.yuja.com/services/devices/profiles/12345
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| device_id | Parâmetro de corpo | string | O ID do dispositivo de gravação pode ser obtido em (4.2.1). |
Exemplo de resposta:
{
"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}
Recupera o userID correspondente.
URL de exemplo: https://api-testing.yuja.com/services/devices/userid/testuser
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| sso | Parâmetro de corpo | string | Pode ser obtido em 4.2.4. |
Exemplo de resposta:
testuser
4.2.18 - POST /services/devices/editsession
Atualiza uma sessão com os parâmetros fornecidos.
URL de exemplo: https://api-testing.yuja.com/services/devices/editsession
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| session_id | Parâmetro de corpo | string | Pode ser obtido em 4.2.11. |
| start_year | Parâmetro de corpo | string | Opcional: ano de início da sessão. |
| start_month | Parâmetro de corpo | string | Opcional: mês de início da sessão. |
| start_day | Parâmetro de corpo | string | Opcional: dia de início da sessão. |
| start_hour | Parâmetro de corpo | string | Opcional: hora de início da sessão. |
| start_minute | Parâmetro de corpo | string | Opcional: minuto de início da sessão. |
| duration_hour | Parâmetro de corpo | string | Opcional: número de horas de duração da sessão. |
| duration_minute | Parâmetro de corpo | string | Opcional: número de minutos de duração da sessão. |
| station_id | Parâmetro de corpo | string | Opcional: ID correspondente ao dispositivo com o qual você deseja gravar (obtido em 4.2.1). |
| login_id | Parâmetro de corpo | string | Opcional: use sso OU login_id. |
| sso | Parâmetro de corpo | string | Opcional: use sso OU login_id. |
| session_title | Parâmetro de corpo | string | Opcional: um título para a sessão. |
| session_description | Parâmetro de corpo | string | Opcional: uma descrição. |
| label_colour | Parâmetro de corpo | string | Opcional; deve estar no formato "#ABCDEF". |
| profile_id | Parâmetro de corpo | string | Opcional: um ID correspondente ao perfil que você deseja usar na gravação (os IDs de perfil são obtidos em 4.2.16). |
| group_id | Parâmetro de corpo | string | Opcional: o ID do grupo pode ser obtido usando a requisição de obter todos os grupos (2.2.1). Só é possível ter group_id OU class_code, não ambos. |
| class_code | Parâmetro de corpo | string | Opcional: o class_code é adicionado pelo usuário. Só é possível ter group_id OU class_code, não ambos. |
| storage_path | Parâmetro de corpo | string | Opcional: Informe o caminho relativo às suas Minhas coleções de mídia para armazenar o vídeo nessa pasta. Se for informado um valor em branco (“”) ou apenas uma barra (“/”), o vídeo será armazenado em Coleções padrão. Além disso, se a pasta mencionada não existir, a API criará uma para você. |
Exemplo de requisição:
{
"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
Exclui todas as sessões agendadas associadas ao dispositivo.
URL de exemplo: https://api-testing.yuja.com/services/devices/12345/schedules
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| device_id | Parâmetro de caminho | string | O ID do dispositivo pode ser obtido em (4.2.4). |
4.2.20 - GET /services/devices/{user_id}/sessions
Retorna os detalhes do usuário em um período.
URL de exemplo: https://api-testing.yuja.com/services/devices/marythompson
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| user_id | Parâmetro de caminho | string | O valor deve ser um user_id válido |
| startTime | Parâmetro de consulta | string | Horário de início de um agendamento (dd-mm-yyyy) |
| endTime | Parâmetro de consulta | string | Horário de término do agendamento (dd-mm-yyyy) |
Exemplo de resposta:
[
{
"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
Um endpoint para enviar periodicamente informações de status e de registro ao YuJa EVP.
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| device_id | Parâmetro de caminho | Integer | Obrigatório | O ID do dispositivo da Capture Station |
| statusType | Parâmetro de corpo | string | Obrigatório | Valores possíveis: DEVICE_STATUS |
| deviceStatus | Parâmetro de corpo JSON | string | Obrigatório |
Atualmente aceitos: uploading, streaming, ready, recording Poderiam ser adicionados: paused |
URL de exemplo: https://api-testing.yuja.com/services/devices/1480/status
Exemplo de corpo da requisição:
{
"statusType": "DEVICE_STATUS",
"deviceStatus": {
"recording": false,
"uploading": true,
"streaming": false,
"ready": true,
“extra_info”: objeto JSON contendo quaisquer outras informações úteis que ainda serão definidas.
}
}Exemplo de resposta:
{
"success": true,
"command": "",
"command_data": ""
}
Observação: command e command_data são marcadores de posição para funcionalidades futuras de controle dos dispositivos, como a possibilidade de instruir os dispositivos a pausar/encerrar a sessão pelo nosso portal.
4.2.22 - POST /services/devices/yujahardware/{device_id}/profiles/create
Um endpoint para criar perfis de hub.
URL de exemplo: https://api-testing.yuja.com/services/devices/yujahardware/{device_id}/profiles/create
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| device_id | Parâmetro de caminho | Integer | Um ID válido de estação de captura. |
| Name | Corpo | String [255] | O nome do perfil de hub não pode ficar vazio. |
| Description | Corpo | String [255] | Descrição do perfil. |
| MediaDevice0 | Corpo | Boolean | Ativar ou não o dispositivo de mídia 0. |
| MediaDevice1 | Corpo | Boolean | Ativar ou não o dispositivo de mídia 1. |
| MediaDevice2 | Corpo | Boolean | Ativar ou não o dispositivo de mídia 2. |
| LineInAudio | Corpo | Boolean | Ativar ou não o áudio de entrada de linha (Line In). |
Exemplo de corpo da requisição:
[{
"Name": "1",
"Description": "",
"MediaDevice0": true,
"MediaDevice1": false,
"MediaDevice2": false,
"LineInAudio": true
}]
Exemplo de resposta:
{"error_message":"","success":true,"profiles":[{"profile_name":"1","profile_id":"3313"}]}
4.2.23 - PUT /services/devices/yujahardware/{device_id}/profiles/update
Um endpoint para atualizar um perfil de hub.
URL de exemplo: https://api-testing.yuja.com/services/devices/yujahardware/{device_id}/profiles/update
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| device_id | Parâmetro de caminho | Integer | Um ID válido de estação de captura. |
| Name | Corpo | String [255] | O nome do perfil de hub não pode ficar vazio. |
| Description | Corpo | String [255] | Descrição do perfil. |
| MediaDevice0 | Corpo | Boolean | Ativar ou não o dispositivo de mídia 0. |
| MediaDevice1 | Corpo | Boolean | Ativar ou não o dispositivo de mídia 1. |
| MediaDevice2 | Corpo | Boolean | Ativar ou não o dispositivo de mídia 2. |
| LineInAudio | Corpo | Boolean | Ativar ou não o áudio de entrada de linha (Line In). |
Exemplo de corpo da requisição:
{
"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
}
Exemplo de resposta:
{
"errorMessage": "",
"success": true
}
4.2.24 - DELETE /services/devices/yujahardware/{device_id}/profiles/{profile_id}/delete
Um endpoint para excluir um perfil de hub.
URL de exemplo:
https://api-testing.yuja.com/services/devices/yujahardware/{device_id}/profiles/{profile_id}/delete
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| device_id | Parâmetro de caminho | Integer | Um ID válido de estação de captura. |
| profile_id | Parâmetro de caminho | Integer | Um ID de perfil válido. |
Exemplo de resposta:
{ "errorMessage": "",
"success": true
}
4.2.25 - GET /services/devices/{deviceId}/profiles/{externalProfileId}
Retorna o ID de perfil da YuJa correspondente ao ID de perfil externo informado.
URL de exemplo: https://api-testing.yuja.com/services/devices/1543/profiles/external/wstestprofile
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| deviceId | Parâmetro de caminho | Integer | Obrigatório | O ID do dispositivo de gravação |
| externalProfileId | Parâmetro de caminho | String | Obrigatório | O ID de perfil do dispositivo externo |
Exemplo de resposta:
{
"profile_Id": "wstestprofile",
"yuja_profile_Id": 3412
}
4.2.26 - DELETE /services/devices/unregister/{deviceId}
Exclui qualquer dispositivo registrado.
URL de exemplo: https://api-testing.yuja.com/services/devices/unregister/1547
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| device_id | Parâmetro de caminho | Integer | Obrigatório | O ID do dispositivo de gravação pode ser encontrado com (4.2.1). |
Exemplo de resposta:
{
"success": true
}
4.2.27 - PUT /services/devices/{sessionId}/extend
Estende o tempo de sessão de dispositivos de terceiros (por padrão, em 30 minutos).
URL de exemplo: https://api-testing.yuja.com/services/devices/38957/extend?minutes=6
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| sessionId | Parâmetro de caminho | Integer | Obrigatório | O ID da sessão que precisa ser estendida |
| minutes | Parâmetro de consulta | Integer | Opcional | Número de minutos que serão adicionados à duração da sessão |
Exemplo de resposta:
{
"success": true,
"message": "Successfully extended session for 6 minutes"
}
4.2.28 - GET - /services/devices/{deviceId}/{profileId}/previewlinks
Retorna as URLs S3 pré-assinadas que podem ser usadas para atualizar as prévias de áudio/imagem.
URL de exemplo: https://api-testing.yuja.com/services/devices/1480/3431/previewlinks?videoStream=1&audioStream=1
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| deviceId | Parâmetro de caminho | Integer | Obrigatório | O ID do dispositivo de gravação. |
| profileId | Parâmetro de caminho | String | Obrigatório | O ID de perfil da YuJa do dispositivo externo. |
| videoStream | Parâmetro de consulta | Integer | Obrigatório | Quantidade de fluxos de vídeo anexados ao perfil. Quantidade máxima de vídeo - 3 |
| audioStream | Parâmetro de consulta | Integer | Obrigatório | Quantidade de fluxos de áudio anexados ao perfil. Quantidade máxima de áudio - 2 |
Exemplo de resposta:
{
"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
Interrompe imediatamente a sessão de dispositivos de terceiros
URL de exemplo: https://api-testing.yuja.com/services/devices/38957/stop
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| sessionId | Parâmetro de caminho | Integer | Obrigatório | O ID da sessão que precisa ser interrompida. |
Exemplo de resposta:
{
"success": true,
"message": "Successfully stopped the session"
}
4.2.30 - POST - /services/devices/session/{sessionPId}/pause
Pausa a reprodução da transmissão ao vivo de uma sessão específica.
URL de exemplo: https://api-testing.yuja.com/services/devices/session/38519/pause
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| sessionPId | Parâmetro de caminho | Integer | Obrigatório | O ID da sessão que precisa ser pausada. |
Exemplo de resposta:
{
"success": true
}
4.2.31 - POST - /services/devices/session/{sessionPId}/resume
Retoma a reprodução da transmissão ao vivo de uma sessão específica.
URL de exemplo: https://api-testing.yuja.com/services/devices/session/38519/resume
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| sessionPId | Parâmetro de caminho | Integer | Obrigatório | O ID da sessão que precisa ser retomada. |
Exemplo de resposta:
{
"success": true
}
4.2.32 - DELETE /services/devices/{deviceId}/profiles/thirdParty/{yujaProfileId}
Exclui perfis de terceiros.
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| DeviceId | Parâmetro de caminho | Integer | Um ID de dispositivo válido. |
| YuJaProfileId | Parâmetro de caminho | Integer | Um ID de perfil da YuJa válido (disponível em GET /devices/profiles/{device_id}) |
Exemplo de resposta:
{
"success": true,
"message": "Profile Deleted Successfully!"
}
4.2.33 - PUT /services/devices/{deviceId}/profiles/thirdParty/{yujaProfileId}
Atualiza os detalhes de perfis de terceiros.
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| DeviceId | Parâmetro de caminho | Integer | Um ID de dispositivo válido |
| YuJaProfileId | Parâmetro de caminho | Integer | Um ID de perfil da YuJa válido (disponível em GET /devices/profiles/{device_id}) |
Exemplo de corpo da requisição:
{
"profile_id": "456juhgj",
"Name": "LiveStreamProfile",
"description": "No desc needed",
"isLiveStream": true
}
Exemplo de resposta:
{
"success": true,
"message": "Profile Updated Successfully!"
}
4.2.34 - GET /services/devices/{deviceId}/{yujaProfileId}/previewURLs
Retorna as URLs de prévia de vídeo e áudio para o dispositivo informado e o perfil correspondente.
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| DeviceId | Parâmetro de caminho | Integer | Um ID de dispositivo YSC válido. |
| YuJaProfileId | Parâmetro de caminho | Integer | Um ID de perfil da YuJa válido. |
Exemplo de resposta:
{
"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 com os status de dispositivo das estações YSC registradas.
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| DeviceId | Parâmetro de caminho | Integer | Um ID de dispositivo YSC válido. |
Exemplo de resposta:
{
"connected": true,
"streaming": false,
"ready": true,
"access_id": "presenter-service-1bb8f4f8-dc6b-43bb-b2ce-asdvsadfvf",
"recording": false,
"uploading": false
}
5 - Visão geral da API de mídia
A mídia representa todos os ativos da instituição. Isso inclui arquivos de áudio, arquivos de vídeo e outros documentos.
5.1 - Modelo de objeto de mídia
| Variável | Tipo | Descrição |
|---|---|---|
| login_id/loginid | string | ID de login do usuário. |
| group_id | string | ID de grupo exclusivo gerado pelo sistema. |
| title | string | Título do vídeo enviado ou da pasta que será criada. |
| file_key | string | Chave retornada pelo sistema para enviar um arquivo. |
| description | string | Descrição do vídeo enviado. |
| video_id/videonode_id/videoPID | string | ID de vídeo exclusivo gerado pelo sistema. |
| old_video_id | string | ID do vídeo a ser substituído. |
| new_video_id | string | ID do vídeo após a substituição. |
| folder_id/folderID/nodePID | string | PID de pasta exclusivo gerado pelo sistema. |
| video_id/VideoPID | integer | ID do vídeo selecionado. |
| media_file_id | integer | ID de arquivo de mídia exclusivo e válido. |
| DirectStreamEnabled | boolean | Se definido como true, o feed RSS terá links diretos para baixar a mídia. Se false, nenhum link direto para a mídia será recuperado. |
| extension | string | O tipo de arquivo das legendas que serão enviadas. O valor pode ser srt ou vtt. |
| type | string | Ao enviar legendas, o tipo será sempre "caption". Ao enviar um arquivo de transcrição, informe se o arquivo é "txt" ou "pdf". |
| language | string | O idioma do arquivo de legendas que será enviado. |
| file_key | integer | Obtido da resposta JSON da seção 5.2.44. |
| metadataPrefix | string |
Informe uma das opções a seguir: lom_ims: Recupera dados usando o modelo Learning Object Metadata.
oai_dc: Recupera dados usando o modelo padrão Dublin Core da Open Archives Initiative. |
5.2 - Principais endpoints
| Variável | Tipo | Descrição |
|---|---|---|
| GET | /media/createuploadlink | Recupera um link de upload e o file_key para enviar um arquivo de mídia. |
| POST | /media/upload/video | Envia os detalhes de um vídeo. |
| POST | /media/publish/video | Publica um vídeo em um curso. |
| POST | /media/replace/video | Substitui um vídeo. |
| GET | /media/video/group/{group_id} | Recupera os vídeos publicados em um curso. |
| GET | /media/video/directlink/{video_id} | Recupera o link direto e o código de incorporação de um vídeo. |
| GET | /media/retrievebranding | Recupera a personalização de marca do player de mídia da instituição. |
| PUT | /media/updatebranding | Atualiza a personalização de marca do player de mídia da instituição. |
| GET | /media/retrieveuserassets/{login_id} | Recupera os ativos do usuário (pastas, arquivos de vídeo, outros documentos). |
| GET | /media/retrieveuserassets/{folder_id} | Recupera os ativos contidos em uma pasta. |
| POST | /media/upload/session/{session_id}/createlinks | Gera links de upload para enviar as gravações da sessão. |
| POST | /media/upload/session/{session_id} | Envia um sinal de que o upload da gravação para as URLs do S3 foi concluído e de que o processamento do vídeo deve começar. |
| GET | /media/metadata/{video_id} | Recupera todas as entradas de metadados referentes ao video_id informado. |
| POST | /media/metadata/{video_id} | Insere as entradas de metadados no video_id informado. |
| DELETE | /media/metadata/{video_id} | Exclui as entradas de metadados referentes ao video_id informado e aos nomes informados nos parâmetros do corpo. |
| GET | /media/searchVideo | Recupera todos os vídeos que correspondem aos critérios de pesquisa informados nos parâmetros do corpo. |
| GET | /media/searchVideoWithQueryString | Recupera todos os vídeos que correspondem aos critérios de pesquisa informados nos parâmetros de consulta. |
| Handlers que permitem que a janela principal controle o player de mídia. | ||
| GET | /media/videos/{videoPId}/streams/hls | Retorna os fluxos HLS junto com outras informações importantes sobre o vídeo. |
| GET | /media/videos/{videoPId}/streams/thumbnail | Retorna as URLs das miniaturas junto com outras informações importantes sobre o vídeo. |
| POST | /media/document_link/{video_id}/{mediaFilePID} | Anexa um arquivo de mídia ao vídeo |
| DELETE | /media/document_link/{video_id}/{mediaFilePID} | Exclui um arquivo de mídia do vídeo |
| POST | /media/videos/{video_id}/indexes | Insere texto em arquivos de legendas ou de transcrição |
| DELETE | /media/videos/{video_id}/{index} | Exclui texto de arquivos de legendas ou de transcrição |
| Get | /media/folder/{folderId} | Obtém informações das pastas dentro da Lumina. |
| POST | /media/videos/{video_id}/captions/{language}/text/{line}/{position} | Insere texto em arquivos de legendas. |
| DELETE | /media/videos/{video_id}/captions/{language}/text/{line}/{start}/{end} |
Remove texto de um arquivo de legendas. |
| POST | /media/videos/{video_id}/captions/{language} |
Insere uma linha de legenda. |
| DELETE | /media/videos/{video_id}/captions/{language}/{line} |
Remove uma linha de legenda. |
| POST | /media/videos/{video_id}/captions/{language}/generatetranscript |
Gera uma transcrição usando as legendas do vídeo. |
| POST | /services/media/publishToInstitutionChannel/video |
Publica um vídeo no EnterpriseTube ou no CampusTube. |
| POST | /services/media/publishToInstitutionChannel/video |
Publica um vídeo no EnterpriseTube ou no CampusTube. |
| POST | /services/media/unpublishMedia |
Cancela a publicação de um vídeo no EnterpriseTube ou no CampusTube. |
| GET | /services/media/allFolders/ETubeAndILib | Recupera todas as pastas do EnterpriseTube e do CampusTube. |
| GET | services/media/retrievefolderassets/{folderID} |
Recupera todos os ativos dentro de uma pasta. |
| POST | services/media/RSS |
Obtém informações da pasta, incluindo quais vídeos estão dentro dela e o acesso aos links dos vídeos. |
| GET | services/media/video/{video_id} |
Recupera os detalhes de um vídeo que foi editado e substituído, informando o video_id original. |
| POST | /services/media/createFolderInEnterpriseTubeLibrary |
Cria uma subpasta dentro da pasta EnterpriseTube Library. |
| POST | /services/media/createFolderInSharedFolder |
Cria uma pasta ou subpasta dentro de Pasta compartilhada/Biblioteca interna. |
| POST | /services/media/captionFileUploadLink |
Fornece uma URL para enviar um arquivo de legendas ou de transcrição ao servidor e uma chave para a URL. |
| PUT | A URL é obtida a partir da seguinte API: POST /services/media/captionFileUploadLink |
Envia um arquivo de legendas ou de transcrição ao servidor. |
| POST | services/media/captionFileToVideo |
Envia um arquivo de legendas ou de transcrição para um vídeo. |
| GET | /services/metadata/oai-pmh?verb=GetRecord&identifier=video/mediaPID |
Retorna os metadados adicionados pelo usuário na Lumina. |
| GET | /services/metadata/oai-pmh?verb=ListRecords |
Retorna todos os arquivos com metadados que tenham a opção “Permitir que esta mídia seja pesquisável por API” selecionada em Detalhes da mídia. Se desejado, também é possível aplicar um intervalo de datas. Observação: Somente os primeiros 100 arquivos serão retornados. Para acessar mais 100 arquivos, será necessário executar a API novamente com o token de retomada fornecido na resposta. |
| GET | /services/metadata/oai-pmh?verb=ListIdentifiers |
Retorna todos os arquivos com Video ou Media PIDs que não contêm nenhum metadado. Se desejado, também é possível aplicar um intervalo de datas. Observação: Somente os primeiros 100 arquivos serão retornados. Para acessar mais 100 arquivos, será necessário executar a API novamente com o token de retomada fornecido na resposta. |
| GET | /services/metadata/oai-pmh?verb=Identify |
Retorna os detalhes desta API específica, como o Repository Name, o Contact Email e outras informações relevantes. |
| GET | /services/metadata/oai-pmh?verb=ListMetadataFormats |
Retorna a documentação da implementação do Dublin Core usada para formatar metadados nas APIs 5.2.47 a 5.2.49. |
| GET | /services/media/video/{video_id}/captions |
Baixa o arquivo de legendas do vídeo. |
5.2.1 - GET /services/createuploadlink
Retorna um objeto JSON que contém o link de upload e o file_key. Para fazer upload do vídeo no S3, faça uma solicitação HTTP PUT usando o link de upload retornado como destino e anexe o arquivo de vídeo.
URL de exemplo: https://api-testing.yuja.com/services/media/createuploadlink
Parâmetros:
Nenhum parâmetro é necessário para esta chamada.
Exemplo de resposta:
[
{
"url": "<upload_link>",
"key": "<key>"
}
]
5.2.2 - POST /services/upload/video/
Faz upload de um vídeo na biblioteca de mídia de um usuário com o login_id correspondente do parâmetro de corpo.
URL de exemplo: https://api-testing.yuja.com/services/media/upload/video/
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| login_id | Parâmetro de corpo | string | Obrigatório. |
| title | Parâmetro de corpo | string | Obrigatório. |
| file_key | Parâmetro de corpo | string | Obrigatório; o valor deve corresponder ao campo “key” do campo de resposta da chamada GET /createuploadlink. |
| description | Parâmetro de corpo | string | Opcional. |
5.2.3 - POST /services/publish/video/
Publica um vídeo pertencente ao usuário com login_id em um grupo com o group_id correspondente do parâmetro de corpo.
URL de exemplo: https://api-testing.yuja.com/services/media/publish/video
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| login_id | Parâmetro de corpo | string | Obrigatório. |
| class_id | Parâmetro de corpo | string | Obrigatório. |
| video_id | Parâmetro de corpo | string | Obrigatório. |
5.2.4 - GET /services/video/group/{group_id}
Retorna um objeto JSON com os detalhes dos vídeos da turma.
URL de exemplo: https://api-testing.yuja.com/services/media/video/group/121
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | Parâmetro de caminho | string | O valor deve corresponder ao campo group_id da chamada GET /groups. |
Exemplo de resposta:
{
"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}
Retorna um objeto JSON com o link direto e o código de incorporação de um vídeo.
URL de exemplo: https://api-testing.yuja.com/services/media/video/directlink/67890
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| video_id | Parâmetro de caminho | string | O valor deve corresponder ao campo video_id da chamada GET /video/group/{group_id}. |
Exemplo de resposta:
{
"directlink": "<Direct link to the video>",
"embedcode": "<The embedded code for the video>"
}
5.2.6 - POST /services/replace/video/
Substitui um vídeo pertencente ao usuário com login_id por outro vídeo.
URL de exemplo: https://api-testing.yuja.com/services/media/replace/video
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| login_id | Parâmetro de corpo | string | Obrigatório. |
| old_video_id | Parâmetro de corpo | string | Obrigatório. |
| new_video_id | Parâmetro de corpo | string | Obrigatório. |
5.2.7 - GET /services/retrievebranding
Retorna um objeto JSON com os detalhes de personalização de marca do player de mídia da organização.
URL de exemplo: https://api-testing.yuja.com/services/media/retrievebranding
Parâmetros:
Nenhum parâmetro é necessário para esta chamada.
Exemplo de resposta:
{
"button_color": "#ffffff",
"setting_menu_color": "#011100",
"sidebar_color": "#ABCDEF",
"setting_text_color": "#ffffff"
}
5.2.8 - PUT /services/updatebranding/
Atualiza os detalhes de personalização de marca do player de mídia da organização.
URL de exemplo: https://api-testing.yuja.com/services/media/updatebranding
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| button_color | Parâmetro de corpo | string | Opcional |
| setting_menu_color | Parâmetro de corpo | string | Opcional |
| sidebar_color | Parâmetro de corpo | string | Opcional |
| setting_text_color | Parâmetro de corpo | string | Opcional |
5.2.9 - GET /services/retrieveuserassets/{login_id}
Retorna um objeto JSON com os detalhes dos vídeos da turma.
URL de exemplo: https://api-testing.yuja.com/services/media/retrieveuserassets/marythompson
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| login_id | Parâmetro de corpo | string | Obrigatório. |
Exemplo de resposta:
{
{
"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
Gera links de upload para enviar as gravações da sessão.
URL de exemplo: https://api-testing.yuja.com/services/media/upload/session/619/createlinks
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| session_id | Parâmetro de caminho | integer | Obrigatório | O ID da sessão à qual a gravação será associada. Isso controla o título, a descrição, o local de salvamento da gravação no Lumina e o proprietário da gravação. |
| video_sources | Parâmetro de corpo | JSON Array | Obrigatório | Consulte a tabela de campos de video_sources. |
| pause_timestamps | Parâmetro de corpo | JSON Array | Obrigatório | Consulte a tabela de campos de pause_timestamps. |
Campos de video_sources:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| stream_id | Parâmetro de corpo | string | Obrigatório | Um identificador do fluxo. |
| stream_type | Parâmetro de corpo | string enum | Opcional | Valores possíveis: videoCapture, audioCapture, screenCapture. |
Campos de pause_timestamps:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| pause_timestamp | Parâmetro de corpo | long | Obrigatório | Um timestamp correspondente ao momento em que a sessão foi pausada, em milissegundos. |
| resume_timestamp | Parâmetro de corpo | long | Obrigatório | Um timestamp correspondente ao momento em que a sessão foi retomada, em milissegundos. |
Exemplo de solicitação:
{
"video_sources": [{
"stream_type": "videoCapture",
"stream_id": "Gv9U5qvNpR"
},{
"stream_type": "screenCapture",
"stream_id": "vKYrIkpqp2",
}],
"pause_timestamps": [{
"pause_timestamp": 5000,
"resume_timestamp": 10000
}]
}
Exemplo de resposta:
{
upload_urls: [
{
stream_id: string,
url: string
}, {...}]
}
5.2.11 - POST /services/media/upload/session/{session_id}
Sinaliza que o upload da gravação para os URLs do S3 foi concluído e que o processamento do vídeo deve começar.
URL de exemplo: https://api-testing.yuja.com/services/media/upload/session/1234
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| session_id | Parâmetro de caminho | integer | Obrigatório | O ID da sessão à qual a gravação será associada. |
Exemplo de resposta:
{
“success”: true
}
5.2.12 - GET /services/media/metadata/{video_id}
Recupera todas as entradas de metadados referentes ao video_id informado.
URL de exemplo: https://api-testing.yuja.com/services/media/metadata/187195
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| video_id | Parâmetro de caminho | integer | Obrigatório | Descrição |
Exemplo de resposta:
[
{
"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}
Insere todas as entradas de metadados referentes ao video_id informado.
URL de exemplo: https://api-testing.yuja.com/services/media/metadata/187195
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| video_id | Parâmetro de caminho | integer | Obrigatório | O ID do vídeo ao qual os metadados se referem |
| newMetadata | Parâmetro de corpo | JOSN Array | Obrigatório | Consulte a tabela de campos de newMetadata |
Campos de newMetadata:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| Name | Parâmetro de corpo | String | Obrigatório | Nome da tag de metadados |
| Type | Parâmetro de corpo | string | Obrigatório | Valores possíveis: String, Date |
| Value | Parâmetro de corpo | string | Obrigatório | Valor associado ao nome dos metadados. Formato de data: dd/mm/yyyy |
Exemplo de parâmetros de corpo:
{
newMetadata: [
{
"Name": "PhyExam",
"Type": "String",
"Value": "Easy"
},
{
"Name": "ChemExam",
"Type": "Date",
"Value": "05/05/2021"
}
]
}
Exemplo de resposta:
"Successfully Inserted 1 record/s in to the database !!!"
5.2.14 - DELETE /services/media/metadata/{video_id}
Exclui todas as entradas de metadados referentes ao video_id informado e à lista informada de nomes de metadados.
URL de exemplo: https://api-testing.yuja.com/services/media/metadata/187195
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| video_id | Parâmetro de caminho | integer | Obrigatório | O ID do vídeo ao qual os metadados se referem. |
| Parâmetro de corpo | List | Obrigatório | Lista de nomes das tags de metadados. |
Exemplo de parâmetros de corpo:
[
"PhyExam",
"ChemExam"
]
Exemplo de resposta:
"Successfully Deleted 2 record/s form the database !!!"
5.2.15 - GET /services/media/searchVideo
Recupera todos os vídeos de acordo com os critérios de pesquisa informados no parâmetro de corpo.
URL de exemplo: https://api-testing.com/services/media/searchVideo
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| searchingString | Parâmetro de corpo | String | Obrigatório | String que você deseja pesquisar para encontrar o vídeo |
| searchAs | Parâmetro de corpo | String | Opcional | ID do usuário sob o qual todos os vídeos serão pesquisados. O valor padrão será o gerente de TI dessa instituição |
| searchInMediaContent | Parâmetro de corpo | String | Opcional | Valores possíveis: “true”, “false”. Isso pesquisará a string informada em legendas, tags etc... |
| ownerId | Parâmetro de corpo | String | Opcional | ID do usuário que é o proprietário do vídeo. |
| createdBefore | Parâmetro de corpo | String | Opcional | Data (yyyy-mm-dd) anterior à qual o vídeo foi criado |
| createdAfter | Parâmetro de corpo | String | Opcional | Data (yyyy-mm-dd) posterior à qual o vídeo foi criado |
| tag | Parâmetro de corpo | String | Opcional | Tag (se houver) anexada a esse vídeo |
| metadata | Parâmetro de corpo | String | Opcional | Nome dos metadados anexados a esse vídeo |
Exemplo de parâmetros de corpo:
{
"searchString": "Polish",
"searchAs": "John_ITManager",
"searchInMediaContent": "false",
"ownerId": "",
"createdBefore": "",
"createdAfter": "",
"tag":"",
"metadata": ""
}
Exemplo de resposta:
[
{
"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 os vídeos de acordo com os critérios de pesquisa informados nos parâmetros de consulta.
URL de exemplo: https://api-testing.com/services/media/searchVideoWithQueryString?searchString=Polish&searchAs=John_ITManager
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| searchString | Parâmetro de caminho | String | Obrigatório | String que você deseja pesquisar para encontrar o vídeo |
| searchAs | Parâmetro de caminho | String | Opcional | ID do usuário sob o qual todos os vídeos serão pesquisados. O valor padrão será o gerente de TI da instituição |
Exemplo de resposta:
[
{
"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 - Handlers expostos
Vamos escutar o evento postMessage, que transmitirá um parâmetro JSON.
Parâmetros do evento:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| name | Parâmetro JSON | String | Opcional |
Valores possíveis:
|
| value | Parâmetro JSON | Number | Obrigatório |
Obrigatório no caso de AdjustVolume e SeekTo
|
Exemplo de parâmetro JSON:
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 as pastas às quais um usuário tem acesso no YuJa, de acordo com o user_id informado.
URL de exemplo: https://api-testing.com/services/media/folders/john_manager
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| user_id | Parâmetro de caminho | String | Obrigatório | ID do usuário cujas pastas serão buscadas. |
Exemplo de resposta:
[
{
"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 os vídeos aos quais um usuário tem acesso no YuJa, de acordo com o user_id informado.
URL de exemplo: https://api-testing.com/services/media/videos/user/john_manager
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| user_id | Parâmetro de caminho | String | Obrigatório | ID do usuário cujas pastas serão buscadas. |
Exemplo de resposta:
[
{
"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 os vídeos de uma pasta específica à qual um usuário tem acesso no YuJa.
URL de exemplo: https://api-testing.com/services/media/videos/john_manager/9385800
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| user_id | Parâmetro de caminho | String | Obrigatório | ID do usuário cujos vídeos serão buscados. |
| folder_id | Parâmetro de caminho | String | Obrigatório | ID da pasta da qual todos os vídeos serão buscados. |
Exemplo de resposta:
{
"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 os vídeos de acordo com os critérios de pesquisa informados nos parâmetros de consulta.
URL de exemplo: https://api-testing.com/services/media/videos/video_id
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| video_id | Parâmetro de caminho | Integer | Obrigatório | ID do vídeo que buscará esse vídeo específico. |
Exemplo de resposta:
[
{
"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
Retorna os fluxos HLS junto com outras informações importantes sobre o vídeo.
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
| videoPId | Parâmetro de caminho | Integer | Um ID de vídeo válido |
Exemplo de resposta:
{
"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
Retorna as URLs das miniaturas, junto com outras informações importantes sobre o vídeo.
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
| videoPId | Parâmetro de caminho | Inteiro | Um ID de vídeo válido. |
Exemplo de resposta:
{
"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 com uma chave exclusiva e uma URL que será usada para enviar o vídeo.
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| Streams | Parâmetro de consulta | Inteiro | Uma contagem de streams entre 1 e 3 que indica o número de URLs que serão retornadas. |
Exemplo de resposta:
[
{
"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
Ingere vídeos com vários streams na coleção padrão do usuário.
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| Login_id | Parâmetro de corpo | String | ID de login do usuário. |
| Title | Parâmetro de corpo | String | Título do vídeo. |
| Description | Parâmetro de corpo | String | Descrição do vídeo. |
| File_keys | Parâmetro de corpo | Array de strings | Chaves exclusivas retornadas pela API GET - /media/createuploadlink/multiple |
Exemplo de requisição:
{
"login_id": "john_doe",
"title": "Multi Stream Ingestion",
"description": "",
"file_keys":[
"379e3235-0538-480d-8bf2-14f74b328",
"7b31d4b8-c8c2-468b-87e2-2f4505258f"
]
}
Exemplo de resposta:
{
"success": true,
"message": "Uplaoded Successfully, video will be available soon!"
}
5.2.26 - POST /services/media/document_link/{video_id}/{media_file_id}
Anexa um arquivo de mídia a uma fonte de vídeo.
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| video_id | Parâmetro de caminho | Inteiro | Um ID de vídeo válido. |
| media_file_id | Parâmetro de caminho | Inteiro | Um ID de arquivo de mídia válido. |
Exemplo de resposta:
{
"success": true
}
5.2.27 - DELETE /services/media/document_link/{video_id}/{media_file_id}
Remove um arquivo de mídia de uma fonte de vídeo.
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| video_id | Parâmetro de caminho | Inteiro | Um ID de vídeo válido. |
| media_file_id | Parâmetro de caminho | Inteiro | Um ID de arquivo de mídia válido. |
Exemplo de resposta:
{
"success": true
}
5.2.28 - POST /services/media/videos/{video_id}/indexes
Insere carimbos de tempo com marcadores em uma fonte de vídeo.
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| video_id | Parâmetro de caminho | Inteiro | Um ID de vídeo válido. |
| timestamp | Parâmetro de corpo | Inteiro | Um carimbo de tempo define onde o marcador aparecerá no vídeo. |
| label | Parâmetro de corpo | String | Um título para o carimbo de tempo criado. |
| bold | Parâmetro de corpo | Booleano | Especifica se o rótulo está em negrito. |
| indent | Parâmetro de corpo | Inteiro | Especifica o recuo do rótulo. |
Exemplo de dados JSON:
{
"timestamp": "0:06:10",
"label": "Bookmark 1",
"bold": false,
"indent": 0
}
Exemplo de resposta:
{
"success": true
}
5.2.29 - DELETE /services/media/videos/{video_id}/indexes/{index}
Exclui carimbos de tempo com marcadores de uma fonte de vídeo.
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| video_id | Parâmetro de caminho | Inteiro | Um ID de vídeo válido. |
| index | Parâmetro de caminho | Inteiro | Insira um índice válido para excluir do arquivo de legendas. Os índices começam em 0. |
Exemplo de resposta:
{
"success": true
}
5.2.30 - GET /services/media/folder/{folder_Id}
Obtém informações sobre pastas dentro da plataforma de vídeo Lumina.
Parâmetro:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| folder_id | Parâmetro de caminho | Inteiro | Um ID de pasta válido. |
Exemplo de resposta:
{
"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}
Insere um corpo bruto de texto no arquivo de legendas.
Parâmetro:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| video_id | Parâmetro de caminho | Inteiro | Um ID de vídeo válido. |
| language | Parâmetro de caminho | String | Insira o idioma do arquivo de legendas (por exemplo, inglês) |
| line | Parâmetro de caminho | Inteiro | Insira a posição da linha no arquivo de legendas. A posição da linha começa em 0. |
| position | Parâmetro de caminho | Inteiro | Insira a posição da letra dentro da linha selecionada no arquivo de legendas. A posição da letra começa em 0. |
Exemplo de resposta:
{
"success": true
}
5.2.32 - DELETE /services/media/videos/{video_id}/captions/{language}/text/{line}/{start}/{end}
Remove texto de um arquivo de legendas.
Parâmetro:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| video_id | Parâmetro de caminho | Inteiro | Um ID de vídeo válido. |
| language | Parâmetro de caminho | String | Insira o idioma do arquivo de legendas (por exemplo, inglês) |
| line | Parâmetro de caminho | Inteiro | Insira a posição da linha no arquivo de legendas. A posição da linha começa em 0. |
| start | Parâmetro de caminho | Inteiro | Insira a posição do caractere inicial dentro da linha selecionada no arquivo de legendas. A posição do caractere começa em 0. |
| End | Parâmetro de caminho | Inteiro | Insira a posição do caractere final dentro da linha selecionada no arquivo de legendas. A posição do caractere começa em 0. |
Exemplo de resposta:
{
"success": true
}
5.2.33 - POST /services/media/videos/{video_id}/captions/{language}
Insere uma linha de legenda.
Parâmetro:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| video_id | Parâmetro de caminho | Inteiro | Um ID de vídeo válido. |
| language | Parâmetro de caminho | String | Insira o idioma do arquivo de legendas (por exemplo, inglês). |
| start_time | Parâmetro de corpo | Inteiro | Insira o horário de início da linha de legenda. |
| stop_time | Parâmetro de corpo | Inteiro | Insira o horário de término da linha de legenda. |
| text | Parâmetro de corpo | String | Insira o texto da linha de legenda. |
Exemplo de dados JSON:
{
"start_time": "00:00:10",
"stop_time": "00:00:15",
"text": "text"
}
Exemplo de resposta:
{
"success": true
}
5.2.34 - DELETE /services/media/videos/{video_id}/captions/{language}/{line}
Remove uma linha de legenda.
Parâmetro:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| video_id | Parâmetro de caminho | Inteiro | Um ID de vídeo válido. |
| language | Parâmetro de caminho | String | Insira o idioma do arquivo de legendas (por exemplo, inglês). |
| line | Parâmetro de caminho | Inteiro | Insira a posição da linha no arquivo de legendas. A posição da linha começa em 0. |
Exemplo de resposta:
{
"success": true
}
5.2.35 - POST /services/media/videos/{video_id}/captions/{language}/generatetranscript
Gera uma transcrição usando as legendas do vídeo.
Parâmetro:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| video_id | Parâmetro de caminho | Inteiro | Um ID de vídeo válido. |
| language | Parâmetro de caminho | String | Insira o idioma do arquivo de legendas (por exemplo, inglês). |
Exemplo de resposta:
{
"success": true
}
5.2.36 - POST /services/media/publishToInstitutionChannel/video
Publica um vídeo no EnterpriseTube ou no CampusTube.
URL de exemplo: https://api-testing.yuja.com/services/media/publishToInstitutionChannel/video
Parâmetros:
Nenhum parâmetro é necessário para esta chamada.
Exemplo de dados JSON:
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"login_id":"aswin_syras",
"folder_id":"9913954",
"videonode_id":"9964550"
}
Exemplo de resposta:
Published video: success.
5.2.37 - POST /services/media/unpublishMedia
Cancela a publicação de um vídeo no EnterpriseTube ou no CampusTube.
URL de exemplo: https://api-testing.yuja.com/services/media/unpublishMedia
Parâmetros:
Nenhum parâmetro é necessário para esta chamada.
Exemplo de dados JSON:
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"login_id":"michael_lee",
"videonode_id":"9964550"
}
Exemplo de resposta:
Unpublished video: success.
5.2.38 - GET /services/media/allFolders/ETubeAndILib?{pageNumber}&{pageSize}
Recupera pastas do EnterpriseTube e do CampusTube.
URL de exemplo: https://api-testing.yuja.com/services/media/allFolders/ETubeAndILib?pageNumber=4&pageSize=20
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| pageNumber | Parâmetro de caminho | Inteiro | O número da página das pastas paginadas a serem recuperadas do backend. |
| pageSize | Parâmetro de caminho | Inteiro | O número de pastas a serem obtidas do parâmetro pageNumber especificado. |
Exemplo de resposta:
[{"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 os ativos dentro de uma pasta.
URL de exemplo: https://api-testing.yuja.com/services/media/retrievefolderassets/9995943
Parâmetro:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| folderID | Parâmetro de caminho | Inteiro | Um ID de pasta válido. |
Exemplo de resposta:
[{"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
Obtém informações da pasta, incluindo quais vídeos estão dentro dela e o acesso aos links dos vídeos.
URL de exemplo: https://api-testing.yuja.com/services/media/RSS
Parâmetros:
Nenhum parâmetro é necessário para esta chamada.
Exemplo de dados JSON:
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"folderID":"9913952",
"directStreamEnabled" : "true" OR "false"
}
Exemplo de resposta:
https://api-testing.yuja.com/P/RSSFeeds/2/992532
5.2.41 - GET /services/media/video/{video_id}
Recupera os detalhes de um vídeo usando seu video_id, ou de um vídeo que foi editado e substituído, informando seu video_id original.
URL de exemplo: https://api-testing.yuja.com/services/media/video/313415
Parâmetro:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| video_id | Parâmetro de caminho | Inteiro | Um ID de vídeo válido do vídeo original antes de ele ser editado e substituído. |
Exemplo de resposta:
{"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
Cria uma subpasta dentro da pasta Library do EnterpriseTube.
URL de exemplo: https://api-testing.yuja.com/services/media/createFolderInEnterpriseTubeLibrary
Parâmetros:
Nenhum parâmetro é obrigatório.
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"loginId":"brianstev",
"title":"Campus Life",
"nodePID":"10177148"
}
Exemplo de resposta:
Folder created successfully
5.2.43 - POST /services/media/createFolderInSharedFolder
Cria uma pasta ou subpasta dentro de SharedFolder/Internal Library.
URL de exemplo: https://api-testing.yuja.com/services/media/createFolderInSharedFolder
Parâmetros:
Nenhum parâmetro é obrigatório.
Este endpoint espera dados JSON neste formato no parâmetro de corpo:
{
"loginId":"brianstev",
"title":"Intro to Anthropology",
"nodePID":"10172048"
}
Exemplo de resposta:
Folder created successfully
5.2.44 - POST /services/media/captionFileUploadLink
Fornece uma URL que pode ser usada para enviar um arquivo de legendas ou de transcrição ao servidor. A API que usará a URL está na seção 5.2.45. Também será fornecida uma chave, usada no parâmetro de corpo JSON da API que está na seção 5.2.46.
URL de exemplo: https://api-testing.yuja.com/services/media/captionFIleUploadLink
Parâmetros:
Nenhum parâmetro é obrigatório.
Este endpoint espera dados JSON neste formato no parâmetro de corpo para legendas:
{
"videoPID": "672982",
"extension": "srt/vtt",
"type": "caption",
"language": "language of the caption file"
}
Este endpoint espera dados JSON neste formato no parâmetro de corpo para transcrições e PDF:
{
"videoPID": "491182",
"type": "txt/pdf"
}
Exemplo de resposta:
{
"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>
Envia um arquivo de legendas ao servidor, que pode então ser adicionado a um vídeo usando a API da seção 5.2.46
URL de exemplo: 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:
Nenhum parâmetro é obrigatório.
Este endpoint espera dados binários, enviados por meio do upload do seu arquivo de legendas ou de transcrição.
Exemplo de resposta:
200 OK
5.2.46 - POST /services/media/captionFileToVideo
Envie um arquivo de legendas ou de transcrição para um vídeo selecionado.
URL de exemplo: https://api-testing.yuja.com/services/media/captionFileToVideo
Parâmetros:
Nenhum parâmetro é obrigatório.
Este endpoint espera dados JSON neste formato no parâmetro body para legendas:
{
"login_id": "749371",
"videoPID": "74492",
"file_key": "294229_english.srt",
"type": "caption"
}
Exemplo de resposta:
File uploaded successfully
Este endpoint espera dados JSON neste formato no parâmetro body para transcrições:
{
"videoPID": "74492",
"type": "txt/pdf"
}
Exemplo de resposta:
File uploaded successfully
5.2.47 - GET /services/metadata/oai-pmh?verb=GetRecord&identifier={videoPID}&metadataPrefix=<lom_ims or oai_dc>
Retorna os metadados adicionados pelo usuário no Lumina. Observação: A API localizará apenas mídias que podem ser pesquisadas por APIs. Para saber como habilitar sua mídia para a pesquisa por API, siga nosso guia Como permitir que a mídia seja pesquisável por APIs.
URL de exemplo: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=GetRecord&identifier=4827
Parâmetro:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| videoPID | Parâmetro de caminho | Integer | Um ID válido do vídeo. |
Exemplo de resposta:
<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>
Retorna todos os arquivos com metadados que tenham a opção “Permitir que esta mídia seja pesquisável por API” selecionada nos Detalhes da mídia. Se desejar, também é possível aplicar um intervalo de datas. Observação: Somente os primeiros 100 arquivos serão retornados. Para acessar mais 100 arquivos, a API precisará ser executada novamente com o token de retomada fornecido na resposta.
URL de exemplo: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=ListRecords
URL de exemplo com intervalo de datas: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=ListRecords&from=2023-01-01&until=2024-03-01
URL de exemplo com token de retomada: https://api-testing.yuja.com/services/metadata/oai-pmh?&verb=ListRecords&resumptionToken=eyJhbGciOiJub25lIn0.eyJsaW1pdCI6MTAwLCJtZXRob2RQcmVmaXgiOiIiLCJ0aW1lc3RhbXAiOjE3MDk1NzIyNzQTB9.
Parâmetros:
Nenhum parâmetro é necessário para esta chamada.
Exemplo de resposta:
<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
Retorna todos os arquivos com PIDs de vídeo ou de mídia que não contêm nenhum metadado, dentro de um intervalo de datas opcional que pode ser incluído. Somente os primeiros 100 arquivos serão retornados. Para acessar mais 100 arquivos, a API precisará ser executada novamente com o token de retomada fornecido na resposta. Observação: A API localizará apenas mídias que podem ser pesquisadas por APIs. Para saber como habilitar sua mídia para a pesquisa por API, siga nosso guia Como permitir que a mídia seja pesquisável por APIs.
URL de exemplo: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=ListIdentifiers
URL de exemplo com intervalo de datas: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=ListIdentifiers&from=2023-01-01&until=2024-03-01
URL de exemplo com token de retomada: https://api-testing.yuja.com/services/metadata/oai-pmh?&verb=ListIdentifiers&resumptionToken=eyJhbGciOiJub25lIn0.eyJsaW1pdCI6MTAwLCJtZXRob2RQcmVmaXgiOiIiLCJ0aW1lc3RhbXAiOjE3MDk1NzIyNzQTB9. (Observação: Não é possível aplicar um intervalo de datas ao usar o token de retomada.)
Parâmetros:
Nenhum parâmetro é necessário para esta chamada.
Exemplo de resposta:
<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
Retorna detalhes desta API específica, como o nome do repositório, o e-mail de contato e outras informações relevantes.
URL de exemplo: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=Identify
Parâmetros:
Nenhum parâmetro é necessário para esta chamada.
Exemplo de resposta:
<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
Retorna a documentação sobre a implementação do Dublin Core usada na formatação de metadados das APIs 5.2.47 a 5.2.49.
URL de exemplo: https://api-hudson.yuja.com/services/metadata/oai-pmh?verb=Identify
Parâmetros:
Nenhum parâmetro é necessário para esta chamada.
Exemplo de resposta:
<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
Baixa o arquivo de legendas do vídeo.
URL de exemplo: https://api-hudson.yuja.com/services/media/video/146852/captions
Parâmetros:
Nenhum parâmetro é necessário para esta chamada.
Exemplo de resposta:
"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 um vídeo de outra plataforma para a sua biblioteca de mídia do YuJa Lumina a partir de um link de download.
URL de exemplo: https://staging-demo.yuja.com/services/media/importLink
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
| login_id | Integer | ID do usuário |
| title | String | Título do vídeo |
| DownloadURL | String | Link para o arquivo de vídeo |
| autoEAD | Boolean | Indica se a audiodescrição deve ser adicionada automaticamente (true ou false) |
| description | String | Descrição opcional do vídeo |
Este endpoint espera dados JSON neste formato no 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
}
Exemplo de resposta:
{
"title": "Lecture 1",
"id": 1234567,
"videoDirectLink": "https://staging-demo.yuja.com/V/Video?v=1234567&a=987654321"
}
6 - Visão geral da API de análises
A mídia representa todos os ativos da instituição. Isso inclui arquivos de áudio, arquivos de vídeo e outros documentos.
6.1 - Modelo de objeto de análises
| Variável | Tipo | Descrição |
|---|---|---|
| group_id | string | Um ID de turma exclusivo gerado pelo sistema. |
6.2 - Principais endpoints
| Método | Caminho | Descrição |
|---|---|---|
| GET | /analytics/report/bandwidth/{group_id} | Recupera o relatório de largura de banda do grupo. |
| GET | /analytics/report/storage/{group_id} | Recupera o relatório de armazenamento do grupo. |
| GET | /analytics/report/videoview/{group_id} | Recupera o relatório de visualizações de vídeo do grupo. |
| GET | /analytics/report/visitors | Recupera o relatório de visualização de visitantes da instituição. |
6.2.1 - GET /analytics/report/bandwidth/{group_id}
Retorna um arquivo com os detalhes de uso de largura de banda de um grupo.
URL de exemplo: https://api-testing.yuja.com/services/analytics/report/bandwidth/1365
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | Parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
6.2.2 - GET /analytics/report/storage/{group_id}
Retorna um arquivo com os detalhes de uso de armazenamento de um grupo.
URL de exemplo: https://api-testing.yuja.com/services/analytics/report/storage/1365
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | Parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
6.2.3 - GET /analytics/report/videoview/{group_id}
Retorna um arquivo com os detalhes de visualização de vídeo de um grupo.
URL de exemplo: https://api-testing.yuja.com/services/analytics/report/videoview/1365
Parâmetros:
| Nome | Tipo de parâmetro | Tipo | Descrição |
|---|---|---|---|
| group_id | Parâmetro de caminho | string | O valor deve corresponder ao campo group_id na chamada GET /groups. |
6.2.4 - GET /analytics/report/visitors
Retorna um arquivo com os detalhes dos visitantes da instituição.
URL de exemplo: https://api-testing.yuja.com/services/analytics/report/visitors
Parâmetros:
Nenhum parâmetro é obrigatório para esta chamada.
7 - Visão geral da API de log de auditoria
AuditLog representa todos os logs disponíveis com base no intervalo de datas e no tipo.
7.1 - Modelo de objeto do log de auditoria
| Variável | Tipo | Descrição |
|---|---|---|
| creationTimestamp | Timestamp | Carimbo de data/hora em que o evento ocorreu. Observação: o carimbo de data/hora seguirá o fuso horário da instituição. |
| eventName | string | Nome do evento |
| details | string | Detalhes específicos desse evento |
7.2 - Principais endpoints
| Método | Caminho | Descrição |
|---|---|---|
| GET | /auditLog/entries | Recupera os logs de todas as entradas especificadas no tipo de evento dentro do intervalo de datas. |
7.2.1 - GET /auditLog/entries
Retorna uma lista JSON de objetos, em que cada objeto é um log.
URL de exemplo: https://staging-demo.yuja.com/services/auditLog/entries?startTime=01/12/2024&endTime=02/01/2025&eventType=New Log In
Parâmetros
| Nome | Tipo de parâmetro | Tipo | Opcional | Descrição |
|---|---|---|---|---|
| startTime | Parâmetro de consulta | Date | Opcional | O valor deve estar no formato dd/mm/yyyy |
| endTime | Parâmetro de consulta | Date | Opcional | O valor deve estar no formato dd/mm/yyyy |
| eventType | Parâmetro de consulta | String | Obrigatório | O valor deve corresponder exatamente a como aparece (maiúsculas e minúsculas e espaços) na coluna Atividade, em Painel de administração > Notificações > Notificações recentes do Lumina. |
| offset | Parâmetro de consulta | int | Opcional |
Ignora o número especificado de logs. O valor deve ser um número inteiro válido. Exemplo: Inserir o valor 25 retornará uma lista JSON a partir do 26º log. |
Exemplo de resposta:
[
{
"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"
}
]