Package google.cloud.video.livestream.v1

Index

LivestreamService

Using Live Stream API, you can generate live streams in the various renditions and streaming formats. The streaming format include HTTP Live Streaming (HLS) and Dynamic Adaptive Streaming over HTTP (DASH). You can send a source stream in the various ways, including Real-Time Messaging Protocol (RTMP) and Secure Reliable Transport (SRT).

CreateAsset

rpc CreateAsset(CreateAssetRequest) returns (Operation)

Creates a Asset with the provided unique ID in the specified region.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • livestream.assets.create

For more information, see the IAM documentation.

CreateChannel

rpc CreateChannel(CreateChannelRequest) returns (Operation)

Creates a channel with the provided unique ID in the specified region.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • livestream.channels.create

For more information, see the IAM documentation.

CreateClip

rpc CreateClip(CreateClipRequest) returns (Operation)

Creates a clip with the provided clip ID in the specified channel.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • livestream.clips.create

For more information, see the IAM documentation.

CreateDvrSession

rpc CreateDvrSession(CreateDvrSessionRequest) returns (Operation)

Creates a DVR session with the provided unique ID in the specified channel.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • livestream.dvrSessions.create

For more information, see the IAM documentation.

CreateEvent

rpc CreateEvent(CreateEventRequest) returns (Event)

Creates an event with the provided unique ID in the specified channel.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • livestream.events.create

For more information, see the IAM documentation.

CreateInput

rpc CreateInput(CreateInputRequest) returns (Operation)

Creates an input with the provided unique ID in the specified region.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • livestream.inputs.create

For more information, see the IAM documentation.

DeleteAsset

rpc DeleteAsset(DeleteAssetRequest) returns (Operation)

Deletes the specified asset if it is not used.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.assets.delete

For more information, see the IAM documentation.

DeleteChannel

rpc DeleteChannel(DeleteChannelRequest) returns (Operation)

Deletes the specified channel.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.channels.delete

For more information, see the IAM documentation.

DeleteClip

rpc DeleteClip(DeleteClipRequest) returns (Operation)

Deletes the specified clip job resource. This method only deletes the clip job and does not delete the VOD clip stored in Cloud Storage.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.clips.delete

For more information, see the IAM documentation.

DeleteDvrSession

rpc DeleteDvrSession(DeleteDvrSessionRequest) returns (Operation)

Deletes the specified DVR session.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.dvrSessions.delete

For more information, see the IAM documentation.

DeleteEvent

rpc DeleteEvent(DeleteEventRequest) returns (Empty)

Deletes the specified event.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.events.delete

For more information, see the IAM documentation.

DeleteInput

rpc DeleteInput(DeleteInputRequest) returns (Operation)

Deletes the specified input.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.inputs.delete

For more information, see the IAM documentation.

GetAsset

rpc GetAsset(GetAssetRequest) returns (Asset)

Returns the specified asset.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.assets.get

For more information, see the IAM documentation.

GetChannel

rpc GetChannel(GetChannelRequest) returns (Channel)

Returns the specified channel.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.channels.get

For more information, see the IAM documentation.

GetClip

rpc GetClip(GetClipRequest) returns (Clip)

Returns the specified clip.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.clips.get

For more information, see the IAM documentation.

GetDvrSession

rpc GetDvrSession(GetDvrSessionRequest) returns (DvrSession)

Returns the specified DVR session.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.dvrSessions.get

For more information, see the IAM documentation.

GetEvent

rpc GetEvent(GetEventRequest) returns (Event)

Returns the specified event.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.events.get

For more information, see the IAM documentation.

GetInput

rpc GetInput(GetInputRequest) returns (Input)

Returns the specified input.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.inputs.get

For more information, see the IAM documentation.

GetPool

rpc GetPool(GetPoolRequest) returns (Pool)

Returns the specified pool.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.pools.get

For more information, see the IAM documentation.

ListAssets

rpc ListAssets(ListAssetsRequest) returns (ListAssetsResponse)

Returns a list of all assets in the specified region.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • livestream.assets.list

For more information, see the IAM documentation.

ListChannels

rpc ListChannels(ListChannelsRequest) returns (ListChannelsResponse)

Returns a list of all channels in the specified region.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • livestream.channels.list

For more information, see the IAM documentation.

ListClips

rpc ListClips(ListClipsRequest) returns (ListClipsResponse)

Returns a list of all clips in the specified channel.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • livestream.clips.list

For more information, see the IAM documentation.

ListDvrSessions

rpc ListDvrSessions(ListDvrSessionsRequest) returns (ListDvrSessionsResponse)

Returns a list of all DVR sessions in the specified channel.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • livestream.dvrSessions.list

For more information, see the IAM documentation.

ListEvents

rpc ListEvents(ListEventsRequest) returns (ListEventsResponse)

Returns a list of all events in the specified channel.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • livestream.events.list

For more information, see the IAM documentation.

ListInputs

rpc ListInputs(ListInputsRequest) returns (ListInputsResponse)

Returns a list of all inputs in the specified region.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • livestream.inputs.list

For more information, see the IAM documentation.

StartChannel

rpc StartChannel(StartChannelRequest) returns (Operation)

Starts the specified channel. Part of the video pipeline will be created only when the StartChannel request is received by the server.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.channels.start

For more information, see the IAM documentation.

StopChannel

rpc StopChannel(StopChannelRequest) returns (Operation)

Stops the specified channel. Part of the video pipeline will be released when the StopChannel request is received by the server.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.channels.stop

For more information, see the IAM documentation.

UpdateChannel

rpc UpdateChannel(UpdateChannelRequest) returns (Operation)

Updates the specified channel.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.channels.update

For more information, see the IAM documentation.

UpdateDvrSession

rpc UpdateDvrSession(UpdateDvrSessionRequest) returns (Operation)

Updates the specified DVR session.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.dvrSessions.update

For more information, see the IAM documentation.

UpdateInput

rpc UpdateInput(UpdateInputRequest) returns (Operation)

Updates the specified input.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.inputs.update

For more information, see the IAM documentation.

UpdatePool

rpc UpdatePool(UpdatePoolRequest) returns (Operation)

Updates the specified pool.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • livestream.pools.update

For more information, see the IAM documentation.

Asset

An asset represents a video or an image.

Fields
name

string

The resource name of the asset, in the form of: projects/{project}/locations/{location}/assets/{assetId}.

create_time

Timestamp

Output only. The creation time.

update_time

Timestamp

Output only. The update time.

labels

map<string, string>

User-defined key/value metadata.

crc32c

string

