com.amazonaws.services.elastictranscoder.model

## Class Playlist

- java.lang.Object
- - com.amazonaws.services.elastictranscoder.model.Playlist

All Implemented Interfaces:
  Serializable, Cloneable

    public class Playlist
    extends Object
    implements Serializable, Cloneable

Use Only for Fragmented MP4 or MPEG-TS Outputs. If you specify a preset for which the value of Container is `fmp4` (Fragmented MP4) or `ts` (MPEG-TS), Playlists contains information about the master playlists that you want Elastic Transcoder to create. We recommend that you create only one master playlist per output format. The maximum number of master playlists in a job is 30.

See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`Playlist()`

### Method Summary

All Methods Instance Methods Concrete Methods
`Playlist` `clone()`
`boolean` `equals(Object obj)`
`String` `getFormat()` The format of the output playlist.
`HlsContentProtection` `getHlsContentProtection()` The HLS content protection settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.
`String` `getName()` The name that you want Elastic Transcoder to assign to the master playlist, for example, nyc-vacation.m3u8.
`List<String>` `getOutputKeys()` For each output in this job that you want to include in a master playlist, the value of the Outputs:Key object.
`PlayReadyDrm` `getPlayReadyDrm()` The DRM settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.
`String` `getStatus()` The status of the job with which the playlist is associated.
`String` `getStatusDetail()` Information that further explains the status.
`int` `hashCode()`
`void` `setFormat(String format)` The format of the output playlist.
`void` `setHlsContentProtection(HlsContentProtection hlsContentProtection)` The HLS content protection settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.
`void` `setName(String name)` The name that you want Elastic Transcoder to assign to the master playlist, for example, nyc-vacation.m3u8.
`void` `setOutputKeys(Collection<String> outputKeys)` For each output in this job that you want to include in a master playlist, the value of the Outputs:Key object.
`void` `setPlayReadyDrm(PlayReadyDrm playReadyDrm)` The DRM settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.
`void` `setStatus(String status)` The status of the job with which the playlist is associated.
`void` `setStatusDetail(String statusDetail)` Information that further explains the status.
`String` `toString()` Returns a string representation of this object; useful for testing and debugging.
`Playlist` `withFormat(String format)` The format of the output playlist.
`Playlist` `withHlsContentProtection(HlsContentProtection hlsContentProtection)` The HLS content protection settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.
`Playlist` `withName(String name)` The name that you want Elastic Transcoder to assign to the master playlist, for example, nyc-vacation.m3u8.
`Playlist` `withOutputKeys(Collection<String> outputKeys)` For each output in this job that you want to include in a master playlist, the value of the Outputs:Key object.
`Playlist` `withOutputKeys(String... outputKeys)` For each output in this job that you want to include in a master playlist, the value of the Outputs:Key object.
`Playlist` `withPlayReadyDrm(PlayReadyDrm playReadyDrm)` The DRM settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.
`Playlist` `withStatus(String status)` The status of the job with which the playlist is associated.
`Playlist` `withStatusDetail(String statusDetail)` Information that further explains the status.

### Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### Playlist

    public Playlist()

### Method Detail

#### setName

    public void setName(String name)

The name that you want Elastic Transcoder to assign to the master playlist, for example, nyc-vacation.m3u8. If the name includes a `/` character, the section of the name before the last `/` must be identical for all `Name` objects. If you create more than one master playlist, the values of all `Name` objects must be unique.

<note>

Elastic Transcoder automatically appends the relevant file extension to the file name (`.m3u8` for `HLSv3` and `HLSv4` playlists, and `.ism` and `.ismc` for `Smooth` playlists). If you include a file extension in `Name`, the file name will have two extensions.

</note>

Parameters:
  `name` - The name that you want Elastic Transcoder to assign to the master playlist, for example, nyc-vacation.m3u8. If the name includes a `/` character, the section of the name before the last `/` must be identical for all `Name` objects. If you create more than one master playlist, the values of all `Name` objects must be unique. <note>

  Elastic Transcoder automatically appends the relevant file extension to the file name (`.m3u8` for `HLSv3` and `HLSv4` playlists, and `.ism` and `.ismc` for `Smooth` playlists). If you include a file extension in `Name`, the file name will have two extensions.

#### getName

    public String getName()

The name that you want Elastic Transcoder to assign to the master playlist, for example, nyc-vacation.m3u8. If the name includes a `/` character, the section of the name before the last `/` must be identical for all `Name` objects. If you create more than one master playlist, the values of all `Name` objects must be unique.

<note>

