Authentication
Every API call requires an authentication token as a header. These tokens are generated by IT Managers/Admins and can be revoked. Authentication tokens allow for API access to a specific institution. The token is 32 characters long and can be retrieved from Admin Panel -> API.
Make sure to also save the API token after generating the token.
Token use: The token must be passed in as a header with the key “authToken” and the value as the token in every API call
API Base URL
The base URL for the current YuJa API is {organization_subdomain}.yuja.com/services/. Organization_subdomain is assigned when the Organization account is provisioned with YuJa. For security reasons, only https access is allowed. For example, if the domain assigned to the organization is tested, then the landing page is api-testing.yuja.com and the API endpoint is api-testing.yuja.com/services.
Request Parameters
There are several ways to pass request parameters to API calls.
- As a component in the URL path. This is referred as a path parameter.
- As a part of the query string. This is referred to as a query string parameter.
- In the body of the request for non GET requests. This is referred to as a body parameter. The content must be encoded in JSON.
- In HTTP custom header. This is referred to as a header parameter.
CRUD Operations
The APIs follow the REST convention in order to realize the CREATE, READ, UPDATE, and DELETE functionalities. The following table describes the common convention used.
Operation | HTTP Method | Notes |
---|---|---|
CREATE | POST | POST is the standard way to create an object. The POST API will return the object id that is associated with the object that was created so it can be used in subsequent API calls. |
READ | GET | GET retrieves information. The result can be a list or single object base on the API called. |
UPDATE | PUT | PUT requires the ID of the object that needs to be updated. All update fields are optional unless specified otherwise. The fields which are set will be updated. |
DELETE | DELETE | DELETE requires the ID of the object that needs to be deleted. The ID and the type of the object must match with each other. |
Rest API Response Codes
200 | OK |
201 | Created |
204 | No Content |
400 | Bad Request |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
500 | Internal Server Error |
1 - User API Overview
Users represent all users registered in the institution. This includes Instructors, Students, and IT Managers. Users can be enrolled in courses, create captures, and request/invite/be invited to meetings. Users can also have a video collection.
1.1 - User Object Model
Variable | Type | Description |
---|---|---|
user_id | string | A unique user_id that is generated by the system. |
email_address | string[255] | Email address of the user, must be unique across all users. |
first_name | string[30] | First name of the user. |
last_name | string[30] | Last name of the user. |
login_id/userName | string[20] | Login ID for the user. |
login_password | string[20] | Login password for the user. |
custom_id | string[20] | Custom ID of the user. |
timezone | string | Timezone of the user. |
user_type | string enum | User type. Can be one of the following: “Student”, “Instructor”, “IT Manager”. |
phone_number | string[20] | Phone number of the user. |
updateDescendants | Boolean | Allows permission for sub-folders. |
groupName | string | The name of the group as it appears on the Video platform. |
linkage | string | The linkage value for the user. This can be obtained from the Video Platform's Admin Panel > Roster and viewing the Linkage column for a user. Select their linkage type in the column and copy the LTI Linkage, LTI3 Linkage, or SAML Linkage value provided. |
To get the user_id of the users, first make API call GET /users (Section 1.2.1). From the response, all the users’ user_id can be collected, which can be used later for other API calls.
1.2 - Main Endpoints
Method | Path | Description |
---|---|---|
GET | /users | Retrieves all of the users belonging to the organization. |
GET | /users/{user_id} | Retrieves single individual user based on user_id. |
POST | /users | Adds a user |
PUT | /users/{user_id} | Updates a single individual user based on user_id. |
DELETE | /users/{user_id} | Deletes a single user based on user_id. |
GET | /users/{user_id}/groups/members | Retrieves all groups that the user has enrolled in. |
GET | /users/{user_id}/groups/content_owners | Retrieves all groups that the user is content owner. |
POST | /users/addUserWithExternalIdentifier | Creates new users, taking into account external identifiers to link users to existing and new accounts based on LMS and SSO logins. |
POST |
/services/media/permission |
Add or modify permissions for folders. |
DELETE |
/services/media/permission |
Deletes permissions for a folder. |
POST |
/services/media/mediaByLinkageValue |
Obtain information on videos contained on the user's account. |
1.2.1 - GET /users
Returns a JSON list of objects, where each object is a user. No parameters are needed for this call.
Example URL: https://api-testing.yuja.com/services/users
Example Response:
[
{
"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"
}
]
1.2.2 - GET /users/{user_id}
Returns a JSON object containing the student info.
Example URL: https://api-testing.yuja.com/services/users/3432
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
user_id | path parameter | string | Value should match user_id field in the GET /users call. |
Example response:
{
"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 /users
Creates a new user within the institution. JSON data can be composed without Optional parameters. See Section 1.1 for the details of the parameters.
Example URL: https://api-testing.yuja.com/services/users
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
email_address | body parameter | string[255] | Required |
first_name | body parameter | string[30] | Required |
last_name | body parameter | string[30] | Required |
login_id | body parameter | string[20] | Required |
login_password | body parameter | string[20] | Required |
custom_id | body parameter | string[20] | Optional |
user_type | body parameter | string enum | Required |
phone_number | body parameter | string[20] | Optional |
This endpoint expects JSON data of this format in the body parameter:
{
"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
}
Example JSON data:
{
"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 /users/{user_id}
Updates a single individual user based on {user_id}. See Section 1.1 for the details of the parameters.
Example URL:https://api-testing.yuja.com/services/users/1000
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
user_id | path parameter | string | Value should match user_id field in the GET /users call. |
email_address | body parameter | string[255] | Set to update email address. |
first_name | body parameter | string[30] | Set to update user’s first name. |
last_name | body parameter | string[30] | Set to update user’s last name. |
login_password | body parameter | string[20] | Set to update user’s login password. |
custom_id | body parameter | string[20] | Set to update user’s custom ID. |
timezone | body parameter | string | Set to update user’s timezone. |
user_type | body parameter | string enum | Set to update user’s type. |
phone_number | body parameter | string[20] | Set to update user’s phone number. |
This endpoint expects JSON data of this format the body parameter:
{
"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
}
All fields are optional. Only the fields that are provided are updated.
1.2.5 - DELETE /users/{user_id}
Removes user of id {user_id} from the institution.
Example URL: https://api-testing.yuja.com/services/users/1000
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
user_id | path parameter | string | Value should match user_id field in the GET /users call. |
1.2.6 - GET /users/{user_id}/groups/members
Retrieves all groups a user has enrolled in.
Example URL: https://api-testing.yuja.com/services/users/3432/groups/members
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
user_id | path parameter | string | Value should match user_id field in the GET /users call. |
Example response:
[
{
"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 /users/{user_id}/groups/content_owners
Retrieves all groups that a user is the content owner of.
Example URL: https://api-testing.yuja.com/services/users/2469/groups/content_owners
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
user_id | path parameter | string | Value should match user_id field in the GET /users call. |
Example response:
[
{
"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 /users/addUserWithExternalIdentifier
Creates new users based on the same parameters of the post services and user endpoints (see Section 1.2.3) with two additional parameters: primary_identifier and secondary_idenifier, this will map the user to existing or future users created via LMS or SSO integration. While primary_identidier and secondary_identifier are optional, one of the two parameters must be present. Please contact YuJa Support if further assistance is needed.
Example URL: https://api-testing.yuja.com/services/users/primary_identifier
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
email_address | body parameter | string[255] | Required |
first_name | body parameter | string[30] | Required |
last_name | body parameter | string[30] | Required |
login_id | body parameter | string[20] | Required |
login_password | body parameter | string[20] | Required |
custom_id | body parameter | string[20] | Optional |
user_type | body parameter | string enum | Required |
phone_number | body parameter | string[20] | Optional |
primary_identifier | body parameter | string[255] | Optional |
secondary_identifier | body parameter | string[255] | Optional |
1.2.9 - POST /services/media/permission
Add or modify permissions for folders in CampusTube or EnterpriseTube.
Example URL: https://api-testing.yuja.com/services/media/permission
Parameters:
No parameters are needed for this call.
Example JSON Data:
This endpoint expects JSON data of this format in the body parameter:
Use the JSON input below when assigning based on Role:
{
"folderID": "9931153",
"type": "Role",
"name": "Student" OR "Instructor",
"updateDescendants": "true" OR "false",
"access": "Full Access" OR "Edit Access'" OR "Edit Caption Access" OR "Read Access"
}
Use the JSON input below when assigning based on User:
{
"folderID": "9931153",
"type": "User",
"updateDescendants": "true" OR "false",
"userName": "username",
"access": "Full Access" OR "Edit Access" OR "Edit Caption Access" OR "Read Access"
}
Use the JSON input below when assigning based on Group:
{
"folderID": "9931153",
"type": "Group",
"updateDescendants": "true" OR "false",
"groupName": "group name",
"access": "Full Access" OR "Edit Access" OR "Edit Caption Access" OR "Read Access"
}
Example response:
Successfuly Modified permission
1.2.10 - DELETE /services/media/permission
Deletes permissions for a folder.
Example URL: https://api-testing.yuja.com/services/media/permission
Parameters:
No parameters are needed for this call.
Example JSON Data:
This endpoint expects JSON data of this format in the body parameter:
Use the JSON input below when assigning based on a Role:
{
"folderID":"9931153",
"type": "Role",
"name": "Student" OR "Instructor"
}
Use the JSON input below when assigning based on User:
{
"folderID": "9931153",
"type": "User",
"userName": "username"
}
Use the JSON input below when assigning based on Group:
{
"folderID": "9931153",
"type": "Group",
"groupName": "group name"
}
Example response:
Success
1.2.11 - POST /services/media/mediaByLinkageValue
Obtain information on videos contained on the user's account.
Example URL: https://api-testing.yuja.com/services/media/mediaByLinkageValue
Parameters:
No parameters are needed for this call.
Example JSON Data:
This endpoint expects JSON data of this format in the body parameter:
{
"linkage": "stu.bct"
}
Example response:
[{"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
Add a user to a shared folder with specified permissions.
Example URL: https://hudson.yuja.com/services/media/modifySharePermissions
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
node_id | Body parameter | string | The node ID of the folder you'd like to share. |
user_id | body parameter | string | The folder owner's ID. |
share_with_user_id | body parameter | string | The ID of the user you'd like to share the folder with. |
access_level | body parameter | string |
The shared user's access level: "Full Access", "Edit Access", "Edit Caption Access", or "Read Only". |
Example JSON Data:
This endpoint expects JSON data of this format in the body parameter:
{
"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"
}
]
}
Example response:
Share list successfully updated.
1.2.13 - DELETE /services/media/modifySharePermissions
Remove a user from a shared folder.
Example URL: https://hudson.yuja.com/services/media/modifySharePermissions
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
node_id | Body parameter | string | The node ID of the folder you'd like to remove a user from. |
user_id | body parameter | string | The folder owner's ID. |
delete_list | body parameter | string | A list of users you'd like to delete separated by commas. |
Example JSON Data:
This endpoint expects JSON data of this format in the body parameter:
{
"node_id":"10352458",
"user_id":"tryan",
"delete_list":[
"alia", "smichael", "rkhan"
]
}
Example response:
Share list successfully updated.
2 - Group API Overview
Groups represent all courses that are available in the organization. Each course has specific course security, which filters the user access to that course. The course can also publish policies that only permit certain types of users to publish to those groups.
Please note: As we work towards distinguishing between Courses and Groups, the existing APIs from sections 2.2.1 to 2.2.13 will continue to function normally for the time being. To transition to the most up-to-date APIs for Courses, we recommend utilizing APIs from sections 2.2.14 to 2.2.23. For APIs specific to Groups, please visit our section below titled 3 - UserGroups API Overview.
2.1 - Group Object Model
Variable | Type | Description |
---|---|---|
group_id | string | A unique group ID that is generated by the system. |
owner_id | string | The ID of the owner that created the group. |
group_name | string[200] | Name of the group. |
group_code | string[25] | Short name for the group. |
group_security | string enum | The security setting for the group. Can be one of the following values, “INVITE_ONLY”, “REQUEST_JOIN”, “SECURITY_RULE”, “FREE_JOIN”. |
group_term | string[30] | The term name for this group. |
publish_type | string enum | Specifies the allow users that can publish to this group. Can be one of the following values, “ALL”, “CURATE”, “ADMIN”. |
is_active | boolean | Specifies whether the group is active or not. |
groupName | string | Desired name for a group. |
groupMemeber | string | The user PID of members that will be added to a group. |
To get the group_id of the groups, first, make API call GET /groups (Section 2.2.1). From the response, all the groups’ group_id can be collected, which can be used later for other API calls.
2.2 - Main Endpoints
Method | Path | Description |
---|---|---|
GET | /groups | Retrieves all the groups belonging to the organization. |
GET | /groups/{group_id} | Retrieves single individual group based on group_id. |
PUT | /groups/{group_id} | Updates a single individual group based on group_id. |
POST | /groups | Create a new group |
DELETE | /groups/{group_id} | Delete a created group |
POST | /groups/{group_id}/members/add/{user_id} | Add user to group as a member enrolled. |
POST | /groups/{group_id}/content_owners/add/{user_id} | Add user to the group as a content owner |
GET | /groups/{group_id}/content_owners | Retrieves all users that have content owner access to the group. |
GET | /groups/{group_id}/members | Retrieves all users that have enrolled to the group. |
DELETE | /groups/{group_id}/members/{user_id} | Removes user member from group. Does nothing if the user is not a member. |
DELETE | /groups/{group_id}/content_owners/{user_id} | Removes content owner from group. Does nothing if the user is not a content owner. |
GET | /groups/groupCode/{group_code} | Returns group details for the given group code (course code). |
post | /services/users/createGroup | Create groups and/or add members to groups. |
GET | /courses/code/{course_code} | Return course details for the given course code |
DELETE | /services/courses/{course_id}/owners/{user_id} | Deletes the owner of a course. |
DELETE | /services/courses/{course_id}/members/{user_id} | Deletes a member from a course. |
GET | /courses/{course_id}/owners | Retrieves the course owners. |
DELETE | /services/courses/{course_id} | Deletes the course. |
PUT | /services/courses/{course_id} | Edits an existing course. |
POST | /services/courses/{course_id}/owners/{user_id} | Adds a course owner. |
POST | /services/courses/{course_id}/members/{user_id} | Adds a member to a course. |
POST | /services/courses | Creates a course. |
GET | /services/courses | Retrieves details for all courses. |
2.2.1 - GET /groups
Returns a JSON list of all groups organized by the first 1000 groups per page. If you would like to return all groups within a single page, please reach out to your Customer Success Manager to change the functionality of this API for your institution. Note: You will not be able to return all groups within a single page after December 31st, 2023.
Example URL: https://api-testing.yuja.com/services/groups?page=2&sortDescending=false
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
page | Path Parameter | Integer | Optional | Specifies the page number. The default value is 0, which will retrieve the first 1000 groups starting on the first page. |
sortDescending | Path Parameter | Boolean | Optional | If the value is true, results will be displayed in descending order of the PID. If the value is false, results will be displayed in ascending order of the PID. If no value is specified, the default value will be true. |
Example response:
[
{
"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 /groups/{group_id}
Returns a JSON object containing the group info.
Example URL: https://api-testing.yuja.com/services/groups/1098
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | path parameter | string | Value should match group_id field in the GET /groups call. |
Example response:
{
"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 /groups/{group_id}
Edit the info of a group of id {group_id}. See Section 2.1 for the details of the parameters.
Example URL: https://api-testing.yuja.com/services/groups/1098
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | path parameter | string | Value should match group_id field in the GET /groups call. |
group_name | body parameter | string[200] | Set to update group’s name. |
group_code | body parameter | string[25] | Set to update group’s short name. |
group_term | body parameter | string[30] | Set to update group’s custom name. |
group_type | body parameter | string enum | Set to update group’s publish type. |
This endpoint expects JSON data of this format the body parameter:
{
"group_name": String group_name,
"group_code": String group_code,
"group_term": String group_security,
"publish_type": String publish_type
}
All fields are optional. Only the fields that are provided are updated.
2.2.4 - POST /groups
Creates a new group. See Section 2.1 for the details of the parameters.
Example URL: https://api-testing.yuja.com/services/groups
Name | Parameter Type | Type | Description |
---|---|---|---|
owner_id | body parameter | integer | Required. |
group_name | body parameter | string[200] | Required. |
group_code | body parameter | string[25] | Required. |
group_term | body parameter | string | Required. |
publish_type | body parameter | string enum | Required. |
This endpoint expects JSON data of this format in the body parameter:
{
"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 /groups/{group_id}
Removes a group/class of id {group_id} from the institution.
Example URL: https://api-testing.yuja.com/services/groups/1098
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | path parameter | string | Value should match group_id field in the GET /groups call. |
2.2.6 - POST /groups/{group_id}/members/add/{user_id}
Adds a user to a group as a member.
Example URL: https://api-testing.yuja.com/services/groups/1098/members/add/1000
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | path parameter | string | Value should match group_id field in the GET /groups call. |
user_id | path parameter | string | Value should match user_id field in the GET /users call. |
2.2.7 - POST /groups/{group_id}/content_owners/add/{user_id}
Adds a user to a group as a content owner.
Example URL: https://api-testing.yuja.com/services/groups/1098/content_owners/add/1000
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | path parameter | string | Value should match group_id field in the GET /groups call. |
user_id | path parameter | string | Value should match user_id field in the GET /users call. |
2.2.8 - GET /groups/{group_id}/content_owners
Returns a JSON list of objects, where each object is a user that is a content owner of the group with id {group_id}.
Example URL: https://api-testing.yuja.com/services/groups/1098/content_owners
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | path parameter | string | Value should match group_id field in the GET /groups call. |
Example response:
[
{
"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 /groups/{group_id}/members
Returns a JSON list of objects, where each object is a user that is a member of the group with id {group_id}.
Example URL: https://api-testing.yuja.com/services/groups/1098/members
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | path parameter | string | Value should match group_id field in the GET /groups call. |
Example response:
[
{
"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 /groups/{group_id}/members/{user_id}
Removes a member of id {user_id} from a group of id {group_id}.
Example URL: https://api-testing.yuja.com/services/groups/1098/members/1000
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | path parameter | string | Value should match group_id field in the GET /groups call. |
user_id | path parameter | string | Value should match user_id field in the GET /users call. |
2.2.11 - DELETE /groups/{group_id}/content_owners/{user_id}
Removes a content owner of id {user_id} from a group of id {group_id}.
Example URL: https://api-testing.yuja.com/services/groups/1098/content_owners/1000
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | path parameter | string | Value should match group_id field in the GET /groups call. |
user_id | path parameter | string | Value should match user_id field in the GET /users call. |
2.2.12 - GET /groups/groupCode/{group_code}
Returns group details for the given group code (course code).
Example URL: https://api-testing.yuja.com/services/groups/groupCode/123
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
group_code | Path Parameter | String | Required | The group code for which group details will be returned. |
Example Response:
[
{
"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
Create groups and/or add members to groups.
Example URL: https://evergreen.yuja.com/services/users/createGroup
Parameters:
No parameters are needed for this call.
Example JSON Data:
This endpoint expects JSON data of this format in the body parameter:
{"groupName": "ChemistryGroup","groupMembers": "374983,342842,418637 (can be left empty)"}
Example Response:
Group created successfully
2.2.14 - GET /services/courses/code/{course_code}
Return course details for the given course code.
Example URL:https://api-testing.yuja.com/services/courses/code/BIO232
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
course_code | Path Parameter | String | Required | The course code for which course details will be returned. |
Example Response:
{"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}
Deletes the owner of a course.
Example URL: https://api-testing.yuja.com/services/courses/152463/owners/782915
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
course_id | path parameter | string | Value should match group_id field in the GET /groups call. |
user_id | path parameter | string | Value should match user_id field in the GET /users call. |
Example Response:
Successfully deleted user from group/class
2.2.16 - DELETE /services/courses/{course_id}/members/{user_id}
Deletes a member belonging to a course.
Example URL: https://api-testing.yuja.com/services/courses/2463/members/782295
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
course_id | path parameter | string | Value should match group_id field in the GET /groups call. |
user_id | path parameter | string | Value should match user_id field in the GET /users call. |
Example Response:
Successfully deleted user from group/class
2.2.17 - GET /services/courses/{course_id}/owners
Retrieves the course owners.
Example URL: https://api-testing.yuja.com/services/courses/2463/owners
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
course_id | path parameter | string | Value should match group_id field in the GET /groups call. |
Example Response:
{
"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}
Deletes the course.
Example URL: https://api-testing.yuja.com/services/courses/2463
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
course_id | path parameter | string | Value should match group_id field in the GET /groups call. |
Example Response:
Successfully deleted course/class
2.2.19 - PUT /services/courses/{course_id}
Edits an existing course.
Example URL: https://api-testing.yuja.com/services/courses/2463
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
course_id | path parameter | string | Value should match group_id field in the GET /groups call. |
This endpoint expects JSON data of this format in the body parameter:
{
"course_name": "newcoursename",
"course_code": "999676",
"course_term": "winter",
"publish_type": "ADMIN"
}
Example Response:
Successfully updated course of id: 2463
2.2.20 - POST /services/courses/{course_id}/owners/{user_id}
Add an owner to an existing course.
Example URL: https://api-testing.yuja.com/services/courses/2463/owners/74927
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
course_id | path parameter | string | Value should match group_id field in the GET /groups call. |
user_id | path parameter | string | Value should match user_id field in the GET /users call. |
Example Response:
Successfully made user a content owner to this course/class
2.2.21 - POST /services/courses/{course_id}/members/{user_id}
Add a member to an existing course.
Example URL: https://api-testing.yuja.com/services/courses/2463/members/74927
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
course_id | path parameter | string | Value should match group_id field in the GET /groups call. |
user_id | path parameter | string | Value should match user_id field in the GET /users call. |
Example Response:
Successfully made user a member to this course/class
2.2.22 - POST /services/courses
Creates a new course.
Example URL: https://api-testing.yuja.com/services/courses
This endpoint expects JSON data of this format in the body parameter:
{
"owner_id": 374971,
"course_name": "newcourse1",
"course_code": "999000",
"course_term": "Summer",
"publish_type": "ADMIN"
}
Example Response:
Successfully created a new course
2.2.23 - GET /services/courses
Retrieves details for all courses.
Example URL: https://api-testing.yuja.com/services/courses
Example Response:
{"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 - UserGroups API Overview
UserGroups represent all Groups that are available in the organization. Each Group has a unique ID and members that can be added or removed.
3.1 - Device Object Model
Variable | Type | Description |
---|---|---|
group_id | string | A unique group ID that is generated by the system. Value should match the Platform Unique ID for the group or the group_id value field in the 3.2.1 GET /services/usergroups/all call. |
groupMembers | string | The user PID of members that will be added to a group. |
groupName | string | Desired name for a group. |
user_id | string | The ID of a user on the Video Platform. Can be obtained from 1.2.1 - GET /users. |
3.2 - Main Endpoints
Method | Path | Description |
---|---|---|
GET | /services/usergroups/all | Retrieves all groups. |
GET | /services/users/{user_id}/userGroups | Retrieves all groups a user belongs to. |
GET | /services/usergroups/name/members | Retrieve all group members belonging to the name of a group. |
GET | /services/usergroups/{group_id}/members | Retrieve all group members belonging to the ID of a group. |
GET | /services/usergroups/{group_id} | Retrieve group information by group ID. |
POST | /services/usergroups/create | Create a new group and add group members. |
PUT | /services/usergroups/{group_id} | Edit the name of a group. |
DELETE | /services/usergroups/{group_id} | Delete a group based on its ID. |
DELETE | /services/usergroups/{group_id}/clear | Delete all group members. |
DELETE | /services/usergroups/{group_id}/members/{user_id} | Delete a specific group member by their ID. |
POST | /services/usergroups/foldersByGroupPID | Retrieves a list of folders the specified group has access to. |
3.2.1 - GET /services/usergroups/all
Retrieves all groups.
Example URL: https://api-testing.yuja.com/services/usergroups/all
Example Response:
{"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
Retrieve all groups a user belongs to.
Example URL: https://api-testing.yuja.com/services/users/3276/userGroups
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
user_id | path parameter | string | Value should match user_id field in 1.2.1 - GET /users |
Example Response:
[
Anthropology, Microbiology, AdminGroup
]
3.2.3 - GET /services/usergroups/name/members
Retrieve all group members belonging to the name of a group.
Example URL: https://api-testing.yuja.com/services/usergroups/name/members
This endpoint expects JSON data of this format in the body parameter:
{
"groupName":"anthropology"
}
Example Response:
[
275749, 352461, 355740, 362283, 380225, 381147
]
3.2.4 - GET /services/usergroups/{group_id}/members
Retrieve all group members belonging to the ID of a group.
Example URL: https://api-testing.yuja.com/services/usergroups/73527/members
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | path parameter | string | Value should match the Platform Unique ID for the group or the group_id value field in the 3.2.1 GET /services/usergroups/all call. |
Example Response:
[
472862, 840173, 294591
]
3.2.5 - GET /services/usergroups/{group_id}
Retrieve group information by group ID.
Example URL: https://api-testing.yuja.com/services/usergroups/73527/members
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | path parameter | string | Value should match the Platform Unique ID for the group or the group_id value field in the 3.2.1 GET /services/usergroups/all call. |
Example Response:
{"value":{"userGroupPID":{"value":298},"groupName":"Admin Group","institutePID":2}}
3.2.6 - POST /services/usergroups/create
Create a group and add members. If a group already exists, members will be added to it. To create a group without members, enter "groupMembers":"" with the JSON data.
Example URL: https://api-testing.yuja.com/services/usergroups/create
This endpoint expects JSON data of this format in the body parameter:
{
"groupName":"Admin Group",
"groupMembers":"37291,34370"
}
Example Response:
Group created and Members added successfully
3.2.7 - PUT /services/usergroups/{group_id}
Edit the name of a group.
Example URL: https://api-testing.yuja.com/services/usergroups/482
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | path parameter | string | Value should match the Platform Unique ID for the group or the group_id value field in the 3.2.1 GET /services/usergroups/all call. |
This endpoint expects JSON data of this format in the body parameter:
{
"groupId":"847",
"groupName":"Admin Group"
}
Example Response:
Successfully changed the group name
3.2.8 - DELETE /services/usergroups/{group_id}
Delete the name of a group.
Example URL: https://api-testing.yuja.com/services/usergroups/482
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | path parameter | string | Value should match the Platform Unique ID for the group or the group_id value field in the 3.2.1 GET /services/usergroups/all call. |
Example Response:
Successfully deleted the group
3.2.9 - DELETE /services/usergroups/{group_id}/clear
Remove all members from a group.
Example URL: https://api-testing.yuja.com/services/usergroups/482/clear
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | path parameter | string | Value should match the Platform Unique ID for the group or the group_id value field in the 3.2.1 GET /services/usergroups/all call. |
Example Response:
Successfully cleared group members
3.2.10 - DELETE /services/usergroups/{group_id}/members/{user_id}
Delete a specific group member by their ID.
Example URL: https://api-testing.yuja.com/services/usergroups/482/members/73847
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | path parameter | string | Value should match the Platform Unique ID for the group or the group_id value field in the 3.2.1 GET /services/usergroups/all call. |
user_id | path parameter | string | Value should match user_id field in 1.2.1 - GET /users |
Example Response:
Successfully deleted group member
3.2.11 - POST /services/usergroups/foldersByGroupPID
Retrieves a list of folders the specified group has access to.
Example URL: https://api-testing.yuja.com/services/usergroups/foldersByGroupPID
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
pageNumber | Body parameter | Integer | Optional: The number of paginations for the list. The default value is set to 1. |
pageSize | Body parameter | Integer | Optional: The number of results per page. The default value is set to 20 and the maximum value is 200. |
groupPID | Body parameter | Integer | The platform unique ID for the group. |
Example request:
{
"pageNumber":1,
"pageSize":10,
"groupPID":368
}
Example Response:
[
{
"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 - Device API Overview
Devices represent all capture devices that are registered to the organization. Each device can be optionally given an IP in the management UI. This ID will be retrieved along with the other device IDs.
4.1 - Device Object Model
Variable | Type | Description |
---|---|---|
device_id | string | A unique id that is generated by the system. |
device_type | string enum | Device type of the registered device. Can be one of the following values, “software_capture”, “hardware_capture”. |
name | string[100] | The name given to the device. |
access_level | string enum | Who can access this device, can be one of the following values “it_admin”, “me”, “content_owner”, “member”. |
register_user_id | string | User ID that registered the device. |
profile_id | string |
A unique id generated by the system assigned to a profile. Note: For Hardware Appliances, set the profile_id to "-1" |
session_id | string | A unique id generated by the system and assigned to a session. |
_live_broadcast | boolean | Optional, for Hardware Appliances Only. Specifies whether the session is set to live stream. |
4.2 - Main Endpoints
Method | Path | Description |
---|---|---|
GET | /devices | Retrieves all the devices belonging to the organization. |
GET | /devices/{device_id} | Retrieves single individual device based on device_id. |
PUT | /devices/{device_id} | Updates single individual device's name based on device_id. |
POST | /devices/register | Register a device. |
GET | /devices/registrations/{access_id} | An alternative way to GET device information using access_id instead of the YuJa insternal device_id. Only available for device types which use an access_id. |
GET | /devices/{device_id}/schedule | Retrieves all schedules associated with this device. |
POST | /devices/{device_id}/profiles/create | Creates a capture profile for a device. |
POST | /devices/session | Creates a Scheduled Session with the selected device and profile. |
POST | /devices/startsession | Creates a session instantly with the specified device and profile. |
GET | /session/{sessionId}/livestream/urls | Retrieves live stream URLs and playback URL against given sessionId. |
POST | ||
POST | /devices/stopstation | Stops all sessions currently being recorded by the device. |
POST | /devices/{device_id}/status | An endpoint for sending status and logging information to the Video Platform periodically. |
GET | /devices/session/{session_id}/commands | The station will poll the Video Platform to retrieve commands for pause or stop which will be used for in-session control of an active session. |
DELETE | /devices/{session_id} | Removes a session from the devices schedule. |
GET | /devices/profiles/{device_id}/{login_id} | Retrieves all of a user’s profiles on a specified device. |
GET | /devices/profiles/{device_id} | Retrieves all profiles on a specified device. |
GET | /devices/userID/{sso} | Retrieves corresponding userID. |
POST | /devices/editsession | Edits an existing session. |
DELETE | /devices/{device_id}/schedules | Removes all schedules associated with this device. |
POST | /devices/{device_id}/status | Saves statuses and logging information for a particular device. |
POST | /devices/yujahardware/{device_id}/profiles/create | Creates a new profile. |
PUT | devices/yujahardware/{device_id}/profiles/update | Update hub profile. |
DELETE | /devices/yujahardware/{device_id}/profiles/{profile_id}/delete | Delete a hub profile. |
GET | /devices/{deviceId}/profiles/{externalProfileId} | Returns YuJa’s Profile ID against the external Profile ID passed. |
DELETE | /devices/unregister/{deviceId} | Deletes any registered device. |
PUT | /devices/{sessionId}/extend | Extends third party devices’ session time (default by 30 minutes). |
GET | /devices/{deviceId}/{profileId}/previewlinks | Returns the Pre Signed S3 URLs which can be used to update the audio/image previews. |
PUT | /devices/{sessionId}/stop | Stops third party devices’ session immediately |
POST | /devices/session/{sessionPId}/pause | Pause Live Stream playback for a particular session. |
POST | /devices/session/{sessionPId}/resume | Resumes Live Stream playback for a particular session. |
4.2.1 - GET /devices
Returns a JSON list of objects, where each object is a device.
Example URL: https://api-testing.yuja.com/services/devices
Parameters:
No parameters are needed for this call.
Example response:
{
{
"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 /devices/{device_id}
Returns a JSON object, where the object is a device.
Example URL: https://api-testing.yuja.com/services/devices/12456
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
device_id | path parameter | string | Value should match device_id field in the GET /devices call. |
Example response:
{
"name": "station2",
"device_type": "hardware_capture",
"access_level": "me",
“device_id ” : “12346”,
“register_user_id” : “user2”
}
4.2.3 - PUT /devices/{device_id}
Update the device.
Example URL: https://api-testing.yuja.com/services/devices/12345
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
device_id | path parameter | string | Value should match device_id field in the GET /devices call. |
4.2.4 - POST /devices/register
Registers a device. You may use the existing endpoint PUT /devices/{device_id} to edit the device after registration.
Example URL: https://api-testing.yuja.com/services/devices/register
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
access_id | Body parameter | string[100] | Required | A unique identifier for the capture station. |
display_name | Body parameter | string[100] | Required | The display name displayed to the end user. |
station_type | Body parameter | string enum | Required | Specifies which third-party device is being registered (Example: "extron", "epiphan"). |
device_model | Body parameter | string | Optional | The device model. |
firmware_version | Body parameter | string | Optional | The device's firmware version. |
user_identifier | Body parameter | string | Required | An identifier for the Video Platform user which will be made the owner of the device. |
user_identifier_type | Body parameter | string enum | Required | Possible values: "ID", "LOGIN", "SSO". Determines how the user_identifier parameter will be treated. ID represents the internal YuJa ID, LOGIN represents the user's login username, and SSO represents the user's SSO user identifier. |
configuration | Body parameter | JSON object | Optional | Miscellaneous configuration. |
contact_list | Body parameter | string | Optional | A list of users to send device notifications to. The string will be in the format of comma separated values where each value is a Video Platform internal user ID or an email. |
save_folder (Upcoming) | Body parameter | string | Optional | The folder in Media Collections to save to. The path will be a relative path starting from the User's folder, not an absolute path. If not set, this will default to the default collection of the user. |
Example request:
{
"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"
}
Example response:
{
“success”: “true”,
“error_message”: “”,
“id”: “12345”
}
4.2.5 - GET /devices/registrations/{access_Id}
An alternative way to GET device information using access_id instead of the Video Platform internal device_id. Only available for device types which use an access_id.
Example URL: https://api-testing.yuja.com/services/devices/registrations/r0RQUYSM89TvCo9sm3AM
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
access_id | Path parameter | string[100] | Required | A unique identifier for the capture station. |
Example response:
{
"name": "station1",
"device_type": "software_capture",
"access_level": "it_admin",
“device_id” : “12345”,
“register_user_id” : “user1”
}
4.2.6 - GET /devices/{device_id}/schedule
Returns the details of sessions of the device between a time period.
Example URL: https://api-testing.yuja.com/services/devices/12345/schedule?startTime=01-08-2021&endTime=07-08-2021
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
device_id | path parameter | string | Value should match device_id field in the GET /devices call. |
startTime | Query parameter | string | Start time of the schedule(dd-mm-yyyy) |
endTime | Query parameter | string | End time of the schedule(dd-mm-yyyy) |
Example response:
[
{
"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 /devices/{device_id}/profiles/create
Creates a capture profile for a device.
Example URL: https://api-testing.yuja.com/services/devices/{device_id}/profiles/create
Parameters: The body will contain a JSON Array where each JSON object will have the following fields.
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
profile_id | Body parameter | string[100] | Required | A unique identifier for the profile. |
name | Body parameter | string | Required | The profile name displayed to the end user. |
description | Body parameter | string | Optional | The profile description displayed to the end user. |
isLiveStream | Body parameter | boolean | Optional | The boolean value will decide whether the session created through this profile will be live streamed or not. Default value is false |
Example request:
[
{
"profile_id": "456juhgj",
"name": "LiveStreamProfile",
"description": "No desc needed",
"isLiveStream": true
},
{
"profile_id": "789juhgj",
"name": "NormalProfile",
"description": "Normal Profile",
"isLiveStream": false
}
]
Example response:
{
"success": true,
"profile_ids": [
{
"external_profile_id": "456juhgj",
"yuja_profile_id": 3440
},
{
"external_profile_id": "789juhgj",
"yuja_profile_id": 3441
}
]
}
4.2.8 - POST /devices/session
Create a session.
Example URL: https://api-testing.yuja.com/services/devices/session
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
start_year | Body parameter | string | Start year of the session. |
start_month | Body parameter | string | Start month of the session. |
start_day | Body parameter | string | Start day of the session. |
start_hour | Body parameter | string | Start hour of the session. |
start_minute | Body parameter | string | Start minute of the session. |
duration_hour | Body parameter | string | Number of hours in the session is to last for. |
duration_minute | Body parameter | string | Number of minutes in the session is to last for. |
is_live_broadcast | Body Parameter | boolean | Record a live stream by entering true; otherwise, enter false. |
station_id | Body parameter | string | ID corresponding to the device you want to record with (get from 4.2.1). |
login_id | Body parameter | string | Use sso OR login_id. |
sso | Body parameter | string | Use sso OR login_id. |
session_title | Body parameter | string | A title for the session. |
session_description | Body parameter | string | Optional. |
label_colour | Body parameter | string | Optional, must be in "#ABCDEF" format. |
profile_id | Body parameter | string |
An ID corresponding to the profile you want to use for the recording (profile ids found from 4.2.16). Note: For hardware devices, set the profile_id to "-1" |
folderPIDs | Body parameter | string |
Optional: Enter the valid PIDs of CampusTube folders you'd like to publish Hub recordings to, separating each with a comma. |
group_id | Body parameter | string | Optional: The group id can be found by using the get all groups request (2.2.1). Can only have group_id OR class_code not both. |
class_code | Body parameter | string | Optional: The class_code is user added. Can only have group_id OR class_code not both. |
return_session | Body Parameter | boolean | Optional: Send true to get the session details in response. |
storage_path | Body Parameter | string | Optional: Pass the path relative to your My Media Collections to store the video in that folder. If blank (“”) or just a slash (“/”) is passed then it will store the video in Default Collections. Also, if the folder mentioned is not present then the API will create one for you. |
manuallyStartScheduledSession | Body Parameter | boolean | Optional: Require the session to be manually started. |
usersToSendScheduleCopy | Body Parameter | string | Optional: The user PIDs to send a calendar invite. |
createPlaceholder | Body Parameter | boolean | Optional: Create a thumbnail placeholder in the default collection or specified storage_path. |
Example Request:
{
"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
}
Example Response:
{
"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 /devices/startsession
Start a session immediately.
Example URL: https://api-testing.yuja.com/services/devices/startsession
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
is_live_broadcast | Body parameter | string | Use “true” to record a livestream and “false” otherwise. |
group_id | Body parameter | string | Optional: The group id can be found by using the get all groups request (2.2.1). Need group_id or class_code if the session is live. Can only have group_id OR class_code not both. |
class_code | Body parameter | string | Optional: The class_code is user added. Need group_id or class_code if the session is live. Can only have group_id OR class_code not both. |
duration_minute | Body parameter | string | The duration in minutes of the recording. |
station_id | Body parameter | string | The id of the recording device can be found with (4.2.1). |
login_id | Body parameter | string | Use sso OR login_id. |
sso | Body parameter | string | Use sso OR login_id. |
session_title | Body parameter | string | Title of the session |
session_description | Body parameter | string | Optional description for the session. |
profile_id | Body parameter | string |
Profile ID can be found with 4.2.16. |
storage_path | Body Parameter | string | Optional: Pass the path relative to your My Media Collections to store the video in that folder. If blank (“”) or just a slash (“/”) is passed then it will store the video in Default Collections. Also, if the folder mentioned is not present then the API will create one for you. |
Example Request:
{
"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 /session/{sessionId}/livestream/urls
An endpoint that will respond with live stream URLs and playback URLs against a given sessionId. Please note: before using the API, YuJa Software Capture must be registered to your zone.
Request Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
sessionId | Path parameter | Integer | Required | The sessionId of scheduled session (can be retrieved from /device_id/schedule) |
JSONArray | Body parameter | string |
JSONArray (Array of following JSON Object) (Maximum 3 streams allowed per session)
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
streamName | JSONProperty | String | Required | Unique Stream name used to create stream key |
streamQuality | JSONProperty | String | Optional |
Optional Metadata Possible Values: 240720 1080 Default Value: 720 |
audioOnly | JSONProperty | Boolean | Optional |
Optional Metadata Possible Values: TrueFalse Default Value: False |
videoOnly | JSONProperty | Boolean | Optional |
Optional Metadata: Possible Values: TrueFalse Default Value: False |
streamPriority | JSONProperty | String | Optional |
Optional Metadata Lower value means high priority Possible Values: 12 3 Default Value: 1 |
Sample URL: https://api-testing.yuja.com/services/devices/session/{sessionId}/livestream/urls
Sample Request Body:
[
{
"streamName": "stream1",
"streamQuality" : "720",
"videoOnly" : false,
"streamPriority" : "1"
},
{
"streamName": "stream2",
"streamQuality" : "720",
"audioOnly": false,
"videoOnly" : false,
"streamPriority" : "2"
}
]
Sample Response:
{
"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 /devices/stopstation
Stop a session immediately.
Example URL: https://api-testing.yuja.com/services/devices/stopstation
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
device_id | Body parameter | string | The id of the recording device can be found with (4.2.1). |
login_id | Body parameter | string | Login. |
Example Request:
{
"device_id": "55492",
"login_id": "marythompson",
}
4.2.12 - POST /devices/{device_id}/status (Upcoming)
An endpoint for sending status and logging information to the Video Platform periodically. This comprises our audit logs, error logs and alerts such as low-microphone (input audio) alerts.
Example URL: https://api-testing.yuja.com/services/devices/12345/status
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
device_id | Path parameter | integer | Required | The device id of the Capture Station. |
timestamp | Body parameter | Timestamp | Required | A timestamp corresponding to when the event occurred. |
type | Body parameter | string | Required | Values: status, alert, error. |
content | Body parameter | integer | Optional | The Device status (uploading, connected, streaming, disconnected), content of the alert, or error logs, depending on the type parameter. |
Example Request:
{
"device_id": 52341,
"timestamp": 2021-05-20 12:00:00,
"type": "status",
}
Example response:
{
“success”: true
}
4.2.13 - GET /devices/session/{session_id}/commands (Upcoming)
The station will poll the Video Platform to retrieve commands for pause or stop commands which will be used for in-session control of an active session. The polling interval in the middle of a recording session will be at a higher frequency compared to when it is on standby. Maximum polling frequency should not exceed once every 10 seconds.
Example URL: https://api-testing.yuja.com/services/devices/session/614/commands
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
session_id | Path parameter | integer | Required | The session id of the session. |
response:
Name | Type | Description |
---|---|---|
command | string | do-nothing, pause, stop. |
4.2.14 - DELETE /devices/{session_id}
Delete a scheduled session.
Example URL: https://api-testing.yuja.com/services/devices/679
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
session_id | Path parameter | string | The Device ID can be found by (4.2.4). |
4.2.15 - GET /devices/profiles/{device_id}/{login_id}
Get the profiles of a specific user with a specific device.
Example URL: https://api-testing.yuja.com/services/devices/profiles/12345/loginID123
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
device_id | Body parameter | string | The id of the recording device can be found with (4.2.1). |
login_id | Body parameter | string | Login of the user with the profile. |
Example response:
{
"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 /devices/profiles/{device_id}
Get the profiles of a specific user with a specific device.
Example URL: https://api-testing.yuja.com/services/devices/profiles/12345
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
device_id | Body parameter | string | The id of the recording device can be found with (4.2.1). |
Example response:
{
"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 /devices/userID/{sso}
Retrieve corresponding userID.
Example URL: https://api-testing.yuja.com/services/devices/userid/testuser
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
sso | Body parameter | string | Can be retrieved from 4.2.4. |
Example response:
testuser
4.2.18 - POST /devices/editsession
Update a session with given parameters.
Example URL: https://api-testing.yuja.com/services/devices/editsession
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
session_id | Body parameter | string | Can be retrieved from 4.2.11. |
start_year | Body parameter | string | Optional: Start year of the session. |
start_month | Body parameter | string | Optional: Start month of the session. |
start_day | Body parameter | string | Optional: Start day of the session. |
start_hour | Body parameter | string | Optional: Start hour of the session. |
start_minute | Body parameter | string | Optional: Start minute of the session. |
duration_hour | Body parameter | string | Optional: Number of hours in the session is to last for. |
duration_minute | Body parameter | string | Optional: Number of minutes the session will last for. |
station_id | Body parameter | string | Optional: ID corresponding to the device you want to record with (get from 4.2.1). |
login_id | Body parameter | string | Optional: Use sso OR login_id. |
sso | Body parameter | string | Optional: Use sso OR login_id. |
session_title | Body parameter | string | Optional: A title for the session. |
session_description | Body parameter | string | Optional: A description. |
label_colour | Body parameter | string | Optional, must be in "#ABCDEF" format. |
profile_id | Body parameter | string | Optional: An ID corresponding to the profile you want to use for the recording (profile ids found from 4.2.16). |
group_id | Body parameter | string | Optional: The group id can be found by using the get all groups request (2.2.1). Can only have group_id OR class_code not both. |
class_code | Body parameter | string |
Optional: The class_code is user added. Can only have group_id OR class_code not both. |
storage_path | Body Parameter | string | Optional: Pass the path relative to your My Media Collections to store the video in that folder. If blank (“”) or just a slash (“/”) is passed then it will store the video in Default Collections. Also, if the folder mentioned is not present then the API will create one for you. |
Example Request:
{
"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 /devices/{device_id}/schedules
Delete all scheduled sessions associated with the device.
Example URL: https://api-testing.yuja.com/services/devices/12345/schedules
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
device_id | Path parameter | string | The Device ID can be found by (4.2.4). |
4.2.20 - GET /devices/{user_id}/sessions
Returns the details of the user between a time period.
Example URL: https://api-testing.yuja.com/services/devices/marythompson
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
user_id | Path parameter | string | Value should be a valid user_id |
startTime | Query parameter | string | Start time of a schedule (dd-mm-yyyy) |
endTime | Query parameter | string | End time of the schedule (dd-mm-yyyy) |
Example response:
[
{
"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 /devices/{device_id}/status
An endpoint for sending status and logging information to YuJa EVP periodically.
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
device_id | Path parameter | Integer | Required | The device id of the Capture Station |
statusType | Body parameter | string | Required | Possible Values: DEVICE_STATUS |
deviceStatus | JSON Body Parameter | string | Required |
Currently Accepting: uploading, streaming, ready, recording Could be added: paused |
Sample URL: https://api-testing.yuja.com/services/devices/1480/status
Sample Request Body:
{
"statusType": "DEVICE_STATUS",
"deviceStatus": {
"recording": false,
"uploading": true,
"streaming": false,
"ready": true,
“extra_info”: JSON Object containing any other useful information that is yet to be defined.
}
}Sample Response:
{
"success": true,
"command": "",
"command_data": ""
}
Note: The command and command_data are placeholders for future functionalities to control the devices, like the ability to tell the devices to pause/end the session from our portal.
4.2.22 - POST /devices/yujahardware/{device_id}/profiles/create
An endpoint to create hub profiles.
Example URL: https://api-testing.yuja.com/services/devices/yujahardware/{device_id}/profiles/create
Paramenters:
Name | Parameter Type | Type | Description |
---|---|---|---|
device_id | Path parameter | Integer | A valid capture station ID. |
Name | Body | String [255] | Name of the hub profile cannot be empty. |
Description | Body | String [255] | Description of the profile. |
MediaDevice0 | Body | Boolean | Enable Media Device 0 or not. |
MediaDevice1 | Body | Boolean | Enable Media Device 1 or not. |
MediaDevice2 | Body | Boolean | Enable Media Device 2 or not. |
LineInAudio | Body | Boolean | Enable Line In Audio or not. |
Sample Request Body:
[{
"Name": "1",
"Description": "",
"MediaDevice0": true,
"MediaDevice1": false,
"MediaDevice2": false,
"LineInAudio": true
}]
Sample Response:
{"error_message":"","success":true,"profiles":[{"profile_name":"1","profile_id":"3313"}]}
4.2.23 - PUT /devices/yujahardware/{device_id}/profiles/update
An endpoint to update a hub profile.
Example URL: https://api-testing.yuja.com/services/devices/yujahardware/{device_id}/profiles/update
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
device_id | Path parameter | Integer | A valid capture station ID. |
Name | Body | String [255] | Name of the hub profile cannot be empty. |
Description | Body | String [255] | Description of the profile. |
MediaDevice0 | Body | Boolean | Enable Media Device 0 or not. |
MediaDevice1 | Body | Boolean | Enable Media Device 1 or not. |
MediaDevice2 | Body | Boolean | Enable Media Device 2 or not. |
LineInAudio | Body | Boolean | Enable Line In Audio or not. |
Sample Request Body:
{
"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
}
Sample Response:
{
"errorMessage": "",
"success": true
}
4.2.24 - DELETE /devices/yujahardware/{device_id}/profiles/{profile_id}/delete
An endpoint to delete a hub profile.
Example URL:
https://api-testing.yuja.com/services/devices/yujahardware/{device_id}/profiles/{profile_id}/delete
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
device_id | Path parameter | Integer | A valid capture station ID. |
profile_id | Path parameter | Integer | A valid profile ID. |
Sample Response:
{ "errorMessage": "",
"success": true
}
4.2.25 - GET /devices/{deviceId}/profiles/{externalProfileId}
Returns YuJa’s Profile Id against the external profile Id passed.
Example URL: https://api-testing.yuja.com/services/devices/1543/profiles/external/wstestprofile
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
deviceId | Path Parameter | Integer | Required | The id of the recording device |
externalProfileId | Path Parameter | String | Required | The profile id of the external device |
Example Response:
{
"profile_Id": "wstestprofile",
"yuja_profile_Id": 3412
}
4.2.26 - DELETE /devices/unregister/{deviceId}
Deletes any registered device.
Example URL: https://api-testing.yuja.com/services/devices/unregister/1547
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
device_id | Path Parameter | Integer | Required | The id of the recording device can be found with (4.2.1). |
Example Response:
{
"success": true
}
4.2.27 - PUT /devices/{sessionId}/extend
Extends third party devices’ session time (default by 30 minutes).
Example URL: https://api-testing.yuja.com/services/devices/38957/extend?minutes=6
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
sessionId | Path Parameter | Integer | Required | The id of the session that needs to be extended |
minutes | Query Parameter | Integer | Optional | Number of minutes that will be added to the session’s duration |
Example Response:
{
"success": true,
"message": "Successfully extended session for 6 minutes"
}
4.2.28 - GET - /devices/{deviceId}/{profileId}/previewlinks
Returns the Pre Signed S3 URLs which can be used to update the audio/image previews.
Example URL: https://api-testing.yuja.com/services/devices/1480/3431/previewlinks?videoStream=1&audioStream=1
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
deviceId | Path Parameter | Integer | Required | The id of the recording device. |
profileId | Path Parameter | String | Required | The YuJa’s Profile id of the external device. |
videoStream | Query Parameter | Integer | Required | Count of video streams that are attached to the profile. Max Video Count - 3 |
audioStream | Query Parameter | Integer | Required | Count of audio streams that are attached to the profile. Max Audio Count - 2 |
Example Response:
{
"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 - /devices/{sessionId}/stop
Stops third party devices’ session immediately
Example URL: https://api-testing.yuja.com/services/devices/38957/stop
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
sessionId | Path Parameter | Integer | Required | The id of the session that needs to be stopped. |
Example Response:
{
"success": true,
"message": "Successfully stopped the session"
}
4.2.30 - POST - /devices/session/{sessionPId}/pause
Pause Live Stream playback for a particular session.
Example URL: https://api-testing.yuja.com/services/devices/session/38519/pause
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
sessionPId | Path Parameter | Integer | Required | The id of the session that needs to be paused. |
Example Response:
{
"success": true
}
4.2.31 - POST - /devices/session/{sessionPId}/resume
Resumes Live Stream playback for a particular session.
Example URL: https://api-testing.yuja.com/services/devices/session/38519/resume
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
sessionPId | Path Parameter | Integer | Required | The id of the session that needs to be resumed. |
Example Response:
{
"success": true
}
4.2.32 - DELETE /devices/{deviceId}/profiles/thirdParty/{yujaProfileId}
Deletes third party profiles.
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
DeviceId | Path Parameter | Integer | A valid device Id. |
YuJaProfileId | Path Parameter | Integer | A valid YuJa profile Id (available from GET /devices/profiles/{device_id}) |
Example Response:
{
"success": true,
"message": "Profile Deleted Successfully!"
}
4.2.33 - PUT /devices/{deviceId}/profiles/thirdParty/{yujaProfileId}
Updates details of third party profiles.
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
DeviceId | Path Parameter | Integer | A valid device Id |
YuJaProfileId | Path Parameter | Integer | A valid yuja profile id (available from GET /devices/profiles/{device_id}) |
Example Request Body:
{
"profile_id": "456juhgj",
"Name": "LiveStreamProfile",
"description": "No desc needed",
"isLiveStream": true
}
Example Response:
{
"success": true,
"message": "Profile Updated Successfully !"
}
4.2.34 - GET /devices/{deviceId}/{yujaProfileId}/previewURLs
Returns video and audio preview urls for given device and its corresponding profile.
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
DeviceId | Path Parameter | Integer | A valid YSC device Id. |
YuJaProfileId | Path Parameter | Integer | A valid YuJa profile Id. |
Example Response:
{
"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 /devices/{deviceId}/status
Responds with the device statuses for registered YSC stations.
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
DeviceId | Path Parameter | Integer | A valid YSC device id. |
Example Response:
{
"connected": true,
"streaming": false,
"ready": true,
"access_id": "presenter-service-1bb8f4f8-dc6b-43bb-b2ce-asdvsadfvf",
"recording": false,
"uploading": false
}
5 - Media API Overview
Media represents all assets in the institution. This includes audio files, video files, and other documents.
5.1 - Media Object Model
Variable | Type | Description |
---|---|---|
login_id/loginid | string | Login ID for the user. |
group_id | string | Unique group ID that is generated by the system. |
title | string | Title of the uploaded video or folder that will be created. |
file_key | string | Key returned by the system to upload a file. |
description | string | Description of the uploaded video. |
video_id/videonode_id/videoPID | string | Unique video ID that is generated by the system. |
old_video_id | string | Video ID of the video to be replaced. |
new_video_id | string | Video ID of the video after replacement. |
folder_id/folderID/nodePID | string | Unique folder pid that is generated by the system. |
video_id/VideoPID | integer | Video ID of the selected video. |
media_file_id | integer | Unique valid media file id. |
DirectStreamEnabled | boolean | If set to true the RSS feed will have direct links to download the media. If false, no direct links to the media will be retrieved. |
extension | string | The file type of the captions that will be uploaded. The value can be srt or vtt. |
type | string | When uploading captions, the type will always be "caption". When uploading a transcript file, state whether the file is a "txt" or a "pdf". |
language | string | the language of the caption file that will be uploaded. |
file_key | integer | Obtained from the JSON response from section 5.2.44. |
metadataPrefix | string |
Enter one of the following: lom_ims: Retrieves data using the Learning Object Metadata model.
oai_dc: Retrieves data using the standard Open Archives Initiative Dublin Core model. |
5.2 - Main Endpoints
Variable | Type | Description |
---|---|---|
GET | /media/createuploadlink | Retrieves an upload link and file_key to upload a media file. |
POST | /media/upload/video | Uploads a video detail. |
POST | /media/publish/video | Publish a video in a course. |
POST | /media/replace/video | Replace a video. |
GET | /media/video/group/{group_id} | Retrieves videos published in a course. |
GET | /media/video/directlink/{video_id} | Retrieves direct link and embed code of a video. |
GET | /media/retrievebranding | Retrieve institute media player branding. |
PUT | /media/updatebranding | Update institute media player branding. |
GET | /media/retrieveuserassets/{login_id} | Retrieve the assets of the user (folders, video files, other documents). |
GET | /media/retrieveuserassets/{folder_id} | Retrieve the assets contained in a folder. |
POST | /media/upload/session/{session_id}/createlinks | Generate upload links to upload recordings of the session. |
POST | /media/upload/session/{session_id} | Sends a signal that uploading the recording to the S3 URLs is completed, and video processing should commence. |
GET | /media/metadata/{video_id} | Retrieves all the metadata entries pertaining to the passed video_id. |
POST | /media/metadata/{video_id} | Inserts the metadata entries to the passed video_id. |
DELETE | /media/metadata/{video_id} | Deletes the metadata entries pertaining to the passed video_id and the names passed in the body parameters. |
GET | /media/searchVideo | Retrieves all the videos against the search criteria passed in the body parameters. |
GET | /media/searchVideoWithQueryString | Retrieves all the videos against the search criteria passed in the query parameters. |
Handlers to allow the parent window to control the media player. | ||
GET | /media/videos/{videoPId}/streams/hls | Returns the hls streams along with other important information regarding the video. |
GET | /media/videos/{videoPId}/streams/thumbnail | Returns the thumbnail urls along with other important information regarding the video. |
POST | /media/document_link/{video_id}/{mediaFilePID} | Attach a media file to the video |
DELETE | /media/document_link/{video_id}/{mediaFilePID} | Deletes a media file from the video |
POST | /media/videos/{video_id}/indexes | Inserts text to caption or transcript files |
DELETE | /media/videos/{video_id}/{index} | Deletes text from caption or transcript files |
Get |
/media/folder/{folderId} |
Obtain information for folders within the Video Platform. |
POST |
/media/videos/{video_id}/captions/{language}/text/{line}/{position} |
Inserts text for caption files. |
DELETE |
/media/videos/{video_id}/captions/{language}/text/{line}/{start}/{end} |
Removes text from a caption file. |
POST |
/media/videos/{video_id}/captions/{language} |
Inserts a caption line. |
DELETE |
/media/videos/{video_id}/captions/{language}/{line} |
Removes a caption line. |
POST |
/media/videos/{video_id}/captions/{language}/generatetranscript |
Generates a transcript by using video captions. |
POST |
/services/media/publishToInstitutionChannel/video |
Publishes a video to the EnterpriseTube or CampusTube. |
POST |
/services/media/publishToInstitutionChannel/video |
Publish a video to the EnterpriseTube or CampusTube. |
POST |
/services/media/unpublishMedia |
Unpublishes a video from the EnterpriseTube or CampusTube. |
GET |
/services/media/allFolders/ETubeAndILib |
Retrieves all folders in EnterpriseTube and CampusTube. |
GET |
services/media/retrievefolderassets/{folderID} |
Retrieves all assets inside a folder. |
POST |
services/media/RSS |
Obtain folder information that includes what videos are located inside the folder and access to the video links. |
GET |
services/media/video/{video_id} |
Retrieve details for a video that has been edited and replaced by entering its original video_id. |
POST |
/services/media/createFolderInEnterpriseTubeLibrary |
Creates a sub-folder inside the EnterpriseTube Library folder. |
POST |
/services/media/createFolderInSharedFolder |
Creates a folder or sub-folder within Shared Folder/Internal Library. |
POST |
/services/media/captionFileUploadLink |
Provides a URL to upload a caption or transcript file to the server and a key for the URL. |
PUT |
The URL is obtained from the following API: POST /services/media/captionFileUploadLink |
Upload a caption or transcript file to the server. |
POST |
services/media/captionFileToVideo |
Upload a caption or transcript file to a video. |
GET |
/services/metadata/oai-pmh?verb=GetRecord&identifier=video/mediaPID |
Returns metadata added by the user on the Video Platform. |
GET |
/services/metadata/oai-pmh?verb=ListRecords |
Return all files with metadata that have the "Enable this media to be searchable by API" option selected in the Media Details. If desired, a date range may also be applied. Note: Only the first 100 files will be returned. To access an additional 100 files, the API will need to run again with the resumption token that is provided in the response. |
GET |
/services/metadata/oai-pmh?verb=ListIdentifiers |
Return all files with Video or Media PIDs that do not contain any metadata. If desired, a date range may also be applied. Note: Only the first 100 files will be returned. To access an additional 100 files, the API will need to run again with the resumption token that is provided in the response. |
GET |
/services/metadata/oai-pmh?verb=Identify |
Returns details for this specific API, such as the Repository Name, Contact Email, and other relevant information. |
GET |
/services/metadata/oai-pmh?verb=ListMetadataFormats |
Returns documentation on the Dublin Core implementation used for metadata formatting for APIs 5.2.47 to 5.2.49. |
5.2.1 - GET /createuploadlink
Return a JSON object which contains the upload link and file_key. To upload the video to S3 make a HTTP PUT request using the returned upload link as the target and attach the video file.
Example URL: https://api-testing.yuja.com/services/media/createuploadlink
Parameters:
No parameters are needed for this call.
Example response:
[
{
"url": "<upload_link>",
"key": "<key>"
}
]
5.2.2 - POST /upload/video/
Upload a video in media library of a user with the matching login_id of body parameter.
Example URL: https://api-testing.yuja.com/services/media/upload/video/
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
login_id | Body parameter | string | Required. |
title | Body parameter | string | Required. |
file_key | Body parameter | string | Required, value should match “key” field in the response field of GET /createuploadlink call. |
description | Body parameter | string | Optional. |
5.2.3 - POST /publish/video/
Publish a video owned by user with login_id in a group with matching group_id of body parameter.
Example URL: https://api-testing.yuja.com/services/media/publish/video
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
login_id | Body parameter | string | Required. |
class_id | Body parameter | string | Required. |
video_id | Body parameter | string | Required. |
5.2.4 - GET /video/group/{group_id}
Returns a JSON object containing the video details of the class.
Example URL: https://api-testing.yuja.com/services/media/video/group/121
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | Path parameter | string | Value should match group_id field in the GET /groups call. |
Example response:
{
"description": " uploaded by abcd",
"title": "avi_test1",
"video_id": "67890"
},
{
"description": " uploaded by pqrs",
"title": "flv_test1",
"video_id": "67891"
}
5.2.5 - GET /video/directlink/{video_id}
Returns a JSON object containing the direct link and embed code of a video.
Example URL: https://api-testing.yuja.com/services/media/video/directlink/67890
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
video_id | Path parameter | string | Value should match video_id field in the GET /video/group/{group_id} call. |
Example response:
{
"directlink": "<Direct link to the video>",
"embedcode": "<The embedded code for the video>"
}
5.2.6 - POST /replace/video/
Replace a video owned by user with login_id by another video.
Example URL: https://api-testing.yuja.com/services/media/replace/video
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
login_id | Body parameter | string | Required. |
old_video_id | Body parameter | string | Required. |
new_video_id | Body parameter | string | Required. |
5.2.7 - GET /retrievebranding
Returns a JSON object containing the media player branding details of the organization.
Example URL: https://api-testing.yuja.com/services/media/retrievebranding
Parameters:
No parameters are required for this call.
Example response:
{
"button_color": "#ffffff",
"setting_menu_color": "#011100",
"sidebar_color": "#ABCDEF",
"setting_text_color": "#ffffff"
}
5.2.8 - PUT /updatebranding/
Update media player branding details of the organization.
Example URL: https://api-testing.yuja.com/services/media/updatebranding
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
button_color | Body parameter | string | Optional |
setting_menu_color | Body parameter | string | Optional |
sidebar_color | Body parameter | string | Optional |
setting_text_color | Body parameter | string | Optional |
5.2.9 - GET /retrieveuserassets/{login_id}
Return a JSON object containing the video details of the class.
Example URL: https://api-testing.yuja.com/services/media/retrieveuserassets/marythompson
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
login_id | Body parameter | string | Required. |
Example response:
{
{
"Asset_type": "Folder",
"folder_id": 45621,
"title": "New Folder"
},
{
"Asset_type": "Video File",
"title": "Hello World",
"video_id": 12345
}
}
5.2.10 - POST /media/upload/session/{session_id}/createlinks
Generates upload links to upload recordings of the session.
Example URL: https://api-testing.yuja.com/services/media/upload/session/619/createlinks
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
session_id | Path parameter | integer | Required | The id of the session to associate the recording with. This controls the title, description, save location of the recording within the Video Platform and the owner of the recording. |
video_sources | Body parameter | JSON Array | Required | See the video_sources fields table. |
pause_timestamps | Body parameter | JSON Array | Required | See the pause_timestamps fields table. |
video_sources fields:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
stream_id | Body parameter | string | Required | An identifier for the stream. |
stream_type | Body parameter | string enum | Optional | Possible values: videoCapture, audioCapture, screenCapture. |
pause_timestamps fields:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
pause_timestamp | Body parameter | long | Required | A timestamp corresponding to when the session was paused, in milliseconds. |
resume_timestamp | Body parameter | long | Required | A timestamp corresponding to when the session was resumed, in milliseconds. |
Example request:
{
"video_sources": [{
"stream_type": "videoCapture",
"stream_id": "Gv9U5qvNpR"
},{
"stream_type": "screenCapture",
"stream_id": "vKYrIkpqp2",
}],
"pause_timestamps": [{
"pause_timestamp": 5000,
"resume_timestamp": 10000
}]
}
Example response:
{
upload_urls: [
{
stream_id: string,
url: string
}, {...}]
}
5.2.11 - POST /media/upload/session/{session_id}
Signals that uploading the recording to the S3 URLs are completed and that video processing should commence.
Example URL: https://api-testing.yuja.com/services/media/upload/session/1234
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
session_id | Path parameter | integer | Required | The ID of the session to associate the recording with. |
Example response:
{
“success”: true
}
5.2.12 - GET /media/metadata/{video_id}
Retrieve all the metadata entries pertaining to the passed video_id.
Example URL: https://api-testing.yuja.com/services/media/metadata/187195
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
video_id | Path parameter | integer | Required | Description |
Example Response:[
{
"Name": "PhyExam",
"Type": "Date",
"Value": "Thu May 20 00:00:00
EDT 2021"
},
{
"Name": "ChemExam",
"Type": "String",
"Value": "Chemistry"
}
]
5.2.13 - POST/media/metadata/{video_id}
Inserts all the metadata entries pertaining to the passed video_id.
Example URL: https://api-testing.yuja.com/services/media/metadata/187195
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
video_id | Path parameter | integer | Required | The ID of the video against which the metadata is required |
newMetadata | Body Param | JOSN Array | Required | See the newMetadata fields table |
newMetadata fields:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
Name | Body parameter | String | Required | Name of the metadata tag |
Type | Body parameter | string | Required | Possible values: String, Date |
Value | Body parameter | string | Required | Value against the name of the metadata. Date Format: dd/mm/yyyy |
Example Body Parameters:
{
newMetadata: [
{
"Name": "PhyExam",
"Type": "String",
"Value": "Easy"
},
{
"Name": "ChemExam",
"Type": "Date",
"Value": "05/05/2021"
}
]
}
Example Response:
"Successfully Inserted 1 record/s in to the database !!!"
5.2.14 - DELETE /media/metadata/{video_id}
Deletes all the metadata entries pertaining to the passed video_id and passed list of names of metadata.
Example URL: https://api-testing.yuja.com/services/media/metadata/187195
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
video_id | Path parameter | integer | Required | The ID of the video against which the metadata is required. |
Body Param | List | Required | List of names of meta tags. |
Example Body Parameters:
[
"PhyExam",
"ChemExam"
]
Example Response:
"Successfully Deleted 2 record/s form the database !!!"
5.2.15 - GET /media/searchVideo
Retrieves all the videos against the search criteria passed in the body parameter.
Example URL: https://api-testing.com/services/media/searchVideo
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
searchingString | Body Parameter | String | Required | String that you want to search to find the video |
searchAs | Body Parameter | String | Optional | User id of the user under which all the videos will be searched. Default value will be the IT Manager of that institution |
searchInMediaContent | Body Parameter | String | Optional | Possible values: “true”, “false”. This will search for the passed string in captions, tags etc... |
ownerId | Body Parameter | String | Optional | User id of the user who is the owner of the video. |
createdBefore | Body Parameter | String | Optional | Date (yyyy-mm-dd) before which the video was created |
createdAfter | Body Parameter | String | Optional | Date (yyyy-mm-dd) after which the video was created |
tag | Body Parameter | String | Optional | Tag (if any) attached to that video |
metadata | Body Parameter | String | Optional | Metadata name attached to that video |
Example Body Parameters:
{
"searchString": "Polish",
"searchAs": "John_ITManager",
"searchInMediaContent": "false",
"ownerId": "",
"createdBefore": "",
"createdAfter": "",
"tag":"",
"metadata": ""
}
Example Response:
[
{
"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 /media/searchVideoWithQueryString
Retrieves all the videos against the search criteria passed in the query parameters.
Example URL: https://api-testing.com/services/media/searchVideoWithQueryString?searchString=Polish&searchAs=John_ITManager
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
searchString | Body Parameter | String | Required | String that you want to search to find the video |
searchAs | Body Parameter | String | Optional | User ID of the user under which all the videos will be searched. Default value will be the IT Manager of the institution |
Example Response:
[
{
"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 - Exposed Handlers
We will be listening to postMessage event that will pass JSON parameter.
Event Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
name | JSON Parameter | String | Optional |
Possible Values:
|
value | JSON Parameter | Number | Required |
Required in case of AdjustVolume and SeekTo
|
Example JSON Parameter:
var pass_data = {
'name':’AdjustVolume’,
‘value’: ‘50’
};
document.getElementById('yujaIFrame').contentWindow.postMessage(JSON.stringify(pass_data),"*");
5.2.18 - GET /media/folders/user_id
Retrieves all the folders that a user has access to YuJa against the passed user_id.
Example URL: https://api-testing.com/services/media/folders/john_manager
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
user_id | Path Parameter | String | Required | User ID of the user for which the folders will be fetched. |
Example Response:
[
{
"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 /media/videos/user/user_id
Retrieves all the videos that a user has access to YuJa against the passed user_id.
Example URL: https://api-testing.com/services/media/videos/user/john_manager
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
user_id | Path Parameter | String | Required | User ID of the user for which the folders will be fetched. |
Example Response:
[
{
"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 /media/videos/user_id/folder_id
Retrieve videos under a particular folder that a user has access to YuJa.
Example URL: https://api-testing.com/services/media/videos/john_manager/9385800
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
user_id | Path Parameter | String | Required | User ID of the user for which the videos will be fetched. |
folder_id | Path Parameter | String | Required | Folder ID under which all the videos will be fetched. |
Example Response:
{
"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 /media/videos/video_id
Retrieves all the videos against the search criteria passed in the query parameters.
Example URL: https://api-testing.com/services/media/videos/video_id
Parameters:
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
video_id | Path Parameter | Integer | Required | Video ID that will fetch that particular video. |
Example Response:
[
{
"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 /media/videos/{videoPId}/streams/hls
Returns the hls streams along with other important information regarding the video.
Parameters:
Name | Parameter Type | Type | Description |
videoPId | Path Parameter | Integer | A valiid video ID |
Example Response:
{
"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 /media/videos/{videoPId}/streams/thumbnail
Returns the thumbnail URLs along with other important information regarding the video.
Parameters:
Name | Parameter Type | Type | Description |
videoPId | Path Parameter | Integer | A valid video ID. |
Example Response:
{
"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 /media/createuploadlink/multiple?streams=1
Responds with a unique key and a URL which will be used to upload video.
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
Streams | Query Parameter | Integer | A stream count between 1 and 3 which indicates a number of URLs that will be returned. |
Example Response:
[
{
"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 /media/upload/video/multiple
Ingests multi-stream videos into the user’s default collection.
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
Login_id | Body Parameter | String | Login user ID of the user. |
Title | Body Parameter | String | Title of the video. |
Description | Body Parameter | String | Description of the video. |
File_keys | Body Parameter | String Array | Unique keys returned from GET - /media/createuploadlink/multiple API |
Example Request:
{
"login_id": "john_doe",
"title": "Multi Stream Ingestion",
"description": "",
"file_keys":[
"379e3235-0538-480d-8bf2-14f74b328",
"7b31d4b8-c8c2-468b-87e2-2f4505258f"
]
}
Example Response:
{
"success": true,
"message": "Uplaoded Successfully, video will be available soon!"
}
5.2.26 - POST /media/document_link/{video_id}/{media_file_id}
Attaches a media file to a video source.
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
video_id | Path Parameter | Integer | A valid video ID. |
media_file_id | Path Parameter | Integer | A valid media file ID. |
Example Response:
{
"success": true
}
5.2.27 - DELETE /media/document_link/{video_id}/{media_file_id}
Removes a media file from a video source.
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
video_id | Path Parameter | Integer | A valid video ID. |
media_file_id | Path Parameter | Integer | A valid media file ID. |
Example Response:
{
"success": true
}
5.2.28 - POST /media/videos/{video_id}/indexes
Insert bookmarked timestamps to a video source.
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
video_id | Path Parameter | Integer | A valid video ID. |
timestamp | Body Parameter | Integer | A timestamp defines where the bookmark will appear in the video. |
label | Body Parameter | String | A title for the created timestamp. |
bold | Body Parameter | Boolean | Specifies if the label is bolded. |
indent | Body Parameter | Integer | Specifies indentation for the label. |
Example JSON Data:
{
"timestamp": "0:06:10",
"label": "Bookmark 1",
"bold": false,
"indent": 0
}
Example Response:
{
"success": true
}
5.2.29 - DELETE /media/videos/{video_id}/indexes/{index}
Delete bookmarked timestamps from a video source.
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
video_id | Path Parameter | Integer | A valid video ID. |
index | Path Parameter | Integer | Enter a valid index to delete from the caption file. Indexes start at 0. |
Example Response:
{
"success": true
}
5.2.30 - GET /media/folder/{folder_Id}
Obtain information for folders within the Video Platform.
Parameter:
Name | Parameter Type | Type | Description |
---|---|---|---|
folder_id | Path Parameter | Integer | A valid folder ID. |
Example Response:
{
"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 /media/videos/{video_id}/captions/{language}/text/{line}/{position}
Inserts a raw body text into the caption file.
Parameter:
Name | Parameter Type | Type | Description |
---|---|---|---|
video_id | Path Parameter | Integer | A valid video ID. |
language | Path Parameter | String | Enter the language of the caption file (e.g. English) |
line | Path Parameter | Integer | Enter the line position within the caption file. Line position starts at 0. |
position | Path Parameter | Integer | Enter the letter position within the selected line within the caption file. Letter position starts at 0. |
Example Response:
{
"success": true
}
5.2.32 - DELETE /media/videos/{video_id}/captions/{language}/text/{line}/{start}/{end}
Removes text from a caption file.
Parameter:
Name | Parameter Type | Type | Description |
---|---|---|---|
video_id | Path Parameter | Integer | A valid video ID. |
language | Path Parameter | String | Enter the language of the caption file (e.g. English) |
line | Path Parameter | Integer | Enter the line position within the caption file. Line position starts at 0. |
start | Path Parameter | Integer | Enter the starting character position within the selected line in the caption file. Character position starts at 0. |
End | Path Parameter | Integer | Enter the ending character position within the selected line in the caption file. Character position starts at 0. |
Example Response:
{
"success": true
}
5.2.33 - POST /media/videos/{video_id}/captions/{language}
Inserts a caption line.
Parameter:
Name | Parameter Type | Type | Description |
---|---|---|---|
video_id | Path Parameter | Integer | A valid video ID. |
language | Path Parameter | String | Enter the language of the caption file (e.g. English). |
start_time | Body Parameter | Integer | Enter the start time of the caption line. |
stop_time | Body Parameter | Integer | Enter the end time of the caption line. |
text | Body Parameter | String | Enter the text for the caption line. |
Example JSON Data:
{
"start_time": "00:00:10",
"stop_time": "00:00:15",
"text": "text"
}
Example Response:
{
"success": true
}
5.2.34 - DELETE /media/videos/{video_id}/captions/{language}/{line}
Removes a caption line.
Parameter:
Name | Parameter Type | Type | Description |
---|---|---|---|
video_id | Path Parameter | Integer | A valid video ID. |
language | Path Parameter | String | Enter the language of the caption file (e.g. English). |
line | Path Parameter | Integer | Enter the line position within the caption file. Line position starts at 0. |
Example Response:
{
"success": true
}
5.2.35 - POST /media/videos/{video_id}/captions/{language}/generatetranscript
Generates a transcript by using video captions.
Parameter:
Name | Parameter Type | Type | Description |
---|---|---|---|
video_id | Path Parameter | Integer | A valid video ID. |
language | Path Parameter | String | Enter the language of the caption file (e.g. English). |
Example Response:
{
"success": true
}
5.2.36 - POST /services/media/publishToInstitutionChannel/video
Publish a video to the EnterpriseTube or CampusTube.
Example URL: https://api-testing.yuja.com/services/media/publishToInstitutionChannel/video
Parameters:
No parameters are needed for this call.
Example JSON Data:
This endpoint expects JSON data of this format in the body parameter:
{
"login_id":"aswin_syras",
"folder_id":"9913954",
"videonode_id":"9964550"
}
Example response:
Published video: success.
5.2.37 - POST /services/media/unpublishMedia
Unpublish a video from the EnterpriseTube or CampusTube.
Example URL: https://api-testing.yuja.com/services/media/unpublishMedia
Parameters:
No parameters are needed for this call.
Example JSON Data:
This endpoint expects JSON data of this format in the body parameter:
{
"login_id":"michael_lee",
"videonode_id":"9964550"
}
Example response:
Unpublished video: success.
5.2.38 - GET /services/media/allFolders/ETubeAndILib
Retrieves all folders in EnterpriseTube and CampusTube.
Example URL: https://api-testing.yuja.com/services/media/allFolders/ETubeAndILib
Parameters:
No parameters are needed for this call.
Example response:
[{"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}
Retrieves all assets inside a folder.
Example URL: https://api-testing.yuja.com/services/media/retrievefolderassets/9995943
Parameter:
Name | Parameter Type | Type | Description |
---|---|---|---|
folderID | Path Parameter | Integer | A valid folder ID. |
Example Response:
[{"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
Obtain folder information that includes what videos are located inside the folder and access to the video links.
Example URL: https://api-testing.yuja.com/services/media/RSS
Parameters:
No parameters are needed for this call.
Example JSON Data:
This endpoint expects JSON data of this format in the body parameter:
{
"folderID":"9913952",
"directStreamEnabled" : "true" OR "false"
}
Example response:
https://api-testing.yuja.com/P/RSSFeeds/2/992532
5.2.41 - GET services/media/video/{video_id}
Retrieve details for a video that has been edited and replaced by entering its original video_id.
Example URL: https://api-testing.yuja.com/services/media/video/313415
Parameter:
Name | Parameter Type | Type | Description |
---|---|---|---|
video_id | Path Parameter | Integer | A valid video ID of the original video before it was edited and replaced. |
Example response:
{"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
Creates a sub-folder inside the EnterpriseTube Library folder.
Example URL: https://api-testing.yuja.com/services/media/createFolderInEnterpriseTubeLibrary
Parameters:
No parameters are required.
This endpoint expects JSON data of this format in the body parameter:
{
"loginId":"brianstev",
"title":"Campus Life",
"nodePID":"10177148"
}
Example Response:
Folder created successfully
5.2.43 - POST /services/media/createFolderInSharedFolder
Creates a folder or sub-folder within SharedFolder/Internal Library.
Example URL: https://api-testing.yuja.com/services/media/createFolderInEnterpriseTubeLibrary
Parameters:
No parameters are required.
This endpoint expects JSON data of this format in the body parameter:
{
"loginId":"brianstev",
"title":"Intro to Anthropology",
"nodePID":"10172048"
}
Example Response:
Folder created successfully
5.2.44 - POST /services/media/captionFileUploadLink
Provides a URL that can be used to upload a caption or transcript file to the server. The API that will use the URL is located in section 5.2.45. A key will also be provided that is used in the JSON body parameter for the API located in section 5.2.46.
Example URL: https://api-testing.yuja.com/services/media/captionFIleUploadLink
Parameters:
No parameters are required.
This endpoint expects JSON data of this format in the body parameter for captions:
{
"videoPID": "672982",
"extension": "srt/vtt",
"type": "caption",
"language": "language of the caption file"
}
This endpoint expects JSON data of this format in the body parameter for transcripts and PDF:
{
"videoPID": "491182",
"type": "txt/pdf"
}
Example Response:
{
"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_Recieved_from_the_API_in_Section_5.2.44>
Uploads a caption file to the server which can then be added to a video using the API in section 5.2.46
Example 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
Parameters:
No parameters are required.
This endpoint expects binary data to be passed through by uploading your caption or transcript file.
Example Response:
200 OK
5.2.46 - POST /services/media/captionFileToVideo
Upload a caption or transcript file to a selected video.
Example URL: https://api-testing.yuja.com/services/media/captionFileToVideo
Parameters:
No parameters are required.
This endpoint expects JSON data of this format in the body parameter for captions:
{
"login_id": "749371",
"videoPID": "74492",
"file_key": "294229_english.srt",
"type": "caption"
}
Example Response:
File uploaded successfully
This endpoint expects JSON data of this format in the body parameter for transcripts:
{
"videoPID": "74492",
"type": "txt/pdf"
}
Example Response:
File uploaded successfully
5.2.47 - GET /services/metadata/oai-pmh?verb=GetRecord&identifier={videoPID}&metadataPrefix=<lom_ims or oai_dc>
Returns metadata added by the user on the Video Platform. Note: The API will only locate media that is allowed to be searched by APIs. To learn how to enable your media for API search, please follow our guide on How to Enable Media to Be Searchable by APIs.
Example URL: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=GetRecord&identifier=4827
Parameter:
Name | Parameter Type | Type | Description |
---|---|---|---|
videoPID | Path Parameter | Integer | A valid ID of the video. |
Example Response:
<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>
Return all files with metadata that have the "Enable this media to be searchable by API" option selected in the Media Details. If desired, a date range may also be applied. Note: Only the first 100 files will be returned. To access an additional 100 files, the API will need to run again with the resumption token that is provided in the response.
Example URL: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=ListRecords
ExampleURL with date range: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=ListRecords&from=2023-01-01&until=2024-03-01
ExampleURL with resumption token: https://api-testing.yuja.com/services/metadata/oai-pmh?&verb=ListRecords&resumptionToken=eyJhbGciOiJub25lIn0.eyJsaW1pdCI6MTAwLCJtZXRob2RQcmVmaXgiOiIiLCJ0aW1lc3RhbXAiOjE3MDk1NzIyNzQTB9.
Parameters:
No parameters are needed for this call.
Example Response:
<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
Return all files with Video or Media PIDs that do not contain any metadata within an optional date range that can be included. Only the first 100 files will be returned. To access an additional 100 files, the API will need to run again with the resumption token that is provided in the response. Note: The API will only locate media that is allowed to be searched by APIs. To learn how to enable your media for API search, please follow our guide on How to Enable Media to Be Searchable by APIs.
Example URL: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=ListIdentifiers
ExampleURL with date range: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=ListIdentifiers&from=2023-01-01&until=2024-03-01
ExampleURL with resumption token: https://api-testing.yuja.com/services/metadata/oai-pmh?&verb=ListIdentifiers&resumptionToken=eyJhbGciOiJub25lIn0.eyJsaW1pdCI6MTAwLCJtZXRob2RQcmVmaXgiOiIiLCJ0aW1lc3RhbXAiOjE3MDk1NzIyNzQTB9. (Note: A date range cannot be applied when using the resumption token.)
Parameters:
No parameters are needed for this call.
Example Response:
<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
Returns details for this specific API, such as the Repository Name, Contact Email, and other relevant information.
Example URL: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=Identify
Parameters:
No parameters are needed for this call.
Example Response:
<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
Returns documentation on the Dublin Core implementation used for metadata formatting for APIs 5.2.47 to 5.2.49.
Example URL: https://api-testing.yuja.com/services/metadata/oai-pmh?verb=Identify
Parameters:
No parameters are needed for this call.
Example Response:
<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>
6 - Analytic API Overview
Media represents all assets in the institution. This includes audio files, video files, and other documents.
6.1 - Analytic Object Model
Variable | Type | Description |
---|---|---|
group_id | string | A unique class ID that is generated by the system. |
6.2 - Main Endpoints
Method | Path | Description |
---|---|---|
GET | /analytics/report/bandwidth/{group_id} | Retrieves bandwidth report of the group. |
GET | /analytics/report/storage/{group_id} | Retrieves storage report of the group. |
GET | /analytics/report/videoview/{group_id} | Retrieves video view report of the group. |
GET | /analytics/report/visitors | Retrieves visitor view report of the institution. |
6.2.1 - GET /analytics/report/bandwidth/{group_id}
Returns a file containing bandwidth usage details of a group.
Example URL: https://api-testing.yuja.com/services/analytics/report/bandwidth/1365
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | Path parameter | string | Value should match group_id field in the GET /groups call. |
6.2.2 - GET /analytics/report/storage/{group_id}
Returns a file containing storage usage details of a group.
Example URL: https://api-testing.yuja.com/services/analytics/report/storage/1365
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | Path parameter | string | Value should match group_id field in the GET /groups call. |
6.2.3 - GET /analytics/report/videoview/{group_id}
Returns a file containing video view details of a group.
Example URL: https://api-testing.yuja.com/services/analytics/report/videoview/1365
Parameters:
Name | Parameter Type | Type | Description |
---|---|---|---|
group_id | Path parameter | string | Value should match group_id field in the GET /groups call. |
6.2.4 - GET /analytics/report/visitors
Returns a file containing visitor details of the institute.
Example URL: https://api-testing.yuja.com/services/analytics/report/visitors
Parameters:
No parameters are required for this call.
7 - Audit Log API Overview
AuditLog represents all logs that are available based on date range and type.
7.1 - Audit Log Object Model
Variable | Type Type | Description |
---|---|---|
creationTimestamp | Timestamp | Timestamp when the event occured. Note: Timestamp will be according to the Institute's timezone. |
eventName | string | Name of the event |
details | string | Details specific to that event |
7.2 - Main Endpoints
Method | Path | Description |
---|---|---|
GET | /auditLog/entries | Retrieves logs of all the entries specified in the event type within the date range. |
7.2.1 - GET /auditLog/entries
Returns a JSON list of objects, where each object is a log.
Example URL: https://staging-demo.yuja.com/services/auditLog/entries?startTime=01/12/2024&endTime=02/01/2025&eventType=New Log In
Parameters
Name | Parameter Type | Type | Optional | Description |
---|---|---|---|---|
startTime | Query parameter | Date | Optional | Value should be in the format of dd/mm/yyyy |
endTime | Query Parameter | Date | Optional | Value should be in the format of dd/mm/yyyy |
eventType | Query Parameter | String | Required | The value must match exactly how it appears (capitalization and white spaces) on the Video Platform's Admin Panel > Notifications > Recent Notifications > Activity column. |
offset | Query Parameter | int | Optional |
Skips the specified number of logs. The value should be a valid integer. Example: Entering a value of 25 will return a JSON list starting from the 26th log. |
Example Response:
[
{
"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"
}
]