Based64-encoded CRC32c checksum of the asset file. For more information, see the crc32c checksum of the Cloud Storage Objects resource. If crc32c is omitted or left empty when the asset is created, this field is filled by the crc32c checksum of the Cloud Storage object indicated by VideoAsset.uri or ImageAsset.uri. If crc32c is set, the asset can't be created if the crc32c value does not match with the crc32c checksum of the Cloud Storage object indicated by VideoAsset.uri or ImageAsset.uri.

state

State

Output only. The state of the asset resource.

error

Status

Output only. Only present when state is ERROR. The reason for the error state of the asset.

Union field resource. The reference to the asset. The maximum size of the resource is 250 MB. resource can be only one of the following:
video

VideoAsset

VideoAsset represents a video.

image

ImageAsset

ImageAsset represents an image.

ImageAsset

Image represents an image. The supported formats are JPEG, PNG.

Fields
uri

string

Cloud Storage URI of the image. The format is gs://my-bucket/my-object.

State

State of the asset resource.

Enums
STATE_UNSPECIFIED State is not specified.
CREATING The asset is being created.
ACTIVE The asset is ready for use.
DELETING The asset is being deleted.
ERROR The asset has an error.

VideoAsset

VideoAsset represents a video. The supported formats are MP4, MPEG-TS, and FLV. The supported video codec is H264. The supported audio codecs are AAC, AC3, MP2, and MP3.

Fields
uri

string

Cloud Storage URI of the video. The format is gs://my-bucket/my-object.

AudioFormat

Properties of the audio format.

Fields
codec

string

Audio codec used in this audio stream.

channel_count

int32

The number of audio channels.

channel_layout[]

string

A list of channel names specifying the layout of the audio channels.

AudioStream

Audio stream resource.

Fields
transmux

bool

Specifies whether pass through (transmuxing) is enabled or not. If set to true, the rest of the settings, other than mapping, will be ignored. The default is false.

codec

string

The codec for this audio stream. The default is aac.

Supported audio codecs:

  • aac
bitrate_bps

int32

Required. Audio bitrate in bits per second. Must be between 1 and 10,000,000.

channel_count

int32

Number of audio channels. Must be between 1 and 6. The default is 2.

channel_layout[]

string

A list of channel names specifying layout of the audio channels. This only affects the metadata embedded in the container headers, if supported by the specified format. The default is [fl, fr].

Supported channel names:

  • fl - Front left channel
  • fr - Front right channel
  • sl - Side left channel
  • sr - Side right channel
  • fc - Front center channel
  • lfe - Low frequency
mapping[]

AudioMapping

The mapping for the input streams and audio channels.

sample_rate_hertz

int32

The audio sample rate in Hertz. The default is 48000 Hertz.

AudioMapping

The mapping for the input streams and audio channels.

Fields
input_key

string

Required. The Channel InputAttachment.key that identifies the input that this audio mapping applies to. If an active input doesn't have an audio mapping, the primary audio track in the input stream will be selected.

input_track

int32

Required. The zero-based index of the track in the input stream. All mappings in the same AudioStream must have the same input track.

input_channel

int32

Required. The zero-based index of the channel in the input stream.

output_channel

int32

Required. The zero-based index of the channel in the output audio stream. Must be consistent with the input_channel.

gain_db

double

Audio volume control in dB. Negative values decrease volume, positive values increase. The default is 0.

AudioStreamProperty

Properties of the audio stream.

Fields
index

int32

Index of this audio stream.

audio_format

AudioFormat

Properties of the audio format.

Channel

Channel resource represents the processor that does a user-defined "streaming" operation, which includes getting an input stream through an input, transcoding it to multiple renditions, and publishing output live streams in certain formats (for example, HLS or DASH) to the specified location.

Fields
name

string

The resource name of the channel, in the form of: projects/{project}/locations/{location}/channels/{channelId}.

create_time

Timestamp

Output only. The creation time.

update_time

Timestamp

Output only. The update time.

labels

map<string, string>

User-defined key/value metadata.

input_attachments[]

InputAttachment

A list of input attachments that this channel uses. One channel can have multiple inputs as the input sources. Only one input can be selected as the input source at one time.

active_input

string

Output only. The InputAttachment.key that serves as the current input source. The first input in the input_attachments is the initial input source.

output

Output

Required. Information about the output (that is, the Cloud Storage bucket to store the generated live stream).

elementary_streams[]

ElementaryStream

List of elementary streams.

mux_streams[]

MuxStream

List of multiplexing settings for output streams.

manifests[]

Manifest

List of output manifests.

sprite_sheets[]

SpriteSheet

List of output sprite sheets.

streaming_state

StreamingState

Output only. State of the streaming operation.

streaming_error

Status

Output only. A description of the reason for the streaming error. This property is always present when streaming_state is STREAMING_ERROR.

log_config

LogConfig

Configuration of platform logs for this channel.

timecode_config

TimecodeConfig

Configuration of timecode for this channel.

encryptions[]

Encryption

Encryption configurations for this channel. Each configuration has an ID which is referred to by each MuxStream to indicate which configuration is used for that output.

input_config

InputConfig

The configuration for input sources defined in input_attachments.

retention_config

RetentionConfig

Optional. Configuration for retention of output files for this channel.

static_overlays[]

StaticOverlay

Optional. List of static overlay images. Those images display over the output content for the whole duration of the live stream.

Output

Location of output file(s) in a Google Cloud Storage bucket.

Fields
uri

string

URI for the output file(s). For example, gs://my-bucket/outputs/.

StreamingState

State of streaming operation that the channel is running.

Enums
STREAMING_STATE_UNSPECIFIED Streaming state is not specified.
STREAMING Channel is getting the input stream, generating the live streams to the specified output location.
AWAITING_INPUT Channel is waiting for the input stream through the input.
STREAMING_ERROR Channel is running, but has trouble publishing the live streams onto the specified output location (for example, the specified Cloud Storage bucket is not writable).
STREAMING_NO_INPUT Channel is generating live streams with no input stream. Live streams are filled out with black screen, while input stream is missing. Not supported yet.
STOPPED Channel is stopped, finishing live streams.
STARTING Channel is starting.
STOPPING Channel is stopping.

ChannelOperationResponse

This type has no fields.

Response message for Start/Stop Channel long-running operations.

Clip

Clip is a sub-resource under channel. Each clip represents a clipping operation that generates a VOD playlist from its channel given a set of timestamp ranges.

Fields
name

string

The resource name of the clip, in the following format: projects/{project}/locations/{location}/channels/{c}/clips/{clipId}. {clipId} is a user-specified resource id that conforms to the following criteria:

  1. 1 character minimum, 63 characters maximum
  2. Only contains letters, digits, underscores, and hyphens
create_time

Timestamp

Output only. The creation timestamp of the clip resource.

start_time

Timestamp

