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\": \"<The default category>\",\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\": \"<The default category>\",\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\": \"<The default category>\",\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\": \"<The account's default category>\",\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: <The account's default category>
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 <a href="https://www.wowza.com/docs/get-started-with-advertising-in-wowza-video#client-side-ad-insertion-csai-%C2%A00">client-side ad insertion</a>. If you create mid-roll ad insertion points for a video, for example, they overwrite any mid-roll ad positions created using the <a href="https://www.wowza.com/docs/create-a-video-ad-serving-template-vast-ad-schedule-in-wowza-video">Video Ad Serving Template ad schedule</a> 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 <a href=\"https://www.wowza.com/docs/org-setting-page-in-wowza-video\" target=\"_blank\">Org Settings page in Wowza Video</a> 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: <The account's default category>
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).
# --- truncated at 32 KB (83 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wowza/refs/heads/main/openapi/wowza-videos-api-openapi.yml