Elastic Transcoder automatically appends the relevant file extension to the file name (`.m3u8` for `HLSv3` and `HLSv4` playlists, and `.ism` and `.ismc` for `Smooth` playlists). If you include a file extension in `Name`, the file name will have two extensions.

</note>

Returns:
  The name that you want Elastic Transcoder to assign to the master playlist, for example, nyc-vacation.m3u8. If the name includes a `/` character, the section of the name before the last `/` must be identical for all `Name` objects. If you create more than one master playlist, the values of all `Name` objects must be unique. <note>

  Elastic Transcoder automatically appends the relevant file extension to the file name (`.m3u8` for `HLSv3` and `HLSv4` playlists, and `.ism` and `.ismc` for `Smooth` playlists). If you include a file extension in `Name`, the file name will have two extensions.

#### withName

    public Playlist withName(String name)

The name that you want Elastic Transcoder to assign to the master playlist, for example, nyc-vacation.m3u8. If the name includes a `/` character, the section of the name before the last `/` must be identical for all `Name` objects. If you create more than one master playlist, the values of all `Name` objects must be unique.

<note>

Elastic Transcoder automatically appends the relevant file extension to the file name (`.m3u8` for `HLSv3` and `HLSv4` playlists, and `.ism` and `.ismc` for `Smooth` playlists). If you include a file extension in `Name`, the file name will have two extensions.

</note>

Parameters:
  `name` - The name that you want Elastic Transcoder to assign to the master playlist, for example, nyc-vacation.m3u8. If the name includes a `/` character, the section of the name before the last `/` must be identical for all `Name` objects. If you create more than one master playlist, the values of all `Name` objects must be unique. <note>

  Elastic Transcoder automatically appends the relevant file extension to the file name (`.m3u8` for `HLSv3` and `HLSv4` playlists, and `.ism` and `.ismc` for `Smooth` playlists). If you include a file extension in `Name`, the file name will have two extensions.

Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setFormat

    public void setFormat(String format)

The format of the output playlist. Valid formats include `HLSv3`, `HLSv4`, and `Smooth`.

Parameters:
  `format` - The format of the output playlist. Valid formats include `HLSv3`, `HLSv4`, and `Smooth`.

#### getFormat

    public String getFormat()

The format of the output playlist. Valid formats include `HLSv3`, `HLSv4`, and `Smooth`.

Returns:
  The format of the output playlist. Valid formats include `HLSv3`, `HLSv4`, and `Smooth`.

#### withFormat

    public Playlist withFormat(String format)

The format of the output playlist. Valid formats include `HLSv3`, `HLSv4`, and `Smooth`.

Parameters:
  `format` - The format of the output playlist. Valid formats include `HLSv3`, `HLSv4`, and `Smooth`.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### getOutputKeys

    public List<String> getOutputKeys()

For each output in this job that you want to include in a master playlist, the value of the Outputs:Key object.

- If your output is not `HLS` or does not have a segment duration set, the name of the output file is a concatenation of `OutputKeyPrefix` and `Outputs:Key`:

  OutputKeyPrefix`Outputs:Key`

- If your output is `HLSv3` and has a segment duration set, or is not included in a playlist, Elastic Transcoder creates an output playlist file with a file extension of `.m3u8`, and a series of `.ts` files that include a five-digit sequential counter beginning with 00000:

  OutputKeyPrefix`Outputs:Key`.m3u8

  OutputKeyPrefix`Outputs:Key`00000.ts

- If your output is `HLSv4`, has a segment duration set, and is included in an `HLSv4` playlist, Elastic Transcoder creates an output playlist file with a file extension of `_v4.m3u8`. If the output is video, Elastic Transcoder also creates an output file with an extension of `_iframe.m3u8`:

  OutputKeyPrefix`Outputs:Key`_v4.m3u8

  OutputKeyPrefix`Outputs:Key`_iframe.m3u8

  OutputKeyPrefix`Outputs:Key`.ts

Elastic Transcoder automatically appends the relevant file extension to the file name. If you include a file extension in Output Key, the file name will have two extensions.

If you include more than one output in a playlist, any segment duration settings, clip settings, or caption settings must be the same for all outputs in the playlist. For `Smooth` playlists, the `Audio:Profile`, `Video:Profile`, and `Video:FrameRate` to `Video:KeyframesMaxDist` ratio must be the same for all outputs.

