Wowza vod_streams API

The VOD stream operations are deprecated in 2.0. Use the /videos endpoints instead. Operations related to video on demand (VOD) streams, which are created through the ``/live_streams`` or ``/transcoders`` resources. A VOD stream is a recording of a live stream that viewers can replay at a later date. After the broadcast is over and the live stream or transcoder is stopped, Wowza Video creates the VOD stream and generates a playback URL. See [About VOD Streams](https://www.wowza.com/docs/create-a-vod-stream#about-vod-streams) to learn more.

OpenAPI Specification

wowza-vod-streams-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Wowza Streaming Engine REST advanced_token_authentication vod_streams 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: vod_streams
  description: "<blockquote>The <strong>VOD stream</strong> operations are deprecated in 2.0. Use the <strong>/videos</strong> endpoints instead.</blockquote> \n\nOperations related to video on demand (VOD) streams, which are created through the ``/live_streams`` or ``/transcoders`` resources. A VOD stream is a recording of a live stream that viewers can replay at a later date. After the broadcast is over and the live stream or transcoder is stopped, Wowza Video creates the VOD stream and generates a playback URL. See [About VOD Streams](https://www.wowza.com/docs/create-a-vod-stream#about-vod-streams) to learn more."
  x-displayName: VOD Streams
paths:
  /vod_streams:
    get:
      summary: Fetch all VOD streams
      description: '<blockquote>The <strong>VOD streams</strong> operations are deprecated in 2.0. Use the <strong>/videos</strong> endpoints instead.</blockquote>


        (Available from version 1.5) This operation shows limited details for VOD streams. For detailed information, fetch a single VOD stream.'
      operationId: listVODStreams
      tags:
      - vod_streams
      parameters:
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/per_page'
      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/vod_streams\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/vod_streams';\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"
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/vod_streams'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error401'
  /vod_streams/{id}:
    get:
      summary: Fetch a VOD stream
      description: '<blockquote>The <strong>VOD stream</strong> operations are deprecated in 2.0. Use the <strong>/videos</strong> endpoints instead.</blockquote>

        (Available from version 1.5) This operation shows the details of a specific VOD stream.'
      operationId: showVODStream
      tags:
      - vod_streams
      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/vod_streams/1kfgc39\"\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/vod_streams/1kfgc39';\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
        required: true
        description: The unique alphanumeric string that identifies the VOD stream.
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                - vod_stream
                properties:
                  vod_stream:
                    $ref: '#/components/schemas/vod_stream'
        '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:
      summary: Update a VOD stream
      description: '<blockquote>The <strong>VOD stream</strong> operations are deprecated in 2.0. Use the <strong>/videos</strong> endpoints instead.</blockquote>


        (Available from version 1.5) This operation updates a VOD stream.'
      operationId: updateVODStream
      tags:
      - vod_streams
      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/vod_streams/1kfgc39\" \\\n  -d $'{\n  \"vod_stream\": {\n    \"property\": \"My Value\",\n    \"...\": \"...\"\n  }\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/vod_streams/1kfgc39';\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  \"vod_stream\": {\n    \"property\": \"My Value\",\n    \"...\": \"...\"\n  }\n}));\nreq.end();\n"
      parameters:
      - name: id
        in: path
        required: true
        description: The unique alphanumeric string that identifies the VOD stream.
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/vod_stream_update_input'
        description: Provide the details of the VOD stream to update in the body of the request.
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                - vod_stream
                properties:
                  vod_stream:
                    $ref: '#/components/schemas/vod_stream'
        '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:
      summary: Delete a VOD stream
      description: '<blockquote>The <strong>VOD stream</strong> operations are deprecated in 2.0. Use the <strong>/videos</strong> endpoints instead.</blockquote>


        (Available from version 1.5) This operation deletes a VOD stream. <br><br><b>Note</b>: You can''t remove VOD streams that have an asset_id. Assets must be removed by sending a DEL request to the /assets endpoint. '
      operationId: deleteVODStream
      tags:
      - vod_streams
      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/vod_streams/1kfgc39\"\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/vod_streams/1kfgc39';\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
        required: true
        description: The unique alphanumeric string that identifies the VOD stream.
        schema:
          type: string
      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:
    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: []
    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: []
    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 <output id> from the Live Stream <livestream id><livestream name>.
            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: []
    vod_streams:
      type: object
      description: ''
      required:
      - vod_streams
      properties:
        vod_streams:
          type: array
          items:
            type: object
            title: vod_streams
            description: ''
            properties:
              id:
                type: string
                description: The unique alphanumeric string that identifies the VOD stream.
                example: ''
              name:
                type: string
                description: A descriptive name for the VOD stream. Maximum 200 characters.
                example: ''
              state:
                type: string
                description: The state of the VOD stream.
                example: ''
                enum:
                - processing
                - completed
                - failed
              playback_enabled:
                type: boolean
                description: Specifies whether playback is enabled for the VOD stream.
                example: ''
                enum:
                - true
                - false
              reason:
                type: string
                description: The reason that a VOD stream has the state of **failed**. Only returned when the state is **failed**.
                example: ''
              created_at:
                type: string
                description: The date and time that the VOD stream was created.
                example: ''
              updated_at:
                type: string
                description: The date and time that the VOD stream was updated.
                example: ''
      example:
        vod_streams:
        - id: wdjfqvsv
          name: My VOD Stream 1
          state: failed
          playback_enabled: false
          created_at: '2020-02-25T17:16:25.849Z'
          updated_at: '2020-01-28T16:06:47.849Z'
        - id: XyxZKqHO
          name: My VOD Stream 2
          state: completed
          playback_enabled: true
          created_at: '2020-01-29T17:16:21.849Z'
          updated_at: '2020-01-31T02:26:05.849Z'
        - id: Pz21DRSt
          name: My VOD Stream 3
          state: completed
          playback_enabled: true
          created_at: '2020-01-29T17:16:21.849Z'
          updated_at: '2020-01-30T18:13:18.849Z'
    vod_stream_update_input:
      type: object
      description: ''
      required:
      - vod_stream
      properties:
        vod_stream:
          type: object
          title: vod_stream
          description: ''
          required:
          - name
          properties:
            name:
              type: string
              description: 'A descriptive name for the VOD stream. Maximum 200 characters.


                **Example:** <code>"name": "My updated VOD stream"</code>'
              example: My VOD Stream 1
            playback_enabled:
              type: boolean
              description: 'Specifies whether playback is enabled for the VOD stream.


                **Example:** <code>"playback_enabled": true</code>'
              example: true
              enum:
              - true
              - false
    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: []
    vod_stream:
      type: object
      description: ''
      properties:
        asset_id:
          type: string
          description: Only applies to VOD streams created for Asset Management. The id for the asset associated with your VOD stream. You can manage your asset in Asset Management.
        created_at:
          type: string
          description: The date and time that the VOD stream was created.
          example: ''
          format: date-time
        duration:
          type: integer
          description: The duration of the VOD stream.
        end_segment:
          type: integer
          description: The media sequence number of the last media segment in the chunklist.
          example: ''
        id:
          type: string
          description: The unique alphanumeric string that identifies the VOD stream.
          example: ''
        name:
          type: string
          description: A descriptive name for the VOD stream. Maximum 200 characters.
          example: ''
        percent_complete:
          type: integer
          description: The processing progress of the VOD stream.
          example: ''
        playback_enabled:
          type: boolean
          description: Specifies whether playback is enabled for the VOD stream.
          example: ''
          enum:
          - true
          - false
        playback_url:
          type: string
          description: The address that can be used to configure playback of the VOD stream.
          example: ''
        reason:
          type: string
          description: The reason that a VOD stream has the state of **failed**. Only returned when the state is **failed**.
          example: ''
        size:
          type: integer
          description: The size of the VOD stream.
          example: ''
        started_at:
          type: string
          description: The date and time that the stream was started.
          example: ''
          format: date-time
        start_segment:
          type: integer
          description: The media sequence number of the first media segment in the chunklist.
          example: ''
        state:
          type: string
          description: The state of the VOD stream.
          example: ''
          enum:
          - processing
          - completed
          - failed
        stream_target_id:
          type: integer
          description: The unique alphanumeric string that identifies the stream target associated with the VOD stream.
          example: ''
        source:
          type: string
          description: The source from which the VOD stream was created. The default is **live**.
          example: ''
        type:
          type: string
          description: The VOD stream type.
          example: ''
        updated_at:
          type: string
          description: The date and time that the VOD stream was updated.
          example: ''
          format: date-time
        uptime_id:
          type: string
          description: The unique identifier associated with a specific uptime period of a transcoder.
          example: ''
      example:
        created_at: '2020-02-12T19:20:46.000Z'
        duration: 480
        end_segment: 48
        id: lmp0vwrd
        name: MyVODStream
        percent_complete: 100
        playback_enabled: true
        playback_url: https://wowzasubdomain/1/RmlPcnpsM0Z1Nzd2/SFhkUXlv/hls/live/playlist.m3u8
        size: 98154424
        started_at: '2020-01-21T17:18:05.000Z'
        start_segment: 1
        state: completed
        stream_target_id: xcslyxf0
        source: live
        type: Original
        updated_at: '2020-02-20T06:12:39.956Z'
        uptime_id: abcd1234
  parameters:
    filter:
      name: filter
      in: query
      description: 'Restricts the data that gets returned by filtering on one or more values associated with a field. Construct a filter using a two-part expression that specifies the field on which to filter and the logic to use to filter. Filters use a zero-based index.


        For valid filter operators and filter fields, see [How to get filtered query results with the Wowza Video REST API](https://www.wowza.com/docs/how-to-get-filtered-query-results-with-the-wowza-video-rest-api).


        Example:

        **filter[0][field]=state&filter[0][eq]=stopped**'
      schema:
        type: string
    page:
      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**. \n\n For more information and examples, see [Get paginated query results with the Wowza Video REST API](https://www.wowza.com/docs/how-to-get-paginated-query-results-with-the-wowza-video-rest-api)."
      schema:
        type: integer
    per_page:
      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
  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