Authentification
Chaque appel API nécessite un jeton d'authentification dans l'en-tête. Ces jetons sont générés par les gestionnaires TI/administrateurs et peuvent être révoqués. Les jetons d'authentification donnent accès à l'API pour un établissement précis. Le jeton compte 32 caractères et peut être récupéré à partir de Panneau d'admin -> API.
Veillez également à enregistrer le jeton API après l'avoir généré.
Utilisation du jeton : le jeton doit être transmis dans l'en-tête, avec la clé « authToken » et la valeur correspondant au jeton, dans chaque appel API.
URL de base de l'API
L'URL de base de l'API YuJa actuelle est {organization_subdomain}.yuja.com/services/. Organization_subdomain est attribué lorsque le compte Organisation est provisionné avec YuJa. Pour des raisons de sécurité, seul l'accès https est autorisé. Par exemple, si le domaine attribué à l'organisation est « tested », la page d'accueil est api-testing.yuja.com et le point de terminaison de l'API est api-testing.yuja.com/services.
Paramètres de requête
Il existe plusieurs façons de transmettre des paramètres de requête aux appels d'API.
- En tant que composant du chemin d'URL. On parle alors de paramètre de chemin.
- Dans le cadre de la chaîne de requête. On parle alors de paramètre de chaîne de requête.
- Dans le corps de la requête pour les requêtes autres que GET. On parle alors de paramètre de corps. Le contenu doit être encodé en JSON.
- Dans un en-tête HTTP personnalisé. On parle alors de paramètre d'en-tête.
Opérations CRUD
Les API suivent la convention REST afin de réaliser les fonctionnalités CREATE, READ, UPDATE et DELETE. Le tableau suivant décrit la convention courante utilisée.
| Opération | Méthode HTTP | Remarques |
|---|---|---|
| CREATE | POST | POST est la méthode standard pour créer un objet. L'API POST renvoie l'ID d'objet associé à l'objet créé afin qu'il puisse être utilisé dans les appels API suivants. |
| READ | GET | GET récupère des informations. Le résultat peut être une liste ou un objet unique, selon l'API appelée. |
| UPDATE | PUT | PUT exige l'ID de l'objet à mettre à jour. Tous les champs de mise à jour sont facultatifs, sauf indication contraire. Les champs définis seront mis à jour. |
| DELETE | DELETE | DELETE exige l'ID de l'objet à supprimer. L'ID et le type de l'objet doivent correspondre. |
Codes de réponse de l'API REST
| 200 | OK |
| 201 | Created |
| 204 | No Content |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
1 - Présentation de l'API utilisateur
Les utilisateurs représentent tous les utilisateurs inscrits dans l'établissement. Cela comprend les instructeurs, les étudiants et les gestionnaires TI. Les utilisateurs peuvent être inscrits à des cours, créer des captures, demander des réunions, inviter à des réunions et être invités à des réunions. Les utilisateurs peuvent également avoir une collection de vidéos.
1.1 - Modèle d'objet utilisateur
| Variable | Type | Description |
|---|---|---|
| user_id | string | Un user_id unique généré par le système. |
| email_address/email | string[255] | L'adresse courriel de l'utilisateur doit être unique parmi tous les utilisateurs. |
| first_name | string[30] | Prénom de l'utilisateur. |
| last_name | string[30] | Nom de famille de l'utilisateur. |
| login_id/userName | string[20] | ID de connexion de l'utilisateur. |
| login_password | string[20] | Mot de passe de connexion de l'utilisateur. |
| custom_id | string[20] | ID personnalisé de l'utilisateur. |
| timezone | string | Fuseau horaire de l'utilisateur. |
| user_type | string enum | Type d'utilisateur. Peut être l'une des valeurs suivantes : « Student », « Instructor », « IT Manager ». |
| phone_number | string[20] | Numéro de téléphone de l'utilisateur. |
| updateDescendants | Boolean | Accorde la permission aux sous-dossiers. |
| groupName | string | Le nom du groupe tel qu'il apparaît dans Lumina. |
| linkage | string | La valeur de lien de l'utilisateur. Elle peut être obtenue dans le Panneau d'admin de Lumina > Liste, en consultant la colonne Lien d'un utilisateur. Sélectionnez son type de lien dans la colonne et copiez la valeur Lien LTI, Lien LTI3 ou Lien SAML fournie. |
| status | string | Le statut de compte que vous souhaitez définir pour l'utilisateur. Il peut s'agir de « active » ou de « suspended ». |
Pour obtenir le user_id des utilisateurs, effectuez d'abord l'appel API GET /users (section 1.2.1). À partir de la réponse, vous pouvez recueillir tous les user_id des utilisateurs et les utiliser ultérieurement pour d'autres appels API.
1.2 - Principaux points de terminaison
| Méthode | Chemin | Description |
|---|---|---|
| GET | /users | Récupère tous les utilisateurs appartenant à l'organisation. |
| GET | /users/{user_id} | Récupère un utilisateur individuel selon son user_id. |
| POST | /users | Ajoute un utilisateur |
| PUT | /users/{user_id} | Met à jour un utilisateur individuel selon son user_id. |
| DELETE | /users/{user_id} | Supprime un utilisateur selon son user_id. |
| GET | /users/{user_id}/groups/members | Récupère tous les groupes auxquels l'utilisateur est inscrit. |
| GET | /users/{user_id}/groups/content_owners | Récupère tous les groupes dont l'utilisateur est propriétaire de contenu. |
| POST | /users/addUserWithExternalIdentifier | Crée de nouveaux utilisateurs en tenant compte des identifiants externes afin de lier les utilisateurs à des comptes existants et nouveaux, selon les connexions LMS et SSO. |
| POST | /services/media/permission |
Ajoute ou modifie les permissions des dossiers. |
| DELETE | /services/media/permission |
Supprime les permissions d'un dossier. |
| POST | /services/media/mediaByLinkageValue |
Obtient des renseignements sur les vidéos contenues dans le compte de l'utilisateur. |
| PUT | /services/users/updateStatus |
Modifie le statut de compte d'un utilisateur à l'aide de son ID d'utilisateur ou de son courriel. |
1.2.1 - GET /services/users
Renvoie une liste d'objets JSON, où chaque objet est un utilisateur. Aucun paramètre n'est nécessaire pour cet appel.
Exemple d'URL : https://api-testing.yuja.com/services/users
Exemple de réponse :
[
{
"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}
Renvoie un objet JSON contenant les informations sur l'étudiant.
Exemple d'URL : https://api-testing.yuja.com/services/users/3432
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| user_id | paramètre de chemin | string | La valeur doit correspondre au champ user_id de l'appel GET /users. |
Exemple de réponse :
{
"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
Crée un nouvel utilisateur dans l'établissement. Les données JSON peuvent être composées sans les paramètres facultatifs. Voir la section 1.1 pour le détail des paramètres.
Exemple d'URL : https://api-testing.yuja.com/services/users
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| email_address | paramètre de corps | string[255] | Obligatoire |
| first_name | paramètre de corps | string[30] | Obligatoire |
| last_name | paramètre de corps | string[30] | Obligatoire |
| login_id | paramètre de corps | string[20] | Obligatoire |
| login_password | paramètre de corps | string[20] | Obligatoire |
| custom_id | paramètre de corps | string[20] | Facultatif |
| user_type | paramètre de corps | string enum | Obligatoire |
| phone_number | paramètre de corps | string[20] | Facultatif |
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"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
}
Exemple de données JSON :
{
"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}
Met à jour un utilisateur individuel selon {user_id}. Voir la section 1.1 pour le détail des paramètres.
Exemple d'URL : https://api-testing.yuja.com/services/users/1000
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| user_id | paramètre de chemin | string | La valeur doit correspondre au champ user_id de l'appel GET /users. |
| email_address | paramètre de corps | string[255] | À définir pour mettre à jour l'adresse courriel. |
| first_name | paramètre de corps | string[30] | À définir pour mettre à jour le prénom de l'utilisateur. |
| last_name | paramètre de corps | string[30] | À définir pour mettre à jour le nom de famille de l'utilisateur. |
| login_password | paramètre de corps | string[20] | À définir pour mettre à jour le mot de passe de connexion de l'utilisateur. |
| custom_id | paramètre de corps | string[20] | À définir pour mettre à jour l'ID personnalisé de l'utilisateur. |
| timezone | paramètre de corps | string | À définir pour mettre à jour le fuseau horaire de l'utilisateur. |
| user_type | paramètre de corps | string enum | À définir pour mettre à jour le type de l'utilisateur. |
| phone_number | paramètre de corps | string[20] | À définir pour mettre à jour le numéro de téléphone de l'utilisateur. |
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"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
}
Tous les champs sont facultatifs. Seuls les champs fournis sont mis à jour.
1.2.5 - DELETE /services/users/{user_id}
Supprime l'utilisateur d'ID {user_id} de l'établissement.
Exemple d'URL : https://api-testing.yuja.com/services/users/1000
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| user_id | paramètre de chemin | string | La valeur doit correspondre au champ user_id de l'appel GET /users. |
1.2.6 - GET /services/users/{user_id}/groups/members
Récupère tous les groupes auxquels un utilisateur est inscrit.
Exemple d'URL : https://api-testing.yuja.com/services/users/3432/groups/members
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| user_id | paramètre de chemin | string | La valeur doit correspondre au champ user_id de l'appel GET /users. |
Exemple de réponse :
[
{
"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
Récupère tous les groupes dont un utilisateur est propriétaire de contenu. Le user_id requis peut être obtenu à l'aide de l'appel d'API GET /users.
Exemple d'URL : https://api-testing.yuja.com/services/users/2469/groups/content_owners
Paramètres :
Aucun paramètre n'est requis.
Exemple de réponse :
[
{
"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
Crée de nouveaux utilisateurs selon les mêmes paramètres que les points de terminaison POST des services et des utilisateurs (voir la section 1.2.3), avec deux paramètres supplémentaires : primary_identifier et secondary_identifier. Cela associe l'utilisateur à des utilisateurs existants ou futurs créés par l'intégration LMS ou SSO. Bien que primary_identifier et secondary_identifier soient facultatifs, l'un des deux paramètres doit être présent. Veuillez communiquer avec l'assistance YuJa si vous avez besoin d'aide supplémentaire.
Exemple d'URL : https://api-testing.yuja.com/services/users/primary_identifier
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| email_address | paramètre de corps | string[255] | Obligatoire |
| first_name | paramètre de corps | string[30] | Obligatoire |
| last_name | paramètre de corps | string[30] | Obligatoire |
| login_id | paramètre de corps | string[20] | Obligatoire |
| login_password | paramètre de corps | string[20] | Obligatoire |
| custom_id | paramètre de corps | string[20] | Facultatif |
| user_type | paramètre de corps | string enum | Obligatoire |
| phone_number | paramètre de corps | string[20] | Facultatif |
| primary_identifier | paramètre de corps | string[255] | Facultatif |
| secondary_identifier | paramètre de corps | string[255] | Facultatif |
1.2.9 - POST /services/media/permission
Ajoute ou modifie les permissions des dossiers dans CampusTube ou EnterpriseTube.
Exemple d'URL : https://api-testing.yuja.com/services/media/permission
Paramètres :
Aucun paramètre n'est nécessaire pour cet appel.
Exemple de données JSON :
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
Utilisez les données JSON ci-dessous pour une attribution selon le rôle :
{
"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"
}
Utilisez les données JSON ci-dessous pour une attribution selon l'utilisateur :
{
"folderID": "9931153",
"type": "User",
"updateDescendants": "true" OR "false",
"userName": "username",
"access": "Full Access" OR "Edit Access" OR "Edit Caption Access" OR "Read Access"
}
Utilisez les données JSON ci-dessous pour une attribution selon le groupe :
{
"folderID": "9931153",
"type": "Group",
"updateDescendants": "true" OR "false",
"groupName": "group name",
"access": "Full Access" OR "Edit Access" OR "Edit Caption Access" OR "Read Access"
}
Exemple de réponse :
Successfuly Modified permission
1.2.10 - DELETE /services/media/permission
Supprime les permissions d'un dossier.
Exemple d'URL : https://api-testing.yuja.com/services/media/permission
Paramètres :
Aucun paramètre n'est nécessaire pour cet appel.
Exemple de données JSON :
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
Utilisez les données JSON ci-dessous pour une attribution selon un rôle :
{
"folderID":"9931153",
"type": "Role",
"name": "Student" OR "Instructor"
}
Utilisez les données JSON ci-dessous pour une attribution selon l'utilisateur :
{
"folderID": "9931153",
"type": "User",
"userName": "username"
}
Utilisez les données JSON ci-dessous pour une attribution selon le groupe :
{
"folderID": "9931153",
"type": "Group",
"groupName": "group name"
}
Exemple de réponse :
Success
1.2.11 - POST /services/media/mediaByLinkageValue
Obtient des renseignements sur les vidéos contenues dans le compte de l'utilisateur à l'aide d'une valeur de « lien ». Cette valeur peut être obtenue dans le Panneau d'admin de Lumina > Liste, en consultant la colonne Lien d'un utilisateur. Sélectionnez son type de lien dans la colonne et copiez la valeur Lien LTI, Lien LTI3 ou Lien SAML fournie.
Exemple d'URL : https://api-testing.yuja.com/services/media/mediaByLinkageValue
Paramètres :
Aucun paramètre n'est nécessaire pour cet appel.
Exemple de données JSON :
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"linkage": "stu.bct"
}
Exemple de réponse :
[{"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
Ajoute un utilisateur à un dossier partagé avec les permissions précisées.
Exemple d'URL : https://hudson.yuja.com/services/media/modifySharePermissions
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| node_id | Paramètre de corps | string | L'ID de nœud du dossier que vous souhaitez partager. |
| user_id | paramètre de corps | string | L'ID du propriétaire du dossier. |
| share_with_user_id | paramètre de corps | string | L'ID de l'utilisateur avec qui vous souhaitez partager le dossier. |
| access_level | paramètre de corps | string | Le niveau d'accès de l'utilisateur avec qui le dossier est partagé : « Full Access », « Edit Access », « Edit Caption Access » ou « Read Only ». |
Exemple de données JSON :
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"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"
}
]
}
Exemple de réponse :
Share list successfully updated.
1.2.13 - DELETE /services/media/modifySharePermissions
Retire un utilisateur d'un dossier partagé.
Exemple d'URL : https://hudson.yuja.com/services/media/modifySharePermissions
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| node_id | Paramètre de corps | string | L'ID de nœud du dossier dont vous souhaitez retirer un utilisateur. |
| user_id | paramètre de corps | string | L'ID du propriétaire du dossier. |
| delete_list | paramètre de corps | string | Une liste des utilisateurs que vous souhaitez supprimer, séparés par des virgules. |
Exemple de données JSON :
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"node_id":"10352458",
"user_id":"tryan",
"delete_list":[
"alia", "smichael", "rkhan"
]
}
Exemple de réponse :
Share list successfully updated.
1.2.14 - PUT /services/users/updateStatus
Modifie le statut de compte d'un utilisateur à l'aide de son ID d'utilisateur, de son ID de connexion ou de son courriel. Pour mettre à jour plusieurs utilisateurs à la fois, utilisez une liste d'ID d'utilisateur, d'ID de connexion ou de courriels. Au total, l'utilisateur doit fournir deux paramètres : email OU login_id OU user_id, et status.
Exemple d'URL : https://hudsonlake.yuja.com/services/users/updateStatus
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| paramètre de corps | string | L'adresse courriel de l'utilisateur. | |
| user_id | paramètre de corps | string | L'ID de l'utilisateur. Exemple : « 123456 » |
| login_id | paramètre de corps | string | L'ID de connexion de l'utilisateur. Exemple : « laurie_thompson ». |
| status | paramètre de corps | string | Le statut de compte que vous souhaitez définir pour l'utilisateur : « active » ou « suspended ». |
Modification du statut de compte à l'aide de user_id
Exemple de données JSON :
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"user_id":"brendansheedy,caseymelvin,cecilleminkov,danielsteen",
"status":"active"
}
Exemple de réponse :
The status for the given user(s) has been successfully updated.
Modification du statut de compte à l'aide du courriel
Exemple de données JSON :
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"email":"brendan.sheedy@yuja.com,caseymelvin@yuja.com,cecilie.minkov@yuja.com,daniel.steen@yuja.com",
"status":"suspended"
}
Exemple de réponse :
The status for the given user(s) has been successfully updated.
2 - Présentation de l'API de groupe
Les groupes représentent tous les cours offerts dans l'organisation. Chaque cours possède une sécurité de cours propre, qui filtre l'accès des utilisateurs à ce cours. Le cours peut également publier des politiques qui n'autorisent que certains types d'utilisateurs à publier dans ces groupes.
Veuillez noter : Alors que nous travaillons à distinguer les cours des groupes, les API existantes des sections 2.2.1 à 2.2.13 continueront de fonctionner normalement pour le moment. Pour passer aux API les plus récentes pour les cours, nous vous recommandons d'utiliser les API des sections 2.2.14 à 2.2.23. Pour les API propres aux groupes, consultez la section ci-dessous intitulée 3 - Présentation de l'API UserGroups.
2.1 - Modèle d'objet groupe
| Variable | Type | Description |
|---|---|---|
| group_id | string | Un ID de groupe unique généré par le système. |
| owner_id | string | L'ID du propriétaire qui a créé le groupe. |
| group_name | string[200] | Nom du groupe. |
| group_code | string[25] | Nom abrégé du groupe. |
| group_security | string enum | Le paramètre de sécurité du groupe. Peut prendre l'une des valeurs suivantes : « INVITE_ONLY », « REQUEST_JOIN », « SECURITY_RULE », « FREE_JOIN ». |
| group_term | string[30] | Le nom de la session pour ce groupe. |
| publish_type | string enum | Précise les utilisateurs autorisés à publier dans ce groupe. Peut prendre l'une des valeurs suivantes : « ALL », « CURATE », « ADMIN ». |
| is_active | boolean | Indique si le groupe est actif ou non. |
| groupName | string | Nom souhaité pour un groupe. |
| groupMemeber | string | Le PID utilisateur des membres qui seront ajoutés à un groupe. |
Pour obtenir le group_id des groupes, effectuez d'abord l'appel API GET /groups (section 2.2.1). À partir de la réponse, vous pouvez recueillir tous les group_id des groupes et les utiliser ultérieurement pour d'autres appels API.
2.2 - Principaux points de terminaison
| Méthode | Chemin | Description |
|---|---|---|
| GET | /groups | Récupère tous les groupes appartenant à l'organisation. |
| GET | /groups/{group_id} | Récupère un groupe individuel selon son group_id. |
| PUT | /groups/{group_id} | Met à jour un groupe individuel selon son group_id. |
| POST | /groups | Crée un nouveau groupe |
| DELETE | /groups/{group_id} | Supprime un groupe créé |
| POST | /groups/{group_id}/members/add/{user_id} | Ajoute un utilisateur au groupe en tant que membre inscrit. |
| POST | /groups/{group_id}/content_owners/add/{user_id} | Ajoute un utilisateur au groupe en tant que propriétaire de contenu |
| GET | /groups/{group_id}/content_owners | Récupère tous les utilisateurs qui ont un accès de propriétaire de contenu au groupe. |
| GET | /groups/{group_id}/members | Récupère tous les utilisateurs inscrits au groupe. |
| DELETE | /groups/{group_id}/members/{user_id} | Retire un utilisateur membre du groupe. Ne fait rien si l'utilisateur n'est pas membre. |
| DELETE | /groups/{group_id}/content_owners/{user_id} | Retire un propriétaire de contenu du groupe. Ne fait rien si l'utilisateur n'est pas propriétaire de contenu. |
| GET | /groups/groupCode/{group_code} | Renvoie les détails du groupe pour le code de groupe donné (code de cours). |
| post | /services/users/createGroup | Crée des groupes et/ou ajoute des membres aux groupes. |
| GET | /courses/code/{course_code} | Renvoie les détails du cours pour le code de cours donné |
| DELETE | /services/courses/{course_id}/owners/{user_id} | Supprime le propriétaire d'un cours. |
| DELETE | /services/courses/{course_id}/members/{user_id} | Supprime un membre d'un cours. |
| GET | /courses/{course_id}/owners | Récupère les propriétaires du cours. |
| DELETE | /services/courses/{course_id} | Supprime le cours. |
| PUT | /services/courses/{course_id} | Modifie un cours existant. |
| POST | /services/courses/{course_id}/owners/{user_id} | Ajoute un propriétaire de cours. |
| POST | /services/courses/{course_id}/members/{user_id} | Ajoute un membre à un cours. |
| POST | /services/courses | Crée un cours. |
| GET | /services/courses | Récupère les détails de tous les cours. |
2.2.1 - GET /services/groups
Renvoie une liste JSON de tous les groupes, organisés par pages de 1000 groupes. Si vous souhaitez renvoyer tous les groupes sur une seule page, communiquez avec votre gestionnaire de compte afin de modifier le fonctionnement de cette API pour votre établissement. Remarque : Vous ne pourrez plus renvoyer tous les groupes sur une seule page après le 31 décembre 2023.
Exemple d'URL : https://api-testing.yuja.com/services/groups?page=2&sortDescending=false
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| page | Paramètre de chemin | Integer | Facultatif | Précise le numéro de page. La valeur par défaut est 0, ce qui récupère les 1000 premiers groupes à partir de la première page. |
| sortDescending | Paramètre de chemin | Boolean | Facultatif | Si la valeur est true, les résultats s'affichent par ordre décroissant du PID. Si la valeur est false, les résultats s'affichent par ordre croissant du PID. Si aucune valeur n'est précisée, la valeur par défaut est true. |
Exemple de réponse :
[
{
"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}
Renvoie un objet JSON contenant les informations du groupe.
Exemple d'URL : https://api-testing.yuja.com/services/groups/1098
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
Exemple de réponse :
{
"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}
Modifie les informations du groupe d'ID {group_id}. Voir la section 2.1 pour le détail des paramètres.
Exemple d'URL : https://api-testing.yuja.com/services/groups/1098
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
| group_name | paramètre de corps | string[200] | À définir pour mettre à jour le nom du groupe. |
| group_code | paramètre de corps | string[25] | À définir pour mettre à jour le nom abrégé du groupe. |
| group_term | paramètre de corps | string[30] | À définir pour mettre à jour le nom personnalisé du groupe. |
| group_type | paramètre de corps | string enum | À définir pour mettre à jour le type de publication du groupe. |
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"group_name": String group_name,
"group_code": String group_code,
"group_term": String group_security,
"publish_type": String publish_type
}
Tous les champs sont facultatifs. Seuls les champs fournis sont mis à jour.
2.2.4 - POST /services/groups
Crée un nouveau groupe. Voir la section 2.1 pour le détail des paramètres.
Exemple d'URL : https://api-testing.yuja.com/services/groups
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| owner_id | paramètre de corps | integer | Obligatoire. |
| group_name | paramètre de corps | string[200] | Obligatoire. |
| group_code | paramètre de corps | string[25] | Obligatoire. |
| group_term | paramètre de corps | string | Obligatoire. |
| publish_type | paramètre de corps | string enum | Obligatoire. |
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"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}
Supprime le groupe ou la classe d'ID {group_id} de l'établissement.
Exemple d'URL : https://api-testing.yuja.com/services/groups/1098
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
2.2.6 - POST /services/groups/{group_id}/members/add/{user_id}
Ajoute un utilisateur à un groupe en tant que membre.
Exemple d'URL : https://api-testing.yuja.com/services/groups/1098/members/add/1000
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
| user_id | paramètre de chemin | string | La valeur doit correspondre au champ user_id de l'appel GET /users. |
2.2.7 - POST /services/groups/{group_id}/content_owners/add/{user_id}
Ajoute un utilisateur à un groupe en tant que propriétaire de contenu.
Exemple d'URL : https://api-testing.yuja.com/services/groups/1098/content_owners/add/1000
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
| user_id | paramètre de chemin | string | La valeur doit correspondre au champ user_id de l'appel GET /users. |
2.2.8 - GET /services/groups/{group_id}/content_owners
Renvoie une liste d'objets JSON, où chaque objet est un utilisateur propriétaire de contenu du groupe d'ID {group_id}.
Exemple d'URL : https://api-testing.yuja.com/services/groups/1098/content_owners
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
Exemple de réponse :
[
{
"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
Renvoie une liste d'objets JSON, où chaque objet est un utilisateur membre du groupe d'ID {group_id}.
Exemple d'URL : https://api-testing.yuja.com/services/groups/1098/members
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
Exemple de réponse :
[
{
"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}
Retire le membre d'ID {user_id} du groupe d'ID {group_id}.
Exemple d'URL : https://api-testing.yuja.com/services/groups/1098/members/1000
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
| user_id | paramètre de chemin | string | La valeur doit correspondre au champ user_id de l'appel GET /users. |
2.2.11 - DELETE /services/groups/{group_id}/content_owners/{user_id}
Retire le propriétaire de contenu d'ID {user_id} du groupe d'ID {group_id}.
Exemple d'URL : https://api-testing.yuja.com/services/groups/1098/content_owners/1000
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
| user_id | paramètre de chemin | string | La valeur doit correspondre au champ user_id de l'appel GET /users. |
2.2.12 - GET /services/groups/groupCode/{group_code}
Renvoie les détails du groupe pour le code de groupe donné (code de cours).
Exemple d'URL : https://api-testing.yuja.com/services/groups/groupCode/123
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| group_code | Paramètre de chemin | String | Obligatoire | Le code de groupe pour lequel les détails du groupe seront renvoyés. |
Exemple de réponse :
[
{
"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
Crée des groupes et/ou ajoute des membres aux groupes.
Exemple d'URL : https://evergreen.yuja.com/services/users/createGroup
Paramètres :
Aucun paramètre n'est nécessaire pour cet appel.
Exemple de données JSON :
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{"groupName": "ChemistryGroup","groupMembers": "374983,342842,418637 (can be left empty)"}
Exemple de réponse :
Group created successfully
2.2.14 - GET /services/courses/code/{course_code}
Renvoie les détails du cours pour le code de cours donné.
Exemple d'URL : https://api-testing.yuja.com/services/courses/code/BIO232
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| course_code | Paramètre de chemin | String | Obligatoire | Le code de cours pour lequel les détails du cours seront renvoyés. |
Exemple de réponse :
{"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}
Supprime le propriétaire d'un cours.
Exemple d'URL : https://api-testing.yuja.com/services/courses/152463/owners/782915
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| course_id | paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
| user_id | paramètre de chemin | string | La valeur doit correspondre au champ user_id de l'appel GET /users. |
Exemple de réponse :
Successfully deleted user from group/class
2.2.16 - DELETE /services/courses/{course_id}/members/{user_id}
Supprime un membre appartenant à un cours.
Exemple d'URL : https://api-testing.yuja.com/services/courses/2463/members/782295
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| course_id | paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
| user_id | paramètre de chemin | string | La valeur doit correspondre au champ user_id de l'appel GET /users. |
Exemple de réponse :
Successfully deleted user from group/class
2.2.17 - GET /services/courses/{course_id}/owners
Récupère les propriétaires du cours.
Exemple d'URL : https://api-testing.yuja.com/services/courses/2463/owners
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| course_id | paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
Exemple de réponse :
{
"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}
Supprime le cours.
Exemple d'URL : https://api-testing.yuja.com/services/courses/2463
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| course_id | paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
Exemple de réponse :
Successfully deleted course/class
2.2.19 - PUT /services/courses/{course_id}
Modifie un cours existant.
Exemple d'URL : https://api-testing.yuja.com/services/courses/2463
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| course_id | paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
| course_name | paramètre de corps | string | Le nouveau nom du cours (facultatif). |
| course_code | paramètre de corps | string | La valeur doit exister et être valide. |
| course_term | paramètre de corps | string | Nouvelle session du cours (facultatif). |
| is_active | paramètre de corps | boolean/int/string | La valeur détermine le statut actif du cours (facultatif; accepte true/false, 1/0 ou des équivalents sous forme de chaîne) |
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"course_name": "newcoursename",
"course_code": "999676",
"course_term": "winter",
"is_active": true;
}
Exemple de réponse :
Successfully updated course of id : 2463
2.2.20 - POST /services/courses/{course_id}/owners/{user_id}
Ajoute un propriétaire à un cours existant.
Exemple d'URL : https://api-testing.yuja.com/services/courses/2463/owners/74927
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| course_id | paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
| user_id | paramètre de chemin | string | La valeur doit correspondre au champ user_id de l'appel GET /users. |
Exemple de réponse :
Successfully made user a content owner to this course/class
2.2.21 - POST /services/courses/{course_id}/members/{user_id}
Ajoute un membre à un cours existant.
Exemple d'URL : https://api-testing.yuja.com/services/courses/2463/members/74927
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| course_id | paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
| user_id | paramètre de chemin | string | La valeur doit correspondre au champ user_id de l'appel GET /users. |
Exemple de réponse :
Successfully made user a member to this course/class
2.2.22 - POST /services/courses
Crée un nouveau cours.
Exemple d'URL : https://api-testing.yuja.com/services/courses
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"owner_id": 374971,
"course_name": "newcourse1",
"course_code": "999000",
"course_term": "Summer",
"publish_type": "ADMIN"
}
Exemple de réponse :
Successfully created a new course
2.2.23 - GET /services/courses
Récupère les détails des cours par lots de 200.
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| page | nombre, 0 par défaut | Integer | Facultatif |
| sortDescending | true/false, true par défaut, tri selon classpid | Boolean | Facultatif |
Exemple d'URL : https://api-testing.yuja.com/services/courses
Exemple de réponse :
{"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 - Présentation de l'API UserGroups
UserGroups représente tous les groupes disponibles dans l'organisation. Chaque groupe possède un ID unique et des membres qui peuvent être ajoutés ou supprimés.
3.1 - Modèle d'objet appareil
| Variable | Type | Description |
|---|---|---|
| group_id | string | Un ID de groupe unique généré par le système. La valeur doit correspondre à l'ID unique de la plateforme pour le groupe ou au champ de valeur group_id de l'appel 3.2.1 GET /services/usergroups/all. |
| groupMembers | string | Le PID utilisateur des membres qui seront ajoutés à un groupe. |
| groupName | string | Nom souhaité pour un groupe. |
| user_id | string | L'ID d'un utilisateur de Lumina. Peut être obtenu à partir de 1.2.1 - GET /users. |
3.2 - Principaux points de terminaison
| Méthode | Chemin | Description |
|---|---|---|
| GET | /services/usergroups/all | Récupère tous les groupes. |
| GET | /services/users/{user_id}/userGroups | Récupère tous les groupes auxquels un utilisateur appartient. |
| GET | /services/usergroups/name/members | Récupère tous les membres d'un groupe à partir du nom du groupe. |
| GET | /services/usergroups/{group_id}/members | Récupère tous les membres d'un groupe à partir de l'ID du groupe. |
| GET | /services/usergroups/{group_id} | Récupère les informations d'un groupe à partir de son ID. |
| POST | /services/usergroups/create | Crée un nouveau groupe et y ajoute des membres. |
| PUT | /services/usergroups/{group_id} | Modifie le nom d'un groupe. |
| DELETE | /services/usergroups/{group_id} | Supprime un groupe selon son ID. |
| DELETE | /services/usergroups/{group_id}/clear | Supprime tous les membres du groupe. |
| DELETE | /services/usergroups/{group_id}/members/{user_id} | Supprime un membre précis du groupe selon son ID. |
| POST | /services/usergroups/foldersByGroupPID | Récupère la liste des dossiers auxquels le groupe précisé a accès. |
3.2.1 - GET /services/usergroups/all
Récupère tous les groupes.
Exemple d'URL : https://api-testing.yuja.com/services/usergroups/all
Exemple de réponse :
{"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
Récupère tous les groupes auxquels un utilisateur appartient.
Exemple d'URL : https://api-testing.yuja.com/services/users/3276/userGroups
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| user_id | paramètre de chemin | string | La valeur doit correspondre au champ user_id de 1.2.1 - GET /users |
Exemple de réponse :
[
Anthropology, Microbiology, AdminGroup
]
3.2.3 - GET /services/usergroups/name/members
Récupère tous les membres d'un groupe à partir du nom du groupe.
Exemple d'URL : https://api-testing.yuja.com/services/usergroups/name/members
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"groupName":"anthropology"
}
Exemple de réponse :
[
275749, 352461, 355740, 362283, 380225, 381147
]
3.2.4 - GET /services/usergroups/{group_id}/members
Récupère tous les membres d'un groupe à partir de l'ID du groupe.
Exemple d'URL : https://api-testing.yuja.com/services/usergroups/73527/members
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | paramètre de chemin | string | La valeur doit correspondre à l'ID unique de la plateforme pour le groupe ou au champ de valeur group_id de l'appel 3.2.1 GET /services/usergroups/all. |
Exemple de réponse :
[
472862, 840173, 294591
]
3.2.5 - GET /services/usergroups/{group_id}
Récupère les informations d'un groupe à partir de son ID.
Exemple d'URL : https://api-testing.yuja.com/services/usergroups/73527/members
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | paramètre de chemin | string | La valeur doit correspondre à l'ID unique de la plateforme pour le groupe ou au champ de valeur group_id de l'appel 3.2.1 GET /services/usergroups/all. |
Exemple de réponse :
{"value":{"userGroupPID":{"value":298},"groupName":"Admin Group","institutePID":2}}
3.2.6 - POST /services/usergroups/create
Crée un groupe et y ajoute des membres. Si un groupe existe déjà, les membres y seront ajoutés. Pour créer un groupe sans membres, saisissez "groupMembers":"" dans les données JSON.
Exemple d'URL : https://api-testing.yuja.com/services/usergroups/create
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"groupName":"Admin Group",
"groupMembers":"37291,34370"
}
Exemple de réponse :
Group created and Members added successfully
3.2.7 - PUT /services/usergroups/{group_id}
Modifie le nom d'un groupe.
Exemple d'URL : https://api-testing.yuja.com/services/usergroups/482
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | paramètre de chemin | string | La valeur doit correspondre à l'ID unique de la plateforme pour le groupe ou au champ de valeur group_id de l'appel 3.2.1 GET /services/usergroups/all. |
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"groupId":"847",
"groupName":"Admin Group"
}
Exemple de réponse :
Successfully changed the group name
3.2.8 - DELETE /services/usergroups/{group_id}
Supprime le nom d'un groupe.
Exemple d'URL : https://api-testing.yuja.com/services/usergroups/482
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | paramètre de chemin | string | La valeur doit correspondre à l'ID unique de la plateforme pour le groupe ou au champ de valeur group_id de l'appel 3.2.1 GET /services/usergroups/all. |
Exemple de réponse :
Successfully deleted the group
3.2.9 - DELETE /services/usergroups/{group_id}/clear
Retire tous les membres d'un groupe.
Exemple d'URL : https://api-testing.yuja.com/services/usergroups/482/clear
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | paramètre de chemin | string | La valeur doit correspondre à l'ID unique de la plateforme pour le groupe ou au champ de valeur group_id de l'appel 3.2.1 GET /services/usergroups/all. |
Exemple de réponse :
Successfully cleared group members
3.2.10 - DELETE /services/usergroups/{group_id}/members/{user_id}
Supprime un membre précis du groupe selon son ID.
Exemple d'URL : https://api-testing.yuja.com/services/usergroups/482/members/73847
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | paramètre de chemin | string | La valeur doit correspondre à l'ID unique de la plateforme pour le groupe ou au champ de valeur group_id de l'appel 3.2.1 GET /services/usergroups/all. |
| user_id | paramètre de chemin | string | La valeur doit correspondre au champ user_id de 1.2.1 - GET /users |
Exemple de réponse :
Successfully deleted group member
3.2.11 - POST /services/usergroups/foldersByGroupPID
Récupère la liste des dossiers auxquels le groupe précisé a accès.
Exemple d'URL : https://api-testing.yuja.com/services/usergroups/foldersByGroupPID
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| pageNumber | Paramètre de corps | Integer | Facultatif : le numéro de page de la liste. La valeur par défaut est 1. |
| pageSize | Paramètre de corps | Integer | Facultatif : le nombre de résultats par page. La valeur par défaut est 20 et la valeur maximale est 200. |
| groupPID | Paramètre de corps | Integer | L'ID unique de la plateforme pour le groupe. |
Exemple de requête :
{
"pageNumber":1,
"pageSize":10,
"groupPID":368
}
Exemple de réponse :
[
{
"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 - Présentation de l'API des appareils
Les appareils représentent tous les appareils de capture enregistrés auprès de l'organisation. Chaque appareil peut recevoir facultativement une adresse IP dans l'interface de gestion. Cet ID sera récupéré avec les autres ID d'appareils.
4.1 - Modèle d'objet appareil
| Variable | Type | Description |
|---|---|---|
| device_id | string | Un ID unique généré par le système. |
| device_type | string enum | Type de l'appareil enregistré. Peut prendre l'une des valeurs suivantes : « software_capture », « hardware_capture ». |
| name | string[100] | Le nom donné à l'appareil. |
| access_level | string enum | Qui peut accéder à cet appareil. Peut prendre l'une des valeurs suivantes : « it_admin », « me », « content_owner », « member ». |
| register_user_id | string | ID de l'utilisateur qui a enregistré l'appareil. |
| profile_id | string |
Un ID unique généré par le système et attribué à un profil. Remarque : Pour les appareils matériels, définissez le profile_id sur « -1 » |
| session_id | string | Un ID unique généré par le système et attribué à une session. |
| _live_broadcast | boolean | Facultatif, uniquement pour les appareils matériels. Indique si la session est configurée pour la diffusion en direct. |
4.2 - Principaux points de terminaison
| Méthode | Chemin | Description |
|---|---|---|
| GET | /devices | Récupère tous les appareils appartenant à l'organisation. |
| GET | /devices/{device_id} | Récupère un appareil individuel selon son device_id. |
| PUT | /devices/{device_id} | Met à jour le nom d'un appareil individuel selon son device_id. |
| POST | /devices/register | Enregistre un appareil. |
| GET | /devices/registrations/{access_id} | Une autre façon d'obtenir (GET) les informations d'un appareil à l'aide de l'access_id plutôt que du device_id interne de YuJa. Disponible uniquement pour les types d'appareils qui utilisent un access_id. |
| GET | /devices/{device_id}/schedule | Récupère tous les horaires associés à cet appareil. |
| POST | /devices/{device_id}/profiles/create | Crée un profil de capture pour un appareil. |
| POST | /devices/session | Crée une session planifiée avec l'appareil et le profil sélectionnés. |
| POST | /devices/startsession | Crée instantanément une session avec l'appareil et le profil précisés. |
| GET | /session/{sessionId}/livestream/urls | Récupère les URL de diffusion en direct et l'URL de lecture pour le sessionId donné. |
| POST | ||
| POST | /devices/stopstation | Arrête toutes les sessions actuellement enregistrées par l'appareil. |
| POST | /devices/{device_id}/status | Un point de terminaison pour envoyer périodiquement à Lumina des informations d'état et de journalisation. |
| GET | /devices/session/{session_id}/commands | La station interrogera Lumina pour récupérer les commandes de pause ou d'arrêt, qui serviront au contrôle en cours de session d'une session active. |
| DELETE | /devices/{session_id} | Retire une session de l'horaire des appareils. |
| GET | /devices/profiles/{device_id}/{login_id} | Récupère tous les profils d'un utilisateur sur un appareil précisé. |
| GET | /devices/profiles/{device_id} | Récupère tous les profils d'un appareil précisé. |
| GET | /devices/userID/{sso} | Récupère le userID correspondant. |
| POST | /devices/editsession | Modifie une session existante. |
| DELETE | /devices/{device_id}/schedules | Supprime tous les horaires associés à cet appareil. |
| POST | /devices/{device_id}/status | Enregistre les états et les informations de journalisation d'un appareil donné. |
| POST | /devices/yujahardware/{device_id}/profiles/create | Crée un nouveau profil. |
| PUT | devices/yujahardware/{device_id}/profiles/update | Met à jour un profil de hub. |
| DELETE | /devices/yujahardware/{device_id}/profiles/{profile_id}/delete | Supprime un profil de hub. |
| GET | /devices/{deviceId}/profiles/{externalProfileId} | Renvoie l'ID de profil YuJa correspondant à l'ID de profil externe transmis. |
| DELETE | /devices/unregister/{deviceId} | Supprime tout appareil enregistré. |
| PUT | /devices/{sessionId}/extend | Prolonge la durée de session des appareils tiers (de 30 minutes par défaut). |
| GET | /devices/{deviceId}/{profileId}/previewlinks | Renvoie les URL S3 présignées qui peuvent servir à mettre à jour les aperçus audio/image. |
| PUT | /devices/{sessionId}/stop | Arrête immédiatement la session des appareils tiers |
| POST | /devices/session/{sessionPId}/pause | Met en pause la lecture de la diffusion en direct pour une session donnée. |
| POST | /devices/session/{sessionPId}/resume | Reprend la lecture de la diffusion en direct pour une session donnée. |
4.2.1 - GET /services/devices
Renvoie une liste d'objets JSON, où chaque objet est un appareil.
Exemple d'URL : https://api-testing.yuja.com/services/devices
Paramètres :
Aucun paramètre n'est nécessaire pour cet appel.
Exemple de réponse :
{
{
"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}
Renvoie un objet JSON, où l'objet est un appareil.
Exemple d'URL : https://api-testing.yuja.com/services/devices/12456
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| device_id | paramètre de chemin | string | La valeur doit correspondre au champ device_id de l'appel GET /devices. |
Exemple de réponse :
{
"name": "station2",
"device_type": "hardware_capture",
"access_level": "me",
“device_id ” : “12346”,
“register_user_id” : “user2”
}
4.2.3 - PUT /services/devices/{device_id}
Met à jour l'appareil.
Exemple d'URL : https://api-testing.yuja.com/services/devices/12345
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| device_id | paramètre de chemin | string | La valeur doit correspondre au champ device_id de l'appel GET /devices. |
4.2.4 - POST /services/devices/register
Enregistre un appareil. Vous pouvez utiliser le point de terminaison existant PUT /devices/{device_id} pour modifier l'appareil après son enregistrement.
Exemple d'URL : https://api-testing.yuja.com/services/devices/register
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| access_id | Paramètre de corps | string[100] | Obligatoire | Un identifiant unique pour la station de capture. |
| display_name | Paramètre de corps | string[100] | Obligatoire | Le nom d'affichage présenté à l'utilisateur final. |
| station_type | Paramètre de corps | string enum | Obligatoire | Précise quel appareil tiers est enregistré (exemple : « extron », « epiphan »). |
| device_model | Paramètre de corps | string | Facultatif | Le modèle de l'appareil. |
| firmware_version | Paramètre de corps | string | Facultatif | La version du micrologiciel de l'appareil. |
| user_identifier | Paramètre de corps | string | Obligatoire | Un identifiant de l'utilisateur de Lumina qui deviendra propriétaire de l'appareil. |
| user_identifier_type | Paramètre de corps | string enum | Obligatoire | Valeurs possibles : « ID », « LOGIN », « SSO ». Détermine la façon dont le paramètre user_identifier sera traité. ID représente l'ID interne de YuJa, LOGIN représente le nom d'utilisateur de connexion de l'utilisateur et SSO représente l'identifiant SSO de l'utilisateur. |
| configuration | Paramètre de corps | JSON object | Facultatif | Configuration diverse. |
| contact_list | Paramètre de corps | string | Facultatif | Une liste d'utilisateurs à qui envoyer les notifications de l'appareil. La chaîne sera composée de valeurs séparées par des virgules, chaque valeur étant un ID d'utilisateur interne de Lumina ou un courriel. |
| save_folder (à venir) | Paramètre de corps | string | Facultatif | Le dossier des collections médias dans lequel enregistrer. Le chemin sera un chemin relatif à partir du dossier de l'utilisateur, et non un chemin absolu. S'il n'est pas défini, la collection par défaut de l'utilisateur sera utilisée. |
Exemple de requête :
{
"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"
}
Exemple de réponse :
{
“success”: “true”,
“error_message”: “”,
“id”: “12345”
}
4.2.5 - GET /services/devices/registrations/{access_Id}
Une autre façon d'obtenir (GET) les informations d'un appareil à l'aide de l'access_id plutôt que du device_id interne de Lumina. Disponible uniquement pour les types d'appareils qui utilisent un access_id.
Exemple d'URL : https://api-testing.yuja.com/services/devices/registrations/r0RQUYSM89TvCo9sm3AM
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| access_id | Paramètre de chemin | string[100] | Obligatoire | Un identifiant unique pour la station de capture. |
Exemple de réponse :
{
"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
Renvoie les détails des sessions de l'appareil pour une période donnée.
Exemple d'URL : https://api-testing.yuja.com/services/devices/12345/schedule?startTime=01-08-2021&endTime=07-08-2021
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| device_id | paramètre de chemin | string | La valeur doit correspondre au champ device_id de l'appel GET /devices. |
| startTime | Paramètre de requête | string | Heure de début de l'horaire (dd-mm-yyyy) |
| endTime | Paramètre de requête | string | Heure de fin de l'horaire (dd-mm-yyyy) |
Exemple de réponse :
[
{
"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
Crée un profil de capture pour un appareil.
Exemple d'URL : https://api-testing.yuja.com/services/devices/{device_id}/profiles/create
Paramètres : Le corps contiendra un tableau JSON dans lequel chaque objet JSON aura les champs suivants.
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| profile_id | Paramètre de corps | string[100] | Obligatoire | Un identifiant unique pour le profil. |
| name | Paramètre de corps | string | Obligatoire | Le nom du profil présenté à l'utilisateur final. |
| description | Paramètre de corps | string | Facultatif | La description du profil présentée à l'utilisateur final. |
| isLiveStream | Paramètre de corps | boolean | Facultatif | La valeur booléenne détermine si la session créée au moyen de ce profil sera diffusée en direct ou non. La valeur par défaut est false. |
Exemple de requête :
[
{
"profile_id": "456juhgj",
"name": "LiveStreamProfile",
"description": "No desc needed",
"isLiveStream": true
},
{
"profile_id": "789juhgj",
"name": "NormalProfile",
"description": "Normal Profile",
"isLiveStream": false
}
]
Exemple de réponse :
{
"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
Crée une session.
Exemple d'URL : https://api-testing.yuja.com/services/devices/session
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| start_year | Paramètre de corps | string | Année de début de la session. |
| start_month | Paramètre de corps | string | Mois de début de la session. |
| start_day | Paramètre de corps | string | Jour de début de la session. |
| start_hour | Paramètre de corps | string | Heure de début de la session. |
| start_minute | Paramètre de corps | string | Minute de début de la session. |
| duration_hour | Paramètre de corps | string | Nombre d'heures que doit durer la session. |
| duration_minute | Paramètre de corps | string | Nombre de minutes que doit durer la session. |
| is_live_broadcast | Paramètre de corps | boolean | Pour enregistrer une diffusion en direct, saisissez true; sinon, saisissez false. |
| station_id | Paramètre de corps | string | ID correspondant à l'appareil avec lequel vous souhaitez enregistrer (à obtenir à partir de 4.2.1). |
| login_id | Paramètre de corps | string | Utilisez sso ou login_id. |
| sso | Paramètre de corps | string | Utilisez sso ou login_id. |
| session_title | Paramètre de corps | string | Un titre pour la session. |
| session_description | Paramètre de corps | string | Facultatif. |
| label_colour | Paramètre de corps | string | Facultatif, doit être au format « #ABCDEF ». |
| profile_id | Paramètre de corps | string |
Un ID correspondant au profil que vous souhaitez utiliser pour l'enregistrement (ID de profil à obtenir à partir de 4.2.16). Remarque : Pour les appareils matériels, définissez le profile_id sur « -1 » |
| folderPIDs | Paramètre de corps | string | Facultatif : saisissez les PID valides des dossiers CampusTube dans lesquels vous souhaitez publier les enregistrements du hub, en les séparant par des virgules. |
| group_id | Paramètre de corps | string | Facultatif : l'ID de groupe peut être obtenu au moyen de la requête d'obtention de tous les groupes (2.2.1). Seul group_id ou class_code peut être utilisé, pas les deux. |
| class_code | Paramètre de corps | string | Facultatif : le class_code est ajouté par l'utilisateur. Seul group_id ou class_code peut être utilisé, pas les deux. |
| return_session | Paramètre de corps | boolean | Facultatif : envoyez true pour obtenir les détails de la session dans la réponse. |
| storage_path | Paramètre de corps | string | Facultatif : transmettez le chemin relatif à Mes collections médias pour enregistrer la vidéo dans ce dossier. Si une valeur vide (« ») ou simplement une barre oblique (« / ») est transmise, la vidéo sera enregistrée dans la collection par défaut. De plus, si le dossier mentionné n'existe pas, l'API en créera un pour vous. |
| manuallyStartScheduledSession | Paramètre de corps | boolean | Facultatif : exige que la session soit démarrée manuellement. |
| usersToSendScheduleCopy | Paramètre de corps | string | Facultatif : les PID des utilisateurs à qui envoyer une invitation de calendrier. |
| createPlaceholder | Paramètre de corps | boolean | Facultatif : crée un espace réservé de vignette dans la collection par défaut ou dans le storage_path précisé. |
Exemple de requête :
{
"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
}
Exemple de réponse :
{
"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
Démarre immédiatement une session.
Exemple d'URL : https://api-testing.yuja.com/services/devices/startsession
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| is_live_broadcast | Paramètre de corps | string | Utilisez « true » pour enregistrer une diffusion en direct et « false » dans le cas contraire. |
| group_id | Paramètre de corps | string | Facultatif : l'ID de groupe peut être obtenu au moyen de la requête d'obtention de tous les groupes (2.2.1). group_id ou class_code est requis si la session est en direct. Seul group_id ou class_code peut être utilisé, pas les deux. |
| class_code | Paramètre de corps | string | Facultatif : le class_code est ajouté par l'utilisateur. group_id ou class_code est requis si la session est en direct. Seul group_id ou class_code peut être utilisé, pas les deux. |
| duration_minute | Paramètre de corps | string | La durée de l'enregistrement, en minutes. |
| station_id | Paramètre de corps | string | L'ID de l'appareil d'enregistrement peut être obtenu avec (4.2.1). |
| login_id | Paramètre de corps | string | Utilisez sso ou login_id. |
| sso | Paramètre de corps | string | Utilisez sso ou login_id. |
| session_title | Paramètre de corps | string | Titre de la session |
| session_description | Paramètre de corps | string | Description facultative de la session. |
| profile_id | Paramètre de corps | string | L'ID de profil peut être obtenu avec 4.2.16. |
| storage_path | Paramètre de corps | string | Facultatif : transmettez le chemin relatif à Mes collections médias pour enregistrer la vidéo dans ce dossier. Si une valeur vide (« ») ou simplement une barre oblique (« / ») est transmise, la vidéo sera enregistrée dans la collection par défaut. De plus, si le dossier mentionné n'existe pas, l'API en créera un pour vous. |
Exemple de requête :
{
"is_live_broadcast": "true",
"duration_minute": "45"
"station_id": "2906"
"login_id": "marythompson"
"session_title": "A Change In The Current Of Microbiology",
"profile_id": "7008c47"
"storage_path" : "/Sem4/CompScience"
}
4.2.10 - GET/POST /services/devices/{sessionId}/livestream/urls
Un point de terminaison qui répondra avec les URL de diffusion en direct et les URL de lecture pour un sessionId donné. Veuillez noter : avant d'utiliser l'API, YuJa Software Capture doit être enregistré dans votre zone.
Paramètres de la requête :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| sessionId | Paramètre de chemin | Integer | Obligatoire | Le sessionId de la session planifiée (peut être obtenu à partir de /device_id/schedule) |
| JSONArray | Paramètre de corps | string |
JSONArray (tableau des objets JSON suivants) (maximum de 3 flux par session)
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| streamName | JSONProperty | String | Obligatoire | Nom de flux unique servant à créer la clé de flux |
| streamQuality | JSONProperty | String | Facultatif |
Métadonnées facultatives Valeurs possibles : 240 Valeur par défaut : 720 |
| audioOnly | JSONProperty | Boolean | Facultatif |
Métadonnées facultatives Valeurs possibles : True Valeur par défaut : False |
| videoOnly | JSONProperty | Boolean | Facultatif |
Métadonnées facultatives : Valeurs possibles : True Valeur par défaut : False |
| streamPriority | JSONProperty | String | Facultatif |
Métadonnées facultatives Une valeur plus faible signifie une priorité plus élevée Valeurs possibles : 1 Valeur par défaut : 1 |
Exemple de corps de requête :
[
{
"streamName": "stream1",
"streamQuality" : "720",
"videoOnly" : false,
"streamPriority" : "1"
},
{
"streamName": "stream2",
"streamQuality" : "720",
"audioOnly": false,
"videoOnly" : false,
"streamPriority" : "2"
}
]
Exemple de réponse :
{
"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
Arrête immédiatement une session.
Exemple d'URL : https://api-testing.yuja.com/services/devices/stopstation
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| device_id | Paramètre de corps | string | L'ID de l'appareil d'enregistrement peut être obtenu avec (4.2.1). |
| login_id | Paramètre de corps | string | ID de connexion. |
Exemple de requête :
{
"device_id": "55492",
"login_id": "marythompson",
}
4.2.12 - POST /services/devices/{device_id}/status (à venir)
Un point de terminaison pour envoyer périodiquement à Lumina des informations d'état et de journalisation. Cela comprend nos journaux d'audit, nos journaux d'erreurs et des alertes, notamment les alertes de faible niveau du microphone (entrée audio).
Exemple d'URL : https://api-testing.yuja.com/services/devices/12345/status
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| device_id | Paramètre de chemin | integer | Obligatoire | L'ID de l'appareil de la station de capture. |
| timestamp | Paramètre de corps | Timestamp | Obligatoire | Un horodatage correspondant au moment où l'événement s'est produit. |
| type | Paramètre de corps | string | Obligatoire | Valeurs : status, alert, error. |
| content | Paramètre de corps | integer | Facultatif | L'état de l'appareil (uploading, connected, streaming, disconnected), le contenu de l'alerte ou les journaux d'erreurs, selon le paramètre type. |
Exemple de requête :
{
"device_id": 52341,
"timestamp": 2021-05-20 12:00:00,
"type": "status",
}
Exemple de réponse :
{
“success”: true
}
4.2.13 - GET /services/devices/session/{session_id}/commands (à venir)
La station interrogera Lumina pour récupérer les commandes de pause ou d'arrêt, qui serviront au contrôle en cours de session d'une session active. L'intervalle d'interrogation en pleine session d'enregistrement sera plus fréquent que lorsque la station est en veille. La fréquence maximale d'interrogation ne doit pas dépasser une fois toutes les 10 secondes.
Exemple d'URL : https://api-testing.yuja.com/services/devices/session/614/commands
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| session_id | Paramètre de chemin | integer | Obligatoire | L'ID de la session. |
réponse :
| Nom | Type | Description |
|---|---|---|
| command | string | do-nothing, pause, stop. |
4.2.14 - DELETE /services/devices/{session_id}
Supprime une session planifiée.
Exemple d'URL : https://api-testing.yuja.com/services/devices/679
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| session_id | Paramètre de chemin | string | L'ID de l'appareil peut être obtenu avec (4.2.4). |
4.2.15 - GET /services/devices/profiles/{device_id}/{login_id}
Récupère les profils d'un utilisateur précis sur un appareil précis.
Exemple d'URL : https://api-testing.yuja.com/services/devices/profiles/12345/loginID123
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| device_id | Paramètre de corps | string | L'ID de l'appareil d'enregistrement peut être obtenu avec (4.2.1). |
| login_id | Paramètre de corps | string | Identifiant de connexion de l'utilisateur associé au profil. |
Exemple de réponse :
{
"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}
Récupère les profils d'un utilisateur précis sur un appareil précis.
Exemple d'URL : https://api-testing.yuja.com/services/devices/profiles/12345
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| device_id | Paramètre de corps | string | L'ID de l'appareil d'enregistrement peut être obtenu avec (4.2.1). |
Exemple de réponse :
{
"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}
Récupère le userID correspondant.
Exemple d'URL : https://api-testing.yuja.com/services/devices/userid/testuser
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| sso | Paramètre de corps | string | Peut être obtenu à partir de 4.2.4. |
Exemple de réponse :
testuser
4.2.18 - POST /services/devices/editsession
Met à jour une session avec les paramètres donnés.
Exemple d'URL : https://api-testing.yuja.com/services/devices/editsession
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| session_id | Paramètre de corps | string | Peut être obtenu à partir de 4.2.11. |
| start_year | Paramètre de corps | string | Facultatif : année de début de la session. |
| start_month | Paramètre de corps | string | Facultatif : mois de début de la session. |
| start_day | Paramètre de corps | string | Facultatif : jour de début de la session. |
| start_hour | Paramètre de corps | string | Facultatif : heure de début de la session. |
| start_minute | Paramètre de corps | string | Facultatif : minute de début de la session. |
| duration_hour | Paramètre de corps | string | Facultatif : nombre d'heures que doit durer la session. |
| duration_minute | Paramètre de corps | string | Facultatif : nombre de minutes que durera la session. |
| station_id | Paramètre de corps | string | Facultatif : ID correspondant à l'appareil avec lequel vous souhaitez enregistrer (à obtenir à partir de 4.2.1). |
| login_id | Paramètre de corps | string | Facultatif : utilisez sso ou login_id. |
| sso | Paramètre de corps | string | Facultatif : utilisez sso ou login_id. |
| session_title | Paramètre de corps | string | Facultatif : un titre pour la session. |
| session_description | Paramètre de corps | string | Facultatif : une description. |
| label_colour | Paramètre de corps | string | Facultatif, doit être au format « #ABCDEF ». |
| profile_id | Paramètre de corps | string | Facultatif : un ID correspondant au profil que vous souhaitez utiliser pour l'enregistrement (ID de profil à obtenir à partir de 4.2.16). |
| group_id | Paramètre de corps | string | Facultatif : l'ID de groupe peut être obtenu au moyen de la requête d'obtention de tous les groupes (2.2.1). Seul group_id ou class_code peut être utilisé, pas les deux. |
| class_code | Paramètre de corps | string | Facultatif : le class_code est ajouté par l'utilisateur. Seul group_id ou class_code peut être utilisé, pas les deux. |
| storage_path | Paramètre de corps | string | Facultatif : transmettez le chemin relatif à Mes collections médias pour enregistrer la vidéo dans ce dossier. Si une valeur vide (« ») ou simplement une barre oblique (« / ») est transmise, la vidéo sera enregistrée dans la collection par défaut. De plus, si le dossier mentionné n'existe pas, l'API en créera un pour vous. |
Exemple de requête :
{
"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
Supprime toutes les sessions planifiées associées à l'appareil.
Exemple d'URL : https://api-testing.yuja.com/services/devices/12345/schedules
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| device_id | Paramètre de chemin | string | L'ID de l'appareil peut être obtenu avec (4.2.4). |
4.2.20 - GET /services/devices/{user_id}/sessions
Renvoie les détails de l'utilisateur pour une période donnée.
Exemple d'URL : https://api-testing.yuja.com/services/devices/marythompson
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| user_id | Paramètre de chemin | string | La valeur doit être un user_id valide |
| startTime | Paramètre de requête | string | Heure de début d'un horaire (dd-mm-yyyy) |
| endTime | Paramètre de requête | string | Heure de fin de l'horaire (dd-mm-yyyy) |
Exemple de réponse :
[
{
"duration": "0:10",
"session_name": "Chemistry 101 Lecture",
"start_time": "Sun May 10 18:00:00 EDT 2020",
"start_timestamp": 1589148000000,
"session_description": "CHEM 101 Recurring Lecture",
"session_creator": "April Hurst",
"repeat_summary": "Weekly on Sunday for 12 sessions",
"device_profile": "",
"session_id": 1121,
"class_name": "Chemistry 101",
"class_code": "",
"video_id": -1
}
]
4.2.21 - POST /services/devices/{device_id}/status
Un point de terminaison pour envoyer périodiquement à YuJa EVP des informations d'état et de journalisation.
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| device_id | Paramètre de chemin | Integer | Obligatoire | L'ID de l'appareil de la station de capture |
| statusType | Paramètre de corps | string | Obligatoire | Valeurs possibles : DEVICE_STATUS |
| deviceStatus | Paramètre de corps JSON | string | Obligatoire |
Actuellement accepté : uploading, streaming, ready, recording Pourrait être ajouté : paused |
URL d'exemple : https://api-testing.yuja.com/services/devices/1480/status
Exemple de corps de requête :
{
"statusType": "DEVICE_STATUS",
"deviceStatus": {
"recording": false,
"uploading": true,
"streaming": false,
"ready": true,
“extra_info”: objet JSON contenant toute autre information utile qui reste à définir.
}
}Exemple de réponse :
{
"success": true,
"command": "",
"command_data": ""
}
Remarque : command et command_data sont des paramètres fictifs pour de futures fonctionnalités permettant de contrôler les appareils, comme la possibilité de demander aux appareils de mettre en pause ou de terminer la session à partir de notre portail.
4.2.22 - POST /services/devices/yujahardware/{device_id}/profiles/create
Un point de terminaison pour créer des profils de hub.
Exemple d'URL : https://api-testing.yuja.com/services/devices/yujahardware/{device_id}/profiles/create
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| device_id | Paramètre de chemin | Integer | Un ID de station de capture valide. |
| Name | Corps | String [255] | Le nom du profil de hub ne peut pas être vide. |
| Description | Corps | String [255] | Description du profil. |
| MediaDevice0 | Corps | Boolean | Active ou non le périphérique multimédia 0. |
| MediaDevice1 | Corps | Boolean | Active ou non le périphérique multimédia 1. |
| MediaDevice2 | Corps | Boolean | Active ou non le périphérique multimédia 2. |
| LineInAudio | Corps | Boolean | Active ou non l'entrée audio ligne. |
Exemple de corps de requête :
[{
"Name": "1",
"Description": "",
"MediaDevice0": true,
"MediaDevice1": false,
"MediaDevice2": false,
"LineInAudio": true
}]
Exemple de réponse :
{"error_message":"","success":true,"profiles":[{"profile_name":"1","profile_id":"3313"}]}
4.2.23 - PUT /services/devices/yujahardware/{device_id}/profiles/update
Un point de terminaison pour mettre à jour un profil de hub.
Exemple d'URL : https://api-testing.yuja.com/services/devices/yujahardware/{device_id}/profiles/update
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| device_id | Paramètre de chemin | Integer | Un ID de station de capture valide. |
| Name | Corps | String [255] | Le nom du profil de hub ne peut pas être vide. |
| Description | Corps | String [255] | Description du profil. |
| MediaDevice0 | Corps | Boolean | Active ou non le périphérique multimédia 0. |
| MediaDevice1 | Corps | Boolean | Active ou non le périphérique multimédia 1. |
| MediaDevice2 | Corps | Boolean | Active ou non le périphérique multimédia 2. |
| LineInAudio | Corps | Boolean | Active ou non l'entrée audio ligne. |
Exemple de corps de requête :
{
"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
}
Exemple de réponse :
{
"errorMessage": "",
"success": true
}
4.2.24 - DELETE /services/devices/yujahardware/{device_id}/profiles/{profile_id}/delete
Un point de terminaison pour supprimer un profil de hub.
Exemple d'URL :
https://api-testing.yuja.com/services/devices/yujahardware/{device_id}/profiles/{profile_id}/delete
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| device_id | Paramètre de chemin | Integer | Un ID de station de capture valide. |
| profile_id | Paramètre de chemin | Integer | Un ID de profil valide. |
Exemple de réponse :
{ "errorMessage": "",
"success": true
}
4.2.25 - GET /services/devices/{deviceId}/profiles/{externalProfileId}
Renvoie l'ID de profil YuJa correspondant à l'ID de profil externe transmis.
Exemple d'URL : https://api-testing.yuja.com/services/devices/1543/profiles/external/wstestprofile
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| deviceId | Paramètre de chemin | Integer | Obligatoire | L'ID de l'appareil d'enregistrement |
| externalProfileId | Paramètre de chemin | String | Obligatoire | L'ID de profil de l'appareil externe |
Exemple de réponse :
{
"profile_Id": "wstestprofile",
"yuja_profile_Id": 3412
}
4.2.26 - DELETE /services/devices/unregister/{deviceId}
Supprime tout appareil enregistré.
Exemple d'URL : https://api-testing.yuja.com/services/devices/unregister/1547
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| device_id | Paramètre de chemin | Integer | Obligatoire | L'ID de l'appareil d'enregistrement peut être obtenu avec (4.2.1). |
Exemple de réponse :
{
"success": true
}
4.2.27 - PUT /services/devices/{sessionId}/extend
Prolonge la durée de session des appareils tiers (de 30 minutes par défaut).
Exemple d'URL : https://api-testing.yuja.com/services/devices/38957/extend?minutes=6
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| sessionId | Paramètre de chemin | Integer | Obligatoire | L'ID de la session à prolonger |
| minutes | Paramètre de requête | Integer | Facultatif | Nombre de minutes qui seront ajoutées à la durée de la session |
Exemple de réponse :
{
"success": true,
"message": "Successfully extended session for 6 minutes"
}
4.2.28 - GET - /services/devices/{deviceId}/{profileId}/previewlinks
Renvoie les URL S3 présignées qui peuvent servir à mettre à jour les aperçus audio/image.
Exemple d'URL : https://api-testing.yuja.com/services/devices/1480/3431/previewlinks?videoStream=1&audioStream=1
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| deviceId | Paramètre de chemin | Integer | Obligatoire | L'ID de l'appareil d'enregistrement. |
| profileId | Paramètre de chemin | String | Obligatoire | L'ID de profil YuJa de l'appareil externe. |
| videoStream | Paramètre de requête | Integer | Obligatoire | Nombre de flux vidéo associés au profil. Nombre maximal de flux vidéo : 3 |
| audioStream | Paramètre de requête | Integer | Obligatoire | Nombre de flux audio associés au profil. Nombre maximal de flux audio : 2 |
Exemple de réponse :
{
"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
Arrête immédiatement la session des appareils tiers
Exemple d'URL : https://api-testing.yuja.com/services/devices/38957/stop
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| sessionId | Paramètre de chemin | Integer | Obligatoire | L'ID de la session à arrêter. |
Exemple de réponse :
{
"success": true,
"message": "Successfully stopped the session"
}
4.2.30 - POST - /services/devices/session/{sessionPId}/pause
Met en pause la lecture de la diffusion en direct pour une session donnée.
Exemple d'URL : https://api-testing.yuja.com/services/devices/session/38519/pause
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| sessionPId | Paramètre de chemin | Integer | Obligatoire | L'ID de la session à mettre en pause. |
Exemple de réponse :
{
"success": true
}
4.2.31 - POST - /services/devices/session/{sessionPId}/resume
Reprend la lecture de la diffusion en direct pour une session donnée.
Exemple d'URL : https://api-testing.yuja.com/services/devices/session/38519/resume
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| sessionPId | Paramètre de chemin | Integer | Obligatoire | L'ID de la session à reprendre. |
Exemple de réponse :
{
"success": true
}
4.2.32 - DELETE /services/devices/{deviceId}/profiles/thirdParty/{yujaProfileId}
Supprime les profils tiers.
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| DeviceId | Paramètre de chemin | Integer | Un ID d'appareil valide. |
| YuJaProfileId | Paramètre de chemin | Integer | Un ID de profil YuJa valide (disponible à partir de GET /devices/profiles/{device_id}) |
Exemple de réponse :
{
"success": true,
"message": "Profile Deleted Successfully!"
}
4.2.33 - PUT /services/devices/{deviceId}/profiles/thirdParty/{yujaProfileId}
Met à jour les détails des profils tiers.
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| DeviceId | Paramètre de chemin | Integer | Un ID d'appareil valide |
| YuJaProfileId | Paramètre de chemin | Integer | Un ID de profil YuJa valide (disponible à partir de GET /devices/profiles/{device_id}) |
Exemple de corps de requête :
{
"profile_id": "456juhgj",
"Name": "LiveStreamProfile",
"description": "No desc needed",
"isLiveStream": true
}
Exemple de réponse :
{
"success": true,
"message": "Profile Updated Successfully!"
}
4.2.34 - GET /services/devices/{deviceId}/{yujaProfileId}/previewURLs
Renvoie les URL d'aperçu vidéo et audio pour l'appareil donné et son profil correspondant.
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| DeviceId | Paramètre de chemin | Integer | Un ID d'appareil YSC valide. |
| YuJaProfileId | Paramètre de chemin | Integer | Un ID de profil YuJa valide. |
Exemple de réponse :
{
"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
Répond avec les états des appareils pour les stations YSC enregistrées.
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| DeviceId | Paramètre de chemin | Integer | Un ID d'appareil YSC valide. |
Exemple de réponse :
{
"connected": true,
"streaming": false,
"ready": true,
"access_id": "presenter-service-1bb8f4f8-dc6b-43bb-b2ce-asdvsadfvf",
"recording": false,
"uploading": false
}
5 - Présentation de l'API Média
Les médias représentent tous les éléments de l'établissement. Cela comprend les fichiers audio, les fichiers vidéo et d'autres documents.
5.1 - Modèle d'objet média
| Variable | Type | Description |
|---|---|---|
| login_id/loginid | string | ID de connexion de l'utilisateur. |
| group_id | string | ID de groupe unique généré par le système. |
| title | string | Titre de la vidéo téléversée ou du dossier qui sera créé. |
| file_key | string | Clé renvoyée par le système pour téléverser un fichier. |
| description | string | Description de la vidéo téléversée. |
| video_id/videonode_id/videoPID | string | ID de vidéo unique généré par le système. |
| old_video_id | string | ID de la vidéo à remplacer. |
| new_video_id | string | ID de la vidéo après remplacement. |
| folder_id/folderID/nodePID | string | PID de dossier unique généré par le système. |
| video_id/VideoPID | integer | ID de la vidéo sélectionnée. |
| media_file_id | integer | ID de fichier média valide et unique. |
| DirectStreamEnabled | boolean | Si la valeur est true, le flux RSS contiendra des liens directs pour télécharger le média. Si la valeur est false, aucun lien direct vers le média ne sera récupéré. |
| extension | string | Le type de fichier des sous-titres qui seront téléversés. La valeur peut être srt ou vtt. |
| type | string | Lors du téléversement de sous-titres, le type sera toujours « caption ». Lors du téléversement d'un fichier de transcription, indiquez s'il s'agit d'un fichier « txt » ou « pdf ». |
| language | string | La langue du fichier de sous-titres qui sera téléversé. |
| file_key | integer | Obtenu à partir de la réponse JSON de la section 5.2.44. |
| metadataPrefix | string |
Saisissez l'une des valeurs suivantes : lom_ims : Récupère les données à l'aide du modèle Learning Object Metadata.
oai_dc : Récupère les données à l'aide du modèle standard Dublin Core de l'Open Archives Initiative. |
5.2 - Principaux points de terminaison
| Variable | Type | Description |
|---|---|---|
| GET | /media/createuploadlink | Récupère un lien de téléversement et un file_key pour téléverser un fichier média. |
| POST | /media/upload/video | Téléverse les détails d'une vidéo. |
| POST | /media/publish/video | Publie une vidéo dans un cours. |
| POST | /media/replace/video | Remplace une vidéo. |
| GET | /media/video/group/{group_id} | Récupère les vidéos publiées dans un cours. |
| GET | /media/video/directlink/{video_id} | Récupère le lien direct et le code d'intégration d'une vidéo. |
| GET | /media/retrievebranding | Récupère la personnalisation du lecteur multimédia de l'établissement. |
| PUT | /media/updatebranding | Met à jour la personnalisation du lecteur multimédia de l'établissement. |
| GET | /media/retrieveuserassets/{login_id} | Récupère les éléments de l'utilisateur (dossiers, fichiers vidéo, autres documents). |
| GET | /media/retrieveuserassets/{folder_id} | Récupère les éléments contenus dans un dossier. |
| POST | /media/upload/session/{session_id}/createlinks | Génère des liens de téléversement pour téléverser les enregistrements de la session. |
| POST | /media/upload/session/{session_id} | Envoie un signal indiquant que le téléversement de l'enregistrement vers les URL S3 est terminé et que le traitement de la vidéo doit commencer. |
| GET | /media/metadata/{video_id} | Récupère toutes les entrées de métadonnées associées au video_id transmis. |
| POST | /media/metadata/{video_id} | Insère les entrées de métadonnées dans le video_id transmis. |
| DELETE | /media/metadata/{video_id} | Supprime les entrées de métadonnées associées au video_id transmis et aux noms transmis dans les paramètres de corps. |
| GET | /media/searchVideo | Récupère toutes les vidéos correspondant aux critères de recherche transmis dans les paramètres de corps. |
| GET | /media/searchVideoWithQueryString | Récupère toutes les vidéos correspondant aux critères de recherche transmis dans les paramètres de requête. |
| Gestionnaires permettant à la fenêtre parente de contrôler le lecteur multimédia. | ||
| GET | /media/videos/{videoPId}/streams/hls | Renvoie les flux hls ainsi que d'autres informations importantes concernant la vidéo. |
| GET | /media/videos/{videoPId}/streams/thumbnail | Renvoie les URL des vignettes ainsi que d'autres informations importantes concernant la vidéo. |
| POST | /media/document_link/{video_id}/{mediaFilePID} | Joint un fichier média à la vidéo |
| DELETE | /media/document_link/{video_id}/{mediaFilePID} | Supprime un fichier média de la vidéo |
| POST | /media/videos/{video_id}/indexes | Insère du texte dans des fichiers de sous-titres ou de transcription |
| DELETE | /media/videos/{video_id}/{index} | Supprime du texte de fichiers de sous-titres ou de transcription |
| Get | /media/folder/{folderId} | Obtient des renseignements sur les dossiers dans Lumina. |
| POST | /media/videos/{video_id}/captions/{language}/text/{line}/{position} | Insère du texte dans les fichiers de sous-titres. |
| DELETE | /media/videos/{video_id}/captions/{language}/text/{line}/{start}/{end} |
Supprime du texte d'un fichier de sous-titres. |
| POST | /media/videos/{video_id}/captions/{language} |
Insère une ligne de sous-titres. |
| DELETE | /media/videos/{video_id}/captions/{language}/{line} |
Supprime une ligne de sous-titres. |
| POST | /media/videos/{video_id}/captions/{language}/generatetranscript |
Génère une transcription à partir des sous-titres de la vidéo. |
| POST | /services/media/publishToInstitutionChannel/video |
Publie une vidéo dans EnterpriseTube ou CampusTube. |
| POST | /services/media/publishToInstitutionChannel/video |
Publie une vidéo dans EnterpriseTube ou CampusTube. |
| POST | /services/media/unpublishMedia |
Retire une vidéo d'EnterpriseTube ou de CampusTube. |
| GET | /services/media/allFolders/ETubeAndILib | Récupère tous les dossiers d'EnterpriseTube et de CampusTube. |
| GET | services/media/retrievefolderassets/{folderID} |
Récupère tous les éléments d'un dossier. |
| POST | services/media/RSS |
Obtient les informations d'un dossier, y compris les vidéos qu'il contient et l'accès aux liens des vidéos. |
| GET | services/media/video/{video_id} |
Récupère les détails d'une vidéo qui a été modifiée puis remplacée, à partir de son video_id d'origine. |
| POST | /services/media/createFolderInEnterpriseTubeLibrary |
Crée un sous-dossier dans le dossier Bibliothèque d'EnterpriseTube. |
| POST | /services/media/createFolderInSharedFolder |
Crée un dossier ou un sous-dossier dans Dossier partagé/Bibliothèque interne. |
| POST | /services/media/captionFileUploadLink |
Fournit une URL pour téléverser un fichier de sous-titres ou de transcription sur le serveur, ainsi qu'une clé pour cette URL. |
| PUT | L'URL est obtenue à partir de l'API suivante : POST /services/media/captionFileUploadLink |
Téléverse un fichier de sous-titres ou de transcription sur le serveur. |
| POST | services/media/captionFileToVideo |
Téléverse un fichier de sous-titres ou de transcription pour une vidéo. |
| GET | /services/metadata/oai-pmh?verb=GetRecord&identifier=video/mediaPID |
Renvoie les métadonnées ajoutées par l'utilisateur dans Lumina. |
| GET | /services/metadata/oai-pmh?verb=ListRecords |
Renvoie tous les fichiers avec métadonnées pour lesquels l'option « Permettre à ce média d'être recherché par API » est sélectionnée dans les Détails sur les médias. Au besoin, une plage de dates peut aussi être appliquée. Remarque : Seuls les 100 premiers fichiers seront renvoyés. Pour accéder à 100 fichiers supplémentaires, l'API devra être exécutée de nouveau avec le jeton de reprise fourni dans la réponse. |
| GET | /services/metadata/oai-pmh?verb=ListIdentifiers |
Renvoie tous les fichiers dont les PID de vidéo ou de média ne contiennent aucune métadonnée. Au besoin, une plage de dates peut aussi être appliquée. Remarque : Seuls les 100 premiers fichiers seront renvoyés. Pour accéder à 100 fichiers supplémentaires, l'API devra être exécutée de nouveau avec le jeton de reprise fourni dans la réponse. |
| GET | /services/metadata/oai-pmh?verb=Identify |
Renvoie les détails de cette API précise, comme le nom du dépôt, le courriel de contact et d'autres informations pertinentes. |
| GET | /services/metadata/oai-pmh?verb=ListMetadataFormats |
Renvoie la documentation sur l'implémentation Dublin Core utilisée pour le formatage des métadonnées des API 5.2.47 à 5.2.49. |
| GET | /services/media/video/{video_id}/captions |
Télécharge le fichier de sous-titres de la vidéo. |
5.2.1 - GET /services/createuploadlink
Renvoie un objet JSON contenant le lien de téléversement et le file_key. Pour téléverser la vidéo vers S3, effectuez une requête HTTP PUT en utilisant le lien de téléversement renvoyé comme cible et joignez le fichier vidéo.
Exemple d'URL : https://api-testing.yuja.com/services/media/createuploadlink
Paramètres :
Aucun paramètre n'est nécessaire pour cet appel.
Exemple de réponse :
[
{
"url": "<upload_link>",
"key": "<key>"
}
]
5.2.2 - POST /services/upload/video/
Téléverse une vidéo dans la bibliothèque multimédia de l'utilisateur dont le login_id correspond à celui du paramètre de corps.
Exemple d'URL : https://api-testing.yuja.com/services/media/upload/video/
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| login_id | Paramètre de corps | string | Obligatoire. |
| title | Paramètre de corps | string | Obligatoire. |
| file_key | Paramètre de corps | string | Obligatoire; la valeur doit correspondre au champ « key » du champ de réponse de l'appel GET /createuploadlink. |
| description | Paramètre de corps | string | Facultatif. |
5.2.3 - POST /services/publish/video/
Publie une vidéo appartenant à l'utilisateur ayant le login_id donné dans un groupe dont le group_id correspond à celui du paramètre de corps.
Exemple d'URL : https://api-testing.yuja.com/services/media/publish/video
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| login_id | Paramètre de corps | string | Obligatoire. |
| class_id | Paramètre de corps | string | Obligatoire. |
| video_id | Paramètre de corps | string | Obligatoire. |
5.2.4 - GET /services/video/group/{group_id}
Renvoie un objet JSON contenant les détails de la vidéo de la classe.
Exemple d'URL : https://api-testing.yuja.com/services/media/video/group/121
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | Paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
Exemple de réponse :
{
"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}
Renvoie un objet JSON contenant le lien direct et le code d'intégration d'une vidéo.
Exemple d'URL : https://api-testing.yuja.com/services/media/video/directlink/67890
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| video_id | Paramètre de chemin | string | La valeur doit correspondre au champ video_id de l'appel GET /video/group/{group_id}. |
Exemple de réponse :
{
"directlink": "<Direct link to the video>",
"embedcode": "<The embedded code for the video>"
}
5.2.6 - POST /services/replace/video/
Remplace une vidéo appartenant à l'utilisateur ayant le login_id donné par une autre vidéo.
Exemple d'URL : https://api-testing.yuja.com/services/media/replace/video
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| login_id | Paramètre de corps | string | Obligatoire. |
| old_video_id | Paramètre de corps | string | Obligatoire. |
| new_video_id | Paramètre de corps | string | Obligatoire. |
5.2.7 - GET /services/retrievebranding
Renvoie un objet JSON contenant les détails de personnalisation du lecteur multimédia de l'organisation.
Exemple d'URL : https://api-testing.yuja.com/services/media/retrievebranding
Paramètres :
Aucun paramètre n'est requis pour cet appel.
Exemple de réponse :
{
"button_color": "#ffffff",
"setting_menu_color": "#011100",
"sidebar_color": "#ABCDEF",
"setting_text_color": "#ffffff"
}
5.2.8 - PUT /services/updatebranding/
Met à jour les détails de personnalisation du lecteur multimédia de l'organisation.
Exemple d'URL : https://api-testing.yuja.com/services/media/updatebranding
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| button_color | Paramètre de corps | string | Facultatif |
| setting_menu_color | Paramètre de corps | string | Facultatif |
| sidebar_color | Paramètre de corps | string | Facultatif |
| setting_text_color | Paramètre de corps | string | Facultatif |
5.2.9 - GET /services/retrieveuserassets/{login_id}
Renvoie un objet JSON contenant les détails de la vidéo de la classe.
Exemple d'URL : https://api-testing.yuja.com/services/media/retrieveuserassets/marythompson
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| login_id | Paramètre de corps | string | Obligatoire. |
Exemple de réponse :
{
{
"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
Génère des liens de téléversement pour téléverser les enregistrements de la session.
Exemple d'URL : https://api-testing.yuja.com/services/media/upload/session/619/createlinks
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| session_id | Paramètre de chemin | integer | Obligatoire | L'ID de la session à associer à l'enregistrement. Il détermine le titre, la description et l'emplacement de sauvegarde de l'enregistrement dans Lumina, ainsi que son propriétaire. |
| video_sources | Paramètre de corps | JSON Array | Obligatoire | Voir le tableau des champs video_sources. |
| pause_timestamps | Paramètre de corps | JSON Array | Obligatoire | Voir le tableau des champs pause_timestamps. |
Champs de video_sources :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| stream_id | Paramètre de corps | string | Obligatoire | Un identifiant pour le flux. |
| stream_type | Paramètre de corps | string enum | Facultatif | Valeurs possibles : videoCapture, audioCapture, screenCapture. |
Champs de pause_timestamps :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| pause_timestamp | Paramètre de corps | long | Obligatoire | Un horodatage correspondant au moment où la session a été mise en pause, en millisecondes. |
| resume_timestamp | Paramètre de corps | long | Obligatoire | Un horodatage correspondant au moment où la session a été reprise, en millisecondes. |
Exemple de requête :
{
"video_sources": [{
"stream_type": "videoCapture",
"stream_id": "Gv9U5qvNpR"
},{
"stream_type": "screenCapture",
"stream_id": "vKYrIkpqp2",
}],
"pause_timestamps": [{
"pause_timestamp": 5000,
"resume_timestamp": 10000
}]
}
Exemple de réponse :
{
upload_urls : [
{
stream_id : string,
url : string
}, {...}]
}
5.2.11 - POST /services/media/upload/session/{session_id}
Signale que le téléversement de l'enregistrement vers les URL S3 est terminé et que le traitement de la vidéo doit commencer.
Exemple d'URL : https://api-testing.yuja.com/services/media/upload/session/1234
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| session_id | Paramètre de chemin | integer | Obligatoire | L'ID de la session à associer à l'enregistrement. |
Exemple de réponse :
{
“success”: true
}
5.2.12 - GET /services/media/metadata/{video_id}
Récupère toutes les entrées de métadonnées associées au video_id transmis.
Exemple d'URL : https://api-testing.yuja.com/services/media/metadata/187195
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| video_id | Paramètre de chemin | integer | Obligatoire | Description |
Exemple de réponse :
[
{
"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}
Insère toutes les entrées de métadonnées associées au video_id transmis.
Exemple d'URL : https://api-testing.yuja.com/services/media/metadata/187195
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| video_id | Paramètre de chemin | integer | Obligatoire | L'ID de la vidéo pour laquelle les métadonnées sont requises |
| newMetadata | Paramètre de corps | JSON Array | Obligatoire | Voir le tableau des champs newMetadata |
Champs de newMetadata :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| Name | Paramètre de corps | String | Obligatoire | Nom de la balise de métadonnées |
| Type | Paramètre de corps | string | Obligatoire | Valeurs possibles : String, Date |
| Value | Paramètre de corps | string | Obligatoire | Valeur associée au nom de la métadonnée. Format de date : dd/mm/yyyy |
Exemple de paramètres de corps :
{
newMetadata : [
{
"Name": "PhyExam",
"Type": "String",
"Value": "Easy"
},
{
"Name": "ChemExam",
"Type": "Date",
"Value": "05/05/2021"
}
]
}
Exemple de réponse :
"Successfully Inserted 1 record/s in to the database !!!"
5.2.14 - DELETE /services/media/metadata/{video_id}
Supprime toutes les entrées de métadonnées associées au video_id transmis et à la liste de noms de métadonnées transmise.
Exemple d'URL : https://api-testing.yuja.com/services/media/metadata/187195
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| video_id | Paramètre de chemin | integer | Obligatoire | L'ID de la vidéo pour laquelle les métadonnées sont requises. |
| Paramètre de corps | List | Obligatoire | Liste des noms de balises de métadonnées. |
Exemple de paramètres de corps :
[
"PhyExam",
"ChemExam"
]
Exemple de réponse :
"Successfully Deleted 2 record/s form the database !!!"
5.2.15 - GET /services/media/searchVideo
Récupère toutes les vidéos correspondant aux critères de recherche transmis dans le paramètre de corps.
Exemple d'URL : https://api-testing.com/services/media/searchVideo
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| searchingString | Paramètre de corps | String | Obligatoire | Chaîne que vous souhaitez rechercher pour trouver la vidéo |
| searchAs | Paramètre de corps | String | Facultatif | ID de l'utilisateur sous lequel toutes les vidéos seront recherchées. La valeur par défaut sera le gestionnaire TI de cet établissement |
| searchInMediaContent | Paramètre de corps | String | Facultatif | Valeurs possibles : « true », « false ». Cela recherchera la chaîne transmise dans les sous-titres, les balises, etc. |
| ownerId | Paramètre de corps | String | Facultatif | ID de l'utilisateur propriétaire de la vidéo. |
| createdBefore | Paramètre de corps | String | Facultatif | Date (yyyy-mm-dd) avant laquelle la vidéo a été créée |
| createdAfter | Paramètre de corps | String | Facultatif | Date (yyyy-mm-dd) après laquelle la vidéo a été créée |
| tag | Paramètre de corps | String | Facultatif | Balise (le cas échéant) associée à cette vidéo |
| metadata | Paramètre de corps | String | Facultatif | Nom de métadonnée associé à cette vidéo |
Exemple de paramètres de corps :
{
"searchString": "Polish",
"searchAs": "John_ITManager",
"searchInMediaContent": "false",
"ownerId": "",
"createdBefore": "",
"createdAfter": "",
"tag":"",
"metadata": ""
}
Exemple de réponse :
[
{
"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
Récupère toutes les vidéos correspondant aux critères de recherche transmis dans les paramètres de requête.
Exemple d'URL : https://api-testing.com/services/media/searchVideoWithQueryString?searchString=Polish&searchAs=John_ITManager
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| searchString | Paramètre de chemin | String | Obligatoire | Chaîne que vous souhaitez rechercher pour trouver la vidéo |
| searchAs | Paramètre de chemin | String | Facultatif | ID de l'utilisateur sous lequel toutes les vidéos seront recherchées. La valeur par défaut sera le gestionnaire TI de l'établissement |
Exemple de réponse :
[
{
"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 - Gestionnaires exposés
Nous écouterons l'événement postMessage qui transmettra un paramètre JSON.
Paramètres de l'événement :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| name | Paramètre JSON | String | Facultatif |
Valeurs possibles :
|
| value | Paramètre JSON | Number | Obligatoire |
Obligatoire dans le cas de AdjustVolume et de SeekTo
|
Exemple de paramètre 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
Récupère tous les dossiers auxquels un utilisateur a accès dans YuJa pour le user_id transmis.
Exemple d'URL : https://api-testing.com/services/media/folders/john_manager
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| user_id | Paramètre de chemin | String | Obligatoire | ID de l'utilisateur pour lequel les dossiers seront récupérés. |
Exemple de réponse :
[
{
"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
Récupère toutes les vidéos auxquelles un utilisateur a accès dans YuJa pour le user_id transmis.
Exemple d'URL : https://api-testing.com/services/media/videos/user/john_manager
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| user_id | Paramètre de chemin | String | Obligatoire | ID de l'utilisateur pour lequel les dossiers seront récupérés. |
Exemple de réponse :
[
{
"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
Récupère les vidéos d'un dossier donné auxquelles un utilisateur a accès dans YuJa.
Exemple d'URL : https://api-testing.com/services/media/videos/john_manager/9385800
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| user_id | Paramètre de chemin | String | Obligatoire | ID de l'utilisateur pour lequel les vidéos seront récupérées. |
| folder_id | Paramètre de chemin | String | Obligatoire | ID du dossier dans lequel toutes les vidéos seront récupérées. |
Exemple de réponse :
{
"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
Récupère toutes les vidéos correspondant aux critères de recherche transmis dans les paramètres de requête.
Exemple d'URL : https://api-testing.com/services/media/videos/video_id
Paramètres :
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| video_id | Paramètre de chemin | Integer | Obligatoire | ID de la vidéo à récupérer. |
Exemple de réponse :
[
{
"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
Renvoie les flux hls ainsi que d'autres informations importantes concernant la vidéo.
Paramètres :
| Nom | Type de paramètre | Type | Description |
| videoPId | Paramètre de chemin | Integer | Un ID de vidéo valide |
Exemple de réponse :
{
"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
Renvoie les URL des vignettes ainsi que d'autres informations importantes concernant la vidéo.
Paramètres :
| Nom | Type de paramètre | Type | Description |
| videoPId | Paramètre de chemin | Integer | Un ID de vidéo valide. |
Exemple de réponse :
{
"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
Répond avec une clé unique et une URL qui serviront à téléverser la vidéo.
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| Streams | Paramètre de requête | Integer | Un nombre de flux compris entre 1 et 3, qui indique le nombre d'URL qui seront renvoyées. |
Exemple de réponse :
[
{
"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
Ingère des vidéos multiflux dans la collection par défaut de l'utilisateur.
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| Login_id | Paramètre de corps | String | ID de connexion de l'utilisateur. |
| Title | Paramètre de corps | String | Titre de la vidéo. |
| Description | Paramètre de corps | String | Description de la vidéo. |
| File_keys | Paramètre de corps | String Array | Clés uniques renvoyées par l'API GET - /media/createuploadlink/multiple |
Exemple de requête :
{
"login_id": "john_doe",
"title": "Multi Stream Ingestion",
"description": "",
"file_keys":[
"379e3235-0538-480d-8bf2-14f74b328",
"7b31d4b8-c8c2-468b-87e2-2f4505258f"
]
}
Exemple de réponse :
{
"success": true,
"message": "Uplaoded Successfully, video will be available soon!"
}
5.2.26 - POST /services/media/document_link/{video_id}/{media_file_id}
Joint un fichier média à une source vidéo.
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| video_id | Paramètre de chemin | Integer | Un ID de vidéo valide. |
| media_file_id | Paramètre de chemin | Integer | Un ID de fichier média valide. |
Exemple de réponse :
{
"success": true
}
5.2.27 - DELETE /services/media/document_link/{video_id}/{media_file_id}
Retire un fichier média d'une source vidéo.
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| video_id | Paramètre de chemin | Integer | Un ID de vidéo valide. |
| media_file_id | Paramètre de chemin | Integer | Un ID de fichier média valide. |
Exemple de réponse :
{
"success": true
}
5.2.28 - POST /services/media/videos/{video_id}/indexes
Insère des signets horodatés dans une source vidéo.
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| video_id | Paramètre de chemin | Integer | Un ID de vidéo valide. |
| timestamp | Paramètre de corps | Integer | Un horodatage définit l'endroit où le signet apparaîtra dans la vidéo. |
| label | Paramètre de corps | String | Un titre pour l'horodatage créé. |
| bold | Paramètre de corps | Boolean | Indique si l'étiquette est en gras. |
| indent | Paramètre de corps | Integer | Indique le retrait de l'étiquette. |
Exemple de données JSON :
{
"timestamp": "0:06:10",
"label": "Bookmark 1",
"bold": false,
"indent": 0
}
Exemple de réponse :
{
"success": true
}
5.2.29 - DELETE /services/media/videos/{video_id}/indexes/{index}
Supprime des signets horodatés d'une source vidéo.
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| video_id | Paramètre de chemin | Integer | Un ID de vidéo valide. |
| index | Paramètre de chemin | Integer | Saisissez un index valide à supprimer du fichier de sous-titres. Les index commencent à 0. |
Exemple de réponse :
{
"success": true
}
5.2.30 - GET /services/media/folder/{folder_Id}
Obtient des renseignements sur les dossiers dans Lumina.
Paramètre :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| folder_id | Paramètre de chemin | Integer | Un ID de dossier valide. |
Exemple de réponse :
{
"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}
Insère du texte brut dans le fichier de sous-titres.
Paramètre :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| video_id | Paramètre de chemin | Integer | Un ID de vidéo valide. |
| language | Paramètre de chemin | String | Saisissez la langue du fichier de sous-titres (par exemple, « English ») |
| line | Paramètre de chemin | Integer | Saisissez la position de la ligne dans le fichier de sous-titres. La position de la ligne commence à 0. |
| position | Paramètre de chemin | Integer | Saisissez la position de la lettre dans la ligne sélectionnée du fichier de sous-titres. La position de la lettre commence à 0. |
Exemple de réponse :
{
"success": true
}
5.2.32 - DELETE /services/media/videos/{video_id}/captions/{language}/text/{line}/{start}/{end}
Supprime du texte d'un fichier de sous-titres.
Paramètre :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| video_id | Paramètre de chemin | Integer | Un ID de vidéo valide. |
| language | Paramètre de chemin | String | Saisissez la langue du fichier de sous-titres (par exemple, « English ») |
| line | Paramètre de chemin | Integer | Saisissez la position de la ligne dans le fichier de sous-titres. La position de la ligne commence à 0. |
| start | Paramètre de chemin | Integer | Saisissez la position du caractère de départ dans la ligne sélectionnée du fichier de sous-titres. La position du caractère commence à 0. |
| End | Paramètre de chemin | Integer | Saisissez la position du caractère de fin dans la ligne sélectionnée du fichier de sous-titres. La position du caractère commence à 0. |
Exemple de réponse :
{
"success": true
}
5.2.33 - POST /services/media/videos/{video_id}/captions/{language}
Insère une ligne de sous-titres.
Paramètre :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| video_id | Paramètre de chemin | Integer | Un ID de vidéo valide. |
| language | Paramètre de chemin | String | Saisissez la langue du fichier de sous-titres (par exemple, « English »). |
| start_time | Paramètre de corps | Integer | Saisissez l'heure de début de la ligne de sous-titres. |
| stop_time | Paramètre de corps | Integer | Saisissez l'heure de fin de la ligne de sous-titres. |
| text | Paramètre de corps | String | Saisissez le texte de la ligne de sous-titres. |
Exemple de données JSON :
{
"start_time": "00:00:10",
"stop_time": "00:00:15",
"text": "text"
}
Exemple de réponse :
{
"success": true
}
5.2.34 - DELETE /services/media/videos/{video_id}/captions/{language}/{line}
Supprime une ligne de sous-titres.
Paramètre :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| video_id | Paramètre de chemin | Integer | Un ID de vidéo valide. |
| language | Paramètre de chemin | String | Saisissez la langue du fichier de sous-titres (par exemple, « English »). |
| line | Paramètre de chemin | Integer | Saisissez la position de la ligne dans le fichier de sous-titres. La position de la ligne commence à 0. |
Exemple de réponse :
{
"success": true
}
5.2.35 - POST /services/media/videos/{video_id}/captions/{language}/generatetranscript
Génère une transcription à partir des sous-titres de la vidéo.
Paramètre :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| video_id | Paramètre de chemin | Integer | Un ID de vidéo valide. |
| language | Paramètre de chemin | String | Saisissez la langue du fichier de sous-titres (par exemple, « English »). |
Exemple de réponse :
{
"success": true
}
5.2.36 - POST /services/media/publishToInstitutionChannel/video
Publie une vidéo dans EnterpriseTube ou CampusTube.
Exemple d'URL : https://api-testing.yuja.com/services/media/publishToInstitutionChannel/video
Paramètres :
Aucun paramètre n'est nécessaire pour cet appel.
Exemple de données JSON :
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"login_id":"aswin_syras",
"folder_id":"9913954",
"videonode_id":"9964550"
}
Exemple de réponse :
Published video : success.
5.2.37 - POST /services/media/unpublishMedia
Retire une vidéo d'EnterpriseTube ou de CampusTube.
Exemple d'URL : https://api-testing.yuja.com/services/media/unpublishMedia
Paramètres :
Aucun paramètre n'est nécessaire pour cet appel.
Exemple de données JSON :
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"login_id":"michael_lee",
"videonode_id":"9964550"
}
Exemple de réponse :
Unpublished video : success.
5.2.38 - GET /services/media/allFolders/ETubeAndILib?{pageNumber}&{pageSize}
Récupère les dossiers d'EnterpriseTube et de CampusTube.
Exemple d'URL : https://api-testing.yuja.com/services/media/allFolders/ETubeAndILib?pageNumber=4&pageSize=20
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| pageNumber | Paramètre de chemin | Integer | Le numéro de page des dossiers paginés à récupérer depuis le serveur. |
| pageSize | Paramètre de chemin | Integer | Le nombre de dossiers à obtenir à partir du paramètre pageNumber précisé. |
Exemple de réponse :
[{"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}
Récupère tous les éléments d'un dossier.
Exemple d'URL : https://api-testing.yuja.com/services/media/retrievefolderassets/9995943
Paramètre :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| folderID | Paramètre de chemin | Integer | Un ID de dossier valide. |
Exemple de réponse :
[{"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
Obtient les informations d'un dossier, y compris les vidéos qu'il contient et l'accès aux liens des vidéos.
Exemple d'URL : https://api-testing.yuja.com/services/media/RSS
Paramètres :
Aucun paramètre n'est nécessaire pour cet appel.
Exemple de données JSON :
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"folderID":"9913952",
"directStreamEnabled" : "true" OR "false"
}
Exemple de réponse :
https://api-testing.yuja.com/P/RSSFeeds/2/992532
5.2.41 - GET /services/media/video/{video_id}
Récupère les détails d'une vidéo à partir de son video_id, ou d'une vidéo qui a été modifiée puis remplacée, en saisissant son video_id d'origine.
Exemple d'URL : https://api-testing.yuja.com/services/media/video/313415
Paramètre :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| video_id | Paramètre de chemin | Integer | Un ID de vidéo valide correspondant à la vidéo d'origine avant qu'elle soit modifiée et remplacée. |
Exemple de réponse :
{"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
Crée un sous-dossier dans le dossier Bibliothèque d'EnterpriseTube.
Exemple d'URL : https://api-testing.yuja.com/services/media/createFolderInEnterpriseTubeLibrary
Paramètres :
Aucun paramètre n'est requis.
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"loginId":"brianstev",
"title":"Campus Life",
"nodePID":"10177148"
}
Exemple de réponse :
Folder created successfully
5.2.43 - POST /services/media/createFolderInSharedFolder
Crée un dossier ou un sous-dossier dans Dossier partagé/Bibliothèque interne.
Exemple d'URL : https://api-testing.yuja.com/services/media/createFolderInSharedFolder
Paramètres :
Aucun paramètre n'est requis.
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps :
{
"loginId":"brianstev",
"title":"Intro to Anthropology",
"nodePID":"10172048"
}
Exemple de réponse :
Folder created successfully
5.2.44 - POST /services/media/captionFileUploadLink
Fournit une URL qui peut servir à téléverser un fichier de sous-titres ou de transcription sur le serveur. L'API qui utilisera cette URL se trouve à la section 5.2.45. Une clé est également fournie; elle est utilisée dans le paramètre de corps JSON de l'API décrite à la section 5.2.46.
Exemple d'URL : https://api-testing.yuja.com/services/media/captionFIleUploadLink
Paramètres :
Aucun paramètre n'est requis.
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps pour les sous-titres :
{
"videoPID": "672982",
"extension": "srt/vtt",
"type": "caption",
"language": "language of the caption file"
}
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps pour les transcriptions et les PDF :
{
"videoPID": "491182",
"type": "txt/pdf"
}
Exemple de réponse :
{
"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>
Téléverse un fichier de sous-titres sur le serveur, qui peut ensuite être ajouté à une vidéo à l'aide de l'API de la section 5.2.46
Exemple d'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%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
Paramètres :
Aucun paramètre n'est requis.
Ce point de terminaison attend des données binaires transmises par le téléversement de votre fichier de sous-titres ou de transcription.
Exemple de réponse :
200 OK
5.2.46 - POST /services/media/captionFileToVideo
Téléverse un fichier de sous-titres ou de transcription pour une vidéo sélectionnée.
Exemple d'URL : https://api-testing.yuja.com/services/media/captionFileToVideo
Paramètres :
Aucun paramètre n'est requis.
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps pour les sous-titres :
{
"login_id": "749371",
"videoPID": "74492",
"file_key": "294229_english.srt",
"type": "caption"
}
Exemple de réponse :
File uploaded successfully
Ce point de terminaison attend des données JSON de ce format dans le paramètre de corps pour les transcriptions :
{
"videoPID": "74492",
"type": "txt/pdf"
}
Exemple de réponse :
File uploaded successfully
5.2.47 - GET /services/metadata/oai-pmh?verb=GetRecord&identifier={videoPID}&metadataPrefix=<lom_ims or oai_dc>
Renvoie les métadonnées ajoutées par l'utilisateur dans Lumina. Remarque : L'API ne repérera que les médias dont la recherche par API est autorisée. Pour savoir comment activer la recherche par API pour vos médias, veuillez consulter notre guide Comment permettre la recherche de médias par API.
Exemple d'URL : https://api-testing.yuja.com/services/metadata/oai-pmh?verb=GetRecord&identifier=4827
Paramètre :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| videoPID | Paramètre de chemin | Integer | Un ID de vidéo valide. |
Exemple de réponse :
<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>
Renvoie tous les fichiers avec métadonnées pour lesquels l'option « Permettre à ce média d'être recherché par API » est sélectionnée dans les Détails sur les médias. Au besoin, une plage de dates peut aussi être appliquée. Remarque : Seuls les 100 premiers fichiers seront renvoyés. Pour accéder à 100 fichiers supplémentaires, l'API devra être exécutée de nouveau avec le jeton de reprise fourni dans la réponse.
Exemple d'URL : https://api-testing.yuja.com/services/metadata/oai-pmh?verb=ListRecords
Exemple d'URL avec plage de dates : https://api-testing.yuja.com/services/metadata/oai-pmh?verb=ListRecords&from=2023-01-01&until=2024-03-01
Exemple d'URL avec jeton de reprise : https://api-testing.yuja.com/services/metadata/oai-pmh?&verb=ListRecords&resumptionToken=eyJhbGciOiJub25lIn0.eyJsaW1pdCI6MTAwLCJtZXRob2RQcmVmaXgiOiIiLCJ0aW1lc3RhbXAiOjE3MDk1NzIyNzQTB9.
Paramètres :
Aucun paramètre n'est nécessaire pour cet appel.
Exemple de réponse :
<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
Renvoie tous les fichiers dont les PID de vidéo ou de média ne contiennent aucune métadonnée, dans une plage de dates facultative qui peut être incluse. Seuls les 100 premiers fichiers seront renvoyés. Pour accéder à 100 fichiers supplémentaires, l'API devra être exécutée de nouveau avec le jeton de reprise fourni dans la réponse. Remarque : L'API ne repérera que les médias dont la recherche par API est autorisée. Pour savoir comment activer la recherche par API pour vos médias, veuillez consulter notre guide Comment permettre la recherche de médias par API.
Exemple d'URL : https://api-testing.yuja.com/services/metadata/oai-pmh?verb=ListIdentifiers
Exemple d'URL avec plage de dates : https://api-testing.yuja.com/services/metadata/oai-pmh?verb=ListIdentifiers&from=2023-01-01&until=2024-03-01
Exemple d'URL avec jeton de reprise : https://api-testing.yuja.com/services/metadata/oai-pmh?&verb=ListIdentifiers&resumptionToken=eyJhbGciOiJub25lIn0.eyJsaW1pdCI6MTAwLCJtZXRob2RQcmVmaXgiOiIiLCJ0aW1lc3RhbXAiOjE3MDk1NzIyNzQTB9. (Remarque : Une plage de dates ne peut pas être appliquée lors de l'utilisation du jeton de reprise.)
Paramètres :
Aucun paramètre n'est nécessaire pour cet appel.
Exemple de réponse :
<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
Renvoie les détails de cette API précise, comme le nom du dépôt, le courriel de contact et d'autres informations pertinentes.
Exemple d'URL : https://api-testing.yuja.com/services/metadata/oai-pmh?verb=Identify
Paramètres :
Aucun paramètre n'est nécessaire pour cet appel.
Exemple de réponse :
<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
Renvoie la documentation sur l'implémentation Dublin Core utilisée pour le formatage des métadonnées des API 5.2.47 à 5.2.49.
Exemple d'URL : https://api-hudson.yuja.com/services/metadata/oai-pmh?verb=Identify
Paramètres :
Aucun paramètre n'est nécessaire pour cet appel.
Exemple de réponse :
<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
Télécharge le fichier de sous-titres de la vidéo.
Exemple d'URL : https://api-hudson.yuja.com/services/media/video/146852/captions
Paramètres :
Aucun paramètre n'est nécessaire pour cet appel.
Exemple de réponse :
"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"
6 - Présentation de l'API d'analyse
Les médias représentent tous les éléments de l'établissement. Cela comprend les fichiers audio, les fichiers vidéo et d'autres documents.
6.1 - Modèle d'objet d'analyse
| Variable | Type | Description |
|---|---|---|
| group_id | string | Un ID de classe unique généré par le système. |
6.2 - Principaux points de terminaison
| Méthode | Chemin | Description |
|---|---|---|
| GET | /analytics/report/bandwidth/{group_id} | Récupère le rapport de bande passante du groupe. |
| GET | /analytics/report/storage/{group_id} | Récupère le rapport de stockage du groupe. |
| GET | /analytics/report/videoview/{group_id} | Récupère le rapport de visionnements de vidéos du groupe. |
| GET | /analytics/report/visitors | Récupère le rapport de visites de l'établissement. |
6.2.1 - GET /analytics/report/bandwidth/{group_id}
Renvoie un fichier contenant les détails d'utilisation de la bande passante d'un groupe.
Exemple d'URL : https://api-testing.yuja.com/services/analytics/report/bandwidth/1365
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | Paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
6.2.2 - GET /analytics/report/storage/{group_id}
Renvoie un fichier contenant les détails d'utilisation du stockage d'un groupe.
Exemple d'URL : https://api-testing.yuja.com/services/analytics/report/storage/1365
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | Paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
6.2.3 - GET /analytics/report/videoview/{group_id}
Renvoie un fichier contenant les détails des visionnements de vidéos d'un groupe.
Exemple d'URL : https://api-testing.yuja.com/services/analytics/report/videoview/1365
Paramètres :
| Nom | Type de paramètre | Type | Description |
|---|---|---|---|
| group_id | Paramètre de chemin | string | La valeur doit correspondre au champ group_id de l'appel GET /groups. |
6.2.4 - GET /analytics/report/visitors
Renvoie un fichier contenant les détails des visiteurs de l'établissement.
Exemple d'URL : https://api-testing.yuja.com/services/analytics/report/visitors
Paramètres :
Aucun paramètre n'est requis pour cet appel.
7 - Présentation de l'API du journal d'audit
AuditLog représente tous les journaux disponibles selon la plage de dates et le type.
7.1 - Modèle d'objet du journal d'audit
| Variable | Type Type | Description |
|---|---|---|
| creationTimestamp | Timestamp | Horodatage du moment où l'événement s'est produit. Remarque : L'horodatage correspond au fuseau horaire de l'établissement. |
| eventName | string | Nom de l'événement |
| details | string | Détails propres à cet événement |
7.2 - Principaux points de terminaison
| Méthode | Chemin | Description |
|---|---|---|
| GET | /auditLog/entries | Récupère les journaux de toutes les entrées précisées dans le type d'événement pour la plage de dates. |
7.2.1 - GET /auditLog/entries
Renvoie une liste d'objets JSON, où chaque objet est un journal.
Exemple d'URL : https://staging-demo.yuja.com/services/auditLog/entries?startTime=01/12/2024&endTime=02/01/2025&eventType=New Log In
Paramètres
| Nom | Type de paramètre | Type | Facultatif | Description |
|---|---|---|---|---|
| startTime | Paramètre de requête | Date | Facultatif | La valeur doit être au format dd/mm/yyyy |
| endTime | Paramètre de requête | Date | Facultatif | La valeur doit être au format dd/mm/yyyy |
| eventType | Paramètre de requête | String | Obligatoire | La valeur doit correspondre exactement à son affichage (majuscules et espaces) dans le Panneau d'admin de Lumina > Notifications > Notifications récentes > colonne Activité. |
| offset | Paramètre de requête | int | Facultatif |
Ignore le nombre de journaux précisé. La valeur doit être un entier valide. Exemple : La saisie de la valeur 25 renverra une liste JSON commençant au 26e journal. |
Exemple de réponse :
[
{
"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"
}
]