Returns:
  For each output in this job that you want to include in a master playlist, the value of the Outputs:Key object.

  - If your output is not `HLS` or does not have a segment duration set, the name of the output file is a concatenation of `OutputKeyPrefix` and `Outputs:Key`:

    OutputKeyPrefix`Outputs:Key`

  - If your output is `HLSv3` and has a segment duration set, or is not included in a playlist, Elastic Transcoder creates an output playlist file with a file extension of `.m3u8`, and a series of `.ts` files that include a five-digit sequential counter beginning with 00000:

    OutputKeyPrefix`Outputs:Key`.m3u8

    OutputKeyPrefix`Outputs:Key`00000.ts

  - If your output is `HLSv4`, has a segment duration set, and is included in an `HLSv4` playlist, Elastic Transcoder creates an output playlist file with a file extension of `_v4.m3u8`. If the output is video, Elastic Transcoder also creates an output file with an extension of `_iframe.m3u8`:

    OutputKeyPrefix`Outputs:Key`_v4.m3u8

    OutputKeyPrefix`Outputs:Key`_iframe.m3u8

    OutputKeyPrefix`Outputs:Key`.ts

  Elastic Transcoder automatically appends the relevant file extension to the file name. If you include a file extension in Output Key, the file name will have two extensions.

  If you include more than one output in a playlist, any segment duration settings, clip settings, or caption settings must be the same for all outputs in the playlist. For `Smooth` playlists, the `Audio:Profile`, `Video:Profile`, and `Video:FrameRate` to `Video:KeyframesMaxDist` ratio must be the same for all outputs.

#### setOutputKeys

    public void setOutputKeys(Collection<String> outputKeys)

For each output in this job that you want to include in a master playlist, the value of the Outputs:Key object.

- If your output is not `HLS` or does not have a segment duration set, the name of the output file is a concatenation of `OutputKeyPrefix` and `Outputs:Key`:

  OutputKeyPrefix`Outputs:Key`

- If your output is `HLSv3` and has a segment duration set, or is not included in a playlist, Elastic Transcoder creates an output playlist file with a file extension of `.m3u8`, and a series of `.ts` files that include a five-digit sequential counter beginning with 00000:

  OutputKeyPrefix`Outputs:Key`.m3u8

  OutputKeyPrefix`Outputs:Key`00000.ts

- If your output is `HLSv4`, has a segment duration set, and is included in an `HLSv4` playlist, Elastic Transcoder creates an output playlist file with a file extension of `_v4.m3u8`. If the output is video, Elastic Transcoder also creates an output file with an extension of `_iframe.m3u8`:

  OutputKeyPrefix`Outputs:Key`_v4.m3u8

  OutputKeyPrefix`Outputs:Key`_iframe.m3u8

  OutputKeyPrefix`Outputs:Key`.ts

Elastic Transcoder automatically appends the relevant file extension to the file name. If you include a file extension in Output Key, the file name will have two extensions.

If you include more than one output in a playlist, any segment duration settings, clip settings, or caption settings must be the same for all outputs in the playlist. For `Smooth` playlists, the `Audio:Profile`, `Video:Profile`, and `Video:FrameRate` to `Video:KeyframesMaxDist` ratio must be the same for all outputs.

Parameters:
  `outputKeys` - For each output in this job that you want to include in a master playlist, the value of the Outputs:Key object.

  - If your output is not `HLS` or does not have a segment duration set, the name of the output file is a concatenation of `OutputKeyPrefix` and `Outputs:Key`:

    OutputKeyPrefix`Outputs:Key`

  - If your output is `HLSv3` and has a segment duration set, or is not included in a playlist, Elastic Transcoder creates an output playlist file with a file extension of `.m3u8`, and a series of `.ts` files that include a five-digit sequential counter beginning with 00000:

    OutputKeyPrefix`Outputs:Key`.m3u8

    OutputKeyPrefix`Outputs:Key`00000.ts

  - If your output is `HLSv4`, has a segment duration set, and is included in an `HLSv4` playlist, Elastic Transcoder creates an output playlist file with a file extension of `_v4.m3u8`. If the output is video, Elastic Transcoder also creates an output file with an extension of `_iframe.m3u8`:

    OutputKeyPrefix`Outputs:Key`_v4.m3u8

    OutputKeyPrefix`Outputs:Key`_iframe.m3u8

    OutputKeyPrefix`Outputs:Key`.ts

  Elastic Transcoder automatically appends the relevant file extension to the file name. If you include a file extension in Output Key, the file name will have two extensions.

  If you include more than one output in a playlist, any segment duration settings, clip settings, or caption settings must be the same for all outputs in the playlist. For `Smooth` playlists, the `Audio:Profile`, `Video:Profile`, and `Video:FrameRate` to `Video:KeyframesMaxDist` ratio must be the same for all outputs.

