Remove an Akamai stream source from a live stream or transcoder using the Wowza Streaming Cloud REST API

As of January 16, 2020, Akamai stream sources are no longer functional. To prevent a disruption of service, you'll need to update existing Akamai stream source configurations by doing one of the following:

  • Replace the Akamai stream source with a Wowza stream source.
  • Remove the Akamai stream source and send the stream directly to the transcoder.
Note: You can retrieve and delete existing Akamai stream sources in v1.3 of the Wowza Streaming Cloud REST API.

Replace an Akamai stream source with a Wowza stream source

You can update an existing stream source configuration by replacing the Akamai stream source with a Wowza stream source. After you replace the stream source, you'll need to update the connection information that your camera or encoder uses to connect to Wowza Streaming Cloud.

Note: Wowza stream sources don't provide the same functionality as Akamai stream sources.
 
  • An Akamai stream source is a Wowza Streaming Cloud edge resource. If one source stream fails, Wowza Streaming Cloud continues to receive and process the source video on the additional, backup stream source, ensuring that playback continues uninterrupted for your viewers.
  • Wowza stream sources provide an entry point into Wowza Streaming Cloud that automatically detects the broadcast location of your source encoder or camera and uses the closest ingest point based on a DNS query. A transcoder connected to a Wowza stream source starts automatically when the video source starts and stops automatically when the video source disconnects.

Add a Wowza stream source

First, create the Wowza stream source that you'll use to replace your existing Akamai stream source.

Wowza stream source parameter

Parameter Data Type Description
name string The name of the Wowza stream source. Enter an alphanumeric string that is short (maximum 200 characters) and descriptive.

Example request and response

Notes:

Create a Wowza stream source:

curl -X POST \
-H "Content-Type: application/json" \
-H "wsc-api-key: ${WSC_API_KEY}" \
-H "wsc-access-key: ${WSC_ACCESS_KEY}" \
-d '{
"stream_source_wowza": {
  "name": "Auto-starting stream source"
  }
}' "${WSC_HOST}/api/${WSC_VERSION}/stream_sources/wowza"

This creates a Wowza stream source with source connection details. Note the stream source id, primary_url, and stream_name in the response.

{ 
  "stream_source_wowza": { 
     "id": "def0vjqv", 
     "name": "Auto-starting stream source", 
     "primary_url": "rtmp://origin.cdn.wowza.com:1935/live", 
     "stream_name": "012p2abcKS3Vq93MGJIF6V5tIYS9560a",
     "state": "stopped",
     "created_at": "2018-12-12T15:37:55.000Z", 
     "updated_at": "2018-12-12T15:37:55.000Z" 
  } 
}

Note: Wowza stream sources don't allow source authentication.

Next, update the configuration for the live stream or transcoder.

Update the live stream's configuration

Replace the stream_source_id with the ID for the Wowza stream source you just created.

Example request and response

Update the live stream:

curl -X PATCH \
-H "Content-Type: application/json" \
-H "wsc-api-key: ${WSC_API_KEY}" \
-H "wsc-access-key: ${WSC_ACCESS_KEY}" \
-d '{
   "live_stream": {
     "stream_source_id": "def0vjqv"
   }
}' "${WSC_HOST}/api/${WSC_VERSION}/live_streams/[live_stream_id]"

The response should look something like this:

