What's changed

This topic covers REST API changes that occurred between the release of v1.9 and v1.10. These changes fall into two categories:

  • Changes present only in v1.10.
  • Changes that originate from the development of v1.10, but also retroactively apply to earlier versions of the API. These are non-breaking changes unless otherwise communicated by Wowza.

Highlights:

  • Added the filtering parameter to the GET /assets endpoints.
  • Added functionality to create only an MP4 when you record a real-time stream.

Only in v1.10

Over the course of development, we made the following changes to the REST API from v1.9 to v1.10. These changes are present in v1.10 only.

Updated endpoints

While developing v1.10 of the API, we made changes to the following endpoints:

  • Assets
  • Live streams
  • Players
  • Real-time streams
Assets
  • Added the filter parameter to the GET /assets endpoints. Previously, these endpoints only supported the query parameter.

    Examples

    • Filterhttps://api.video.wowza.com/api/beta/assets?filter[0][field]=created_at&filter[0][gte]=2021-07-14T17:47:45.000Z
    • Queryhttps://api.video.wowza.com/api/beta/assets?sort_direction=desc&sort_column=created_at&per_page=30&state=completed&query=sample

See Get filtered query results with the Wowza Video REST API for more information.

  • Updated DELETE /assets/{id} to allow for deleting assets in the processing state. Previously, you could only delete an asset in the uploading, failed, or completed state. When an asset is deleted, any related recordings and VOD streams are removed.
Live Streams

We've changed the request and response format for configuring the hosted page and the player. This change groups the configuration options for each object together in a more structured way.

v1.9
v1.10
POST /live_streams
{
"live_stream": {
  "name": "MyLiveStream"
  ...
  "hosted_page": true,
  "hosted_page_title": "MyLiveHostedPage",
  "hosted_page_description": "This is my hosted page.",
  "hosted_page_logo_image": "[Base64-encoded string representation of GIF, JPEG, or PNG file]",
  "hosted_page_sharing_icons": true,
  ...
  "player_countdown": true,
  "player_countdown_at": "2020-02-01T17:00:00.000Z.",
  "player_logo_image": "[Base64-encoded string representation of GIF, JPEG, or PNG file]",
  "player_logo_position": "top-left",
  "player_responsive": true,
  "player_type": "wowza_flowplayer",
  "player_video_poster_image": "[Base64-encoded string representation of GIF, JPEG, or PNG file]",
  "player_width": 640,
  ...
  }
}
 
Response 
{
"live_stream": {
  "name": "MyLiveStream"
  ...
  "hosted_page": true,
  "hosted_page_title": "MyLiveHostedPage",
  "hosted_page_description": "This is my hosted page.",
  "hosted_page_logo_image_url": "https://prod.s3.amazonaws.com/uploads/player/hosted_page_logo_image/23424/5bad28.jpg",
  "hosted_page_sharing_icons": true,
  "hosted_page_url": " "https://player.video.wowza.com/hosted/e8dk5bf6/player.html"",
  ...
  "player_countdown": true,
  "player_countdown_at": "2020-02-01T17:00:00.000Z.",
  "player_embed_code": "null",
  "player_hls_playback_url": "https://wowzasubdomain.wowza.com/1/TWhoL3BiZnJXMFhmNzZVN3JrZDAwUT09/ZmYxSXRrTERrUlk9/hls/live/playlist.m3u8",
  "player_id": "kwb6pwnv ",
  "player_logo_image_url": "https://prod.s3.amazonaws.com/uploads/player/logo_image/23424/5bad28.jpg",
  "player_logo_position": "top-left",
  "player_responsive": true,
  "player_type": "wowza_flowplayer",
  "player_video_poster_image_url": "https://prod.s3.amazonaws.com/uploads/player/video_poster_image/23424/5bad28.jpg",
  "player_width": 640,
  ...
  }
}
POST /live_streams
{
"live_stream": {
  "name": "MyLiveStream"
  ...
  "hosted_page": {
    "enabled": true,
    "page_title": "MyLiveHostedPage",
    "description": "This is my hosted page.",
    "logo_image": "[Base64-encoded string representation of GIF, JPEG, or PNG file]",
    "sharing_icons": true
   }
  ...
  "player": {
    "countdown": true,
    "countdown_at": "2020-02-01T17:00:00.000Z.",
    "logo_image": "[Base64-encoded string representation of GIF, JPEG, or PNG file]",
    "logo_position": "top-left",
    "responsive": true,
    "type": "wowza_flowplayer",
    "video_poster_image": "[Base64-encoded string representation of GIF, JPEG, or PNG file]",
    "width": 640
   }
  ...
  }
}
 