Output only. The timestamp when the clip request starts to be processed.

update_time

Timestamp

Output only. The update timestamp of the clip resource.

labels

map<string, string>

The labels associated with this resource. Each label is a key-value pair.

state

State

Output only. The state of the clip.

output_uri

string

Specify the output_uri to determine where to place the clip segments and clip manifest files in Cloud Storage. The manifests specified in clip_manifests fields will be placed under this URI. The exact URI of the generated manifests will be provided in clip_manifests.output_uri for each manifest. Example: "output_uri": "gs://my-bucket/clip-outputs" "clip_manifests.output_uri": "gs://my-bucket/clip-outputs/main.m3u8"

error

Status

Output only. An error object that describes the reason for the failure. This property only presents when state is FAILED.

slices[]

Slice

The specified ranges of segments to generate a clip.

clip_manifests[]

ClipManifest

Required. A list of clip manifests. Currently only one clip manifest is allowed.

ClipManifest

ClipManifest identifies a source manifest for the generated clip manifest.

Fields
manifest_key

string

Required. A unique key that identifies a manifest config in the parent channel. This key is the same as channel.manifests.key for the selected manifest.

output_uri

string

Output only. The output URI of the generated clip manifest. This field will be populated when the CreateClip request is accepted. Current output format is provided below but may change in the future. Please read this field to get the uri to the generated clip manifest. Format: {clip.output_uri}/{channel.manifest.fileName} Example: gs://my-bucket/clip-outputs/main.m3u8

Slice

Slice represents a slice of the requested clip.

Fields
Union field kind. The allowlist forms of a slice. kind can be only one of the following:
time_slice

TimeSlice

A slice in form of a tuple of Unix epoch time.

State

State of clipping operation.

Enums
STATE_UNSPECIFIED State is not specified.
PENDING The operation is pending to be picked up by the server.
CREATING The server admitted this create clip request, and outputs are under processing.
SUCCEEDED Outputs are available in the specified Cloud Storage bucket. For additional information, see the outputs field.
FAILED The operation has failed. For additional information, see the error field.

TimeSlice

TimeSlice represents a tuple of Unix epoch timestamps that specifies a time range.

Fields
markin_time

Timestamp

The mark-in Unix epoch time in the original live stream manifest.

markout_time

Timestamp

The mark-out Unix epoch time in the original live stream manifest.

CreateAssetRequest

Request message for "LivestreamService.CreateAsset".

Fields
parent

string

Required. The parent location for the resource, in the form of: projects/{project}/locations/{location}.

asset

Asset

Required. The asset resource to be created.

asset_id

string

Required. The ID of the asset resource to be created. This value must be 1-63 characters, begin and end with [a-z0-9], could contain dashes (-) in between.

request_id

string

A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

CreateChannelRequest

Request message for "LivestreamService.CreateChannel".

Fields
parent

string

Required. The parent location for the resource, in the form of: projects/{project}/locations/{location}.

channel

Channel

Required. The channel resource to be created.

channel_id

string

Required. The ID of the channel resource to be created. This value must be 1-63 characters, begin and end with [a-z0-9], could contain dashes (-) in between.

request_id

string

A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

CreateClipRequest

Request message for "LivestreamService.CreateClip".

Fields
parent

string

Required. The parent resource name, in the following form: projects/{project}/locations/{location}/channels/{channel}.

clip_id

string

Required. Id of the requesting object in the following form:

  1. 1 character minimum, 63 characters maximum
  2. Only contains letters, digits, underscores, and hyphens
clip

Clip

Required. The resource being created

request_id

string

Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

CreateDvrSessionRequest

Request message for "LivestreamService.CreateDvrSession".

Fields
parent

string

Required. The parent resource name, in the following form: projects/{project}/locations/{location}/channels/{channelId}.

dvr_session_id

string

Required. Id of the requesting object in the following form:

  1. 1 character minimum, 63 characters maximum
  2. Only contains letters, digits, underscores, and hyphens
dvr_session

DvrSession

Required. The resource being created

request_id

string

Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

CreateEventRequest

Request message for "LivestreamService.CreateEvent".

Fields
parent

string

Required. The parent channel for the resource, in the form of: projects/{project}/locations/{location}/channels/{channelId}.

event

Event

Required. The event resource to be created.

event_id

string

Required. The ID of the event resource to be created. This value must be 1-63 characters, begin and end with [a-z0-9], could contain dashes (-) in between.

request_id

string

A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

CreateInputRequest

Request message for "LivestreamService.CreateInput".

Fields
parent

string

Required. The parent location for the resource, in the form of: projects/{project}/locations/{location}.

input

Input

Required. The input resource to be created.

input_id

string

Required. The ID of the input resource to be created. This value must be 1-63 characters, begin and end with [a-z0-9], could contain dashes (-) in between.

request_id

string

A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

DeleteAssetRequest

Request message for "LivestreamService.DeleteAsset".

Fields
name

string

Required. The name of the asset resource, in the form of: projects/{project}/locations/{location}/assets/{assetId}.

request_id

string

A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

DeleteChannelRequest

Request message for "LivestreamService.DeleteChannel".

Fields
name

string

Required. The name of the channel resource, in the form of: projects/{project}/locations/{location}/channels/{channelId}.

request_id

string

A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

force

bool

If the force field is set to the default value of false, you must delete all of a channel's events before you can delete the channel itself. If the field is set to true, requests to delete a channel also delete associated channel events.

DeleteClipRequest

Request message for "LivestreamService.DeleteClip".

Fields
name

string

Required. The name of the clip resource, in the form of: projects/{project}/locations/{location}/channels/{channelId}/clips/{clipId}.

request_id

string

Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

DeleteDvrSessionRequest

Request message for "LivestreamService.DeleteDvrSession".

Fields
name

string

Required. The name of the event resource, in the form of: projects/{project}/locations/{location}/channels/{channelId}/dvrSessions/{dvrSessionId}.

request_id

string

Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

DeleteEventRequest

Request message for "LivestreamService.DeleteEvent".

Fields
name

string

Required. The name of the event resource, in the form of: projects/{project}/locations/{location}/channels/{channelId}/events/{eventId}.

request_id

string

A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

DeleteInputRequest

Request message for "LivestreamService.DeleteInput".

Fields
name

string

Required. The name of the input resource, in the form of: projects/{project}/locations/{location}/inputs/{inputId}.

request_id

string

A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

DvrSession

DvrSession is a sub-resource under channel. Each DvrSession represents a DVR recording of the live stream for a specific time range.

Fields
name

string

Identifier. The resource name of the DVR session, in the following format: projects/{project}/locations/{location}/channels/{c}/dvrSessions/{dvr_session}. {dvrSessionId} is a user-specified resource id that conforms to the following criteria:

  1. 1 character minimum, 63 characters maximum
  2. Only contains letters, digits, underscores, and hyphens