{
    "live_stream": {
        "id": "abcntjvl",
        "name": "MyLiveStream",
        "transcoder_type": "transcoded",
        "billing_mode": "pay_as_you_go",
        "broadcast_location": "us_west_california",
        "recording": false,
        "closed_caption_type": "none",
        "low_latency": false,
        "encoder": "other_rtmp",
        "delivery_method": "cdn",
        "target_delivery_protocol": "hls-https",
        "use_stream_source": true,
        "aspect_ratio_width": 1920,
        "aspect_ratio_height": 1080,
        "connection_code": "07yqLI",
        "connection_code_expires_at": "2018-10-17T14:39:50.000Z",
        "delivery_protocols": [
            "rtmp",
            "rtsp",
            "wowz",
            "hls"
        ],
        "source_connection_information": {
            "primary_server": "[wowzasubdomain].entrypoint.cloud.wowza.com",
            "host_port": 1935,
            "application": "app-8f5c",
            "stream_name": "4d3db5e1",
            "disable_authentication": false,
            "username": "client2",
            "password": "cde44772"
        },
        "player_id": "ly4rnpyt",
        "player_type": "wowza_player",
        "player_responsive": true,
        "player_countdown": false,
        "player_embed_code": "in_progress",
        "player_hls_playback_url": "https://[wowzasubdomain].akamaihd.net/hls/live/620367/be4fb5a4/playlist.m3u8",
        "hosted_page": true,
        "hosted_page_title": "MyLiveStream",
        "hosted_page_url": "in_progress",
        "hosted_page_sharing_icons": true,
        "stream_source_id": "def0vjqv",
        "stream_targets": [
            {
                "id": "jjwwxxpk"
            }
        ],
        "direct_playback_urls": {
            "rtmp": ["names, output_ids, and urls returned here"],
            "rtsp": ["names, output_ids, and urls returned here"],
            "wowz": ["names, output_ids, and urls returned here"]
        },
        "created_at": "2018-10-16T14:39:50.000Z",
        "updated_at": "2018-10-16T14:39:50.000Z"
    }
}

Update the information your camera or encoder uses to connect to Wowza Streaming Cloud using the primary_url and stream_name from the Wowza stream source. Refer to documentation for your specific encoder to note where to input the stream settings.

Update the transcoder's configuration

Replace the stream_source_id with the ID for the Wowza stream source you just created.

Example request and response

Update the transcoder:

curl -X PATCH \
-H "Content-Type: application/json" \
-H "wsc-api-key: ${WSC_API_KEY}" \
-H "wsc-access-key: ${WSC_ACCESS_KEY}" \ 
-d '{
  "transcoder": {
    "stream_source_id": "def0vjqv"
  } 
}' "${WSC_HOST}/api/${WSC_VERSION}/transcoders/[transcoder_ID]"

The response should look something like this:

{
  "transcoder": {
    "id": "123bcdf",
    "name": "Stream Source Example",
    "transcoder_type": "transcoded",
    ...
    "protocol": "rtmp",
    "delivery_method": "cdn",
    "source_port": 1935,
    "stream_source_id": "def0vjqv",
    "domain_name": "f92334.entrypoint.cloud.wowza.com",
    "application_name": "app-3757",
    "stream_name": "10eb0ed8",
    ...
    "outputs": [
      {
        "id": "abc70j2c",
        "name": "Video+Audio=Passthrough+128",
        ...
        "output_stream_targets": [
          {
            "id": "456m6j0s",
            ...
            "updated_at": "2018-04-26T15:06:10.000Z",
            },
          }
        ],
      }
    ],
  }
}

Update the information your camera or encoder uses to connect to Wowza Streaming Cloud using the primary_url and stream_name from the Wowza stream source. Refer to documentation for your specific encoder to note where to input the stream settings.

Remove an Akamai stream source from a live stream or transcoder

Alternatively, you can remove the stream source and send the stream directly to the transcoder. After you remove the stream source, you'll need to update the connection information that your camera or encoder uses to connect to Wowza Streaming Cloud.

Update the live stream's configuration

A live stream that uses an Akamai stream source has a delivery_method of cdn. To remove the stream source, change the delivery_method to push.

Example request and response

Update the live stream:

curl -X PATCH \
-H "Content-Type: application/json" \
-H "wsc-api-key: ${WSC_API_KEY}" \
-H "wsc-access-key: ${WSC_ACCESS_KEY}" \
-d '{
   "live_stream": {
     "delivery_method": "push"
   }
}' "${WSC_HOST}/api/${WSC_VERSION}/live_streams/[live_stream_id]"

