This is the multi-page printable view of this section. Click here to print.
Payloads
Payloads documentation.
1 - ClientInfo
Contains information about the client’s capabilities.
{
"name": "Play:1",
"platform": "Sonos",
"maxAudioBitrate": 512000,
"maxTranscodingAudioBitrate": 256000,
"directPlayProfiles": [
{
"containers": [ "mp3" ],
"audioCodecs": [ "mp3" ],
"protocols": [ "http" ],
"maxAudioChannels": 2
},
{
"containers": [ "flac" ],
"audioCodecs": [ "flac" ],
"protocols": [],
"maxAudioChannels": 2
}
,
{
"containers": [ "mp4" ],
"audioCodecs": [ "flac", "aac", "alac" ],
"protocols": [],
"maxAudioChannels": 2
}
],
"transcodingProfiles": [
{
"container": "mp3",
"audioCodec": "mp3",
"protocol": "http",
"maxAudioChannels": 2
},
{
"container": "flac",
"audioCodec": "flac",
"protocol": "hls",
"maxAudioChannels": 2
}
],
"codecProfiles": [
{
"type": "AudioCodec",
"name": "mp3",
"limitations": [
{ "name": "audioBitrate", "comparison": "LessThanEqual", "values": [ "320000" ], "required": true }
]
},
{
"type": "AudioCodec",
"name": "flac",
"limitations": [
{ "name": "audioSamplerate", "comparison": "LessThanEqual", "values": [ "192000" ], "required": false },
{ "name": "audioChannels", "comparison": "Equals", "values": ["1", "2" ], "required": false }
]
}
]
}| Field | Type | Req. | OpenS. | Details |
|---|---|---|---|---|
name | string | Yes | Yes | The name of the client device. |
platform | string | Yes | Yes | The platform of the client (e.g., Android, iOS). |
maxAudioBitrate | integer | No | Yes | The maximum audio bitrate the client can handle. 0 or missing means no limitation. |
maxTranscodingAudioBitrate | integer | No | Yes | The maximum audio bitrate for transcoded content. 0 or missing means no limitation. |
directPlayProfiles | DirectPlayProfile[] | No | Yes | A list of profiles for direct playback. |
transcodingProfiles | TranscodingProfile[] | No | Yes | A list of profiles for transcoding. The server should evaluate these in the order they are listed, as a priority list. |
codecProfiles | CodecProfile[] | No | Yes | A list of codec-specific profiles. |
2 - CodecProfile
Defines a codec profile with optional limitations.
{
"type": "AudioCodec",
"name": "mp3",
"limitations": [
{ "name": "audioBitrate", "comparison": "LessThanEqual", "values": ["320000"], "required": true }
]
}| Field | Type | Req. | OpenS. | Details |
|---|---|---|---|---|
type | string | Yes | Yes | The type of codec profile. Currently only AudioCodec is supported. |
name | string | Yes | Yes | The name of the codec (e.g., mp3, flac). Only a single value is accepted. |
limitations | Limitation[] | No | Yes | A list of limitations for this codec. |
3 - collectionItemID
An identifier for a collection item to be added.
Depending on the item type, either id or name must be provided.
For most types, id is the natural choice, but some types (e.g. Genre)
don’t have it, so name should be used.
{
"type": "song",
"id": "20"
}{
"type": "album",
"id": "30"
}{
"type": "genre",
"name": "vaporwave"
}| Field | Type | Req. | OpenS. | Details |
|---|---|---|---|---|
type | string | Yes | One of: song, album, artist, playlist | |
id | string | No | ID of the item, where applicable | |
name | string | No | Name of the item, where applicable |
4 - DirectPlayProfile
Defines a direct play profile.
{
"containers": [ "mp4" ],
"audioCodecs": [ "aac", "alac" ],
"protocols": [ "http" ],
"maxAudioChannels": 2
}| Field | Type | Req. | OpenS. | Details |
|---|---|---|---|---|
containers | Array of string | Yes | Yes | List of supported container format (e.g., mp3, flac, mp4). An empty array means any container. |
audioCodecs | Array of string | Yes | Yes | List of supported audio codecs. An empty array means any codec. |
protocols | Array of string | Yes | Yes | The streaming protocols. Supported values are http, hls. |
maxAudioChannels | integer | No | Yes | The maximum number of audio channels supported. |
5 - Limitation
Defines a limitation for a codec profile.
{
"name": "audioSamplerate",
"comparison": "Equals",
"values": [ "44100", "48000" ],
"required": true
}| Field | Type | Req. | OpenS. | Details |
|---|---|---|---|---|
name | string | Yes | The name of the limitation. Can be audioChannels, audioBitrate, audioProfile, audioSamplerate, or audioBitdepth. | |
comparison | string | Yes | The comparison operator. Can be Equals, NotEquals, LessThanEqual, GreaterThanEqual. | |
values | string | Yes | The values to compare against. For LessThanEqual and GreaterThanEqual, only the first value will be used. | |
required | boolean | Yes | Whether this limitation must be met. |
6 - TranscodingProfile
Defines a transcoding profile.
{
"container": "mp3",
"audioCodec": "mp3",
"protocol": "http",
"maxAudioChannels": 2
}| Field | Type | Req. | OpenS. | Details |
|---|---|---|---|---|
container | string | Yes | Yes | The container format (e.g., mp3, flac). |
audioCodec | string | Yes | Yes | The target audio codec for transcoding. |
protocol | string | Yes | Yes | The streaming protocol. Can be http or hls. |
maxAudioChannels | integer | No | Yes | The maximum number of audio channels for the transcoded stream. |