create_time

Timestamp

Output only. The creation time.

update_time

Timestamp

Output only. The update time.

labels

map<string, string>

Optional. User-defined key/value metadata.

state

State

Output only. The state of the clip.

error

Status

Output only. An error object that describes the reason for the failure. This property only presents when state is FAILED.

dvr_manifests[]

DvrManifest

Required. A list of DVR manifests. Currently only one DVR manifest is allowed.

dvr_windows[]

DvrWindow

Required. The specified ranges of segments to generate a DVR recording.

DvrManifest

DvrManifest identifies a source manifest and specifies a file name for the generated DVR manifest.

Fields
manifest_key

string

Required. A unique key that identifies a manifest config in the parent channel. This key is the same as channel.manifests.key for the selected manifest.

output_uri

string

Output only. The output URI of the DVR manifest. The DVR output will be placed in a directory named dvr/dvrSessionId/ under the parent channel's output uri. Format: {channel.output.uri}/dvr/{dvrSessionId}/{channel.manifests.fileName} Example: gs://my-bucket/outputs/dvr/my-dvr-session/main.m3u8

DvrWindow

DvrWindow represents a DVR window.

Fields
Union field kind. The allowlist forms of a DVR window. kind can be only one of the following:
time_interval

TimeInterval

A time interval in the form of a tuple of Unix epoch time.

State

State of the DVR session.

Enums
STATE_UNSPECIFIED State is not specified.
PENDING The operation is pending to be picked up by the server.
UPDATING The session is being updated.
SCHEDULED The session is scheduled and waiting for the start time.
LIVE The session is currently in progress and the outputs are available in the specified Cloud Storage bucket. For additional information, see the dvr_manifests.output_uri field.
FINISHED Outputs are available in the specified Cloud Storage bucket. For additional information, see the dvr_manifests.output_uri field.
FAILED The operation has failed. For additional information, see the error field.
DELETING The session is being deleted.
POST_PROCESSING The session is being post processed.
COOLDOWN The session is in cooldown. The cooldown period lasts for 60 seconds. When the DVR session is updated by the user to have a new end time that is likely already in the past, the DVR manifest will end as soon as possible and the DVR session will move to this state. This is done to prevent the players to receive a manifest update that removes a segment that has already been played. After the cooldown period ends, a new manifest is generated that honors the new end time.
STOPPING The session is being stopped. The session will move to STOPPING state, if the parent channel is updated.

ElementaryStream

Encoding of an input element such as an audio, video, or text track. Elementary streams must be packaged before mapping and sharing between different output formats.

Fields
key

string

A unique key for this elementary stream. The key must be 1-63 characters in length. The key must begin and end with a letter (regardless of case) or a number, but can contain dashes or underscores in between.

Union field elementary_stream. Required. Encoding of an audio, video, or text track. elementary_stream can be only one of the following:
video_stream

VideoStream

Encoding of a video stream.

audio_stream

AudioStream

Encoding of an audio stream.

text_stream

TextStream

Encoding of a text stream. For example, closed captions or subtitles.

Encryption

Encryption settings.

Fields
id

string

Required. Identifier for this set of encryption options. The ID must be 1-63 characters in length. The ID must begin and end with a letter (regardless of case) or a number, but can contain dashes or underscores in between.

drm_systems

DrmSystems

Required. Configuration for DRM systems.

Union field secret_source. Defines where content keys are stored. secret_source can be only one of the following:
secret_manager_key_source

SecretManagerSource

For keys stored in Google Secret Manager.

Union field encryption_mode. Encryption modes for HLS and MPEG-Dash. encryption_mode can be only one of the following:
aes128

Aes128Encryption

Configuration for HLS AES-128 encryption.

sample_aes

SampleAesEncryption

Configuration for HLS SAMPLE-AES encryption.

mpeg_cenc

MpegCommonEncryption

Configuration for MPEG-Dash Common Encryption (MPEG-CENC).

Aes128Encryption

This type has no fields.

Configuration for HLS AES-128 encryption.

Clearkey

This type has no fields.

Clearkey configuration.

DrmSystems

Defines configuration for DRM systems in use. If a field is omitted, that DRM system will be considered to be disabled.

Fields
widevine

Widevine

Widevine configuration.

fairplay

Fairplay

Fairplay configuration.

playready

Playready

Playready configuration.

clearkey

Clearkey

Clearkey configuration.

Fairplay

This type has no fields.

Fairplay configuration.

MpegCommonEncryption

Configuration for MPEG-Dash Common Encryption (MPEG-CENC).

Fields
scheme

string

Required. Specify the encryption scheme, supported schemes: - cenc - AES-CTR subsample - cbcs- AES-CBC subsample pattern

Playready

This type has no fields.

Playready configuration.

SampleAesEncryption

This type has no fields.

Configuration for HLS SAMPLE-AES encryption.

SecretManagerSource

Configuration for secrets stored in Google Secret Manager.

Fields
secret_version

string

Required. The name of the Secret Version containing the encryption key. projects/{project}/secrets/{secret_id}/versions/{version_number}

Widevine

This type has no fields.

Widevine configuration.

Event

Event is a sub-resource of a channel, which can be scheduled by the user to execute operations on a channel resource without having to stop the channel.

Fields
name

string

The resource name of the event, in the form of: projects/{project}/locations/{location}/channels/{channelId}/events/{eventId}.

create_time

Timestamp

Output only. The creation time.

update_time

Timestamp

Output only. The update time.

labels

map<string, string>

User-defined key/value metadata.

execute_now

bool

When this field is set to true, the event will be executed at the earliest time that the server can schedule the event and execution_time will be populated with the time that the server actually schedules the event.

execution_time

Timestamp

The time to execute the event. If you set execute_now to true, then do not set this field in the CreateEvent request. In this case, the server schedules the event and populates this field. If you set execute_now to false, then you must set this field to at least 10 seconds in the future or else the event can't be created.

state

State

Output only. The state of the event.

error

Status

Output only. An error object that describes the reason for the failure. This property is always present when state is FAILED.

Union field task. Required. Operation to be executed by this event. task can be only one of the following:
input_switch

InputSwitchTask

Switches to another input stream.

ad_break

AdBreakTask

Inserts a new ad opportunity.

return_to_program

ReturnToProgramTask

Stops any running ad break.

slate

SlateTask

Inserts a slate.

mute

MuteTask

Mutes the stream.

unmute

UnmuteTask

Unmutes the stream.

AdBreakTask

Inserts a new ad opportunity.

Fields
duration

Duration

Duration of an ad opportunity. Must be greater than 0.