The response should look something like this:

{
    "live_stream": {
        "id": "abcntjvl",
        "name": "MyLiveStream",
        "transcoder_type": "transcoded",
        "billing_mode": "pay_as_you_go",
        "broadcast_location": "us_west_california",
        "recording": false,
        "closed_caption_type": "none",
        "low_latency": false,
        "encoder": "other_rtmp",
        "delivery_method": "push",
        "target_delivery_protocol": "hls-https",
        "use_stream_source": false,
        "aspect_ratio_width": 1920,
        "aspect_ratio_height": 1080,
        "connection_code": "07yqLI",
        "connection_code_expires_at": "2018-10-17T14:39:50.000Z",
        "delivery_protocols": [
            "rtmp",
            "rtsp",
            "wowz",
            "hls"
        ],
        "source_connection_information": {
            "primary_server": "[wowzasubdomain].entrypoint.cloud.wowza.com",
            "host_port": 1935,
            "application": "app-8f5c",
            "stream_name": "4d3db5e1",
            "disable_authentication": false,
            "username": "client2",
            "password": "cde44772"
        },
        "player_id": "ly4rnpyt",
        "player_type": "wowza_player",
        "player_responsive": true,
        "player_countdown": false,
        "player_embed_code": "in_progress",
        "player_hls_playback_url": "https://[wowzasubdomain].akamaihd.net/hls/live/620367/be4fb5a4/playlist.m3u8",
        "hosted_page": true,
        "hosted_page_title": "MyLiveStream",
        "hosted_page_url": "in_progress",
        "hosted_page_sharing_icons": true,
        "stream_targets": [
            {
                "id": "jjwwxxpk"
            }
        ],
        "direct_playback_urls": {
            "rtmp": ["names, output_ids, and urls returned here"],
            "rtsp": ["names, output_ids, and urls returned here"],
            "wowz": ["names, output_ids, and urls returned here"]
        },
        "created_at": "2018-10-16T14:39:50.000Z",
        "updated_at": "2018-10-16T14:39:50.000Z"
    }
}

Next, update the information your camera or encoder uses to connect to Wowza Streaming Cloud using the primary_server, application, and stream_name values in the response. Refer to documentation for your specific encoder to note where to input the stream settings.

Update the transcoder's configuration

A transcoder that uses an Akamai stream source has a delivery_method of cdn. To remove the stream source, change the delivery_method to push.

Example request and response

Update the transcoder:

curl -X PATCH \
-H "Content-Type: application/json" \
-H "wsc-api-key: ${WSC_API_KEY}" \
-H "wsc-access-key: ${WSC_ACCESS_KEY}" \ 
-d '{
  "transcoder": {
    "delivery_method": "push"
  } 
}' "${WSC_HOST}/api/${WSC_VERSION}/transcoders/[transcoder_ID]"

The response should look something like this.

{
  "transcoder": {
    "id": "123bcdf",
    "name": "Stream Source Example",
    "transcoder_type": "transcoded",
    ...
    "protocol": "rtmp",
    "delivery_method": "push",
    "source_port": 1935,
    "domain_name": "13e229.entrypoint.cloud.wowza.com",
    "application_name": "app-1234",
    "stream_name": "10eb0ed8",
    ...
    "outputs": [
      {
        "id": "abc70j2c",
        "name": "Video+Audio=Passthrough+128",
        ...
        "output_stream_targets": [
          {
            "id": "456m6j0s",
            ...
            "updated_at": "2018-04-26T15:06:10.000Z",
            },
          }
        ],
      }
    ],
  }
}

Next, update the information your camera or encoder uses to connect to Wowza Streaming Cloud using the protocol, domain_name, application_name, and stream_name values in the response. Refer to documentation for your specific encoder to note where to input the stream settings.

More resources