# AddDownloadQueueItemsRequest
## Example Usage
```typescript
import { AddDownloadQueueItemsRequest } from "@lukehagar/plexjs/sdk/models/operations";
import { AdvancedSubtitles, BoolInt, LocationParameter, ProtocolParameter, Subtitles } from "@lukehagar/plexjs/sdk/models/shared";
let value: AddDownloadQueueItemsRequest = {
queueId: 44894,
keys: [
"/library/metadata/3",
"/library/metadata/6",
],
advancedSubtitles: AdvancedSubtitles.Burn,
audioBoost: 50,
audioChannelCount: 5,
autoAdjustQuality: BoolInt.True,
autoAdjustSubtitle: BoolInt.True,
directPlay: BoolInt.True,
directStream: BoolInt.True,
directStreamAudio: BoolInt.True,
disableResolutionRotation: BoolInt.True,
hasMDE: BoolInt.True,
location: LocationParameter.Wan,
mediaBufferSize: 102400,
mediaIndex: 0,
musicBitrate: 5000,
offset: 90.5,
partIndex: 0,
path: "/library/metadata/151671",
peakBitrate: 12000,
photoResolution: "1080x1080",
protocol: ProtocolParameter.Dash,
secondsPerSegment: 5,
subtitleSize: 50,
subtitles: Subtitles.Sidecar,
videoBitrate: 12000,
videoQuality: 50,
videoResolution: "1080x1080",
};
```
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `accepts` | [shared.Accepts](../../../sdk/models/shared/accepts.md) | :heavy_minus_sign: | Indicates the client accepts the indicated media types | |
| `clientIdentifier` | *string* | :heavy_minus_sign: | An opaque identifier unique to the client | abc123 |
| `product` | *string* | :heavy_minus_sign: | The name of the client product | Plex for Roku |
| `version` | *string* | :heavy_minus_sign: | The version of the client application | 2.4.1 |
| `platform` | *string* | :heavy_minus_sign: | The platform of the client | Roku |
| `platformVersion` | *string* | :heavy_minus_sign: | The version of the platform | 4.3 build 1057 |
| `device` | *string* | :heavy_minus_sign: | A relatively friendly name for the client device | Roku 3 |
| `model` | *string* | :heavy_minus_sign: | A potentially less friendly identifier for the device model | 4200X |
| `deviceVendor` | *string* | :heavy_minus_sign: | The device vendor | Roku |
| `deviceName` | *string* | :heavy_minus_sign: | A friendly name for the client | Living Room TV |
| `marketplace` | *string* | :heavy_minus_sign: | The marketplace on which the client application is distributed | googlePlay |
| `queueId` | *number* | :heavy_check_mark: | The queue id | |
| `keys` | *string*[] | :heavy_check_mark: | Keys to add | [
"/library/metadata/3",
"/library/metadata/6"
] |
| `advancedSubtitles` | [shared.AdvancedSubtitles](../../../sdk/models/shared/advancedsubtitles.md) | :heavy_minus_sign: | Indicates how incompatible advanced subtitles (such as ass/ssa) should be included: * 'burn' - Burn incompatible advanced text subtitles into the video stream * 'text' - Transcode incompatible advanced text subtitles to a compatible text format, even if some markup is lost
| burn |
| `audioBoost` | *number* | :heavy_minus_sign: | Percentage of original audio loudness to use when transcoding (100 is equivalent to original volume, 50 is half, 200 is double, etc) | 50 |
| `audioChannelCount` | *number* | :heavy_minus_sign: | Target video number of audio channels. | 5 |
| `autoAdjustQuality` | [shared.BoolInt](../../../sdk/models/shared/boolint.md) | :heavy_minus_sign: | Indicates the client supports ABR. | 1 |
| `autoAdjustSubtitle` | [shared.BoolInt](../../../sdk/models/shared/boolint.md) | :heavy_minus_sign: | Indicates if the server should adjust subtitles based on Voice Activity Data. | 1 |
| `directPlay` | [shared.BoolInt](../../../sdk/models/shared/boolint.md) | :heavy_minus_sign: | Indicates the client supports direct playing the indicated content. | 1 |
| `directStream` | [shared.BoolInt](../../../sdk/models/shared/boolint.md) | :heavy_minus_sign: | Indicates the client supports direct streaming the video of the indicated content. | 1 |
| `directStreamAudio` | [shared.BoolInt](../../../sdk/models/shared/boolint.md) | :heavy_minus_sign: | Indicates the client supports direct streaming the audio of the indicated content. | 1 |
| `disableResolutionRotation` | [shared.BoolInt](../../../sdk/models/shared/boolint.md) | :heavy_minus_sign: | Indicates if resolution should be adjusted for orientation. | 1 |
| `hasMDE` | [shared.BoolInt](../../../sdk/models/shared/boolint.md) | :heavy_minus_sign: | Ignore client profiles when determining if direct play is possible. Only has an effect when directPlay=1 and both mediaIndex and partIndex are specified and neither are -1 | 1 |
| `location` | [shared.LocationParameter](../../../sdk/models/shared/locationparameter.md) | :heavy_minus_sign: | Network type of the client, can be used to help determine target bitrate. | wan |
| `mediaBufferSize` | *number* | :heavy_minus_sign: | Buffer size used in playback (in KB). Clients should specify a lower bound if not known exactly. This value could make the difference between transcoding and direct play on bandwidth constrained networks. | 102400 |
| `mediaIndex` | *number* | :heavy_minus_sign: | Index of the media to transcode. -1 or not specified indicates let the server choose. | 0 |
| `musicBitrate` | *number* | :heavy_minus_sign: | Target bitrate for audio only files (in kbps, used to transcode). | 5000 |
| `offset` | *number* | :heavy_minus_sign: | Offset from the start of the media (in seconds). | 90.5 |
| `partIndex` | *number* | :heavy_minus_sign: | Index of the part to transcode. -1 or not specified indicates the server should join parts together in a transcode | 0 |
| `path` | *string* | :heavy_minus_sign: | Internal PMS path of the media to transcode. | /library/metadata/151671 |
| `peakBitrate` | *number* | :heavy_minus_sign: | Maximum bitrate (in kbps) to use in ABR. | 12000 |
| `photoResolution` | *string* | :heavy_minus_sign: | Target photo resolution. | 1080x1080 |
| `protocol` | [shared.ProtocolParameter](../../../sdk/models/shared/protocolparameter.md) | :heavy_minus_sign: | Indicates the network streaming protocol to be used for the transcode session: * 'http' - include the file in the http response such as MKV streaming * 'hls' - hls stream (RFC 8216) * 'dash' - dash stream (ISO/IEC 23009-1:2022)
| dash |
| `secondsPerSegment` | *number* | :heavy_minus_sign: | Number of seconds to include in each transcoded segment | 5 |
| `subtitleSize` | *number* | :heavy_minus_sign: | Percentage of original subtitle size to use when burning subtitles (100 is equivalent to original size, 50 is half, ect) | 50 |
| `subtitles` | [shared.Subtitles](../../../sdk/models/shared/subtitles.md) | :heavy_minus_sign: | Indicates how subtitles should be included: * 'auto' - Compute the appropriate subtitle setting automatically * 'burn' - Burn the selected subtitle; auto if no selected subtitle * 'none' - Ignore all subtitle streams * 'sidecar' - The selected subtitle should be provided as a sidecar * 'embedded' - The selected subtitle should be provided as an embedded stream * 'segmented' - The selected subtitle should be provided as a segmented stream
| Burn |
| `videoBitrate` | *number* | :heavy_minus_sign: | Target video bitrate (in kbps). | 12000 |
| `videoQuality` | *number* | :heavy_minus_sign: | Target photo quality. | 50 |
| `videoResolution` | *string* | :heavy_minus_sign: | Target maximum video resolution. | 1080x1080 |