InputSwitchTask

Switches to another input stream. Automatic failover is then disabled.

Fields
input_key

string

The InputAttachment.key of the input to switch to.

MuteTask

Mutes the stream.

Fields
duration

Duration

Duration for which the stream should be muted. If omitted, the stream will be muted until an UnmuteTask event is sent.

ReturnToProgramTask

This type has no fields.

Stops any events which are currently running. This only applies to events with a duration.

SlateTask

Inserts a slate.

Fields
duration

Duration

Optional. Duration of the slate. Must be greater than 0 if specified. Omit this field for a long running slate.

asset

string

Slate asset to use for the duration. If its duration is less than the duration of the SlateTask, then the slate loops. The slate must be represented in the form of: projects/{project}/locations/{location}/assets/{assetId}.

State

State of the event

Enums
STATE_UNSPECIFIED Event state is not specified.
SCHEDULED Event is scheduled but not executed yet.
RUNNING Event is being executed.
SUCCEEDED Event has been successfully executed.
FAILED Event fails to be executed.
PENDING Event has been created but not scheduled yet.
STOPPED Event was stopped before running for its full duration.

UnmuteTask

This type has no fields.

Unmutes the stream. The task fails if the stream is not currently muted.

GetAssetRequest

Request message for "LivestreamService.GetAsset".

Fields
name

string

Required. Name of the resource, in the following form: projects/{project}/locations/{location}/assets/{asset}.

GetChannelRequest

Request message for "LivestreamService.GetChannel".

Fields
name

string

Required. The name of the channel resource, in the form of: projects/{project}/locations/{location}/channels/{channelId}.

GetClipRequest

Request message for "LivestreamService.GetClip".

Fields
name

string

Required. Name of the resource, in the following form: projects/{project}/locations/{location}/channels/{channel}/clips/{clip}.

GetDvrSessionRequest

Request message for "LivestreamService.GetDvrSession".

Fields
name

string

Required. Name of the resource, in the following form: projects/{project}/locations/{location}/channels/{channelId}/dvrSessions/{dvrSessionId}.

GetEventRequest

Request message for "LivestreamService.GetEvent".

Fields
name

string

Required. The name of the event resource, in the form of: projects/{project}/locations/{location}/channels/{channelId}/events/{eventId}.

GetInputRequest

Request message for "LivestreamService.GetInput".

Fields
name

string

Required. The name of the input resource, in the form of: projects/{project}/locations/{location}/inputs/{inputId}.

GetPoolRequest

Request message for "LivestreamService.GetPool".

Fields
name

string

Required. The name of the pool resource, in the form of: projects/{project}/locations/{location}/pools/{poolId}.

Input

Input resource represents the endpoint from which the channel ingests the input stream.

Fields
name

string

The resource name of the input, in the form of: projects/{project}/locations/{location}/inputs/{inputId}.

create_time

Timestamp

Output only. The creation time.

update_time

Timestamp

Output only. The update time.

labels

map<string, string>

User-defined key/value metadata.

type

Type

Source type.

tier

Tier

Tier defines the maximum input specification that is accepted by the video pipeline. The billing is charged based on the tier specified here. See Pricing for more detail. The default is HD.

uri

string

Output only. URI to push the input stream to. Its format depends on the input type, for example:

  • RTMP_PUSH: rtmp://1.2.3.4/live/{STREAM-ID}
  • SRT_PUSH: srt://1.2.3.4:4201?streamid={STREAM-ID}
preprocessing_config

PreprocessingConfig

Preprocessing configurations.

security_rules

SecurityRule

Security rule for access control.

input_stream_property

InputStreamProperty

Output only. The information for the input stream. This field will be present only when this input receives the input stream.

SecurityRule

Security rules for access control. Each field represents one security rule. Only when the source of the input stream satisfies all the fields, this input stream can be accepted.

Fields
ip_ranges[]

string

At least one ip range must match unless none specified. The IP range is defined by CIDR block: for example, 192.0.1.0/24 for a range and 192.0.1.0/32 for a single IP address.

Tier

Tier of the input specification.

Enums
TIER_UNSPECIFIED Tier is not specified.
SD Resolution < 1280x720. Bitrate <= 6 Mbps. FPS <= 60.
HD Resolution <= 1920x1080. Bitrate <= 25 Mbps. FPS <= 60.
UHD Resolution <= 4096x2160. Not supported yet.

Type

The type of the input.

Enums
TYPE_UNSPECIFIED Input type is not specified.
RTMP_PUSH Input will take an rtmp input stream.
SRT_PUSH Input will take an srt (Secure Reliable Transport) input stream.

InputAttachment

A group of information for attaching an input resource to this channel.

Fields
key

string

A unique key for this input attachment. The key must be 1-63 characters in length. The key must begin and end with a letter (regardless of case) or a number, but can contain dashes or underscores in between.

input

string

The resource name of an existing input, in the form of: projects/{project}/locations/{location}/inputs/{inputId}.

automatic_failover

AutomaticFailover

Automatic failover configurations.

AutomaticFailover

Configurations to follow when automatic failover happens.

Fields
input_keys[]

string

The InputAttachment.keys of inputs to failover to when this input is disconnected. Currently, only up to one backup input is supported.

InputConfig

Configuration for the input sources of a channel.

Fields
input_switch_mode

InputSwitchMode

Input switch mode. Default mode is FAILOVER_PREFER_PRIMARY.

InputSwitchMode

Input switch mode.

Enums
INPUT_SWITCH_MODE_UNSPECIFIED The input switch mode is not specified.
FAILOVER_PREFER_PRIMARY Automatic failover is enabled. The primary input stream is always preferred over its backup input streams configured using the AutomaticFailover field.
MANUAL Automatic failover is disabled. You must use the inputSwitch event to switch the active input source for the channel to stream from. When this mode is chosen, the AutomaticFailover field is ignored.

InputStreamProperty

Properties of the input stream.

Fields
last_establish_time

Timestamp

The time that the current input stream is accepted and the connection is established.

video_streams[]

VideoStreamProperty

Properties of the video streams.

audio_streams[]

AudioStreamProperty

Properties of the audio streams.

ListAssetsRequest

Request message for "LivestreamService.ListAssets".

Fields
parent

string

Required. The parent location for the resource, in the form of: projects/{project}/locations/{location}.

page_size

int32

Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.

page_token

string

A token identifying a page of results the server should return.

filter

string

Filtering results

order_by

string

Hint for how to order the results

ListAssetsResponse

Response message for "LivestreamService.ListAssets".

Fields
assets[]

Asset

The list of Assets

next_page_token

string

The next_page_token value returned from a previous List request, if any.

unreachable[]

string