#### withOutputKeys

    public Playlist withOutputKeys(String... outputKeys)

For each output in this job that you want to include in a master playlist, the value of the Outputs:Key object.

- If your output is not `HLS` or does not have a segment duration set, the name of the output file is a concatenation of `OutputKeyPrefix` and `Outputs:Key`:

  OutputKeyPrefix`Outputs:Key`

- If your output is `HLSv3` and has a segment duration set, or is not included in a playlist, Elastic Transcoder creates an output playlist file with a file extension of `.m3u8`, and a series of `.ts` files that include a five-digit sequential counter beginning with 00000:

  OutputKeyPrefix`Outputs:Key`.m3u8

  OutputKeyPrefix`Outputs:Key`00000.ts

- If your output is `HLSv4`, has a segment duration set, and is included in an `HLSv4` playlist, Elastic Transcoder creates an output playlist file with a file extension of `_v4.m3u8`. If the output is video, Elastic Transcoder also creates an output file with an extension of `_iframe.m3u8`:

  OutputKeyPrefix`Outputs:Key`_v4.m3u8

  OutputKeyPrefix`Outputs:Key`_iframe.m3u8

  OutputKeyPrefix`Outputs:Key`.ts

Elastic Transcoder automatically appends the relevant file extension to the file name. If you include a file extension in Output Key, the file name will have two extensions.

If you include more than one output in a playlist, any segment duration settings, clip settings, or caption settings must be the same for all outputs in the playlist. For `Smooth` playlists, the `Audio:Profile`, `Video:Profile`, and `Video:FrameRate` to `Video:KeyframesMaxDist` ratio must be the same for all outputs.

NOTE: This method appends the values to the existing list (if any). Use `setOutputKeys(java.util.Collection)` or `withOutputKeys(java.util.Collection)` if you want to override the existing values.

Parameters:
  `outputKeys` - For each output in this job that you want to include in a master playlist, the value of the Outputs:Key object.

  - If your output is not `HLS` or does not have a segment duration set, the name of the output file is a concatenation of `OutputKeyPrefix` and `Outputs:Key`:

    OutputKeyPrefix`Outputs:Key`

  - If your output is `HLSv3` and has a segment duration set, or is not included in a playlist, Elastic Transcoder creates an output playlist file with a file extension of `.m3u8`, and a series of `.ts` files that include a five-digit sequential counter beginning with 00000:

    OutputKeyPrefix`Outputs:Key`.m3u8

    OutputKeyPrefix`Outputs:Key`00000.ts

  - If your output is `HLSv4`, has a segment duration set, and is included in an `HLSv4` playlist, Elastic Transcoder creates an output playlist file with a file extension of `_v4.m3u8`. If the output is video, Elastic Transcoder also creates an output file with an extension of `_iframe.m3u8`:

    OutputKeyPrefix`Outputs:Key`_v4.m3u8

    OutputKeyPrefix`Outputs:Key`_iframe.m3u8

    OutputKeyPrefix`Outputs:Key`.ts

  Elastic Transcoder automatically appends the relevant file extension to the file name. If you include a file extension in Output Key, the file name will have two extensions.

  If you include more than one output in a playlist, any segment duration settings, clip settings, or caption settings must be the same for all outputs in the playlist. For `Smooth` playlists, the `Audio:Profile`, `Video:Profile`, and `Video:FrameRate` to `Video:KeyframesMaxDist` ratio must be the same for all outputs.

Returns:
  Returns a reference to this object so that method calls can be chained together.

#### withOutputKeys

    public Playlist withOutputKeys(Collection<String> outputKeys)

For each output in this job that you want to include in a master playlist, the value of the Outputs:Key object.

- If your output is not `HLS` or does not have a segment duration set, the name of the output file is a concatenation of `OutputKeyPrefix` and `Outputs:Key`:

  OutputKeyPrefix`Outputs:Key`

- If your output is `HLSv3` and has a segment duration set, or is not included in a playlist, Elastic Transcoder creates an output playlist file with a file extension of `.m3u8`, and a series of `.ts` files that include a five-digit sequential counter beginning with 00000:

  OutputKeyPrefix`Outputs:Key`.m3u8

  OutputKeyPrefix`Outputs:Key`00000.ts

- If your output is `HLSv4`, has a segment duration set, and is included in an `HLSv4` playlist, Elastic Transcoder creates an output playlist file with a file extension of `_v4.m3u8`. If the output is video, Elastic Transcoder also creates an output file with an extension of `_iframe.m3u8`:

  OutputKeyPrefix`Outputs:Key`_v4.m3u8

  OutputKeyPrefix`Outputs:Key`_iframe.m3u8

  OutputKeyPrefix`Outputs:Key`.ts

