Difference between revisions of "API Upload Recording"
IVSWikiBlue (talk | contribs) |
IVSWikiBlue (talk | contribs) |
||
| (22 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
| − | This API is a two-part request that creates a video record and then uploads a video file to the specified record. | + | {{Aside - Helpful | content = This API is a two-part request that creates a video record and then uploads a video file to the specified record. |
| + | # [[#Create Upload Record|Create Upload Record]] | ||
| + | # [[#Upload Video to Record|Upload Video to Record]] | ||
| + | }} | ||
| − | = | + | |
| + | =Create Upload Record= | ||
===Request URL=== | ===Request URL=== | ||
<pre>http://valt.example.com/api/v3/records/create-upload</pre> | <pre>http://valt.example.com/api/v3/records/create-upload</pre> | ||
| Line 46: | Line 50: | ||
The JSON body must be properly formatted. All fields and values should be enclosed in double quotes and separated by a colon. | The JSON body must be properly formatted. All fields and values should be enclosed in double quotes and separated by a colon. | ||
{|class="wikitable" | {|class="wikitable" | ||
| − | !colspan="3"| | + | !colspan="3"|Data |
| + | !colspan="1"|Required | ||
|- | |- | ||
|colspan="2"|'''name''' | |colspan="2"|'''name''' | ||
|Recording Name | |Recording Name | ||
| + | |Yes | ||
|- | |- | ||
|colspan="2"|'''template''' | |colspan="2"|'''template''' | ||
|Array of additional information template fields. | |Array of additional information template fields. | ||
| + | |No | ||
|- | |- | ||
|colspan="2"|'''share''' | |colspan="2"|'''share''' | ||
| | | | ||
| + | |No | ||
|- | |- | ||
| | | | ||
| Line 68: | Line 76: | ||
==Response== | ==Response== | ||
| − | ===HTTP | + | ===HTTP Codes=== |
{|class="wikitable" | {|class="wikitable" | ||
!Code | !Code | ||
| Line 80: | Line 88: | ||
|- | |- | ||
|500 | |500 | ||
| − | | | + | |Invalid request payload |
|} | |} | ||
| − | |||
===JSON Body=== | ===JSON Body=== | ||
| Line 132: | Line 139: | ||
===Failure Responses=== | ===Failure Responses=== | ||
Sample responses are shown with line breaks to make it more readable. Actual responses will not include line breaks. | Sample responses are shown with line breaks to make it more readable. Actual responses will not include line breaks. | ||
| + | ====Invalid request payload==== | ||
<nowiki> | <nowiki> | ||
{ | { | ||
| Line 140: | Line 148: | ||
</nowiki> | </nowiki> | ||
| + | ====Unauthorized==== | ||
<nowiki> | <nowiki> | ||
{ | { | ||
| Line 159: | Line 168: | ||
| − | = | + | |
| − | === | + | =Upload Video to Record= |
| + | ===Request URL=== | ||
<pre>http://valt.example.com/api/v3/records/{recordID}/videos/{videoID}</pre> | <pre>http://valt.example.com/api/v3/records/{recordID}/videos/{videoID}</pre> | ||
| Line 172: | Line 182: | ||
|- | |- | ||
|'''Authentication Required''' | |'''Authentication Required''' | ||
| − | |Yes | + | |Yes (access token as a query parameter) |
|} | |} | ||
| + | ''Authentication is performed with an access token obtained from the [[API Authentication]] request.'' | ||
| − | ===Parameters=== | + | |
| + | ==Request Parameters== | ||
| + | ===Path Parameters=== | ||
{|class="wikitable" | {|class="wikitable" | ||
| − | + | !Name | |
| − | ! | + | !Type |
| + | !Description | ||
|- | |- | ||
| − | + | |'''recordID''' | |
| − | | | + | |string |
| + | |ID of the record to upload to | ||
|- | |- | ||
| − | + | |'''videoID''' | |
| − | | | + | |string |
| + | |ID of the video to upload to | ||
|} | |} | ||
| + | ===Query Parameters=== | ||
{|class="wikitable" | {|class="wikitable" | ||
| − | + | !Name | |
| − | ! | + | !Type |
| + | !Description | ||
|- | |- | ||
| − | + | |'''access_token''' | |
| − | | | + | |string |
| + | |Token used for authentication. Must be appended to the request URL. | ||
| + | |} | ||
| + | |||
| + | ===Headers=== | ||
| + | {|class="wikitable" | ||
| + | !Name | ||
| + | !Value | ||
|- | |- | ||
| − | |colspan=" | + | |colspan="1"|'''content-type''' |
| − | | | + | |multipart/form-data |
|- | |- | ||
| − | |colspan=" | + | |colspan="1"|'''content-range''' |
| − | | | + | |bytes 0-316620/316620 |
| + | |} | ||
| + | |||
| + | ===Body=== | ||
| + | The Body must be multipart/form-data and include the video file | ||
| + | {|class="wikitable" | ||
| + | !colspan="2"|Data | ||
| + | !colspan="1"|Required | ||
|- | |- | ||
| − | | | + | |colspan="1"|'''file''' |
| − | |''' | + | |Video File to upload |
| − | | | + | |Yes |
| − | |||
| − | |||
| − | |||
| − | | | ||
|} | |} | ||
| − | + | ||
| + | ==Response== | ||
{|class="wikitable" | {|class="wikitable" | ||
| Line 215: | Line 244: | ||
!Reason | !Reason | ||
|- | |- | ||
| − | | | + | |201 |
|Request Successful | |Request Successful | ||
| + | |- | ||
| + | |400 | ||
| + | |Invalid request payload or headers | ||
|- | |- | ||
|401 | |401 | ||
| Line 222: | Line 254: | ||
|- | |- | ||
|500 | |500 | ||
| − | | | + | |Invalid request payload |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|} | |} | ||
| Line 247: | Line 271: | ||
===Successful Response=== | ===Successful Response=== | ||
| − | Sample | + | There is no content returned on a successful response. |
| + | |||
| + | ===Failure Responses=== | ||
| + | Sample responses are shown with line breaks to make it more readable. Actual responses will not include line breaks. | ||
| + | ====Invalid Content-Range header value==== | ||
| + | <nowiki> | ||
| + | { | ||
| + | "data":{ | ||
| + | "message": "Invalid range data" | ||
| + | }, | ||
| + | "code": 400 | ||
| + | } | ||
| + | </nowiki> | ||
| + | |||
| + | ====The name or identifier for the file chunk is missing. This field must have a non-empty value.==== | ||
<nowiki> | <nowiki> | ||
{ | { | ||
| − | " | + | "data":{ |
| − | " | + | "message": "The chunk file was not transferred" |
| − | + | }, | |
| − | + | "code": 400 | |
} | } | ||
</nowiki> | </nowiki> | ||
| − | === | + | ====The file to upload is missing==== |
| − | |||
<nowiki> | <nowiki> | ||
{ | { | ||
| Line 267: | Line 304: | ||
</nowiki> | </nowiki> | ||
| + | ====Unauthorized==== | ||
<nowiki> | <nowiki> | ||
{ | { | ||
Latest revision as of 10:49, 28 May 2025
Contents
Create Upload Record
Request URL
http://valt.example.com/api/v3/records/create-upload
Resource Information
| Method | POST |
| Response Type | JSON |
| Authentication Required | Yes (access token as a query parameter) |
Authentication is performed with an access token obtained from the API Authentication request.
Request Parameters
Path Parameters
No path parameters are required for this request.
Query Parameters
| Name | Type | Description |
|---|---|---|
| access_token | string | Token used for authentication. Must be appended to the request URL. |
Headers
| Name | Value |
|---|---|
| Content-Type | application/json |
Body
The JSON body must be properly formatted. All fields and values should be enclosed in double quotes and separated by a colon.
| Data | Required | ||
|---|---|---|---|
| name | Recording Name | Yes | |
| template | Array of additional information template fields. | No | |
| share | No | ||
| groups | Array of group IDs the video is shared with in addition to default video permissions. | ||
| users | Array of user IDs the video is shared with in addition to default video permissions. | ||
Response
HTTP Codes
| Code | Reason |
|---|---|
| 200 | Request Successful |
| 401 | Unauthorized |
| 500 | Invalid request payload |
JSON Body
| data | |
|---|---|
| id | Record ID |
| videos | Video ID |
Examples
Request
https://ivssvdev1.ad.ipivs.com/api/v3/records/create-upload?access_token=2407c9d2cfde75c49e5d356ee9f83422
Example 1
{
"name": "Upload Recording"
}
Example 2
{
"name": "Upload Recording",
"template": {
"1": "Field Value 1",
"2": "Field Value 2",
},
"share": {
"users": [1, 2, 3],
"groups": [4, 5, 6]
}
}
Successful Response
Sample response is shown with line breaks to make it more readable. Actual responses will not include line breaks.
{
"id": "1bc87bea-9412-43f1-9e95-dbad0e60c99a",
"videos":[
"198016d2-edf4-4eaa-aa84-1545b07270e2"
]
}
Failure Responses
Sample responses are shown with line breaks to make it more readable. Actual responses will not include line breaks.
Invalid request payload
{
"error":{
"code":500,
"message":"Internal Server Error"
}
Unauthorized
{
"error":{
"code":401,
"message":"No API token provided"
}
}
{
"error":{
"code": 401,
"message": "Bad credentials."
}
}
Upload Video to Record
Request URL
http://valt.example.com/api/v3/records/{recordID}/videos/{videoID}
Resource Information
| Method | POST |
| Response Type | multipart/form-data |
| Authentication Required | Yes (access token as a query parameter) |
Authentication is performed with an access token obtained from the API Authentication request.
Request Parameters
Path Parameters
| Name | Type | Description |
|---|---|---|
| recordID | string | ID of the record to upload to |
| videoID | string | ID of the video to upload to |
Query Parameters
| Name | Type | Description |
|---|---|---|
| access_token | string | Token used for authentication. Must be appended to the request URL. |
Headers
| Name | Value |
|---|---|
| content-type | multipart/form-data |
| content-range | bytes 0-316620/316620 |
Body
The Body must be multipart/form-data and include the video file
| Data | Required | |
|---|---|---|
| file | Video File to upload | Yes |
Response
| Code | Reason |
|---|---|
| 201 | Request Successful |
| 400 | Invalid request payload or headers |
| 401 | Unauthorized |
| 500 | Invalid request payload |
Examples
Request
https://ivssvdev1.ad.ipivs.com/api/v3/records/1bc87bea-9412-43f1-9e95-dbad0e60c99a/videos/198016d2-edf4-4eaa-aa84-1545b07270e2?access_token=2407c9d2cfde75c49e5d356ee9f83422
Headers
"Content-Type": "multipart/form-data" "Content-Range": "bytes 0-316620/316620"
Body
file [File] = {Video File}
Successful Response
There is no content returned on a successful response.
Failure Responses
Sample responses are shown with line breaks to make it more readable. Actual responses will not include line breaks.
Invalid Content-Range header value
{
"data":{
"message": "Invalid range data"
},
"code": 400
}
The name or identifier for the file chunk is missing. This field must have a non-empty value.
{
"data":{
"message": "The chunk file was not transferred"
},
"code": 400
}
The file to upload is missing
{
"error":{
"code":500,
"message":"Internal Server Error"
}
Unauthorized
{
"error":{
"code":401,
"message":"No API token provided"
}
}
{
"error":{
"code": 401,
"message": "Bad credentials."
}
}