Locations that could not be reached.

ListChannelsRequest

Request message for "LivestreamService.ListChannels".

Fields
parent

string

Required. The parent location for the resource, in the form of: projects/{project}/locations/{location}.

page_size

int32

The maximum number of items to return. If unspecified, server will pick an appropriate default. Server may return fewer items than requested. A caller should only rely on response's next_page_token to determine if there are more items left to be queried.

page_token

string

The next_page_token value returned from a previous List request, if any.

filter

string

The filter to apply to list results.

order_by

string

Specifies the ordering of results following syntax at https://cloud.google.com/apis/design/design_patterns#sorting_order.

ListChannelsResponse

Response message for "LivestreamService.ListChannels".

Fields
channels[]

Channel

A list of channels.

next_page_token

string

Token to retrieve the next page of results, or empty if there are no more results in the list.

unreachable[]

string

Locations that could not be reached.

ListClipsRequest

Request message for "LivestreamService.ListClips".

Fields
parent

string

Required. Parent value for ListClipsRequest

page_size

int32

Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.

page_token

string

A token identifying a page of results the server should return.

filter

string

Filtering results

order_by

string

Hint for how to order the results

ListClipsResponse

Response message for "LivestreamService.ListClips".

Fields
clips[]

Clip

The list of Clip

next_page_token

string

A token identifying a page of results the server should return.

unreachable[]

string

Locations that could not be reached.

ListDvrSessionsRequest

Request message for "LivestreamService.ListDvrSessions".

Fields
parent

string

Required. Parent value for ListDvrSessionsRequest

page_size

int32

Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.

page_token

string

Optional. A token identifying a page of results the server should return.

filter

string

Optional. Filtering results

order_by

string

Optional. Hint for how to order the results

ListDvrSessionsResponse

Response message for "LivestreamService.ListDvrSessions".

Fields
dvr_sessions[]

DvrSession

The list of DVR sessions

next_page_token

string

A token identifying a page of results the server should return.

unreachable[]

string

Locations that could not be reached.

ListEventsRequest

Request message for "LivestreamService.ListEvents".

Fields
parent

string

Required. The parent channel for the resource, in the form of: projects/{project}/locations/{location}/channels/{channelId}.

page_size

int32

The maximum number of items to return. If unspecified, server will pick an appropriate default. Server may return fewer items than requested. A caller should only rely on response's next_page_token to determine if there are more items left to be queried.

page_token

string

The next_page_token value returned from a previous List request, if any.

filter

string

The filter to apply to list results.

order_by

string

Specifies the ordering of results following syntax at https://cloud.google.com/apis/design/design_patterns#sorting_order.

ListEventsResponse

Response message for "LivestreamService.ListEvents".

Fields
events[]

Event

A list of events.

next_page_token

string

Token to retrieve the next page of results, or empty if there are no more results in the list.

unreachable[]

string

Locations that could not be reached.

ListInputsRequest

Request message for "LivestreamService.ListInputs".

Fields
parent

string

Required. The parent location for the resource, in the form of: projects/{project}/locations/{location}.

page_size

int32

The maximum number of items to return. If unspecified, server will pick an appropriate default. Server may return fewer items than requested. A caller should only rely on response's next_page_token to determine if there are more items left to be queried.

page_token

string

The next_page_token value returned from a previous List request, if any.

filter

string

The filter to apply to list results.

order_by

string

Specifies the ordering of results following syntax at Sorting Order.

ListInputsResponse

Response message for "LivestreamService.ListInputs".

Fields
inputs[]

Input

A list of inputs.

next_page_token

string

Token to retrieve the next page of results, or empty if there are no more results in the list.

unreachable[]

string

Locations that could not be reached.

LogConfig

Configuration of platform logs. See Using and managing platform logs for more information about how to view platform logs through Cloud Logging.

Fields
log_severity

LogSeverity

The severity level of platform logging for this resource.

LogSeverity

The severity level of platform logging for this channel. Logs with a severity level higher than or equal to the chosen severity level will be logged and can be viewed through Cloud Logging. The severity level of a log is ranked as followed from low to high: DEBUG < INFO < NOTICE < WARNING < ERROR < CRITICAL < ALERT < EMERGENCY. See LogSeverity for more information.

Enums
LOG_SEVERITY_UNSPECIFIED Log severity is not specified. This is the same as log severity is OFF.
OFF Log is turned off.
DEBUG Log with severity higher than or equal to DEBUG are logged.
INFO Logs with severity higher than or equal to INFO are logged.
WARNING Logs with severity higher than or equal to WARNING are logged.
ERROR Logs with severity higher than or equal to ERROR are logged.

Manifest

Manifest configuration.

Fields
file_name

string

The name of the generated file. The default is manifest with the extension suffix corresponding to the Manifest type. If multiple manifests are added to the channel, each must have a unique file name.

type

ManifestType

Required. Type of the manifest, can be HLS or DASH.

mux_streams[]

string

Required. List of MuxStream keys that should appear in this manifest.

  • For HLS, either fmp4 or ts mux streams can be specified but not mixed.
  • For DASH, only fmp4 mux streams can be specified.
max_segment_count

int32

Maximum number of segments that this manifest holds. Once the manifest reaches this maximum number of segments, whenever a new segment is added to the manifest, the oldest segment will be removed from the manifest. The minimum value is 3 and the default value is 5.

segment_keep_duration

Duration

How long to keep a segment on the output Google Cloud Storage bucket after it is removed from the manifest. This field should be large enough to cover the manifest propagation delay. Otherwise, a player could receive 404 errors while accessing segments which are listed in the manifest that the player has, but were already deleted from the output Google Cloud Storage bucket. Default value is 60s.

If both segment_keep_duration and RetentionConfig.retention_window_duration are set, RetentionConfig.retention_window_duration is used and segment_keep_duration is ignored.

use_timecode_as_timeline

bool

Whether to use the timecode, as specified in timecode config, when setting:

  • availabilityStartTime attribute in DASH manifests.
  • #EXT-X-PROGRAM-DATE-TIME tag in HLS manifests.

If false, ignore the input timecode and use the time from system clock when the manifest is first generated. This is the default behavior.

key

string

Optional. A unique key for this manifest.

ManifestType

The manifest type can be either HLS or DASH.

Enums
MANIFEST_TYPE_UNSPECIFIED The manifest type is not specified.
HLS Create an HLS manifest. The corresponding file extension is .m3u8.
DASH Create a DASH manifest. The corresponding file extension is .mpd.

MuxStream

Multiplexing settings for output stream.

Fields
key

string

A unique key for this multiplexed stream. The key must be 1-63 characters in length. The key must begin and end with a letter (regardless of case) or a number, but can contain dashes or underscores in between.

