\n```\n\n\n### Dealing with large files\n\nWe have created a tutorial to walk through the steps required.", "tags": ["Videos - Delegated upload"], "parameters": [{"name": "token", "in": "query", "description": "The unique identifier for the token you want to use to upload a video.", "required": true, "schema": {"type": "string"}}, {"name": "Content-Range", "in": "header", "description": "Content-Range represents the range of bytes that will be returned as a result of the request. Byte ranges are inclusive, meaning that bytes 0-999 represents the first 1000 bytes in a file or object.", "schema": {"type": "string", "pattern": "^bytes [0-9]*-[0-9]*\\/[0-9]*$"}}], "requestBody": {"content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/token-upload-payload"}}}}, "responses": {"201": {"description": "Created", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/video"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}}, "/upload-tokens": {"get": {"summary": "List all active upload tokens.", "description": "A delegated token is used to allow secure uploads without exposing your API key. Use this endpoint to retrieve a list of all currently active delegated tokens.\nTutorials using [delegated upload](https://api.video/blog/endpoints/delegated-upload).", "tags": ["Videos - Delegated upload"], "parameters": [{"name": "", "in": "query", "schema": {"type": "string"}}, {"name": "sortBy", "in": "query", "description": "Allowed: createdAt, ttl. You can use these to sort by when a token was created, or how much longer the token will be active (ttl - time to live). Date and time is presented in ISO-8601 format.", "schema": {"enum": ["createdAt", "ttl"], "type": "string"}}, {"name": "sortOrder", "in": "query", "description": "Allowed: asc, desc. Ascending is 0-9 or A-Z. Descending is 9-0 or Z-A.", "schema": {"enum": ["asc", "desc"], "type": "string"}}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}, "post": {"summary": "Generate an upload token", "description": "Use this endpoint to generate an upload token. You can use this token to authenticate video uploads while keeping your API key safe. Tutorials using [delegated upload](https://api.video/blog/endpoints/delegated-upload).", "tags": ["Videos - Delegated upload"], "requestBody": {}, "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}}, "/upload-tokens/{uploadToken}": {"get": {"summary": "Show upload token", "description": "You can retrieve details about a specific upload token if you have the unique identifier for the upload token. Add it in the path of the endpoint. Details include time-to-live (ttl), when the token was created, and when it will expire.", "tags": ["Videos - Delegated upload"], "parameters": [{"name": "uploadToken", "in": "path", "description": "The unique identifier for the token you want information about.", "required": true, "schema": {"type": "string"}}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}, "delete": {"summary": "Delete an upload token", "description": "Delete an existing upload token. This is especially useful for tokens you may have created that do not expire.", "tags": ["Videos - Delegated upload"], "parameters": [{"name": "uploadToken", "in": "path", "description": "The unique identifier for the token you want information about.", "required": true, "schema": {"type": "string"}}], "responses": {"204": {"description": "No Content"}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}}, "/videos": {"get": {"summary": "List all videos", "description": "Requests to this endpoint return a list of your videos (with all their details). With no parameters added to this query, the API returns all videos. You can filter what videos the API returns using the parameters described below. We have [several tutorials](https://api.video/blog/endpoints/video-list) that demonstrate this endpoint.", "tags": ["Videos"], "parameters": [{"name": "", "in": "query", "schema": {"type": "string"}}, {"name": "description", "in": "query", "description": "If you described a video with a term or sentence, you can add it here to return videos containing this string.", "schema": {"type": "string"}}, {"name": "liveStreamId", "in": "query", "description": "If you know the ID for a live stream, you can retrieve the stream by adding the ID for it here.", "schema": {"type": "string"}}, {"name": "metadata", "in": "query", "description": "Videos can be tagged with metadata tags in key:value pairs. You can search for videos with specific key value pairs using this parameter. [Dynamic Metadata](https://api.video/blog/endpoints/dynamic-metadata) allows you to define a key that allows any value pair.", "schema": {"type": "array", "items": {"type": "string"}}}, {"name": "sortBy", "in": "query", "description": "Allowed: publishedAt, title. You can search by the time videos were published at, or by title.", "schema": {"type": "string"}}, {"name": "sortOrder", "in": "query", "description": "Allowed: asc, desc. asc is ascending and sorts from A to Z. desc is descending and sorts from Z to A.", "schema": {"type": "string"}}, {"name": "tags", "in": "query", "description": "A tag is a category you create and apply to videos. You can search for videos with particular tags by listing one or more here. Only videos that have all the tags you list will be returned.", "schema": {"type": "array", "items": {"type": "string"}}}, {"name": "title", "in": "query", "description": "The title of a specific video you want to find. The search will match exactly to what term you provide and return any videos that contain the same term as part of their titles.", "schema": {"type": "string"}}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}, "post": {"summary": "Create a video", "description": "To create a video, you create its container¶meters first, before adding the video file (exception - when using an existing HTTP source).\n* Videos are public by default. [Learn about Private videos](https://api.video/blog/tutorials/tutorial-private-videos)\n* Up to 6 responsive video streams will be created (from 240p to 4k)\n* Mp4 encoded versions are created at the highest quality (max 1080p) by default.\n* Panoramic videos are for videos recorded in 360 degrees. You can toggle this after your 360 video upload.\n* Searchable parameters: title, description, tags and metadata\n\n ```shell\n$ curl https://ws.api.video/videos \\ -H 'Authorization: Bearer {access_token} \\ -d '{\"title\":\"My video\", \n \"description\":\"so many details\",\n \"mp4Support\":true\n}'\n``` \n\n## add an URL to upload on creation\nYou can also create a video directly from a video hosted on a third-party server by giving its URI in `source` parameter:\n```shell\n$ curl https://ws.api.video/videos \\\n-H 'Authorization: Bearer {access_token} \\\n-d '{\"source\":\"http://uri/to/video.mp4\", \"title\":\"My video\"}'\n```\n\nIn this case, the service will respond `202 Accepted` and ingest the video asynchronously.\n## Track users with Dynamic Metadata\nMetadata values can be a key:value where the values are predefined, but Dynamic metadata allows you to enter *any* value for a defined key. To defined a dynamic metadata pair use:\n``` \"metadata\":[{\"dynamicKey\": \"__dynamicKey__\"}] ```\n\nThe double underscore on both sides of the value allows any variable to be added for a given video session. Added the the url you might have:\n``` ```\n\n\nThis video session will be tagged as watched by Doug - allowing for in-depth analysis on how each viewer interacts with the videos.\n### We have tutorials on:\n* [Creating and uploading videos](https://api.video/blog/tutorials/video-upload-tutorial)\n* [Uploading large videos](https://api.video/blog/tutorials/video-upload-tutorial-large-videos)\n\n\n* [Using tags with videos](https://api.video/blog/tutorials/video-tagging-best-practices)\n* [Private videos](https://api.video/blog/tutorials/tutorial-private-videos)\n* [Using Dynamic Metadata](https://api.video/blog/tutorials/dynamic-metadata)\n\n* Full list of [tutorials](https://api.video/blog/endpoints/video-create) that demonstrate this endpoint.\n", "tags": ["Videos"], "requestBody": {"description": "video to create"}, "responses": {"201": {"description": "Created", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/video"}}}}, "202": {"description": "Accepted", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/video"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}}, "/videos/{videoId}": {"get": {"summary": "Show a video", "description": "This call provides the same JSON information provided on video creation. For private videos, it will generate a unique token url. Use this to retrieve any details you need about a video, or set up a private viewing URL. Tutorials using [video GET](https://api.video/blog/endpoints/video-get).", "tags": ["Videos"], "parameters": [{"name": "videoId", "in": "path", "description": "The unique identifier for the video you want details about.", "required": true, "schema": {"type": "string"}}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/video"}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}, "patch": {"summary": "Update a video", "description": "Use this endpoint to update the parameters associated with your video. The video you are updating is determined by the video ID you provide in the path. For each parameter you want to update, include the update in the request body. NOTE: If you are updating an array, you must provide the entire array as what you provide here overwrites what is in the system rather than appending to it. Tutorials using [video update](https://api.video/blog/endpoints/video-update).", "tags": ["Videos"], "parameters": [{"name": "videoId", "in": "path", "description": "The unique identifier for the video you want details about.", "required": true, "schema": {"type": "string"}}], "requestBody": {}, "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/video"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}, "delete": {"summary": "Delete a video", "description": "If you do not need a video any longer, you can send a request to delete it. All you need is the videoId. Tutorials using [video deletion](https://api.video/blog/endpoints/video-delete).", "tags": ["Videos"], "parameters": [{"name": "videoId", "in": "path", "description": "The unique identifier for the video you want details about.", "required": true, "schema": {"type": "string"}}], "responses": {"204": {"description": "No Content"}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}}, "/videos/{videoId}/captions": {"get": {"summary": "List video captions", "description": "Retrieve a list of available captions for the videoId you provide.", "tags": ["Captions"], "parameters": [{"name": "videoId", "in": "path", "description": "The unique identifier for the video you want to retrieve a list of captions for.", "required": true, "schema": {"type": "string"}}, {"name": "", "in": "query", "schema": {"type": "string"}}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}}, "/videos/{videoId}/captions/{language}": {"get": {"summary": "Show a caption", "description": "Display a caption for a video in a specific language. If the language is available, the caption is returned. Otherwise, you will get a response indicating the caption was not found.\nTutorials that use the [captions endpoint](https://api.video/blog/endpoints/captions).", "tags": ["Captions"], "parameters": [{"name": "language", "in": "path", "description": "A valid [BCP 47](https://github.com/libyal/libfwnt/wiki/Language-Code-identifiers) language representation", "required": true, "schema": {"type": "string"}}, {"name": "videoId", "in": "path", "description": "The unique identifier for the video you want captions for.", "required": true, "schema": {"type": "string"}}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}, "post": {"summary": "Upload a caption", "description": "Upload a VTT file to add captions to your video.\n Read our [captioning tutorial](https://api.video/blog/tutorials/adding-captions) for more details.", "tags": ["Captions"], "parameters": [{"name": "language", "in": "path", "description": "A valid [BCP 47](https://github.com/libyal/libfwnt/wiki/Language-Code-identifiers) language representation", "required": true, "schema": {"type": "string"}}, {"name": "videoId", "in": "path", "description": "The unique identifier for the video you want captions for.", "required": true, "schema": {"type": "string"}}], "requestBody": {"content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/captions-upload-payload"}}}}, "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}, "patch": {"summary": "Update caption", "description": "To have the captions on automatically, use this PATCH to set default: true.", "tags": ["Captions"], "parameters": [{"name": "language", "in": "path", "description": "A valid [BCP 47](https://github.com/libyal/libfwnt/wiki/Language-Code-identifiers) language representation", "required": true, "schema": {"type": "string"}}, {"name": "videoId", "in": "path", "description": "The unique identifier for the video you want captions for.", "required": true, "schema": {"type": "string"}}], "requestBody": {}, "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}, "delete": {"summary": "Delete a caption", "description": "Delete a caption in a specific language by providing the video ID for the video you want to delete the caption from and the language the caption is in.", "tags": ["Captions"], "parameters": [{"name": "language", "in": "path", "description": "A valid [BCP 47](https://github.com/libyal/libfwnt/wiki/Language-Code-identifiers) language representation", "required": true, "schema": {"type": "string"}}, {"name": "videoId", "in": "path", "description": "The unique identifier for the video you want captions for.", "required": true, "schema": {"type": "string"}}], "responses": {"204": {"description": "No Content"}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}}, "/videos/{videoId}/chapters": {"get": {"summary": "List video chapters", "description": "Retrieve a list of all chapters for a specified video.", "tags": ["Chapters"], "parameters": [{"name": "videoId", "in": "path", "description": "The unique identifier for the video you want to retrieve a list of chapters for.", "required": true, "schema": {"type": "string"}}, {"name": "", "in": "query", "schema": {"type": "string"}}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}}, "/videos/{videoId}/chapters/{language}": {"get": {"summary": "Show a chapter", "description": "Chapters help your viewers find the sections of the video they are most interested in viewing. Tutorials that use the [chapters endpoint](https://api.video/blog/endpoints/chapters).", "tags": ["Chapters"], "parameters": [{"name": "language", "in": "path", "description": "A valid [BCP 47](https://github.com/libyal/libfwnt/wiki/Language-Code-identifiers) language representation.", "required": true, "schema": {"type": "string"}}, {"name": "videoId", "in": "path", "description": "The unique identifier for the video you want to show a chapter for.", "required": true, "schema": {"type": "string"}}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}, "post": {"summary": "Upload a chapter", "description": "Chapters help break the video into sections. Read our [tutorial](https://api.video/blog/tutorials/adding-chapters-to-your-videos) for more details.", "tags": ["Chapters"], "parameters": [{"name": "language", "in": "path", "description": "A valid [BCP 47](https://github.com/libyal/libfwnt/wiki/Language-Code-identifiers) language representation.", "required": true, "schema": {"type": "string"}}, {"name": "videoId", "in": "path", "description": "The unique identifier for the video you want to show a chapter for.", "required": true, "schema": {"type": "string"}}], "requestBody": {}, "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}, "delete": {"summary": "Delete a chapter", "tags": ["Chapters"], "parameters": [{"name": "language", "in": "path", "description": "A valid [BCP 47](https://github.com/libyal/libfwnt/wiki/Language-Code-identifiers) language representation.", "required": true, "schema": {"type": "string"}}, {"name": "videoId", "in": "path", "description": "The unique identifier for the video you want to show a chapter for.", "required": true, "schema": {"type": "string"}}], "responses": {"204": {"description": "No Content"}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}}, "/videos/{videoId}/source": {"post": {"summary": "Upload a video", "description": "To upload a video to the videoId you created. Replace {videoId} with the id you'd like to use, {access_token} with your token, and /path/to/video.mp4 with the path to the video you'd like to upload. You can only upload your video to the videoId once.\n```bash\ncurl https://ws.api.video/videos/{videoId}/source \\\n -H 'Authorization: Bearer {access_token}' \\\n -F file=@/path/to/video.mp4\n\n ```\nTutorials using [video upload](https://api.video/blog/endpoints/video-upload).", "tags": ["Videos"], "parameters": [{"name": "videoId", "in": "path", "description": "Enter the videoId you want to use to upload your video.", "required": true, "schema": {"type": "string"}}, {"name": "Content-Range", "in": "header", "description": "Content-Range represents the range of bytes that will be returned as a result of the request. Byte ranges are inclusive, meaning that bytes 0-999 represents the first 1000 bytes in a file or object.", "schema": {"type": "string", "pattern": "^bytes [0-9]*-[0-9]*\\/[0-9]*$"}}], "requestBody": {"content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/video-upload-payload"}}}}, "responses": {"201": {"description": "Created", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/video"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}}, "/videos/{videoId}/status": {"get": {"summary": "Show video status", "description": "This API provides upload status & encoding status to determine when the video is uploaded or ready to playback. Once encoding is completed, the response also lists the available stream qualities. Tutorials using [video status](https://api.video/blog/endpoints/video-status).", "tags": ["Videos"], "parameters": [{"name": "videoId", "in": "path", "description": "The unique identifier for the video you want the status for.", "required": true, "schema": {"type": "string"}}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}}, "/videos/{videoId}/thumbnail": {"post": {"summary": "Upload a thumbnail", "description": "The thumbnail is the poster that appears in the player window before video playback begins.\nThis endpoint allows you to upload an image for the thumbnail.\nTo select a still frame from the video using a time stamp, use [Pick a Thumbnail](https://docs.api.video/reference#patch_videos-videoid-thumbnail) to pick a time in the video. \nNote: There may be a short delay before the new thumbnail is delivered to our CDN.\nTutorials using [Thumbnail upload](https://api.video/blog/endpoints/videos-upload-a-thumbnail).", "tags": ["Videos"], "parameters": [{"name": "videoId", "in": "path", "description": "Unique identifier of the chosen video ", "required": true, "schema": {"type": "string"}}], "requestBody": {"content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/video-thumbnail-upload-payload"}}}}, "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/video"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}, "patch": {"summary": "Pick a thumbnail", "description": "Pick a thumbnail from the given time code. If you'd like to upload an image for your thumbnail, use the [Upload a Thumbnail](https://docs.api.video/reference#post_videos-videoid-thumbnail) endpoint. There may be a short delay for the thumbnail to update.\nTutorials using [Thumbnail picking](https://api.video/blog/endpoints/video-pick-a-thumbnail).", "tags": ["Videos"], "parameters": [{"name": "videoId", "in": "path", "description": "Unique identifier of the chosen video ", "required": true, "schema": {"type": "string"}}], "requestBody": {}, "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/video"}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}}, "/webhooks": {"get": {"summary": "List all webhooks", "description": "Requests to this endpoint return a list of your webhooks (with all their details). You can filter what the webhook list that the API returns using the parameters described below.", "tags": ["Webhooks"], "parameters": [{"name": "", "in": "query", "schema": {"type": "string"}}, {"name": "events", "in": "query", "description": "The webhook event that you wish to filter on.", "schema": {"type": "string"}}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}, "post": {"summary": "Create Webhook", "description": "Webhooks can push notifications to your server, rather than polling api.video for changes. We currently offer four events: \n* ```video.encoding.quality.completed``` When a new video is uploaded into your account, it will be encoded into several different HLS sizes/bitrates. When each version is encoded, your webhook will get a notification. It will look like ```{ \\\"type\\\": \\\"video.encoding.quality.completed\\\", \\\"emittedAt\\\": \\\"2021-01-29T16:46:25.217+01:00\\\", \\\"videoId\\\": \\\"viXXXXXXXX\\\", \\\"encoding\\\": \\\"hls\\\", \\\"quality\\\": \\\"720p\\\"} ```. This request says that the 720p HLS encoding was completed.\n* ```live-stream.broadcast.started``` When a livestream begins broadcasting, the broadcasting parameter changes from false to true, and this webhook fires.\n* ```live-stream.broadcast.ended``` This event fores when the livestream has finished broadcasting, and the broadcasting parameter flips from false to true.\n* ```video.source.recorded``` This event is similar to ```video.encoding.quality.completed```, but tells you if a livestream has been recorded as a VOD.", "tags": ["Webhooks"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/webhooks-create-payload"}}}}, "responses": {"201": {"description": "Created", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}}, "/webhooks/{webhookId}": {"get": {"summary": "Show Webhook details", "description": "This call provides the same JSON information provided on Webjhook creation.", "tags": ["Webhooks"], "parameters": [{"name": "webhookId", "in": "path", "description": "The unique webhook you wish to retreive details on.", "required": true, "schema": {"type": "string"}}], "responses": {"200": {"description": "Success", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}, "delete": {"summary": "Delete a Webhook", "description": "This endpoint will delete the indicated webhook.", "tags": ["Webhooks"], "parameters": [{"name": "webhookId", "in": "path", "description": "The unique webhook you wish to retreive details on.", "required": true, "schema": {"type": "string"}}], "responses": {"204": {"description": "No Content"}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"type": "object", "properties": []}}}}}}}}, "components": {"schemas": {"AccessToken": {"type": "object", "title": "AccessToken", "example": {"expires_in": 3600, "token_type": "qui nulla l", "access_token": "est", "refresh_token": "cillum"}, "properties": {"access_token": {"type": "string", "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjUyZWM4NWUyMjFkODZjOWI0NDQ5NzBhMjQwMzUyOWQ4MDQyNGQ3ZmJjYjFlYWM2MjVlM2VkMjI2YWRlNTcxMDY2NDUyZDc0NjdhN2E4NjI0In0.eyJhdWQiOiJsaWJjYXN0IiwianRpIjoiNTJlYzg1ZTIyMWQ4NmM5YjQ0NDk3MGEyNDAzNTI5ZDgwNDI0ZDdmYmNiMWVhYzYyNWUzZWQyMjZhZGU1NzEwNjY0NTJkNzQ2N2E3YTg2MjQiLCJpYXQiOjE1MjUyNzYxNDcsIm5iZiI6MTUyNTI3NjE0NywiZXhwIjoxNTI1Mjc5NzQ3LCJzdWIiOiJ1c01vbml0b3IiLCJzY29wZXMiOlsibW9uaXRvci5saWJjYXN0LmNvbSJdLCJjb250ZXh0Ijp7InVzZXIiOiJ1c01vbml0b3IiLCJwcm9qZWN0IjoicHJNb25pdG9yIiwibWVtYmVyIjoibWVNb25pdG9yIn19.rUvishDNyJLNlI4W5VmguNecm5KD2uZgPkKJQbaqw-cJbSrVxkSbiKYtk_E3cz3WT7-IS2yFTsYN3uIo5Rbit8_HftweyEp2bdBRI8yjR6oZZ1sNJJXswISN1i2kk4r-aaxu7Xxf_LtsjOMUj_YZsvcc2nqBXPKjHbJCJryx3DDJaIcymOqao7nhQaCCQyrQooAXNTYs4E9fWN1dC_x2O-zok5TuG-xhEW-umwxfSUMWNgSTkz38ACceQ0PCJSgB3jqjDH4MwC7B3ppEPZuK5E6JhKeyRlalswRyYq3UQPnVeMTam7YQHsuTgbehF6WySW8i44o7V_MCe9hjPdp-WA"}, "expires_in": {"type": "integer"}, "refresh_token": {"type": "string", "example": "def50200a28d88fb9aaa921be78eeb5604b071101a334899a7d5fc7492cf8ea752962ddc8961fe5c126101d4ecacd980396eb2fd494995b812dffcb98256c4277f790d1f658fc2d2e34f350740544e5232d69d68d34c648271d706c5e7049adac0b1832d0fdf71809715cc7e97fa63f65966deadb501a55ff469b0fd23a637cb6acbe9d9b8594a17f09efc2efeed82984764a0065d5e29c950c7b081a61ba2aaa192be3085c400ee37eac50fa9320ce2cfe8916c8165418d23e9f91b6a5c8515e1d74ee193a5a1ca01954fbff27361c20184240be2359e0afbed0bf1c762cf872450b5e8b5d4704f4fd9583e4470adc98409dd42965709712806bd9019378a72eea0b4912ce684ffd833db5806ab84174f905db2a75380071d004615c944bb8f8c4045cce7234c2be9a2330522cf7f067b8e58f57cffb6edb4b7ef91313e12bcde47e5e76ceee7fa52990132288f345d33ed917ae4fd54b7284f8964d898e97e1ee3bc4157f75d7fee63976e4be66ac1ec32ef74afa533f0eb593523f226cbec57d196ac8962"}, "token_type": {"type": "string", "default": "bearer"}}}, "Account": {"type": "object", "title": "Account", "deprecated": true, "properties": {"environment": {"type": "string"}, "features": {"type": "array", "items": {"type": "string"}, "example": ["app.dynamic_metadata, app.event_log"]}, "quota": {"type": "object", "properties": {"quotaRemaining": {"type": "number"}, "quotaTotal": {"type": "number"}, "quotaUsed": {"type": "number"}}}}}, "BadRequest": {"type": "object", "title": "BadRequest", "properties": {"name": {"type": "string"}, "problems": {"type": "array", "items": {"$ref": "#/components/schemas/bad-request"}, "uniqueItems": true}, "status": {"type": "integer"}, "title": {"type": "string"}, "type": {"type": "string"}}}, "Chapter": {"type": "object", "title": "Chapter", "properties": {"language": {"type": "string"}, "src": {"type": "string", "example": "https://cdn.api.video/vod/vi3N6cDinStg3oBbN79GklWS/chapters/fr.vtt"}, "uri": {"type": "string"}}}, "Live Stream Session": {"type": "object", "title": "Live Stream Session", "properties": {"client": {"$ref": "#/components/schemas/live_stream_session_client"}, "device": {"$ref": "#/components/schemas/live_stream_session_device"}, "location": {"$ref": "#/components/schemas/live_stream_session_location"}, "os": {"$ref": "#/components/schemas/video_session_os"}, "referrer": {"$ref": "#/components/schemas/live_stream_session_referrer"}, "session": {"$ref": "#/components/schemas/live_stream_session_session"}}}, "LiveStream": {"type": "object", "title": "LiveStream", "properties": {"assets": {"$ref": "#/components/schemas/live_stream_assets"}, "broadcasting": {"type": "boolean", "example": true}, "liveStreamId": {"type": "string", "example": "li400mYKSgQ6xs7taUeSaEKr"}, "name": {"type": "string", "example": "My Live Stream"}, "playerId": {"type": "string", "example": "pl45d5vFFGrfdsdsd156dGhh"}, "public": {"type": "boolean", "example": true}, "record": {"type": "boolean", "example": true}, "streamKey": {"type": "string", "example": "cc1b4df0-d1c5-4064-a8f9-9f0368385135"}}}, "LiveStreamSessions": {"type": "object", "title": "LiveStreamSessions", "properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/live-stream-session"}}, "pagination": {"$ref": "#/components/schemas/pagination"}}}, "LiveStreamUpdatePayload": {"type": "object", "title": "LiveStreamUpdatePayload", "properties": {"name": {"type": "string", "example": "My Live Stream Video"}, "playerId": {"type": "string", "example": "pl45KFKdlddgk654dspkze"}, "public": {"type": "boolean"}, "record": {"type": "boolean", "example": true}}}, "LiveStreams": {"type": "object", "title": "LiveStreams", "properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/live-stream"}}, "pagination": {"$ref": "#/components/schemas/pagination"}}, "required": ["data", "pagination"]}, "NotFound": {"type": "object", "title": "NotFound", "properties": {"name": {"type": "string"}, "status": {"type": "integer"}, "title": {"type": "string"}, "type": {"type": "string"}}}, "Pagination": {"type": "object", "title": "Pagination", "example": {"links": {"last": {"rel": "last", "uri": "/videos/search?currentPage=6&pageSize=20"}, "next": {"rel": "next", "uri": "/videos/search?currentPage=4&pageSize=20"}, "first": {"rel": "first", "uri": "/videos/search?currentPage=1&pageSize=20"}, "previous": {"rel": "previous", "uri": "/videos/search?currentPage=2&pageSize=20"}}, "pageSize": 20, "itemsTotal": 123, "pagesTotal": 7, "currentPage": 3, "currentPageItems": 20}, "properties": {"currentPage": {"type": "integer", "readOnly": true}, "currentPageItems": {"type": "integer", "readOnly": true}, "itemsTotal": {"type": "integer", "readOnly": true}, "links": {"type": "array", "items": {"$ref": "#/components/schemas/pagination_link"}}, "pageSize": {"type": "integer", "readOnly": true}, "pagesTotal": {"type": "integer", "readOnly": true}}, "required": ["links"]}, "PaginationLink": {"type": "object", "title": "PaginationLink", "properties": {"rel": {"type": "string", "pattern": "^self$"}, "uri": {"type": "string", "format": "uri"}}}, "Player": {"type": "object", "title": "Player", "allOf": [{"$ref": "#/components/schemas/playerinput"}, {"type": "object", "properties": {"assets": {"type": "object", "properties": {"link": {"type": "string", "example": "path/to/my/logo/mylogo.jpg", "description": "The path to the file containing your logo."}, "logo": {"type": "string", "example": "mylogo.jpg", "description": "The name of the file containing the logo you want to use."}}}, "playerId": {"type": "string", "example": "pl45KFKdlddgk654dspkze"}, "createdAt": {"type": "string", "format": "date-time", "example": "2020-01-31T10:17:47+00:00", "description": "When the player was created, presented in ISO-8601 format."}, "updatedAt": {"type": "string", "format": "date-time", "example": "2020-01-31T10:18:47+00:00", "description": "When the player was last updated, presented in ISO-8601 format."}, "linkActive": {"type": "string", "description": "Deprecated"}, "shapeAspect": {"type": "string", "description": "Deprecated"}, "shapeMargin": {"type": "integer", "description": "Deprecated"}, "shapeRadius": {"type": "integer", "description": "Deprecated"}, "shapeBackgroundTop": {"type": "string", "description": "Deprecated"}, "shapeBackgroundBottom": {"type": "string", "description": "Deprecated"}}}], "properties": {"assets": {"type": "object", "properties": {"link": {"type": "string", "example": "path/to/my/logo/mylogo.jpg"}, "logo": {"type": "string", "example": "mylogo.jpg"}}}, "createdAt": {"type": "string", "format": "date-time", "example": "2020-01-31T10:17:47+00:00"}, "linkActive": {"type": "string"}, "playerId": {"type": "string", "example": "pl45KFKdlddgk654dspkze"}, "shapeAspect": {"type": "string"}, "shapeBackgroundBottom": {"type": "string"}, "shapeBackgroundTop": {"type": "string"}, "shapeMargin": {"type": "integer"}, "shapeRadius": {"type": "integer"}, "updatedAt": {"type": "string", "format": "date-time", "example": "2020-01-31T10:18:47+00:00"}}}, "Player Session Event": {"type": "object", "title": "Player Session Event", "properties": {"at": {"type": "integer"}, "emittedAt": {"type": "string", "format": "date-time", "example": "2019-06-24T11:45:01.109+00"}, "from": {"type": "integer"}, "to": {"type": "integer"}, "type": {"type": "string", "example": "play"}}}, "PlayerInput": {"type": "object", "title": "PlayerInput", "example": {"link": "rgba(255, 0, 0, .95)", "text": "rgba(255, 255, 255, .95)", "assets": {"link": "https://api.video", "logo": "https://cdn.api.video/player/pl14Db6oMJRH6SRVoOwORacK/logo.png"}, "language": "en", "enableApi": true, "forceLoop": false, "hideTitle": false, "linkHover": "rgba(255, 255, 255, .75)", "linkActive": "rgba(255, 0, 0, .75)", "shapeAspect": "flat", "shapeMargin": 10, "shapeRadius": 3, "trackPlayed": "rgba(255, 255, 255, .95)", "backgroundTop": "rgba(72, 4, 45, 1)", "forceAutoplay": false, "trackUnplayed": "rgba(255, 255, 255, .1)", "backgroundText": "rgba(255, 255, 255, .95)", "enableControls": true, "trackBackground": "rgba(0, 0, 0, 0)", "backgroundBottom": "rgba(94, 95, 89, 1)", "shapeBackgroundTop": "rgba(50, 50, 50, .7)", "shapeBackgroundBottom": "rgba(50, 50, 50, .8)"}, "properties": {"backgroundBottom": {"type": "string"}, "backgroundText": {"type": "string"}, "backgroundTop": {"type": "string"}, "enableApi": {"type": "boolean", "default": true}, "enableControls": {"type": "boolean", "default": true}, "forceAutoplay": {"type": "boolean", "default": false}, "forceLoop": {"type": "boolean", "default": false}, "hideTitle": {"type": "boolean", "default": false}, "link": {"type": "string"}, "linkHover": {"type": "string"}, "text": {"type": "string"}, "trackBackground": {"type": "string"}, "trackPlayed": {"type": "string"}, "trackUnplayed": {"type": "string"}}}, "PlayerSessionEvents": {"type": "object", "title": "PlayerSessionEvents", "properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/player-session-event"}}, "pagination": {"$ref": "#/components/schemas/pagination"}}}, "Players": {"type": "object", "title": "Players", "properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/player"}}, "pagination": {"$ref": "#/components/schemas/pagination"}}}, "Subtitle": {"type": "object", "title": "Subtitle", "properties": {"default": {"type": "boolean", "default": false, "example": false}, "src": {"type": "string"}, "srclang": {"type": "string"}, "uri": {"type": "string"}}}, "UpdateCaptionPayload": {"type": "object", "title": "UpdateCaptionPayload", "properties": {"default": {"type": "boolean"}}}, "UpdateChapterPayload": {"type": "object", "title": "UpdateChapterPayload", "properties": {"file": {"type": "string", "format": "binary"}}, "required": ["file"]}, "UploadToken": {"type": "object", "title": "UploadToken", "properties": {"createdAt": {"type": "string", "format": "date-time", "example": "2019-12-16T08:25:51+00:00"}, "expiresAt": {"type": "string", "format": "date-time", "example": "2019-12-16T09:25:51+00:00"}, "token": {"type": "string", "example": "to1tcmSFHeYY5KzyhOqVKMKb"}, "ttl": {"type": "integer", "maximum": 2147483647, "minimum": 0}}}, "Video Session": {"type": "object", "title": "Video Session", "example": {"os": {"name": "Microsoft Windows", "version": "Windows10", "shortname": "W10"}, "client": {"name": "Firefox", "type": "browser", "version": "67.0"}, "device": {"type": "desktop", "model": "unknown", "vendor": "Dell"}, "session": {"endedAt": "2019-06-24T11:49:19.243+00", "loadedAt": "2019-06-24T11:45:01.109+00", "sessionId": "psEmFwGQUAXR2lFHj5nDOpy"}, "location": {"city": "Paris", "country": "France"}, "referrer": {"url": "https://api.video", "medium": "organic", "source": "https://google.com", "searchTerm": "video encoding hosting and delivery"}}, "properties": {"client": {"$ref": "#/components/schemas/video_session_client"}, "device": {"$ref": "#/components/schemas/video_session_device"}, "location": {"$ref": "#/components/schemas/video_session_location"}, "os": {"$ref": "#/components/schemas/video_session_os"}, "referrer": {"$ref": "#/components/schemas/video_session_referrer"}, "session": {"$ref": "#/components/schemas/video_session_session"}}}, "VideoCaptions": {"type": "object", "title": "VideoCaptions", "properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/subtitle"}}, "pagination": {"$ref": "#/components/schemas/pagination"}}}, "VideoChapters": {"type": "object", "title": "VideoChapters", "properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/chapter"}}, "pagination": {"$ref": "#/components/schemas/pagination"}}}, "VideoSessions": {"type": "object", "title": "VideoSessions", "properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/video-session"}}, "pagination": {"$ref": "#/components/schemas/pagination"}}}, "VideoStatus": {"type": "object", "title": "VideoStatus", "example": {"ingest": {"status": "uploaded", "filesize": 273579401, "receivedBytes": [{"to": 134217727, "from": 0, "total": 273579401}, {"to": 268435455, "from": 134217728, "total": 273579401}, {"to": 273579400, "from": 268435456, "total": 273579401}]}, "encoding": {"metadata": {"width": 424, "height": 240, "bitrate": 411.218, "duration": 4176, "framerate": 24, "audioCodec": "aac", "samplerate": 48000, "videoCodec": "h264", "aspectRatio": "16/9"}, "playable": true, "qualities": [{"status": "encoded", "quality": "240p"}, {"status": "encoded", "quality": "360p"}, {"status": "encoded", "quality": "480p"}, {"status": "encoded", "quality": "720p"}, {"status": "encoding", "quality": "1080p"}, {"status": "waiting", "quality": "2160p"}]}}, "properties": {"encoding": {"$ref": "#/components/schemas/videostatus_encoding"}, "ingest": {"$ref": "#/components/schemas/videostatus_ingest"}}}, "Videos": {"type": "object", "title": "Videos", "properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/video"}}, "pagination": {"$ref": "#/components/schemas/pagination"}}, "required": ["data", "pagination"]}, "Webhook": {"type": "object", "title": "Webhook", "properties": {"createdAt": {"type": "string", "format": "date-time", "example": "2019-06-24T11:45:01.109+00"}, "events": {"type": "array", "items": {"type": "string"}, "example": ["video.encoding.quality.completed"]}, "url": {"type": "string", "example": "http://clientnotificationserver.com/notif?myquery=query"}, "webhookId": {"type": "string", "example": "webhook_XXXXXXXXXXXXXXX"}}}, "Webhooks": {"type": "object", "title": "Webhooks", "properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/webhook"}}, "pagination": {"$ref": "#/components/schemas/pagination"}}}, "apiKey": {"type": "object", "title": "apiKey", "example": {"apiKey": "9VxMaPgsaFg7EBqmuspSzF7"}, "properties": {"apiKey": {"type": "string"}}, "required": ["apiKey"]}, "bytes_range": {"type": "object", "title": "bytes_range", "properties": {"from": {"type": "integer", "example": 0}, "to": {"type": "integer", "example": 9999}, "total": {"type": "integer", "example": 10000}}}, "captions-upload-payload": {"type": "object", "title": "captions-upload-payload", "properties": {"file": {"type": "string", "format": "binary", "example": "https://cdn.api.video/vod/vi3N6cDinStg3oBbN79GklWS/captions/en.vtt"}}, "required": ["file"]}, "link": {"type": "object", "title": "link", "properties": {"rel": {"type": "string"}, "uri": {"type": "string"}}}, "live-stream-thumbnail-upload-payload": {"type": "object", "title": "live-stream-thumbnail-upload-payload", "properties": {"file": {"type": "string", "format": "binary"}}, "required": ["file"]}, "liveStreamCreationPayload": {"type": "object", "title": "liveStreamCreationPayload", "example": {"name": "Test live", "record": true, "playerId": "pl4f4ferf5erfr5zed4fsdd"}, "properties": {"name": {"type": "string", "example": "My Live Stream Video"}, "playerId": {"type": "string", "example": "pl4f4ferf5erfr5zed4fsdd"}, "public": {"type": "boolean"}, "record": {"type": "boolean", "default": false, "example": true}}, "required": ["name"]}, "live_stream_assets": {"type": "object", "title": "live_stream_assets", "properties": {"hls": {"type": "string", "format": "uri", "example": "https://live.api.video/li4pqNqGUkhKfWcBGpZVLRY5.m3u8"}, "iframe": {"type": "string", "example": ""}, "player": {"type": "string", "format": "uri", "example": "https://embed.api.video/live/li400mYKSgQ6xs7taUeSaEKr"}, "thumbnail": {"type": "string", "format": "uri", "example": "https://cdn.api.video/live/li400mYKSgQ6xs7taUeSaEKr/thumbnail.jpg"}}}, "live_stream_session_client": {"type": "object", "title": "live_stream_session_client", "description": "What kind of browser the viewer is using for the live stream session.", "properties": {"name": {"type": "string", "example": "Firefox"}, "type": {"type": "string", "example": "browser"}, "version": {"type": "string", "example": "67.0"}}}, "live_stream_session_device": {"type": "object", "title": "live_stream_session_device", "description": "What type of device the user is on when in the live stream session.", "properties": {"model": {"type": "string", "example": "unknown"}, "type": {"type": "string", "example": "desktop"}, "vendor": {"type": "string", "example": "Dell"}}}, "live_stream_session_location": {"type": "object", "title": "live_stream_session_location", "description": "The location of the viewer of the live stream.", "properties": {"city": {"type": "string", "example": "Paris"}, "country": {"type": "string", "example": "France"}}}, "live_stream_session_referrer": {"type": "object", "title": "live_stream_session_referrer", "properties": {"medium": {"type": "string", "example": "organic"}, "searchTerm": {"type": "string", "example": "video stream"}, "source": {"type": "string", "example": "https://google.com"}, "url": {"type": "string", "example": "https://api.video"}}}, "live_stream_session_session": {"type": "object", "title": "live_stream_session_session", "properties": {"endedAt": {"type": "string", "format": "date-time", "example": "2019-06-24T12:45:01.109+00"}, "loadedAt": {"type": "string", "format": "date-time", "example": "2019-06-24T11:45:01.109+00"}, "sessionId": {"type": "string"}}}, "metadata": {"type": "object", "title": "metadata", "x-client-all-args-constructor": true, "properties": {"key": {"type": "string", "example": "Color"}, "value": {"type": "string", "example": "Green"}}}, "pickThumbnailPayload": {"type": "object", "title": "pickThumbnailPayload", "example": {"timecode": "00:00:00.000"}, "properties": {"timecode": {"type": "string", "pattern": "00:00:00.00"}}, "required": ["timecode"]}, "playerCreationPayload": {"type": "object", "title": "playerCreationPayload", "allOf": [{"$ref": "#/components/schemas/playerinput"}]}, "playerUpdatePayload": {"type": "object", "title": "playerUpdatePayload", "allOf": [{"$ref": "#/components/schemas/playerinput"}]}, "players-upload-logo-payload": {"type": "object", "title": "players-upload-logo-payload", "properties": {"file": {"type": "string", "format": "binary", "example": "mylogo.jpg"}, "link": {"type": "string", "format": "string", "example": "path/to/my/logo/mylogo.jpg"}}, "required": ["file", "link"]}, "quality": {"type": "object", "title": "quality", "properties": {"quality": {"enum": ["240p", "360p", "480p", "720p", "1080p", "2160p"], "type": "string", "example": "720p"}, "status": {"enum": ["waiting", "encoding", "encoded", "failed"], "type": "string"}}}, "refreshToken": {"type": "object", "title": "refreshToken", "example": {"refreshToken": "def502005346d9cc2bd79a7793ab5bdabfefcaabfbb8c253f14733f1262077e1a3f38c4751d6d20f590c3784e531a82adc11f05fc1949aa46d5575aaa99cb84b9334ba66ac773576b5d7a418937ae337de62811d086dd42ad1164b12f87d67be6ffea18f2d50be9b95697b21c4d3c4372849bdb2287259cb80541570e913691a08b2fa33c85885930de15cebea627fc09f0255562ab3d39d87d4ff8fc02b00e252afcd480421dec7de9d1411176bcf669c527762e22294b453bc9ea06e9fa8ba5b873feb2ee14ce0a6a6ddd4b78c580631e210e9b9387265dc2bec9478a66a09dcdce1c40d2f856689e9d81742c9628a0b87b359e0b218ea1f07427eef89f999e47af89792f598e05847bd008fddc32ee63f4a601ffb4cd2ad08977f1c854ec358238322c918f05aa5a41f8a171dee497218408abc8283473f6112aeed7310815416a0fa36c63667e0ed014fa40b8992891bf58bae400d901c01450101c88f4978938ad138adc19cfe5698d60fd82cb27c586f6a8f70f4393c7c9e579df8739d46d249fb76d7"}, "properties": {"refreshToken": {"type": "string"}}, "required": ["refreshToken"]}, "token-upload-payload": {"type": "object", "title": "token-upload-payload", "properties": {"file": {"type": "string", "format": "binary", "example": "path/to/video/video.mp4", "x-client-chunk-upload": "true"}, "videoId": {"type": "string", "x-client-ignore": true, "x-client-copy-from-response": true}}, "required": ["file"]}, "tokenCreationPayload": {"type": "object", "title": "tokenCreationPayload", "example": {"ttl": 3600}, "properties": {"ttl": {"type": "integer", "default": 0, "maximum": 2147483647, "minimum": 0}}}, "uploadTokens": {"type": "object", "title": "uploadTokens", "properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/upload-token"}, "title": "uploadToken"}, "pagination": {"$ref": "#/components/schemas/pagination"}}, "required": ["data", "pagination"]}, "video": {"type": "object", "title": "video", "example": {"tags": ["maths", "string theory", "video"], "title": "Maths video", "actions": ["video_delete", "video_download", "video_update"], "videoId": "vi4k0jvEUuaTdRAEjQ4Jfrgz", "metadata": [{"key": "Author", "value": "John Doe"}, {"key": "Format", "value": "Tutorial"}], "description": "An amazing video explaining the string theory", "publishedAt": "4665-07-14T23:36:18.598Z", "scheduledAt": "4251-03-03T12:52:03.085Z"}, "properties": {"assets": {"$ref": "#/components/schemas/videoAssets"}, "description": {"type": "string", "example": "An amazing video explaining string theory."}, "metadata": {"type": "array", "items": {"$ref": "#/components/schemas/metadata"}, "example": [{"key": "Author", "value": "John Doe"}, {"key": "Format", "value": "Tutorial"}]}, "mp4Support": {"type": "boolean", "example": true}, "panoramic": {"type": "boolean", "example": false}, "playerId": {"type": "string", "example": "pl45KFKdlddgk654dspkze"}, "public": {"type": "boolean", "example": false}, "publishedAt": {"type": "string", "example": "2019-12-16T08:25:51+00:00"}, "source": {"$ref": "#/components/schemas/videoSource"}, "tags": {"type": "array", "items": {}, "example": ["\"tags\": [\"maths\"", "\"string theory\"", "\"video\"]"]}, "title": {"type": "string", "example": "Maths video"}, "updatedAt": {"type": "string", "format": "date-time", "example": "2019-12-16T08:25:51+00:10"}, "videoId": {"type": "string", "example": "vi4k0jvEUuaTdRAEjQ4Prklg"}}}, "video-thumbnail-upload-payload": {"type": "object", "title": "video-thumbnail-upload-payload", "properties": {"file": {"type": "string", "format": "binary"}}, "required": ["file"]}, "video-upload-payload": {"type": "object", "title": "video-upload-payload", "properties": {"file": {"type": "string", "format": "binary", "example": "@/path/to/video.mp4", "x-client-chunk-upload": "true"}}, "required": ["file"]}, "videoAssets": {"type": "object", "title": "videoAssets", "description": "Collection of details about the video object that you can use to work with the video object.", "properties": {"hls": {"type": "string", "format": "uri"}, "iframe": {"type": "string", "example": ""}, "mp4": {"type": "string", "format": "uri", "example": "https://cdn.api.video/vod/vi4k0jvEUuaTdRAEjQ4Jfrgz/token/8fd70443-d9f0-45d2-b01c-12c8cfc707c9/mp4/720/source.mp4"}, "player": {"type": "string", "format": "uri", "example": "https://embed.api.video/1b9d6ae8-8f57-4b6d-8552-d636926b4f5f?token=831a9bd9-9f50-464c-a369-8e9d914371ae"}, "thumbnail": {"type": "string", "format": "uri", "example": "https://cdn.api.video/stream/831a9bd9-9f50-464c-a369-8e9d914371ae/thumbnail.jpg"}}}, "videoCreationPayload": {"type": "object", "title": "videoCreationPayload", "example": {"tags": ["maths", "string theory", "video"], "title": "Maths video", "public": false, "metadata": [{"key": "Author", "value": "John Doe"}, {"key": "Format", "value": "Tutorial"}], "playerId": "pl45KFKdlddgk654dspkze", "panoramic": false, "mp4Support": true, "description": "An amazing video explaining string theory."}, "properties": {"description": {"type": "string", "example": "A video about string theory."}, "metadata": {"type": "array", "items": {"$ref": "#/components/schemas/metadata"}, "example": [{"key": "Author", "value": "John Doe"}]}, "mp4Support": {"type": "boolean", "default": true, "example": true}, "panoramic": {"type": "boolean", "default": false, "example": false}, "playerId": {"type": "string", "example": "pl45KFKdlddgk654dspkze"}, "public": {"type": "boolean", "default": true, "example": true}, "publishedAt": {"type": "string", "format": "date-time", "example": "2020-07-14T23:36:18.598Z"}, "source": {"type": "string", "example": "https://www.myvideo.url.com/video.mp4"}, "tags": {"type": "array", "items": {"type": "string"}, "example": ["maths", "string theory", "video"]}, "title": {"type": "string", "example": "Maths video"}}, "required": ["title"]}, "videoSource": {"type": "object", "title": "videoSource", "description": "Source information about the video.", "properties": {"liveStream": {"$ref": "#/components/schemas/video_source_live_stream"}, "type": {"type": "string"}, "uri": {"type": "string", "example": "/videos/vi4k0jvEUuaTdRAEjQ4Prklg/source"}}}, "videoUpdatePayload": {"type": "object", "title": "videoUpdatePayload", "example": {"tags": ["maths", "string theory", "video"], "title": "String theory", "public": false, "metadata": [{"key": "Author", "value": "John Doe"}, {"key": "Format", "value": "Tutorial"}], "playerId": "pl45KFKdlddgk654dspkze", "panoramic": false, "mp4Support": true, "description": "An amazing video explaining the string theory"}, "properties": {"description": {"type": "string", "example": "A film about good books."}, "metadata": {"type": "array", "items": {"$ref": "#/components/schemas/metadata"}}, "mp4Support": {"type": "boolean", "example": true}, "panoramic": {"type": "boolean", "example": false}, "playerId": {"type": "string", "example": "pl4k0jvEUuaTdRAEjQ4Jfrgz"}, "public": {"type": "boolean", "example": true}, "tags": {"type": "array", "items": {"type": "string"}, "example": ["maths", "string theory", "video"]}, "title": {"type": "string"}}}, "video_session_client": {"type": "object", "title": "video_session_client", "description": "What kind of browser the viewer is using for the video session.", "properties": {"name": {"type": "string", "example": "Firefox"}, "type": {"type": "string", "example": "browser"}, "version": {"type": "string", "example": "67.0"}}}, "video_session_device": {"type": "object", "title": "video_session_device", "description": "What type of device the user is on when in the video session.", "properties": {"model": {"type": "string", "example": "unknown"}, "type": {"type": "string", "example": "desktop"}, "vendor": {"type": "string", "example": "Dell"}}}, "video_session_location": {"type": "object", "title": "video_session_location", "description": "The location of the viewer.", "properties": {"city": {"type": "string", "example": "Paris"}, "country": {"type": "string", "example": "France"}}}, "video_session_os": {"type": "object", "title": "video_session_os", "description": "The operating system the viewer is on.", "properties": {"name": {"type": "string", "example": "Microsoft Windows"}, "shortname": {"type": "string", "example": "W10"}, "version": {"type": "string", "example": "Windows 10"}}}, "video_session_referrer": {"type": "object", "title": "video_session_referrer", "properties": {"medium": {"type": "string", "example": "organic"}, "searchTerm": {"type": "string"}, "source": {"type": "string", "example": "https://google.com"}, "url": {"type": "string", "example": "https://api.video"}}}, "video_session_session": {"type": "object", "title": "video_session_session", "properties": {"endedAt": {"type": "string", "format": "date-time", "example": "2019-06-24T12:45:01.109+00"}, "loadedAt": {"type": "string", "format": "date-time", "example": "2019-06-24T11:45:01.109+00"}, "sessionId": {"type": "string", "example": "psEmFwGQUAXR2lFHj5nDOpy"}}}, "video_source_live_stream": {"type": "object", "title": "video_source_live_stream", "description": "This appears if the video is from a Live Record.", "properties": {"links": {"type": "array", "items": {"$ref": "#/components/schemas/video_source_live_stream_link"}}, "liveStreamId": {"type": "string", "example": "li400mYKSgQ6xs7taUeSaEKr"}}}, "video_source_live_stream_link": {"type": "object", "title": "video_source_live_stream_link", "properties": {"rel": {"type": "string"}, "uri": {"type": "string"}}}, "videostatus_encoding": {"type": "object", "title": "videostatus_encoding", "properties": {"metadata": {"$ref": "#/components/schemas/videostatus_encoding_metadata"}, "playable": {"type": "boolean", "example": true}, "qualities": {"type": "array", "items": {"$ref": "#/components/schemas/quality"}}}}, "videostatus_encoding_metadata": {"type": "object", "title": "videostatus_encoding_metadata", "properties": {"aspectRatio": {"type": "string"}, "audioCodec": {"type": "string"}, "bitrate": {"type": "number"}, "duration": {"type": "integer"}, "framerate": {"type": "integer", "example": 60}, "height": {"type": "integer"}, "samplerate": {"type": "integer", "example": 48000}, "videoCodec": {"type": "string"}, "width": {"type": "integer"}}}, "videostatus_ingest": {"type": "object", "title": "videostatus_ingest", "description": "Details about the capturing, transferring, and storing of your video for use immediately or in the future.", "properties": {"filesize": {"type": "integer", "example": 200000}, "receivedBytes": {"type": "array", "items": {"$ref": "#/components/schemas/bytes_range"}}, "status": {"enum": ["missing", "uploading", "uploaded"], "type": "string", "example": "uploaded"}}}, "webhooks-create-payload": {"type": "object", "title": "webhooks-create-payload", "example": {"url": "http://clientnotificationserver.com/notif?myquery=query", "events": ["video.encoding.quality.completed"]}, "properties": {"events": {"type": "array", "items": {"type": "string"}, "example": ["video.encoding.quality.completed"]}, "url": {"type": "string", "example": "https://example.com/webhooks"}}, "required": ["events", "url"]}}}, "x-metadata": {"x-logo": {"url": "https://www.datocms-assets.com/26885/1588249863-favicon.png?w=57&h=57"}, "x-origin": [{"url": "https://docs.api.video/openapi/5f0d4679158b8d006ea6f068", "format": "openapi", "version": "3.0"}], "x-providerName": "api.video", "x-apisguru-categories": ["media"]}}; window.ui = SwaggerUIBundle({ spec: spec, dom_id: '#swagger-ui', deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], layout: "StandaloneLayout" }); };