openapi: 3.0.3 info: title: Wowza Streaming Engine REST advanced_token_authentication videos API description: Complete REST API for Wowza Streaming Engine. Auto-converted from Swagger 1.2 (http://localhost:8089/swagger.json) to OpenAPI 3.0.3 for public documentation. version: 2.0.0 contact: name: Wowza Media Systems url: https://www.wowza.com/docs/wowza-streaming-engine-rest-api license: name: Wowza Media Systems url: https://www.wowza.com servers: - url: http://localhost:8087 description: Wowza Streaming Engine Server security: - basicAuth: [] tags: - name: videos description: Operations related to uploading and categorizing videos. x-displayName: Videos paths: /videos: post: tags: - videos summary: Create a video description: This operation creates a video object in Wowza Video. You can upload a video from your local storage (DIRECT) or from an external storage provider (FETCH). operationId: createVideo x-codeSamples: - lang: Shell source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"POST\" \\\n \"${WV_HOST}/api/v2.0/videos\" \\\n -d $'{\n \"name\": \"My New Video\",\n \"description\": \"A new video for my business.\",\n \"unpublish\": true,\n \"unpublished_at\": \"2025-01-01T12:33:22Z\",\n \"published\": true,\n \"published_at\": \"2024-01-01T12:33:22Z\",\n \"tags\": [\n \"foo\",\n \"bar\"\n ],\n \"category_id\": \"\",\n \"no_ads\": true,\n \"ad_keywords\": \"special_ads\",\n \"input\": {\n \"method\": \"REMOTE\",\n \"remote_urls\": \"https://example.com/video.mp4\",\n \"duration_in_ms\": 0\n }\n}'" - lang: JavaScript source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/videos';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n method: 'POST',\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nconst req = https.request(options, function(res) {\n var body = '';\n res.on('data', function(data) {\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\nreq.write(JSON.stringify({\n \"name\": \"My New Video\",\n \"description\": \"A new video for my business.\",\n \"unpublish\": true,\n \"unpublished_at\": \"2025-01-01T12:33:22Z\",\n \"published\": true,\n \"published_at\": \"2024-01-01T12:33:22Z\",\n \"tags\": [\n \"foo\",\n \"bar\"\n ]\n \"category_id\": \"\",\n \"no_ads\": true,\n \"ad_keywords\": \"special_ads\",\n \"input\": {\n \"method\": \"REMOTE\",\n \"remote_urls\": \"https://example.com/video.mp4\",\n \"duration_in_ms\": 0\n }\n}));\nreq.end();\n" parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateVideoRequestModel' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/CreateVideoResponseModel' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error401' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/Error422' get: tags: - videos summary: Fetch all videos description: This operation shows details for all videos available in Wowza Video. operationId: listVideos x-codeSamples: - lang: Shell source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"GET\" \\\n \"${WV_HOST}/api/v2.0/videos\"" - lang: JavaScript source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/videos';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nhttps.get(options, function(res) {\n var body = '';\n res.on('data', function(data){\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\n" parameters: - name: page in: query description: Returns a paginated view of results from the HTTP request. Specify a positive integer to indicate which page of the results should be displayed. The default is **1**. schema: type: integer format: int32 default: 1 - name: per_page in: query description: For use with the page parameter. Indicates how many records should be included in a page of results. A valid value is any positive integer. The default and maximum value is **1000**. schema: type: integer format: int32 default: 20 - name: created_at in: query description: 'Filter the response based on an asset''s timespan. The filter can be specified in following formats: | Spec | Description | |-----|-------| | `YYYY-MM-DD''T''HH:mm:ss` | Returns all assets with created_at after the specified date | ' schema: type: string example: 2024-01-01T00:00:00+0000,2024-02-01T00:00:00+0000 - name: updated_at in: query description: 'Filter the response based on an asset''s timespan. The filter can be specified in following formats: | Spec | Description | |-----|-------| | `YYYY-MM-DD''T''HH:mm:ss` | Returns all assets with updated_at after the specified date | ' schema: type: string example: 2024-01-01T00:00:00+0000,2024-02-01T00:00:00+0000 - name: published_at in: query description: 'Filter the response based on an asset''s timespan. The filter can be specified in following formats: | Spec | Description | |-----|-------| | `YYYY-MM-DD''T''HH:mm:ss` | Returns all assets with published_at after the specified date | ' schema: type: string example: 2024-01-01T00:00:00+0000,2024-02-01T00:00:00+0000 - name: state in: query description: 'The current state of the video. The state reflects the current status of the video files for the video asset. Possible states listed below: | State | Description | |-----------|-------| | UPLOADING | The source file is currently being uploaded or waiting to be downloaded by our API. | | WAITING_FOR_ENCODER | The source file was successfully downloaded by the platform and is in queue to be encoded. | | PROCESSING | Source file for the asset is encoding. The current encoding progress can be found on `encoding_progress` property. | | FINISHED | The encoding is done and the encoded files can be fetched. In this state it''s possible to embed the video. | | ERROR | If the platform, for some reason, could not download the source file or failed during the encoding process. `error_messsage` property can give more information about why it errored. | | DELETED | The video files have been deleted. Usually the video asset have been deleted when this state is reached and because of that it''s very uncommon to see assets with this state. | ' example: FINISHED schema: type: string - name: query in: query description: 'Search multiple text fields in a search that is case insensitive and does not require full matches. URL encode the value of the `query` to ensure that it can be processed. There are free URL encoders online. It searches `name`, `description`, `tags` searches all your custom fields for matching terms. You can search specific fields by specifying them after a colon (`:`); if you have multiple search terms you can use `pipe` (`|`) to separate the search terms. Some examples: | Query | Description | | ----- | ----------- | | `query=foo` | Searches all fields for `foo`. | ' schema: type: string example: foo:name,custom_fields - name: sort_column in: query schema: type: string enum: - created_at - name - published_at - duration - name: sort_direction in: query schema: type: string enum: - desc - asc - name: origin_id in: query description: 'The unique alphanumeric string that identifies the live stream or the real-time stream from which the video originated. Returns all the videos associated with the same ID.' schema: type: string example: edfg8k34 - name: categories in: query description: 'Filters videos by specific categories. Provide one or more category ID(s) to retrieve only the videos that belong to those categories. To enter multiple category IDs, enter the IDs as a comma-separated list. You can specify up to four category IDs. **Note:** To get the ID of a category, call the GET /categories endpoint and choose the category ID you need.' schema: type: string example: cb65a918-ad7d-406a-80d8-09c9c8d0dbb responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/VideoList' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error401' /videos/{id}: get: tags: - videos summary: Fetch a video description: This operation shows details for a single, specified video. operationId: getSingleVideo x-codeSamples: - lang: Shell source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"GET\" \\\n \"${WV_HOST}/api/v2.0/videos/2aa3343e-2fb5-42c3-8671-b52c24b7c3e2\"" - lang: JavaScript source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/videos/2aa3343e-2fb5-42c3-8671-b52c24b7c3e2';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nhttps.get(options, function(res) {\n var body = '';\n res.on('data', function(data){\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\n" parameters: - name: id in: path description: Unique identifier for the video. required: true schema: type: string example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/VideoResponseModel' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error401' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error403' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error404' '410': description: Gone content: application/json: schema: $ref: '#/components/schemas/Error410' patch: tags: - videos summary: Update a video's metadata description: This operation updates a video's metadata. To replace the video file, use the `PUT /video/ID`. operationId: patchVideo x-codeSamples: - lang: Shell source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"PATCH\" \\\n \"${WV_HOST}/api/v2.0/videos/2aa3343e-2fb5-42c3-8671-b52c24b7c3e2\" \\\n -d $'{\n \"name\": \"My video\",\n \"description\": \"A new video for my business.\",\n \"unpublish\": true,\n \"unpublished_at\": \"2025-01-01T12:33:22Z\",\n \"published\": true,\n \"published_at\": \"2024-01-01T12:33:22Z\",\n \"tags\": [\n \"foo\",\n \"bar\"\n ],\n \"category_id\": \"\",\n \"no_ads\": true,\n \"ad_keywords\": \"special_ads\"\n}'" - lang: JavaScript source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/videos/2aa3343e-2fb5-42c3-8671-b52c24b7c3e2';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n method: 'PATCH',\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nconst req = https.request(options, function(res) {\n var body = '';\n res.on('data', function(data) {\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\nreq.write(JSON.stringify({\n \"name\": \"My video\",\n \"description\": \"A new video for my business.\",\n \"unpublish\": true,\n \"unpublished_at\": \"2025-01-01T12:33:22Z\",\n \"published\": true,\n \"published_at\": \"2024-01-01T12:33:22Z\",\n \"tags\": [\n \"foo\",\n \"bar\"\n ],\n \"category_id\": \"\",\n \"no_ads\": true,\n \"ad_keywords\": \"special_ads\"\n}));\nreq.end();\n" parameters: - name: id in: path description: Unique identifier for the video. required: true schema: type: string example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9 requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchVideoRequestModel' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/VideoResponseModel' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error401' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error403' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error404' '410': description: Gone content: application/json: schema: $ref: '#/components/schemas/Error410' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/Error422' put: tags: - videos summary: Re-upload a video description: This operation initiates a re-upload of a video. operationId: reuploadVideo x-codeSamples: - lang: Shell source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"PUT\" \\\n \"${WV_HOST}/api/v2.0/videos/2aa3343e-2fb5-42c3-8671-b52c24b7c3e2\" \\\n -d $'{\n \"input\": {\n \"method\": \"REMOTE\",\n \"remote_urls\": \"https://example.com/video.mp4\",\n \"duration_in_ms\": 0\n }\n}'" - lang: JavaScript source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/videos/2aa3343e-2fb5-42c3-8671-b52c24b7c3e2';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n method: 'PUT',\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nconst req = https.request(options, function(res) {\n var body = '';\n res.on('data', function(data) {\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\nreq.write(JSON.stringify({\n \"input\": {\n \"method\": \"REMOTE\",\n \"remote_urls\": \"https://example.com/video.mp4\",\n \"duration_in_ms\": 0\n }\n}));\nreq.end();\n" parameters: - name: id in: path description: Unique identifier for the video. required: true schema: type: string example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9 requestBody: content: application/json: schema: $ref: '#/components/schemas/ReuploadVideoRequestModel' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/CreateVideoResponseModel' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error401' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error403' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error404' '410': description: Gone content: application/json: schema: $ref: '#/components/schemas/Error410' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/Error422' delete: tags: - videos summary: Delete a video description: This operation deletes a video and all its related files. operationId: deleteVideo x-codeSamples: - lang: Shell source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"DELETE\" \\\n \"${WV_HOST}/api/v2.0/videos/2aa3343e-2fb5-42c3-8671-b52c24b7c3e2\"\n" - lang: JavaScript source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/videos/2aa3343e-2fb5-42c3-8671-b52c24b7c3e2';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n method: 'DELETE',\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nhttps.get(options, function(res) {\n // no data being returned, just: 204 NO CONTENT\n console.log(res.statusCode);\n}).on('error', function(e) {\n console.log(e.message);\n});\n" parameters: - name: id in: path description: Unique identifier for the video required: true schema: type: string example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9 responses: '204': description: No Content '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error401' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error403' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error404' '410': description: Gone content: application/json: schema: $ref: '#/components/schemas/Error410' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/Error422' components: schemas: CreateVideoRequestModel: required: - input type: object properties: video: type: object title: video description: '' properties: input: $ref: '#/components/schemas/InputVideoRequest' name: type: string description: The video name. Can be displayed in the player. If not specified, it will default to the input file's name. example: My video description: type: string description: The video description. Can be displayed in the player. example: A new video for my business. unpublish: type: boolean description: If `true`, the `unpublished_at` is respected and the video will not be available after `unpublished_at`. If `false`, the video will not be unpublished. default: true unpublished_at: type: string description: Date and time, in ISO-8601, format when video no longer is available for publishing. After this date, the video is not visible in the player if using `ovp-plugin` to request the video. format: date-time example: '2025-01-01T12:33:22Z' published: type: boolean description: Determines, together with `published_at` and `unpublished_at`, if this video will be visible in public listings such as MRSS-feeds, endscreens and playlists. If `true`, and if `published_at` and `unpublished_at` allows, the video will be visible. published_at: type: string description: Date and time, in ISO-8601 format, when video is available for publishing. Before this date the video is not visible in the player if using `ovp-plugin` to request the video. format: date-time example: '2024-01-01T12:33:22Z' tags: type: array description: An array of tags. example: - foo - bar items: type: string description: An array of tags. example: - foo - bar category_id: type: string description: The unique identifier for the category that the video belongs to. default: ad_insertion_points: type: array description: 'A list of ad insertion points specified for a video. Ad insertion points are pre-defined locations in a video where advertisements are placed during playback. Ads can be inserted at pre-roll (at the beginning of the video), mid-roll (during the video), or post-roll (at the end of the video) position(s). **Note**: Ad insertion points are only applicable for client-side ad insertion. If you create mid-roll ad insertion points for a video, for example, they overwrite any mid-roll ad positions created using the Video Ad Serving Template ad schedule form. This is because the ad insertion points created using the Wowza Video 2.0 API are time-specific and more accurate than the percentages chosen in the Video Ad Serving Template ad schedule page.' items: type: object description: '' required: - offset_from_start_in_ms properties: offset_from_start_in_ms: type: integer description: Specifies the time offset from the start of the video in milliseconds. This parameter determines the point in the video at which the ad break begins. format: int64 example: 20000 description: type: string description: The description of the ad position. For example, it can be an ad position in a video such as pre-roll, mid-roll, and post-roll. example: mid-roll no_ads: type: boolean description: "When set to `true`, no ads will be displayed during this video. \n\n**Note**: This feature only works for Iframe embeds." ad_keywords: type: string description: 'Used for replacing the `ad_keywords` macro in the VAST-tag in any player that plays the video. ' example: special_ads playback_token_behavior: type: string description: "Specifies the behavior of token authentication for the video, determining the level of access control. Use this security when distributing sensitive or valuable video content to audiences. It ensures that only authorized users can access the content within the intended application.\n\n**enum:** \n\n\n - **NO_TOKEN:** Video files are accessible and can be downloaded and played by anyone at any time. This is the default. \n\n\n - **BASIC_TOKEN:** The platform automatically creates tokenized video URLs. This setting makes it hard for a viewer\n to extract the video URL and store it for usage in unintended applications\n over time since the embed URL, which has the token as part of the URL, \n will only be playable for 48 hours. The token autorenews after 48 hours\n when used in the intended application. \n\n\n - **ADVANCED_TOKEN:** You add the stream's JS embed code and a token to your\n site to provide tokenization. The protections are similar to those for the **Basic\n Token** option except you customize the time limit, geographical limits,\n etc. during token creation. \n\n You must either:\n - Customize and generate a token via the Wowza Video 2.0 API to add\n to your site before you can use this enum. You'll need to, first, generate a key id to create and \n sign the token.\n\n - Customize and generate a standard common access token (CAT) through \n the means you usually use to create tokens before you can use this enum. You must, first, generate\n a key id and key via the Wowza Video 2.0 API, to create and sign the token.\n\n - **FOLLOW_DEFAULT:** The token behavior is based on the **Default Playback Token Behavior**\n setting you select for your Wowza account. See the Org Settings page in Wowza Video article\n for where to set this configuration. " example: NO_TOKEN description: Create Video request for the Wowza Video REST API ThumbnailResponse: type: object properties: src: type: string description: Link to the VTT file. description: Link to the VTT file used by the Thumbnails plug-in. See [Thumbnails](https://developer.wowza.com/docs/wowza-flowplayer/plugins/preview-thumbnails/) to learn more. DRMProviderConfigModel: type: object properties: license_server: type: string description: URL to the license server that can validate the license. certificate: type: string description: 'Note: This field is only needed for Fairplay DRM. URL to the Fairplay certificate. ' description: Contains configuration for one DRM provider. ReuploadVideoRequestModel: required: - input type: object properties: video: type: object title: video description: '' properties: input: $ref: '#/components/schemas/InputVideoRequest' description: Reupload Video request for the Wowza Video REST API. In this request it's only possible to add a new version of the video file. To change the metadata, use the PATCH endpoint. CreateVideoResponseModel: type: object properties: video: type: object title: video description: '' properties: id: type: string description: The unique identifier for the video. example: 2aa3343e-2fb5-42c3-8671-b52c24b7c3e2 name: type: string description: The video name. Can be displayed in the player. If not specified, it will default to the input file's name. example: My video description: type: string description: The video description. Can be displayed in the player. example: A new video for my business. duration_in_ms: type: integer description: Duration of the video in milliseconds. format: int64 unpublish: type: boolean description: If `true`, the `unpublish_date` is respected and the video will not be available after `unpublish_date`. If `false`, the video will not be unpublished. default: true unpublished_at: type: string description: Date and time, in ISO-8601 format, when video no longer is available for publishing. After this date, the video is not visible in the player if using `ovp-plugin` to request the video. format: date-time example: '2025-01-01T12:33:22Z' published: type: boolean description: This field, together with `publish_date` and `unpublish_date`, determines if this video will be visible in public listings such as MRSS-feeds, endscreens and playlists. If `true`, and `publish_date` and `unpublish_date` allows, the video will be visible. published_at: type: string description: Date and time, in ISO-8601 format, when video is available for publishing. Before this date the video is not visible in the player if using `ovp-plugin` to request the video. format: date-time example: '2024-01-01T12:33:22Z' tags: type: array description: An array of tags. example: - foo - bar items: type: string description: An array of tags. example: - foo - bar category_id: type: string description: The unique identifier for the category that the video belongs to. default: ad_insertion_points: type: array description: 'A list of ad insertion points specified for a video. Ad insertion points are pre-defined locations in a video where advertisements are placed during playback. Ads can be inserted at pre-roll (at the beginning of the video), mid-roll (during the video), or post-roll (at the end of the video) position(s). **Note**: Ad insertion points are only applicable for client-side ad insertion. If you create mid-roll ad insertion points for a video, for example, they overwrite any mid-roll ad positions created using the Video Ad Serving Template ad schedule form. This is because the ad insertion points created using the Wowza Video 2.0 API are time-specific and more accurate than the percentages chosen in the Video Ad Serving Template ad schedule page.' items: type: object description: '' properties: offset_from_start_in_ms: type: integer description: Specifies the time offset from the start of the video in milliseconds. This parameter determines the point in the video at which the ad break begins. format: int64 example: 20000 description: type: string description: The description of the ad position. For example, it can be an ad position in a video such as pre-roll, mid-roll, and post-roll. example: mid-roll no_ads: type: boolean description: "When set to `true`, no ads will be displayed during this video. \n\n**Note**: This feature only works for Iframe embeds." ad_keywords: type: string description: 'Used for replacing the `ad_keywords` macro in the VAST-tag in any player that plays the video. ' example: special_ads created_at: type: string description: Date and time, in ISO-8601 format, when video was created. format: date-time example: '2025-01-01T12:33:22Z' updated_at: type: string description: Date and time, in ISO-8601 format, when video was updated. format: date-time example: '2024-01-01T12:33:22Z' state: type: string description: 'The current state of the video. The state reflects the current status of the video files for the video asset. Possible states listed below: | State | Description | |-----------|-------| | UPLOADING | The source file is currently being uploaded or waiting to be downloaded by our API. | | WAITING_FOR_ENCODER | The source file was successfully downloaded by the platform and is in queue to be encoded. | | PROCESSING | Source file for the asset is encoding. The current encoding progress can be found on `encoding_progress` property. | | FINISHED | The encoding is done and the encoded files can be fetched. In this state it''s possible to embed the video. | | ERROR | If the platform, for some reason, could not download the source file or failed during the encoding process. `error_messsage` property can give more information about why it errored. | | DELETED | The video files have been deleted. Usually the Video asset have been deleted when this state is reached and because of that it''s very uncommon to see assets with this state. | ' example: FINISHED encoding_progress: type: number description: Progress of video encoding, in percentage. The max value, `100`, is reached when all video files have been encoded. format: double upload_progress: type: number description: Progress of source file upload, in percentage. If the value is `100`, the source file is uploaded. format: double error_message: type: string description: If the platform failed to encode the source file, a message describing the error reason will be presented in this property. deactivated: type: boolean description: If `true`, this video has been deactivated and is no longer available for embedding. This usually happens if the account was cancelled or trial limits were exceeded. default: false images: type: array description: 'Images used together with the video in the platform and the player. For platform video images specified in create and update requests, these are uploaded and delivered through the platform. For remote assets, the specified image URLs are passed along to the player using the URL specified in the request. ' items: $ref: '#/components/schemas/ImageModel' encodings: type: array description: Array containing all available video files and their metadata. items: $ref: '#/components/schemas/EncodingModel' drm: $ref: '#/components/schemas/DRMConfigModel' shallow_copy: type: boolean description: 'Whether this video is a shallow copy of another video. A shallow copy uses video files controlled by another video, usually on another workspace. Videos that are shallow copies can''t use all features available for normal videos. For example, it''s not possible to upload a new version of the video. Another difference is that deleting the video will not delete any video files. If the video asset that is the source of the copy is deleted, the files will no longer be available for this asset. ' shallow_copy_source_id: type: string description: 'If the video is a shallow copy, this field contains the ID of the source video entity. Note: There are cases where it is not possible to identify the source and in those cases this value will be `null`.' multiple_audio_tracks: type: boolean description: If `true`, this video has several different audio tracks available for the player. For example, there may be audio tracks in different languages. audio_only: type: boolean description: If `true`, this video has no video track but only audio tracks. version: type: integer description: Tracks the number of times a new source file was uploaded for this video asset. For each time a new source file is uploaded, the value increases by one. format: int32 thumbnails: $ref: '#/components/schemas/ThumbnailResponse' animated_previews: type: array description: The animated previews for the video. items: $ref: '#/components/schemas/AnimatedPreviewModel' playback_token_behavior: type: string description: "Specifies the behavior of token authentication for the video, determining the level of access control. Use this security when distributing sensitive or valuable video content to audiences. It ensures that only authorized users can access the content within the intended application.\n\n**enum:** \n\n\n - **NO_TOKEN:** Video files are accessible and can be downloaded and played by anyone at any time. This is the default. \n\n\n - **BASIC_TOKEN:** The platform automatically creates tokenized video URLs. This setting makes it hard for a viewer\n to extract the video URL and store it for usage in unintended applications\n over time since the embed URL, which has the token as part of the URL, \n will only be playable for 48 hours. The token autorenews after 48 hours\n when used in the intended application. \n\n\n - **ADVANCED_TOKEN:** You add the stream's JS embed code and a token to your\n site to provide tokenization. The protections are similar to those for the **Basic\n Token** option except you customize the time limit, geographical limits,\n etc. during token creation. \n\n You must either:\n - Customize and generate a token via the Wowza Video 2.0 API to add\n to your site before you can use this enum. You'll need to, first, generate a key id to create and \n sign the token.\n\n - Customize and generate a standard common access token (CAT) through \n the means you usually use to create tokens before you can use this enum. You must, first, generate\n a key id and key via the Wowza Video 2.0 API, to create and sign the token.\n\n - **FOLLOW_DEFAULT:** The token behavior is based on the **Default Playback Token Behavior**\n setting you select for your Wowza account. See the Org Settings page in Wowza Video article\n for where to set this configuration. " example: NO_TOKEN upload_url: type: string description: If input method `DIRECT` was select, this field contains the signed URL that will be used to upload the file. description: Video Response from the Wowza Video REST API VideoResponseModel: type: object properties: video: type: object title: video description: '' properties: id: type: string description: The unique identifier for the video. example: 2aa3343e-2fb5-42c3-8671-b52c24b7c3e2 name: type: string description: The video name. Can be displayed in the player. If not specified, it will default to the input file's name. example: My video description: type: string description: The video description. Can be displayed in the player. example: A new video for my business. duration_in_ms: type: integer description: Duration of the video in milliseconds. format: int64 unpublish: type: boolean description: If `true`, the `unpublish_date` is respected and the video will not be available after `unpublish_date`. If `false`, the video will not be unpublished. default: true unpublished_at: type: string description: Date and time, in ISO-8601 format, when video no longer is available for publishing. After this date the video is not visible in the player if using ovp-plugin to request the video. format: date-time example: '2025-01-01T12:33:22Z' published: type: boolean description: This field, together with `publish_date` and `unpublish_date`, determines if this video will be visible in public listings such as MRSS-feeds, endscreens, and playlists. If `true` and `publish_date` and `unpublish_date` allows, the video will be visible. published_at: type: string description: Date and time, in ISO-8601 format, when video is available for publishing. Before this date the video is not visible in the player if using `ovp-plugin` to request the video. format: date-time example: '2024-01-01T12:33:22Z' tags: type: array description: An array of tags. example: - foo - bar items: type: string description: An array of tags. example: - foo - bar category_id: type: string description: The unique identifier for the category that the video belongs to. default: ad_insertion_points: type: array description: 'A list of ad insertion points specified for a video. Ad insertion points are pre-defined locations in a video where advertisements are placed during playback. Ads can be inserted at pre-roll (at the beginning of the video), mid-roll (during the video), or post-roll (at the end of the video) position(s). **Note**: Ad insertion points are only applicable for client-side ad insertion. If you create mid-roll ad insertion points for a video, for example, they overwrite any mid-roll ad positions created using the Video Ad Serving Template ad schedule form. This is because the ad insertion points created using the Wowza Video 2.0 API are time-specific and more accurate than the percentages chosen in the Video Ad Serving Template ad schedule page.' items: type: object description: '' properties: offset_from_start_in_ms: type: integer description: Specifies the time offset from the start of the video in milliseconds. This parameter determines the point in the video at which the ad break begins. format: int64 example: 20000 description: type: string description: The description of the ad position. For example, it can be an ad position in a video such as pre-roll, mid-roll, and post-roll. example: mid-roll no_ads: type: boolean description: "When set to `true`, no ads will be displayed during this video. \n\n**Note**: This feature only works for Iframe embeds." ad_keywords: type: string description: 'Used for replacing the `ad_keywords` macro in the VAST-tag in any Player that plays the video. ' example: special_ads created_at: type: string description: Date and time, in ISO-8601 format, when video was created. format: date-time example: '2024-01-01T12:33:22Z' updated_at: type: string description: Date and time, in ISO-8601 format, when video was updated. format: date-time example: '2024-01-01T12:33:22Z' state: type: string description: 'The current state of the video. The state reflects the current status of the video files for the video asset. Possible states listed below: | State | Description | |-----------|-------| | UPLOADING | The source file is currently being uploaded or waiting to be downloaded by our API. | | WAITING_FOR_ENCODER | The source file was successfully downloaded by the platform and is in queue to be encoded. | | PROCESSING | Source file for the asset is encoding. The current encoding progress can be found on `encoding_progress` property. | | FINISHED | The encoding is done and the encoded files can be fetched. In this state it''s possible to embed the video. | | ERROR | If the platform, for some reason, could not download the source file or failed during the encoding process. `error_messsage` property can give more information about why it errored. | | DELETED | The video files have been deleted. Usually the video asset have been deleted when this state is reached and because of that it''s very uncommon to see assets with this state. | ' example: FINISHED encoding_progress: type: number description: Progress of video encoding, in percentage. The the max value, `100`, is reached when all video files have been encoded. format: double upload_progress: type: number description: Progress of source file upload, in percentage. If the value is `100` the source file is uploaded. format: double error_message: type: string description: If the platform failed to encode the source file, a message describing the error reason will be presented in this property. deactivated: type: boolean description: If `true`, this video has been deactivated and is no longer available for embedding. This usually happens if the account was cancelled or trial limits were exceeded. default: false images: type: array description: 'Images used together with the video in the platform and the player. For platform video images specified in create and update requests, these are uploaded and delivered through the platform. For remote assets the specified image URLs are just passed along to the player using the URL specified in the request. ' items: $ref: '#/components/schemas/ImageModel' encodings: type: array description: Array containing all available video files and their metadata. items: $ref: '#/components/schemas/EncodingModel' drm: $ref: '#/components/schemas/DRMConfigModel' shallow_copy: type: boolean description: 'Whether this video is a shallow copy of another video. A shallow copy uses Video files controlled by another Video, usually on another Workspace. Videos that are shallow copies can''t use all features available for normal videos. For example, it''s not possible to upload a new version of the video. Another difference is that deleting the video will not delete any video files. If the video asset that is the source of the copy is deleted, the files will no longer be available for this asset. ' shallow_copy_source_id: type: string description: 'If the video is a shallow copy, this field contains the ID of the source Video entity. Note: There are cases where it is not possible to identify the source and in those cases this value will be `null`.' multiple_audio_tracks: type: boolean description: If `true`, this video has several different audio tracks available for the player. For example, there may be audio tracks in different languages. audio_only: type: boolean description: If `true`, this video has no video track but only audio tracks. version: type: integer description: Tracks the number of times a new source file was uploaded for this video asset. For each time a new source file is uploaded, the value increases by one. format: int32 thumbnails: $ref: '#/components/schemas/ThumbnailResponse' animated_previews: type: array description: The animated previews for the video. items: $ref: '#/components/schemas/AnimatedPreviewModel' playback_token_behavior: type: string description: "Specifies the behavior of token authentication for the video, determining the level of access control. Use this security when distributing sensitive or valuable video content to audiences. It ensures that only authorized users can access the content within the intended application.\n\n**enum:** \n\n\n - **NO_TOKEN:** Video files are accessible and can be downloaded and played by anyone at any time. This is the default. \n\n\n - **BASIC_TOKEN:** The platform automatically creates tokenized video URLs. This setting makes it hard for a viewer\n to extract the video URL and store it for usage in unintended applications\n over time since the embed URL, which has the token as part of the URL, \n will only be playable for 48 hours. The token autorenews after 48 hours\n when used in the intended application. \n\n\n - **ADVANCED_TOKEN:** You add the stream's JS embed code and a token to your\n site to provide tokenization. The protections are similar to those for the **Basic\n Token** option except you customize the time limit, geographical limits,\n etc. during token creation. \n\n You must either:\n - Customize and generate a token via the Wowza Video 2.0 API to add\n to your site before you can use this enum. You'll need to, first, generate a key id to create and \n sign the token.\n\n - Customize and generate a standard common access token (CAT) through \n the means you usually use to create tokens before you can use this enum. You must, first, generate\n a key id and key via the Wowza Video 2.0 API, to create and sign the token.\n\n - **FOLLOW_DEFAULT:** The token behavior is based on the **Default Playback Token Behavior**\n setting you select for your Wowza account. See the Org Settings page in Wowza Video article\n for where to set this configuration. " example: NO_TOKEN origin: type: object properties: id: type: string description: The unique alphanumeric string that identifies the live stream or the real-time stream from which the video originated. Send this ID as the `origin_id` in `GET /videos` to return all the videos associated with this stream. example: wqrs0k75 type: type: string description: The type of the stream from which the video originated. example: live_stream enum: - live_stream - real_time_stream uptime_id: type: string description: 'The unique identifier associated with a specific uptime period of a transcoder. **Note**: `uptime_id` is returned only if the stream from which the video originated is a live stream.' example: hvpcp3kn description: The origin of the video. description: Video Response from the Wowza Video REST API Pagination: type: object properties: payload_version: type: number description: The pagination object version. format: double total_records: type: integer description: The total number of records. format: int32 example: 100 page: type: integer description: The page number, starting at 1. format: int32 example: 1 default: 1 per_page: type: integer description: The number of records per page. format: int32 example: 10 default: 20 total_pages: type: integer description: The total number of pages. format: int32 example: 2 page_first_index: type: integer description: The index of the first record in the response. format: int32 example: 10 page_last_index: type: integer description: The index of the last record in the response. format: int32 example: 10 VideoListModel: type: object properties: id: type: string description: The unique identifier for the video. example: 2aa3343e-2fb5-42c3-8671-b52c24b7c3e2 name: type: string description: The video name. Can be displayed in the player. If not specified, it will default to the input file's name. example: My video description: type: string description: The video description. Can be displayed in the player. example: A new video for my business. duration_in_ms: type: integer description: Duration of the video in milliseconds. format: int64 unpublish: type: boolean description: If `true`, the `unpublish_date` is respected and the video will not be available after `unpublish_date`. If `false`, the video will not be unpublished. default: true unpublished_at: type: string description: Date and time, in ISO-8601 format, when the video no longer is available for publishing. After this date, the video is not visible in the player if using `ovp-plugin` to request the video. format: date-time example: '2025-01-01T12:33:22Z' published: type: boolean description: This field, together with `publish_date` and `unpublish_date`, determines if this video will be visible in public listings such as MRSS-feeds, endscreens, and playlists. If `true` and `publish_date` and `unpublish_date` allows, the video will be visible. published_at: type: string description: Date and time, in ISO-8601 format, when the video is available for publishing. Before this date, the video is not visible in the player if using `ovp-plugin` to request the video. format: date-time example: '2024-01-01T12:33:22Z' tags: type: array description: An array of tags. example: - foo - bar items: type: string description: An array of tags. example: - foo - bar category_id: type: string description: The unique identifier for the category that the video belongs to. default: no_ads: type: boolean description: "When set to `true`, no ads will be displayed during this video. \n\n**Note**: This feature only works for Iframe embeds." ad_keywords: type: string description: 'Used for replacing the `ad_keywords` macro in the VAST-tag in any player that plays the video. ' example: special_ads created_at: type: string description: Date and time, in ISO-8601 format, when the video was created. format: date-time example: '2024-01-01T12:33:22Z' updated_at: type: string description: Date and time, in ISO-8601 format, when the video was updated. format: date-time example: '2024-01-01T12:33:22Z' state: type: string description: 'The current state of the video. The state reflects the current status of the video files for the video asset. Possible states listed below: | State | Description | |-----------|-------| | UPLOADING | The source file is currently being uploaded or waiting to be downloaded by our API. | | WAITING_FOR_ENCODER | The source file was successfully downloaded by the platform and is in queue to be encoded. | | PROCESSING | Source file for the asset is encoding. The current encoding progress can be found on `encoding_progress` property. | | FINISHED | The encoding is done and the encoded files can be fetched. In this state it''s possible to embed the video. | | ERROR | If the platform, for some reason, could not download the source file or failed during the encoding process. `error_messsage` property can give more information about why it errored. | | DELETED | The video files have been deleted. Usually the video asset have been deleted when this state is reached and because of that it''s very uncommon to see assets with this state. | ' example: FINISHED playback_token_behavior: type: string description: "Specifies the behavior of token authentication for the video, determining the level of access control. Use this security when distributing sensitive or valuable video content to audiences. It ensures that only authorized users can access the content within the intended application.\n\n**enum:** \n\n\n - **NO_TOKEN:** Video files are accessible and can be downloaded and played by anyone at any time. This is the default. \n\n\n - **BASIC_TOKEN:** The platform automatically creates tokenized video URLs. This setting makes it hard for a viewer\n to extract the video URL and store it for usage in unintended applications\n over time since the embed URL, which has the token as part of the URL, \n will only be playable for 48 hours. The token autorenews after 48 hours\n when used in the intended application. \n\n\n - **ADVANCED_TOKEN:** You add the stream's JS embed code and a token to your\n site to provide tokenization. The protections are similar to those for the **Basic\n Token** option except you customize the time limit, geographical limits,\n etc. during token creation. \n\n You must either:\n - Customize and generate a token via the Wowza Video 2.0 API to add\n to your site before you can use this enum. You'll need to, first, generate a key id to create and \n sign the token.\n\n - Customize and generate a standard common access token (CAT) through \n the means you usually use to create tokens before you can use this enum. You must, first, generate\n a key id and key via the Wowza Video 2.0 API, to create and sign the token.\n\n - **FOLLOW_DEFAULT:** The token behavior is based on the **Default Playback Token Behavior**\n setting you select for your Wowza account. See the Org Settings page in Wowza Video article\n for where to set this configuration. " example: NO_TOKEN description: List Video response from the Wowza Video REST API DRMConfigModel: type: object properties: com.widevine.alpha: $ref: '#/components/schemas/DRMProviderConfigModel' com.apple.fps.1_0: $ref: '#/components/schemas/DRMProviderConfigModel' com.microsoft.playready: $ref: '#/components/schemas/DRMProviderConfigModel' description: Contains all DRM configurations for one video. Error401: type: object description: '' required: - meta properties: meta: type: object title: meta description: '' properties: status: type: integer description: '' example: '' format: int32 code: type: string description: '' example: '' title: type: string description: '' example: '' message: type: string description: '' example: '' description: type: string description: '' example: '' links: type: array description: '' example: '' items: {} example: Example Response 1: meta: status: 401 code: ERR-401-NoApiKey title: No API Key Error message: No API key sent in header. description: '' links: [] Example Response 2: meta: status: 401 code: ERR-401-NoAccessKey title: No Access Key Error message: No access key sent in header. description: '' links: [] Example Response 3: meta: status: 401 code: ERR-401-InvalidApiKey title: Invalid Api Key Error message: Invalid API key. description: '' links: [] Example Response 4: meta: status: 401 code: ERR-401-InvalidAccessKey title: Invalid Access Key Error message: Invalid access key. description: '' links: [] Example Response 5: meta: status: 401 code: ERR-401-BadAccountStatus title: Bad Account Status Error message: Your account's status doesn't allow this action. description: '' links: [] Example Response 6: meta: status: 401 code: ERR-401-FeatureNotEnabled title: Feature Not Enabled Error message: This feature isn't enabled. description: '' links: [] Example Response 7: meta: status: 401 code: ERR-401-TrialExceeded title: Bad Billing Status Error message: Your billing status needs attention. You can't start or add live streams until your billing status is updated. description: '' links: [] Example Response 8: meta: status: 401 code: ERR-401-ExpiredToken title: JWT is expired message: Token has exired. description: '' links: [] Example Response 9: meta: status: 401 code: ERR-401-InvalidToken title: JWT is invalid message: Token is invalid. description: '' links: [] VideoList: type: object properties: videos: type: array description: The list of videos items: $ref: '#/components/schemas/VideoListModel' pagination: $ref: '#/components/schemas/Pagination' EncodingModel: type: object properties: audio_bitrate_in_kbps: type: integer description: Audio bitrate in kb/s. format: int32 example: 2300 audio_channel: type: integer description: Number of audio channels. format: int32 example: 2 audio_codec: type: string description: Audio codec used in the file. example: aac audio_sample_rate: type: integer description: Audio sample rate for this file. Refers to the number of samples of audio taken per second, measured in hertz (Hz). It determines the audio's frequency range and quality, where a higher sample rate captures more detail. format: int32 example: 44100 height: type: integer description: Height of the video in pixels. format: int32 example: 1080 width: type: integer description: Width of the video in pixels. format: int32 example: 1920 video_file_url: type: string description: URL to the video file. We accept HTTP and HTTPS addresses. example: https://flowplayer.com/video.mp4 video_container: type: string description: Video container type used for this video file. example: mp4 video_codec: type: string description: Video codec used in this video file. example: h264 total_bitrate_in_kbps: type: integer description: Total bitrate, video+audio, for the file in kb/s. format: int32 example: 1023 created_at: type: string description: Creation timestamp of the file. format: date-time size_in_bytes: type: integer description: Total file size including both audio and video in bytes. For segmented files, such as DASH and HLS, this is the complete size covering all segments and renditions. format: int64 example: 8325555 description: Array containing all available Video files and their metadata Error403: type: object description: '' required: - meta properties: meta: type: object title: meta description: '' properties: status: type: integer description: '' example: '' format: int32 code: type: string description: '' example: '' title: type: string description: '' example: '' message: type: string description: '' example: '' description: type: string description: '' example: '' links: type: array description: '' example: '' items: {} example: Example Response 1: meta: status: 403 code: ERR-403-RecordUnaccessible title: Record Unaccessible Error message: The requested resource isn't accessible. description: '' links: [] FetchInputRequest: required: - fetch_url - method type: object properties: method: type: string description: Method that video file will be provided. Fetches the video from the URL specified and makes a copy in Wowza Video. example: FETCH enum: - FETCH fetch_url: type: string description: URL to the video that the platform will download, encode, and serve to the player. We accept HTTP and HTTPS addresses. Required if the select method is `FETCH`. example: https://example.com/video.mp4 fetch_image_url: type: string description: URL to an image the platform will download and serve in the player as poster image. We accept HTTP and HTTPS addresses. Required if the select method is `FETCH`. example: https://example.com/image.jpg Error422: type: object description: '' required: - meta properties: meta: type: object title: meta description: '' properties: status: type: integer description: '' example: '' format: int32 code: type: string description: '' example: '' title: type: string description: '' example: '' message: type: string description: '' example: '' description: type: string description: '' example: '' links: type: array description: '' example: '' items: {} example: Example Response 1: meta: status: 422 code: ERR-422-RecordInvalid title: Record Invalid Error message: The request couldn't be processed. ... can't be blank description: '' links: [] Example Response 2: meta: status: 422 code: ERR-422-RecordInvalid title: Record Invalid Error message: The request couldn't be processed. Provider wowza_video is not allowed description: '' links: [] Example Response 3: meta: status: 422 code: ERR-422-InvalidStateChange title: Invalid State Change Error message: The request couldn't be processed. There must be at least one WebRTC output for this transcoder. description: '' links: [] Example Response 4: meta: status: 422 code: ERR-422-RecordInvalid title: Record Invalid Error message: API cannot remove the primary Output Stream Target with the ID of from the Live Stream . description: '' links: [] Example Response 5: meta: status: 422 code: ERR-422-InvalidStateChange title: Invalid State Change Error message: The request couldn't be processed. The broadcast location can't be updated when using autostart. description: '' links: [] Error410: type: object description: '' required: - meta properties: meta: type: object title: meta description: '' properties: status: type: integer description: '' example: '' format: int32 code: type: string description: '' example: '' title: type: string description: '' example: '' message: type: string description: '' example: '' description: type: string description: '' example: '' links: type: array description: '' example: '' items: {} example: Example Response 1: meta: status: 410 code: ERR-410-RecordDeleted title: Record Deleted Error message: The requested resource has been deleted. description: '' links: [] InputVideoRequest: type: object description: "Specifies the input method for uploading the video.\n\nThere are two methods to choose from: `DIRECT` or `FETCH`. \n\nExpand the `input` description, by clicking the **>** next to the `input` label, then click each tab to learn about the methods.\n\nLearn more:\n\n- [Upload a video from local storage](https://developer.wowza.com/docs/wowza-video/guides/videos/upload-a-video-locally)\n- [Upload a video from external storage](https://developer.wowza.com/docs/wowza-video/guides/videos/upload-a-video-external)" oneOf: - $ref: '#/components/schemas/DirectInputRequest' - $ref: '#/components/schemas/FetchInputRequest' AnimatedPreviewModel: type: object properties: url: type: string type: type: string height: type: integer description: Height of the animated preview in pixels. format: int32 example: 1080 width: type: integer description: Width of the animated preview in pixels. format: int32 example: 1920 description: The animated previews for the video. PatchVideoRequestModel: type: object properties: video: type: object title: video description: '' properties: name: type: string description: The video name. Can be displayed in the player. If not specified, it will default to the input file's name. example: My video description: type: string description: The video description. Can be displayed in the player. example: A new video for my business. unpublish: type: boolean description: If `true` the `unpublished_at` is respected and the video will not be available after `unpublished_at`. If `false` the video will not be unpublished. default: true unpublished_at: type: string description: Date and time, in ISO-8601, format when video no longer is available for publishing. After this date, the video is not visible in the player if using `ovp-plugin` to request the video. format: date-time example: '2025-01-01T12:33:22Z' published: type: boolean description: Determines, together with `published_at` and `unpublished_at`, if this video will be visible in public listings such as MRSS-feeds, endscreens and playlists. If `true`, and if `published_at` and `unpublished_at` allows, the video will be visible. published_at: type: string description: Date and time, in ISO-8601 format, when video is available for publishing. Before this date the video is not visible in the player if using `ovp-plugin` to request the video. format: date-time example: '2024-01-01T12:33:22Z' tags: type: array description: An array of tags. example: - foo - bar items: type: string description: An array of tags. example: - foo - bar category_id: type: string description: The unique identifier for the category that the video belongs to. default: ad_insertion_points: type: array description: 'A list of ad insertion points specified for a video. Ad insertion points are pre-defined locations in a video where advertisements are placed during playback. Ads can be inserted at pre-roll (at the beginning of the video), mid-roll (during the video), or post-roll (at the end of the video) position(s). **Note**: Ad insertion points are only applicable for client-side ad insertion. If you create mid-roll ad insertion points for a video, for example, they overwrite any mid-roll ad positions created using the Video Ad Serving Template ad schedule form. This is because the ad insertion points created using the Wowza Video 2.0 API are time-specific and more accurate than the percentages chosen in the Video Ad Serving Template ad schedule page.' items: type: object description: '' required: - offset_from_start_in_ms properties: offset_from_start_in_ms: type: integer description: Specifies the time offset from the start of the video in milliseconds. This parameter determines the point in the video at which the ad break begins. format: int64 example: 20000 description: type: string description: The description of the ad position. For example, it can be an ad position in a video such as pre-roll, mid-roll, and post-roll. example: mid-roll no_ads: type: boolean description: "When set to `true`, no ads will be displayed during this video. \n\n**Note**: This feature only works for Iframe embeds." ad_keywords: type: string description: 'Used for replacing the `ad_keywords` macro in the VAST-tag in any player that plays the video. ' example: special_ads playback_token_behavior: type: string description: "Specifies the behavior of token authentication for the video, determining the level of access control. Use this security when distributing sensitive or valuable video content to audiences. It ensures that only authorized users can access the \n content within the intended application.\n\n\n**enum:** \n\n\n - **NO_TOKEN:** Video files are accessible and can be downloaded and played by anyone at any time. This is the default. \n\n\n - **BASIC_TOKEN:** The platform automatically creates tokenized video URLs. This setting makes it hard for a viewer\n to extract the video URL and store it for usage in unintended applications\n over time since the embed URL, which has the token as part of the URL, \n will only be playable for 48 hours. The token autorenews after 48 hours\n when used in the intended application. \n\n\n - **ADVANCED_TOKEN:** You add the stream's JS embed code and a token to your\n site to provide tokenization. The protections are similar to those for the **Basic\n Token** option except you customize the time limit, geographical limits,\n etc. during token creation. \n\n You must either:\n - Customize and generate a token via the Wowza Video 2.0 API to add\n to your site before you can use this enum. You'll need to, first, generate a key id to create and \n sign the token.\n\n - Customize and generate a standard common access token (CAT) through \n the means you usually use to create tokens before you can use this enum. You must, first, generate\n a key id and key via the Wowza Video 2.0 API, to create and sign the token.\n\n - **FOLLOW_DEFAULT:** The token behavior is based on the **Default Playback Token Behavior**\n setting you select for your Wowza account. See the Org Settings page in Wowza Video article\n for where to set this configuration. " example: NO_TOKEN description: Patch Video request for the Wowza Video REST API DirectInputRequest: required: - method type: object properties: method: type: string description: 'Method that video file will be provided. Indicates that you''ll upload a video from local storage. Use the `upload_url` parameter in the response to do the actual upload of the video. ' example: DIRECT enum: - DIRECT ImageModel: type: object properties: type: type: string description: Image type where valid values are `thumbnail` or `image`. `thumbnail` is a smaller image and `image` is larger. Size of the images depends on the size of the uploaded image. enum: - thumbnail - image - image_0 - image_1 - image_2 - image_3 - image_4 - image_5 url: type: string description: The URL to the image. We accept HTTP and HTTPS addresses. example: https://example.com/image.jpg description: 'Images used together with the video in the platform and the player. For platform video images specified in create and update requests, these are uploaded and delivered through the platform. For remote assets, the specified image URLs are just passed along to the player using the URL specified in the request. ' Error404: type: object description: '' required: - meta properties: meta: type: object title: meta description: '' properties: status: type: integer description: '' example: '' format: int32 code: type: string description: '' example: '' title: type: string description: '' example: '' message: type: string description: '' example: '' description: type: string description: '' example: '' links: type: array description: '' example: '' items: {} example: Example Response 1: meta: status: 404 code: ERR-404-RecordNotFound title: Record Not Found Error message: The requested resource couldn't be found. description: '' links: [] securitySchemes: basicAuth: type: http scheme: basic description: HTTP Basic Authentication using Wowza Streaming Engine admin credentials digestAuth: type: http scheme: digest description: HTTP Digest Authentication