container

string

The container format. The default is fmp4.

Supported container formats:

  • fmp4 - the corresponding file extension is .m4s
  • ts - the corresponding file extension is .ts
elementary_streams[]

string

List of ElementaryStream keys multiplexed in this stream.

  • For fmp4 container, must contain either one video or one audio stream.
  • For ts container, must contain exactly one audio stream and up to one video stream.
segment_settings

SegmentSettings

Segment settings for fmp4 and ts.

encryption_id

string

Identifier of the encryption configuration to use. If omitted, output will be unencrypted.

NormalizedCoordinate

2D normalized coordinates.

Fields
x

double

Optional. Normalized x coordinate. Valid range is [0.0, 1.0]. Default is 0.

y

double

Optional. Normalized y coordinate. Valid range is [0.0, 1.0]. Default is 0.

NormalizedResolution

Normalized resolution.

Fields
w

double

Optional. Normalized width. Valid range is [0.0, 1.0]. Default is 0.

h

double

Optional. Normalized height. Valid range is [0.0, 1.0]. Default is 0.

OperationMetadata

Represents the metadata of the long-running operation.

Fields
create_time

Timestamp

Output only. The time the operation was created.

end_time

Timestamp

Output only. The time the operation finished running.

target

string

Output only. Server-defined resource path for the target of the operation.

verb

string

Output only. Name of the verb executed by the operation.

requested_cancellation

bool

Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have [Operation.error][] value with a google.rpc.Status.code of 1, corresponding to Code.CANCELLED.

api_version

string

Output only. API version used to start the operation.

Pool

Pool resource defines the configuration of Live Stream pools for a specific location. Currently we support only one pool resource per project per location. After the creation of the first input, a default pool is created automatically at "projects/{project}/locations/{location}/pools/default".

Fields
name

string

The resource name of the pool, in the form of: projects/{project}/locations/{location}/pools/{poolId}.

create_time

Timestamp

Output only. The creation time.

update_time

Timestamp

Output only. The update time.

labels

map<string, string>

User-defined key/value metadata.

network_config

NetworkConfig

Network configuration for the pool.

NetworkConfig

Defines the network configuration for the pool.

Fields
peered_network

string

peered_network is the network resource URL of the network that is peered to the service provider network. Must be of the format projects/NETWORK_PROJECT_NUMBER/global/networks/NETWORK_NAME, where NETWORK_PROJECT_NUMBER is the project number of the Cloud project that holds your VPC network and NETWORK_NAME is the name of your VPC network. If peered_network is omitted or empty, the pool will use endpoints that are publicly available.

PreprocessingConfig

Preprocessing configurations.

Fields
audio

Audio

Audio preprocessing configuration.

crop

Crop

Specify the video cropping configuration.

pad

Pad

Specify the video pad filter configuration.

Audio

Audio preprocessing configuration.

Fields
lufs

double

Specify audio loudness normalization in loudness units relative to full scale (LUFS). Enter a value between -24 and 0 according to the following:

  • -24 is the Advanced Television Systems Committee (ATSC A/85)
  • -23 is the EU R128 broadcast standard
  • -19 is the prior standard for online mono audio
  • -18 is the ReplayGain standard
  • -16 is the prior standard for stereo audio
  • -14 is the new online audio standard recommended by Spotify, as well as Amazon Echo
  • 0 disables normalization. The default is 0.

Crop

Video cropping configuration for the input video. The cropped input video is scaled to match the output resolution.

Fields
top_pixels

int32

The number of pixels to crop from the top. The default is 0.

bottom_pixels

int32

The number of pixels to crop from the bottom. The default is 0.

left_pixels

int32

The number of pixels to crop from the left. The default is 0.

right_pixels

int32

The number of pixels to crop from the right. The default is 0.

Pad

Pad filter configuration for the input video. The padded input video is scaled after padding with black to match the output resolution.

Fields
top_pixels

int32

The number of pixels to add to the top. The default is 0.

bottom_pixels

int32

The number of pixels to add to the bottom. The default is 0.

left_pixels

int32

The number of pixels to add to the left. The default is 0.

right_pixels

int32

The number of pixels to add to the right. The default is 0.

RetentionConfig

Configuration for retention of output files.

Fields
retention_window_duration

Duration

The minimum duration for which the output files from the channel will remain in the output bucket. After this duration, output files are deleted asynchronously.

When the channel is deleted, all output files are deleted from the output bucket asynchronously.

If omitted or set to zero, output files will remain in the output bucket based on Manifest.segment_keep_duration, which defaults to 60s.

If both retention_window_duration and Manifest.segment_keep_duration are set, retention_window_duration is used and Manifest.segment_keep_duration is ignored.

SegmentSettings

Segment settings for fmp4 and ts.

Fields
segment_duration

Duration

Duration of the segments in seconds. The default is 6s. Note that segmentDuration must be greater than or equal to gop_duration, and segmentDuration must be divisible by gop_duration. Valid range is [2s, 20s].

All mux_streams in the same manifest must have the same segment duration.

SpriteSheet

Sprite sheet configuration.

Fields
format

string

Format type. The default is jpeg.

Supported formats:

  • jpeg
file_prefix

string

Required. File name prefix for the generated sprite sheets. If multiple sprite sheets are added to the channel, each must have a unique file prefix. Each sprite sheet has an incremental 10-digit zero-padded suffix starting from 0 before the extension, such as sprite_sheet0000000123.jpeg.

sprite_width_pixels

int32

Required. The width of the sprite in pixels. Must be an even integer.

sprite_height_pixels

int32

Required. The height of the sprite in pixels. Must be an even integer.

column_count

int32

The maximum number of sprites per row in a sprite sheet. Valid range is [1, 10] and the default value is 1.

row_count

int32

The maximum number of rows per sprite sheet. When the sprite sheet is full, a new sprite sheet is created. Valid range is [1, 10] and the default value is 1.

interval

Duration

Create sprites at regular intervals. Valid range is [1 second, 1 hour] and the default value is 10s.

quality

int32

The quality of the generated sprite sheet. Enter a value between 1 and 100, where 1 is the lowest quality and 100 is the highest quality. The default is 100. A high quality value corresponds to a low image data compression ratio.

StartChannelRequest

Request message for "LivestreamService.StartChannel".

Fields
name

string

Required. The name of the channel resource, in the form of: projects/{project}/locations/{location}/channels/{channelId}.

request_id

string

A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

StaticOverlay

Configuration for the static overlay.

Fields
asset

string

Required. Asset to use for the overlaid image. The asset must be represented in the form of: projects/{project}/locations/{location}/assets/{assetId}. The asset's resource type must be image.

resolution

NormalizedResolution

