# GCKMediaInformationBuilder Class

[Instance Methods](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#pub-methods) \| [Properties](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#properties) GCKMediaInformationBuilder Class Reference

## Overview

A builder object for constructing new or derived [GCKMediaInformation](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information "A class that aggregates information about a media item. ") instances.

The builder may be used to derive a [GCKMediaInformation](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information "A class that aggregates information about a media item. ") from an existing one:
[GCKMediaInformationBuilder](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder) \*builder = \[\[[GCKMediaInformationBuilder](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder) alloc\] initWithMediaInformation:originalMediaInfo\]; builder.[contentID](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a641ff57cfa0e18d99083dfcd906b68e8) = ...; // Change the content ID. builder.[streamDuration](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a15ca43fb68c5dc86b839521666f98d95) = 100; // Change the stream duration. [GCKMediaInformation](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information) \*derivedMediaInfo = \[builder [build](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a77fe1ac6a4fa8fb7b91b7b5a65b61bc9)\];

It can also be used to construct a new [GCKMediaInformation](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information "A class that aggregates information about a media item. ") from scratch:
[GCKMediaInformationBuilder](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder) \*builder = \[\[[GCKMediaInformationBuilder](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder) alloc\] initWithContentURL:...\]; builder.[contentType](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a77c36b33bd9edee01b444840f6f67d01) = ...; builder.[streamType](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#abfbcafd5c97d6d4c043d6c03ddea72c5) = ...; builder.[metadata](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#aa2bd8905c2bb67195d007cae82c6a2de) = ...; // Set all other desired propreties... [GCKMediaInformation](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information) \*newMediaInfo = \[builder [build](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a77fe1ac6a4fa8fb7b91b7b5a65b61bc9)\];

Since
:   4.0

Inherits NSObject.

|---|---|
| ## Instance Method Summary ||
| (instancetype) | - [initWithContentURL:](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#ab46151ca999aa31641b01a70a0eb1e96) |
|   | Constructs a new [GCKMediaInformationBuilder](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder "A builder object for constructing new or derived GCKMediaInformation instances. ") with the given required attributes, and all other attributes initialized to default values. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#ab46151ca999aa31641b01a70a0eb1e96) |
|   ||
| (instancetype) | - [initWithEntity:](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a288cfaa997dff9acd0eff8891ab39d74) |
|   | Constructs a new [GCKMediaInformationBuilder](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder "A builder object for constructing new or derived GCKMediaInformation instances. ") with the given required attributes, and all other attributes initialized to default values. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a288cfaa997dff9acd0eff8891ab39d74) |
|   ||
| (instancetype) | - [initWithMediaInformation:](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a42399cbb7e79eb9a1c89b91fa753fe14) |
|   | Constructs a new [GCKMediaInformationBuilder](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder "A builder object for constructing new or derived GCKMediaInformation instances. ") with attributes copied from the given [GCKMediaInformation](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information "A class that aggregates information about a media item. ") instance. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a42399cbb7e79eb9a1c89b91fa753fe14) |
|   ||
| (instancetype) | - [initWithContentID:](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#ab9042bde4db7d739942a7a97152f34a8) |
|   | Constructs a new [GCKMediaInformationBuilder](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder "A builder object for constructing new or derived GCKMediaInformation instances. ") with the given required attributes, and all other attributes initialized to default values. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#ab9042bde4db7d739942a7a97152f34a8) |
|   ||
| (instancetype) | - [initWithContentID:entity:](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#ae7ae3b7f93a20b47caba4b5c95446884) |
|   | Constructs a new [GCKMediaInformationBuilder](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder "A builder object for constructing new or derived GCKMediaInformation instances. ") with the given required attributes, and all other attributes initialized to default values. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#ae7ae3b7f93a20b47caba4b5c95446884) |
|   ||
| ([GCKMediaInformation](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information) \*) | - [build](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a77fe1ac6a4fa8fb7b91b7b5a65b61bc9) |
|   | Builds a [GCKMediaInformation](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information "A class that aggregates information about a media item. ") using the builder's current attributes. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a77fe1ac6a4fa8fb7b91b7b5a65b61bc9) |
|   ||

|---|---|
| ## Property Summary ||
| NSString \* | [contentID](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a641ff57cfa0e18d99083dfcd906b68e8) |
|   | The content ID for this stream. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a641ff57cfa0e18d99083dfcd906b68e8) |
|   ||
| NSURL \* | [contentURL](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a86b86f323cffb8c0b16aed2bac826a3a) |
|   | The URL of the content to be played. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a86b86f323cffb8c0b16aed2bac826a3a) |
|   ||
| [GCKMediaStreamType](https://developers.google.com/cast/docs/reference/ios/g_c_k_media_information_8h#ada512d5ee6ced19b871067e948aaffd3) | [streamType](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#abfbcafd5c97d6d4c043d6c03ddea72c5) |
|   | The stream type. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#abfbcafd5c97d6d4c043d6c03ddea72c5) |
|   ||
| NSString \* | [contentType](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a77c36b33bd9edee01b444840f6f67d01) |
|   | The content (MIME) type. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a77c36b33bd9edee01b444840f6f67d01) |
|   ||
| [GCKMediaMetadata](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_metadata) \* | [metadata](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#aa2bd8905c2bb67195d007cae82c6a2de) |
|   | The media item metadata. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#aa2bd8905c2bb67195d007cae82c6a2de) |
|   ||
| NSArray\< [GCKAdBreakInfo](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_ad_break_info) \* \> \* | [adBreaks](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#af0ae9f4bd089891051d5c152f8349e93) |
|   | The list of ad breaks in this content. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#af0ae9f4bd089891051d5c152f8349e93) |
|   ||
| NSArray\< [GCKAdBreakClipInfo](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_ad_break_clip_info) \* \> \* | [adBreakClips](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a0f2072d6295e3e82e351837eff118432) |
|   | The list of ad break clips in this content. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a0f2072d6295e3e82e351837eff118432) |
|   ||
| NSTimeInterval | [streamDuration](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a15ca43fb68c5dc86b839521666f98d95) |
|   | The length of the stream, in seconds, or `INFINITY` if it is a live stream. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a15ca43fb68c5dc86b839521666f98d95) |
|   ||
| NSArray\< [GCKMediaTrack](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_track) \* \> \* | [mediaTracks](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a6d12a8bea536a9d844407aa8175a89fa) |
|   | The media tracks for this stream. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a6d12a8bea536a9d844407aa8175a89fa) |
|   ||
| [GCKMediaTextTrackStyle](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_text_track_style) \* | [textTrackStyle](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a3bde7654818ad08c9d7394a101f4a590) |
|   | The text track style for this stream. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a3bde7654818ad08c9d7394a101f4a590) |
|   ||
| NSString \* | [entity](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a4488b8bd61c8bcecd01011ac6c6ed042) |
|   | The deep link for the media as used by Google Assistant, if any. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a4488b8bd61c8bcecd01011ac6c6ed042) |
|   ||
| [GCKVASTAdsRequest](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_v_a_s_t_ads_request) \* | [VMAP](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a5eea63aafd736a87d760318ed285fea6) |
|   | The VMAP request configuration if any. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a5eea63aafd736a87d760318ed285fea6) |
|   ||
| NSTimeInterval | [startAbsoluteTime](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#adb38e354e2c3bf307be08fc4ead490b9) |
|   | The start time of the stream, in seconds in epoch time, or `kGCKInvalidTimeInterval` if it is not available. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#adb38e354e2c3bf307be08fc4ead490b9) |
|   ||
| [GCKHLSSegmentFormat](https://developers.google.com/cast/docs/reference/ios/g_c_k_h_l_s_segment_format_8h#a2e7a0fabbe01b583c51dab04d512642b) | [hlsSegmentFormat](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#ae23636663ea0618ba261b54918e4961b) |
|   | The format of the HLS audio segment. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#ae23636663ea0618ba261b54918e4961b) |
|   ||
| [GCKHLSVideoSegmentFormat](https://developers.google.com/cast/docs/reference/ios/g_c_k_h_l_s_video_segment_format_8h#a43724114dd6857be31367414f0dcd8c4) | [hlsVideoSegmentFormat](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#ad5b5fb9e79e4090c801c3868b243faf7) |
|   | The format of the HLS video segment. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#ad5b5fb9e79e4090c801c3868b243faf7) |
|   ||
| id | [customData](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a01a8a942bb66eb30a826114ddb33a427) |
|   | The custom data, if any. [More...](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#a01a8a942bb66eb30a826114ddb33a427) |
|   ||

## Method Detail

|---|---|---|---|---|
| - (instancetype) initWithContentURL: |   | (NSURL \*) | *contentURL* |   |

Constructs a new [GCKMediaInformationBuilder](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder "A builder object for constructing new or derived GCKMediaInformation instances. ") with the given required attributes, and all other attributes initialized to default values.

Parameters
:

    |---|---|
    | contentURL | The URL of the content to be played. |


Since
:   4.3.4

|---|---|---|---|---|
| - (instancetype) initWithEntity: |   | (NSString \*) | *entity* |   |

Constructs a new [GCKMediaInformationBuilder](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder "A builder object for constructing new or derived GCKMediaInformation instances. ") with the given required attributes, and all other attributes initialized to default values.

|---|---|---|---|---|
| - (instancetype) initWithMediaInformation: |   | ([GCKMediaInformation](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information) \*) | *mediaInfo* |   |

Constructs a new [GCKMediaInformationBuilder](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder "A builder object for constructing new or derived GCKMediaInformation instances. ") with attributes copied from the given [GCKMediaInformation](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information "A class that aggregates information about a media item. ") instance.

Parameters
:

    |---|---|
    | mediaInfo | The instance to copy. |


|---|---|---|---|---|
| - (instancetype) initWithContentID: |   | (NSString \*) | *contentID* |   |

Constructs a new [GCKMediaInformationBuilder](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder "A builder object for constructing new or derived GCKMediaInformation instances. ") with the given required attributes, and all other attributes initialized to default values.

**[Deprecated:](https://developers.google.com/cast/docs/reference/ios/deprecated#_deprecated000020)**
:   Use initWithContentURL: or initWithEntity: instead.

|---|---|---|---|
| - (instancetype) [initWithContentID:](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder#ab9042bde4db7d739942a7a97152f34a8) |   | (NSString \*) | *contentID* |
| entity: |   | (NSString \*) | *entity* |
|   |   |   |   |

Constructs a new [GCKMediaInformationBuilder](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information_builder "A builder object for constructing new or derived GCKMediaInformation instances. ") with the given required attributes, and all other attributes initialized to default values.

**[Deprecated:](https://developers.google.com/cast/docs/reference/ios/deprecated#_deprecated000021)**
:   Use initWithContentURL: or initWithEntity: instead.

|---|---|---|---|
| - ([GCKMediaInformation](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information) \*) build |   |   |   |

Builds a [GCKMediaInformation](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information "A class that aggregates information about a media item. ") using the builder's current attributes.

Returns
:   The new [GCKMediaInformation](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_information "A class that aggregates information about a media item. ") instance.

## Property Detail

|---|---|
| |---| | - (NSString\*) contentID | | readwritenonatomiccopy |

The content ID for this stream.

**[Deprecated:](https://developers.google.com/cast/docs/reference/ios/deprecated#_deprecated000019)**
:   Use contentURL and entity instead.

|---|---|
| |---| | - (NSURL\*) contentURL | | readwritenonatomiccopy |

The URL of the content to be played.

Since
:   4.3.4

|---|---|
| |---| | - ([GCKMediaStreamType](https://developers.google.com/cast/docs/reference/ios/g_c_k_media_information_8h#ada512d5ee6ced19b871067e948aaffd3)) streamType | | readwritenonatomicassign |

The stream type.

Defaults to GCKMediaStreamTypeBuffered.

|---|---|
| |---| | - (NSString\*) contentType | | readwritenonatomiccopy |

The content (MIME) type.

|---|---|
| |---| | - ([GCKMediaMetadata](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_metadata)\*) metadata | | readwritenonatomicassign |

The media item metadata.

|---|---|
| |---| | - (NSArray\<[GCKAdBreakInfo](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_ad_break_info) \*\>\*) adBreaks | | readwritenonatomiccopy |

The list of ad breaks in this content.

|---|---|
| |---| | - (NSArray\<[GCKAdBreakClipInfo](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_ad_break_clip_info) \*\>\*) adBreakClips | | readwritenonatomiccopy |

The list of ad break clips in this content.

|---|---|
| |---| | - (NSTimeInterval) streamDuration | | readwritenonatomicassign |

The length of the stream, in seconds, or `INFINITY` if it is a live stream.

Defaults to 0.

|---|---|
| |---| | - (NSArray\<[GCKMediaTrack](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_track) \*\>\*) mediaTracks | | readwritenonatomiccopy |

The media tracks for this stream.

|---|---|
| |---| | - ([GCKMediaTextTrackStyle](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_media_text_track_style)\*) textTrackStyle | | readwritenonatomiccopy |

The text track style for this stream.

|---|---|
| |---| | - (NSString\*) entity | | readwritenonatomiccopy |

The deep link for the media as used by Google Assistant, if any.

|---|---|
| |---| | - ([GCKVASTAdsRequest](https://developers.google.com/cast/docs/reference/ios/interface_g_c_k_v_a_s_t_ads_request)\*) VMAP | | readwritenonatomicassign |

The VMAP request configuration if any.

See more here: [Digital Video Ad Serving Template 4.0](https://www.iab.com/guidelines/digital-video-ad-serving-template-vast-4-0/). If this is non-nil, all other ads related fields will be ignored.

Since
:   4.3.4

|---|---|
| |---| | - (NSTimeInterval) startAbsoluteTime | | readwritenonatomicassign |

The start time of the stream, in seconds in epoch time, or `kGCKInvalidTimeInterval` if it is not available.

Defaults to `kGCKInvalidTimeInterval`.

Since
:   4.4.1

|---|---|
| |---| | - ([GCKHLSSegmentFormat](https://developers.google.com/cast/docs/reference/ios/g_c_k_h_l_s_segment_format_8h#a2e7a0fabbe01b583c51dab04d512642b)) hlsSegmentFormat | | readwritenonatomicassign |

The format of the HLS audio segment.

Since
:   4.6.0

|---|---|
| |---| | - ([GCKHLSVideoSegmentFormat](https://developers.google.com/cast/docs/reference/ios/g_c_k_h_l_s_video_segment_format_8h#a43724114dd6857be31367414f0dcd8c4)) hlsVideoSegmentFormat | | readwritenonatomicassign |

The format of the HLS video segment.

Since
:   4.6.0

|---|---|
| |---| | - (id) customData | | readwritenonatomicassign |

The custom data, if any.