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.
Transport and Encoding
The current API only supports the JSON data format. It is recommended to specify the application/json as the accepted header, but it is not required.
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 | 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. |
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. |
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 |
2 - Group API Overview
Groups represent all groups that are available in the organization. Each group has specific group security which filters the user access to that group. The group can also publish policies that only permit certain types of users to publish to those groups.
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. |
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). |
2.2.1 - GET /groups
Returns a JSON list of the first 1000 groups specified. If you would like to return all groups, please reach out to your Customer Success Manager to change the functionality of this API for your institution.
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"
}
]
3 - Device API Overview
Devices represent all capture devices that is 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.
3.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. |
3.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. |
3.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”
}
}
3.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”
}
3.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. |
3.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”
}
3.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”
}
3.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": "Biology Lecture",
"isLiveStream": false,
"start_timestamp": 1627590240000,
"session_creator": "APITester NA",
"owner_id": 2846671,
"device_profile": "",
"session_id": 372156,
"duration": "0:06",
"start_time": "Thu Jul 29 20:24:00 UTC 2021",
"session_description": "",
"repeat_summary": "Weekly Monday for 1 sessions",
"class_name": "N/A",
"class_code": "N/A",
"video_id": 1974523
}
]
3.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
}
]
}
3.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. |
station_id | Body parameter | string | ID corresponding to the device you want to record with (get from 3.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 3.2.9). Note: For hardware devices, set the profile_id to "-1" |
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. |
Example Request:
{
"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":“700847”,
"return_session":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"
}
}
3.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 (3.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 3.2.9. |
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"
}
3.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"
}
]
}
3.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 (3.2.1). |
login_id | Body parameter | string | Login. |
Example Request:
{
"device_id": "55492",
"login_id": "marythompson",
}
3.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
}
3.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. |
3.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 (3.2.4). |
3.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 (3.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"
}
]
}
3.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 (3.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"
}
]
}
3.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 3.2.4. |
Example response:
testuser
3.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 3.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 3.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 3.2.9). |
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"
}
3.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 (3.2.4). |
3.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
}
]
3.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.
3.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"}]}
3.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
}
3.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
}
3.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
}
3.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 (3.2.1). |
Example Response:
{
"success": true
}
3.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"
}
3.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
}
3.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"
}
3.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
}
3.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
}
3.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!"
}
3.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 !"
}
3.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"
}
]
}
3.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
}
4 - Media API Overview
Media represents all assets in the institution. This includes audio files, video files, and other documents.
4.1 - Media Object Model
Variable | Type | Description |
---|---|---|
login_id | string | Login ID for the user. |
group_id | string | A unique group ID that is generated by the system. |
title | string | Title of uploaded video. |
file_key | string | Key returned by the system to upload a file. |
description | string | Description of uploaded video. |
video_id | string | A unique video ID that is generated by the system. |
old_video_id | string | Video id of video to be replaced. |
new_video_id | string | Video id of the video after replacement. |
folder_id | string | A unique folder ID that is generated by the system. |
video_id | integer | Video id of the selected video |
media_file_id | integer | A unique valid media file id |
4.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 user (folders, video file, 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} | Signals that uploading the recording to the S3 URLs are completed and that 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 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} | Attachs a media file to the videos |
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. |
4.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>"
}
]
4.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. |
4.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. |
4.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"
}
4.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>"
}
4.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. |
4.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"
}
4.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 |
4.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
}
}
4.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
}, {...}]
}
4.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
}
4.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"
}
]
4.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 !!!"
4.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 !!!"
4.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
}
]
4.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
}
]
4.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),"*");
4.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
}
]
4.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
}
]
4.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
}
]
{
4.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/john_manager/9385800
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
}
]
4.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" }
}
4.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"
}
}
4.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"
}
]
4.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!"
}
4.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
}
4.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
}
4.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 corressponds to where in the video the Bookmark will appear. |
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
}
4.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
}
4.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
}
4.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
}
4.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
}
4.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
}
4.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
}
4.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 - Analytic API Overview
Media represents all assets in the institution. This includes audio files, video files, and other documents.
5.1 - Analytic Object Model
Variable | Type | Description |
---|---|---|
group_id | string | An unique class ID that is generated by the system. |
5.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. |
5.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. |
5.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. |
5.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. |
5.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.
6 - Audit Log API Overview
AuditLog represents all logs that are available based on date range and type.
6.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 |
6.2 - Main Endpoints
Method | Path | Description |
---|---|---|
GET | /auditLog/entries | Retrieves logs of all the entries specified in the event type within the date range. |
6.2.1 - GET / auditLog/entries
Returns a JSON list of objects, where each object is a log.
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 | eventType Query Parameter String Required Value should be a valid event type |
offset | Query Parameter | int | Optional | Value should be a valid integer number which will be used for pagination.Default will be 0 and max will be 100 |
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"
}
]