Optional. Normalized image resolution, based on output video resolution. Valid values are [0.0, 1.0]. To respect the original image aspect ratio, set either w or h to 0. To use the original image resolution, set both w and h to 0. The default is {0, 0}.

position

NormalizedCoordinate

Optional. Position of the image in terms of normalized coordinates of the upper-left corner of the image, based on output video resolution. For example, use the x and y coordinates {0, 0} to position the top-left corner of the overlay animation in the top-left corner of the output video.

opacity

double

Optional. Target image opacity. Valid values are from 1.0 (solid, default) to 0.0 (transparent), exclusive. Set this to a value greater than 0.0.

StopChannelRequest

Request message for "LivestreamService.StopChannel".

Fields
name

string

Required. The name of the channel resource, in the form of: projects/{project}/locations/{location}/channels/{channelId}.

request_id

string

A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

TextStream

Encoding of a text stream. For example, closed captions or subtitles.

Fields
codec

string

Required. The codec for this text stream.

Supported text codecs:

  • cea608
  • cea708

TimeInterval

TimeInterval represents a time interval.

Fields
start_time

Timestamp

Optional. The start time of the interval.

end_time

Timestamp

Optional. The end time of the interval.

TimecodeConfig

Timecode configuration.

Fields
source

TimecodeSource

The source of the timecode that will later be used in outputs/manifests. It determines the initial timecode/timestamp (first frame) of output streams.

Union field time_offset. For EMBEDDED_TIMECODE source only. Used to interpret the embedded timecode (which contains only the time part and no date). We assume all inputs are live. time_offset can be only one of the following:
utc_offset

Duration

UTC offset. Must be whole seconds, between -18 hours and +18 hours.

time_zone

TimeZone

Time zone e.g. "America/Los_Angeles".

TimecodeSource

The source of timecode.

Enums
TIMECODE_SOURCE_UNSPECIFIED The timecode source is not specified.
MEDIA_TIMESTAMP Use input media timestamp.
EMBEDDED_TIMECODE Use input embedded timecode e.g. picture timing SEI message.

UpdateChannelRequest

Request message for "LivestreamService.UpdateChannel".

Fields
update_mask

FieldMask

Field mask is used to specify the fields to be overwritten in the Channel resource by the update. You can only update the following fields:

The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask.

If the mask is not present, then each field from the list above is updated if the field appears in the request payload. To unset a field, add the field to the update mask and remove it from the request payload.

channel

Channel

Required. The channel resource to be updated.

request_id

string

A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

UpdateDvrSessionRequest

Request message for "LivestreamService.UpdateDvrSession".

Fields
update_mask

FieldMask

Required. Field mask is used to specify the fields to be overwritten in the DvrSession resource by the update. You can only update the following fields:

  • dvrWindows

The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask.

dvr_session

DvrSession

Required. The DVR session resource to be updated.

request_id

string

Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

UpdateInputRequest

Request message for "LivestreamService.UpdateInput".

Fields
update_mask

FieldMask

Field mask is used to specify the fields to be overwritten in the Input resource by the update. You can only update the following fields:

The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask.

If the mask is not present, then each field from the list above is updated if the field appears in the request payload. To unset a field, add the field to the update mask and remove it from the request payload.

input

Input

Required. The input resource to be updated.

request_id

string

A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

UpdatePoolRequest

Request message for "LivestreamService.UpdatePool".

Fields
update_mask

FieldMask

Field mask is used to specify the fields to be overwritten in the Pool resource by the update. You can only update the following fields:

  • networkConfig

The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask.

pool

Pool

Required. The pool resource to be updated.

request_id

string

A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

VideoFormat

Properties of the video format.

Fields
codec

string

Video codec used in this video stream.

width_pixels

int32

The width of the video stream in pixels.

height_pixels

int32

The height of the video stream in pixels.

frame_rate

double

The frame rate of the input video stream.

VideoStream

Video stream resource.

Fields
Union field codec_settings. Codec settings. codec_settings can be only one of the following:
h264

H264CodecSettings

H264 codec settings.

H264CodecSettings

H264 codec settings.

Fields
width_pixels

int32

Required. The width of the video in pixels. Must be an even integer. Valid range is [320, 1920].

height_pixels

int32

Required. The height of the video in pixels. Must be an even integer. Valid range is [180, 1080].

frame_rate

double

Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 60. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. See Calculating frame rate for more information.

bitrate_bps

int32

Required. The video bitrate in bits per second. Minimum value is 10,000.

  • For SD resolution (< 720p), must be <= 3,000,000 (3 Mbps).
  • For HD resolution (<= 1080p), must be <= 15,000,000 (15 Mbps).
allow_open_gop

bool

Specifies whether an open Group of Pictures (GOP) structure should be allowed or not. The default is false.

vbv_size_bits

int32

Size of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to bitrate_bps.

vbv_fullness_bits

int32

Initial fullness of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to 90% of vbv_size_bits.

entropy_coder

string

The entropy coder to use. The default is cabac.

Supported entropy coders:

  • cavlc
  • cabac
b_pyramid

bool

Allow B-pyramid for reference frame selection. This may not be supported on all decoders. The default is false.

b_frame_count

int32

The number of consecutive B-frames. Must be greater than or equal to zero. Must be less than gop_frame_count if set. The default is 0.

aq_strength

double

Specify the intensity of the adaptive quantizer (AQ). Must be between 0 and 1, where 0 disables the quantizer and 1 maximizes the quantizer. A higher value equals a lower bitrate but smoother image. The default is 0.

profile

string

Enforces the specified codec profile. The following profiles are supported:

  • baseline
  • main (default)
  • high

The available options are FFmpeg-compatible Profile Options. Note that certain values for this field may cause the transcoder to override other fields you set in the H264CodecSettings message.

tune

string

Enforces the specified codec tune. The available options are FFmpeg-compatible Encode Options Note that certain values for this field may cause the transcoder to override other fields you set in the H264CodecSettings message.

Union field gop_mode. GOP mode can be either by frame count or duration. gop_mode can be only one of the following:
gop_frame_count

int32

Select the GOP size based on the specified frame count. If GOP frame count is set instead of GOP duration, GOP duration will be calculated by gopFrameCount/frameRate. The calculated GOP duration must satisfy the limitations on gopDuration as well. Valid range is [60, 600].

gop_duration

Duration

Select the GOP size based on the specified duration. The default is 2s. Note that gopDuration must be less than or equal to segment_duration, and segment_duration must be divisible by gopDuration. Valid range is [2s, 20s].

All video streams in the same channel must have the same GOP size.

VideoStreamProperty

Properties of the video stream.

Fields
index

int32

Index of this video stream.

video_format

VideoFormat

Properties of the video format.