diff --git a/api_assets.go b/api_assets.go index fa4d1d2..1eeeb78 100644 --- a/api_assets.go +++ b/api_assets.go @@ -439,6 +439,84 @@ func (a *AssetsApiService) DeleteAssetTrack(aSSETID string, tRACKID string, opts return nil } +func (a *AssetsApiService) GenerateAssetTrackSubtitles(aSSETID string, tRACKID string, generateTrackSubtitlesRequest GenerateTrackSubtitlesRequest, opts ...APIOption) (GenerateTrackSubtitlesResponse, error) { + var ( + localVarAPIOptions = new(APIOptions) + localVarHttpMethod = strings.ToUpper("Post") + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + localVarReturnValue GenerateTrackSubtitlesResponse + ) + + for _, opt := range opts { + opt(localVarAPIOptions) + } + + // create path and map variables + localVarPath := a.client.cfg.basePath + "/video/v1/assets/{ASSET_ID}/tracks/{TRACK_ID}/generate-subtitles" + localVarPath = strings.Replace(localVarPath, "{"+"ASSET_ID"+"}", fmt.Sprintf("%v", aSSETID), -1) + localVarPath = strings.Replace(localVarPath, "{"+"TRACK_ID"+"}", fmt.Sprintf("%v", tRACKID), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + // body params + localVarPostBody = &generateTrackSubtitlesRequest + + r, err := a.client.prepareRequest(localVarAPIOptions, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, err + } + + // Check for common HTTP error status codes + err = CheckForHttpError(localVarHttpResponse.StatusCode, localVarBody) + if err != nil { + return localVarReturnValue, err + } + + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + if err != nil { + newErr := GenericOpenAPIError{ + body: localVarBody, + error: err.Error(), + } + return localVarReturnValue, newErr + } + + return localVarReturnValue, nil +} + func (a *AssetsApiService) GetAsset(aSSETID string, opts ...APIOption) (AssetResponse, error) { var ( localVarAPIOptions = new(APIOptions) diff --git a/configuration.go b/configuration.go index eada07f..652e8fd 100644 --- a/configuration.go +++ b/configuration.go @@ -22,7 +22,7 @@ type ConfigurationOption func(*Configuration) func NewConfiguration(opts ...ConfigurationOption) *Configuration { cfg := &Configuration{ basePath: "https://api.mux.com", - userAgent: "Mux Go | 5.2.0", + userAgent: "Mux Go | 5.3.0", } for _, opt := range opts { opt(cfg) diff --git a/docs/Asset.md b/docs/Asset.md index c908948..703da37 100644 --- a/docs/Asset.md +++ b/docs/Asset.md @@ -30,6 +30,7 @@ Name | Type | Description | Notes **RecordingTimes** | [**[]AssetRecordingTimes**](Asset_recording_times.md) | An array of individual live stream recording sessions. A recording session is created on each encoder connection during the live stream. Additionally any time slate media is inserted during brief interruptions in the live stream media or times when the live streaming software disconnects, a recording session representing the slate media will be added with a \"slate\" type. | [optional] **NonStandardInputReasons** | [**AssetNonStandardInputReasons**](Asset_non_standard_input_reasons.md) | | [optional] **Test** | **bool** | True means this live stream is a test asset. A test asset can help evaluate the Mux Video APIs without incurring any cost. There is no limit on number of test assets created. Test assets are watermarked with the Mux logo, limited to 10 seconds, and deleted after 24 hrs. | [optional] +**IngestType** | **string** | The type of ingest used to create the asset. | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/AssetsApi.md b/docs/AssetsApi.md index 19938d2..f563e19 100644 --- a/docs/AssetsApi.md +++ b/docs/AssetsApi.md @@ -10,11 +10,12 @@ Method | HTTP request | Description [**DeleteAsset**](AssetsApi.md#DeleteAsset) | **Delete** /video/v1/assets/{ASSET_ID} | Delete an asset [**DeleteAssetPlaybackId**](AssetsApi.md#DeleteAssetPlaybackId) | **Delete** /video/v1/assets/{ASSET_ID}/playback-ids/{PLAYBACK_ID} | Delete a playback ID [**DeleteAssetTrack**](AssetsApi.md#DeleteAssetTrack) | **Delete** /video/v1/assets/{ASSET_ID}/tracks/{TRACK_ID} | Delete an asset track +[**GenerateAssetTrackSubtitles**](AssetsApi.md#GenerateAssetTrackSubtitles) | **Post** /video/v1/assets/{ASSET_ID}/tracks/{TRACK_ID}/generate-subtitles | Generate track subtitles [**GetAsset**](AssetsApi.md#GetAsset) | **Get** /video/v1/assets/{ASSET_ID} | Retrieve an asset [**GetAssetInputInfo**](AssetsApi.md#GetAssetInputInfo) | **Get** /video/v1/assets/{ASSET_ID}/input-info | Retrieve asset input info [**GetAssetPlaybackId**](AssetsApi.md#GetAssetPlaybackId) | **Get** /video/v1/assets/{ASSET_ID}/playback-ids/{PLAYBACK_ID} | Retrieve a playback ID [**ListAssets**](AssetsApi.md#ListAssets) | **Get** /video/v1/assets | List assets -[**UpdateAsset**](AssetsApi.md#UpdateAsset) | **Patch** /video/v1/assets/{ASSET_ID} | Update an Asset +[**UpdateAsset**](AssetsApi.md#UpdateAsset) | **Patch** /video/v1/assets/{ASSET_ID} | Update an asset [**UpdateAssetMasterAccess**](AssetsApi.md#UpdateAssetMasterAccess) | **Put** /video/v1/assets/{ASSET_ID}/master-access | Update master access [**UpdateAssetMp4Support**](AssetsApi.md#UpdateAssetMp4Support) | **Put** /video/v1/assets/{ASSET_ID}/mp4-support | Update MP4 support @@ -191,6 +192,36 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **GenerateAssetTrackSubtitles** +> GenerateTrackSubtitlesResponse GenerateAssetTrackSubtitles(ctx, aSSETID, tRACKID, generateTrackSubtitlesRequest) +Generate track subtitles + +Generates subtitles (captions) for a given audio track. This API can be used for up to 7 days after an asset is created. + +### Required Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. + **aSSETID** | **string**| The asset ID. | + **tRACKID** | **string**| The track ID. | + **generateTrackSubtitlesRequest** | [**GenerateTrackSubtitlesRequest**](GenerateTrackSubtitlesRequest.md)| | + +### Return type + +[**GenerateTrackSubtitlesResponse**](GenerateTrackSubtitlesResponse.md) + +### Authorization + +[accessToken](../README.md#accessToken) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **GetAsset** > AssetResponse GetAsset(ctx, aSSETID) Retrieve an asset @@ -316,7 +347,7 @@ Name | Type | Description | Notes # **UpdateAsset** > AssetResponse UpdateAsset(ctx, aSSETID, updateAssetRequest) -Update an Asset +Update an asset Updates the details of an already-created Asset with the provided Asset ID. This currently supports only the `passthrough` field. diff --git a/docs/CreateSimulcastTargetRequest.md b/docs/CreateSimulcastTargetRequest.md index b0c5b0c..01baf56 100644 --- a/docs/CreateSimulcastTargetRequest.md +++ b/docs/CreateSimulcastTargetRequest.md @@ -4,8 +4,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Passthrough** | **string** | Arbitrary user-supplied metadata set by you when creating a simulcast target. | [optional] -**StreamKey** | **string** | Stream Key represents a stream identifier on the third party live streaming service to send the parent live stream to. | [optional] -**Url** | **string** | RTMP hostname including application name for the third party live streaming service. Example: `rtmp://live.example.com/app`. | [optional] +**StreamKey** | **string** | Stream Key represents a stream identifier on the third party live streaming service to send the parent live stream to. Only used for RTMP(s) simulcast destinations. | [optional] +**Url** | **string** | The RTMP(s) or SRT endpoint for a simulcast destination. * For RTMP(s) destinations, this should include the application name for the third party live streaming service, for example: `rtmp://live.example.com/app`. * For SRT destinations, this should be a fully formed SRT connection string, for example: `srt://srt-live.example.com:1234?streamid={stream_key}&passphrase={srt_passphrase}`. Note: SRT simulcast targets can only be used when an source is connected over SRT. | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/Error.md b/docs/Error.md index 0020237..a5a50b5 100644 --- a/docs/Error.md +++ b/docs/Error.md @@ -11,6 +11,7 @@ Name | Type | Description | Notes **Description** | **string** | Description of the error. | [optional] **Count** | **int64** | The total number of views that experienced this error. | [optional] **Code** | **int64** | The error code | [optional] +**PlayerErrorCode** | **string** | The string version of the error code | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/GenerateTrackSubtitlesRequest.md b/docs/GenerateTrackSubtitlesRequest.md new file mode 100644 index 0000000..8c1be0d --- /dev/null +++ b/docs/GenerateTrackSubtitlesRequest.md @@ -0,0 +1,10 @@ +# GenerateTrackSubtitlesRequest + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**GeneratedSubtitles** | [**[]AssetGeneratedSubtitleSettings**](AssetGeneratedSubtitleSettings.md) | Generate subtitle tracks using automatic speech recognition with this configuration. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GenerateTrackSubtitlesResponse.md b/docs/GenerateTrackSubtitlesResponse.md new file mode 100644 index 0000000..e88774b --- /dev/null +++ b/docs/GenerateTrackSubtitlesResponse.md @@ -0,0 +1,10 @@ +# GenerateTrackSubtitlesResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Data** | [**Track**](Track.md) | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/InputSettings.md b/docs/InputSettings.md index 3629ce3..ad7c57c 100644 --- a/docs/InputSettings.md +++ b/docs/InputSettings.md @@ -5,7 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Url** | **string** | The URL of the file that Mux should download and use. * For the main input file, this should be the URL to the muxed file for Mux to download, for example an MP4, MOV, MKV, or TS file. Mux supports most audio/video file formats and codecs, but for fastest processing, you should [use standard inputs wherever possible](https://docs.mux.com/guides/minimize-processing-time). * For `audio` tracks, the URL is the location of the audio file for Mux to download, for example an M4A, WAV, or MP3 file. Mux supports most audio file formats and codecs, but for fastest processing, you should [use standard inputs wherever possible](https://docs.mux.com/guides/minimize-processing-time). * For `text` tracks, the URL is the location of subtitle/captions file. Mux supports [SubRip Text (SRT)](https://en.wikipedia.org/wiki/SubRip) and [Web Video Text Tracks](https://www.w3.org/TR/webvtt1/) formats for ingesting Subtitles and Closed Captions. * For Watermarking or Overlay, the URL is the location of the watermark image. The maximum size is 4096x4096. * When creating clips from existing Mux assets, the URL is defined with `mux://assets/{asset_id}` template where `asset_id` is the Asset Identifier for creating the clip from. The url property may be omitted on the first input object when providing asset settings for LiveStream and Upload objects, in order to configure settings related to the primary (live stream or direct upload) input. | [optional] **OverlaySettings** | [**InputSettingsOverlaySettings**](InputSettings_overlay_settings.md) | | [optional] -**GeneratedSubtitles** | [**[]AssetGeneratedSubtitleSettings**](AssetGeneratedSubtitleSettings.md) | Generate subtitle tracks using automatic speech recognition using this configuration. This may only be provided for the first input object (the main input file). For direct uploads, this first input should omit the url parameter, as the main input file is provided via the direct upload. This will create subtitles based on the audio track ingested from that main input file. Note that subtitle generation happens after initial ingest, so the generated tracks will be in the `preparing` state when the asset transitions to `ready`. | [optional] +**GeneratedSubtitles** | [**[]AssetGeneratedSubtitleSettings**](AssetGeneratedSubtitleSettings.md) | Generate subtitle tracks using automatic speech recognition with this configuration. This may only be provided for the first input object (the main input file). For direct uploads, this first input should omit the url parameter, as the main input file is provided via the direct upload. This will create subtitles based on the audio track ingested from that main input file. Note that subtitle generation happens after initial ingest, so the generated tracks will be in the `preparing` state when the asset transitions to `ready`. | [optional] **StartTime** | **float64** | The time offset in seconds from the beginning of the video indicating the clip's starting marker. The default value is 0 when not included. This parameter is only applicable for creating clips when `input.url` has `mux://assets/{asset_id}` format. | [optional] **EndTime** | **float64** | The time offset in seconds from the beginning of the video, indicating the clip's ending marker. The default value is the duration of the video when not included. This parameter is only applicable for creating clips when `input.url` has `mux://assets/{asset_id}` format. | [optional] **Type** | **string** | This parameter is required for `text` type tracks. | [optional] diff --git a/docs/LiveStream.md b/docs/LiveStream.md index e0c2d88..736b7a6 100644 --- a/docs/LiveStream.md +++ b/docs/LiveStream.md @@ -25,6 +25,7 @@ Name | Type | Description | Notes **Test** | **bool** | True means this live stream is a test live stream. Test live streams can be used to help evaluate the Mux Video APIs for free. There is no limit on the number of test live streams, but they are watermarked with the Mux logo, and limited to 5 minutes. The test live stream is disabled after the stream is active for 5 mins and the recorded asset also deleted after 24 hours. | [optional] **MaxContinuousDuration** | **int32** | The time in seconds a live stream may be continuously active before being disconnected. Defaults to 12 hours. | [optional] [default to 43200] **SrtPassphrase** | **string** | Unique key used for encrypting a stream to a Mux SRT endpoint. | [optional] +**ActiveIngestProtocol** | **string** | The protocol used for the active ingest stream. This is only set when the live stream is active. | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/LiveStreamsApi.md b/docs/LiveStreamsApi.md index f560dfa..7ad14fa 100644 --- a/docs/LiveStreamsApi.md +++ b/docs/LiveStreamsApi.md @@ -9,12 +9,12 @@ Method | HTTP request | Description [**CreateLiveStreamSimulcastTarget**](LiveStreamsApi.md#CreateLiveStreamSimulcastTarget) | **Post** /video/v1/live-streams/{LIVE_STREAM_ID}/simulcast-targets | Create a live stream simulcast target [**DeleteLiveStream**](LiveStreamsApi.md#DeleteLiveStream) | **Delete** /video/v1/live-streams/{LIVE_STREAM_ID} | Delete a live stream [**DeleteLiveStreamPlaybackId**](LiveStreamsApi.md#DeleteLiveStreamPlaybackId) | **Delete** /video/v1/live-streams/{LIVE_STREAM_ID}/playback-ids/{PLAYBACK_ID} | Delete a live stream playback ID -[**DeleteLiveStreamSimulcastTarget**](LiveStreamsApi.md#DeleteLiveStreamSimulcastTarget) | **Delete** /video/v1/live-streams/{LIVE_STREAM_ID}/simulcast-targets/{SIMULCAST_TARGET_ID} | Delete a Live Stream Simulcast Target +[**DeleteLiveStreamSimulcastTarget**](LiveStreamsApi.md#DeleteLiveStreamSimulcastTarget) | **Delete** /video/v1/live-streams/{LIVE_STREAM_ID}/simulcast-targets/{SIMULCAST_TARGET_ID} | Delete a live stream simulcast target [**DisableLiveStream**](LiveStreamsApi.md#DisableLiveStream) | **Put** /video/v1/live-streams/{LIVE_STREAM_ID}/disable | Disable a live stream [**EnableLiveStream**](LiveStreamsApi.md#EnableLiveStream) | **Put** /video/v1/live-streams/{LIVE_STREAM_ID}/enable | Enable a live stream [**GetLiveStream**](LiveStreamsApi.md#GetLiveStream) | **Get** /video/v1/live-streams/{LIVE_STREAM_ID} | Retrieve a live stream [**GetLiveStreamPlaybackId**](LiveStreamsApi.md#GetLiveStreamPlaybackId) | **Get** /video/v1/live-streams/{LIVE_STREAM_ID}/playback-ids/{PLAYBACK_ID} | Retrieve a live stream playback ID -[**GetLiveStreamSimulcastTarget**](LiveStreamsApi.md#GetLiveStreamSimulcastTarget) | **Get** /video/v1/live-streams/{LIVE_STREAM_ID}/simulcast-targets/{SIMULCAST_TARGET_ID} | Retrieve a Live Stream Simulcast Target +[**GetLiveStreamSimulcastTarget**](LiveStreamsApi.md#GetLiveStreamSimulcastTarget) | **Get** /video/v1/live-streams/{LIVE_STREAM_ID}/simulcast-targets/{SIMULCAST_TARGET_ID} | Retrieve a live stream simulcast target [**ListLiveStreams**](LiveStreamsApi.md#ListLiveStreams) | **Get** /video/v1/live-streams | List live streams [**ResetStreamKey**](LiveStreamsApi.md#ResetStreamKey) | **Post** /video/v1/live-streams/{LIVE_STREAM_ID}/reset-stream-key | Reset a live stream's stream key [**SignalLiveStreamComplete**](LiveStreamsApi.md#SignalLiveStreamComplete) | **Put** /video/v1/live-streams/{LIVE_STREAM_ID}/complete | Signal a live stream is finished @@ -168,7 +168,7 @@ Name | Type | Description | Notes # **DeleteLiveStreamSimulcastTarget** > DeleteLiveStreamSimulcastTarget(ctx, lIVESTREAMID, sIMULCASTTARGETID) -Delete a Live Stream Simulcast Target +Delete a live stream simulcast target Delete the simulcast target using the simulcast target ID returned when creating the simulcast target. Simulcast Target can only be deleted when the parent live stream is in idle state. @@ -310,7 +310,7 @@ Name | Type | Description | Notes # **GetLiveStreamSimulcastTarget** > SimulcastTargetResponse GetLiveStreamSimulcastTarget(ctx, lIVESTREAMID, sIMULCASTTARGETID) -Retrieve a Live Stream Simulcast Target +Retrieve a live stream simulcast target Retrieves the details of the simulcast target created for the parent live stream. Supply the unique live stream ID and simulcast target ID that was returned in the response of create simulcast target request, and Mux will return the corresponding information. diff --git a/docs/MonitoringBreakdownTimeseriesDatapoint.md b/docs/MonitoringBreakdownTimeseriesDatapoint.md index 5c50d6f..f0dd4ae 100644 --- a/docs/MonitoringBreakdownTimeseriesDatapoint.md +++ b/docs/MonitoringBreakdownTimeseriesDatapoint.md @@ -6,6 +6,7 @@ Name | Type | Description | Notes **Value** | **string** | | [optional] **MetricValue** | **float64** | | [optional] **ConcurrentViewers** | **int64** | | [optional] +**StartingUpViewers** | **int64** | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/PlaybackIDApi.md b/docs/PlaybackIDApi.md index 9cc614c..18a13cb 100644 --- a/docs/PlaybackIDApi.md +++ b/docs/PlaybackIDApi.md @@ -4,12 +4,12 @@ All URIs are relative to *https://api.mux.com* Method | HTTP request | Description ------------- | ------------- | ------------- -[**GetAssetOrLivestreamId**](PlaybackIDApi.md#GetAssetOrLivestreamId) | **Get** /video/v1/playback-ids/{PLAYBACK_ID} | Retrieve an Asset or Live Stream ID +[**GetAssetOrLivestreamId**](PlaybackIDApi.md#GetAssetOrLivestreamId) | **Get** /video/v1/playback-ids/{PLAYBACK_ID} | Retrieve an asset or live stream ID # **GetAssetOrLivestreamId** > GetAssetOrLiveStreamIdResponse GetAssetOrLivestreamId(ctx, pLAYBACKID) -Retrieve an Asset or Live Stream ID +Retrieve an asset or live stream ID Retrieves the Identifier of the Asset or Live Stream associated with the Playback ID. diff --git a/docs/SimulcastTarget.md b/docs/SimulcastTarget.md index 524993e..080a680 100644 --- a/docs/SimulcastTarget.md +++ b/docs/SimulcastTarget.md @@ -5,9 +5,10 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Id** | **string** | ID of the Simulcast Target | [optional] **Passthrough** | **string** | Arbitrary user-supplied metadata set when creating a simulcast target. | [optional] -**Status** | **string** | The current status of the simulcast target. See Statuses below for detailed description. * `idle`: Default status. When the parent live stream is in disconnected status, simulcast targets will be idle state. * `starting`: The simulcast target transitions into this state when the parent live stream transition into connected state. * `broadcasting`: The simulcast target has successfully connected to the third party live streaming service and is pushing video to that service. * `errored`: The simulcast target encountered an error either while attempting to connect to the third party live streaming service, or mid-broadcasting. Compared to other errored statuses in the Mux Video API, a simulcast may transition back into the broadcasting state if a connection with the service can be re-established. | [optional] -**StreamKey** | **string** | Stream Key represents an stream identifier for the third party live streaming service to simulcast the parent live stream too. | [optional] -**Url** | **string** | RTMP hostname including the application name for the third party live streaming service. | [optional] +**Status** | **string** | The current status of the simulcast target. See Statuses below for detailed description. * `idle`: Default status. When the parent live stream is in disconnected status, simulcast targets will be idle state. * `starting`: The simulcast target transitions into this state when the parent live stream transition into connected state. * `broadcasting`: The simulcast target has successfully connected to the third party live streaming service and is pushing video to that service. * `errored`: The simulcast target encountered an error either while attempting to connect to the third party live streaming service, or mid-broadcasting. When a simulcast target has this status it will have an `error_severity` field with more details about the error. | [optional] +**StreamKey** | **string** | Stream Key represents a stream identifier on the third party live streaming service to send the parent live stream to. Only used for RTMP(s) simulcast destinations. | [optional] +**Url** | **string** | The RTMP(s) or SRT endpoint for a simulcast destination. * For RTMP(s) destinations, this should include the application name for the third party live streaming service, for example: `rtmp://live.example.com/app`. * For SRT destinations, this should be a fully formed SRT connection string, for example: `srt://srt-live.example.com:1234?streamid={stream_key}&passphrase={srt_passphrase}`. Note: SRT simulcast targets can only be used when an source is connected over SRT. | [optional] +**ErrorSeverity** | **string** | The severity of the error encountered by the simulcast target. This field is only set when the simulcast target is in the `errored` status. See the values of severities below and their descriptions. * `normal`: The simulcast target encountered an error either while attempting to connect to the third party live streaming service, or mid-broadcasting. A simulcast may transition back into the broadcasting state if a connection with the service can be re-established. * `fatal`: The simulcast target is incompatible with the current input to the parent live stream. No further attempts to this simulcast target will be made for the current live stream asset. | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/VideoView.md b/docs/VideoView.md index 60f6679..38109d4 100644 --- a/docs/VideoView.md +++ b/docs/VideoView.md @@ -157,6 +157,9 @@ Name | Type | Description | Notes **AdExitBeforeStartPercentage** | **string** | | [optional] **LongResume** | **bool** | | [optional] **LongRebuffering** | **bool** | | [optional] +**PlaybackFailureErrorTypeId** | **int32** | | [optional] +**PlaybackBusinessExceptionErrorTypeId** | **int32** | | [optional] +**VideoStartupBusinessExceptionErrorTypeId** | **int32** | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/model_asset.go b/model_asset.go index fc5f661..8e52afe 100644 --- a/model_asset.go +++ b/model_asset.go @@ -51,4 +51,6 @@ type Asset struct { NonStandardInputReasons AssetNonStandardInputReasons `json:"non_standard_input_reasons,omitempty"` // True means this live stream is a test asset. A test asset can help evaluate the Mux Video APIs without incurring any cost. There is no limit on number of test assets created. Test assets are watermarked with the Mux logo, limited to 10 seconds, and deleted after 24 hrs. Test bool `json:"test,omitempty"` + // The type of ingest used to create the asset. + IngestType string `json:"ingest_type,omitempty"` } diff --git a/model_create_simulcast_target_request.go b/model_create_simulcast_target_request.go index 74e55c9..9a567e6 100644 --- a/model_create_simulcast_target_request.go +++ b/model_create_simulcast_target_request.go @@ -6,8 +6,8 @@ package muxgo type CreateSimulcastTargetRequest struct { // Arbitrary user-supplied metadata set by you when creating a simulcast target. Passthrough string `json:"passthrough,omitempty"` - // Stream Key represents a stream identifier on the third party live streaming service to send the parent live stream to. + // Stream Key represents a stream identifier on the third party live streaming service to send the parent live stream to. Only used for RTMP(s) simulcast destinations. StreamKey string `json:"stream_key,omitempty"` - // RTMP hostname including application name for the third party live streaming service. Example: `rtmp://live.example.com/app`. + // The RTMP(s) or SRT endpoint for a simulcast destination. * For RTMP(s) destinations, this should include the application name for the third party live streaming service, for example: `rtmp://live.example.com/app`. * For SRT destinations, this should be a fully formed SRT connection string, for example: `srt://srt-live.example.com:1234?streamid={stream_key}&passphrase={srt_passphrase}`. Note: SRT simulcast targets can only be used when an source is connected over SRT. Url string `json:"url,omitempty"` } diff --git a/model_error.go b/model_error.go index cf6f51d..03ecb1e 100644 --- a/model_error.go +++ b/model_error.go @@ -20,4 +20,6 @@ type Error struct { Count int64 `json:"count,omitempty"` // The error code Code int64 `json:"code,omitempty"` + // The string version of the error code + PlayerErrorCode string `json:"player_error_code,omitempty"` } diff --git a/model_generate_track_subtitles_request.go b/model_generate_track_subtitles_request.go new file mode 100644 index 0000000..b2b10fb --- /dev/null +++ b/model_generate_track_subtitles_request.go @@ -0,0 +1,9 @@ +// Mux Go - Copyright 2019 Mux Inc. +// NOTE: This file is auto generated. Do not edit this file manually. + +package muxgo + +type GenerateTrackSubtitlesRequest struct { + // Generate subtitle tracks using automatic speech recognition with this configuration. + GeneratedSubtitles []AssetGeneratedSubtitleSettings `json:"generated_subtitles,omitempty"` +} diff --git a/model_generate_track_subtitles_response.go b/model_generate_track_subtitles_response.go new file mode 100644 index 0000000..81a6a4e --- /dev/null +++ b/model_generate_track_subtitles_response.go @@ -0,0 +1,8 @@ +// Mux Go - Copyright 2019 Mux Inc. +// NOTE: This file is auto generated. Do not edit this file manually. + +package muxgo + +type GenerateTrackSubtitlesResponse struct { + Data Track `json:"data,omitempty"` +} diff --git a/model_input_settings.go b/model_input_settings.go index 814e8c7..1e45e86 100644 --- a/model_input_settings.go +++ b/model_input_settings.go @@ -8,7 +8,7 @@ type InputSettings struct { // The URL of the file that Mux should download and use. * For the main input file, this should be the URL to the muxed file for Mux to download, for example an MP4, MOV, MKV, or TS file. Mux supports most audio/video file formats and codecs, but for fastest processing, you should [use standard inputs wherever possible](https://docs.mux.com/guides/minimize-processing-time). * For `audio` tracks, the URL is the location of the audio file for Mux to download, for example an M4A, WAV, or MP3 file. Mux supports most audio file formats and codecs, but for fastest processing, you should [use standard inputs wherever possible](https://docs.mux.com/guides/minimize-processing-time). * For `text` tracks, the URL is the location of subtitle/captions file. Mux supports [SubRip Text (SRT)](https://en.wikipedia.org/wiki/SubRip) and [Web Video Text Tracks](https://www.w3.org/TR/webvtt1/) formats for ingesting Subtitles and Closed Captions. * For Watermarking or Overlay, the URL is the location of the watermark image. The maximum size is 4096x4096. * When creating clips from existing Mux assets, the URL is defined with `mux://assets/{asset_id}` template where `asset_id` is the Asset Identifier for creating the clip from. The url property may be omitted on the first input object when providing asset settings for LiveStream and Upload objects, in order to configure settings related to the primary (live stream or direct upload) input. Url string `json:"url,omitempty"` OverlaySettings InputSettingsOverlaySettings `json:"overlay_settings,omitempty"` - // Generate subtitle tracks using automatic speech recognition using this configuration. This may only be provided for the first input object (the main input file). For direct uploads, this first input should omit the url parameter, as the main input file is provided via the direct upload. This will create subtitles based on the audio track ingested from that main input file. Note that subtitle generation happens after initial ingest, so the generated tracks will be in the `preparing` state when the asset transitions to `ready`. + // Generate subtitle tracks using automatic speech recognition with this configuration. This may only be provided for the first input object (the main input file). For direct uploads, this first input should omit the url parameter, as the main input file is provided via the direct upload. This will create subtitles based on the audio track ingested from that main input file. Note that subtitle generation happens after initial ingest, so the generated tracks will be in the `preparing` state when the asset transitions to `ready`. GeneratedSubtitles []AssetGeneratedSubtitleSettings `json:"generated_subtitles,omitempty"` // The time offset in seconds from the beginning of the video indicating the clip's starting marker. The default value is 0 when not included. This parameter is only applicable for creating clips when `input.url` has `mux://assets/{asset_id}` format. StartTime float64 `json:"start_time,omitempty"` diff --git a/model_live_stream.go b/model_live_stream.go index e9334cf..8a40a97 100644 --- a/model_live_stream.go +++ b/model_live_stream.go @@ -46,4 +46,6 @@ type LiveStream struct { MaxContinuousDuration int32 `json:"max_continuous_duration,omitempty"` // Unique key used for encrypting a stream to a Mux SRT endpoint. SrtPassphrase string `json:"srt_passphrase,omitempty"` + // The protocol used for the active ingest stream. This is only set when the live stream is active. + ActiveIngestProtocol string `json:"active_ingest_protocol,omitempty"` } diff --git a/model_monitoring_breakdown_timeseries_datapoint.go b/model_monitoring_breakdown_timeseries_datapoint.go index 897619d..3b94cdb 100644 --- a/model_monitoring_breakdown_timeseries_datapoint.go +++ b/model_monitoring_breakdown_timeseries_datapoint.go @@ -7,4 +7,5 @@ type MonitoringBreakdownTimeseriesDatapoint struct { Value string `json:"value,omitempty"` MetricValue float64 `json:"metric_value,omitempty"` ConcurrentViewers int64 `json:"concurrent_viewers,omitempty"` + StartingUpViewers int64 `json:"starting_up_viewers,omitempty"` } diff --git a/model_simulcast_target.go b/model_simulcast_target.go index d1d6bbc..ac07388 100644 --- a/model_simulcast_target.go +++ b/model_simulcast_target.go @@ -8,10 +8,12 @@ type SimulcastTarget struct { Id string `json:"id,omitempty"` // Arbitrary user-supplied metadata set when creating a simulcast target. Passthrough string `json:"passthrough,omitempty"` - // The current status of the simulcast target. See Statuses below for detailed description. * `idle`: Default status. When the parent live stream is in disconnected status, simulcast targets will be idle state. * `starting`: The simulcast target transitions into this state when the parent live stream transition into connected state. * `broadcasting`: The simulcast target has successfully connected to the third party live streaming service and is pushing video to that service. * `errored`: The simulcast target encountered an error either while attempting to connect to the third party live streaming service, or mid-broadcasting. Compared to other errored statuses in the Mux Video API, a simulcast may transition back into the broadcasting state if a connection with the service can be re-established. + // The current status of the simulcast target. See Statuses below for detailed description. * `idle`: Default status. When the parent live stream is in disconnected status, simulcast targets will be idle state. * `starting`: The simulcast target transitions into this state when the parent live stream transition into connected state. * `broadcasting`: The simulcast target has successfully connected to the third party live streaming service and is pushing video to that service. * `errored`: The simulcast target encountered an error either while attempting to connect to the third party live streaming service, or mid-broadcasting. When a simulcast target has this status it will have an `error_severity` field with more details about the error. Status string `json:"status,omitempty"` - // Stream Key represents an stream identifier for the third party live streaming service to simulcast the parent live stream too. + // Stream Key represents a stream identifier on the third party live streaming service to send the parent live stream to. Only used for RTMP(s) simulcast destinations. StreamKey string `json:"stream_key,omitempty"` - // RTMP hostname including the application name for the third party live streaming service. + // The RTMP(s) or SRT endpoint for a simulcast destination. * For RTMP(s) destinations, this should include the application name for the third party live streaming service, for example: `rtmp://live.example.com/app`. * For SRT destinations, this should be a fully formed SRT connection string, for example: `srt://srt-live.example.com:1234?streamid={stream_key}&passphrase={srt_passphrase}`. Note: SRT simulcast targets can only be used when an source is connected over SRT. Url string `json:"url,omitempty"` + // The severity of the error encountered by the simulcast target. This field is only set when the simulcast target is in the `errored` status. See the values of severities below and their descriptions. * `normal`: The simulcast target encountered an error either while attempting to connect to the third party live streaming service, or mid-broadcasting. A simulcast may transition back into the broadcasting state if a connection with the service can be re-established. * `fatal`: The simulcast target is incompatible with the current input to the parent live stream. No further attempts to this simulcast target will be made for the current live stream asset. + ErrorSeverity string `json:"error_severity,omitempty"` } diff --git a/model_video_view.go b/model_video_view.go index fe83fc2..c454d1b 100644 --- a/model_video_view.go +++ b/model_video_view.go @@ -4,158 +4,161 @@ package muxgo type VideoView struct { - ViewTotalUpscaling string `json:"view_total_upscaling,omitempty"` - PrerollAdAssetHostname string `json:"preroll_ad_asset_hostname,omitempty"` - PlayerSourceDomain string `json:"player_source_domain,omitempty"` - Region string `json:"region,omitempty"` - ViewerUserAgent string `json:"viewer_user_agent,omitempty"` - PrerollRequested bool `json:"preroll_requested,omitempty"` - PageType string `json:"page_type,omitempty"` - StartupScore string `json:"startup_score,omitempty"` - ViewSeekDuration int64 `json:"view_seek_duration,omitempty"` - CountryName string `json:"country_name,omitempty"` - PlayerSourceHeight int32 `json:"player_source_height,omitempty"` - Longitude string `json:"longitude,omitempty"` - BufferingCount int64 `json:"buffering_count,omitempty"` - VideoDuration int64 `json:"video_duration,omitempty"` - PlayerSourceType string `json:"player_source_type,omitempty"` - City string `json:"city,omitempty"` - ViewId string `json:"view_id,omitempty"` - PlatformDescription string `json:"platform_description,omitempty"` - VideoStartupPrerollRequestTime int64 `json:"video_startup_preroll_request_time,omitempty"` - ViewerDeviceName string `json:"viewer_device_name,omitempty"` - VideoSeries string `json:"video_series,omitempty"` - ViewerApplicationName string `json:"viewer_application_name,omitempty"` - UpdatedAt string `json:"updated_at,omitempty"` - ViewTotalContentPlaybackTime int64 `json:"view_total_content_playback_time,omitempty"` - Cdn string `json:"cdn,omitempty"` - PlayerInstanceId string `json:"player_instance_id,omitempty"` - VideoLanguage string `json:"video_language,omitempty"` - PlayerSourceWidth int32 `json:"player_source_width,omitempty"` - PlayerErrorMessage string `json:"player_error_message,omitempty"` - PlayerMuxPluginVersion string `json:"player_mux_plugin_version,omitempty"` - Watched bool `json:"watched,omitempty"` - PlaybackScore string `json:"playback_score,omitempty"` - PageUrl string `json:"page_url,omitempty"` - Metro string `json:"metro,omitempty"` - ViewMaxRequestLatency int64 `json:"view_max_request_latency,omitempty"` - RequestsForFirstPreroll int64 `json:"requests_for_first_preroll,omitempty"` - ViewTotalDownscaling string `json:"view_total_downscaling,omitempty"` - Latitude string `json:"latitude,omitempty"` - PlayerSourceHostName string `json:"player_source_host_name,omitempty"` - InsertedAt string `json:"inserted_at,omitempty"` - ViewEnd string `json:"view_end,omitempty"` - MuxEmbedVersion string `json:"mux_embed_version,omitempty"` - PlayerLanguage string `json:"player_language,omitempty"` - PageLoadTime int64 `json:"page_load_time,omitempty"` - ViewerDeviceCategory string `json:"viewer_device_category,omitempty"` - VideoStartupPrerollLoadTime int64 `json:"video_startup_preroll_load_time,omitempty"` - PlayerVersion string `json:"player_version,omitempty"` - WatchTime int64 `json:"watch_time,omitempty"` - PlayerSourceStreamType string `json:"player_source_stream_type,omitempty"` - PrerollAdTagHostname string `json:"preroll_ad_tag_hostname,omitempty"` - ViewerDeviceManufacturer string `json:"viewer_device_manufacturer,omitempty"` - RebufferingScore string `json:"rebuffering_score,omitempty"` - ExperimentName string `json:"experiment_name,omitempty"` - ViewerOsVersion string `json:"viewer_os_version,omitempty"` - PlayerPreload bool `json:"player_preload,omitempty"` - BufferingDuration int64 `json:"buffering_duration,omitempty"` - PlayerViewCount int64 `json:"player_view_count,omitempty"` - PlayerSoftware string `json:"player_software,omitempty"` - PlayerLoadTime int64 `json:"player_load_time,omitempty"` - PlatformSummary string `json:"platform_summary,omitempty"` - VideoEncodingVariant string `json:"video_encoding_variant,omitempty"` - PlayerWidth int32 `json:"player_width,omitempty"` - ViewSeekCount int64 `json:"view_seek_count,omitempty"` - ViewerExperienceScore string `json:"viewer_experience_score,omitempty"` - ViewErrorId int32 `json:"view_error_id,omitempty"` - VideoVariantName string `json:"video_variant_name,omitempty"` - PrerollPlayed bool `json:"preroll_played,omitempty"` - ViewerApplicationEngine string `json:"viewer_application_engine,omitempty"` - ViewerOsArchitecture string `json:"viewer_os_architecture,omitempty"` - PlayerErrorCode string `json:"player_error_code,omitempty"` - BufferingRate string `json:"buffering_rate,omitempty"` - Events []VideoViewEvent `json:"events,omitempty"` - PlayerName string `json:"player_name,omitempty"` - ViewStart string `json:"view_start,omitempty"` - ViewAverageRequestThroughput int64 `json:"view_average_request_throughput,omitempty"` - VideoProducer string `json:"video_producer,omitempty"` - ErrorTypeId int32 `json:"error_type_id,omitempty"` - MuxViewerId string `json:"mux_viewer_id,omitempty"` - VideoId string `json:"video_id,omitempty"` - ContinentCode string `json:"continent_code,omitempty"` - SessionId string `json:"session_id,omitempty"` - ExitBeforeVideoStart bool `json:"exit_before_video_start,omitempty"` - VideoContentType string `json:"video_content_type,omitempty"` - ViewerOsFamily string `json:"viewer_os_family,omitempty"` - PlayerPoster string `json:"player_poster,omitempty"` - ViewAverageRequestLatency int64 `json:"view_average_request_latency,omitempty"` - VideoVariantId string `json:"video_variant_id,omitempty"` - PlayerSourceDuration int64 `json:"player_source_duration,omitempty"` - PlayerSourceUrl string `json:"player_source_url,omitempty"` - MuxApiVersion string `json:"mux_api_version,omitempty"` - VideoTitle string `json:"video_title,omitempty"` - Id string `json:"id,omitempty"` - ShortTime string `json:"short_time,omitempty"` - RebufferPercentage string `json:"rebuffer_percentage,omitempty"` - TimeToFirstFrame int64 `json:"time_to_first_frame,omitempty"` - ViewerUserId string `json:"viewer_user_id,omitempty"` - VideoStreamType string `json:"video_stream_type,omitempty"` - PlayerStartupTime int64 `json:"player_startup_time,omitempty"` - ViewerApplicationVersion string `json:"viewer_application_version,omitempty"` - ViewMaxDownscalePercentage string `json:"view_max_downscale_percentage,omitempty"` - ViewMaxUpscalePercentage string `json:"view_max_upscale_percentage,omitempty"` - CountryCode string `json:"country_code,omitempty"` - UsedFullscreen bool `json:"used_fullscreen,omitempty"` - Isp string `json:"isp,omitempty"` - PropertyId int64 `json:"property_id,omitempty"` - PlayerAutoplay bool `json:"player_autoplay,omitempty"` - PlayerHeight int32 `json:"player_height,omitempty"` - Asn int64 `json:"asn,omitempty"` - AsnName string `json:"asn_name,omitempty"` - QualityScore string `json:"quality_score,omitempty"` - PlayerSoftwareVersion string `json:"player_software_version,omitempty"` - PlayerMuxPluginName string `json:"player_mux_plugin_name,omitempty"` - SubPropertyId string `json:"sub_property_id,omitempty"` - PlayerRemotePlayed bool `json:"player_remote_played,omitempty"` - ViewMaxPlayheadPosition string `json:"view_max_playhead_position,omitempty"` - ViewPlayingTime string `json:"view_playing_time,omitempty"` - ViewSessionId string `json:"view_session_id,omitempty"` - ViewerConnectionType string `json:"viewer_connection_type,omitempty"` - ViewerDeviceModel string `json:"viewer_device_model,omitempty"` - WeightedAverageBitrate float64 `json:"weighted_average_bitrate,omitempty"` - Custom1 string `json:"custom_1,omitempty"` - Custom2 string `json:"custom_2,omitempty"` - Custom3 string `json:"custom_3,omitempty"` - Custom4 string `json:"custom_4,omitempty"` - Custom5 string `json:"custom_5,omitempty"` - Custom6 string `json:"custom_6,omitempty"` - Custom7 string `json:"custom_7,omitempty"` - Custom8 string `json:"custom_8,omitempty"` - Custom9 string `json:"custom_9,omitempty"` - Custom10 string `json:"custom_10,omitempty"` - LiveStreamLatency int64 `json:"live_stream_latency,omitempty"` - AssetId string `json:"asset_id,omitempty"` - EnvironmentId string `json:"environment_id,omitempty"` - LiveStreamId string `json:"live_stream_id,omitempty"` - MuxEmbed string `json:"mux_embed,omitempty"` - PlaybackId string `json:"playback_id,omitempty"` - PlayerErrorContext string `json:"player_error_context,omitempty"` - ViewDrmType string `json:"view_drm_type,omitempty"` - ViewDroppedFrameCount int64 `json:"view_dropped_frame_count,omitempty"` - ViewHasAd bool `json:"view_has_ad,omitempty"` - VideoStartupFailure bool `json:"video_startup_failure,omitempty"` - AdAttemptCount int32 `json:"ad_attempt_count,omitempty"` - AdBreakCount int32 `json:"ad_break_count,omitempty"` - AdBreakErrorCount int32 `json:"ad_break_error_count,omitempty"` - AdBreakErrorPercentage string `json:"ad_break_error_percentage,omitempty"` - AdErrorCount int32 `json:"ad_error_count,omitempty"` - AdErrorPercentage string `json:"ad_error_percentage,omitempty"` - AdImpressionCount int32 `json:"ad_impression_count,omitempty"` - AdStartupErrorCount int32 `json:"ad_startup_error_count,omitempty"` - AdStartupErrorPercentage string `json:"ad_startup_error_percentage,omitempty"` - AdExitBeforeStartCount int32 `json:"ad_exit_before_start_count,omitempty"` - AdExitBeforeStartPercentage string `json:"ad_exit_before_start_percentage,omitempty"` - LongResume bool `json:"long_resume,omitempty"` - LongRebuffering bool `json:"long_rebuffering,omitempty"` + ViewTotalUpscaling string `json:"view_total_upscaling,omitempty"` + PrerollAdAssetHostname string `json:"preroll_ad_asset_hostname,omitempty"` + PlayerSourceDomain string `json:"player_source_domain,omitempty"` + Region string `json:"region,omitempty"` + ViewerUserAgent string `json:"viewer_user_agent,omitempty"` + PrerollRequested bool `json:"preroll_requested,omitempty"` + PageType string `json:"page_type,omitempty"` + StartupScore string `json:"startup_score,omitempty"` + ViewSeekDuration int64 `json:"view_seek_duration,omitempty"` + CountryName string `json:"country_name,omitempty"` + PlayerSourceHeight int32 `json:"player_source_height,omitempty"` + Longitude string `json:"longitude,omitempty"` + BufferingCount int64 `json:"buffering_count,omitempty"` + VideoDuration int64 `json:"video_duration,omitempty"` + PlayerSourceType string `json:"player_source_type,omitempty"` + City string `json:"city,omitempty"` + ViewId string `json:"view_id,omitempty"` + PlatformDescription string `json:"platform_description,omitempty"` + VideoStartupPrerollRequestTime int64 `json:"video_startup_preroll_request_time,omitempty"` + ViewerDeviceName string `json:"viewer_device_name,omitempty"` + VideoSeries string `json:"video_series,omitempty"` + ViewerApplicationName string `json:"viewer_application_name,omitempty"` + UpdatedAt string `json:"updated_at,omitempty"` + ViewTotalContentPlaybackTime int64 `json:"view_total_content_playback_time,omitempty"` + Cdn string `json:"cdn,omitempty"` + PlayerInstanceId string `json:"player_instance_id,omitempty"` + VideoLanguage string `json:"video_language,omitempty"` + PlayerSourceWidth int32 `json:"player_source_width,omitempty"` + PlayerErrorMessage string `json:"player_error_message,omitempty"` + PlayerMuxPluginVersion string `json:"player_mux_plugin_version,omitempty"` + Watched bool `json:"watched,omitempty"` + PlaybackScore string `json:"playback_score,omitempty"` + PageUrl string `json:"page_url,omitempty"` + Metro string `json:"metro,omitempty"` + ViewMaxRequestLatency int64 `json:"view_max_request_latency,omitempty"` + RequestsForFirstPreroll int64 `json:"requests_for_first_preroll,omitempty"` + ViewTotalDownscaling string `json:"view_total_downscaling,omitempty"` + Latitude string `json:"latitude,omitempty"` + PlayerSourceHostName string `json:"player_source_host_name,omitempty"` + InsertedAt string `json:"inserted_at,omitempty"` + ViewEnd string `json:"view_end,omitempty"` + MuxEmbedVersion string `json:"mux_embed_version,omitempty"` + PlayerLanguage string `json:"player_language,omitempty"` + PageLoadTime int64 `json:"page_load_time,omitempty"` + ViewerDeviceCategory string `json:"viewer_device_category,omitempty"` + VideoStartupPrerollLoadTime int64 `json:"video_startup_preroll_load_time,omitempty"` + PlayerVersion string `json:"player_version,omitempty"` + WatchTime int64 `json:"watch_time,omitempty"` + PlayerSourceStreamType string `json:"player_source_stream_type,omitempty"` + PrerollAdTagHostname string `json:"preroll_ad_tag_hostname,omitempty"` + ViewerDeviceManufacturer string `json:"viewer_device_manufacturer,omitempty"` + RebufferingScore string `json:"rebuffering_score,omitempty"` + ExperimentName string `json:"experiment_name,omitempty"` + ViewerOsVersion string `json:"viewer_os_version,omitempty"` + PlayerPreload bool `json:"player_preload,omitempty"` + BufferingDuration int64 `json:"buffering_duration,omitempty"` + PlayerViewCount int64 `json:"player_view_count,omitempty"` + PlayerSoftware string `json:"player_software,omitempty"` + PlayerLoadTime int64 `json:"player_load_time,omitempty"` + PlatformSummary string `json:"platform_summary,omitempty"` + VideoEncodingVariant string `json:"video_encoding_variant,omitempty"` + PlayerWidth int32 `json:"player_width,omitempty"` + ViewSeekCount int64 `json:"view_seek_count,omitempty"` + ViewerExperienceScore string `json:"viewer_experience_score,omitempty"` + ViewErrorId int32 `json:"view_error_id,omitempty"` + VideoVariantName string `json:"video_variant_name,omitempty"` + PrerollPlayed bool `json:"preroll_played,omitempty"` + ViewerApplicationEngine string `json:"viewer_application_engine,omitempty"` + ViewerOsArchitecture string `json:"viewer_os_architecture,omitempty"` + PlayerErrorCode string `json:"player_error_code,omitempty"` + BufferingRate string `json:"buffering_rate,omitempty"` + Events []VideoViewEvent `json:"events,omitempty"` + PlayerName string `json:"player_name,omitempty"` + ViewStart string `json:"view_start,omitempty"` + ViewAverageRequestThroughput int64 `json:"view_average_request_throughput,omitempty"` + VideoProducer string `json:"video_producer,omitempty"` + ErrorTypeId int32 `json:"error_type_id,omitempty"` + MuxViewerId string `json:"mux_viewer_id,omitempty"` + VideoId string `json:"video_id,omitempty"` + ContinentCode string `json:"continent_code,omitempty"` + SessionId string `json:"session_id,omitempty"` + ExitBeforeVideoStart bool `json:"exit_before_video_start,omitempty"` + VideoContentType string `json:"video_content_type,omitempty"` + ViewerOsFamily string `json:"viewer_os_family,omitempty"` + PlayerPoster string `json:"player_poster,omitempty"` + ViewAverageRequestLatency int64 `json:"view_average_request_latency,omitempty"` + VideoVariantId string `json:"video_variant_id,omitempty"` + PlayerSourceDuration int64 `json:"player_source_duration,omitempty"` + PlayerSourceUrl string `json:"player_source_url,omitempty"` + MuxApiVersion string `json:"mux_api_version,omitempty"` + VideoTitle string `json:"video_title,omitempty"` + Id string `json:"id,omitempty"` + ShortTime string `json:"short_time,omitempty"` + RebufferPercentage string `json:"rebuffer_percentage,omitempty"` + TimeToFirstFrame int64 `json:"time_to_first_frame,omitempty"` + ViewerUserId string `json:"viewer_user_id,omitempty"` + VideoStreamType string `json:"video_stream_type,omitempty"` + PlayerStartupTime int64 `json:"player_startup_time,omitempty"` + ViewerApplicationVersion string `json:"viewer_application_version,omitempty"` + ViewMaxDownscalePercentage string `json:"view_max_downscale_percentage,omitempty"` + ViewMaxUpscalePercentage string `json:"view_max_upscale_percentage,omitempty"` + CountryCode string `json:"country_code,omitempty"` + UsedFullscreen bool `json:"used_fullscreen,omitempty"` + Isp string `json:"isp,omitempty"` + PropertyId int64 `json:"property_id,omitempty"` + PlayerAutoplay bool `json:"player_autoplay,omitempty"` + PlayerHeight int32 `json:"player_height,omitempty"` + Asn int64 `json:"asn,omitempty"` + AsnName string `json:"asn_name,omitempty"` + QualityScore string `json:"quality_score,omitempty"` + PlayerSoftwareVersion string `json:"player_software_version,omitempty"` + PlayerMuxPluginName string `json:"player_mux_plugin_name,omitempty"` + SubPropertyId string `json:"sub_property_id,omitempty"` + PlayerRemotePlayed bool `json:"player_remote_played,omitempty"` + ViewMaxPlayheadPosition string `json:"view_max_playhead_position,omitempty"` + ViewPlayingTime string `json:"view_playing_time,omitempty"` + ViewSessionId string `json:"view_session_id,omitempty"` + ViewerConnectionType string `json:"viewer_connection_type,omitempty"` + ViewerDeviceModel string `json:"viewer_device_model,omitempty"` + WeightedAverageBitrate float64 `json:"weighted_average_bitrate,omitempty"` + Custom1 string `json:"custom_1,omitempty"` + Custom2 string `json:"custom_2,omitempty"` + Custom3 string `json:"custom_3,omitempty"` + Custom4 string `json:"custom_4,omitempty"` + Custom5 string `json:"custom_5,omitempty"` + Custom6 string `json:"custom_6,omitempty"` + Custom7 string `json:"custom_7,omitempty"` + Custom8 string `json:"custom_8,omitempty"` + Custom9 string `json:"custom_9,omitempty"` + Custom10 string `json:"custom_10,omitempty"` + LiveStreamLatency int64 `json:"live_stream_latency,omitempty"` + AssetId string `json:"asset_id,omitempty"` + EnvironmentId string `json:"environment_id,omitempty"` + LiveStreamId string `json:"live_stream_id,omitempty"` + MuxEmbed string `json:"mux_embed,omitempty"` + PlaybackId string `json:"playback_id,omitempty"` + PlayerErrorContext string `json:"player_error_context,omitempty"` + ViewDrmType string `json:"view_drm_type,omitempty"` + ViewDroppedFrameCount int64 `json:"view_dropped_frame_count,omitempty"` + ViewHasAd bool `json:"view_has_ad,omitempty"` + VideoStartupFailure bool `json:"video_startup_failure,omitempty"` + AdAttemptCount int32 `json:"ad_attempt_count,omitempty"` + AdBreakCount int32 `json:"ad_break_count,omitempty"` + AdBreakErrorCount int32 `json:"ad_break_error_count,omitempty"` + AdBreakErrorPercentage string `json:"ad_break_error_percentage,omitempty"` + AdErrorCount int32 `json:"ad_error_count,omitempty"` + AdErrorPercentage string `json:"ad_error_percentage,omitempty"` + AdImpressionCount int32 `json:"ad_impression_count,omitempty"` + AdStartupErrorCount int32 `json:"ad_startup_error_count,omitempty"` + AdStartupErrorPercentage string `json:"ad_startup_error_percentage,omitempty"` + AdExitBeforeStartCount int32 `json:"ad_exit_before_start_count,omitempty"` + AdExitBeforeStartPercentage string `json:"ad_exit_before_start_percentage,omitempty"` + LongResume bool `json:"long_resume,omitempty"` + LongRebuffering bool `json:"long_rebuffering,omitempty"` + PlaybackFailureErrorTypeId int32 `json:"playback_failure_error_type_id,omitempty"` + PlaybackBusinessExceptionErrorTypeId int32 `json:"playback_business_exception_error_type_id,omitempty"` + VideoStartupBusinessExceptionErrorTypeId int32 `json:"video_startup_business_exception_error_type_id,omitempty"` }