Elastic Transcoder automatically appends the relevant file extension to the file name. If you include a file extension in Output Key, the file name will have two extensions.

If you include more than one output in a playlist, any segment duration settings, clip settings, or caption settings must be the same for all outputs in the playlist. For `Smooth` playlists, the `Audio:Profile`, `Video:Profile`, and `Video:FrameRate` to `Video:KeyframesMaxDist` ratio must be the same for all outputs.

Parameters:
  `outputKeys` - For each output in this job that you want to include in a master playlist, the value of the Outputs:Key object.

  - If your output is not `HLS` or does not have a segment duration set, the name of the output file is a concatenation of `OutputKeyPrefix` and `Outputs:Key`:

    OutputKeyPrefix`Outputs:Key`

  - If your output is `HLSv3` and has a segment duration set, or is not included in a playlist, Elastic Transcoder creates an output playlist file with a file extension of `.m3u8`, and a series of `.ts` files that include a five-digit sequential counter beginning with 00000:

    OutputKeyPrefix`Outputs:Key`.m3u8

    OutputKeyPrefix`Outputs:Key`00000.ts

  - If your output is `HLSv4`, has a segment duration set, and is included in an `HLSv4` playlist, Elastic Transcoder creates an output playlist file with a file extension of `_v4.m3u8`. If the output is video, Elastic Transcoder also creates an output file with an extension of `_iframe.m3u8`:

    OutputKeyPrefix`Outputs:Key`_v4.m3u8

    OutputKeyPrefix`Outputs:Key`_iframe.m3u8

    OutputKeyPrefix`Outputs:Key`.ts

  Elastic Transcoder automatically appends the relevant file extension to the file name. If you include a file extension in Output Key, the file name will have two extensions.

  If you include more than one output in a playlist, any segment duration settings, clip settings, or caption settings must be the same for all outputs in the playlist. For `Smooth` playlists, the `Audio:Profile`, `Video:Profile`, and `Video:FrameRate` to `Video:KeyframesMaxDist` ratio must be the same for all outputs.

Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setHlsContentProtection

    public void setHlsContentProtection(HlsContentProtection hlsContentProtection)

The HLS content protection settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.

Parameters:
  `hlsContentProtection` - The HLS content protection settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.

#### getHlsContentProtection

    public HlsContentProtection getHlsContentProtection()

The HLS content protection settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.

Returns:
  The HLS content protection settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.

#### withHlsContentProtection

    public Playlist withHlsContentProtection(HlsContentProtection hlsContentProtection)

The HLS content protection settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.

Parameters:
  `hlsContentProtection` - The HLS content protection settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setPlayReadyDrm

    public void setPlayReadyDrm(PlayReadyDrm playReadyDrm)

The DRM settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.

Parameters:
  `playReadyDrm` - The DRM settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.

#### getPlayReadyDrm

    public PlayReadyDrm getPlayReadyDrm()

The DRM settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.

Returns:
  The DRM settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.

#### withPlayReadyDrm

    public Playlist withPlayReadyDrm(PlayReadyDrm playReadyDrm)

The DRM settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.

Parameters:
  `playReadyDrm` - The DRM settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setStatus

    public void setStatus(String status)

The status of the job with which the playlist is associated.

Parameters:
  `status` - The status of the job with which the playlist is associated.

#### getStatus

    public String getStatus()

The status of the job with which the playlist is associated.

Returns:
  The status of the job with which the playlist is associated.

#### withStatus

    public Playlist withStatus(String status)

The status of the job with which the playlist is associated.

Parameters:
  `status` - The status of the job with which the playlist is associated.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setStatusDetail

    public void setStatusDetail(String statusDetail)

Information that further explains the status.

Parameters:
  `statusDetail` - Information that further explains the status.

#### getStatusDetail

    public String getStatusDetail()

Information that further explains the status.

Returns:
  Information that further explains the status.

#### withStatusDetail

    public Playlist withStatusDetail(String statusDetail)

Information that further explains the status.

Parameters:
  `statusDetail` - Information that further explains the status.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### toString

    public String toString()

Returns a string representation of this object; useful for testing and debugging.

Overrides:
  `toString` in class `Object`
Returns:
  A string representation of this object.
See Also:
  `Object.toString()`

#### equals

    public boolean equals(Object obj)

Overrides:
  `equals` in class `Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Object`

#### clone

    public Playlist clone()

Overrides:
  `clone` in class `Object`