Response 
{
"live_stream": {
  "name": "MyLiveStream"
  ...
  "hosted_page": {
    "enabled":true,
    "title": "MyLiveHostedPage",
    "description": "This is my hosted page.",
    "logo_image_url": "https://prod.s3.amazonaws.com/uploads/player/hosted_page_logo_image/23424/5bad28.jpg",
    "sharing_icons": true,
    "page_url": " "https://player.video.wowza.com/hosted/e8dk5bf6/player.html""
   }
  ...
  "player": {
    "countdown": true,
    "countdown_at": "2020-02-01T17:00:00.000Z.",
    "embed_code": "null",
    "hls_playback_url": "https://wowzasubdomain.wowza.com/1/TWhoL3BiZnJXMFhmNzZVN3JrZDAwUT09/ZmYxSXRrTERrUlk9/hls/live/playlist.m3u8",
    "id": "kwb6pwnv ",
    "logo_image_url": "https://prod.s3.amazonaws.com/uploads/player/logo_image/23424/5bad28.jpg",
    "logo_position": "top-left",
    "responsive": true,
    "type": "wowza_flowplayer",
    "video_poster_image_url": "https://prod.s3.amazonaws.com/uploads/player/video_poster_image/23424/5bad28.jpg",
    "width": 640
  }
  ...
  }
}
Player

We've changed the request and response format for configuring the hosted page. This change groups the configuration options together in a more structured way.

v1.9
v1.10
PATCH /players
{
"player": {
  "hosted_page": true,
  "hosted_page_title": "MyLiveHostedPage",
  "hosted_page_description": "This is my hosted page.",
  "hosted_page_logo_image": "[Base64-encoded string representation of GIF, JPEG, or PNG file]",
  "hosted_page_sharing_icons": true,
  ...
  "responsive": true,
  }
}
 
Response 
{
"player": {
  "id": "e8dk5bf6 "
  ...
  "hosted_page": true,
  "hosted_page_title": "MyLiveHostedPage",
  "hosted_page_description": "This is my hosted page.",
  "hosted_page_logo_image_url": "https://prod.s3.amazonaws.com/uploads/player/hosted_page_logo_image/23424/5bad28.jpg",
  "hosted_page_sharing_icons": true,
  "hosted_page_url": " "https://player.video.wowza.com/hosted/e8dk5bf6/player.html"",
  ...
  "player_responsive": true,
  ...
  }
}
PATCH /players
{
"player": {
  "hosted_page": {
    "enabled": true,
    "page_title": "MyLiveHostedPage",
    "description": "This is my hosted page.",
    "logo_image": "[Base64-encoded string representation of GIF, JPEG, or PNG file]",
    "sharing_icons": true
   }
  ...
  "responsive": true,
  ...
  }
}
 
Response 
{
"player": {
  "id": "e8dk5bf6 "
  ...
  "hosted_page": {
    "enabled":true,
    "title": "MyLiveHostedPage",
    "description": "This is my hosted page.",
    "logo_image_url": "https://prod.s3.amazonaws.com/uploads/player/hosted_page_logo_image/23424/5bad28.jpg",
    "sharing_icons": true,
    "page_url": " "https://player.video.wowza.com/hosted/e8dk5bf6/player.html""
   }
  ...
  "responsive": true,
  ...
  }
}
Real-time streams

This change impacts Wowza Video subscribers only. You're a Wowza Video subscriber if you have access to Asset Management and Historic and Live Analytics in the user interface.

When you record a real-time stream, an MP4 file and an HLS stream for video-on-demand (VOD) replay are created. VOD streams can take a bit of processing time as multiple renditions are created. If you only need the MP4, you can save processing time by setting disable_vod_encoder to true on POST /real_time.

v1.9
v1.10
POST /real_time
{
"real_time_stream": {
  "name": "MyRealTimeStream",
  "recording": true
  }
}
 
Response 
{
  "real_time_stream": {
    "id": "2adffc17",
    "name": "MyRealTimeStream",
    "stream_name": "8d304b93f1684320a54f2798666eeca7v,
    "token": "97e52731bc21ef66e4c05a8ee1e28b64bf5f9db728573d94e690277cea9215bc",
    "rtmp_url": "rtmp://rtmp-realtime1.wowza.com:1935/v2/pub/8d304b93f1684320a54f2798666eeca7?token=97e52731bc21ef66e4c05a8ee1e28b64bf5f9db728573d94e690277cea9215bc",
    "enable_secure_viewer": false,
    "state": "active",
    "region": "emea",
    "recording": true,
    "created_at": "2021-06-30T18:02:20.000Z",
    "updated_at": "2021-06-30T20:03:16.000Z"
  }
}
POST /real_time
{
"real_time_stream": {
  "name": "MyRealTimeStream",
  "recording": true,
  "disable_vod_encoder": true
  }
}
 
