# Create a Wowza CDN stream target (Available from version 1.4) This operation creates a Wowza CDN stream target to deliver your stream using the Wowza CDN. Endpoint: POST /stream_targets/wowza_cdn Version: v2.0 ## Request fields (application/json): - `stream_target_wowza_cdn` (object, required) Example: {"name":"My Wowza CDN Stream Target"} - `stream_target_wowza_cdn.name` (string, required) A descriptive name for the stream target. Maximum 255 characters. Example: "My Wowza CDN Stream Target" - `stream_target_wowza_cdn.custom_origin_region` (string) The region where your Wowza Streaming Engine instance is located. Available from version 1.6. Valid values: * us - United States * eu - Europe * asia - Asia * sa - South America * india - India Example: "custom_origin_region": "us" - `stream_target_wowza_cdn.custom_origin_url` (string) The Wowza Streaming Engine instance's domain or IP address starting with http:// or https://. Available from version 1.6. Note: You can find the Host - Server address on the home page of Wowza Streaming Engine under Application Connection Settings. - `stream_target_wowza_cdn.url_suffix` (string) The path to append to the end of the playback url to make it a valid URL, to have playback through the Wowza Video Flowplayer. This is available for HLS playback only and necessary for stream targets with a custom origin. You must have a url_suffix to enable the Share Stream feature for this stream target. The Share Stream feature enables you to host the player and use the Wowza Video player for your viewers to view your stream. Example: "custom_origin/cW8JTDFr" - `stream_target_wowza_cdn.delivery_protocols` (array) Specifies the protocols sent to the stream target. Valid values are hls and dash (MPEG-DASH). The default is hls. Available from version 1.7. Note: If you enable more than one protocol, you'll incur egress charges for each protocol you select. See Protect streams for Google Widevine and Microsoft PlayReady devices with EZDRM and the Wowza Video REST API for an example of setting MPEG-DASH as a delivery protocol for digital rights management (DRM) use. Example: See response body sample - `stream_target_wowza_cdn.force_ssl_playback` (boolean) If true, requires users to play the stream over HTTPS. If false, the default, users can play the stream over HTTPS or HTTP. Example: "force_ssl_playback": true - `stream_target_wowza_cdn.geoblock_enabled` (boolean) If true, controls access to the stream from specific locations and, optionally, IP addresses. The default is false. Example: "geoblock_enabled": true - `stream_target_wowza_cdn.geoblock_by_location` (string) Specifies whether to allow or deny access to the stream from specific locations. The default is disabled. Example: "geoblock_location": "allow" Enum: "allow", "deny", "disabled" - `stream_target_wowza_cdn.geoblock_country_codes` (string) Required when geoblock_by_location is allow or deny. The locations affected by the geo-blocking. Enter a comma-separated list of capitalized two-letter ISO 3166-1 country codes. For a list, see [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) on Wikipedia. Example: "geoblock_country_codes": "CA, DE" - `stream_target_wowza_cdn.geoblock_ip_override` (string) Specifies whether specific IP addresses can override the locations that are allowed or restricted. allow permits access from IP addresses within a location that's been blocked, while deny restricts access from IP addresses within locations that are allowed. The default is disabled. Example: "geoblock_ip_override": "allow" Enum: "allow", "deny", "disabled" - `stream_target_wowza_cdn.geoblock_ip_addresses` (string) Required when geoblock_ip_override is allow or deny. Addresses that can access or restrict the stream even if they're within a specified geo-blocked location. Enter a comma-separated list of up to about 40 IPv4 and IPv6 IP addresses that always allow or deny streaming based on the geoblock_ip_override value. Troubleshooting: The limit of 40 IP addresses is approximate because all the security information (SSL playback, geoblocking countries and IP addresses, referer header, and token auth) count toward an overall metadata limit. If you have fewer than 40 IP addresses and still receive a 422: Invalid Record (Geoblock IP addresses) error, see Geo-block Wowza CDN on Fastly stream targets with the Wowza Video REST API for more ways to lower the character count. Example: "geoblock_ip_addresses": "77.12.34.567, 78.23.45.678" - `stream_target_wowza_cdn.properties` (array) Configures one or more stream target properties. The property configuration consists of a key/value pair and the section of the stream target configuration table the key/value pair is stored in. Available from version 1.7. Example: See response body sample Example: [{"key":"chunkSize","section":"hls","value":6}] - `stream_target_wowza_cdn.properties.key` (string, required) The key of the property. The following table lists the available property keys. Key | Description ----------------|------------- acao | Explicitly specifies the origin that can access the stream. While most streams won't need the origin explicitly set, you might use this property for older players that don't send the Referer header in their stream request. chunkSize | Defines the duration of the time-based audio and video chunks that Wowza Video delivers to the target. convertAMFData | Determines whether Wowza Video converts incoming AMF data into ID3 tags. playlistSeconds | Defines the maximum allowable length of the playlist. relativePlaylists | Allows the viewer to watch the stream over HTTP and HTTPS, whichever protocol their browser calls. Enum: "acao", "chunkSize", "convertAMFData", "playlistSeconds", "relativePlaylists" - `stream_target_wowza_cdn.properties.section` (string, required) The section of the stream target configuration table that contains the property. Section | Valid keys for the section ----------------|------------- hls | acao, chunkSize, and convertAMFData playlist | playlistSeconds and relativePlaylists Enum: "hls", "playlist" - `stream_target_wowza_cdn.properties.value` (string, required) The value of the property. The following table provides information about valid values for each property key. Key(s) | Values for the key ----------------|------------- acao | Displays as http://<_origin_> chunkSize | Valid values are the integers 2, 4, 6, 8, and 10. convertAMFData relativePlaylists | Valid values are the Booleans true and false. playlistSeconds | Valid values are any integer between 6 and 28800 (8 hours). Example: 6 - `stream_target_wowza_cdn.referer_enabled` (boolean) If true, controls access to the stream from specific domains. The client or player requesting access to the stream must send the Referer header so the origin of the request can be validated. The default is false. Note: If you change referer_enabled to false after configuring the referer policy, then later re-enable it, you'll need to re-configure the other referer policy values as well. Available from version 1.7. For more information about the Referer header, see the [HTTP specification](https://tools.ietf.org/html/rfc7231#section-5.5.2). Example: "referer_enabled": true - `stream_target_wowza_cdn.referer_allow_empty` (boolean) The Referer header sent by the client or player can be empty and not identify the origin of the request. The default is false when referer_enabled is true. While less secure, if you know you'll have viewers with a client or player that won't send a Referer header, you can specify true to allow an empty Referer header so those viewers can still access the stream. Available from version 1.7. Example: "referer_allow_empty": true - `stream_target_wowza_cdn.referer_policy` (string) Specifies whether to allow or deny access to the stream from specific domains. The default is allow when referer_enabled is true. Specify the domains to allow or deny in referer_domains. Available from version 1.7. Example: "referer_policy": "allow" Enum: "allow", "deny" - `stream_target_wowza_cdn.referer_domains` (string) Domains that are either allowed or blocked from accessing the stream. Enter a comma-separated list of domains that are always allowed or denied access based on the referer_policy value. Required when referer_enabled is true. We recommend you enter the simplest form of the domain as possible, but you do need to build out the domain to the level of subdomains you want to allow or deny. You can fully express to the subdomain (_mysubdomain.example.com_) to specify that single, specific subdomain or you can use a wildcard (*) to cover all subdomains at a specific level (_*.example.com_). Example: _example.com, .example.com, .mysubdomain.example.com_ If you entered the above example value for referer_domains, and referer_policy is allow, the following domains are allowed access to the stream: https://example.com https://subdomain.example.com, https://subdomain2.example.com, etc. https://subdomainA.mysubdomain.example.com, https://subdomainB.mysubdomain.example.com, etc. Available from version 1.7. Example: "referer_domains": "example.com, example2.com" - `stream_target_wowza_cdn.token_auth_enabled` (boolean) If true, token authentication protects the stream by ensuring that it's delivered only to authorized viewers and can't be shared by unauthorized links or player hijacking attacks. The default is false. Example: "token_auth_enabled": true - `stream_target_wowza_cdn.token_auth_shared_secret` (string) The shared secret of the token authentication. Must contain only hexadecimal characters and be an even number of total characters not exceeding 32. Example: "token_auth_shared_secret": "12345678ABCDEF" - `stream_target_wowza_cdn.token_auth_playlist_only` (boolean) If true, Wowza Video uses token authentication to protect the master playlist only and leaves individual media playlists and media segments unprotected. This feature enables playback compatibility with media players that don’t support the withCredentials property. It may also be useful when addressing token auth compatibility issues with specific browsers. The default is false. Note: If you've enabled MPEG-DASH on your stream target, token_auth_playlist_only applies to both the playlist.m3u8 for HLS and manifest.mpd for MPEG-DASH. Example: "token_auth_playlist_only": true ## Response 201 fields (application/json): - `stream_target_wowza_cdn` (object, required) Example: {"id":"abc45lfyz","name":"My Wowza CDN Stream Target","state":"activated","stream_name":"9a00105a","delivery_protocols":["hls"],"playback_urls":{"hls":[{"name":"default","url":"https://wowzasubdomain.wowza.com/1/TWhoL3BiZnJXMFhmNzZVN3JrZDAwUT09/ZmYxSXRrTERrUlk9/hls/live/playlist.m3u8"}]},"token_auth_enabled":false,"token_auth_playlist_only":false,"geoblock_enabled":true,"geoblock_by_location":"allow","geoblock_country_codes":"DE, US","geoblock_ip_override":"deny","geoblock_ip_addresses":"77.12.34.567, 78.23.45.678","referer_enabled":true,"referer_allow_empty":false,"referer_policy":"allow","referer_domains":"example.com, example2.com","force_ssl_playback":false,"created_at":"2020-01-28T17:16:22.086Z","updated_at":"2020-01-30T15:33:43.086Z"} - `stream_target_wowza_cdn.created_at` (string) The date and time that the stream target was created. Example: "2020-01-28T17:16:22.086Z" - `stream_target_wowza_cdn.custom_origin_region` (string) The region where your Wowza Streaming Engine instance is located. Available from version 1.6. - `stream_target_wowza_cdn.custom_origin_url` (string) The Wowza Streaming Engine instance's domain or IP address. Available from version 1.6. - `stream_target_wowza_cdn.url_suffix` (string) The path appended to the end of the playback url to make it a valid URL, to have playback through the Wowza Video Flowplayer. This is available for HLS playback only and necessary for stream targets with a custom origin. You must have a url_suffix to enable the Share Stream feature for this stream target. The Share Stream feature enables you to host the player and use the Wowza Video player for your viewers to view your stream. Example: "custom_origin/cW8JTDFr" - `stream_target_wowza_cdn.delivery_protocols` (array) An array of the delivery protocols available for this stream target. Available from version 1.7. Example: ["hls"] - `stream_target_wowza_cdn.force_ssl_playback` (boolean) If true, requires users to play the stream over HTTPS. If false, the default, users can play the stream over HTTPS or HTTP. - `stream_target_wowza_cdn.geoblock_enabled` (boolean) If true, controls access to the stream from specific locations and, optionally, IP addresses. The default is false. Example: true - `stream_target_wowza_cdn.geoblock_by_location` (string) Specifies whether to allow or deny access to the stream from specific locations. The default is disabled. Enum: "allow", "deny", "disabled" - `stream_target_wowza_cdn.geoblock_country_codes` (string) Required when geoblock_by_location is allow or deny. The locations affected by the geo-blocking. Enter a comma-separated list of capitalized two-letter ISO 3166-1 country codes. For a list, see [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) on Wikipedia. Example: "DE, US" - `stream_target_wowza_cdn.geoblock_ip_override` (string) Specifies whether specific IP addresses can override the locations that are allowed or restricted. allow permits access from IP addresses within a location that's been blocked, while deny restricts access from IP addresses within locations that are allowed. The default is disabled. Enum: "allow", "deny", "disabled" - `stream_target_wowza_cdn.geoblock_ip_addresses` (string) Required when geoblock_ip_override is allow or deny. Addresses that can access or restrict the stream even if they're within a specified geo-blocked location. Enter a comma-separated list of IPv4 and IPv6 IP addresses that always allow or deny streaming based on the geoblock_ip_override value. Example: "77.12.34.567, 78.23.45.678" - `stream_target_wowza_cdn.id` (string) The unique alphanumeric string that identifies the stream target. Example: "abc45lfyz" - `stream_target_wowza_cdn.name` (string) A descriptive name for the stream target. Maximum 255 characters. Example: "My Wowza CDN Stream Target" - `stream_target_wowza_cdn.playback_urls` (object) Web addresses that the target uses to play streams. Example: {"hls":[{"name":"default","url":"https://wowzasubdomain.wowza.com/1/TWhoL3BiZnJXMFhmNzZVN3JrZDAwUT09/ZmYxSXRrTERrUlk9/hls/live/playlist.m3u8"}]} - `stream_target_wowza_cdn.playback_urls.hls` (array) Web address that the target uses to play HLS streams. Example: [{"name":"default","url":"https://wowzasubdomain.wowza.com/1/TWhoL3BiZnJXMFhmNzZVN3JrZDAwUT09/ZmYxSXRrTERrUlk9/hls/live/playlist.m3u8"}] - `stream_target_wowza_cdn.playback_urls.hls.name` (string) The name of the playback URL. Example: "default" - `stream_target_wowza_cdn.playback_urls.hls.url` (string) The playback URL. - `stream_target_wowza_cdn.state` (string) The state of the stream target. Enum: "activated", "archived" - `stream_target_wowza_cdn.stream_name` (string) The name of the stream being ingested into the target. Example: "9a00105a" - `stream_target_wowza_cdn.referer_enabled` (boolean) If true, controls access to the stream from specific domains. The client or player requesting access to the stream must send the Referer header so the origin of the request can be validated. The default is false. Note: If you change referer_enabled to false after configuring the referer policy, then later re-enable it, you'll need to re-configure the other referer policy values as well. Available from version 1.7. For more information about the Referer header, see the [HTTP specification](https://tools.ietf.org/html/rfc7231#section-5.5.2). Example: true - `stream_target_wowza_cdn.referer_allow_empty` (boolean) The Referer header sent by the client or player can be empty and not identify the origin of the request. The default is false when referer_enabled is true. While less secure, if you know you'll have viewers with a client or player that won't send a Referer header, you can specify true to allow an empty Referer header so those viewers can still access the stream. Available from version 1.7. - `stream_target_wowza_cdn.referer_policy` (string) Specifies whether to allow or deny access to the stream from specific domains. The default is allow when referer_enabled is true. Specify the domains to allow or deny in referer_domains. Available from version 1.7. Enum: "allow", "deny" - `stream_target_wowza_cdn.referer_domains` (string) Domains that are either allowed or blocked from accessing the stream. Enter a comma-separated list of domains that are always allowed or denied access based on the referer_policy value. Required when referer_enabled is true. We recommend you enter the simplest form of the domain as possible, but you do need to build out the domain to the level of subdomains you want to allow or deny. You can fully express to the subdomain (_mysubdomain.example.com_) to specify that single, specific subdomain or you can use a wildcard (*) to cover all subdomains at a specific level (_*.example.com_). Example: _example.com, .example.com, .mysubdomain.example.com_ If you entered the above example value for referer_domains, and referer_policy is allow, the following domains are allowed access to the stream: https://example.com https://subdomain.example.com, https://subdomain2.example.com, etc. https://subdomainA.mysubdomain.example.com, https://subdomainB.mysubdomain.example.com, etc. Available from version 1.7. Example: "example.com, example2.com" - `stream_target_wowza_cdn.token_auth_enabled` (boolean) If true, token authentication protects the stream by ensuring that it's delivered only to authorized viewers and can't be shared by unauthorized links or player hijacking attacks. The default is false. - `stream_target_wowza_cdn.token_auth_shared_secret` (string) The shared secret of the token authentication. Must contain only hexadecimal characters and be an even number of total characters not exceeding 32. - `stream_target_wowza_cdn.token_auth_playlist_only` (boolean) If true, Wowza Video uses token authentication to protect the master playlist only and leaves individual media playlists and media segments unprotected. This feature enables playback compatibility with media players that don’t support the withCredentials property. It may also be useful when addressing token auth compatibility issues with specific browsers. The default is false. Note: If you've enabled MPEG-DASH on your stream target, token_auth_playlist_only applies to both the playlist.m3u8 for HLS and manifest.mpd for MPEG-DASH. - `stream_target_wowza_cdn.updated_at` (string) The date and time that the stream target was updated. Example: "2020-01-30T15:33:43.086Z" ## Response 401 fields (application/json): - `meta` (object, required) - `meta.status` (integer) - `meta.code` (string) - `meta.title` (string) - `meta.message` (string) - `meta.description` (string) - `meta.links` (array) ## Response 422 fields (application/json): - `meta` (object, required) - `meta.status` (integer) - `meta.code` (string) - `meta.title` (string) - `meta.message` (string) - `meta.description` (string) - `meta.links` (array)