From 8c1ba403db40cfdf4e87f23ef27eeafbe35c3875 Mon Sep 17 00:00:00 2001 From: JasonLandbridge Date: Sun, 8 Jun 2025 12:06:25 +0200 Subject: [PATCH] split out media data --- src/models/Media-data.yaml | 25 +++-- src/models/media/aspect-ratio.yaml | 10 ++ src/models/media/audio-channels.yaml | 10 ++ src/models/media/audio-codec.yaml | 9 ++ src/models/media/audio-profile.yaml | 9 ++ src/models/media/bitrate.yaml | 10 ++ src/models/media/container.yaml | 9 ++ src/models/media/display-offset.yaml | 9 ++ src/models/media/duration.yaml | 10 ++ src/models/media/has-64bit-offsets.yaml | 8 ++ src/models/media/has-voice-activity.yaml | 9 ++ src/models/media/height.yaml | 10 ++ src/models/media/id.yaml | 9 ++ src/models/media/optimized-for-streaming.yaml | 13 +++ src/models/media/part/accessible.yaml | 9 ++ src/models/media/part/audio-profile.yaml | 9 ++ src/models/media/part/container.yaml | 9 ++ src/models/media/part/duration.yaml | 10 ++ src/models/media/part/exists.yaml | 6 ++ src/models/media/part/file.yaml | 9 ++ src/models/media/part/has-64bit-offsets.yaml | 8 ++ src/models/media/part/has-thumbnail.yaml | 9 ++ src/models/media/part/id.yaml | 9 ++ src/models/media/part/indexes.yaml | 8 ++ src/models/media/part/key.yaml | 9 ++ .../media/part/optimized-for-streaming.yaml | 13 +++ src/models/media/part/packet-length.yaml | 9 ++ src/models/media/part/size.yaml | 9 ++ .../part/stream/audio-channel-layout.yaml | 7 ++ src/models/media/part/stream/bit-depth.yaml | 8 ++ src/models/media/part/stream/bitrate.yaml | 8 ++ .../media/part/stream/can-auto-sync.yaml | 6 ++ src/models/media/part/stream/channels.yaml | 8 ++ .../media/part/stream/chroma-location.yaml | 7 ++ .../media/part/stream/chroma-subsampling.yaml | 7 ++ .../media/part/stream/closed-captions.yaml | 6 ++ src/models/media/part/stream/codec.yaml | 7 ++ .../media/part/stream/coded-height.yaml | 8 ++ src/models/media/part/stream/coded-width.yaml | 8 ++ .../media/part/stream/color-primaries.yaml | 7 ++ src/models/media/part/stream/color-range.yaml | 7 ++ src/models/media/part/stream/color-space.yaml | 7 ++ src/models/media/part/stream/color-trc.yaml | 7 ++ src/models/media/part/stream/default.yaml | 7 ++ .../media/part/stream/display-title.yaml | 7 ++ .../media/part/stream/dovi-bl-compat-id.yaml | 8 ++ .../media/part/stream/dovi-bl-present.yaml | 7 ++ .../media/part/stream/dovi-el-present.yaml | 7 ++ src/models/media/part/stream/dovi-level.yaml | 8 ++ .../media/part/stream/dovi-present.yaml | 7 ++ .../media/part/stream/dovi-profile.yaml | 8 ++ .../media/part/stream/dovi-rpu-present.yaml | 7 ++ .../media/part/stream/dovi-version.yaml | 7 ++ src/models/media/part/stream/dub.yaml | 7 ++ .../media/part/stream/embedded-in-video.yaml | 6 ++ .../part/stream/extended-display-title.yaml | 7 ++ src/models/media/part/stream/forced.yaml | 6 ++ src/models/media/part/stream/format.yaml | 7 ++ src/models/media/part/stream/frame-rate.yaml | 8 ++ .../media/part/stream/has-scaling-matrix.yaml | 6 ++ .../media/part/stream/header-compression.yaml | 7 ++ .../media/part/stream/hearing-impaired.yaml | 6 ++ src/models/media/part/stream/height.yaml | 8 ++ src/models/media/part/stream/id.yaml | 7 ++ src/models/media/part/stream/index.yaml | 8 ++ src/models/media/part/stream/key.yaml | 7 ++ .../media/part/stream/language-code.yaml | 7 ++ .../media/part/stream/language-tag.yaml | 7 ++ src/models/media/part/stream/language.yaml | 7 ++ src/models/media/part/stream/level.yaml | 8 ++ src/models/media/part/stream/original.yaml | 7 ++ src/models/media/part/stream/profile.yaml | 7 ++ src/models/media/part/stream/ref-frames.yaml | 8 ++ .../media/part/stream/sampling-rate.yaml | 8 ++ src/models/media/part/stream/scan-type.yaml | 6 ++ src/models/media/part/stream/selected.yaml | 7 ++ src/models/media/part/stream/stream-type.yaml | 21 ++++ src/models/media/part/stream/title.yaml | 6 ++ src/models/media/part/stream/width.yaml | 8 ++ src/models/media/part/video-profile.yaml | 6 ++ src/models/media/video-codec.yaml | 9 ++ src/models/media/video-frame-rate.yaml | 10 ++ src/models/media/video-profile.yaml | 9 ++ src/models/media/video-resolution.yaml | 9 ++ src/models/media/width.yaml | 10 ++ .../[ratingKey]/get-media-meta-data.yaml | 101 +++++++++++++++++- 86 files changed, 795 insertions(+), 13 deletions(-) create mode 100644 src/models/media/aspect-ratio.yaml create mode 100644 src/models/media/audio-channels.yaml create mode 100644 src/models/media/audio-codec.yaml create mode 100644 src/models/media/audio-profile.yaml create mode 100644 src/models/media/bitrate.yaml create mode 100644 src/models/media/container.yaml create mode 100644 src/models/media/display-offset.yaml create mode 100644 src/models/media/duration.yaml create mode 100644 src/models/media/has-64bit-offsets.yaml create mode 100644 src/models/media/has-voice-activity.yaml create mode 100644 src/models/media/height.yaml create mode 100644 src/models/media/id.yaml create mode 100644 src/models/media/optimized-for-streaming.yaml create mode 100644 src/models/media/part/accessible.yaml create mode 100644 src/models/media/part/audio-profile.yaml create mode 100644 src/models/media/part/container.yaml create mode 100644 src/models/media/part/duration.yaml create mode 100644 src/models/media/part/exists.yaml create mode 100644 src/models/media/part/file.yaml create mode 100644 src/models/media/part/has-64bit-offsets.yaml create mode 100644 src/models/media/part/has-thumbnail.yaml create mode 100644 src/models/media/part/id.yaml create mode 100644 src/models/media/part/indexes.yaml create mode 100644 src/models/media/part/key.yaml create mode 100644 src/models/media/part/optimized-for-streaming.yaml create mode 100644 src/models/media/part/packet-length.yaml create mode 100644 src/models/media/part/size.yaml create mode 100644 src/models/media/part/stream/audio-channel-layout.yaml create mode 100644 src/models/media/part/stream/bit-depth.yaml create mode 100644 src/models/media/part/stream/bitrate.yaml create mode 100644 src/models/media/part/stream/can-auto-sync.yaml create mode 100644 src/models/media/part/stream/channels.yaml create mode 100644 src/models/media/part/stream/chroma-location.yaml create mode 100644 src/models/media/part/stream/chroma-subsampling.yaml create mode 100644 src/models/media/part/stream/closed-captions.yaml create mode 100644 src/models/media/part/stream/codec.yaml create mode 100644 src/models/media/part/stream/coded-height.yaml create mode 100644 src/models/media/part/stream/coded-width.yaml create mode 100644 src/models/media/part/stream/color-primaries.yaml create mode 100644 src/models/media/part/stream/color-range.yaml create mode 100644 src/models/media/part/stream/color-space.yaml create mode 100644 src/models/media/part/stream/color-trc.yaml create mode 100644 src/models/media/part/stream/default.yaml create mode 100644 src/models/media/part/stream/display-title.yaml create mode 100644 src/models/media/part/stream/dovi-bl-compat-id.yaml create mode 100644 src/models/media/part/stream/dovi-bl-present.yaml create mode 100644 src/models/media/part/stream/dovi-el-present.yaml create mode 100644 src/models/media/part/stream/dovi-level.yaml create mode 100644 src/models/media/part/stream/dovi-present.yaml create mode 100644 src/models/media/part/stream/dovi-profile.yaml create mode 100644 src/models/media/part/stream/dovi-rpu-present.yaml create mode 100644 src/models/media/part/stream/dovi-version.yaml create mode 100644 src/models/media/part/stream/dub.yaml create mode 100644 src/models/media/part/stream/embedded-in-video.yaml create mode 100644 src/models/media/part/stream/extended-display-title.yaml create mode 100644 src/models/media/part/stream/forced.yaml create mode 100644 src/models/media/part/stream/format.yaml create mode 100644 src/models/media/part/stream/frame-rate.yaml create mode 100644 src/models/media/part/stream/has-scaling-matrix.yaml create mode 100644 src/models/media/part/stream/header-compression.yaml create mode 100644 src/models/media/part/stream/hearing-impaired.yaml create mode 100644 src/models/media/part/stream/height.yaml create mode 100644 src/models/media/part/stream/id.yaml create mode 100644 src/models/media/part/stream/index.yaml create mode 100644 src/models/media/part/stream/key.yaml create mode 100644 src/models/media/part/stream/language-code.yaml create mode 100644 src/models/media/part/stream/language-tag.yaml create mode 100644 src/models/media/part/stream/language.yaml create mode 100644 src/models/media/part/stream/level.yaml create mode 100644 src/models/media/part/stream/original.yaml create mode 100644 src/models/media/part/stream/profile.yaml create mode 100644 src/models/media/part/stream/ref-frames.yaml create mode 100644 src/models/media/part/stream/sampling-rate.yaml create mode 100644 src/models/media/part/stream/scan-type.yaml create mode 100644 src/models/media/part/stream/selected.yaml create mode 100644 src/models/media/part/stream/stream-type.yaml create mode 100644 src/models/media/part/stream/title.yaml create mode 100644 src/models/media/part/stream/width.yaml create mode 100644 src/models/media/part/video-profile.yaml create mode 100644 src/models/media/video-codec.yaml create mode 100644 src/models/media/video-frame-rate.yaml create mode 100644 src/models/media/video-profile.yaml create mode 100644 src/models/media/video-resolution.yaml create mode 100644 src/models/media/width.yaml diff --git a/src/models/Media-data.yaml b/src/models/Media-data.yaml index 09d51963..b0d0403b 100644 --- a/src/models/Media-data.yaml +++ b/src/models/Media-data.yaml @@ -179,19 +179,22 @@ items: example: 1002625 streamType: type: integer - format: int32 + oneOf: + - title: VIDEO + const: 1 + description: Video stream + - title: AUDIO + const: 2 + description: Audio stream + - title: SUBTITLE + const: 3 + description: Subtitle stream + example: 1 description: | Stream type: - - 1 = video - - 2 = audio - - 3 = subtitle - enum: [1, 2, 3] - example: 1 - x-speakeasy-unknown-values: allow - x-speakeasy-enums: - - VIDEO - - AUDIO - - SUBTITLE + - VIDEO = 1 + - AUDIO = 2 + - SUBTITLE = 3 format: type: string description: "Format of the stream (e.g., srt)." diff --git a/src/models/media/aspect-ratio.yaml b/src/models/media/aspect-ratio.yaml new file mode 100644 index 00000000..510d3d1f --- /dev/null +++ b/src/models/media/aspect-ratio.yaml @@ -0,0 +1,10 @@ +type: object +required: + - aspectRatio +description: "Aspect ratio of the video." +properties: + aspectRatio: + type: number + format: float + description: "Aspect ratio of the video." + example: 2.35 \ No newline at end of file diff --git a/src/models/media/audio-channels.yaml b/src/models/media/audio-channels.yaml new file mode 100644 index 00000000..13d797ee --- /dev/null +++ b/src/models/media/audio-channels.yaml @@ -0,0 +1,10 @@ +type: object +required: + - audioChannels +description: "Number of audio channels." +properties: + audioChannels: + type: integer + format: int32 + description: "Number of audio channels." + example: 6 \ No newline at end of file diff --git a/src/models/media/audio-codec.yaml b/src/models/media/audio-codec.yaml new file mode 100644 index 00000000..1e8a500b --- /dev/null +++ b/src/models/media/audio-codec.yaml @@ -0,0 +1,9 @@ +type: object +required: + - audioCodec +description: "Audio codec used." +properties: + audioCodec: + type: string + description: "Audio codec used." + example: "eac3" \ No newline at end of file diff --git a/src/models/media/audio-profile.yaml b/src/models/media/audio-profile.yaml new file mode 100644 index 00000000..0732d98d --- /dev/null +++ b/src/models/media/audio-profile.yaml @@ -0,0 +1,9 @@ +type: object +required: + - audioProfile +description: "The audio profile used for the media." +properties: + audioProfile: + type: string + description: "The audio profile used for the media (e.g., DTS, Dolby Digital, etc.)." + example: "dts" \ No newline at end of file diff --git a/src/models/media/bitrate.yaml b/src/models/media/bitrate.yaml new file mode 100644 index 00000000..5ef71bf0 --- /dev/null +++ b/src/models/media/bitrate.yaml @@ -0,0 +1,10 @@ +type: object +required: + - bitrate +description: "Bitrate in bits per second." +properties: + bitrate: + type: integer + format: int32 + description: "Bitrate in bits per second." + example: 25512 \ No newline at end of file diff --git a/src/models/media/container.yaml b/src/models/media/container.yaml new file mode 100644 index 00000000..0cda5ec1 --- /dev/null +++ b/src/models/media/container.yaml @@ -0,0 +1,9 @@ +type: object +required: + - container +description: "File container type." +properties: + container: + type: string + description: "File container type." + example: "mkv" \ No newline at end of file diff --git a/src/models/media/display-offset.yaml b/src/models/media/display-offset.yaml new file mode 100644 index 00000000..09326bcd --- /dev/null +++ b/src/models/media/display-offset.yaml @@ -0,0 +1,9 @@ +type: object +required: + - displayOffset +description: "Display offset value." +properties: + displayOffset: + type: integer + format: int32 + example: 50 \ No newline at end of file diff --git a/src/models/media/duration.yaml b/src/models/media/duration.yaml new file mode 100644 index 00000000..9279d771 --- /dev/null +++ b/src/models/media/duration.yaml @@ -0,0 +1,10 @@ +type: object +required: + - duration +description: "Duration of the media in milliseconds." +properties: + duration: + type: integer + format: int32 + description: "Duration of the media in milliseconds." + example: 9610350 \ No newline at end of file diff --git a/src/models/media/has-64bit-offsets.yaml b/src/models/media/has-64bit-offsets.yaml new file mode 100644 index 00000000..83d284f1 --- /dev/null +++ b/src/models/media/has-64bit-offsets.yaml @@ -0,0 +1,8 @@ +type: object +required: + - has64bitOffsets +description: "Indicates whether the media has 64-bit offsets." +properties: + has64bitOffsets: + type: boolean + example: false \ No newline at end of file diff --git a/src/models/media/has-voice-activity.yaml b/src/models/media/has-voice-activity.yaml new file mode 100644 index 00000000..31c30894 --- /dev/null +++ b/src/models/media/has-voice-activity.yaml @@ -0,0 +1,9 @@ +type: object +required: + - hasVoiceActivity +description: "Indicates whether voice activity is detected." +properties: + hasVoiceActivity: + type: boolean + description: "Indicates whether voice activity is detected." + example: false \ No newline at end of file diff --git a/src/models/media/height.yaml b/src/models/media/height.yaml new file mode 100644 index 00000000..06d24996 --- /dev/null +++ b/src/models/media/height.yaml @@ -0,0 +1,10 @@ +type: object +required: + - height +description: "Video height in pixels." +properties: + height: + type: integer + format: int32 + description: "Video height in pixels." + example: 1602 \ No newline at end of file diff --git a/src/models/media/id.yaml b/src/models/media/id.yaml new file mode 100644 index 00000000..227b85b8 --- /dev/null +++ b/src/models/media/id.yaml @@ -0,0 +1,9 @@ +type: object +required: + - id +description: "Unique media identifier." +properties: + id: + type: integer + description: "Unique media identifier." + example: 387322 \ No newline at end of file diff --git a/src/models/media/optimized-for-streaming.yaml b/src/models/media/optimized-for-streaming.yaml new file mode 100644 index 00000000..faa93aa6 --- /dev/null +++ b/src/models/media/optimized-for-streaming.yaml @@ -0,0 +1,13 @@ +type: object +required: + - optimizedForStreaming +description: "Has this media been optimized for streaming." +properties: + optimizedForStreaming: + description: "Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true" + oneOf: + - type: integer + format: int32 + enum: [0, 1] + - type: boolean + enum: [true, false] \ No newline at end of file diff --git a/src/models/media/part/accessible.yaml b/src/models/media/part/accessible.yaml new file mode 100644 index 00000000..464eb6ab --- /dev/null +++ b/src/models/media/part/accessible.yaml @@ -0,0 +1,9 @@ +type: object +required: + - accessible +description: "Indicates if the part is accessible." +properties: + accessible: + type: boolean + description: "Indicates if the part is accessible." + example: true \ No newline at end of file diff --git a/src/models/media/part/audio-profile.yaml b/src/models/media/part/audio-profile.yaml new file mode 100644 index 00000000..0732d98d --- /dev/null +++ b/src/models/media/part/audio-profile.yaml @@ -0,0 +1,9 @@ +type: object +required: + - audioProfile +description: "The audio profile used for the media." +properties: + audioProfile: + type: string + description: "The audio profile used for the media (e.g., DTS, Dolby Digital, etc.)." + example: "dts" \ No newline at end of file diff --git a/src/models/media/part/container.yaml b/src/models/media/part/container.yaml new file mode 100644 index 00000000..012e50d4 --- /dev/null +++ b/src/models/media/part/container.yaml @@ -0,0 +1,9 @@ +type: object +required: + - container +description: "Container format of the part." +properties: + container: + type: string + description: "Container format of the part." + example: "mkv" \ No newline at end of file diff --git a/src/models/media/part/duration.yaml b/src/models/media/part/duration.yaml new file mode 100644 index 00000000..762ae6fb --- /dev/null +++ b/src/models/media/part/duration.yaml @@ -0,0 +1,10 @@ +type: object +required: + - duration +description: "Duration of the part in milliseconds." +properties: + duration: + type: integer + format: int32 + description: "Duration of the part in milliseconds." + example: 9610350 \ No newline at end of file diff --git a/src/models/media/part/exists.yaml b/src/models/media/part/exists.yaml new file mode 100644 index 00000000..471dee25 --- /dev/null +++ b/src/models/media/part/exists.yaml @@ -0,0 +1,6 @@ +type: object +properties: + exists: + type: boolean + description: "Indicates if the part exists." + example: true diff --git a/src/models/media/part/file.yaml b/src/models/media/part/file.yaml new file mode 100644 index 00000000..bf408a84 --- /dev/null +++ b/src/models/media/part/file.yaml @@ -0,0 +1,9 @@ +type: object +required: + - file +description: "File path for the part." +properties: + file: + type: string + description: "File path for the part." + example: "/mnt/Movies_1/W/Wicked (2024).mkv" \ No newline at end of file diff --git a/src/models/media/part/has-64bit-offsets.yaml b/src/models/media/part/has-64bit-offsets.yaml new file mode 100644 index 00000000..e383455e --- /dev/null +++ b/src/models/media/part/has-64bit-offsets.yaml @@ -0,0 +1,8 @@ +type: object +required: + - has64bitOffsets +description: "Indicates whether the part has 64-bit offsets." +properties: + has64bitOffsets: + type: boolean + example: false \ No newline at end of file diff --git a/src/models/media/part/has-thumbnail.yaml b/src/models/media/part/has-thumbnail.yaml new file mode 100644 index 00000000..32421535 --- /dev/null +++ b/src/models/media/part/has-thumbnail.yaml @@ -0,0 +1,9 @@ +type: object +required: + - hasThumbnail +description: "Indicates if the part has a thumbnail." +properties: + hasThumbnail: + allOf: + - description: "Indicates if the part has a thumbnail." + - $ref: "../models/common/PlexBooleanString.yaml" \ No newline at end of file diff --git a/src/models/media/part/id.yaml b/src/models/media/part/id.yaml new file mode 100644 index 00000000..c8bb2c46 --- /dev/null +++ b/src/models/media/part/id.yaml @@ -0,0 +1,9 @@ +type: object +required: + - id +description: "Unique part identifier." +properties: + id: + type: integer + description: "Unique part identifier." + example: 418385 \ No newline at end of file diff --git a/src/models/media/part/indexes.yaml b/src/models/media/part/indexes.yaml new file mode 100644 index 00000000..5796d220 --- /dev/null +++ b/src/models/media/part/indexes.yaml @@ -0,0 +1,8 @@ +type: object +required: + - indexes +description: "Indexes for the part." +properties: + indexes: + type: string + example: "sd" \ No newline at end of file diff --git a/src/models/media/part/key.yaml b/src/models/media/part/key.yaml new file mode 100644 index 00000000..ccab19e9 --- /dev/null +++ b/src/models/media/part/key.yaml @@ -0,0 +1,9 @@ +type: object +required: + - key +description: "Key to access this part." +properties: + key: + type: string + description: "Key to access this part." + example: "/library/parts/418385/1735864239/file.mkv" \ No newline at end of file diff --git a/src/models/media/part/optimized-for-streaming.yaml b/src/models/media/part/optimized-for-streaming.yaml new file mode 100644 index 00000000..38b12ec0 --- /dev/null +++ b/src/models/media/part/optimized-for-streaming.yaml @@ -0,0 +1,13 @@ +type: object +required: + - optimizedForStreaming +description: "Has this part been optimized for streaming." +properties: + optimizedForStreaming: + description: "Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true" + oneOf: + - type: integer + format: int32 + enum: [0, 1] + - type: boolean + enum: [true, false] \ No newline at end of file diff --git a/src/models/media/part/packet-length.yaml b/src/models/media/part/packet-length.yaml new file mode 100644 index 00000000..532380d6 --- /dev/null +++ b/src/models/media/part/packet-length.yaml @@ -0,0 +1,9 @@ +type: object +required: + - packetLength +description: "Packet length for the part." +properties: + packetLength: + type: integer + format: int32 + example: 188 \ No newline at end of file diff --git a/src/models/media/part/size.yaml b/src/models/media/part/size.yaml new file mode 100644 index 00000000..3aeed50b --- /dev/null +++ b/src/models/media/part/size.yaml @@ -0,0 +1,9 @@ +type: object +required: + - size +description: "File size in bytes." +properties: + size: + description: "File size in bytes." + type: integer + example: 30649952104 \ No newline at end of file diff --git a/src/models/media/part/stream/audio-channel-layout.yaml b/src/models/media/part/stream/audio-channel-layout.yaml new file mode 100644 index 00000000..f4480198 --- /dev/null +++ b/src/models/media/part/stream/audio-channel-layout.yaml @@ -0,0 +1,7 @@ +type: object +description: "Audio channel layout information." +properties: + audioChannelLayout: + type: string + description: "Audio channel layout." + example: "5.1(side)" \ No newline at end of file diff --git a/src/models/media/part/stream/bit-depth.yaml b/src/models/media/part/stream/bit-depth.yaml new file mode 100644 index 00000000..e14ac97a --- /dev/null +++ b/src/models/media/part/stream/bit-depth.yaml @@ -0,0 +1,8 @@ +type: object +description: "Bit depth information." +properties: + bitDepth: + type: integer + format: int32 + description: "Bit depth of the video stream." + example: 10 \ No newline at end of file diff --git a/src/models/media/part/stream/bitrate.yaml b/src/models/media/part/stream/bitrate.yaml new file mode 100644 index 00000000..4ff1dfa3 --- /dev/null +++ b/src/models/media/part/stream/bitrate.yaml @@ -0,0 +1,8 @@ +type: object +description: "Stream bitrate information." +properties: + bitrate: + type: integer + format: int32 + description: "Bitrate of the stream." + example: 24743 \ No newline at end of file diff --git a/src/models/media/part/stream/can-auto-sync.yaml b/src/models/media/part/stream/can-auto-sync.yaml new file mode 100644 index 00000000..d75addd0 --- /dev/null +++ b/src/models/media/part/stream/can-auto-sync.yaml @@ -0,0 +1,6 @@ +type: object +properties: + canAutoSync: + type: boolean + description: "Indicates if the stream can auto-sync." + example: false diff --git a/src/models/media/part/stream/channels.yaml b/src/models/media/part/stream/channels.yaml new file mode 100644 index 00000000..4f7d8f16 --- /dev/null +++ b/src/models/media/part/stream/channels.yaml @@ -0,0 +1,8 @@ +type: object +description: "Audio channels information." +properties: + channels: + type: integer + format: int32 + description: "Number of audio channels (for audio streams)." + example: 6 \ No newline at end of file diff --git a/src/models/media/part/stream/chroma-location.yaml b/src/models/media/part/stream/chroma-location.yaml new file mode 100644 index 00000000..02759bf3 --- /dev/null +++ b/src/models/media/part/stream/chroma-location.yaml @@ -0,0 +1,7 @@ +type: object +description: "Chroma location information." +properties: + chromaLocation: + type: string + description: "Chroma sample location." + example: "topleft" \ No newline at end of file diff --git a/src/models/media/part/stream/chroma-subsampling.yaml b/src/models/media/part/stream/chroma-subsampling.yaml new file mode 100644 index 00000000..d56bf500 --- /dev/null +++ b/src/models/media/part/stream/chroma-subsampling.yaml @@ -0,0 +1,7 @@ +type: object +description: "Chroma subsampling information." +properties: + chromaSubsampling: + type: string + description: "Chroma subsampling format." + example: "4:2:0" \ No newline at end of file diff --git a/src/models/media/part/stream/closed-captions.yaml b/src/models/media/part/stream/closed-captions.yaml new file mode 100644 index 00000000..df701f98 --- /dev/null +++ b/src/models/media/part/stream/closed-captions.yaml @@ -0,0 +1,6 @@ +type: object +description: "Closed captions information." +properties: + closedCaptions: + type: boolean + example: true \ No newline at end of file diff --git a/src/models/media/part/stream/codec.yaml b/src/models/media/part/stream/codec.yaml new file mode 100644 index 00000000..089aa4f5 --- /dev/null +++ b/src/models/media/part/stream/codec.yaml @@ -0,0 +1,7 @@ +type: object +description: "Codec information." +properties: + codec: + type: string + description: "Codec used by the stream." + example: "hevc" \ No newline at end of file diff --git a/src/models/media/part/stream/coded-height.yaml b/src/models/media/part/stream/coded-height.yaml new file mode 100644 index 00000000..41a72f63 --- /dev/null +++ b/src/models/media/part/stream/coded-height.yaml @@ -0,0 +1,8 @@ +type: object +description: "Coded height information." +properties: + codedHeight: + type: integer + format: int32 + description: "Coded video height." + example: 1608 \ No newline at end of file diff --git a/src/models/media/part/stream/coded-width.yaml b/src/models/media/part/stream/coded-width.yaml new file mode 100644 index 00000000..e990703e --- /dev/null +++ b/src/models/media/part/stream/coded-width.yaml @@ -0,0 +1,8 @@ +type: object +description: "Coded width information." +properties: + codedWidth: + type: integer + format: int32 + description: "Coded video width." + example: 3840 \ No newline at end of file diff --git a/src/models/media/part/stream/color-primaries.yaml b/src/models/media/part/stream/color-primaries.yaml new file mode 100644 index 00000000..d4e99a27 --- /dev/null +++ b/src/models/media/part/stream/color-primaries.yaml @@ -0,0 +1,7 @@ +type: object +description: "Color primaries information." +properties: + colorPrimaries: + type: string + description: "Color primaries used." + example: "bt2020" \ No newline at end of file diff --git a/src/models/media/part/stream/color-range.yaml b/src/models/media/part/stream/color-range.yaml new file mode 100644 index 00000000..eabf9e82 --- /dev/null +++ b/src/models/media/part/stream/color-range.yaml @@ -0,0 +1,7 @@ +type: object +description: "Color range information." +properties: + colorRange: + type: string + description: "Color range (e.g., tv)." + example: "tv" \ No newline at end of file diff --git a/src/models/media/part/stream/color-space.yaml b/src/models/media/part/stream/color-space.yaml new file mode 100644 index 00000000..53e5cf49 --- /dev/null +++ b/src/models/media/part/stream/color-space.yaml @@ -0,0 +1,7 @@ +type: object +description: "Color space information." +properties: + colorSpace: + type: string + description: "Color space." + example: "bt2020nc" \ No newline at end of file diff --git a/src/models/media/part/stream/color-trc.yaml b/src/models/media/part/stream/color-trc.yaml new file mode 100644 index 00000000..379741ed --- /dev/null +++ b/src/models/media/part/stream/color-trc.yaml @@ -0,0 +1,7 @@ +type: object +description: "Color transfer characteristics information." +properties: + colorTrc: + type: string + description: "Color transfer characteristics." + example: "smpte2084" \ No newline at end of file diff --git a/src/models/media/part/stream/default.yaml b/src/models/media/part/stream/default.yaml new file mode 100644 index 00000000..5c0d0a6e --- /dev/null +++ b/src/models/media/part/stream/default.yaml @@ -0,0 +1,7 @@ +type: object +description: "Default stream indicator." +properties: + default: + type: boolean + description: "Indicates if this stream is default." + example: true \ No newline at end of file diff --git a/src/models/media/part/stream/display-title.yaml b/src/models/media/part/stream/display-title.yaml new file mode 100644 index 00000000..f606c50e --- /dev/null +++ b/src/models/media/part/stream/display-title.yaml @@ -0,0 +1,7 @@ +type: object +description: "Display title information." +properties: + displayTitle: + type: string + description: "Display title for the stream." + example: "4K DoVi/HDR10 (HEVC Main 10)" \ No newline at end of file diff --git a/src/models/media/part/stream/dovi-bl-compat-id.yaml b/src/models/media/part/stream/dovi-bl-compat-id.yaml new file mode 100644 index 00000000..24727317 --- /dev/null +++ b/src/models/media/part/stream/dovi-bl-compat-id.yaml @@ -0,0 +1,8 @@ +type: object +description: "Dolby Vision BL compatibility ID information." +properties: + DOVIBLCompatID: + type: integer + format: int32 + description: "Dolby Vision BL compatibility ID." + example: 1 \ No newline at end of file diff --git a/src/models/media/part/stream/dovi-bl-present.yaml b/src/models/media/part/stream/dovi-bl-present.yaml new file mode 100644 index 00000000..2e293c36 --- /dev/null +++ b/src/models/media/part/stream/dovi-bl-present.yaml @@ -0,0 +1,7 @@ +type: object +description: "Dolby Vision BL presence information." +properties: + DOVIBLPresent: + type: boolean + description: "Indicates if Dolby Vision BL is present." + example: true \ No newline at end of file diff --git a/src/models/media/part/stream/dovi-el-present.yaml b/src/models/media/part/stream/dovi-el-present.yaml new file mode 100644 index 00000000..3fe84975 --- /dev/null +++ b/src/models/media/part/stream/dovi-el-present.yaml @@ -0,0 +1,7 @@ +type: object +description: "Dolby Vision EL presence information." +properties: + DOVIELPresent: + type: boolean + description: "Indicates if Dolby Vision EL is present." + example: false \ No newline at end of file diff --git a/src/models/media/part/stream/dovi-level.yaml b/src/models/media/part/stream/dovi-level.yaml new file mode 100644 index 00000000..c54c6307 --- /dev/null +++ b/src/models/media/part/stream/dovi-level.yaml @@ -0,0 +1,8 @@ +type: object +description: "Dolby Vision level information." +properties: + DOVILevel: + type: integer + format: int32 + description: "Dolby Vision level." + example: 6 \ No newline at end of file diff --git a/src/models/media/part/stream/dovi-present.yaml b/src/models/media/part/stream/dovi-present.yaml new file mode 100644 index 00000000..bf9888d2 --- /dev/null +++ b/src/models/media/part/stream/dovi-present.yaml @@ -0,0 +1,7 @@ +type: object +description: "Dolby Vision presence information." +properties: + DOVIPresent: + type: boolean + description: "Indicates if Dolby Vision is present." + example: true \ No newline at end of file diff --git a/src/models/media/part/stream/dovi-profile.yaml b/src/models/media/part/stream/dovi-profile.yaml new file mode 100644 index 00000000..434f05b4 --- /dev/null +++ b/src/models/media/part/stream/dovi-profile.yaml @@ -0,0 +1,8 @@ +type: object +description: "Dolby Vision profile information." +properties: + DOVIProfile: + type: integer + format: int32 + description: "Dolby Vision profile." + example: 8 \ No newline at end of file diff --git a/src/models/media/part/stream/dovi-rpu-present.yaml b/src/models/media/part/stream/dovi-rpu-present.yaml new file mode 100644 index 00000000..71238691 --- /dev/null +++ b/src/models/media/part/stream/dovi-rpu-present.yaml @@ -0,0 +1,7 @@ +type: object +description: "Dolby Vision RPU presence information." +properties: + DOVIRPUPresent: + type: boolean + description: "Indicates if Dolby Vision RPU is present." + example: true \ No newline at end of file diff --git a/src/models/media/part/stream/dovi-version.yaml b/src/models/media/part/stream/dovi-version.yaml new file mode 100644 index 00000000..d0f8ae3f --- /dev/null +++ b/src/models/media/part/stream/dovi-version.yaml @@ -0,0 +1,7 @@ +type: object +description: "Dolby Vision version information." +properties: + DOVIVersion: + type: string + description: "Dolby Vision version." + example: "1.0" \ No newline at end of file diff --git a/src/models/media/part/stream/dub.yaml b/src/models/media/part/stream/dub.yaml new file mode 100644 index 00000000..1344e69a --- /dev/null +++ b/src/models/media/part/stream/dub.yaml @@ -0,0 +1,7 @@ +type: object +description: "Dub information." +properties: + dub: + type: boolean + description: "Indicates if the stream is a dub." + example: true \ No newline at end of file diff --git a/src/models/media/part/stream/embedded-in-video.yaml b/src/models/media/part/stream/embedded-in-video.yaml new file mode 100644 index 00000000..abc49e4d --- /dev/null +++ b/src/models/media/part/stream/embedded-in-video.yaml @@ -0,0 +1,6 @@ +type: object +description: "Embedded in video information." +properties: + embeddedInVideo: + type: string + example: "progressive" \ No newline at end of file diff --git a/src/models/media/part/stream/extended-display-title.yaml b/src/models/media/part/stream/extended-display-title.yaml new file mode 100644 index 00000000..14060b2a --- /dev/null +++ b/src/models/media/part/stream/extended-display-title.yaml @@ -0,0 +1,7 @@ +type: object +description: "Extended display title information." +properties: + extendedDisplayTitle: + type: string + description: "Extended display title for the stream." + example: "4K DoVi/HDR10 (HEVC Main 10)" \ No newline at end of file diff --git a/src/models/media/part/stream/forced.yaml b/src/models/media/part/stream/forced.yaml new file mode 100644 index 00000000..fe017345 --- /dev/null +++ b/src/models/media/part/stream/forced.yaml @@ -0,0 +1,6 @@ +type: object +description: "Forced stream information." +properties: + forced: + type: boolean + example: true \ No newline at end of file diff --git a/src/models/media/part/stream/format.yaml b/src/models/media/part/stream/format.yaml new file mode 100644 index 00000000..c83f3bd4 --- /dev/null +++ b/src/models/media/part/stream/format.yaml @@ -0,0 +1,7 @@ +type: object +description: "Format of the stream." +properties: + format: + type: string + description: "Format of the stream (e.g., srt)." + example: "srt" \ No newline at end of file diff --git a/src/models/media/part/stream/frame-rate.yaml b/src/models/media/part/stream/frame-rate.yaml new file mode 100644 index 00000000..2ebf5d84 --- /dev/null +++ b/src/models/media/part/stream/frame-rate.yaml @@ -0,0 +1,8 @@ +type: object +description: "Frame rate information." +properties: + frameRate: + type: number + format: float + description: "Frame rate of the stream." + example: 23.976 \ No newline at end of file diff --git a/src/models/media/part/stream/has-scaling-matrix.yaml b/src/models/media/part/stream/has-scaling-matrix.yaml new file mode 100644 index 00000000..ab3fc2b0 --- /dev/null +++ b/src/models/media/part/stream/has-scaling-matrix.yaml @@ -0,0 +1,6 @@ +type: object +description: "Scaling matrix information." +properties: + hasScalingMatrix: + type: boolean + example: false \ No newline at end of file diff --git a/src/models/media/part/stream/header-compression.yaml b/src/models/media/part/stream/header-compression.yaml new file mode 100644 index 00000000..aa4475e6 --- /dev/null +++ b/src/models/media/part/stream/header-compression.yaml @@ -0,0 +1,7 @@ +type: object +description: "Header compression information." +properties: + headerCompression: + type: boolean + description: "Indicates whether header compression is enabled." + example: true \ No newline at end of file diff --git a/src/models/media/part/stream/hearing-impaired.yaml b/src/models/media/part/stream/hearing-impaired.yaml new file mode 100644 index 00000000..20467181 --- /dev/null +++ b/src/models/media/part/stream/hearing-impaired.yaml @@ -0,0 +1,6 @@ +type: object +properties: + hearingImpaired: + type: boolean + description: "Indicates if the stream is for the hearing impaired." + example: true diff --git a/src/models/media/part/stream/height.yaml b/src/models/media/part/stream/height.yaml new file mode 100644 index 00000000..4b719d09 --- /dev/null +++ b/src/models/media/part/stream/height.yaml @@ -0,0 +1,8 @@ +type: object +description: "Stream height information." +properties: + height: + type: integer + format: int32 + description: "Height of the video stream." + example: 1602 \ No newline at end of file diff --git a/src/models/media/part/stream/id.yaml b/src/models/media/part/stream/id.yaml new file mode 100644 index 00000000..3b219a1f --- /dev/null +++ b/src/models/media/part/stream/id.yaml @@ -0,0 +1,7 @@ +type: object +description: "Unique stream identifier." +properties: + id: + type: integer + description: "Unique stream identifier." + example: 1002625 \ No newline at end of file diff --git a/src/models/media/part/stream/index.yaml b/src/models/media/part/stream/index.yaml new file mode 100644 index 00000000..5eed466d --- /dev/null +++ b/src/models/media/part/stream/index.yaml @@ -0,0 +1,8 @@ +type: object +description: "Stream index information." +properties: + index: + type: integer + format: int32 + description: "Index of the stream." + example: 0 \ No newline at end of file diff --git a/src/models/media/part/stream/key.yaml b/src/models/media/part/stream/key.yaml new file mode 100644 index 00000000..645a38db --- /dev/null +++ b/src/models/media/part/stream/key.yaml @@ -0,0 +1,7 @@ +type: object +description: "Stream key information." +properties: + key: + type: string + description: "Key to access this stream part." + example: "/library/streams/216389" \ No newline at end of file diff --git a/src/models/media/part/stream/language-code.yaml b/src/models/media/part/stream/language-code.yaml new file mode 100644 index 00000000..c4a4f106 --- /dev/null +++ b/src/models/media/part/stream/language-code.yaml @@ -0,0 +1,7 @@ +type: object +description: "Stream language code information." +properties: + languageCode: + type: string + description: "ISO language code." + example: "eng" \ No newline at end of file diff --git a/src/models/media/part/stream/language-tag.yaml b/src/models/media/part/stream/language-tag.yaml new file mode 100644 index 00000000..f1e8e9c9 --- /dev/null +++ b/src/models/media/part/stream/language-tag.yaml @@ -0,0 +1,7 @@ +type: object +description: "Stream language tag information." +properties: + languageTag: + type: string + description: "Language tag (e.g., en)." + example: "en" \ No newline at end of file diff --git a/src/models/media/part/stream/language.yaml b/src/models/media/part/stream/language.yaml new file mode 100644 index 00000000..df23e1fe --- /dev/null +++ b/src/models/media/part/stream/language.yaml @@ -0,0 +1,7 @@ +type: object +description: "Stream language information." +properties: + language: + type: string + description: "Language of the stream." + example: "English" \ No newline at end of file diff --git a/src/models/media/part/stream/level.yaml b/src/models/media/part/stream/level.yaml new file mode 100644 index 00000000..c3538858 --- /dev/null +++ b/src/models/media/part/stream/level.yaml @@ -0,0 +1,8 @@ +type: object +description: "Video level information." +properties: + level: + type: integer + format: int32 + description: "Video level." + example: 150 \ No newline at end of file diff --git a/src/models/media/part/stream/original.yaml b/src/models/media/part/stream/original.yaml new file mode 100644 index 00000000..5118f713 --- /dev/null +++ b/src/models/media/part/stream/original.yaml @@ -0,0 +1,7 @@ +type: object +description: "Original stream information." +properties: + original: + type: boolean + description: "Indicates if this is the original stream." + example: true \ No newline at end of file diff --git a/src/models/media/part/stream/profile.yaml b/src/models/media/part/stream/profile.yaml new file mode 100644 index 00000000..fbdcf6e9 --- /dev/null +++ b/src/models/media/part/stream/profile.yaml @@ -0,0 +1,7 @@ +type: object +description: "Video profile information." +properties: + profile: + type: string + description: "Video profile." + example: "main 10" \ No newline at end of file diff --git a/src/models/media/part/stream/ref-frames.yaml b/src/models/media/part/stream/ref-frames.yaml new file mode 100644 index 00000000..b9d6d688 --- /dev/null +++ b/src/models/media/part/stream/ref-frames.yaml @@ -0,0 +1,8 @@ +type: object +description: "Reference frames information." +properties: + refFrames: + type: integer + format: int32 + description: "Number of reference frames." + example: 1 \ No newline at end of file diff --git a/src/models/media/part/stream/sampling-rate.yaml b/src/models/media/part/stream/sampling-rate.yaml new file mode 100644 index 00000000..4ab57cb6 --- /dev/null +++ b/src/models/media/part/stream/sampling-rate.yaml @@ -0,0 +1,8 @@ +type: object +description: "Sampling rate information." +properties: + samplingRate: + type: integer + format: int32 + description: "Sampling rate for the audio stream." + example: 48000 \ No newline at end of file diff --git a/src/models/media/part/stream/scan-type.yaml b/src/models/media/part/stream/scan-type.yaml new file mode 100644 index 00000000..f487b656 --- /dev/null +++ b/src/models/media/part/stream/scan-type.yaml @@ -0,0 +1,6 @@ +type: object +description: "Scan type information." +properties: + scanType: + type: string + example: "progressive" \ No newline at end of file diff --git a/src/models/media/part/stream/selected.yaml b/src/models/media/part/stream/selected.yaml new file mode 100644 index 00000000..eaa1e89d --- /dev/null +++ b/src/models/media/part/stream/selected.yaml @@ -0,0 +1,7 @@ +type: object +description: "Stream selection information." +properties: + selected: + type: boolean + description: "Indicates if this stream is selected (applicable for audio streams)." + example: true \ No newline at end of file diff --git a/src/models/media/part/stream/stream-type.yaml b/src/models/media/part/stream/stream-type.yaml new file mode 100644 index 00000000..fe7efb33 --- /dev/null +++ b/src/models/media/part/stream/stream-type.yaml @@ -0,0 +1,21 @@ +type: object +description: "Stream type definition." +properties: + streamType: + type: integer + oneOf: + - title: VIDEO + const: 1 + description: Video stream + - title: AUDIO + const: 2 + description: Audio stream + - title: SUBTITLE + const: 3 + description: Subtitle stream + example: 1 + description: | + Stream type: + - VIDEO = 1 + - AUDIO = 2 + - SUBTITLE = 3 \ No newline at end of file diff --git a/src/models/media/part/stream/title.yaml b/src/models/media/part/stream/title.yaml new file mode 100644 index 00000000..575487ab --- /dev/null +++ b/src/models/media/part/stream/title.yaml @@ -0,0 +1,6 @@ +type: object +properties: + title: + type: string + description: "Optional title for the stream (e.g., language variant)." + example: "SDH" diff --git a/src/models/media/part/stream/width.yaml b/src/models/media/part/stream/width.yaml new file mode 100644 index 00000000..3d4cb3d8 --- /dev/null +++ b/src/models/media/part/stream/width.yaml @@ -0,0 +1,8 @@ +type: object +description: "Stream width information." +properties: + width: + type: integer + format: int32 + description: "Width of the video stream." + example: 3840 \ No newline at end of file diff --git a/src/models/media/part/video-profile.yaml b/src/models/media/part/video-profile.yaml new file mode 100644 index 00000000..506e2b38 --- /dev/null +++ b/src/models/media/part/video-profile.yaml @@ -0,0 +1,6 @@ +type: object +properties: + videoProfile: + type: string + description: "Video profile for the part." + example: "main 10" diff --git a/src/models/media/video-codec.yaml b/src/models/media/video-codec.yaml new file mode 100644 index 00000000..1642bcb4 --- /dev/null +++ b/src/models/media/video-codec.yaml @@ -0,0 +1,9 @@ +type: object +required: + - videoCodec +description: "Video codec used." +properties: + videoCodec: + type: string + description: "Video codec used." + example: "hevc" \ No newline at end of file diff --git a/src/models/media/video-frame-rate.yaml b/src/models/media/video-frame-rate.yaml new file mode 100644 index 00000000..f8fcf313 --- /dev/null +++ b/src/models/media/video-frame-rate.yaml @@ -0,0 +1,10 @@ +type: object +required: + - videoFrameRate +description: "Frame rate of the video." +properties: + videoFrameRate: + type: string + description: | + Frame rate of the video. Values found include NTSC, PAL, 24p + example: "24p" \ No newline at end of file diff --git a/src/models/media/video-profile.yaml b/src/models/media/video-profile.yaml new file mode 100644 index 00000000..d23d1aee --- /dev/null +++ b/src/models/media/video-profile.yaml @@ -0,0 +1,9 @@ +type: object +required: + - videoProfile +description: "Video profile (e.g., main 10)." +properties: + videoProfile: + type: string + description: "Video profile (e.g., main 10)." + example: "main 10" \ No newline at end of file diff --git a/src/models/media/video-resolution.yaml b/src/models/media/video-resolution.yaml new file mode 100644 index 00000000..f3413003 --- /dev/null +++ b/src/models/media/video-resolution.yaml @@ -0,0 +1,9 @@ +type: object +required: + - videoResolution +description: "Video resolution (e.g., 4k)." +properties: + videoResolution: + type: string + description: "Video resolution (e.g., 4k)." + example: "4k" \ No newline at end of file diff --git a/src/models/media/width.yaml b/src/models/media/width.yaml new file mode 100644 index 00000000..c991a2fb --- /dev/null +++ b/src/models/media/width.yaml @@ -0,0 +1,10 @@ +type: object +required: + - width +description: "Video width in pixels." +properties: + width: + type: integer + format: int32 + description: "Video width in pixels." + example: 3840 \ No newline at end of file diff --git a/src/paths/library/metadata/[ratingKey]/get-media-meta-data.yaml b/src/paths/library/metadata/[ratingKey]/get-media-meta-data.yaml index 4c2533b4..a7431610 100644 --- a/src/paths/library/metadata/[ratingKey]/get-media-meta-data.yaml +++ b/src/paths/library/metadata/[ratingKey]/get-media-meta-data.yaml @@ -198,8 +198,105 @@ get: - type: object properties: Media: - allOf: - - $ref: "../../../../models/Media-data.yaml" + type: array + items: + allOf: + - $ref: "../../../../models/media/id.yaml" + - $ref: "../../../../models/media/duration.yaml" + - $ref: "../../../../models/media/bitrate.yaml" + - $ref: "../../../../models/media/width.yaml" + - $ref: "../../../../models/media/height.yaml" + - $ref: "../../../../models/media/aspect-ratio.yaml" + - $ref: "../../../../models/media/audio-channels.yaml" + - $ref: "../../../../models/media/display-offset.yaml" + - $ref: "../../../../models/media/audio-codec.yaml" + - $ref: "../../../../models/media/video-codec.yaml" + - $ref: "../../../../models/media/video-resolution.yaml" + - $ref: "../../../../models/media/container.yaml" + - $ref: "../../../../models/media/video-frame-rate.yaml" + - $ref: "../../../../models/media/video-profile.yaml" + - $ref: "../../../../models/media/has-voice-activity.yaml" + - $ref: "../../../../models/media/audio-profile.yaml" + - $ref: "../../../../models/media/optimized-for-streaming.yaml" + - $ref: "../../../../models/media/has-64bit-offsets.yaml" + - type: object + properties: + Part: + type: array + items: + allOf: + - $ref: "../../../../models/media/part/accessible.yaml" + - $ref: "../../../../models/media/part/exists.yaml" + - $ref: "../../../../models/media/part/id.yaml" + - $ref: "../../../../models/media/part/key.yaml" + - $ref: "../../../../models/media/part/indexes.yaml" + - $ref: "../../../../models/media/part/duration.yaml" + - $ref: "../../../../models/media/part/file.yaml" + - $ref: "../../../../models/media/part/size.yaml" + - $ref: "../../../../models/media/part/packet-length.yaml" + - $ref: "../../../../models/media/part/container.yaml" + - $ref: "../../../../models/media/part/video-profile.yaml" + - $ref: "../../../../models/media/part/audio-profile.yaml" + - $ref: "../../../../models/media/part/has-64bit-offsets.yaml" + - $ref: "../../../../models/media/part/optimized-for-streaming.yaml" + - $ref: "../../../../models/media/part/has-thumbnail.yaml" + - type: object + properties: + Stream: + type: array + items: + allOf: + - $ref: "../../../../models/media/part/stream/id.yaml" + - $ref: "../../../../models/media/part/stream/stream-type.yaml" + - $ref: "../../../../models/media/part/stream/format.yaml" + - $ref: "../../../../models/media/part/stream/default.yaml" + - $ref: "../../../../models/media/part/stream/codec.yaml" + - $ref: "../../../../models/media/part/stream/index.yaml" + - $ref: "../../../../models/media/part/stream/bitrate.yaml" + - $ref: "../../../../models/media/part/stream/language.yaml" + - $ref: "../../../../models/media/part/stream/language-tag.yaml" + - $ref: "../../../../models/media/part/stream/language-code.yaml" + - $ref: "../../../../models/media/part/stream/header-compression.yaml" + - $ref: "../../../../models/media/part/stream/dovi-bl-compat-id.yaml" + - $ref: "../../../../models/media/part/stream/dovi-bl-present.yaml" + - $ref: "../../../../models/media/part/stream/dovi-el-present.yaml" + - $ref: "../../../../models/media/part/stream/dovi-level.yaml" + - $ref: "../../../../models/media/part/stream/dovi-present.yaml" + - $ref: "../../../../models/media/part/stream/dovi-profile.yaml" + - $ref: "../../../../models/media/part/stream/dovi-rpu-present.yaml" + - $ref: "../../../../models/media/part/stream/dovi-version.yaml" + - $ref: "../../../../models/media/part/stream/bit-depth.yaml" + - $ref: "../../../../models/media/part/stream/chroma-location.yaml" + - $ref: "../../../../models/media/part/stream/chroma-subsampling.yaml" + - $ref: "../../../../models/media/part/stream/coded-height.yaml" + - $ref: "../../../../models/media/part/stream/coded-width.yaml" + - $ref: "../../../../models/media/part/stream/closed-captions.yaml" + - $ref: "../../../../models/media/part/stream/color-primaries.yaml" + - $ref: "../../../../models/media/part/stream/color-range.yaml" + - $ref: "../../../../models/media/part/stream/color-space.yaml" + - $ref: "../../../../models/media/part/stream/color-trc.yaml" + - $ref: "../../../../models/media/part/stream/frame-rate.yaml" + - $ref: "../../../../models/media/part/stream/key.yaml" + - $ref: "../../../../models/media/part/stream/height.yaml" + - $ref: "../../../../models/media/part/stream/level.yaml" + - $ref: "../../../../models/media/part/stream/original.yaml" + - $ref: "../../../../models/media/part/stream/has-scaling-matrix.yaml" + - $ref: "../../../../models/media/part/stream/profile.yaml" + - $ref: "../../../../models/media/part/stream/scan-type.yaml" + - $ref: "../../../../models/media/part/stream/embedded-in-video.yaml" + - $ref: "../../../../models/media/part/stream/ref-frames.yaml" + - $ref: "../../../../models/media/part/stream/width.yaml" + - $ref: "../../../../models/media/part/stream/display-title.yaml" + - $ref: "../../../../models/media/part/stream/extended-display-title.yaml" + - $ref: "../../../../models/media/part/stream/selected.yaml" + - $ref: "../../../../models/media/part/stream/forced.yaml" + - $ref: "../../../../models/media/part/stream/channels.yaml" + - $ref: "../../../../models/media/part/stream/audio-channel-layout.yaml" + - $ref: "../../../../models/media/part/stream/sampling-rate.yaml" + - $ref: "../../../../models/media/part/stream/can-auto-sync.yaml" + - $ref: "../../../../models/media/part/stream/hearing-impaired.yaml" + - $ref: "../../../../models/media/part/stream/dub.yaml" + - $ref: "../../../../models/media/part/stream/title.yaml" Genre: type: array items: