transcodeDecision

The response from the getTranscodeDecision endpoint.
{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "AwesomeServerName",
    "serverVersion": "0.1.3 (tag)",
    "openSubsonic": true,
    "transcodeDecision": {
      "canDirectPlay": false,
      "canTranscode": true,
      "transcodeReason": ["AudioCodecNotSupported"],
      "errorReason": "",
      "transcodeParams": "0001-0005-004",
      "sourceStream": {
        "protocol": "http",
        "container": "flac",
        "codec": "flac",
        "audioChannels": 6,
        "audioBitrate": 3000000,
        "audioProfile": "",
        "audioSamplerate": 96000,
        "audioBitdepth": 24
      },
      "transcodeStream": {
        "protocol": "hls",
        "container": "mp4",
        "codec": "aac",
        "audioChannels": 2,
        "audioBitrate": 256000,
        "audioProfile": "xHE-AAC",
        "audioSamplerate": 48000,
        "audioBitdepth": 16
      }
    }
  }
}
FieldTypeReq.OpenS.Details
canDirectPlaybooleanYesYesWhether the media can be played directly by the client.
canTranscodebooleanYesYesWhether the media can be transcoded by the server.
transcodeReasonstring[]NoYesAn array of reasons why transcoding is necessary. The strings are server specific made for logging purpose, the server should return 1 string per direct play profile.
errorReasonstringNoYesA description of an error that occurred.
transcodeParamsstringNoYesAn server internal value to be passed to the transcode endpoint, the value needs to be properly escaped to be reused as is in url parameter. See getTranscodeStream. The client may not use the value instantly and should be kept valid by the server for a reasonable duration if stored in memory.
sourceStreamStreamDetailsNoYesDetails about the source media stream.
transcodeStreamStreamDetailsNoYesDetails about the target transcoded stream if canTranscode is true.
Last modified July 15, 2025: Add new transcoding extension (41aa469)