[10.6 NIGHTLY] API inconsistency between stable in Sessions endpoint #1827

Closed
opened 2025-12-21 19:31:37 +01:00 by backuprepo · 0 comments
Owner

Originally created by @ferferga on GitHub (Jun 24, 2020).

There are some changes in the Sessions endpoint that are breaking for clients:

What is changed

So far, the changes that are breaking client are:

  • No ServerId field.
  • No SupportedCommands under the session object. They are now under Capabilities

Additional context
Although the SupportedCommands is under Capabilities (which is something that makes sense), we shouldn't delete the original fields. Once we rework the API in 11, we can deprecate the one that it's not under Capabilities. We're already using the new one in Web (see jellyfin/jellyfin-web#1430) but we don't know of other clients that are using our API.

Both responses received from Web client built from current master

Stable response:

{
  "PlayState": {
    "CanSeek": false,
    "IsPaused": false,
    "IsMuted": false,
    "RepeatMode": "RepeatNone"
  },
  "AdditionalUsers": [],
  "Capabilities": {
    "Id": "f9ed282920f757b49fc45c964667da64",
    "PlayableMediaTypes": [
      "Audio",
      "Video"
    ],
    "SupportedCommands": [
      "MoveUp",
      "MoveDown",
      "MoveLeft",
      "MoveRight",
      "PageUp",
      "PageDown",
      "PreviousLetter",
      "NextLetter",
      "ToggleOsd",
      "ToggleContextMenu",
      "Select",
      "Back",
      "SendKey",
      "SendString",
      "GoHome",
      "GoToSettings",
      "VolumeUp",
      "VolumeDown",
      "Mute",
      "Unmute",
      "ToggleMute",
      "SetVolume",
      "SetAudioStreamIndex",
      "SetSubtitleStreamIndex",
      "DisplayContent",
      "GoToSearch",
      "DisplayMessage",
      "SetRepeatMode",
      "SetShuffleQueue",
      "ChannelUp",
      "ChannelDown",
      "PlayMediaSource",
      "PlayTrailers"
    ],
    "SupportsMediaControl": true,
    "SupportsContentUploading": false,
    "SupportsPersistentIdentifier": false,
    "SupportsSync": false,
    "DeviceProfile": {
      "EnableAlbumArtInDidl": false,
      "EnableSingleAlbumArtLimit": false,
      "EnableSingleSubtitleLimit": false,
      "SupportedMediaTypes": "Audio,Photo,Video",
      "MaxAlbumArtWidth": 0,
      "MaxAlbumArtHeight": 0,
      "MaxStreamingBitrate": 120000000,
      "MaxStaticBitrate": 100000000,
      "MusicStreamingTranscodingBitrate": 192000,
      "MaxStaticMusicBitrate": 320000,
      "TimelineOffsetSeconds": 0,
      "RequiresPlainVideoItems": false,
      "RequiresPlainFolders": false,
      "EnableMSMediaReceiverRegistrar": false,
      "IgnoreTranscodeByteRangeRequests": false,
      "XmlRootAttributes": [],
      "DirectPlayProfiles": [
        {
          "Container": "webm",
          "AudioCodec": "vorbis,opus",
          "VideoCodec": "vp8,vp9,av1",
          "Type": "Video"
        },
        {
          "Container": "mp4,m4v",
          "AudioCodec": "mp3,aac,opus,flac,vorbis",
          "VideoCodec": "h264,vp8,vp9,av1",
          "Type": "Video"
        },
        {
          "Container": "opus",
          "Type": "Audio"
        },
        {
          "Container": "mp3",
          "AudioCodec": "mp3",
          "Type": "Audio"
        },
        {
          "Container": "aac",
          "Type": "Audio"
        },
        {
          "Container": "m4a,m4b",
          "AudioCodec": "aac",
          "Type": "Audio"
        },
        {
          "Container": "flac",
          "Type": "Audio"
        },
        {
          "Container": "webma,webm",
          "Type": "Audio"
        },
        {
          "Container": "wav",
          "Type": "Audio"
        },
        {
          "Container": "ogg",
          "Type": "Audio"
        }
      ],
      "TranscodingProfiles": [
        {
          "Container": "ts",
          "Type": "Audio",
          "AudioCodec": "aac",
          "Protocol": "hls",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Streaming",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 1,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": true
        },
        {
          "Container": "aac",
          "Type": "Audio",
          "AudioCodec": "aac",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Streaming",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        },
        {
          "Container": "mp3",
          "Type": "Audio",
          "AudioCodec": "mp3",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Streaming",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        },
        {
          "Container": "opus",
          "Type": "Audio",
          "AudioCodec": "opus",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Streaming",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        },
        {
          "Container": "wav",
          "Type": "Audio",
          "AudioCodec": "wav",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Streaming",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        },
        {
          "Container": "opus",
          "Type": "Audio",
          "AudioCodec": "opus",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Static",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        },
        {
          "Container": "mp3",
          "Type": "Audio",
          "AudioCodec": "mp3",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Static",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        },
        {
          "Container": "aac",
          "Type": "Audio",
          "AudioCodec": "aac",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Static",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        },
        {
          "Container": "wav",
          "Type": "Audio",
          "AudioCodec": "wav",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Static",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        },
        {
          "Container": "ts",
          "Type": "Video",
          "VideoCodec": "h264",
          "AudioCodec": "mp3,aac,opus",
          "Protocol": "hls",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Streaming",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 1,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": true
        },
        {
          "Container": "webm",
          "Type": "Video",
          "VideoCodec": "vpx",
          "AudioCodec": "vorbis",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Streaming",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        },
        {
          "Container": "mp4",
          "Type": "Video",
          "VideoCodec": "h264",
          "AudioCodec": "mp3,aac,opus,flac,vorbis",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Static",
          "EnableSubtitlesInManifest": false,
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        }
      ],
      "ContainerProfiles": [],
      "CodecProfiles": [
        {
          "Type": "VideoAudio",
          "Conditions": [
            {
              "Condition": "Equals",
              "Property": "IsSecondaryAudio",
              "Value": "false",
              "IsRequired": false
            }
          ],
          "ApplyConditions": [],
          "Codec": "aac"
        },
        {
          "Type": "VideoAudio",
          "Conditions": [
            {
              "Condition": "Equals",
              "Property": "IsSecondaryAudio",
              "Value": "false",
              "IsRequired": false
            }
          ],
          "ApplyConditions": []
        },
        {
          "Type": "Video",
          "Conditions": [
            {
              "Condition": "NotEquals",
              "Property": "IsAnamorphic",
              "Value": "true",
              "IsRequired": false
            },
            {
              "Condition": "EqualsAny",
              "Property": "VideoProfile",
              "Value": "high|main|baseline|constrained baseline",
              "IsRequired": false
            },
            {
              "Condition": "LessThanEqual",
              "Property": "VideoLevel",
              "Value": "51",
              "IsRequired": false
            },
            {
              "Condition": "NotEquals",
              "Property": "IsInterlaced",
              "Value": "true",
              "IsRequired": false
            }
          ],
          "ApplyConditions": [],
          "Codec": "h264"
        }
      ],
      "ResponseProfiles": [
        {
          "Container": "m4v",
          "Type": "Video",
          "MimeType": "video/mp4",
          "Conditions": []
        }
      ],
      "SubtitleProfiles": [
        {
          "Format": "vtt",
          "Method": "External"
        }
      ]
    }
  },
  "RemoteEndPoint": "192.168.0.204",
  "PlayableMediaTypes": [
    "Audio",
    "Video"
  ],
  "Id": "f9ed282920f757b49fc45c964667da64",
  "UserId": "59ea9b0cfd474351842951d7ea853902",
  "UserName": "ferferga",
  "Client": "Jellyfin Web",
  "LastActivityDate": "2020-06-24T07:43:12.7270783Z",
  "LastPlaybackCheckIn": "0001-01-01T00:00:00.0000000Z",
  "DeviceName": "Firefox",
  "DeviceId": "TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NDsgcnY6NzcuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC83Ny4wfDE1OTI5ODQyNzMxNDM1",
  "ApplicationVersion": "10.6.0",
  "SupportedCommands": [
    "MoveUp",
    "MoveDown",
    "MoveLeft",
    "MoveRight",
    "PageUp",
    "PageDown",
    "PreviousLetter",
    "NextLetter",
    "ToggleOsd",
    "ToggleContextMenu",
    "Select",
    "Back",
    "SendKey",
    "SendString",
    "GoHome",
    "GoToSettings",
    "VolumeUp",
    "VolumeDown",
    "Mute",
    "Unmute",
    "ToggleMute",
    "SetVolume",
    "SetAudioStreamIndex",
    "SetSubtitleStreamIndex",
    "DisplayContent",
    "GoToSearch",
    "DisplayMessage",
    "SetRepeatMode",
    "SetShuffleQueue",
    "ChannelUp",
    "ChannelDown",
    "PlayMediaSource",
    "PlayTrailers"
  ],
  "IsActive": true,
  "SupportsMediaControl": true,
  "SupportsRemoteControl": true,
  "HasCustomDeviceName": false,
  "ServerId": "606da8b7723140acb254516dc8fbe948",
  "UserPrimaryImageTag": "a7838e350219ed96490bcb7e3cd75aff"
}

Nightly response:

{
  "PlayState": {
    "PositionTicks": null,
    "CanSeek": false,
    "IsPaused": false,
    "IsMuted": false,
    "VolumeLevel": null,
    "AudioStreamIndex": null,
    "SubtitleStreamIndex": null,
    "MediaSourceId": null,
    "PlayMethod": null,
    "RepeatMode": "RepeatNone"
  },
  "AdditionalUsers": [],
  "Capabilities": {
    "PlayableMediaTypes": [
      "Audio",
      "Video"
    ],
    "SupportedCommands": [
      "MoveUp",
      "MoveDown",
      "MoveLeft",
      "MoveRight",
      "PageUp",
      "PageDown",
      "PreviousLetter",
      "NextLetter",
      "ToggleOsd",
      "ToggleContextMenu",
      "Select",
      "Back",
      "SendKey",
      "SendString",
      "GoHome",
      "GoToSettings",
      "VolumeUp",
      "VolumeDown",
      "Mute",
      "Unmute",
      "ToggleMute",
      "SetVolume",
      "SetAudioStreamIndex",
      "SetSubtitleStreamIndex",
      "DisplayContent",
      "GoToSearch",
      "DisplayMessage",
      "SetRepeatMode",
      "SetShuffleQueue",
      "ChannelUp",
      "ChannelDown",
      "PlayMediaSource",
      "PlayTrailers"
    ],
    "SupportsMediaControl": true,
    "SupportsContentUploading": false,
    "MessageCallbackUrl": null,
    "SupportsPersistentIdentifier": false,
    "SupportsSync": false,
    "DeviceProfile": {
      "Name": null,
      "Id": null,
      "Identification": null,
      "FriendlyName": null,
      "Manufacturer": null,
      "ManufacturerUrl": null,
      "ModelName": null,
      "ModelDescription": null,
      "ModelNumber": null,
      "ModelUrl": null,
      "SerialNumber": null,
      "EnableAlbumArtInDidl": false,
      "EnableSingleAlbumArtLimit": false,
      "EnableSingleSubtitleLimit": false,
      "SupportedMediaTypes": "Audio,Photo,Video",
      "UserId": null,
      "AlbumArtPn": null,
      "MaxAlbumArtWidth": 0,
      "MaxAlbumArtHeight": 0,
      "MaxIconWidth": null,
      "MaxIconHeight": null,
      "MaxStreamingBitrate": 120000000,
      "MaxStaticBitrate": 100000000,
      "MusicStreamingTranscodingBitrate": 192000,
      "MaxStaticMusicBitrate": 320000,
      "SonyAggregationFlags": null,
      "ProtocolInfo": null,
      "TimelineOffsetSeconds": 0,
      "RequiresPlainVideoItems": false,
      "RequiresPlainFolders": false,
      "EnableMSMediaReceiverRegistrar": false,
      "IgnoreTranscodeByteRangeRequests": false,
      "XmlRootAttributes": [],
      "DirectPlayProfiles": [
        {
          "Container": "webm",
          "AudioCodec": "vorbis,opus",
          "VideoCodec": "vp8,vp9,av1",
          "Type": "Video"
        },
        {
          "Container": "mp4,m4v",
          "AudioCodec": "mp3,aac,opus,flac,vorbis",
          "VideoCodec": "h264,vp8,vp9,av1",
          "Type": "Video"
        },
        {
          "Container": "mov",
          "AudioCodec": "mp3,aac,opus,flac,vorbis",
          "VideoCodec": "h264",
          "Type": "Video"
        },
        {
          "Container": "opus",
          "AudioCodec": null,
          "VideoCodec": null,
          "Type": "Audio"
        },
        {
          "Container": "mp3",
          "AudioCodec": "mp3",
          "VideoCodec": null,
          "Type": "Audio"
        },
        {
          "Container": "aac",
          "AudioCodec": null,
          "VideoCodec": null,
          "Type": "Audio"
        },
        {
          "Container": "m4a,m4b",
          "AudioCodec": "aac",
          "VideoCodec": null,
          "Type": "Audio"
        },
        {
          "Container": "flac",
          "AudioCodec": null,
          "VideoCodec": null,
          "Type": "Audio"
        },
        {
          "Container": "webma,webm",
          "AudioCodec": null,
          "VideoCodec": null,
          "Type": "Audio"
        },
        {
          "Container": "wav",
          "AudioCodec": null,
          "VideoCodec": null,
          "Type": "Audio"
        },
        {
          "Container": "ogg",
          "AudioCodec": null,
          "VideoCodec": null,
          "Type": "Audio"
        }
      ],
      "TranscodingProfiles": [
        {
          "Container": "ts",
          "Type": "Audio",
          "VideoCodec": null,
          "AudioCodec": "aac",
          "Protocol": "hls",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Streaming",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 1,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": true
        },
        {
          "Container": "aac",
          "Type": "Audio",
          "VideoCodec": null,
          "AudioCodec": "aac",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Streaming",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        },
        {
          "Container": "mp3",
          "Type": "Audio",
          "VideoCodec": null,
          "AudioCodec": "mp3",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Streaming",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        },
        {
          "Container": "opus",
          "Type": "Audio",
          "VideoCodec": null,
          "AudioCodec": "opus",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Streaming",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        },
        {
          "Container": "wav",
          "Type": "Audio",
          "VideoCodec": null,
          "AudioCodec": "wav",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Streaming",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        },
        {
          "Container": "opus",
          "Type": "Audio",
          "VideoCodec": null,
          "AudioCodec": "opus",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Static",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        },
        {
          "Container": "mp3",
          "Type": "Audio",
          "VideoCodec": null,
          "AudioCodec": "mp3",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Static",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        },
        {
          "Container": "aac",
          "Type": "Audio",
          "VideoCodec": null,
          "AudioCodec": "aac",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Static",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        },
        {
          "Container": "wav",
          "Type": "Audio",
          "VideoCodec": null,
          "AudioCodec": "wav",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Static",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        },
        {
          "Container": "ts",
          "Type": "Video",
          "VideoCodec": "h264",
          "AudioCodec": "mp3,aac,opus",
          "Protocol": "hls",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Streaming",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 1,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": true
        },
        {
          "Container": "webm",
          "Type": "Video",
          "VideoCodec": "vpx",
          "AudioCodec": "vorbis",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Streaming",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": "2",
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        },
        {
          "Container": "mp4",
          "Type": "Video",
          "VideoCodec": "h264",
          "AudioCodec": "mp3,aac,opus,flac,vorbis",
          "Protocol": "http",
          "EstimateContentLength": false,
          "EnableMpegtsM2TsMode": false,
          "TranscodeSeekInfo": "Auto",
          "CopyTimestamps": false,
          "Context": "Static",
          "EnableSubtitlesInManifest": false,
          "MaxAudioChannels": null,
          "MinSegments": 0,
          "SegmentLength": 0,
          "BreakOnNonKeyFrames": false
        }
      ],
      "ContainerProfiles": [],
      "CodecProfiles": [
        {
          "Type": "VideoAudio",
          "Conditions": [
            {
              "Condition": "Equals",
              "Property": "IsSecondaryAudio",
              "Value": "false",
              "IsRequired": false
            }
          ],
          "ApplyConditions": [],
          "Codec": "aac",
          "Container": null
        },
        {
          "Type": "VideoAudio",
          "Conditions": [
            {
              "Condition": "Equals",
              "Property": "IsSecondaryAudio",
              "Value": "false",
              "IsRequired": false
            }
          ],
          "ApplyConditions": [],
          "Codec": null,
          "Container": null
        },
        {
          "Type": "Video",
          "Conditions": [
            {
              "Condition": "NotEquals",
              "Property": "IsAnamorphic",
              "Value": "true",
              "IsRequired": false
            },
            {
              "Condition": "EqualsAny",
              "Property": "VideoProfile",
              "Value": "high|main|baseline|constrained baseline|high 10",
              "IsRequired": false
            },
            {
              "Condition": "LessThanEqual",
              "Property": "VideoLevel",
              "Value": "51",
              "IsRequired": false
            },
            {
              "Condition": "NotEquals",
              "Property": "IsInterlaced",
              "Value": "true",
              "IsRequired": false
            }
          ],
          "ApplyConditions": [],
          "Codec": "h264",
          "Container": null
        }
      ],
      "ResponseProfiles": [
        {
          "Container": "m4v",
          "AudioCodec": null,
          "VideoCodec": null,
          "Type": "Video",
          "OrgPn": null,
          "MimeType": "video/mp4",
          "Conditions": []
        }
      ],
      "SubtitleProfiles": [
        {
          "Format": "vtt",
          "Method": "External",
          "DidlMode": null,
          "Language": null,
          "Container": null
        }
      ]
    },
    "AppStoreUrl": null,
    "IconUrl": null
  },
  "RemoteEndPoint": "192.168.0.204",
  "PlayableMediaTypes": [
    "Audio",
    "Video"
  ],
  "Id": "df68a9a68c62b2cc7d9e7b9bb7d914b1",
  "UserId": "59ea9b0c-fd47-4351-8429-51d7ea853902",
  "UserName": "ferferga",
  "Client": "Jellyfin Web",
  "LastActivityDate": "2020-06-24T07:46:52.0634577Z",
  "LastPlaybackCheckIn": "0001-01-01T00:00:00",
  "DeviceName": "Chrome",
  "NowPlayingItem": null,
  "FullNowPlayingItem": null,
  "NowViewingItem": null,
  "DeviceId": "TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzgzLjAuNDEwMy4xMTYgU2FmYXJpLzUzNy4zNnwxNTkyOTg0NzYxNzg0",
  "ApplicationVersion": "10.6.0",
  "TranscodingInfo": null,
  "IsActive": true,
  "SupportsMediaControl": true,
  "SupportsRemoteControl": true,
  "NowPlayingQueue": null,
  "HasCustomDeviceName": false,
  "PlaylistItemId": null,
  "UserPrimaryImageTag": "ec140ddfe402d6b2ec6327b2b14b7d45"
}
Originally created by @ferferga on GitHub (Jun 24, 2020). There are some changes in the Sessions endpoint that are breaking for clients: **What is changed** So far, the changes that are breaking client are: * No ``ServerId`` field. * No ``SupportedCommands`` under the session object. They are now under ``Capabilities`` **Additional context** Although the ``SupportedCommands`` is under ``Capabilities`` (which is something that makes sense), we shouldn't delete the original fields. Once we rework the API in 11, we can deprecate the one that it's not under ``Capabilities``. We're already using the new one in Web (see jellyfin/jellyfin-web#1430) but we don't know of other clients that are using our API. ### Both responses received from Web client built from current master **Stable response**: ``` { "PlayState": { "CanSeek": false, "IsPaused": false, "IsMuted": false, "RepeatMode": "RepeatNone" }, "AdditionalUsers": [], "Capabilities": { "Id": "f9ed282920f757b49fc45c964667da64", "PlayableMediaTypes": [ "Audio", "Video" ], "SupportedCommands": [ "MoveUp", "MoveDown", "MoveLeft", "MoveRight", "PageUp", "PageDown", "PreviousLetter", "NextLetter", "ToggleOsd", "ToggleContextMenu", "Select", "Back", "SendKey", "SendString", "GoHome", "GoToSettings", "VolumeUp", "VolumeDown", "Mute", "Unmute", "ToggleMute", "SetVolume", "SetAudioStreamIndex", "SetSubtitleStreamIndex", "DisplayContent", "GoToSearch", "DisplayMessage", "SetRepeatMode", "SetShuffleQueue", "ChannelUp", "ChannelDown", "PlayMediaSource", "PlayTrailers" ], "SupportsMediaControl": true, "SupportsContentUploading": false, "SupportsPersistentIdentifier": false, "SupportsSync": false, "DeviceProfile": { "EnableAlbumArtInDidl": false, "EnableSingleAlbumArtLimit": false, "EnableSingleSubtitleLimit": false, "SupportedMediaTypes": "Audio,Photo,Video", "MaxAlbumArtWidth": 0, "MaxAlbumArtHeight": 0, "MaxStreamingBitrate": 120000000, "MaxStaticBitrate": 100000000, "MusicStreamingTranscodingBitrate": 192000, "MaxStaticMusicBitrate": 320000, "TimelineOffsetSeconds": 0, "RequiresPlainVideoItems": false, "RequiresPlainFolders": false, "EnableMSMediaReceiverRegistrar": false, "IgnoreTranscodeByteRangeRequests": false, "XmlRootAttributes": [], "DirectPlayProfiles": [ { "Container": "webm", "AudioCodec": "vorbis,opus", "VideoCodec": "vp8,vp9,av1", "Type": "Video" }, { "Container": "mp4,m4v", "AudioCodec": "mp3,aac,opus,flac,vorbis", "VideoCodec": "h264,vp8,vp9,av1", "Type": "Video" }, { "Container": "opus", "Type": "Audio" }, { "Container": "mp3", "AudioCodec": "mp3", "Type": "Audio" }, { "Container": "aac", "Type": "Audio" }, { "Container": "m4a,m4b", "AudioCodec": "aac", "Type": "Audio" }, { "Container": "flac", "Type": "Audio" }, { "Container": "webma,webm", "Type": "Audio" }, { "Container": "wav", "Type": "Audio" }, { "Container": "ogg", "Type": "Audio" } ], "TranscodingProfiles": [ { "Container": "ts", "Type": "Audio", "AudioCodec": "aac", "Protocol": "hls", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 1, "SegmentLength": 0, "BreakOnNonKeyFrames": true }, { "Container": "aac", "Type": "Audio", "AudioCodec": "aac", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false }, { "Container": "mp3", "Type": "Audio", "AudioCodec": "mp3", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false }, { "Container": "opus", "Type": "Audio", "AudioCodec": "opus", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false }, { "Container": "wav", "Type": "Audio", "AudioCodec": "wav", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false }, { "Container": "opus", "Type": "Audio", "AudioCodec": "opus", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Static", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false }, { "Container": "mp3", "Type": "Audio", "AudioCodec": "mp3", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Static", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false }, { "Container": "aac", "Type": "Audio", "AudioCodec": "aac", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Static", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false }, { "Container": "wav", "Type": "Audio", "AudioCodec": "wav", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Static", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false }, { "Container": "ts", "Type": "Video", "VideoCodec": "h264", "AudioCodec": "mp3,aac,opus", "Protocol": "hls", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 1, "SegmentLength": 0, "BreakOnNonKeyFrames": true }, { "Container": "webm", "Type": "Video", "VideoCodec": "vpx", "AudioCodec": "vorbis", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false }, { "Container": "mp4", "Type": "Video", "VideoCodec": "h264", "AudioCodec": "mp3,aac,opus,flac,vorbis", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Static", "EnableSubtitlesInManifest": false, "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false } ], "ContainerProfiles": [], "CodecProfiles": [ { "Type": "VideoAudio", "Conditions": [ { "Condition": "Equals", "Property": "IsSecondaryAudio", "Value": "false", "IsRequired": false } ], "ApplyConditions": [], "Codec": "aac" }, { "Type": "VideoAudio", "Conditions": [ { "Condition": "Equals", "Property": "IsSecondaryAudio", "Value": "false", "IsRequired": false } ], "ApplyConditions": [] }, { "Type": "Video", "Conditions": [ { "Condition": "NotEquals", "Property": "IsAnamorphic", "Value": "true", "IsRequired": false }, { "Condition": "EqualsAny", "Property": "VideoProfile", "Value": "high|main|baseline|constrained baseline", "IsRequired": false }, { "Condition": "LessThanEqual", "Property": "VideoLevel", "Value": "51", "IsRequired": false }, { "Condition": "NotEquals", "Property": "IsInterlaced", "Value": "true", "IsRequired": false } ], "ApplyConditions": [], "Codec": "h264" } ], "ResponseProfiles": [ { "Container": "m4v", "Type": "Video", "MimeType": "video/mp4", "Conditions": [] } ], "SubtitleProfiles": [ { "Format": "vtt", "Method": "External" } ] } }, "RemoteEndPoint": "192.168.0.204", "PlayableMediaTypes": [ "Audio", "Video" ], "Id": "f9ed282920f757b49fc45c964667da64", "UserId": "59ea9b0cfd474351842951d7ea853902", "UserName": "ferferga", "Client": "Jellyfin Web", "LastActivityDate": "2020-06-24T07:43:12.7270783Z", "LastPlaybackCheckIn": "0001-01-01T00:00:00.0000000Z", "DeviceName": "Firefox", "DeviceId": "TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NDsgcnY6NzcuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC83Ny4wfDE1OTI5ODQyNzMxNDM1", "ApplicationVersion": "10.6.0", "SupportedCommands": [ "MoveUp", "MoveDown", "MoveLeft", "MoveRight", "PageUp", "PageDown", "PreviousLetter", "NextLetter", "ToggleOsd", "ToggleContextMenu", "Select", "Back", "SendKey", "SendString", "GoHome", "GoToSettings", "VolumeUp", "VolumeDown", "Mute", "Unmute", "ToggleMute", "SetVolume", "SetAudioStreamIndex", "SetSubtitleStreamIndex", "DisplayContent", "GoToSearch", "DisplayMessage", "SetRepeatMode", "SetShuffleQueue", "ChannelUp", "ChannelDown", "PlayMediaSource", "PlayTrailers" ], "IsActive": true, "SupportsMediaControl": true, "SupportsRemoteControl": true, "HasCustomDeviceName": false, "ServerId": "606da8b7723140acb254516dc8fbe948", "UserPrimaryImageTag": "a7838e350219ed96490bcb7e3cd75aff" } ``` **Nightly response**: ``` { "PlayState": { "PositionTicks": null, "CanSeek": false, "IsPaused": false, "IsMuted": false, "VolumeLevel": null, "AudioStreamIndex": null, "SubtitleStreamIndex": null, "MediaSourceId": null, "PlayMethod": null, "RepeatMode": "RepeatNone" }, "AdditionalUsers": [], "Capabilities": { "PlayableMediaTypes": [ "Audio", "Video" ], "SupportedCommands": [ "MoveUp", "MoveDown", "MoveLeft", "MoveRight", "PageUp", "PageDown", "PreviousLetter", "NextLetter", "ToggleOsd", "ToggleContextMenu", "Select", "Back", "SendKey", "SendString", "GoHome", "GoToSettings", "VolumeUp", "VolumeDown", "Mute", "Unmute", "ToggleMute", "SetVolume", "SetAudioStreamIndex", "SetSubtitleStreamIndex", "DisplayContent", "GoToSearch", "DisplayMessage", "SetRepeatMode", "SetShuffleQueue", "ChannelUp", "ChannelDown", "PlayMediaSource", "PlayTrailers" ], "SupportsMediaControl": true, "SupportsContentUploading": false, "MessageCallbackUrl": null, "SupportsPersistentIdentifier": false, "SupportsSync": false, "DeviceProfile": { "Name": null, "Id": null, "Identification": null, "FriendlyName": null, "Manufacturer": null, "ManufacturerUrl": null, "ModelName": null, "ModelDescription": null, "ModelNumber": null, "ModelUrl": null, "SerialNumber": null, "EnableAlbumArtInDidl": false, "EnableSingleAlbumArtLimit": false, "EnableSingleSubtitleLimit": false, "SupportedMediaTypes": "Audio,Photo,Video", "UserId": null, "AlbumArtPn": null, "MaxAlbumArtWidth": 0, "MaxAlbumArtHeight": 0, "MaxIconWidth": null, "MaxIconHeight": null, "MaxStreamingBitrate": 120000000, "MaxStaticBitrate": 100000000, "MusicStreamingTranscodingBitrate": 192000, "MaxStaticMusicBitrate": 320000, "SonyAggregationFlags": null, "ProtocolInfo": null, "TimelineOffsetSeconds": 0, "RequiresPlainVideoItems": false, "RequiresPlainFolders": false, "EnableMSMediaReceiverRegistrar": false, "IgnoreTranscodeByteRangeRequests": false, "XmlRootAttributes": [], "DirectPlayProfiles": [ { "Container": "webm", "AudioCodec": "vorbis,opus", "VideoCodec": "vp8,vp9,av1", "Type": "Video" }, { "Container": "mp4,m4v", "AudioCodec": "mp3,aac,opus,flac,vorbis", "VideoCodec": "h264,vp8,vp9,av1", "Type": "Video" }, { "Container": "mov", "AudioCodec": "mp3,aac,opus,flac,vorbis", "VideoCodec": "h264", "Type": "Video" }, { "Container": "opus", "AudioCodec": null, "VideoCodec": null, "Type": "Audio" }, { "Container": "mp3", "AudioCodec": "mp3", "VideoCodec": null, "Type": "Audio" }, { "Container": "aac", "AudioCodec": null, "VideoCodec": null, "Type": "Audio" }, { "Container": "m4a,m4b", "AudioCodec": "aac", "VideoCodec": null, "Type": "Audio" }, { "Container": "flac", "AudioCodec": null, "VideoCodec": null, "Type": "Audio" }, { "Container": "webma,webm", "AudioCodec": null, "VideoCodec": null, "Type": "Audio" }, { "Container": "wav", "AudioCodec": null, "VideoCodec": null, "Type": "Audio" }, { "Container": "ogg", "AudioCodec": null, "VideoCodec": null, "Type": "Audio" } ], "TranscodingProfiles": [ { "Container": "ts", "Type": "Audio", "VideoCodec": null, "AudioCodec": "aac", "Protocol": "hls", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 1, "SegmentLength": 0, "BreakOnNonKeyFrames": true }, { "Container": "aac", "Type": "Audio", "VideoCodec": null, "AudioCodec": "aac", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false }, { "Container": "mp3", "Type": "Audio", "VideoCodec": null, "AudioCodec": "mp3", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false }, { "Container": "opus", "Type": "Audio", "VideoCodec": null, "AudioCodec": "opus", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false }, { "Container": "wav", "Type": "Audio", "VideoCodec": null, "AudioCodec": "wav", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false }, { "Container": "opus", "Type": "Audio", "VideoCodec": null, "AudioCodec": "opus", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Static", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false }, { "Container": "mp3", "Type": "Audio", "VideoCodec": null, "AudioCodec": "mp3", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Static", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false }, { "Container": "aac", "Type": "Audio", "VideoCodec": null, "AudioCodec": "aac", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Static", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false }, { "Container": "wav", "Type": "Audio", "VideoCodec": null, "AudioCodec": "wav", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Static", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false }, { "Container": "ts", "Type": "Video", "VideoCodec": "h264", "AudioCodec": "mp3,aac,opus", "Protocol": "hls", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 1, "SegmentLength": 0, "BreakOnNonKeyFrames": true }, { "Container": "webm", "Type": "Video", "VideoCodec": "vpx", "AudioCodec": "vorbis", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false }, { "Container": "mp4", "Type": "Video", "VideoCodec": "h264", "AudioCodec": "mp3,aac,opus,flac,vorbis", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Static", "EnableSubtitlesInManifest": false, "MaxAudioChannels": null, "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false } ], "ContainerProfiles": [], "CodecProfiles": [ { "Type": "VideoAudio", "Conditions": [ { "Condition": "Equals", "Property": "IsSecondaryAudio", "Value": "false", "IsRequired": false } ], "ApplyConditions": [], "Codec": "aac", "Container": null }, { "Type": "VideoAudio", "Conditions": [ { "Condition": "Equals", "Property": "IsSecondaryAudio", "Value": "false", "IsRequired": false } ], "ApplyConditions": [], "Codec": null, "Container": null }, { "Type": "Video", "Conditions": [ { "Condition": "NotEquals", "Property": "IsAnamorphic", "Value": "true", "IsRequired": false }, { "Condition": "EqualsAny", "Property": "VideoProfile", "Value": "high|main|baseline|constrained baseline|high 10", "IsRequired": false }, { "Condition": "LessThanEqual", "Property": "VideoLevel", "Value": "51", "IsRequired": false }, { "Condition": "NotEquals", "Property": "IsInterlaced", "Value": "true", "IsRequired": false } ], "ApplyConditions": [], "Codec": "h264", "Container": null } ], "ResponseProfiles": [ { "Container": "m4v", "AudioCodec": null, "VideoCodec": null, "Type": "Video", "OrgPn": null, "MimeType": "video/mp4", "Conditions": [] } ], "SubtitleProfiles": [ { "Format": "vtt", "Method": "External", "DidlMode": null, "Language": null, "Container": null } ] }, "AppStoreUrl": null, "IconUrl": null }, "RemoteEndPoint": "192.168.0.204", "PlayableMediaTypes": [ "Audio", "Video" ], "Id": "df68a9a68c62b2cc7d9e7b9bb7d914b1", "UserId": "59ea9b0c-fd47-4351-8429-51d7ea853902", "UserName": "ferferga", "Client": "Jellyfin Web", "LastActivityDate": "2020-06-24T07:46:52.0634577Z", "LastPlaybackCheckIn": "0001-01-01T00:00:00", "DeviceName": "Chrome", "NowPlayingItem": null, "FullNowPlayingItem": null, "NowViewingItem": null, "DeviceId": "TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzgzLjAuNDEwMy4xMTYgU2FmYXJpLzUzNy4zNnwxNTkyOTg0NzYxNzg0", "ApplicationVersion": "10.6.0", "TranscodingInfo": null, "IsActive": true, "SupportsMediaControl": true, "SupportsRemoteControl": true, "NowPlayingQueue": null, "HasCustomDeviceName": false, "PlaylistItemId": null, "UserPrimaryImageTag": "ec140ddfe402d6b2ec6327b2b14b7d45" } ```
backuprepo 2025-12-21 19:31:37 +01:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: starred/jellyfin#1827
No description provided.