Response 
{
  "real_time_stream": {
    "id": "2adffc17",
    "name": "MyRealTimeStream",
    "stream_name": "8d304b93f1684320a54f2798666eeca7v,
    "token": "97e52731bc21ef66e4c05a8ee1e28b64bf5f9db728573d94e690277cea9215bc",
    "rtmp_url": "rtmp://rtmp-realtime1.wowza.com:1935/v2/pub/8d304b93f1684320a54f2798666eeca7?token=97e52731bc21ef66e4c05a8ee1e28b64bf5f9db728573d94e690277cea9215bc",
    "enable_secure_viewer": false,
    "state": "active",
    "region": "emea",
    "recording": true,
    "disable_vod_encoder": true,
    "created_at": "2021-06-30T18:02:20.000Z",
    "updated_at": "2021-06-30T20:03:16.000Z"
  }
}

In v1.10 and earlier versions

After the release of version 1.10 and during the development of version 1.10, we made the following changes to 1.10 that also retroactively change earlier versions of the API. You might already be aware of these changes as they've been released and the changes communicated through the Wowza Video REST API release notes, but you might still consider them as you upgrade to version 1.10.

Wowza Flowplayer is default player for new live streams

Change present in: v1.7 through v1.10

This change impacts Wowza Video subscribers only. You're a Wowza Video subscriber if you have access to Asset Management and Historic and Live Analytics in the user interface.

Wowza Flowplayer is the default player for new live streams. To support this, the following changes were made:

  • Added wowza_flowplayer as the default value to type in the player object for the following /live_streams endpoints:
    • POST /live_streams
    • GET /live_streams/{id}
    • PATCH /live_streams/{id}
  • Added wowza_flowplayer< as the default value to type for the following /players endpoints:
    • GET /players
    • GET /players/{id}
    • PATCH /players/{id}

If you're a Wowza Video subscriber, you can update an existing live stream's player to wowza_flowplayer, but won't be able to change it later because Wowza Flowplayer is the only option if you are a subscriber.

Removed regions from GET /real_time

Change present in: v1.9 through v1.10

Removed

Original
Updated
  {
  "real_time_streams": [
    {
      "id": "2adffc17",
      "name": "MyRealTimeStream",
      "state": "active",
      "region": "emea",
      "created_at": "2021-01-29T17:16:21.849Z",
      "updated_at": "2021-01-31T16:06:47.849Z"
    },
    {
      "id": "if7le8ip",
      "name": "MyRealTimeStream2",
      "state": "active",
      "region": "americas",
      "created_at": "2020-01-29T17:16:21.849Zv,
      "updated_at": "2020-01-31T02:26:05.849Z"
    },
    {
      "id": "dd4udt1b",
      "name": "MyRealTimeStream3",
      "state": "active",
      "region": "americas",
      "created_at": "2020-01-29T17:16:21.849Z",
      "updated_at": "2020-01-30T18:13:18.849Z"
    }
  ]
}
{
  "real_time_streams": [
    {
      "id": "2adffc17",
      "name": "MyRealTimeStream",
      "state": "active",
      "created_at": "2021-01-29T17:16:21.849Z",
      "updated_at": "2021-01-31T16:06:47.849Z"
    },
    {
      "id": "if7le8ip",
      "name": "MyRealTimeStream2",
      "state": "active",
      "created_at": "2020-01-29T17:16:21.849Zv,
      "updated_at": "2020-01-31T02:26:05.849Z"
    },
    {
      "id": "dd4udt1b",
      "name": "MyRealTimeStream3",
      "state": "active",
      "created_at": "2020-01-29T17:16:21.849Z",
      "updated_at": "2020-01-30T18:13:18.849Z"
    }
  ]
}

Changed the value of a video codec in /transcoders

Change present in: v1.7 through v1.10

A value for video_codec returned in the following endpoints is changed from avc1 to h264:

  • GET /transcoders/{transcoder_id}/uptimes/{id}/metrics/current
  • GET /transcoders/{transcoder_id}/stats
Original
Updated
  "video_codec": {
      "value": "H264",
      "status": "normal",
      "text": "",
      "units": ""
    }
 "video_codec": {
      "value": "acv1",
      "status": "normal",
      "text": "",
      "units": ""
    }