diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 5e9b254..fc941e2 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: aa9449e7-c19d-411d-b8e2-f9c5fe982f6f management: - docChecksum: 71aea44b27d124ce7bc7da09090777b5 + docChecksum: 68de03e6e877c4fc50ebfdd47bb117ac docVersion: 0.0.3 speakeasyVersion: 1.513.4 generationVersion: 2.545.4 - releaseVersion: 0.7.6 - configChecksum: fd67364d0363e2af9f89c9f90e061969 + releaseVersion: 0.7.7 + configChecksum: 8d77b95580838252b22ddb9bb7d067a0 repoURL: https://github.com/LukeHagar/plexruby.git repoSubDirectory: . installationURL: https://github.com/LukeHagar/plexruby @@ -155,6 +155,7 @@ generatedFiles: - docs/models/operations/getallmedialibraryfieldtype.md - docs/models/operations/getallmedialibraryfilter.md - docs/models/operations/getallmedialibrarygenre.md + - docs/models/operations/getallmedialibraryguids.md - docs/models/operations/getallmedialibraryhasthumbnail.md - docs/models/operations/getallmedialibraryimage.md - docs/models/operations/getallmedialibrarylibraryerrors.md @@ -304,13 +305,10 @@ generatedFiles: - docs/models/operations/getlibraryitemscountry.md - docs/models/operations/getlibraryitemsdefaultdirection.md - docs/models/operations/getlibraryitemsdirector.md - - docs/models/operations/getlibraryitemsenablecreditsmarkergeneration.md - - docs/models/operations/getlibraryitemsepisodesort.md - docs/models/operations/getlibraryitemserrors.md - docs/models/operations/getlibraryitemsfield.md - docs/models/operations/getlibraryitemsfieldtype.md - docs/models/operations/getlibraryitemsfilter.md - - docs/models/operations/getlibraryitemsflattenseasons.md - docs/models/operations/getlibraryitemsgenre.md - docs/models/operations/getlibraryitemshasthumbnail.md - docs/models/operations/getlibraryitemsimage.md @@ -328,12 +326,9 @@ generatedFiles: - docs/models/operations/getlibraryitemslocation.md - docs/models/operations/getlibraryitemsmedia.md - docs/models/operations/getlibraryitemsmediacontainer.md - - docs/models/operations/getlibraryitemsmediaguid.md - docs/models/operations/getlibraryitemsmeta.md - docs/models/operations/getlibraryitemsmetadata.md - - docs/models/operations/getlibraryitemsmetadatarating.md - docs/models/operations/getlibraryitemsoperator.md - - docs/models/operations/getlibraryitemsoptimizedforstreaming.md - docs/models/operations/getlibraryitemspart.md - docs/models/operations/getlibraryitemsqueryparamincludemeta.md - docs/models/operations/getlibraryitemsqueryparamtype.md @@ -341,7 +336,6 @@ generatedFiles: - docs/models/operations/getlibraryitemsresponse.md - docs/models/operations/getlibraryitemsresponsebody.md - docs/models/operations/getlibraryitemsrole.md - - docs/models/operations/getlibraryitemsshowordering.md - docs/models/operations/getlibraryitemssort.md - docs/models/operations/getlibraryitemsstream.md - docs/models/operations/getlibraryitemstype.md @@ -362,10 +356,12 @@ generatedFiles: - docs/models/operations/getmediametadatamediacontainer.md - docs/models/operations/getmediametadatametadata.md - docs/models/operations/getmediametadatapart.md + - docs/models/operations/getmediametadataproducer.md - docs/models/operations/getmediametadatarequest.md - docs/models/operations/getmediametadataresponse.md - docs/models/operations/getmediametadataresponsebody.md - docs/models/operations/getmediametadatarole.md + - docs/models/operations/getmediametadatasimilar.md - docs/models/operations/getmediametadatastream.md - docs/models/operations/getmediametadataultrablurcolors.md - docs/models/operations/getmediametadataunauthorized.md @@ -395,18 +391,6 @@ generatedFiles: - docs/models/operations/getmyplexaccountresponsebody.md - docs/models/operations/getmyplexaccountservererrors.md - docs/models/operations/getmyplexaccountunauthorized.md - - docs/models/operations/getondeckbadrequest.md - - docs/models/operations/getondeckerrors.md - - docs/models/operations/getondeckguids.md - - docs/models/operations/getondecklibraryerrors.md - - docs/models/operations/getondeckmedia.md - - docs/models/operations/getondeckmediacontainer.md - - docs/models/operations/getondeckmetadata.md - - docs/models/operations/getondeckpart.md - - docs/models/operations/getondeckresponse.md - - docs/models/operations/getondeckresponsebody.md - - docs/models/operations/getondeckstream.md - - docs/models/operations/getondeckunauthorized.md - docs/models/operations/getpinauthpincontainer.md - docs/models/operations/getpinbadrequest.md - docs/models/operations/getpinerrors.md @@ -831,6 +815,7 @@ generatedFiles: - docs/models/operations/queryparamonlytransient.md - docs/models/operations/queryparamsmart.md - docs/models/operations/queryparamtype.md + - docs/models/operations/rating.md - docs/models/operations/ratings.md - docs/models/operations/release.md - docs/models/operations/responsebody.md @@ -1080,6 +1065,7 @@ generatedFiles: - lib/plex_ruby_sdk/models/operations/get_all_media_library_fieldtype.rb - lib/plex_ruby_sdk/models/operations/get_all_media_library_filter.rb - lib/plex_ruby_sdk/models/operations/get_all_media_library_genre.rb + - lib/plex_ruby_sdk/models/operations/get_all_media_library_guids.rb - lib/plex_ruby_sdk/models/operations/get_all_media_library_hasthumbnail.rb - lib/plex_ruby_sdk/models/operations/get_all_media_library_image.rb - lib/plex_ruby_sdk/models/operations/get_all_media_library_library_errors.rb @@ -1150,13 +1136,10 @@ generatedFiles: - lib/plex_ruby_sdk/models/operations/get_library_items_country.rb - lib/plex_ruby_sdk/models/operations/get_library_items_defaultdirection.rb - lib/plex_ruby_sdk/models/operations/get_library_items_director.rb - - lib/plex_ruby_sdk/models/operations/get_library_items_enablecreditsmarkergeneration.rb - - lib/plex_ruby_sdk/models/operations/get_library_items_episodesort.rb - lib/plex_ruby_sdk/models/operations/get_library_items_errors.rb - lib/plex_ruby_sdk/models/operations/get_library_items_field.rb - lib/plex_ruby_sdk/models/operations/get_library_items_fieldtype.rb - lib/plex_ruby_sdk/models/operations/get_library_items_filter.rb - - lib/plex_ruby_sdk/models/operations/get_library_items_flattenseasons.rb - lib/plex_ruby_sdk/models/operations/get_library_items_genre.rb - lib/plex_ruby_sdk/models/operations/get_library_items_hasthumbnail.rb - lib/plex_ruby_sdk/models/operations/get_library_items_image.rb @@ -1174,12 +1157,9 @@ generatedFiles: - lib/plex_ruby_sdk/models/operations/get_library_items_location.rb - lib/plex_ruby_sdk/models/operations/get_library_items_media.rb - lib/plex_ruby_sdk/models/operations/get_library_items_mediacontainer.rb - - lib/plex_ruby_sdk/models/operations/get_library_items_mediaguid.rb - lib/plex_ruby_sdk/models/operations/get_library_items_meta.rb - lib/plex_ruby_sdk/models/operations/get_library_items_metadata.rb - - lib/plex_ruby_sdk/models/operations/get_library_items_metadatarating.rb - lib/plex_ruby_sdk/models/operations/get_library_items_operator.rb - - lib/plex_ruby_sdk/models/operations/get_library_items_optimizedforstreaming.rb - lib/plex_ruby_sdk/models/operations/get_library_items_part.rb - lib/plex_ruby_sdk/models/operations/get_library_items_queryparam_includemeta.rb - lib/plex_ruby_sdk/models/operations/get_library_items_queryparam_type.rb @@ -1187,7 +1167,6 @@ generatedFiles: - lib/plex_ruby_sdk/models/operations/get_library_items_response.rb - lib/plex_ruby_sdk/models/operations/get_library_items_responsebody.rb - lib/plex_ruby_sdk/models/operations/get_library_items_role.rb - - lib/plex_ruby_sdk/models/operations/get_library_items_showordering.rb - lib/plex_ruby_sdk/models/operations/get_library_items_sort.rb - lib/plex_ruby_sdk/models/operations/get_library_items_stream.rb - lib/plex_ruby_sdk/models/operations/get_library_items_type.rb @@ -1208,10 +1187,12 @@ generatedFiles: - lib/plex_ruby_sdk/models/operations/get_media_meta_data_mediacontainer.rb - lib/plex_ruby_sdk/models/operations/get_media_meta_data_metadata.rb - lib/plex_ruby_sdk/models/operations/get_media_meta_data_part.rb + - lib/plex_ruby_sdk/models/operations/get_media_meta_data_producer.rb - lib/plex_ruby_sdk/models/operations/get_media_meta_data_request.rb - lib/plex_ruby_sdk/models/operations/get_media_meta_data_response.rb - lib/plex_ruby_sdk/models/operations/get_media_meta_data_responsebody.rb - lib/plex_ruby_sdk/models/operations/get_media_meta_data_role.rb + - lib/plex_ruby_sdk/models/operations/get_media_meta_data_similar.rb - lib/plex_ruby_sdk/models/operations/get_media_meta_data_stream.rb - lib/plex_ruby_sdk/models/operations/get_media_meta_data_ultrablurcolors.rb - lib/plex_ruby_sdk/models/operations/get_media_meta_data_unauthorized.rb @@ -1435,18 +1416,6 @@ generatedFiles: - lib/plex_ruby_sdk/models/operations/getmyplexaccount_responsebody.rb - lib/plex_ruby_sdk/models/operations/getmyplexaccount_server_errors.rb - lib/plex_ruby_sdk/models/operations/getmyplexaccount_unauthorized.rb - - lib/plex_ruby_sdk/models/operations/getondeck_badrequest.rb - - lib/plex_ruby_sdk/models/operations/getondeck_errors.rb - - lib/plex_ruby_sdk/models/operations/getondeck_guids.rb - - lib/plex_ruby_sdk/models/operations/getondeck_library_errors.rb - - lib/plex_ruby_sdk/models/operations/getondeck_media.rb - - lib/plex_ruby_sdk/models/operations/getondeck_mediacontainer.rb - - lib/plex_ruby_sdk/models/operations/getondeck_metadata.rb - - lib/plex_ruby_sdk/models/operations/getondeck_part.rb - - lib/plex_ruby_sdk/models/operations/getondeck_response.rb - - lib/plex_ruby_sdk/models/operations/getondeck_responsebody.rb - - lib/plex_ruby_sdk/models/operations/getondeck_stream.rb - - lib/plex_ruby_sdk/models/operations/getondeck_unauthorized.rb - lib/plex_ruby_sdk/models/operations/getpin_authpincontainer.rb - lib/plex_ruby_sdk/models/operations/getpin_badrequest.rb - lib/plex_ruby_sdk/models/operations/getpin_errors.rb @@ -1756,6 +1725,7 @@ generatedFiles: - lib/plex_ruby_sdk/models/operations/queryparam_onlytransient.rb - lib/plex_ruby_sdk/models/operations/queryparam_smart.rb - lib/plex_ruby_sdk/models/operations/queryparam_type.rb + - lib/plex_ruby_sdk/models/operations/rating.rb - lib/plex_ruby_sdk/models/operations/ratings.rb - lib/plex_ruby_sdk/models/operations/release.rb - lib/plex_ruby_sdk/models/operations/responsebody.rb @@ -2272,7 +2242,7 @@ examples: X-Plex-Container-Size: 50 responses: "200": - application/json: {"MediaContainer": {"size": 50, "identifier": "com.plexapp.plugins.library", "allowSync": false, "Meta": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": [{"key": "=", "title": "is"}]}, {"type": "tag", "Operator": []}, {"type": "tag", "Operator": []}]}, "Metadata": [{"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "studio": "20th Century Studios", "skipChildren": false, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "type": "movie", "title": "Avatar: The Way of Water", "slug": "4-for-texas", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "seasonCount": 2022, "tagline": "Return to Pandora.", "flattenSeasons": "1", "episodeSort": "0", "enableCreditsMarkerGeneration": "-1", "showOrdering": "absolute", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "banner": "/library/metadata/58683/banner/1703239236", "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "grandparentRatingKey": "66", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "parentSlug": "alice-in-borderland-2020", "grandparentSlug": "alice-in-borderland-2020", "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}], "Genre": [{"tag": "Adventure"}], "Country": [{"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}, {"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}], "Role": [{"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}], "Location": [{"path": "/TV Shows/House"}, {"path": "/TV Shows/House"}, {"path": "/TV Shows/House"}], "Guid": [{"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}, {"image": "themoviedb://image.rating", "value": 3, "type": "audience"}, {"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "titleSort": "Whale", "viewCount": 1, "lastViewedAt": 1682752242, "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "viewOffset": 5222500, "skipCount": 1, "index": 1, "theme": "/library/metadata/1/theme/1705636920", "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "parentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentStudio": "UCP", "parentKey": "/library/metadata/66", "parentTitle": "Caprica", "parentIndex": 1, "parentYear": 2010, "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTheme": "/library/metadata/66/theme/1705716261"}, {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "studio": "20th Century Studios", "skipChildren": false, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "type": "movie", "title": "Avatar: The Way of Water", "slug": "4-for-texas", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "seasonCount": 2022, "tagline": "Return to Pandora.", "flattenSeasons": "1", "episodeSort": "0", "enableCreditsMarkerGeneration": "-1", "showOrdering": "absolute", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "banner": "/library/metadata/58683/banner/1703239236", "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "grandparentRatingKey": "66", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "parentSlug": "alice-in-borderland-2020", "grandparentSlug": "alice-in-borderland-2020", "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": []}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}], "Genre": [{"tag": "Adventure"}], "Country": [{"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}, {"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}, {"tag": "Working NL Subs"}], "Role": [{"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}], "Location": [{"path": "/TV Shows/House"}], "Guid": [{"id": "imdb://tt13015952"}, {"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "titleSort": "Whale", "viewCount": 1, "lastViewedAt": 1682752242, "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "viewOffset": 5222500, "skipCount": 1, "index": 1, "theme": "/library/metadata/1/theme/1705636920", "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "parentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentStudio": "UCP", "parentKey": "/library/metadata/66", "parentTitle": "Caprica", "parentIndex": 1, "parentYear": 2010, "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTheme": "/library/metadata/66/theme/1705716261"}]}} + application/json: {"MediaContainer": {"size": 50, "totalSize": 50, "offset": 0, "allowSync": false, "identifier": "com.plexapp.plugins.library", "Meta": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": [{"key": "=", "title": "is"}]}, {"type": "tag", "Operator": []}, {"type": "tag", "Operator": []}]}, "Metadata": [{"addedAt": 1556281940, "art": "/library/metadata/58683/art/1703239236", "audienceRatingImage": "rottentomatoes://image.rating.upright", "audienceRating": 9.2, "chapterSource": "media", "childCount": 1, "contentRating": "PG-13", "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "duration": 11558112, "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentRatingKey": "66", "grandparentSlug": "alice-in-borderland-2020", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTitle": "Caprica", "guid": "plex://movie/5d7768ba96b655001fdc0408", "index": 1, "key": "/library/metadata/58683", "lastRatedAt": 1721813113, "lastViewedAt": 1682752242, "leafCount": 14, "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "librarySectionTitle": "Movies", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "originallyAvailableAt": "2022-12-14", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentIndex": 1, "parentKey": "/library/metadata/66", "parentRatingKey": "66", "parentSlug": "alice-in-borderland-2020", "parentStudio": "UCP", "parentTheme": "/library/metadata/66/theme/1705716261", "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTitle": "Caprica", "parentYear": 2010, "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "ratingKey": "58683", "rating": 7.6, "seasonCount": 2022, "skipCount": 1, "slug": "4-for-texas", "studio": "20th Century Studios", "subtype": "clip", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "tagline": "Return to Pandora.", "theme": "/library/metadata/1/theme/1705636920", "thumb": "/library/metadata/58683/thumb/1703239236", "titleSort": "Whale", "title": "Avatar: The Way of Water", "type": "movie", "updatedAt": 1556281940, "userRating": 10, "viewCount": 1, "viewOffset": 5222500, "viewedLeafCount": 0, "year": 2022, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"id": 259, "filter": "genre=19", "tag": "Crime"}], "Country": [{"id": 259, "tag": "United States of America", "filter": "country=19"}], "Director": [{"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}], "Writer": [{"id": 126522, "filter": "writer=126522", "tag": "Jamie P. Hanson", "tagKey": "5d77683d85719b001f3a535e"}], "Role": [{"id": 126522, "filter": "actor=126522", "tag": "Teller", "tagKey": "5d77683d85719b001f3a535e", "role": "Self - Judge", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "filter": "actor=126522", "tag": "Teller", "tagKey": "5d77683d85719b001f3a535e", "role": "Self - Judge", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "filter": "actor=126522", "tag": "Teller", "tagKey": "5d77683d85719b001f3a535e", "role": "Self - Judge", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Producer": [{"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Rating": [{"image": "imdb://image.rating", "value": 5.1, "type": "audience"}, {"image": "imdb://image.rating", "value": 5.1, "type": "audience"}, {"image": "imdb://image.rating", "value": 5.1, "type": "audience"}], "Similar": [{"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}, {"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}, {"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}], "Location": [{"path": "/TV Shows/Clarkson's Farm"}, {"path": "/TV Shows/Clarkson's Farm"}, {"path": "/TV Shows/Clarkson's Farm"}], "Guid": [{"id": "tvdb://2337"}], "Collection": [{"tag": "My Awesome Collection"}]}, {"addedAt": 1556281940, "art": "/library/metadata/58683/art/1703239236", "audienceRatingImage": "rottentomatoes://image.rating.upright", "audienceRating": 9.2, "chapterSource": "media", "childCount": 1, "contentRating": "PG-13", "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "duration": 11558112, "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentRatingKey": "66", "grandparentSlug": "alice-in-borderland-2020", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTitle": "Caprica", "guid": "plex://movie/5d7768ba96b655001fdc0408", "index": 1, "key": "/library/metadata/58683", "lastRatedAt": 1721813113, "lastViewedAt": 1682752242, "leafCount": 14, "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "librarySectionTitle": "Movies", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "originallyAvailableAt": "2022-12-14", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentIndex": 1, "parentKey": "/library/metadata/66", "parentRatingKey": "66", "parentSlug": "alice-in-borderland-2020", "parentStudio": "UCP", "parentTheme": "/library/metadata/66/theme/1705716261", "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTitle": "Caprica", "parentYear": 2010, "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "ratingKey": "58683", "rating": 7.6, "seasonCount": 2022, "skipCount": 1, "slug": "4-for-texas", "studio": "20th Century Studios", "subtype": "clip", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "tagline": "Return to Pandora.", "theme": "/library/metadata/1/theme/1705636920", "thumb": "/library/metadata/58683/thumb/1703239236", "titleSort": "Whale", "title": "Avatar: The Way of Water", "type": "movie", "updatedAt": 1556281940, "userRating": 10, "viewCount": 1, "viewOffset": 5222500, "viewedLeafCount": 0, "year": 2022, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": []}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"id": 259, "filter": "genre=19", "tag": "Crime"}], "Country": [{"id": 259, "tag": "United States of America", "filter": "country=19"}], "Director": [{"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}], "Writer": [{"id": 126522, "filter": "writer=126522", "tag": "Jamie P. Hanson", "tagKey": "5d77683d85719b001f3a535e"}], "Role": [{"id": 126522, "filter": "actor=126522", "tag": "Teller", "tagKey": "5d77683d85719b001f3a535e", "role": "Self - Judge", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "filter": "actor=126522", "tag": "Teller", "tagKey": "5d77683d85719b001f3a535e", "role": "Self - Judge", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Producer": [{"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Rating": [{"image": "imdb://image.rating", "value": 5.1, "type": "audience"}], "Similar": [{"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}, {"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}], "Location": [{"path": "/TV Shows/Clarkson's Farm"}], "Guid": [{"id": "tvdb://2337"}, {"id": "tvdb://2337"}], "Collection": [{"tag": "My Awesome Collection"}, {"tag": "My Awesome Collection"}]}]}} getLibraryHubs: speakeasy-default-get-library-hubs: parameters: @@ -2975,7 +2945,7 @@ examples: asyncRefreshLocalMediaAgent: true responses: "200": - application/json: {"MediaContainer": {"size": 50, "allowSync": false, "identifier": "com.plexapp.plugins.library", "librarySectionID": 2, "librarySectionTitle": "TV Series", "librarySectionUUID": "e69655a2-ef48-4aba-bb19-0cc34d1e7d36", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "Metadata": [{"ratingKey": "44288", "parentRatingKey": "48047", "grandparentRatingKey": "45520", "parentGuid": "plex://season/618b89208dde18df707ad15c", "grandparentGuid": "plex://show/5e16253691c20300412003a8", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/45520", "parentKey": "/library/metadata/48047", "key": "/library/metadata/44288/children", "guid": "plex://show/5d9c08254eefaa001f5d6dcb", "slug": "better-call-saul", "studio": "Sony Pictures Television", "type": "show", "title": "Better Call Saul", "originalTitle": "Wicked: Part I", "librarySectionTitle": "TV Series ", "librarySectionID": 2, "librarySectionKey": "/library/sections/2", "contentRating": "TV-MA", "summary": "Before Saul Goodman, he was Jimmy McGill. And if you're calling Jimmy, you're in real trouble. The prequel to \"Breaking Bad\" follows small-time attorney, Jimmy McGill, as he transforms into Walter White's morally challenged lawyer, Saul Goodman.", "index": 1, "grandparentTitle": "Alice in Borderland", "parentTitle": "Season 2", "audienceRating": 8.7, "viewCount": 4, "skipCount": 1, "lastViewedAt": 1625764795, "year": 2015, "rating": 6, "ratingImage": "rottentomatoes://image.rating.ripe", "tagline": "Make the call", "chapterSource": "media", "primaryExtraKey": "/library/metadata/134704", "thumb": "/library/metadata/44288/thumb/1736487993", "art": "/library/metadata/44288/art/1736487993", "theme": "/library/metadata/44288/theme/1736487993", "duration": 2700000, "originallyAvailableAt": "2015-02-08", "leafCount": 63, "viewedLeafCount": 4, "childCount": 6, "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "themoviedb://image.rating", "parentIndex": 2, "parentThumb": "/library/metadata/48047/thumb/1671800243", "grandparentThumb": "/library/metadata/45520/thumb/1736488003", "grandparentArt": "/library/metadata/45520/art/1736488003", "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": []}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": []}], "Image": [{"alt": "Better Call Saul", "type": "coverPoster", "url": "/library/metadata/44288/thumb/1736487993"}, {"alt": "Better Call Saul", "type": "coverPoster", "url": "/library/metadata/44288/thumb/1736487993"}], "UltraBlurColors": {"topLeft": "11333a", "topRight": "1d2721", "bottomRight": "5c451d", "bottomLeft": "372c10"}, "Genre": [{"id": 1057, "filter": "genre=1057", "tag": "Crime"}], "Country": [{"id": 58591, "filter": "country=58591", "tag": "United States of America"}, {"id": 58591, "filter": "country=58591", "tag": "United States of America"}], "Guid": [{"id": "imdb://tt3032476"}], "Rating": [{"image": "imdb://image.rating", "value": 9, "type": "audience"}], "Role": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Director": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Writer": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Producer": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Similar": [{"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}, {"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}, {"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}], "Location": [{"path": "/TV Shows/Better Call Saul"}]}, {"ratingKey": "44288", "parentRatingKey": "48047", "grandparentRatingKey": "45520", "parentGuid": "plex://season/618b89208dde18df707ad15c", "grandparentGuid": "plex://show/5e16253691c20300412003a8", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/45520", "parentKey": "/library/metadata/48047", "key": "/library/metadata/44288/children", "guid": "plex://show/5d9c08254eefaa001f5d6dcb", "slug": "better-call-saul", "studio": "Sony Pictures Television", "type": "show", "title": "Better Call Saul", "originalTitle": "Wicked: Part I", "librarySectionTitle": "TV Series ", "librarySectionID": 2, "librarySectionKey": "/library/sections/2", "contentRating": "TV-MA", "summary": "Before Saul Goodman, he was Jimmy McGill. And if you're calling Jimmy, you're in real trouble. The prequel to \"Breaking Bad\" follows small-time attorney, Jimmy McGill, as he transforms into Walter White's morally challenged lawyer, Saul Goodman.", "index": 1, "grandparentTitle": "Alice in Borderland", "parentTitle": "Season 2", "audienceRating": 8.7, "viewCount": 4, "skipCount": 1, "lastViewedAt": 1625764795, "year": 2015, "rating": 6, "ratingImage": "rottentomatoes://image.rating.ripe", "tagline": "Make the call", "chapterSource": "media", "primaryExtraKey": "/library/metadata/134704", "thumb": "/library/metadata/44288/thumb/1736487993", "art": "/library/metadata/44288/art/1736487993", "theme": "/library/metadata/44288/theme/1736487993", "duration": 2700000, "originallyAvailableAt": "2015-02-08", "leafCount": 63, "viewedLeafCount": 4, "childCount": 6, "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "themoviedb://image.rating", "parentIndex": 2, "parentThumb": "/library/metadata/48047/thumb/1671800243", "grandparentThumb": "/library/metadata/45520/thumb/1736488003", "grandparentArt": "/library/metadata/45520/art/1736488003", "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": []}], "Image": [], "UltraBlurColors": {"topLeft": "11333a", "topRight": "1d2721", "bottomRight": "5c451d", "bottomLeft": "372c10"}, "Genre": [{"id": 1057, "filter": "genre=1057", "tag": "Crime"}], "Country": [{"id": 58591, "filter": "country=58591", "tag": "United States of America"}, {"id": 58591, "filter": "country=58591", "tag": "United States of America"}], "Guid": [{"id": "imdb://tt3032476"}, {"id": "imdb://tt3032476"}], "Rating": [], "Role": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Director": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Writer": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Producer": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Similar": [{"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}, {"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}], "Location": [{"path": "/TV Shows/Better Call Saul"}, {"path": "/TV Shows/Better Call Saul"}]}, {"ratingKey": "44288", "parentRatingKey": "48047", "grandparentRatingKey": "45520", "parentGuid": "plex://season/618b89208dde18df707ad15c", "grandparentGuid": "plex://show/5e16253691c20300412003a8", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/45520", "parentKey": "/library/metadata/48047", "key": "/library/metadata/44288/children", "guid": "plex://show/5d9c08254eefaa001f5d6dcb", "slug": "better-call-saul", "studio": "Sony Pictures Television", "type": "show", "title": "Better Call Saul", "originalTitle": "Wicked: Part I", "librarySectionTitle": "TV Series ", "librarySectionID": 2, "librarySectionKey": "/library/sections/2", "contentRating": "TV-MA", "summary": "Before Saul Goodman, he was Jimmy McGill. And if you're calling Jimmy, you're in real trouble. The prequel to \"Breaking Bad\" follows small-time attorney, Jimmy McGill, as he transforms into Walter White's morally challenged lawyer, Saul Goodman.", "index": 1, "grandparentTitle": "Alice in Borderland", "parentTitle": "Season 2", "audienceRating": 8.7, "viewCount": 4, "skipCount": 1, "lastViewedAt": 1625764795, "year": 2015, "rating": 6, "ratingImage": "rottentomatoes://image.rating.ripe", "tagline": "Make the call", "chapterSource": "media", "primaryExtraKey": "/library/metadata/134704", "thumb": "/library/metadata/44288/thumb/1736487993", "art": "/library/metadata/44288/art/1736487993", "theme": "/library/metadata/44288/theme/1736487993", "duration": 2700000, "originallyAvailableAt": "2015-02-08", "leafCount": 63, "viewedLeafCount": 4, "childCount": 6, "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "themoviedb://image.rating", "parentIndex": 2, "parentThumb": "/library/metadata/48047/thumb/1671800243", "grandparentThumb": "/library/metadata/45520/thumb/1736488003", "grandparentArt": "/library/metadata/45520/art/1736488003", "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": []}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Image": [{"alt": "Better Call Saul", "type": "coverPoster", "url": "/library/metadata/44288/thumb/1736487993"}], "UltraBlurColors": {"topLeft": "11333a", "topRight": "1d2721", "bottomRight": "5c451d", "bottomLeft": "372c10"}, "Genre": [{"id": 1057, "filter": "genre=1057", "tag": "Crime"}], "Country": [{"id": 58591, "filter": "country=58591", "tag": "United States of America"}, {"id": 58591, "filter": "country=58591", "tag": "United States of America"}], "Guid": [], "Rating": [{"image": "imdb://image.rating", "value": 9, "type": "audience"}, {"image": "imdb://image.rating", "value": 9, "type": "audience"}], "Role": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Director": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Writer": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Producer": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Similar": [{"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}, {"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}], "Location": [{"path": "/TV Shows/Better Call Saul"}]}]}} + application/json: {"MediaContainer": {"size": 50, "allowSync": false, "identifier": "com.plexapp.plugins.library", "librarySectionID": 2, "librarySectionTitle": "TV Series", "librarySectionUUID": "e69655a2-ef48-4aba-bb19-0cc34d1e7d36", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "Metadata": [{"ratingKey": "44288", "parentRatingKey": "48047", "grandparentRatingKey": "45520", "parentGuid": "plex://season/618b89208dde18df707ad15c", "grandparentGuid": "plex://show/5e16253691c20300412003a8", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/45520", "parentKey": "/library/metadata/48047", "key": "/library/metadata/44288/children", "guid": "plex://show/5d9c08254eefaa001f5d6dcb", "slug": "better-call-saul", "studio": "Sony Pictures Television", "type": "show", "title": "Better Call Saul", "originalTitle": "Wicked: Part I", "librarySectionTitle": "TV Series ", "librarySectionID": 2, "librarySectionKey": "/library/sections/2", "contentRating": "TV-MA", "summary": "Before Saul Goodman, he was Jimmy McGill. And if you're calling Jimmy, you're in real trouble. The prequel to \"Breaking Bad\" follows small-time attorney, Jimmy McGill, as he transforms into Walter White's morally challenged lawyer, Saul Goodman.", "index": 1, "grandparentTitle": "Alice in Borderland", "parentTitle": "Season 2", "audienceRating": 8.7, "viewCount": 4, "skipCount": 1, "lastViewedAt": 1625764795, "year": 2015, "rating": 6, "ratingImage": "rottentomatoes://image.rating.ripe", "tagline": "Make the call", "chapterSource": "media", "primaryExtraKey": "/library/metadata/134704", "thumb": "/library/metadata/44288/thumb/1736487993", "art": "/library/metadata/44288/art/1736487993", "theme": "/library/metadata/44288/theme/1736487993", "duration": 2700000, "originallyAvailableAt": "2015-02-08", "leafCount": 63, "viewedLeafCount": 4, "childCount": 6, "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "themoviedb://image.rating", "parentIndex": 2, "parentThumb": "/library/metadata/48047/thumb/1671800243", "grandparentThumb": "/library/metadata/45520/thumb/1736488003", "grandparentArt": "/library/metadata/45520/art/1736488003", "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": []}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": []}], "Image": [{"alt": "Better Call Saul", "type": "coverPoster", "url": "/library/metadata/44288/thumb/1736487993"}, {"alt": "Better Call Saul", "type": "coverPoster", "url": "/library/metadata/44288/thumb/1736487993"}], "UltraBlurColors": {"topLeft": "11333a", "topRight": "1d2721", "bottomRight": "5c451d", "bottomLeft": "372c10"}, "Genre": [{"id": 1057, "filter": "genre=1057", "tag": "Crime"}], "Country": [{"id": 58591, "filter": "country=58591", "tag": "United States of America"}, {"id": 58591, "filter": "country=58591", "tag": "United States of America"}], "Guid": [{"id": "imdb://tt3032476"}], "Rating": [{"image": "imdb://image.rating", "value": 9, "type": "audience"}], "Role": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Director": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Writer": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Producer": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Similar": [{"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}, {"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}, {"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}], "Location": [{"path": "/TV Shows/Better Call Saul"}]}, {"ratingKey": "44288", "parentRatingKey": "48047", "grandparentRatingKey": "45520", "parentGuid": "plex://season/618b89208dde18df707ad15c", "grandparentGuid": "plex://show/5e16253691c20300412003a8", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/45520", "parentKey": "/library/metadata/48047", "key": "/library/metadata/44288/children", "guid": "plex://show/5d9c08254eefaa001f5d6dcb", "slug": "better-call-saul", "studio": "Sony Pictures Television", "type": "show", "title": "Better Call Saul", "originalTitle": "Wicked: Part I", "librarySectionTitle": "TV Series ", "librarySectionID": 2, "librarySectionKey": "/library/sections/2", "contentRating": "TV-MA", "summary": "Before Saul Goodman, he was Jimmy McGill. And if you're calling Jimmy, you're in real trouble. The prequel to \"Breaking Bad\" follows small-time attorney, Jimmy McGill, as he transforms into Walter White's morally challenged lawyer, Saul Goodman.", "index": 1, "grandparentTitle": "Alice in Borderland", "parentTitle": "Season 2", "audienceRating": 8.7, "viewCount": 4, "skipCount": 1, "lastViewedAt": 1625764795, "year": 2015, "rating": 6, "ratingImage": "rottentomatoes://image.rating.ripe", "tagline": "Make the call", "chapterSource": "media", "primaryExtraKey": "/library/metadata/134704", "thumb": "/library/metadata/44288/thumb/1736487993", "art": "/library/metadata/44288/art/1736487993", "theme": "/library/metadata/44288/theme/1736487993", "duration": 2700000, "originallyAvailableAt": "2015-02-08", "leafCount": 63, "viewedLeafCount": 4, "childCount": 6, "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "themoviedb://image.rating", "parentIndex": 2, "parentThumb": "/library/metadata/48047/thumb/1671800243", "grandparentThumb": "/library/metadata/45520/thumb/1736488003", "grandparentArt": "/library/metadata/45520/art/1736488003", "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": []}], "Image": [], "UltraBlurColors": {"topLeft": "11333a", "topRight": "1d2721", "bottomRight": "5c451d", "bottomLeft": "372c10"}, "Genre": [{"id": 1057, "filter": "genre=1057", "tag": "Crime"}], "Country": [{"id": 58591, "filter": "country=58591", "tag": "United States of America"}, {"id": 58591, "filter": "country=58591", "tag": "United States of America"}], "Guid": [{"id": "imdb://tt3032476"}, {"id": "imdb://tt3032476"}], "Rating": [], "Role": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Director": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Writer": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Producer": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Similar": [{"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}, {"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}], "Location": [{"path": "/TV Shows/Better Call Saul"}, {"path": "/TV Shows/Better Call Saul"}]}, {"ratingKey": "44288", "parentRatingKey": "48047", "grandparentRatingKey": "45520", "parentGuid": "plex://season/618b89208dde18df707ad15c", "grandparentGuid": "plex://show/5e16253691c20300412003a8", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/45520", "parentKey": "/library/metadata/48047", "key": "/library/metadata/44288/children", "guid": "plex://show/5d9c08254eefaa001f5d6dcb", "slug": "better-call-saul", "studio": "Sony Pictures Television", "type": "show", "title": "Better Call Saul", "originalTitle": "Wicked: Part I", "librarySectionTitle": "TV Series ", "librarySectionID": 2, "librarySectionKey": "/library/sections/2", "contentRating": "TV-MA", "summary": "Before Saul Goodman, he was Jimmy McGill. And if you're calling Jimmy, you're in real trouble. The prequel to \"Breaking Bad\" follows small-time attorney, Jimmy McGill, as he transforms into Walter White's morally challenged lawyer, Saul Goodman.", "index": 1, "grandparentTitle": "Alice in Borderland", "parentTitle": "Season 2", "audienceRating": 8.7, "viewCount": 4, "skipCount": 1, "lastViewedAt": 1625764795, "year": 2015, "rating": 6, "ratingImage": "rottentomatoes://image.rating.ripe", "tagline": "Make the call", "chapterSource": "media", "primaryExtraKey": "/library/metadata/134704", "thumb": "/library/metadata/44288/thumb/1736487993", "art": "/library/metadata/44288/art/1736487993", "theme": "/library/metadata/44288/theme/1736487993", "duration": 2700000, "originallyAvailableAt": "2015-02-08", "leafCount": 63, "viewedLeafCount": 4, "childCount": 6, "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "themoviedb://image.rating", "parentIndex": 2, "parentThumb": "/library/metadata/48047/thumb/1671800243", "grandparentThumb": "/library/metadata/45520/thumb/1736488003", "grandparentArt": "/library/metadata/45520/art/1736488003", "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": []}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Image": [{"alt": "Better Call Saul", "type": "coverPoster", "url": "/library/metadata/44288/thumb/1736487993"}], "UltraBlurColors": {"topLeft": "11333a", "topRight": "1d2721", "bottomRight": "5c451d", "bottomLeft": "372c10"}, "Genre": [{"id": 1057, "filter": "genre=1057", "tag": "Crime"}], "Country": [{"id": 58591, "filter": "country=58591", "tag": "United States of America"}, {"id": 58591, "filter": "country=58591", "tag": "United States of America"}], "Guid": [], "Rating": [{"image": "imdb://image.rating", "value": 9, "type": "audience"}, {"image": "imdb://image.rating", "value": 9, "type": "audience"}], "Role": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Director": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Writer": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Producer": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Similar": [{"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}, {"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}], "Location": [{"path": "/TV Shows/Better Call Saul"}]}]}} "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": @@ -2996,7 +2966,7 @@ examples: X-Plex-Container-Size: 50 responses: "200": - application/json: {"MediaContainer": {"size": 50, "totalSize": 50, "offset": 0, "allowSync": false, "art": "/:/resources/show-fanart.jpg", "content": "secondary", "identifier": "com.plexapp.plugins.library", "librarySectionID": 2, "librarySectionTitle": "TV Series", "librarySectionUUID": "e69655a2-ef48-4aba-bb19-0cc34d1e7d36", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "thumb": "/:/resources/show.png", "nocache": true, "title1": "TV Series", "title2": "By Starring Actor", "viewGroup": "secondary", "Meta": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": []}]}, "Metadata": [{"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "slug": "4-for-texas", "studio": "20th Century Studios", "type": "movie", "title": "Avatar: The Way of Water", "titleSort": "Whale", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "tagline": "Return to Pandora.", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "theme": "/library/metadata/1/theme/1705636920", "index": 1, "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "seasonCount": 2022, "duration": 11558112, "originallyAvailableAt": "2022-12-14", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "parentRatingKey": "66", "grandparentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/66", "parentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentArt": "/library/metadata/66/art/1705716261", "parentTitle": "Caprica", "parentIndex": 1, "parentThumb": "/library/metadata/66/thumb/1705716261", "ratingImage": "rottentomatoes://image.rating.ripe", "viewCount": 1, "viewOffset": 5222500, "skipCount": 1, "subtype": "clip", "lastRatedAt": 1721813113, "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "lastViewedAt": 1682752242, "userRating": 10, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": []}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"tag": "United States of America"}, {"tag": "United States of America"}, {"tag": "United States of America"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}], "Writer": [{"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}], "Role": [{"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}], "Guid": [{"id": "tvdb://2337"}, {"id": "tvdb://2337"}], "Collection": [{"tag": "My Awesome Collection"}]}]}} + application/json: {"MediaContainer": {"size": 50, "totalSize": 50, "offset": 0, "allowSync": false, "art": "/:/resources/show-fanart.jpg", "content": "secondary", "identifier": "com.plexapp.plugins.library", "librarySectionID": 2, "librarySectionTitle": "TV Series", "librarySectionUUID": "e69655a2-ef48-4aba-bb19-0cc34d1e7d36", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "thumb": "/:/resources/show.png", "nocache": true, "title1": "TV Series", "title2": "By Starring Actor", "viewGroup": "secondary", "Meta": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": []}]}, "Metadata": [{"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "slug": "4-for-texas", "studio": "20th Century Studios", "type": "movie", "title": "Avatar: The Way of Water", "titleSort": "Whale", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "tagline": "Return to Pandora.", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "theme": "/library/metadata/1/theme/1705636920", "index": 1, "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "seasonCount": 2022, "duration": 11558112, "originallyAvailableAt": "2022-12-14", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "parentRatingKey": "66", "grandparentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/66", "parentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentArt": "/library/metadata/66/art/1705716261", "parentTitle": "Caprica", "parentIndex": 1, "parentThumb": "/library/metadata/66/thumb/1705716261", "ratingImage": "rottentomatoes://image.rating.ripe", "viewCount": 1, "viewOffset": 5222500, "skipCount": 1, "subtype": "clip", "lastRatedAt": 1721813113, "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "lastViewedAt": 1682752242, "userRating": 10, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": []}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"tag": "Crime"}, {"tag": "Crime"}, {"tag": "Crime"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}], "Writer": [{"tag": "Jamie P. Hanson"}, {"tag": "Jamie P. Hanson"}], "Role": [{"tag": "Teller"}, {"tag": "Teller"}], "Guid": [{"id": "tvdb://2337"}, {"id": "tvdb://2337"}], "Collection": [{"tag": "My Awesome Collection"}]}]}} "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 64e77d3..72913d4 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -15,7 +15,7 @@ generation: oAuth2ClientCredentialsEnabled: false oAuth2PasswordEnabled: false ruby: - version: 0.7.6 + version: 0.7.7 author: LukeHagar description: Ruby Client SDK Generated by Speakeasy flattenGlobalSecurity: false diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index da00f11..e867f0e 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -9,19 +9,19 @@ sources: - main plexapi: sourceNamespace: plexapi - sourceRevisionDigest: sha256:bf7001af017ce5072c503bfbaf60793f94549163b517489dc53e4f7b685659c0 - sourceBlobDigest: sha256:ed2b29043c84f32d2efa92a126083fd9a81644a7ce9c6ac86d9aeb3493cbd6f8 + sourceRevisionDigest: sha256:2066ba94b55e21d651c79003e3cf402fb77c52a0969fc52310b3383fbed038f4 + sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351 tags: - latest - - speakeasy-sdk-regen-1741392402 + - speakeasy-sdk-regen-1741565240 targets: plexruby: source: plexapi sourceNamespace: plexapi - sourceRevisionDigest: sha256:bf7001af017ce5072c503bfbaf60793f94549163b517489dc53e4f7b685659c0 - sourceBlobDigest: sha256:ed2b29043c84f32d2efa92a126083fd9a81644a7ce9c6ac86d9aeb3493cbd6f8 + sourceRevisionDigest: sha256:2066ba94b55e21d651c79003e3cf402fb77c52a0969fc52310b3383fbed038f4 + sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351 codeSamplesNamespace: code-samples-ruby-plexruby - codeSamplesRevisionDigest: sha256:4259370282112655285050483b760855bebec41a60b5528b24ef2c82431a123f + codeSamplesRevisionDigest: sha256:9b35ca5755fbeff5addaa5826eaf72ccdd02eff16f325778789aff2fce0136c3 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/Gemfile.lock b/Gemfile.lock index 2cce13d..d9e05e2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - plex_ruby_sdk (0.7.6) + plex_ruby_sdk (0.7.7) faraday faraday-multipart rack diff --git a/README.md b/README.md index e6a873b..42c02fc 100644 --- a/README.md +++ b/README.md @@ -169,7 +169,6 @@ end * [get_media_meta_data](docs/sdks/library/README.md#get_media_meta_data) - Get Media Metadata * [get_metadata_children](docs/sdks/library/README.md#get_metadata_children) - Get Items Children * [get_top_watched_content](docs/sdks/library/README.md#get_top_watched_content) - Get Top Watched Content -* [get_on_deck](docs/sdks/library/README.md#get_on_deck) - Get On Deck ### [log](docs/sdks/log/README.md) diff --git a/RELEASES.md b/RELEASES.md index 1c9644e..afd18df 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -736,4 +736,14 @@ Based on: ### Generated - [ruby v0.7.6] . ### Releases -- [Ruby Gems v0.7.6] https://rubygems.org/gems/plex_ruby_sdk/versions/0.7.6 - . \ No newline at end of file +- [Ruby Gems v0.7.6] https://rubygems.org/gems/plex_ruby_sdk/versions/0.7.6 - . + +## 2025-03-10 00:07:04 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.513.4 (2.545.4) https://github.com/speakeasy-api/speakeasy +### Generated +- [ruby v0.7.7] . +### Releases +- [Ruby Gems v0.7.7] https://rubygems.org/gems/plex_ruby_sdk/versions/0.7.7 - . \ No newline at end of file diff --git a/codeSamples.yaml b/codeSamples.yaml index 5f095d0..a794616 100644 --- a/codeSamples.yaml +++ b/codeSamples.yaml @@ -641,25 +641,6 @@ actions: if ! res.bytes.nil? # handle response end - - target: $["paths"]["/library/onDeck"]["get"] - update: - x-codeSamples: - - lang: ruby - label: getOnDeck - source: |- - require 'plex_ruby_sdk' - - s = ::PlexRubySDK::PlexAPI.new( - security: ::PlexRubySDK::Shared::Security.new( - access_token: "", - ), - ) - - res = s.library.get_on_deck() - - if ! res.object.nil? - # handle response - end - target: $["paths"]["/library/recentlyAdded"]["get"] update: x-codeSamples: diff --git a/docs/models/operations/collection.md b/docs/models/operations/collection.md index 28cda9a..e3d1938 100644 --- a/docs/models/operations/collection.md +++ b/docs/models/operations/collection.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| --------------------- | --------------------- | --------------------- | --------------------- | --------------------- | -| `tag` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | Working NL Subs | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `tag` | *::String* | :heavy_check_mark: | The user-made collection this media item belongs to | My Awesome Collection | \ No newline at end of file diff --git a/docs/models/operations/country.md b/docs/models/operations/country.md index 622bcbb..b67313f 100644 --- a/docs/models/operations/country.md +++ b/docs/models/operations/country.md @@ -1,8 +1,12 @@ # Country +The filter query string for country media items. + ## Fields -| Field | Type | Required | Description | Example | -| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -| `tag` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | United States of America | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| `id` | *::Integer* | :heavy_check_mark: | N/A | 259 | +| `tag` | *::String* | :heavy_check_mark: | The country of origin of this media item | United States of America | +| `filter` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | country=19 | \ No newline at end of file diff --git a/docs/models/operations/director.md b/docs/models/operations/director.md index 2a61b96..ac17119 100644 --- a/docs/models/operations/director.md +++ b/docs/models/operations/director.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| --------------------- | --------------------- | --------------------- | --------------------- | --------------------- | -| `tag` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | James Cameron | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------- | -------------------- | -------------------- | -------------------- | -------------------- | +| `tag` | *::String* | :heavy_check_mark: | The role of Director | Danny Boyle | \ No newline at end of file diff --git a/docs/models/operations/genre.md b/docs/models/operations/genre.md index b3933da..6d82eaf 100644 --- a/docs/models/operations/genre.md +++ b/docs/models/operations/genre.md @@ -1,8 +1,12 @@ # Genre +The filter query string for similar items. + ## Fields -| Field | Type | Required | Description | Example | -| --------------------- | --------------------- | --------------------- | --------------------- | --------------------- | -| `tag` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | Adventure | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | +| `id` | *::Integer* | :heavy_check_mark: | N/A | 259 | +| `filter` | *::String* | :heavy_check_mark: | N/A | genre=19 | +| `tag` | *::String* | :heavy_check_mark: | The genre name of this media-item
| Crime | \ No newline at end of file diff --git a/docs/models/operations/getallmedialibrarygenre.md b/docs/models/operations/getallmedialibrarygenre.md index 4b0e8e8..221563e 100644 --- a/docs/models/operations/getallmedialibrarygenre.md +++ b/docs/models/operations/getallmedialibrarygenre.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | -| `tag` | *::String* | :heavy_check_mark: | The country of origin of this media item | United States of America | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | +| `tag` | *::String* | :heavy_check_mark: | The genre name of this media-item
| Crime | \ No newline at end of file diff --git a/docs/models/operations/getallmedialibraryguids.md b/docs/models/operations/getallmedialibraryguids.md new file mode 100644 index 0000000..b625c50 --- /dev/null +++ b/docs/models/operations/getallmedialibraryguids.md @@ -0,0 +1,8 @@ +# GetAllMediaLibraryGuids + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `id` | *T.nilable(::String)* | :heavy_minus_sign: | The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337
| tvdb://2337 | \ No newline at end of file diff --git a/docs/models/operations/getallmedialibrarymedia.md b/docs/models/operations/getallmedialibrarymedia.md index 37a1e5a..94ff74e 100644 --- a/docs/models/operations/getallmedialibrarymedia.md +++ b/docs/models/operations/getallmedialibrarymedia.md @@ -19,8 +19,8 @@ | `container` | *T.nilable(::String)* | :heavy_minus_sign: | File container type. | mkv | | `video_frame_rate` | *T.nilable(::String)* | :heavy_minus_sign: | Frame rate of the video. Values found include NTSC, PAL, 24p
| 24p | | `video_profile` | *T.nilable(::String)* | :heavy_minus_sign: | Video profile (e.g., main 10). | main 10 | -| `has_voice_activity` | *T::Boolean* | :heavy_check_mark: | Indicates whether voice activity is detected. | false | +| `has_voice_activity` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates whether voice activity is detected. | false | | `audio_profile` | *T.nilable(::String)* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | | `optimized_for_streaming` | *T.nilable(::Object)* | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | | `has64bit_offsets` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | -| `part` | T::Array<[::PlexRubySDK::Operations::GetAllMediaLibraryPart](../../models/operations/getallmedialibrarypart.md)> | :heavy_check_mark: | An array of parts for this media item. | | \ No newline at end of file +| `part` | T::Array<[::PlexRubySDK::Operations::GetAllMediaLibraryPart](../../models/operations/getallmedialibrarypart.md)> | :heavy_minus_sign: | An array of parts for this media item. | | \ No newline at end of file diff --git a/docs/models/operations/getallmedialibrarymetadata.md b/docs/models/operations/getallmedialibrarymetadata.md index 54e3a6c..8b77d88 100644 --- a/docs/models/operations/getallmedialibrarymetadata.md +++ b/docs/models/operations/getallmedialibrarymetadata.md @@ -20,7 +20,7 @@ Unknown | `summary` | *::String* | :heavy_check_mark: | A synopsis of the media item. | Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.
Once a familiar threat returns to finish what was previously started, Jake must
work with Neytiri and the army of the Na'vi race to protect their home.
| | `rating` | *::Float* | :heavy_check_mark: | The critic rating for the media item. | 7.6 | | `audience_rating` | *::Float* | :heavy_check_mark: | The audience rating for the media item. | 9.2 | -| `year` | *::Integer* | :heavy_check_mark: | The release year of the media item. | 2022 | +| `year` | *T.nilable(::Integer)* | :heavy_minus_sign: | The release year of the media item. | 2022 | | `tagline` | *::String* | :heavy_check_mark: | A brief tagline for the media item. | Return to Pandora. | | `thumb` | *::String* | :heavy_check_mark: | The thumbnail image URL for the media item. | /library/metadata/58683/thumb/1703239236 | | `art` | *::String* | :heavy_check_mark: | The art image URL for the media item. | /library/metadata/58683/art/1703239236 | @@ -70,5 +70,5 @@ Unknown | `director` | T::Array<[::PlexRubySDK::Operations::GetAllMediaLibraryDirector](../../models/operations/getallmedialibrarydirector.md)> | :heavy_minus_sign: | N/A | | | `writer` | T::Array<[::PlexRubySDK::Operations::GetAllMediaLibraryWriter](../../models/operations/getallmedialibrarywriter.md)> | :heavy_minus_sign: | N/A | | | `role` | T::Array<[::PlexRubySDK::Operations::GetAllMediaLibraryRole](../../models/operations/getallmedialibraryrole.md)> | :heavy_minus_sign: | N/A | | -| `guids` | T::Array<[::PlexRubySDK::Operations::Guids](../../models/operations/guids.md)> | :heavy_minus_sign: | N/A | | +| `guids` | T::Array<[::PlexRubySDK::Operations::GetAllMediaLibraryGuids](../../models/operations/getallmedialibraryguids.md)> | :heavy_minus_sign: | N/A | | | `collection` | T::Array<[::PlexRubySDK::Operations::GetAllMediaLibraryCollection](../../models/operations/getallmedialibrarycollection.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/getallmedialibraryrole.md b/docs/models/operations/getallmedialibraryrole.md index 91a7a30..f4f5960 100644 --- a/docs/models/operations/getallmedialibraryrole.md +++ b/docs/models/operations/getallmedialibraryrole.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| `tag` | *::String* | :heavy_check_mark: | The name of the actor for this role | Danny Boyle | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | +| `tag` | *::String* | :heavy_check_mark: | The display tag for the actor (typically the actor's name). | Teller | \ No newline at end of file diff --git a/docs/models/operations/getallmedialibrarystream.md b/docs/models/operations/getallmedialibrarystream.md index 72e6a6c..21c269b 100644 --- a/docs/models/operations/getallmedialibrarystream.md +++ b/docs/models/operations/getallmedialibrarystream.md @@ -11,9 +11,9 @@ | `codec` | *::String* | :heavy_check_mark: | Codec used by the stream. | hevc | | `index` | *::Integer* | :heavy_check_mark: | Index of the stream. | 0 | | `bitrate` | *T.nilable(::Integer)* | :heavy_minus_sign: | Bitrate of the stream. | 24743 | -| `language` | *::String* | :heavy_check_mark: | Language of the stream. | English | -| `language_tag` | *::String* | :heavy_check_mark: | Language tag (e.g., en). | en | -| `language_code` | *::String* | :heavy_check_mark: | ISO language code. | eng | +| `language` | *T.nilable(::String)* | :heavy_minus_sign: | Language of the stream. | English | +| `language_tag` | *T.nilable(::String)* | :heavy_minus_sign: | Language tag (e.g., en). | en | +| `language_code` | *T.nilable(::String)* | :heavy_minus_sign: | ISO language code. | eng | | `header_compression` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates whether header compression is enabled. | true | | `dovibl_compat_id` | *T.nilable(::Integer)* | :heavy_minus_sign: | Dolby Vision BL compatibility ID. | 1 | | `dovibl_present` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates if Dolby Vision BL is present. | true | @@ -28,6 +28,7 @@ | `chroma_subsampling` | *T.nilable(::String)* | :heavy_minus_sign: | Chroma subsampling format. | 4:2:0 | | `coded_height` | *T.nilable(::Integer)* | :heavy_minus_sign: | Coded video height. | 1608 | | `coded_width` | *T.nilable(::Integer)* | :heavy_minus_sign: | Coded video width. | 3840 | +| `closed_captions` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true | | `color_primaries` | *T.nilable(::String)* | :heavy_minus_sign: | Color primaries used. | bt2020 | | `color_range` | *T.nilable(::String)* | :heavy_minus_sign: | Color range (e.g., tv). | tv | | `color_space` | *T.nilable(::String)* | :heavy_minus_sign: | Color space. | bt2020nc | @@ -39,6 +40,7 @@ | `has_scaling_matrix` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | | `profile` | *T.nilable(::String)* | :heavy_minus_sign: | Video profile. | main 10 | | `scan_type` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | progressive | +| `embedded_in_video` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | progressive | | `ref_frames` | *T.nilable(::Integer)* | :heavy_minus_sign: | Number of reference frames. | 1 | | `width` | *T.nilable(::Integer)* | :heavy_minus_sign: | Width of the video stream. | 3840 | | `display_title` | *::String* | :heavy_check_mark: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | diff --git a/docs/models/operations/getallmedialibrarywriter.md b/docs/models/operations/getallmedialibrarywriter.md index c4747f7..1e2df79 100644 --- a/docs/models/operations/getallmedialibrarywriter.md +++ b/docs/models/operations/getallmedialibrarywriter.md @@ -5,4 +5,4 @@ | Field | Type | Required | Description | Example | | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `tag` | *::String* | :heavy_check_mark: | The role of Writer | Danny Boyle | \ No newline at end of file +| `tag` | *::String* | :heavy_check_mark: | The role of Writer | Jamie P. Hanson | \ No newline at end of file diff --git a/docs/models/operations/getlibraryitemsenablecreditsmarkergeneration.md b/docs/models/operations/getlibraryitemsenablecreditsmarkergeneration.md deleted file mode 100644 index aea9041..0000000 --- a/docs/models/operations/getlibraryitemsenablecreditsmarkergeneration.md +++ /dev/null @@ -1,11 +0,0 @@ -# GetLibraryItemsEnableCreditsMarkerGeneration - -Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). - - -## Values - -| Name | Value | -| ----------------- | ----------------- | -| `LIBRARY_DEFAULT` | -1 | -| `DISABLED` | 0 | \ No newline at end of file diff --git a/docs/models/operations/getlibraryitemsepisodesort.md b/docs/models/operations/getlibraryitemsepisodesort.md deleted file mode 100644 index a291880..0000000 --- a/docs/models/operations/getlibraryitemsepisodesort.md +++ /dev/null @@ -1,12 +0,0 @@ -# GetLibraryItemsEpisodeSort - -Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). - - -## Values - -| Name | Value | -| ----------------- | ----------------- | -| `LIBRARY_DEFAULT` | -1 | -| `OLDEST_FIRST` | 0 | -| `NEWEST_FIRST` | 1 | \ No newline at end of file diff --git a/docs/models/operations/getlibraryitemsflattenseasons.md b/docs/models/operations/getlibraryitemsflattenseasons.md deleted file mode 100644 index 8a8a1bc..0000000 --- a/docs/models/operations/getlibraryitemsflattenseasons.md +++ /dev/null @@ -1,12 +0,0 @@ -# GetLibraryItemsFlattenSeasons - -Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). - - -## Values - -| Name | Value | -| ----------------- | ----------------- | -| `LIBRARY_DEFAULT` | -1 | -| `HIDE` | 0 | -| `SHOW` | 1 | \ No newline at end of file diff --git a/docs/models/operations/getlibraryitemsmedia.md b/docs/models/operations/getlibraryitemsmedia.md index 153c008..5cf63bb 100644 --- a/docs/models/operations/getlibraryitemsmedia.md +++ b/docs/models/operations/getlibraryitemsmedia.md @@ -3,23 +3,23 @@ ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | -| `id` | *::Integer* | :heavy_check_mark: | N/A | 119534 | -| `duration` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 11558112 | -| `bitrate` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 25025 | -| `width` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 3840 | -| `height` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 2072 | -| `aspect_ratio` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 1.85 | -| `audio_profile` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | dts | -| `audio_channels` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 6 | -| `audio_codec` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | eac3 | -| `video_codec` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | hevc | -| `video_resolution` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | 4k | -| `container` | *::String* | :heavy_check_mark: | N/A | mkv | -| `video_frame_rate` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | 24p | -| `video_profile` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | main 10 | -| `has_voice_activity` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | -| `optimized_for_streaming` | [T.nilable(::PlexRubySDK::Operations::GetLibraryItemsOptimizedForStreaming)](../../models/operations/getlibraryitemsoptimizedforstreaming.md) | :heavy_minus_sign: | N/A | 1 | -| `has64bit_offsets` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | -| `part` | T::Array<[::PlexRubySDK::Operations::GetLibraryItemsPart](../../models/operations/getlibraryitemspart.md)> | :heavy_check_mark: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | +| `id` | *::Integer* | :heavy_check_mark: | N/A | 119534 | +| `duration` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 11558112 | +| `bitrate` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 25025 | +| `width` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 3840 | +| `height` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 2072 | +| `aspect_ratio` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 1.85 | +| `audio_profile` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | dts | +| `audio_channels` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 6 | +| `audio_codec` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | eac3 | +| `video_codec` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | hevc | +| `video_resolution` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | 4k | +| `container` | *::String* | :heavy_check_mark: | N/A | mkv | +| `video_frame_rate` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | 24p | +| `video_profile` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | main 10 | +| `has_voice_activity` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | +| `optimized_for_streaming` | [T.nilable(::PlexRubySDK::Operations::OptimizedForStreaming)](../../models/operations/optimizedforstreaming.md) | :heavy_minus_sign: | N/A | 1 | +| `has64bit_offsets` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | +| `part` | T::Array<[::PlexRubySDK::Operations::GetLibraryItemsPart](../../models/operations/getlibraryitemspart.md)> | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/getlibraryitemsmediaguid.md b/docs/models/operations/getlibraryitemsmediaguid.md deleted file mode 100644 index 29db75f..0000000 --- a/docs/models/operations/getlibraryitemsmediaguid.md +++ /dev/null @@ -1,8 +0,0 @@ -# GetLibraryItemsMediaGuid - - -## Fields - -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | -| `id` | *::String* | :heavy_check_mark: | Can be one of the following formats:
imdb://tt13015952, tmdb://2434012, tvdb://7945991
| imdb://tt13015952 | \ No newline at end of file diff --git a/docs/models/operations/getlibraryitemsmetadata.md b/docs/models/operations/getlibraryitemsmetadata.md index 8518f7c..c0c3432 100644 --- a/docs/models/operations/getlibraryitemsmetadata.md +++ b/docs/models/operations/getlibraryitemsmetadata.md @@ -23,10 +23,10 @@ | `year` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 2022 | | `season_count` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 2022 | | `tagline` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | Return to Pandora. | -| `flatten_seasons` | [T.nilable(::PlexRubySDK::Operations::GetLibraryItemsFlattenSeasons)](../../models/operations/getlibraryitemsflattenseasons.md) | :heavy_minus_sign: | Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). | 1 | -| `episode_sort` | [T.nilable(::PlexRubySDK::Operations::GetLibraryItemsEpisodeSort)](../../models/operations/getlibraryitemsepisodesort.md) | :heavy_minus_sign: | Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). | 0 | -| `enable_credits_marker_generation` | [T.nilable(::PlexRubySDK::Operations::GetLibraryItemsEnableCreditsMarkerGeneration)](../../models/operations/getlibraryitemsenablecreditsmarkergeneration.md) | :heavy_minus_sign: | Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). | -1 | -| `show_ordering` | [T.nilable(::PlexRubySDK::Operations::GetLibraryItemsShowOrdering)](../../models/operations/getlibraryitemsshowordering.md) | :heavy_minus_sign: | Setting that indicates the episode ordering for the show.
None = Library default,
tmdbAiring = The Movie Database (Aired),
aired = TheTVDB (Aired),
dvd = TheTVDB (DVD),
absolute = TheTVDB (Absolute)).
| absolute | +| `flatten_seasons` | [T.nilable(::PlexRubySDK::Operations::FlattenSeasons)](../../models/operations/flattenseasons.md) | :heavy_minus_sign: | Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). | 1 | +| `episode_sort` | [T.nilable(::PlexRubySDK::Operations::EpisodeSort)](../../models/operations/episodesort.md) | :heavy_minus_sign: | Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). | 0 | +| `enable_credits_marker_generation` | [T.nilable(::PlexRubySDK::Operations::EnableCreditsMarkerGeneration)](../../models/operations/enablecreditsmarkergeneration.md) | :heavy_minus_sign: | Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). | -1 | +| `show_ordering` | [T.nilable(::PlexRubySDK::Operations::ShowOrdering)](../../models/operations/showordering.md) | :heavy_minus_sign: | Setting that indicates the episode ordering for the show.
None = Library default,
tmdbAiring = The Movie Database (Aired),
aired = TheTVDB (Aired),
dvd = TheTVDB (DVD),
absolute = TheTVDB (Absolute)).
| absolute | | `thumb` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 | | `art` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 | | `banner` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/58683/banner/1703239236 | @@ -55,9 +55,9 @@ | `collection` | T::Array<[::PlexRubySDK::Operations::GetLibraryItemsCollection](../../models/operations/getlibraryitemscollection.md)> | :heavy_minus_sign: | N/A | | | `role` | T::Array<[::PlexRubySDK::Operations::GetLibraryItemsRole](../../models/operations/getlibraryitemsrole.md)> | :heavy_minus_sign: | N/A | | | `location` | T::Array<[::PlexRubySDK::Operations::GetLibraryItemsLocation](../../models/operations/getlibraryitemslocation.md)> | :heavy_minus_sign: | N/A | | -| `media_guid` | T::Array<[::PlexRubySDK::Operations::GetLibraryItemsMediaGuid](../../models/operations/getlibraryitemsmediaguid.md)> | :heavy_minus_sign: | The Guid object is only included in the response if the `includeGuids` parameter is set to `1`.
| | +| `media_guid` | T::Array<[::PlexRubySDK::Operations::MediaGuid](../../models/operations/mediaguid.md)> | :heavy_minus_sign: | The Guid object is only included in the response if the `includeGuids` parameter is set to `1`.
| | | `ultra_blur_colors` | [T.nilable(::PlexRubySDK::Operations::GetLibraryItemsUltraBlurColors)](../../models/operations/getlibraryitemsultrablurcolors.md) | :heavy_minus_sign: | N/A | | -| `meta_data_rating` | T::Array<[::PlexRubySDK::Operations::GetLibraryItemsMetaDataRating](../../models/operations/getlibraryitemsmetadatarating.md)> | :heavy_minus_sign: | N/A | | +| `meta_data_rating` | T::Array<[::PlexRubySDK::Operations::MetaDataRating](../../models/operations/metadatarating.md)> | :heavy_minus_sign: | N/A | | | `image` | T::Array<[::PlexRubySDK::Operations::GetLibraryItemsImage](../../models/operations/getlibraryitemsimage.md)> | :heavy_minus_sign: | N/A | | | `title_sort` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | Whale | | `view_count` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 1 | diff --git a/docs/models/operations/getlibraryitemsmetadatarating.md b/docs/models/operations/getlibraryitemsmetadatarating.md deleted file mode 100644 index 3a4daf6..0000000 --- a/docs/models/operations/getlibraryitemsmetadatarating.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetLibraryItemsMetaDataRating - - -## Fields - -| Field | Type | Required | Description | Example | -| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -| `image` | *::String* | :heavy_check_mark: | A URI or path to the rating image. | themoviedb://image.rating | -| `value` | *::Float* | :heavy_check_mark: | The value of the rating. | 3 | -| `type` | *::String* | :heavy_check_mark: | The type of rating (e.g., audience, critic). | audience | \ No newline at end of file diff --git a/docs/models/operations/getlibraryitemsoptimizedforstreaming.md b/docs/models/operations/getlibraryitemsoptimizedforstreaming.md deleted file mode 100644 index 9b1efbf..0000000 --- a/docs/models/operations/getlibraryitemsoptimizedforstreaming.md +++ /dev/null @@ -1,9 +0,0 @@ -# GetLibraryItemsOptimizedForStreaming - - -## Values - -| Name | Value | -| --------- | --------- | -| `DISABLE` | 0 | -| `ENABLE` | 1 | \ No newline at end of file diff --git a/docs/models/operations/getlibraryitemsshowordering.md b/docs/models/operations/getlibraryitemsshowordering.md deleted file mode 100644 index 9a34af9..0000000 --- a/docs/models/operations/getlibraryitemsshowordering.md +++ /dev/null @@ -1,20 +0,0 @@ -# GetLibraryItemsShowOrdering - -Setting that indicates the episode ordering for the show. -None = Library default, -tmdbAiring = The Movie Database (Aired), -aired = TheTVDB (Aired), -dvd = TheTVDB (DVD), -absolute = TheTVDB (Absolute)). - - - -## Values - -| Name | Value | -| --------------- | --------------- | -| `NONE` | None | -| `TMDB_AIRING` | tmdbAiring | -| `TVDB_AIRED` | aired | -| `TVDB_DVD` | dvd | -| `TVDB_ABSOLUTE` | absolute | \ No newline at end of file diff --git a/docs/models/operations/getmediametadatamedia.md b/docs/models/operations/getmediametadatamedia.md index 3af49b4..027dad3 100644 --- a/docs/models/operations/getmediametadatamedia.md +++ b/docs/models/operations/getmediametadatamedia.md @@ -19,8 +19,8 @@ | `container` | *T.nilable(::String)* | :heavy_minus_sign: | File container type. | mkv | | `video_frame_rate` | *T.nilable(::String)* | :heavy_minus_sign: | Frame rate of the video. Values found include NTSC, PAL, 24p
| 24p | | `video_profile` | *T.nilable(::String)* | :heavy_minus_sign: | Video profile (e.g., main 10). | main 10 | -| `has_voice_activity` | *T::Boolean* | :heavy_check_mark: | Indicates whether voice activity is detected. | false | +| `has_voice_activity` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates whether voice activity is detected. | false | | `audio_profile` | *T.nilable(::String)* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | | `optimized_for_streaming` | *T.nilable(::Object)* | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | | `has64bit_offsets` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | -| `part` | T::Array<[::PlexRubySDK::Operations::GetMediaMetaDataPart](../../models/operations/getmediametadatapart.md)> | :heavy_check_mark: | An array of parts for this media item. | | \ No newline at end of file +| `part` | T::Array<[::PlexRubySDK::Operations::GetMediaMetaDataPart](../../models/operations/getmediametadatapart.md)> | :heavy_minus_sign: | An array of parts for this media item. | | \ No newline at end of file diff --git a/docs/models/operations/getmediametadatametadata.md b/docs/models/operations/getmediametadatametadata.md index 50479f6..7e00d68 100644 --- a/docs/models/operations/getmediametadatametadata.md +++ b/docs/models/operations/getmediametadatametadata.md @@ -63,6 +63,6 @@ | `role` | T::Array<[::PlexRubySDK::Operations::GetMediaMetaDataRole](../../models/operations/getmediametadatarole.md)> | :heavy_minus_sign: | An array of Actor roles. | | | `director` | T::Array<[::PlexRubySDK::Operations::GetMediaMetaDataDirector](../../models/operations/getmediametadatadirector.md)> | :heavy_minus_sign: | An array of Director roles. | | | `writer` | T::Array<[::PlexRubySDK::Operations::GetMediaMetaDataWriter](../../models/operations/getmediametadatawriter.md)> | :heavy_minus_sign: | An array of Writer roles. | | -| `producer` | T::Array<[::PlexRubySDK::Operations::Producer](../../models/operations/producer.md)> | :heavy_minus_sign: | An array of Writer roles. | | -| `similar` | T::Array<[::PlexRubySDK::Operations::Similar](../../models/operations/similar.md)> | :heavy_minus_sign: | An array of similar content objects. | | +| `producer` | T::Array<[::PlexRubySDK::Operations::GetMediaMetaDataProducer](../../models/operations/getmediametadataproducer.md)> | :heavy_minus_sign: | An array of Writer roles. | | +| `similar` | T::Array<[::PlexRubySDK::Operations::GetMediaMetaDataSimilar](../../models/operations/getmediametadatasimilar.md)> | :heavy_minus_sign: | An array of similar content objects. | | | `location` | T::Array<[::PlexRubySDK::Operations::GetMediaMetaDataLocation](../../models/operations/getmediametadatalocation.md)> | :heavy_minus_sign: | An array of location objects. | | \ No newline at end of file diff --git a/docs/models/operations/getmediametadataproducer.md b/docs/models/operations/getmediametadataproducer.md new file mode 100644 index 0000000..ac0ab06 --- /dev/null +++ b/docs/models/operations/getmediametadataproducer.md @@ -0,0 +1,13 @@ +# GetMediaMetaDataProducer + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `id` | *::Integer* | :heavy_check_mark: | The unique role identifier. | 109501 | +| `filter` | *::String* | :heavy_check_mark: | The filter string for the role. | actor=109501 | +| `tag` | *::String* | :heavy_check_mark: | The actor's name. | Bob Odenkirk | +| `tag_key` | *::String* | :heavy_check_mark: | A key associated with the actor tag. | 5d77683254f42c001f8c3f69 | +| `role` | *T.nilable(::String)* | :heavy_minus_sign: | The character name or role. | Jimmy McGill | +| `thumb` | *T.nilable(::String)* | :heavy_minus_sign: | URL for the role thumbnail image. | https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg | \ No newline at end of file diff --git a/docs/models/operations/getmediametadatasimilar.md b/docs/models/operations/getmediametadatasimilar.md new file mode 100644 index 0000000..20f1f71 --- /dev/null +++ b/docs/models/operations/getmediametadatasimilar.md @@ -0,0 +1,10 @@ +# GetMediaMetaDataSimilar + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| `id` | *::Integer* | :heavy_check_mark: | The unique similar item identifier. | 26 | +| `filter` | *::String* | :heavy_check_mark: | The filter string for similar items. | similar=26 | +| `tag` | *::String* | :heavy_check_mark: | The tag or title of the similar content. | Breaking Bad | \ No newline at end of file diff --git a/docs/models/operations/getmediametadatastream.md b/docs/models/operations/getmediametadatastream.md index 11830ff..065eb05 100644 --- a/docs/models/operations/getmediametadatastream.md +++ b/docs/models/operations/getmediametadatastream.md @@ -11,9 +11,9 @@ | `codec` | *::String* | :heavy_check_mark: | Codec used by the stream. | hevc | | `index` | *::Integer* | :heavy_check_mark: | Index of the stream. | 0 | | `bitrate` | *T.nilable(::Integer)* | :heavy_minus_sign: | Bitrate of the stream. | 24743 | -| `language` | *::String* | :heavy_check_mark: | Language of the stream. | English | -| `language_tag` | *::String* | :heavy_check_mark: | Language tag (e.g., en). | en | -| `language_code` | *::String* | :heavy_check_mark: | ISO language code. | eng | +| `language` | *T.nilable(::String)* | :heavy_minus_sign: | Language of the stream. | English | +| `language_tag` | *T.nilable(::String)* | :heavy_minus_sign: | Language tag (e.g., en). | en | +| `language_code` | *T.nilable(::String)* | :heavy_minus_sign: | ISO language code. | eng | | `header_compression` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates whether header compression is enabled. | true | | `dovibl_compat_id` | *T.nilable(::Integer)* | :heavy_minus_sign: | Dolby Vision BL compatibility ID. | 1 | | `dovibl_present` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates if Dolby Vision BL is present. | true | @@ -28,6 +28,7 @@ | `chroma_subsampling` | *T.nilable(::String)* | :heavy_minus_sign: | Chroma subsampling format. | 4:2:0 | | `coded_height` | *T.nilable(::Integer)* | :heavy_minus_sign: | Coded video height. | 1608 | | `coded_width` | *T.nilable(::Integer)* | :heavy_minus_sign: | Coded video width. | 3840 | +| `closed_captions` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true | | `color_primaries` | *T.nilable(::String)* | :heavy_minus_sign: | Color primaries used. | bt2020 | | `color_range` | *T.nilable(::String)* | :heavy_minus_sign: | Color range (e.g., tv). | tv | | `color_space` | *T.nilable(::String)* | :heavy_minus_sign: | Color space. | bt2020nc | @@ -39,6 +40,7 @@ | `has_scaling_matrix` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | | `profile` | *T.nilable(::String)* | :heavy_minus_sign: | Video profile. | main 10 | | `scan_type` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | progressive | +| `embedded_in_video` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | progressive | | `ref_frames` | *T.nilable(::Integer)* | :heavy_minus_sign: | Number of reference frames. | 1 | | `width` | *T.nilable(::Integer)* | :heavy_minus_sign: | Width of the video stream. | 3840 | | `display_title` | *::String* | :heavy_check_mark: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | diff --git a/docs/models/operations/getondeckbadrequest.md b/docs/models/operations/getondeckbadrequest.md deleted file mode 100644 index 5e9a65b..0000000 --- a/docs/models/operations/getondeckbadrequest.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetOnDeckBadRequest - -Bad Request - A parameter was not specified, or was specified incorrectly. - - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| `errors` | T::Array<[::PlexRubySDK::Operations::GetOnDeckErrors](../../models/operations/getondeckerrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/getondeckerrors.md b/docs/models/operations/getondeckerrors.md deleted file mode 100644 index d2d087d..0000000 --- a/docs/models/operations/getondeckerrors.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetOnDeckErrors - - -## Fields - -| Field | Type | Required | Description | Example | -| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| `code` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 1000 | -| `message` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | X-Plex-Client-Identifier is missing | -| `status` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 400 | \ No newline at end of file diff --git a/docs/models/operations/getondeckguids.md b/docs/models/operations/getondeckguids.md deleted file mode 100644 index 774e6a7..0000000 --- a/docs/models/operations/getondeckguids.md +++ /dev/null @@ -1,8 +0,0 @@ -# GetOnDeckGuids - - -## Fields - -| Field | Type | Required | Description | Example | -| --------------------- | --------------------- | --------------------- | --------------------- | --------------------- | -| `id` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | imdb://tt13303712 | \ No newline at end of file diff --git a/docs/models/operations/getondecklibraryerrors.md b/docs/models/operations/getondecklibraryerrors.md deleted file mode 100644 index af24bee..0000000 --- a/docs/models/operations/getondecklibraryerrors.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetOnDeckLibraryErrors - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | -| `code` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 1001 | -| `message` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | User could not be authenticated | -| `status` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/getondeckmedia.md b/docs/models/operations/getondeckmedia.md deleted file mode 100644 index 5519c22..0000000 --- a/docs/models/operations/getondeckmedia.md +++ /dev/null @@ -1,22 +0,0 @@ -# GetOnDeckMedia - - -## Fields - -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `id` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 80994 | -| `duration` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 420080 | -| `bitrate` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 1046 | -| `width` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 1920 | -| `height` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 1080 | -| `aspect_ratio` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 1.78 | -| `audio_channels` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 2 | -| `audio_codec` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | aac | -| `video_codec` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | hevc | -| `video_resolution` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | 1080 | -| `container` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | mkv | -| `video_frame_rate` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | PAL | -| `audio_profile` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | lc | -| `video_profile` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | main | -| `part` | T::Array<[::PlexRubySDK::Operations::GetOnDeckPart](../../models/operations/getondeckpart.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/getondeckmediacontainer.md b/docs/models/operations/getondeckmediacontainer.md deleted file mode 100644 index 5f659be..0000000 --- a/docs/models/operations/getondeckmediacontainer.md +++ /dev/null @@ -1,14 +0,0 @@ -# GetOnDeckMediaContainer - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | -| `size` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 16 | -| `allow_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | | -| `identifier` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | -| `media_tag_prefix` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ | -| `media_tag_version` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 1680021154 | -| `mixed_parents` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | | -| `metadata` | T::Array<[::PlexRubySDK::Operations::GetOnDeckMetadata](../../models/operations/getondeckmetadata.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/getondeckmetadata.md b/docs/models/operations/getondeckmetadata.md deleted file mode 100644 index fd9ae8f..0000000 --- a/docs/models/operations/getondeckmetadata.md +++ /dev/null @@ -1,43 +0,0 @@ -# GetOnDeckMetadata - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `allow_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | | -| `library_section_id` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 2 | -| `library_section_title` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | TV Shows | -| `library_section_uuid` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | 4bb2521c-8ba9-459b-aaee-8ab8bc35eabd | -| `rating_key` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 49564 | -| `key` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/49564 | -| `parent_rating_key` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 49557 | -| `grandparent_rating_key` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 49556 | -| `guid` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | plex://episode/5ea7d7402e7ab10042e74d4f | -| `parent_guid` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | plex://season/602e754d67f4c8002ce54b3d | -| `grandparent_guid` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | plex://show/5d9c090e705e7a001e6e94d8 | -| `type` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | episode | -| `title` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | Circus | -| `grandparent_key` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/49556 | -| `parent_key` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/49557 | -| `library_section_key` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/sections/2 | -| `grandparent_title` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | Bluey (2018) | -| `parent_title` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | Season 2 | -| `content_rating` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | TV-Y | -| `summary` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | Bluey is the ringmaster in a game of circus with her friends but Hercules wants to play his motorcycle game instead. Luckily Bluey has a solution to keep everyone happy. | -| `index` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 33 | -| `parent_index` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 2 | -| `last_viewed_at` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 1681908352 | -| `year` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 2018 | -| `thumb` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/49564/thumb/1654258204 | -| `art` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/49556/art/1680939546 | -| `parent_thumb` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/49557/thumb/1654258204 | -| `grandparent_thumb` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/49556/thumb/1680939546 | -| `grandparent_art` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/49556/art/1680939546 | -| `grandparent_theme` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/49556/theme/1680939546 | -| `duration` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 420080 | -| `originally_available_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_minus_sign: | N/A | 2020-10-31 00:00:00 +0000 UTC | -| `added_at` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 1654258196 | -| `updated_at` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 1654258204 | -| `media` | T::Array<[::PlexRubySDK::Operations::GetOnDeckMedia](../../models/operations/getondeckmedia.md)> | :heavy_minus_sign: | N/A | | -| `guids` | T::Array<[::PlexRubySDK::Operations::GetOnDeckGuids](../../models/operations/getondeckguids.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/getondeckpart.md b/docs/models/operations/getondeckpart.md deleted file mode 100644 index 1fea627..0000000 --- a/docs/models/operations/getondeckpart.md +++ /dev/null @@ -1,16 +0,0 @@ -# GetOnDeckPart - - -## Fields - -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| `id` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 80994 | -| `key` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/parts/80994/1655007810/file.mkv | -| `duration` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 420080 | -| `file` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /tvshows/Bluey (2018)/Bluey (2018) - S02E33 - Circus.mkv | -| `size` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 55148931 | -| `audio_profile` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | lc | -| `container` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | mkv | -| `video_profile` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | main | -| `stream` | T::Array<[::PlexRubySDK::Operations::GetOnDeckStream](../../models/operations/getondeckstream.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/getondeckresponse.md b/docs/models/operations/getondeckresponse.md deleted file mode 100644 index 9f61864..0000000 --- a/docs/models/operations/getondeckresponse.md +++ /dev/null @@ -1,13 +0,0 @@ -# GetOnDeckResponse - - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | -| `content_type` | *::String* | :heavy_check_mark: | HTTP response content type for this operation | -| `status_code` | *::Integer* | :heavy_check_mark: | HTTP response status code for this operation | -| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | -| `object` | [T.nilable(::PlexRubySDK::Operations::GetOnDeckResponseBody)](../../models/operations/getondeckresponsebody.md) | :heavy_minus_sign: | The on Deck content | -| `bad_request` | [T.nilable(::PlexRubySDK::Operations::GetOnDeckBadRequest)](../../models/operations/getondeckbadrequest.md) | :heavy_minus_sign: | Bad Request - A parameter was not specified, or was specified incorrectly. | -| `unauthorized` | [T.nilable(::PlexRubySDK::Operations::GetOnDeckUnauthorized)](../../models/operations/getondeckunauthorized.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/getondeckresponsebody.md b/docs/models/operations/getondeckresponsebody.md deleted file mode 100644 index e2739f5..0000000 --- a/docs/models/operations/getondeckresponsebody.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetOnDeckResponseBody - -The on Deck content - - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | -| `media_container` | [T.nilable(::PlexRubySDK::Operations::GetOnDeckMediaContainer)](../../models/operations/getondeckmediacontainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/getondeckstream.md b/docs/models/operations/getondeckstream.md deleted file mode 100644 index 57d885a..0000000 --- a/docs/models/operations/getondeckstream.md +++ /dev/null @@ -1,30 +0,0 @@ -# GetOnDeckStream - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -| `id` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 211234 | -| `stream_type` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 1 | -| `default` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | | -| `codec` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | hevc | -| `index` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 0 | -| `bitrate` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 918 | -| `language` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | English | -| `language_tag` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | en | -| `language_code` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | eng | -| `bit_depth` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 8 | -| `chroma_location` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | left | -| `chroma_subsampling` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | 4:2:0 | -| `coded_height` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 1080 | -| `coded_width` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 1920 | -| `color_range` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | tv | -| `frame_rate` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 25 | -| `height` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 1080 | -| `level` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 120 | -| `profile` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | main | -| `ref_frames` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 1 | -| `width` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 1920 | -| `display_title` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | 1080p (HEVC Main) | -| `extended_display_title` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | 1080p (HEVC Main) | \ No newline at end of file diff --git a/docs/models/operations/getondeckunauthorized.md b/docs/models/operations/getondeckunauthorized.md deleted file mode 100644 index 0ca0917..0000000 --- a/docs/models/operations/getondeckunauthorized.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetOnDeckUnauthorized - -Unauthorized - Returned if the X-Plex-Token is missing from the header or query. - - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| `errors` | T::Array<[::PlexRubySDK::Operations::GetOnDeckLibraryErrors](../../models/operations/getondecklibraryerrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/getrecentlyaddedmediacontainer.md b/docs/models/operations/getrecentlyaddedmediacontainer.md index 850f6fa..fa80c68 100644 --- a/docs/models/operations/getrecentlyaddedmediacontainer.md +++ b/docs/models/operations/getrecentlyaddedmediacontainer.md @@ -5,10 +5,10 @@ | Field | Type | Required | Description | Example | | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `size` | *::Integer* | :heavy_check_mark: | N/A | 50 | -| `offset` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | | -| `total_size` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | | -| `identifier` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | -| `allow_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | +| `size` | *::Integer* | :heavy_check_mark: | Number of media items returned in this response. | 50 | +| `total_size` | *::Integer* | :heavy_check_mark: | Total number of media items in the library. | 50 | +| `offset` | *::Integer* | :heavy_check_mark: | Offset value for pagination. | 0 | +| `allow_sync` | *T::Boolean* | :heavy_check_mark: | Indicates whether syncing is allowed. | false | +| `identifier` | *::String* | :heavy_check_mark: | An plugin identifier for the media container. | com.plexapp.plugins.library | | `meta` | [T.nilable(::PlexRubySDK::Operations::Meta)](../../models/operations/meta.md) | :heavy_minus_sign: | The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.
| | -| `metadata` | T::Array<[::PlexRubySDK::Operations::GetRecentlyAddedMetadata](../../models/operations/getrecentlyaddedmetadata.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file +| `metadata` | T::Array<[::PlexRubySDK::Operations::GetRecentlyAddedMetadata](../../models/operations/getrecentlyaddedmetadata.md)> | :heavy_minus_sign: | An array of metadata items. | | \ No newline at end of file diff --git a/docs/models/operations/getrecentlyaddedmetadata.md b/docs/models/operations/getrecentlyaddedmetadata.md index 2a363fc..80364ae 100644 --- a/docs/models/operations/getrecentlyaddedmetadata.md +++ b/docs/models/operations/getrecentlyaddedmetadata.md @@ -1,83 +1,85 @@ # GetRecentlyAddedMetadata +Unknown + + ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `rating_key` | *::String* | :heavy_check_mark: | The rating key (Media ID) of this media item.
Note: This is always an integer, but is represented as a string in the API.
| 58683 | -| `key` | *::String* | :heavy_check_mark: | N/A | /library/metadata/58683 | -| `guid` | *::String* | :heavy_check_mark: | N/A | plex://movie/5d7768ba96b655001fdc0408 | -| `studio` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | 20th Century Studios | -| `skip_children` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | -| `library_section_id` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 1 | -| `library_section_title` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | Movies | -| `library_section_key` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/sections/1 | -| `type` | [::PlexRubySDK::Operations::GetRecentlyAddedHubsType](../../models/operations/getrecentlyaddedhubstype.md) | :heavy_check_mark: | The type of media content
| movie | -| `title` | *::String* | :heavy_check_mark: | N/A | Avatar: The Way of Water | -| `slug` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | 4-for-texas | -| `content_rating` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | PG-13 | -| `summary` | *::String* | :heavy_check_mark: | N/A | Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home. | -| `rating` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 7.6 | -| `audience_rating` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 9.2 | -| `year` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 2022 | -| `season_count` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 2022 | -| `tagline` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | Return to Pandora. | -| `flatten_seasons` | [T.nilable(::PlexRubySDK::Operations::FlattenSeasons)](../../models/operations/flattenseasons.md) | :heavy_minus_sign: | Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). | 1 | -| `episode_sort` | [T.nilable(::PlexRubySDK::Operations::EpisodeSort)](../../models/operations/episodesort.md) | :heavy_minus_sign: | Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). | 0 | -| `enable_credits_marker_generation` | [T.nilable(::PlexRubySDK::Operations::EnableCreditsMarkerGeneration)](../../models/operations/enablecreditsmarkergeneration.md) | :heavy_minus_sign: | Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). | -1 | -| `show_ordering` | [T.nilable(::PlexRubySDK::Operations::ShowOrdering)](../../models/operations/showordering.md) | :heavy_minus_sign: | Setting that indicates the episode ordering for the show.
None = Library default,
tmdbAiring = The Movie Database (Aired),
aired = TheTVDB (Aired),
dvd = TheTVDB (DVD),
absolute = TheTVDB (Absolute)).
| absolute | -| `thumb` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 | -| `art` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 | -| `banner` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/58683/banner/1703239236 | -| `duration` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 11558112 | -| `originally_available_at` | [DateTime](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/DateTime.html) | :heavy_minus_sign: | N/A | 2022-12-14 00:00:00 +0000 UTC | -| `added_at` | *::Integer* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 | -| `updated_at` | *T.nilable(::Integer)* | :heavy_minus_sign: | Unix epoch datetime in seconds | 1556281940 | -| `audience_rating_image` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright | -| `chapter_source` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | media | -| `primary_extra_key` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/58684 | -| `rating_image` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.ripe | -| `grandparent_rating_key` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | 66 | -| `grandparent_guid` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | plex://show/5d9c081b170e24001f2a7be4 | -| `grandparent_key` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/66 | -| `grandparent_title` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | Caprica | -| `grandparent_thumb` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/66/thumb/1705716261 | -| `parent_slug` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | alice-in-borderland-2020 | -| `grandparent_slug` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | alice-in-borderland-2020 | -| `grandparent_art` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/66/art/1705716261 | -| `grandparent_theme` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/66/theme/1705716261 | -| `media` | T::Array<[::PlexRubySDK::Operations::Media](../../models/operations/media.md)> | :heavy_minus_sign: | The Media object is only included when type query is `4` or higher.
| | -| `genre` | T::Array<[::PlexRubySDK::Operations::Genre](../../models/operations/genre.md)> | :heavy_minus_sign: | N/A | | -| `country` | T::Array<[::PlexRubySDK::Operations::Country](../../models/operations/country.md)> | :heavy_minus_sign: | N/A | | -| `director` | T::Array<[::PlexRubySDK::Operations::Director](../../models/operations/director.md)> | :heavy_minus_sign: | N/A | | -| `writer` | T::Array<[::PlexRubySDK::Operations::Writer](../../models/operations/writer.md)> | :heavy_minus_sign: | N/A | | -| `collection` | T::Array<[::PlexRubySDK::Operations::Collection](../../models/operations/collection.md)> | :heavy_minus_sign: | N/A | | -| `role` | T::Array<[::PlexRubySDK::Operations::Role](../../models/operations/role.md)> | :heavy_minus_sign: | N/A | | -| `location` | T::Array<[::PlexRubySDK::Operations::Location](../../models/operations/location.md)> | :heavy_minus_sign: | N/A | | -| `media_guid` | T::Array<[::PlexRubySDK::Operations::MediaGuid](../../models/operations/mediaguid.md)> | :heavy_minus_sign: | The Guid object is only included in the response if the `includeGuids` parameter is set to `1`.
| | -| `ultra_blur_colors` | [T.nilable(::PlexRubySDK::Operations::UltraBlurColors)](../../models/operations/ultrablurcolors.md) | :heavy_minus_sign: | N/A | | -| `meta_data_rating` | T::Array<[::PlexRubySDK::Operations::MetaDataRating](../../models/operations/metadatarating.md)> | :heavy_minus_sign: | N/A | | -| `image` | T::Array<[::PlexRubySDK::Operations::GetRecentlyAddedImage](../../models/operations/getrecentlyaddedimage.md)> | :heavy_minus_sign: | N/A | | -| `title_sort` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | Whale | -| `view_count` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 1 | -| `last_viewed_at` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 1682752242 | -| `original_title` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | 映画 ブラッククローバー 魔法帝の剣 | -| `view_offset` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 5222500 | -| `skip_count` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 1 | -| `index` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 1 | -| `theme` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/1/theme/1705636920 | -| `leaf_count` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 14 | -| `viewed_leaf_count` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 0 | -| `child_count` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 1 | -| `has_premium_extras` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | 1 | -| `has_premium_primary_extra` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | 1 | -| `parent_rating_key` | *T.nilable(::String)* | :heavy_minus_sign: | The rating key of the parent item.
| 66 | -| `parent_guid` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | plex://show/5d9c081b170e24001f2a7be4 | -| `parent_studio` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | UCP | -| `parent_key` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/66 | -| `parent_title` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | Caprica | -| `parent_index` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 1 | -| `parent_year` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 2010 | -| `parent_thumb` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/66/thumb/1705716261 | -| `parent_theme` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /library/metadata/66/theme/1705716261 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `added_at` | *::Integer* | :heavy_check_mark: | N/A | 1556281940 | +| `art` | *::String* | :heavy_check_mark: | The art image URL for the media item. | /library/metadata/58683/art/1703239236 | +| `audience_rating_image` | *T.nilable(::String)* | :heavy_minus_sign: | The URL for the audience rating image. | rottentomatoes://image.rating.upright | +| `audience_rating` | *::Float* | :heavy_check_mark: | The audience rating for the media item. | 9.2 | +| `chapter_source` | *T.nilable(::String)* | :heavy_minus_sign: | The source from which chapter data is derived. | media | +| `child_count` | *::Integer* | :heavy_check_mark: | The number of child items associated with this media item. | 1 | +| `content_rating` | *T.nilable(::String)* | :heavy_minus_sign: | The content rating for the media item. | PG-13 | +| `created_at_accuracy` | *T.nilable(::String)* | :heavy_minus_sign: | The accuracy of the creation timestamp. This value indicates the format(s) provided (for example, 'epoch,local' means both epoch and local time formats are available). | epoch,local | +| `created_at_tz_offset` | *T.nilable(::String)* | :heavy_minus_sign: | The time zone offset for the creation timestamp, represented as a string. This offset indicates the difference from UTC. | 0 | +| `duration` | *::Integer* | :heavy_check_mark: | The duration of the media item in milliseconds. | 11558112 | +| `grandparent_art` | *T.nilable(::String)* | :heavy_minus_sign: | The art URL for the grandparent media item. | /library/metadata/66/art/1705716261 | +| `grandparent_guid` | *T.nilable(::String)* | :heavy_minus_sign: | The GUID of the grandparent media item. | plex://show/5d9c081b170e24001f2a7be4 | +| `grandparent_key` | *T.nilable(::String)* | :heavy_minus_sign: | The key of the grandparent media item. | /library/metadata/66 | +| `grandparent_rating_key` | *T.nilable(::String)* | :heavy_minus_sign: | The rating key of the grandparent media item. | 66 | +| `grandparent_slug` | *T.nilable(::String)* | :heavy_minus_sign: | The slug for the grandparent media item. | alice-in-borderland-2020 | +| `grandparent_theme` | *T.nilable(::String)* | :heavy_minus_sign: | The theme URL for the grandparent media item. | /library/metadata/66/theme/1705716261 | +| `grandparent_thumb` | *T.nilable(::String)* | :heavy_minus_sign: | The thumbnail URL for the grandparent media item. | /library/metadata/66/thumb/1705716261 | +| `grandparent_title` | *T.nilable(::String)* | :heavy_minus_sign: | The title of the grandparent media item. | Caprica | +| `guid` | *::String* | :heavy_check_mark: | The globally unique identifier for the media item. | plex://movie/5d7768ba96b655001fdc0408 | +| `index` | *::Integer* | :heavy_check_mark: | The index position of the media item. | 1 | +| `key` | *::String* | :heavy_check_mark: | The unique key for the media item. | /library/metadata/58683 | +| `last_rated_at` | *T.nilable(::Integer)* | :heavy_minus_sign: | The Unix timestamp representing the last time the item was rated. | 1721813113 | +| `last_viewed_at` | *T.nilable(::Integer)* | :heavy_minus_sign: | Unix timestamp for when the media item was last viewed. | 1682752242 | +| `leaf_count` | *T.nilable(::Integer)* | :heavy_minus_sign: | The number of leaf items (end nodes) under this media item. | 14 | +| `library_section_id` | *::Integer* | :heavy_check_mark: | The identifier for the library section. | 1 | +| `library_section_key` | *::String* | :heavy_check_mark: | The key corresponding to the library section. | /library/sections/1 | +| `library_section_title` | *::String* | :heavy_check_mark: | The title of the library section. | Movies | +| `original_title` | *T.nilable(::String)* | :heavy_minus_sign: | The original title of the media item (if different). | 映画 ブラッククローバー 魔法帝の剣 | +| `originally_available_at` | [DateTime](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/DateTime.html) | :heavy_check_mark: | The original release date of the media item. | 2022-12-14 | +| `parent_guid` | *T.nilable(::String)* | :heavy_minus_sign: | The GUID of the parent media item. | plex://show/5d9c081b170e24001f2a7be4 | +| `parent_index` | *T.nilable(::Integer)* | :heavy_minus_sign: | The index position of the parent media item. | 1 | +| `parent_key` | *T.nilable(::String)* | :heavy_minus_sign: | The key of the parent media item. | /library/metadata/66 | +| `parent_rating_key` | *T.nilable(::String)* | :heavy_minus_sign: | The rating key of the parent media item. | 66 | +| `parent_slug` | *T.nilable(::String)* | :heavy_minus_sign: | The slug for the parent media item. | alice-in-borderland-2020 | +| `parent_studio` | *::String* | :heavy_check_mark: | The studio of the parent media item. | UCP | +| `parent_theme` | *::String* | :heavy_check_mark: | The theme URL for the parent media item. | /library/metadata/66/theme/1705716261 | +| `parent_thumb` | *T.nilable(::String)* | :heavy_minus_sign: | The thumbnail URL for the parent media item. | /library/metadata/66/thumb/1705716261 | +| `parent_title` | *T.nilable(::String)* | :heavy_minus_sign: | The title of the parent media item. | Caprica | +| `parent_year` | *T.nilable(::Integer)* | :heavy_minus_sign: | The release year of the parent media item. | 2010 | +| `primary_extra_key` | *T.nilable(::String)* | :heavy_minus_sign: | The primary extra key associated with this media item. | /library/metadata/58684 | +| `rating_image` | *T.nilable(::String)* | :heavy_minus_sign: | The URL for the rating image. | rottentomatoes://image.rating.ripe | +| `rating_key` | *::String* | :heavy_check_mark: | The rating key (Media ID) of this media item. Note: Although this is always an integer, it is represented as a string in the API. | 58683 | +| `rating` | *::Float* | :heavy_check_mark: | The critic rating for the media item. | 7.6 | +| `season_count` | *::Integer* | :heavy_check_mark: | The total number of seasons (for TV shows). | 2022 | +| `skip_count` | *T.nilable(::Integer)* | :heavy_minus_sign: | The number of times this media item has been skipped. | 1 | +| `slug` | *::String* | :heavy_check_mark: | A URL‐friendly version of the media title. | 4-for-texas | +| `studio` | *T.nilable(::String)* | :heavy_minus_sign: | The studio that produced the media item. | 20th Century Studios | +| `subtype` | *T.nilable(::String)* | :heavy_minus_sign: | A classification that further describes the type of media item. For example, 'clip' indicates that the item is a short video clip. | clip | +| `summary` | *::String* | :heavy_check_mark: | A synopsis of the media item. | Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.
Once a familiar threat returns to finish what was previously started, Jake must
work with Neytiri and the army of the Na'vi race to protect their home.
| +| `tagline` | *::String* | :heavy_check_mark: | A brief tagline for the media item. | Return to Pandora. | +| `theme` | *::String* | :heavy_check_mark: | The theme URL for the media item. | /library/metadata/1/theme/1705636920 | +| `thumb` | *::String* | :heavy_check_mark: | The thumbnail image URL for the media item. | /library/metadata/58683/thumb/1703239236 | +| `title_sort` | *::String* | :heavy_check_mark: | The sort title used for ordering media items. | Whale | +| `title` | *::String* | :heavy_check_mark: | The title of the media item. | Avatar: The Way of Water | +| `type` | [::PlexRubySDK::Operations::GetRecentlyAddedHubsType](../../models/operations/getrecentlyaddedhubstype.md) | :heavy_check_mark: | N/A | movie | +| `updated_at` | *T.nilable(::Integer)* | :heavy_minus_sign: | Unix epoch datetime in seconds | 1556281940 | +| `user_rating` | *T.nilable(::Float)* | :heavy_minus_sign: | The rating provided by a user for the item. This value is expressed as a decimal number. | 10 | +| `view_count` | *T.nilable(::Integer)* | :heavy_minus_sign: | The number of times this media item has been viewed. | 1 | +| `view_offset` | *T.nilable(::Integer)* | :heavy_minus_sign: | The current playback offset (in milliseconds). | 5222500 | +| `viewed_leaf_count` | *T.nilable(::Integer)* | :heavy_minus_sign: | The number of leaf items that have been viewed. | 0 | +| `year` | *T.nilable(::Integer)* | :heavy_minus_sign: | The release year of the media item. | 2022 | +| `image` | T::Array<[::PlexRubySDK::Operations::GetRecentlyAddedImage](../../models/operations/getrecentlyaddedimage.md)> | :heavy_minus_sign: | N/A | | +| `ultra_blur_colors` | [T.nilable(::PlexRubySDK::Operations::UltraBlurColors)](../../models/operations/ultrablurcolors.md) | :heavy_minus_sign: | N/A | | +| `media` | T::Array<[::PlexRubySDK::Operations::Media](../../models/operations/media.md)> | :heavy_minus_sign: | N/A | | +| `genre` | T::Array<[::PlexRubySDK::Operations::Genre](../../models/operations/genre.md)> | :heavy_minus_sign: | N/A | | +| `country` | T::Array<[::PlexRubySDK::Operations::Country](../../models/operations/country.md)> | :heavy_minus_sign: | N/A | | +| `director` | T::Array<[::PlexRubySDK::Operations::Director](../../models/operations/director.md)> | :heavy_minus_sign: | N/A | | +| `writer` | T::Array<[::PlexRubySDK::Operations::Writer](../../models/operations/writer.md)> | :heavy_minus_sign: | N/A | | +| `role` | T::Array<[::PlexRubySDK::Operations::Role](../../models/operations/role.md)> | :heavy_minus_sign: | N/A | | +| `producer` | T::Array<[::PlexRubySDK::Operations::Producer](../../models/operations/producer.md)> | :heavy_minus_sign: | N/A | | +| `rating1` | T::Array<[::PlexRubySDK::Operations::Rating](../../models/operations/rating.md)> | :heavy_minus_sign: | N/A | | +| `similar` | T::Array<[::PlexRubySDK::Operations::Similar](../../models/operations/similar.md)> | :heavy_minus_sign: | N/A | | +| `location` | T::Array<[::PlexRubySDK::Operations::Location](../../models/operations/location.md)> | :heavy_minus_sign: | N/A | | +| `guids` | T::Array<[::PlexRubySDK::Operations::Guids](../../models/operations/guids.md)> | :heavy_minus_sign: | N/A | | +| `collection` | T::Array<[::PlexRubySDK::Operations::Collection](../../models/operations/collection.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/hasthumbnail.md b/docs/models/operations/hasthumbnail.md index f093b19..3741df8 100644 --- a/docs/models/operations/hasthumbnail.md +++ b/docs/models/operations/hasthumbnail.md @@ -1,5 +1,7 @@ # HasThumbnail +Indicates if the part has a thumbnail. + ## Values diff --git a/docs/models/operations/location.md b/docs/models/operations/location.md index efa047d..1fe8a00 100644 --- a/docs/models/operations/location.md +++ b/docs/models/operations/location.md @@ -1,8 +1,10 @@ # Location +The folder path for the media item. + ## Fields -| Field | Type | Required | Description | Example | -| --------------------- | --------------------- | --------------------- | --------------------- | --------------------- | -| `path` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | /TV Shows/House | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------- | ------------------------- | ------------------------- | ------------------------- | ------------------------- | +| `path` | *::String* | :heavy_check_mark: | N/A | /TV Shows/Clarkson's Farm | \ No newline at end of file diff --git a/docs/models/operations/media.md b/docs/models/operations/media.md index cd2bfaa..c3ce565 100644 --- a/docs/models/operations/media.md +++ b/docs/models/operations/media.md @@ -3,23 +3,24 @@ ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | -| `id` | *::Integer* | :heavy_check_mark: | N/A | 119534 | -| `duration` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 11558112 | -| `bitrate` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 25025 | -| `width` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 3840 | -| `height` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 2072 | -| `aspect_ratio` | *T.nilable(::Float)* | :heavy_minus_sign: | N/A | 1.85 | -| `audio_profile` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | dts | -| `audio_channels` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 6 | -| `audio_codec` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | eac3 | -| `video_codec` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | hevc | -| `video_resolution` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | 4k | -| `container` | *::String* | :heavy_check_mark: | N/A | mkv | -| `video_frame_rate` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | 24p | -| `video_profile` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | main 10 | -| `has_voice_activity` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | -| `optimized_for_streaming` | [T.nilable(::PlexRubySDK::Operations::OptimizedForStreaming)](../../models/operations/optimizedforstreaming.md) | :heavy_minus_sign: | N/A | 1 | -| `has64bit_offsets` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | -| `part` | T::Array<[::PlexRubySDK::Operations::Part](../../models/operations/part.md)> | :heavy_check_mark: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | +| `id` | *::Integer* | :heavy_check_mark: | Unique media identifier. | 387322 | +| `duration` | *T.nilable(::Integer)* | :heavy_minus_sign: | Duration of the media in milliseconds. | 9610350 | +| `bitrate` | *T.nilable(::Integer)* | :heavy_minus_sign: | Bitrate in bits per second. | 25512 | +| `width` | *T.nilable(::Integer)* | :heavy_minus_sign: | Video width in pixels. | 3840 | +| `height` | *T.nilable(::Integer)* | :heavy_minus_sign: | Video height in pixels. | 1602 | +| `aspect_ratio` | *T.nilable(::Float)* | :heavy_minus_sign: | Aspect ratio of the video. | 2.35 | +| `audio_channels` | *T.nilable(::Integer)* | :heavy_minus_sign: | Number of audio channels. | 6 | +| `display_offset` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 50 | +| `audio_codec` | *T.nilable(::String)* | :heavy_minus_sign: | Audio codec used. | eac3 | +| `video_codec` | *T.nilable(::String)* | :heavy_minus_sign: | Video codec used. | hevc | +| `video_resolution` | *T.nilable(::String)* | :heavy_minus_sign: | Video resolution (e.g., 4k). | 4k | +| `container` | *T.nilable(::String)* | :heavy_minus_sign: | File container type. | mkv | +| `video_frame_rate` | *T.nilable(::String)* | :heavy_minus_sign: | Frame rate of the video. Values found include NTSC, PAL, 24p
| 24p | +| `video_profile` | *T.nilable(::String)* | :heavy_minus_sign: | Video profile (e.g., main 10). | main 10 | +| `has_voice_activity` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates whether voice activity is detected. | false | +| `audio_profile` | *T.nilable(::String)* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | +| `optimized_for_streaming` | *T.nilable(::Object)* | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | +| `has64bit_offsets` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | +| `part` | T::Array<[::PlexRubySDK::Operations::Part](../../models/operations/part.md)> | :heavy_minus_sign: | An array of parts for this media item. | | \ No newline at end of file diff --git a/docs/models/operations/part.md b/docs/models/operations/part.md index 18d8b07..42e91a6 100644 --- a/docs/models/operations/part.md +++ b/docs/models/operations/part.md @@ -3,18 +3,21 @@ ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `id` | *::Integer* | :heavy_check_mark: | N/A | 119542 | -| `key` | *::String* | :heavy_check_mark: | N/A | /library/parts/119542/1680457526/file.mkv | -| `duration` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 11558112 | -| `file` | *::String* | :heavy_check_mark: | N/A | /movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv | -| `size` | *::Integer* | :heavy_check_mark: | N/A | 36158371307 | -| `container` | *::String* | :heavy_check_mark: | The container format of the media file.
| mkv | -| `audio_profile` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | dts | -| `has64bit_offsets` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | -| `optimized_for_streaming` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | -| `video_profile` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | main 10 | -| `indexes` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | sd | -| `has_thumbnail` | [T.nilable(::PlexRubySDK::Operations::HasThumbnail)](../../models/operations/hasthumbnail.md) | :heavy_minus_sign: | N/A | 1 | -| `stream` | T::Array<[::PlexRubySDK::Operations::Stream](../../models/operations/stream.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `accessible` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates if the part is accessible. | true | +| `exists` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates if the part exists. | true | +| `id` | *::Integer* | :heavy_check_mark: | Unique part identifier. | 418385 | +| `key` | *::String* | :heavy_check_mark: | Key to access this part. | /library/parts/418385/1735864239/file.mkv | +| `indexes` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | sd | +| `duration` | *T.nilable(::Integer)* | :heavy_minus_sign: | Duration of the part in milliseconds. | 9610350 | +| `file` | *::String* | :heavy_check_mark: | File path for the part. | /mnt/Movies_1/W/Wicked (2024).mkv | +| `size` | *::Integer* | :heavy_check_mark: | File size in bytes. | 30649952104 | +| `packet_length` | *T.nilable(::Integer)* | :heavy_minus_sign: | N/A | 188 | +| `container` | *T.nilable(::String)* | :heavy_minus_sign: | Container format of the part. | mkv | +| `video_profile` | *T.nilable(::String)* | :heavy_minus_sign: | Video profile for the part. | main 10 | +| `audio_profile` | *T.nilable(::String)* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | +| `has64bit_offsets` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | +| `optimized_for_streaming` | *T.nilable(::Object)* | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | +| `has_thumbnail` | [T.nilable(::PlexRubySDK::Operations::HasThumbnail)](../../models/operations/hasthumbnail.md) | :heavy_minus_sign: | N/A | 1 | +| `stream` | T::Array<[::PlexRubySDK::Operations::Stream](../../models/operations/stream.md)> | :heavy_minus_sign: | An array of streams for this part. | | \ No newline at end of file diff --git a/docs/models/operations/producer.md b/docs/models/operations/producer.md index 0fae2b4..abe10f7 100644 --- a/docs/models/operations/producer.md +++ b/docs/models/operations/producer.md @@ -3,11 +3,10 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| `id` | *::Integer* | :heavy_check_mark: | The unique role identifier. | 109501 | -| `filter` | *::String* | :heavy_check_mark: | The filter string for the role. | actor=109501 | -| `tag` | *::String* | :heavy_check_mark: | The actor's name. | Bob Odenkirk | -| `tag_key` | *::String* | :heavy_check_mark: | A key associated with the actor tag. | 5d77683254f42c001f8c3f69 | -| `role` | *T.nilable(::String)* | :heavy_minus_sign: | The character name or role. | Jimmy McGill | -| `thumb` | *T.nilable(::String)* | :heavy_minus_sign: | URL for the role thumbnail image. | https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | +| `id` | *::Integer* | :heavy_check_mark: | Unique identifier for the producer. | 126522 | +| `filter` | *::String* | :heavy_check_mark: | The filter string used to query this producer. | producer=126522 | +| `tag` | *::String* | :heavy_check_mark: | The name of the producer | Amelia Knapp | +| `tag_key` | *T.nilable(::String)* | :heavy_minus_sign: | A unique key associated with the producer's tag, used for internal identification. | 5d77683d85719b001f3a535e | +| `thumb` | *T.nilable(::String)* | :heavy_minus_sign: | The URL of the thumbnail image for the actor. | https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg | \ No newline at end of file diff --git a/docs/models/operations/rating.md b/docs/models/operations/rating.md new file mode 100644 index 0000000..72417d2 --- /dev/null +++ b/docs/models/operations/rating.md @@ -0,0 +1,12 @@ +# Rating + +The type of rating, for example 'audience' or 'critic'. + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- | +| `image` | *::String* | :heavy_check_mark: | N/A | imdb://image.rating | +| `value` | *::Float* | :heavy_check_mark: | N/A | 5.1 | +| `type` | *::String* | :heavy_check_mark: | N/A | audience | \ No newline at end of file diff --git a/docs/models/operations/role.md b/docs/models/operations/role.md index 30b16d1..fd351f1 100644 --- a/docs/models/operations/role.md +++ b/docs/models/operations/role.md @@ -3,11 +3,11 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| `id` | *T.nilable(::Integer)* | :heavy_minus_sign: | The ID of the tag or actor. | 294129 | -| `filter` | *T.nilable(::String)* | :heavy_minus_sign: | The filter used to find the actor or tag. | actor=294129 | -| `thumb` | *T.nilable(::String)* | :heavy_minus_sign: | The thumbnail of the actor | https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg | -| `tag` | *T.nilable(::String)* | :heavy_minus_sign: | The name of the tag or actor. | Mike Smith | -| `tag_key` | *T.nilable(::String)* | :heavy_minus_sign: | Unique identifier for the tag. | 668e7e7b22bcad9064350c91 | -| `role` | *T.nilable(::String)* | :heavy_minus_sign: | The role of the actor or tag in the media. | Self | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| `id` | *::Integer* | :heavy_check_mark: | Unique identifier for the actor or role. | 126522 | +| `filter` | *::String* | :heavy_check_mark: | The filter string used to query this actor. For example, it may indicate that this is an actor with a given key. | actor=126522 | +| `tag` | *::String* | :heavy_check_mark: | The display tag for the actor (typically the actor's name). | Teller | +| `tag_key` | *T.nilable(::String)* | :heavy_minus_sign: | A unique key associated with the actor's tag, used for internal identification. | 5d77683d85719b001f3a535e | +| `role` | *T.nilable(::String)* | :heavy_minus_sign: | The role played by the actor in the media item. | Self - Judge | +| `thumb` | *T.nilable(::String)* | :heavy_minus_sign: | The URL of the thumbnail image for the actor. | https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg | \ No newline at end of file diff --git a/docs/models/operations/similar.md b/docs/models/operations/similar.md index bb26540..3246ad1 100644 --- a/docs/models/operations/similar.md +++ b/docs/models/operations/similar.md @@ -1,10 +1,12 @@ # Similar +The display tag for the similar item, typically the title. + ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | -| `id` | *::Integer* | :heavy_check_mark: | The unique similar item identifier. | 26 | -| `filter` | *::String* | :heavy_check_mark: | The filter string for similar items. | similar=26 | -| `tag` | *::String* | :heavy_check_mark: | The tag or title of the similar content. | Breaking Bad | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------- | --------------------- | --------------------- | --------------------- | --------------------- | +| `id` | *::Integer* | :heavy_check_mark: | N/A | 259 | +| `filter` | *::String* | :heavy_check_mark: | N/A | similar=259 | +| `tag` | *::String* | :heavy_check_mark: | N/A | Criss Angel Mindfreak | \ No newline at end of file diff --git a/docs/models/operations/stream.md b/docs/models/operations/stream.md index a02b757..d7dc15d 100644 --- a/docs/models/operations/stream.md +++ b/docs/models/operations/stream.md @@ -3,43 +3,54 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | -| `id` | *::Integer* | :heavy_check_mark: | N/A | 272796 | -| `stream_type` | *::Integer* | :heavy_check_mark: | Type of stream (1 = video, 2 = audio, 3 = subtitle) | 1 | -| `default` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates if this is the default stream | true | -| `selected` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates if the stream is selected | true | -| `codec` | *::String* | :heavy_check_mark: | Codec used by the stream | h264 | -| `index` | *::Integer* | :heavy_check_mark: | The index of the stream | 0 | -| `bitrate` | *T.nilable(::Integer)* | :heavy_minus_sign: | The bitrate of the stream in kbps | 6273 | -| `color_primaries` | *T.nilable(::String)* | :heavy_minus_sign: | The color primaries of the video stream | bt709 | -| `color_range` | *T.nilable(::String)* | :heavy_minus_sign: | The color range of the video stream | tv | -| `color_space` | *T.nilable(::String)* | :heavy_minus_sign: | The color space of the video stream | bt709 | -| `color_trc` | *T.nilable(::String)* | :heavy_minus_sign: | The transfer characteristics (TRC) of the video stream | bt709 | -| `bit_depth` | *T.nilable(::Integer)* | :heavy_minus_sign: | The bit depth of the video stream | 8 | -| `chroma_location` | *T.nilable(::String)* | :heavy_minus_sign: | The chroma location of the video stream | left | -| `stream_identifier` | *T.nilable(::String)* | :heavy_minus_sign: | The identifier of the video stream | 2 | -| `chroma_subsampling` | *T.nilable(::String)* | :heavy_minus_sign: | The chroma subsampling format | 4:2:0 | -| `coded_height` | *T.nilable(::Integer)* | :heavy_minus_sign: | The coded height of the video stream | 1088 | -| `coded_width` | *T.nilable(::Integer)* | :heavy_minus_sign: | The coded width of the video stream | 1920 | -| `frame_rate` | *T.nilable(::Float)* | :heavy_minus_sign: | The frame rate of the video stream | 29.97 | -| `has_scaling_matrix` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates if the stream has a scaling matrix | false | -| `hearing_impaired` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | -| `closed_captions` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | -| `embedded_in_video` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | 1 | -| `height` | *T.nilable(::Integer)* | :heavy_minus_sign: | The height of the video stream | 1080 | -| `level` | *T.nilable(::Integer)* | :heavy_minus_sign: | The level of the video codec | 40 | -| `profile` | *T.nilable(::String)* | :heavy_minus_sign: | The profile of the video codec | main | -| `ref_frames` | *T.nilable(::Integer)* | :heavy_minus_sign: | Number of reference frames | 4 | -| `scan_type` | *T.nilable(::String)* | :heavy_minus_sign: | The scan type (progressive or interlaced) | progressive | -| `width` | *T.nilable(::Integer)* | :heavy_minus_sign: | The width of the video stream | 1920 | -| `display_title` | *T.nilable(::String)* | :heavy_minus_sign: | Display title of the stream | 1080p (H.264) | -| `extended_display_title` | *T.nilable(::String)* | :heavy_minus_sign: | Extended display title of the stream | 1080p (H.264) | -| `channels` | *T.nilable(::Integer)* | :heavy_minus_sign: | Number of audio channels (for audio streams) | 2 | -| `language` | *T.nilable(::String)* | :heavy_minus_sign: | The language of the stream (for audio/subtitle streams) | English | -| `language_tag` | *T.nilable(::String)* | :heavy_minus_sign: | Language tag of the stream | en | -| `language_code` | *T.nilable(::String)* | :heavy_minus_sign: | Language code of the stream | eng | -| `audio_channel_layout` | *T.nilable(::String)* | :heavy_minus_sign: | The audio channel layout | stereo | -| `sampling_rate` | *T.nilable(::Integer)* | :heavy_minus_sign: | Sampling rate of the audio stream in Hz | 48000 | -| `title` | *T.nilable(::String)* | :heavy_minus_sign: | Title of the subtitle track (for subtitle streams) | English | -| `can_auto_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates if the subtitle stream can auto-sync | false | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `id` | *::Integer* | :heavy_check_mark: | Unique stream identifier. | 1002625 | +| `stream_type` | *::Integer* | :heavy_check_mark: | Stream type (1=video, 2=audio, 3=subtitle). | 1 | +| `default` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates if this stream is default. | true | +| `codec` | *::String* | :heavy_check_mark: | Codec used by the stream. | hevc | +| `index` | *::Integer* | :heavy_check_mark: | Index of the stream. | 0 | +| `bitrate` | *T.nilable(::Integer)* | :heavy_minus_sign: | Bitrate of the stream. | 24743 | +| `language` | *T.nilable(::String)* | :heavy_minus_sign: | Language of the stream. | English | +| `language_tag` | *T.nilable(::String)* | :heavy_minus_sign: | Language tag (e.g., en). | en | +| `language_code` | *T.nilable(::String)* | :heavy_minus_sign: | ISO language code. | eng | +| `header_compression` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates whether header compression is enabled. | true | +| `dovibl_compat_id` | *T.nilable(::Integer)* | :heavy_minus_sign: | Dolby Vision BL compatibility ID. | 1 | +| `dovibl_present` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates if Dolby Vision BL is present. | true | +| `doviel_present` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates if Dolby Vision EL is present. | false | +| `dovi_level` | *T.nilable(::Integer)* | :heavy_minus_sign: | Dolby Vision level. | 6 | +| `dovi_present` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates if Dolby Vision is present. | true | +| `dovi_profile` | *T.nilable(::Integer)* | :heavy_minus_sign: | Dolby Vision profile. | 8 | +| `dovirpu_present` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates if Dolby Vision RPU is present. | true | +| `dovi_version` | *T.nilable(::String)* | :heavy_minus_sign: | Dolby Vision version. | 1.0 | +| `bit_depth` | *T.nilable(::Integer)* | :heavy_minus_sign: | Bit depth of the video stream. | 10 | +| `chroma_location` | *T.nilable(::String)* | :heavy_minus_sign: | Chroma sample location. | topleft | +| `chroma_subsampling` | *T.nilable(::String)* | :heavy_minus_sign: | Chroma subsampling format. | 4:2:0 | +| `coded_height` | *T.nilable(::Integer)* | :heavy_minus_sign: | Coded video height. | 1608 | +| `coded_width` | *T.nilable(::Integer)* | :heavy_minus_sign: | Coded video width. | 3840 | +| `closed_captions` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true | +| `color_primaries` | *T.nilable(::String)* | :heavy_minus_sign: | Color primaries used. | bt2020 | +| `color_range` | *T.nilable(::String)* | :heavy_minus_sign: | Color range (e.g., tv). | tv | +| `color_space` | *T.nilable(::String)* | :heavy_minus_sign: | Color space. | bt2020nc | +| `color_trc` | *T.nilable(::String)* | :heavy_minus_sign: | Color transfer characteristics. | smpte2084 | +| `frame_rate` | *T.nilable(::Float)* | :heavy_minus_sign: | Frame rate of the stream. | 23.976 | +| `height` | *T.nilable(::Integer)* | :heavy_minus_sign: | Height of the video stream. | 1602 | +| `level` | *T.nilable(::Integer)* | :heavy_minus_sign: | Video level. | 150 | +| `original` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates if this is the original stream. | true | +| `has_scaling_matrix` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false | +| `profile` | *T.nilable(::String)* | :heavy_minus_sign: | Video profile. | main 10 | +| `scan_type` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | progressive | +| `embedded_in_video` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | progressive | +| `ref_frames` | *T.nilable(::Integer)* | :heavy_minus_sign: | Number of reference frames. | 1 | +| `width` | *T.nilable(::Integer)* | :heavy_minus_sign: | Width of the video stream. | 3840 | +| `display_title` | *::String* | :heavy_check_mark: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | +| `extended_display_title` | *::String* | :heavy_check_mark: | Extended display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | +| `selected` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates if this stream is selected (applicable for audio streams). | true | +| `forced` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true | +| `channels` | *T.nilable(::Integer)* | :heavy_minus_sign: | Number of audio channels (for audio streams). | 6 | +| `audio_channel_layout` | *T.nilable(::String)* | :heavy_minus_sign: | Audio channel layout. | 5.1(side) | +| `sampling_rate` | *T.nilable(::Integer)* | :heavy_minus_sign: | Sampling rate for the audio stream. | 48000 | +| `can_auto_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates if the stream can auto-sync. | false | +| `hearing_impaired` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates if the stream is for the hearing impaired. | true | +| `dub` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Indicates if the stream is a dub. | true | +| `title` | *T.nilable(::String)* | :heavy_minus_sign: | Optional title for the stream (e.g., language variant). | SDH | \ No newline at end of file diff --git a/docs/models/operations/writer.md b/docs/models/operations/writer.md index b1d70df..2681ce9 100644 --- a/docs/models/operations/writer.md +++ b/docs/models/operations/writer.md @@ -3,6 +3,9 @@ ## Fields -| Field | Type | Required | Description | Example | -| --------------------- | --------------------- | --------------------- | --------------------- | --------------------- | -| `tag` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | James Cameron | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | +| `id` | *::Integer* | :heavy_check_mark: | Unique identifier for the writer. | 126522 | +| `filter` | *::String* | :heavy_check_mark: | The filter string used to query this writer. | writer=126522 | +| `tag` | *::String* | :heavy_check_mark: | The role of Writer | Jamie P. Hanson | +| `tag_key` | *T.nilable(::String)* | :heavy_minus_sign: | A unique key associated with the writers tag, used for internal identification. | 5d77683d85719b001f3a535e | \ No newline at end of file diff --git a/docs/sdks/library/README.md b/docs/sdks/library/README.md index cbb6852..954b2cb 100644 --- a/docs/sdks/library/README.md +++ b/docs/sdks/library/README.md @@ -24,7 +24,6 @@ API Calls interacting with Plex Media Server Libraries * [get_media_meta_data](#get_media_meta_data) - Get Media Metadata * [get_metadata_children](#get_metadata_children) - Get Items Children * [get_top_watched_content](#get_top_watched_content) - Get Top Watched Content -* [get_on_deck](#get_on_deck) - Get On Deck ## get_file_hash @@ -753,33 +752,3 @@ end **[T.nilable(::PlexRubySDK::Operations::GetTopWatchedContentResponse)](../../models/operations/gettopwatchedcontentresponse.md)** - - -## get_on_deck - -This endpoint will return the on deck content. - - -### Example Usage - -```ruby -require 'plex_ruby_sdk' - -s = ::PlexRubySDK::PlexAPI.new( - security: ::PlexRubySDK::Shared::Security.new( - access_token: "", - ), - ) - -res = s.library.get_on_deck() - -if ! res.object.nil? - # handle response -end - -``` - -### Response - -**[T.nilable(::PlexRubySDK::Operations::GetOnDeckResponse)](../../models/operations/getondeckresponse.md)** - diff --git a/lib/plex_ruby_sdk/library.rb b/lib/plex_ruby_sdk/library.rb index 850aad0..61fbf4a 100644 --- a/lib/plex_ruby_sdk/library.rb +++ b/lib/plex_ruby_sdk/library.rb @@ -925,49 +925,5 @@ module PlexRubySDK res end - - - sig { returns(::PlexRubySDK::Operations::GetOnDeckResponse) } - def get_on_deck - # get_on_deck - Get On Deck - # This endpoint will return the on deck content. - # - url, params = @sdk_configuration.get_server_details - base_url = Utils.template_url(url, params) - url = "#{base_url}/library/onDeck" - headers = {} - headers['Accept'] = 'application/json' - headers['user-agent'] = @sdk_configuration.user_agent - - r = @sdk_configuration.client.get(url) do |req| - req.headers = headers - security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil - Utils.configure_request_security(req, security) if !security.nil? - end - - content_type = r.headers.fetch('Content-Type', 'application/octet-stream') - - res = ::PlexRubySDK::Operations::GetOnDeckResponse.new( - status_code: r.status, content_type: content_type, raw_response: r - ) - if r.status == 200 - if Utils.match_content_type(content_type, 'application/json') - out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::PlexRubySDK::Operations::GetOnDeckResponseBody) - res.object = out - end - elsif r.status == 400 - if Utils.match_content_type(content_type, 'application/json') - out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::PlexRubySDK::Operations::GetOnDeckBadRequest) - res.bad_request = out - end - elsif r.status == 401 - if Utils.match_content_type(content_type, 'application/json') - out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::PlexRubySDK::Operations::GetOnDeckUnauthorized) - res.unauthorized = out - end - end - - res - end end end diff --git a/lib/plex_ruby_sdk/models/operations.rb b/lib/plex_ruby_sdk/models/operations.rb index 77d487b..86c3937 100644 --- a/lib/plex_ruby_sdk/models/operations.rb +++ b/lib/plex_ruby_sdk/models/operations.rb @@ -244,11 +244,9 @@ module PlexRubySDK autoload :GetRecentlyAddedFieldType, 'plex_ruby_sdk/models/operations/get_recently_added_fieldtype.rb' autoload :Meta, 'plex_ruby_sdk/models/operations/meta.rb' autoload :GetRecentlyAddedHubsType, 'plex_ruby_sdk/models/operations/get_recently_added_hubs_type.rb' - autoload :FlattenSeasons, 'plex_ruby_sdk/models/operations/flattenseasons.rb' - autoload :EpisodeSort, 'plex_ruby_sdk/models/operations/episodesort.rb' - autoload :EnableCreditsMarkerGeneration, 'plex_ruby_sdk/models/operations/enablecreditsmarkergeneration.rb' - autoload :ShowOrdering, 'plex_ruby_sdk/models/operations/showordering.rb' - autoload :OptimizedForStreaming, 'plex_ruby_sdk/models/operations/optimizedforstreaming.rb' + autoload :GetRecentlyAddedHubsResponseType, 'plex_ruby_sdk/models/operations/get_recently_added_hubs_response_type.rb' + autoload :GetRecentlyAddedImage, 'plex_ruby_sdk/models/operations/get_recently_added_image.rb' + autoload :UltraBlurColors, 'plex_ruby_sdk/models/operations/ultrablurcolors.rb' autoload :HasThumbnail, 'plex_ruby_sdk/models/operations/hasthumbnail.rb' autoload :Stream, 'plex_ruby_sdk/models/operations/stream.rb' autoload :Part, 'plex_ruby_sdk/models/operations/part.rb' @@ -257,14 +255,13 @@ module PlexRubySDK autoload :Country, 'plex_ruby_sdk/models/operations/country.rb' autoload :Director, 'plex_ruby_sdk/models/operations/director.rb' autoload :Writer, 'plex_ruby_sdk/models/operations/writer.rb' - autoload :Collection, 'plex_ruby_sdk/models/operations/collection.rb' autoload :Role, 'plex_ruby_sdk/models/operations/role.rb' + autoload :Producer, 'plex_ruby_sdk/models/operations/producer.rb' + autoload :Rating, 'plex_ruby_sdk/models/operations/rating.rb' + autoload :Similar, 'plex_ruby_sdk/models/operations/similar.rb' autoload :Location, 'plex_ruby_sdk/models/operations/location.rb' - autoload :MediaGuid, 'plex_ruby_sdk/models/operations/mediaguid.rb' - autoload :UltraBlurColors, 'plex_ruby_sdk/models/operations/ultrablurcolors.rb' - autoload :MetaDataRating, 'plex_ruby_sdk/models/operations/metadatarating.rb' - autoload :GetRecentlyAddedHubsResponseType, 'plex_ruby_sdk/models/operations/get_recently_added_hubs_response_type.rb' - autoload :GetRecentlyAddedImage, 'plex_ruby_sdk/models/operations/get_recently_added_image.rb' + autoload :Guids, 'plex_ruby_sdk/models/operations/guids.rb' + autoload :Collection, 'plex_ruby_sdk/models/operations/collection.rb' autoload :GetRecentlyAddedMetadata, 'plex_ruby_sdk/models/operations/get_recently_added_metadata.rb' autoload :GetRecentlyAddedMediaContainer, 'plex_ruby_sdk/models/operations/get_recently_added_mediacontainer.rb' autoload :GetRecentlyAddedResponseBody, 'plex_ruby_sdk/models/operations/get_recently_added_responsebody.rb' @@ -397,11 +394,11 @@ module PlexRubySDK autoload :GetLibraryItemsOperator, 'plex_ruby_sdk/models/operations/get_library_items_operator.rb' autoload :GetLibraryItemsFieldType, 'plex_ruby_sdk/models/operations/get_library_items_fieldtype.rb' autoload :GetLibraryItemsLibraryType, 'plex_ruby_sdk/models/operations/get_library_items_library_type.rb' - autoload :GetLibraryItemsFlattenSeasons, 'plex_ruby_sdk/models/operations/get_library_items_flattenseasons.rb' - autoload :GetLibraryItemsEpisodeSort, 'plex_ruby_sdk/models/operations/get_library_items_episodesort.rb' - autoload :GetLibraryItemsEnableCreditsMarkerGeneration, 'plex_ruby_sdk/models/operations/get_library_items_enablecreditsmarkergeneration.rb' - autoload :GetLibraryItemsShowOrdering, 'plex_ruby_sdk/models/operations/get_library_items_showordering.rb' - autoload :GetLibraryItemsOptimizedForStreaming, 'plex_ruby_sdk/models/operations/get_library_items_optimizedforstreaming.rb' + autoload :FlattenSeasons, 'plex_ruby_sdk/models/operations/flattenseasons.rb' + autoload :EpisodeSort, 'plex_ruby_sdk/models/operations/episodesort.rb' + autoload :EnableCreditsMarkerGeneration, 'plex_ruby_sdk/models/operations/enablecreditsmarkergeneration.rb' + autoload :ShowOrdering, 'plex_ruby_sdk/models/operations/showordering.rb' + autoload :OptimizedForStreaming, 'plex_ruby_sdk/models/operations/optimizedforstreaming.rb' autoload :GetLibraryItemsHasThumbnail, 'plex_ruby_sdk/models/operations/get_library_items_hasthumbnail.rb' autoload :GetLibraryItemsStream, 'plex_ruby_sdk/models/operations/get_library_items_stream.rb' autoload :GetLibraryItemsPart, 'plex_ruby_sdk/models/operations/get_library_items_part.rb' @@ -413,9 +410,9 @@ module PlexRubySDK autoload :GetLibraryItemsCollection, 'plex_ruby_sdk/models/operations/get_library_items_collection.rb' autoload :GetLibraryItemsRole, 'plex_ruby_sdk/models/operations/get_library_items_role.rb' autoload :GetLibraryItemsLocation, 'plex_ruby_sdk/models/operations/get_library_items_location.rb' - autoload :GetLibraryItemsMediaGuid, 'plex_ruby_sdk/models/operations/get_library_items_mediaguid.rb' + autoload :MediaGuid, 'plex_ruby_sdk/models/operations/mediaguid.rb' autoload :GetLibraryItemsUltraBlurColors, 'plex_ruby_sdk/models/operations/get_library_items_ultrablurcolors.rb' - autoload :GetLibraryItemsMetaDataRating, 'plex_ruby_sdk/models/operations/get_library_items_metadatarating.rb' + autoload :MetaDataRating, 'plex_ruby_sdk/models/operations/metadatarating.rb' autoload :GetLibraryItemsLibraryResponse200Type, 'plex_ruby_sdk/models/operations/get_library_items_library_response_200_type.rb' autoload :GetLibraryItemsImage, 'plex_ruby_sdk/models/operations/get_library_items_image.rb' autoload :GetLibraryItemsMetadata, 'plex_ruby_sdk/models/operations/get_library_items_metadata.rb' @@ -464,7 +461,7 @@ module PlexRubySDK autoload :GetAllMediaLibraryDirector, 'plex_ruby_sdk/models/operations/get_all_media_library_director.rb' autoload :GetAllMediaLibraryWriter, 'plex_ruby_sdk/models/operations/get_all_media_library_writer.rb' autoload :GetAllMediaLibraryRole, 'plex_ruby_sdk/models/operations/get_all_media_library_role.rb' - autoload :Guids, 'plex_ruby_sdk/models/operations/guids.rb' + autoload :GetAllMediaLibraryGuids, 'plex_ruby_sdk/models/operations/get_all_media_library_guids.rb' autoload :GetAllMediaLibraryCollection, 'plex_ruby_sdk/models/operations/get_all_media_library_collection.rb' autoload :GetAllMediaLibraryMetadata, 'plex_ruby_sdk/models/operations/get_all_media_library_metadata.rb' autoload :GetAllMediaLibraryMediaContainer, 'plex_ruby_sdk/models/operations/get_all_media_library_mediacontainer.rb' @@ -570,8 +567,8 @@ module PlexRubySDK autoload :GetMediaMetaDataRole, 'plex_ruby_sdk/models/operations/get_media_meta_data_role.rb' autoload :GetMediaMetaDataDirector, 'plex_ruby_sdk/models/operations/get_media_meta_data_director.rb' autoload :GetMediaMetaDataWriter, 'plex_ruby_sdk/models/operations/get_media_meta_data_writer.rb' - autoload :Producer, 'plex_ruby_sdk/models/operations/producer.rb' - autoload :Similar, 'plex_ruby_sdk/models/operations/similar.rb' + autoload :GetMediaMetaDataProducer, 'plex_ruby_sdk/models/operations/get_media_meta_data_producer.rb' + autoload :GetMediaMetaDataSimilar, 'plex_ruby_sdk/models/operations/get_media_meta_data_similar.rb' autoload :GetMediaMetaDataLocation, 'plex_ruby_sdk/models/operations/get_media_meta_data_location.rb' autoload :GetMediaMetaDataMetadata, 'plex_ruby_sdk/models/operations/get_media_meta_data_metadata.rb' autoload :GetMediaMetaDataMediaContainer, 'plex_ruby_sdk/models/operations/get_media_meta_data_mediacontainer.rb' @@ -602,18 +599,6 @@ module PlexRubySDK autoload :GetTopWatchedContentMediaContainer, 'plex_ruby_sdk/models/operations/gettopwatchedcontent_mediacontainer.rb' autoload :GetTopWatchedContentResponseBody, 'plex_ruby_sdk/models/operations/gettopwatchedcontent_responsebody.rb' autoload :GetTopWatchedContentResponse, 'plex_ruby_sdk/models/operations/gettopwatchedcontent_response.rb' - autoload :GetOnDeckLibraryErrors, 'plex_ruby_sdk/models/operations/getondeck_library_errors.rb' - autoload :GetOnDeckUnauthorized, 'plex_ruby_sdk/models/operations/getondeck_unauthorized.rb' - autoload :GetOnDeckErrors, 'plex_ruby_sdk/models/operations/getondeck_errors.rb' - autoload :GetOnDeckBadRequest, 'plex_ruby_sdk/models/operations/getondeck_badrequest.rb' - autoload :GetOnDeckStream, 'plex_ruby_sdk/models/operations/getondeck_stream.rb' - autoload :GetOnDeckPart, 'plex_ruby_sdk/models/operations/getondeck_part.rb' - autoload :GetOnDeckMedia, 'plex_ruby_sdk/models/operations/getondeck_media.rb' - autoload :GetOnDeckGuids, 'plex_ruby_sdk/models/operations/getondeck_guids.rb' - autoload :GetOnDeckMetadata, 'plex_ruby_sdk/models/operations/getondeck_metadata.rb' - autoload :GetOnDeckMediaContainer, 'plex_ruby_sdk/models/operations/getondeck_mediacontainer.rb' - autoload :GetOnDeckResponseBody, 'plex_ruby_sdk/models/operations/getondeck_responsebody.rb' - autoload :GetOnDeckResponse, 'plex_ruby_sdk/models/operations/getondeck_response.rb' autoload :Filter, 'plex_ruby_sdk/models/operations/filter.rb' autoload :Libtype, 'plex_ruby_sdk/models/operations/libtype.rb' autoload :IncludeCollections, 'plex_ruby_sdk/models/operations/includecollections.rb' diff --git a/lib/plex_ruby_sdk/models/operations/collection.rb b/lib/plex_ruby_sdk/models/operations/collection.rb index 31c679f..3dbb296 100644 --- a/lib/plex_ruby_sdk/models/operations/collection.rb +++ b/lib/plex_ruby_sdk/models/operations/collection.rb @@ -11,11 +11,11 @@ module PlexRubySDK class Collection < ::Crystalline::FieldAugmented extend T::Sig - - field :tag, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } } + # The user-made collection this media item belongs to + field :tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } } - sig { params(tag: T.nilable(::String)).void } + sig { params(tag: ::String).void } def initialize(tag: nil) @tag = tag end diff --git a/lib/plex_ruby_sdk/models/operations/country.rb b/lib/plex_ruby_sdk/models/operations/country.rb index ce27b6f..af1033c 100644 --- a/lib/plex_ruby_sdk/models/operations/country.rb +++ b/lib/plex_ruby_sdk/models/operations/country.rb @@ -7,17 +7,23 @@ module PlexRubySDK module Operations - + # The filter query string for country media items. class Country < ::Crystalline::FieldAugmented extend T::Sig - field :tag, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } } + field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } + # The country of origin of this media item + field :tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } } + + field :filter, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('filter') } } - sig { params(tag: T.nilable(::String)).void } - def initialize(tag: nil) + sig { params(id: ::Integer, tag: ::String, filter: T.nilable(::String)).void } + def initialize(id: nil, tag: nil, filter: nil) + @id = id @tag = tag + @filter = filter end end end diff --git a/lib/plex_ruby_sdk/models/operations/director.rb b/lib/plex_ruby_sdk/models/operations/director.rb index 018516b..0ebdebc 100644 --- a/lib/plex_ruby_sdk/models/operations/director.rb +++ b/lib/plex_ruby_sdk/models/operations/director.rb @@ -11,11 +11,11 @@ module PlexRubySDK class Director < ::Crystalline::FieldAugmented extend T::Sig - - field :tag, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } } + # The role of Director + field :tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } } - sig { params(tag: T.nilable(::String)).void } + sig { params(tag: ::String).void } def initialize(tag: nil) @tag = tag end diff --git a/lib/plex_ruby_sdk/models/operations/genre.rb b/lib/plex_ruby_sdk/models/operations/genre.rb index 1b064b8..f7e64e0 100644 --- a/lib/plex_ruby_sdk/models/operations/genre.rb +++ b/lib/plex_ruby_sdk/models/operations/genre.rb @@ -7,16 +7,23 @@ module PlexRubySDK module Operations - + # The filter query string for similar items. class Genre < ::Crystalline::FieldAugmented extend T::Sig - field :tag, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } } + field :filter, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('filter') } } + + field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } + # The genre name of this media-item + # + field :tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } } - sig { params(tag: T.nilable(::String)).void } - def initialize(tag: nil) + sig { params(filter: ::String, id: ::Integer, tag: ::String).void } + def initialize(filter: nil, id: nil, tag: nil) + @filter = filter + @id = id @tag = tag end end diff --git a/lib/plex_ruby_sdk/models/operations/get_all_media_library_genre.rb b/lib/plex_ruby_sdk/models/operations/get_all_media_library_genre.rb index 2223205..2f499ba 100644 --- a/lib/plex_ruby_sdk/models/operations/get_all_media_library_genre.rb +++ b/lib/plex_ruby_sdk/models/operations/get_all_media_library_genre.rb @@ -11,7 +11,8 @@ module PlexRubySDK class GetAllMediaLibraryGenre < ::Crystalline::FieldAugmented extend T::Sig - # The country of origin of this media item + # The genre name of this media-item + # field :tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } } diff --git a/lib/plex_ruby_sdk/models/operations/getondeck_guids.rb b/lib/plex_ruby_sdk/models/operations/get_all_media_library_guids.rb similarity index 71% rename from lib/plex_ruby_sdk/models/operations/getondeck_guids.rb rename to lib/plex_ruby_sdk/models/operations/get_all_media_library_guids.rb index c1d604a..b0e1ce3 100644 --- a/lib/plex_ruby_sdk/models/operations/getondeck_guids.rb +++ b/lib/plex_ruby_sdk/models/operations/get_all_media_library_guids.rb @@ -8,10 +8,11 @@ module PlexRubySDK module Operations - class GetOnDeckGuids < ::Crystalline::FieldAugmented + class GetAllMediaLibraryGuids < ::Crystalline::FieldAugmented extend T::Sig - + # The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337 + # field :id, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } diff --git a/lib/plex_ruby_sdk/models/operations/get_all_media_library_media.rb b/lib/plex_ruby_sdk/models/operations/get_all_media_library_media.rb index 8154a58..5dc049b 100644 --- a/lib/plex_ruby_sdk/models/operations/get_all_media_library_media.rb +++ b/lib/plex_ruby_sdk/models/operations/get_all_media_library_media.rb @@ -11,12 +11,8 @@ module PlexRubySDK class GetAllMediaLibraryMedia < ::Crystalline::FieldAugmented extend T::Sig - # Indicates whether voice activity is detected. - field :has_voice_activity, T::Boolean, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('hasVoiceActivity') } } # Unique media identifier. field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } - # An array of parts for this media item. - field :part, T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryPart], { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Part') } } # Aspect ratio of the video. field :aspect_ratio, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('aspectRatio') } } # Number of audio channels. @@ -35,10 +31,14 @@ module PlexRubySDK field :duration, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('duration') } } field :has64bit_offsets, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('has64bitOffsets') } } + # Indicates whether voice activity is detected. + field :has_voice_activity, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('hasVoiceActivity') } } # Video height in pixels. field :height, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('height') } } # Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true field :optimized_for_streaming, T.nilable(::Object), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('optimizedForStreaming') } } + # An array of parts for this media item. + field :part, T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryPart]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Part') } } # Video codec used. field :video_codec, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('videoCodec') } } # Frame rate of the video. Values found include NTSC, PAL, 24p @@ -52,11 +52,9 @@ module PlexRubySDK field :width, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('width') } } - sig { params(has_voice_activity: T::Boolean, id: ::Integer, part: T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryPart], aspect_ratio: T.nilable(::Float), audio_channels: T.nilable(::Integer), audio_codec: T.nilable(::String), audio_profile: T.nilable(::String), bitrate: T.nilable(::Integer), container: T.nilable(::String), display_offset: T.nilable(::Integer), duration: T.nilable(::Integer), has64bit_offsets: T.nilable(T::Boolean), height: T.nilable(::Integer), optimized_for_streaming: T.nilable(::Object), video_codec: T.nilable(::String), video_frame_rate: T.nilable(::String), video_profile: T.nilable(::String), video_resolution: T.nilable(::String), width: T.nilable(::Integer)).void } - def initialize(has_voice_activity: nil, id: nil, part: nil, aspect_ratio: nil, audio_channels: nil, audio_codec: nil, audio_profile: nil, bitrate: nil, container: nil, display_offset: nil, duration: nil, has64bit_offsets: nil, height: nil, optimized_for_streaming: nil, video_codec: nil, video_frame_rate: nil, video_profile: nil, video_resolution: nil, width: nil) - @has_voice_activity = has_voice_activity + sig { params(id: ::Integer, aspect_ratio: T.nilable(::Float), audio_channels: T.nilable(::Integer), audio_codec: T.nilable(::String), audio_profile: T.nilable(::String), bitrate: T.nilable(::Integer), container: T.nilable(::String), display_offset: T.nilable(::Integer), duration: T.nilable(::Integer), has64bit_offsets: T.nilable(T::Boolean), has_voice_activity: T.nilable(T::Boolean), height: T.nilable(::Integer), optimized_for_streaming: T.nilable(::Object), part: T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryPart]), video_codec: T.nilable(::String), video_frame_rate: T.nilable(::String), video_profile: T.nilable(::String), video_resolution: T.nilable(::String), width: T.nilable(::Integer)).void } + def initialize(id: nil, aspect_ratio: nil, audio_channels: nil, audio_codec: nil, audio_profile: nil, bitrate: nil, container: nil, display_offset: nil, duration: nil, has64bit_offsets: nil, has_voice_activity: nil, height: nil, optimized_for_streaming: nil, part: nil, video_codec: nil, video_frame_rate: nil, video_profile: nil, video_resolution: nil, width: nil) @id = id - @part = part @aspect_ratio = aspect_ratio @audio_channels = audio_channels @audio_codec = audio_codec @@ -66,8 +64,10 @@ module PlexRubySDK @display_offset = display_offset @duration = duration @has64bit_offsets = has64bit_offsets + @has_voice_activity = has_voice_activity @height = height @optimized_for_streaming = optimized_for_streaming + @part = part @video_codec = video_codec @video_frame_rate = video_frame_rate @video_profile = video_profile diff --git a/lib/plex_ruby_sdk/models/operations/get_all_media_library_metadata.rb b/lib/plex_ruby_sdk/models/operations/get_all_media_library_metadata.rb index 3701055..03e184e 100644 --- a/lib/plex_ruby_sdk/models/operations/get_all_media_library_metadata.rb +++ b/lib/plex_ruby_sdk/models/operations/get_all_media_library_metadata.rb @@ -52,8 +52,6 @@ module PlexRubySDK field :title_sort, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('titleSort') } } field :type, ::PlexRubySDK::Operations::GetAllMediaLibraryLibraryType, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::GetAllMediaLibraryLibraryType, false) } } - # The release year of the media item. - field :year, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('year') } } # The URL for the audience rating image. field :audience_rating_image, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('audienceRatingImage') } } # The source from which chapter data is derived. @@ -89,7 +87,7 @@ module PlexRubySDK # The title of the grandparent media item. field :grandparent_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('grandparentTitle') } } - field :guids, T.nilable(T::Array[::PlexRubySDK::Operations::Guids]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Guid') } } + field :guids, T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryGuids]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Guid') } } field :image, T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryImage]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Image') } } # The Unix timestamp representing the last time the item was rated. @@ -140,10 +138,12 @@ module PlexRubySDK field :view_offset, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('viewOffset') } } field :writer, T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryWriter]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Writer') } } + # The release year of the media item. + field :year, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('year') } } - sig { params(added_at: ::Integer, art: ::String, audience_rating: ::Float, child_count: ::Integer, duration: ::Integer, guid: ::String, index: ::Integer, key: ::String, originally_available_at: ::Date, rating: ::Float, rating_key: ::String, season_count: ::Integer, slug: ::String, summary: ::String, tagline: ::String, theme: ::String, thumb: ::String, title: ::String, title_sort: ::String, type: ::PlexRubySDK::Operations::GetAllMediaLibraryLibraryType, year: ::Integer, audience_rating_image: T.nilable(::String), chapter_source: T.nilable(::String), collection: T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryCollection]), content_rating: T.nilable(::String), country: T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryCountry]), created_at_accuracy: T.nilable(::String), created_at_tz_offset: T.nilable(::String), director: T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryDirector]), genre: T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryGenre]), grandparent_art: T.nilable(::String), grandparent_guid: T.nilable(::String), grandparent_key: T.nilable(::String), grandparent_rating_key: T.nilable(::String), grandparent_slug: T.nilable(::String), grandparent_theme: T.nilable(::String), grandparent_thumb: T.nilable(::String), grandparent_title: T.nilable(::String), guids: T.nilable(T::Array[::PlexRubySDK::Operations::Guids]), image: T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryImage]), last_rated_at: T.nilable(::Integer), last_viewed_at: T.nilable(::Integer), leaf_count: T.nilable(::Integer), media: T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryMedia]), original_title: T.nilable(::String), parent_guid: T.nilable(::String), parent_index: T.nilable(::Integer), parent_key: T.nilable(::String), parent_rating_key: T.nilable(::String), parent_thumb: T.nilable(::String), parent_title: T.nilable(::String), primary_extra_key: T.nilable(::String), rating_image: T.nilable(::String), role: T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryRole]), skip_count: T.nilable(::Integer), studio: T.nilable(::String), subtype: T.nilable(::String), ultra_blur_colors: T.nilable(::PlexRubySDK::Operations::GetAllMediaLibraryUltraBlurColors), updated_at: T.nilable(::Integer), user_rating: T.nilable(::Float), view_count: T.nilable(::Integer), viewed_leaf_count: T.nilable(::Integer), view_offset: T.nilable(::Integer), writer: T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryWriter])).void } - def initialize(added_at: nil, art: nil, audience_rating: nil, child_count: nil, duration: nil, guid: nil, index: nil, key: nil, originally_available_at: nil, rating: nil, rating_key: nil, season_count: nil, slug: nil, summary: nil, tagline: nil, theme: nil, thumb: nil, title: nil, title_sort: nil, type: nil, year: nil, audience_rating_image: nil, chapter_source: nil, collection: nil, content_rating: nil, country: nil, created_at_accuracy: nil, created_at_tz_offset: nil, director: nil, genre: nil, grandparent_art: nil, grandparent_guid: nil, grandparent_key: nil, grandparent_rating_key: nil, grandparent_slug: nil, grandparent_theme: nil, grandparent_thumb: nil, grandparent_title: nil, guids: nil, image: nil, last_rated_at: nil, last_viewed_at: nil, leaf_count: nil, media: nil, original_title: nil, parent_guid: nil, parent_index: nil, parent_key: nil, parent_rating_key: nil, parent_thumb: nil, parent_title: nil, primary_extra_key: nil, rating_image: nil, role: nil, skip_count: nil, studio: nil, subtype: nil, ultra_blur_colors: nil, updated_at: nil, user_rating: nil, view_count: nil, viewed_leaf_count: nil, view_offset: nil, writer: nil) + sig { params(added_at: ::Integer, art: ::String, audience_rating: ::Float, child_count: ::Integer, duration: ::Integer, guid: ::String, index: ::Integer, key: ::String, originally_available_at: ::Date, rating: ::Float, rating_key: ::String, season_count: ::Integer, slug: ::String, summary: ::String, tagline: ::String, theme: ::String, thumb: ::String, title: ::String, title_sort: ::String, type: ::PlexRubySDK::Operations::GetAllMediaLibraryLibraryType, audience_rating_image: T.nilable(::String), chapter_source: T.nilable(::String), collection: T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryCollection]), content_rating: T.nilable(::String), country: T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryCountry]), created_at_accuracy: T.nilable(::String), created_at_tz_offset: T.nilable(::String), director: T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryDirector]), genre: T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryGenre]), grandparent_art: T.nilable(::String), grandparent_guid: T.nilable(::String), grandparent_key: T.nilable(::String), grandparent_rating_key: T.nilable(::String), grandparent_slug: T.nilable(::String), grandparent_theme: T.nilable(::String), grandparent_thumb: T.nilable(::String), grandparent_title: T.nilable(::String), guids: T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryGuids]), image: T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryImage]), last_rated_at: T.nilable(::Integer), last_viewed_at: T.nilable(::Integer), leaf_count: T.nilable(::Integer), media: T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryMedia]), original_title: T.nilable(::String), parent_guid: T.nilable(::String), parent_index: T.nilable(::Integer), parent_key: T.nilable(::String), parent_rating_key: T.nilable(::String), parent_thumb: T.nilable(::String), parent_title: T.nilable(::String), primary_extra_key: T.nilable(::String), rating_image: T.nilable(::String), role: T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryRole]), skip_count: T.nilable(::Integer), studio: T.nilable(::String), subtype: T.nilable(::String), ultra_blur_colors: T.nilable(::PlexRubySDK::Operations::GetAllMediaLibraryUltraBlurColors), updated_at: T.nilable(::Integer), user_rating: T.nilable(::Float), view_count: T.nilable(::Integer), viewed_leaf_count: T.nilable(::Integer), view_offset: T.nilable(::Integer), writer: T.nilable(T::Array[::PlexRubySDK::Operations::GetAllMediaLibraryWriter]), year: T.nilable(::Integer)).void } + def initialize(added_at: nil, art: nil, audience_rating: nil, child_count: nil, duration: nil, guid: nil, index: nil, key: nil, originally_available_at: nil, rating: nil, rating_key: nil, season_count: nil, slug: nil, summary: nil, tagline: nil, theme: nil, thumb: nil, title: nil, title_sort: nil, type: nil, audience_rating_image: nil, chapter_source: nil, collection: nil, content_rating: nil, country: nil, created_at_accuracy: nil, created_at_tz_offset: nil, director: nil, genre: nil, grandparent_art: nil, grandparent_guid: nil, grandparent_key: nil, grandparent_rating_key: nil, grandparent_slug: nil, grandparent_theme: nil, grandparent_thumb: nil, grandparent_title: nil, guids: nil, image: nil, last_rated_at: nil, last_viewed_at: nil, leaf_count: nil, media: nil, original_title: nil, parent_guid: nil, parent_index: nil, parent_key: nil, parent_rating_key: nil, parent_thumb: nil, parent_title: nil, primary_extra_key: nil, rating_image: nil, role: nil, skip_count: nil, studio: nil, subtype: nil, ultra_blur_colors: nil, updated_at: nil, user_rating: nil, view_count: nil, viewed_leaf_count: nil, view_offset: nil, writer: nil, year: nil) @added_at = added_at @art = art @audience_rating = audience_rating @@ -164,7 +164,6 @@ module PlexRubySDK @title = title @title_sort = title_sort @type = type - @year = year @audience_rating_image = audience_rating_image @chapter_source = chapter_source @collection = collection @@ -208,6 +207,7 @@ module PlexRubySDK @viewed_leaf_count = viewed_leaf_count @view_offset = view_offset @writer = writer + @year = year end end end diff --git a/lib/plex_ruby_sdk/models/operations/get_all_media_library_role.rb b/lib/plex_ruby_sdk/models/operations/get_all_media_library_role.rb index 386d474..5a4d6b3 100644 --- a/lib/plex_ruby_sdk/models/operations/get_all_media_library_role.rb +++ b/lib/plex_ruby_sdk/models/operations/get_all_media_library_role.rb @@ -11,7 +11,7 @@ module PlexRubySDK class GetAllMediaLibraryRole < ::Crystalline::FieldAugmented extend T::Sig - # The name of the actor for this role + # The display tag for the actor (typically the actor's name). field :tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } } diff --git a/lib/plex_ruby_sdk/models/operations/get_all_media_library_stream.rb b/lib/plex_ruby_sdk/models/operations/get_all_media_library_stream.rb index 40e23d1..210c203 100644 --- a/lib/plex_ruby_sdk/models/operations/get_all_media_library_stream.rb +++ b/lib/plex_ruby_sdk/models/operations/get_all_media_library_stream.rb @@ -21,12 +21,6 @@ module PlexRubySDK field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } # Index of the stream. field :index, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('index') } } - # Language of the stream. - field :language, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('language') } } - # ISO language code. - field :language_code, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('languageCode') } } - # Language tag (e.g., en). - field :language_tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('languageTag') } } # Stream type (1=video, 2=audio, 3=subtitle). field :stream_type, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('streamType') } } # Audio channel layout. @@ -43,6 +37,8 @@ module PlexRubySDK field :chroma_location, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('chromaLocation') } } # Chroma subsampling format. field :chroma_subsampling, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('chromaSubsampling') } } + + field :closed_captions, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('closedCaptions') } } # Coded video height. field :coded_height, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('codedHeight') } } # Coded video width. @@ -76,6 +72,8 @@ module PlexRubySDK # Indicates if the stream is a dub. field :dub, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('dub') } } + field :embedded_in_video, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('embeddedInVideo') } } + field :forced, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('forced') } } # Frame rate of the stream. field :frame_rate, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('frameRate') } } @@ -87,6 +85,12 @@ module PlexRubySDK field :hearing_impaired, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('hearingImpaired') } } # Height of the video stream. field :height, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('height') } } + # Language of the stream. + field :language, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('language') } } + # ISO language code. + field :language_code, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('languageCode') } } + # Language tag (e.g., en). + field :language_tag, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('languageTag') } } # Video level. field :level, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('level') } } # Indicates if this is the original stream. @@ -107,16 +111,13 @@ module PlexRubySDK field :width, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('width') } } - sig { params(codec: ::String, display_title: ::String, extended_display_title: ::String, id: ::Integer, index: ::Integer, language: ::String, language_code: ::String, language_tag: ::String, stream_type: ::Integer, audio_channel_layout: T.nilable(::String), bit_depth: T.nilable(::Integer), bitrate: T.nilable(::Integer), can_auto_sync: T.nilable(T::Boolean), channels: T.nilable(::Integer), chroma_location: T.nilable(::String), chroma_subsampling: T.nilable(::String), coded_height: T.nilable(::Integer), coded_width: T.nilable(::Integer), color_primaries: T.nilable(::String), color_range: T.nilable(::String), color_space: T.nilable(::String), color_trc: T.nilable(::String), default: T.nilable(T::Boolean), dovibl_compat_id: T.nilable(::Integer), dovibl_present: T.nilable(T::Boolean), doviel_present: T.nilable(T::Boolean), dovi_level: T.nilable(::Integer), dovi_present: T.nilable(T::Boolean), dovi_profile: T.nilable(::Integer), dovirpu_present: T.nilable(T::Boolean), dovi_version: T.nilable(::String), dub: T.nilable(T::Boolean), forced: T.nilable(T::Boolean), frame_rate: T.nilable(::Float), has_scaling_matrix: T.nilable(T::Boolean), header_compression: T.nilable(T::Boolean), hearing_impaired: T.nilable(T::Boolean), height: T.nilable(::Integer), level: T.nilable(::Integer), original: T.nilable(T::Boolean), profile: T.nilable(::String), ref_frames: T.nilable(::Integer), sampling_rate: T.nilable(::Integer), scan_type: T.nilable(::String), selected: T.nilable(T::Boolean), title: T.nilable(::String), width: T.nilable(::Integer)).void } - def initialize(codec: nil, display_title: nil, extended_display_title: nil, id: nil, index: nil, language: nil, language_code: nil, language_tag: nil, stream_type: nil, audio_channel_layout: nil, bit_depth: nil, bitrate: nil, can_auto_sync: nil, channels: nil, chroma_location: nil, chroma_subsampling: nil, coded_height: nil, coded_width: nil, color_primaries: nil, color_range: nil, color_space: nil, color_trc: nil, default: nil, dovibl_compat_id: nil, dovibl_present: nil, doviel_present: nil, dovi_level: nil, dovi_present: nil, dovi_profile: nil, dovirpu_present: nil, dovi_version: nil, dub: nil, forced: nil, frame_rate: nil, has_scaling_matrix: nil, header_compression: nil, hearing_impaired: nil, height: nil, level: nil, original: nil, profile: nil, ref_frames: nil, sampling_rate: nil, scan_type: nil, selected: nil, title: nil, width: nil) + sig { params(codec: ::String, display_title: ::String, extended_display_title: ::String, id: ::Integer, index: ::Integer, stream_type: ::Integer, audio_channel_layout: T.nilable(::String), bit_depth: T.nilable(::Integer), bitrate: T.nilable(::Integer), can_auto_sync: T.nilable(T::Boolean), channels: T.nilable(::Integer), chroma_location: T.nilable(::String), chroma_subsampling: T.nilable(::String), closed_captions: T.nilable(T::Boolean), coded_height: T.nilable(::Integer), coded_width: T.nilable(::Integer), color_primaries: T.nilable(::String), color_range: T.nilable(::String), color_space: T.nilable(::String), color_trc: T.nilable(::String), default: T.nilable(T::Boolean), dovibl_compat_id: T.nilable(::Integer), dovibl_present: T.nilable(T::Boolean), doviel_present: T.nilable(T::Boolean), dovi_level: T.nilable(::Integer), dovi_present: T.nilable(T::Boolean), dovi_profile: T.nilable(::Integer), dovirpu_present: T.nilable(T::Boolean), dovi_version: T.nilable(::String), dub: T.nilable(T::Boolean), embedded_in_video: T.nilable(::String), forced: T.nilable(T::Boolean), frame_rate: T.nilable(::Float), has_scaling_matrix: T.nilable(T::Boolean), header_compression: T.nilable(T::Boolean), hearing_impaired: T.nilable(T::Boolean), height: T.nilable(::Integer), language: T.nilable(::String), language_code: T.nilable(::String), language_tag: T.nilable(::String), level: T.nilable(::Integer), original: T.nilable(T::Boolean), profile: T.nilable(::String), ref_frames: T.nilable(::Integer), sampling_rate: T.nilable(::Integer), scan_type: T.nilable(::String), selected: T.nilable(T::Boolean), title: T.nilable(::String), width: T.nilable(::Integer)).void } + def initialize(codec: nil, display_title: nil, extended_display_title: nil, id: nil, index: nil, stream_type: nil, audio_channel_layout: nil, bit_depth: nil, bitrate: nil, can_auto_sync: nil, channels: nil, chroma_location: nil, chroma_subsampling: nil, closed_captions: nil, coded_height: nil, coded_width: nil, color_primaries: nil, color_range: nil, color_space: nil, color_trc: nil, default: nil, dovibl_compat_id: nil, dovibl_present: nil, doviel_present: nil, dovi_level: nil, dovi_present: nil, dovi_profile: nil, dovirpu_present: nil, dovi_version: nil, dub: nil, embedded_in_video: nil, forced: nil, frame_rate: nil, has_scaling_matrix: nil, header_compression: nil, hearing_impaired: nil, height: nil, language: nil, language_code: nil, language_tag: nil, level: nil, original: nil, profile: nil, ref_frames: nil, sampling_rate: nil, scan_type: nil, selected: nil, title: nil, width: nil) @codec = codec @display_title = display_title @extended_display_title = extended_display_title @id = id @index = index - @language = language - @language_code = language_code - @language_tag = language_tag @stream_type = stream_type @audio_channel_layout = audio_channel_layout @bit_depth = bit_depth @@ -125,6 +126,7 @@ module PlexRubySDK @channels = channels @chroma_location = chroma_location @chroma_subsampling = chroma_subsampling + @closed_captions = closed_captions @coded_height = coded_height @coded_width = coded_width @color_primaries = color_primaries @@ -141,12 +143,16 @@ module PlexRubySDK @dovirpu_present = dovirpu_present @dovi_version = dovi_version @dub = dub + @embedded_in_video = embedded_in_video @forced = forced @frame_rate = frame_rate @has_scaling_matrix = has_scaling_matrix @header_compression = header_compression @hearing_impaired = hearing_impaired @height = height + @language = language + @language_code = language_code + @language_tag = language_tag @level = level @original = original @profile = profile diff --git a/lib/plex_ruby_sdk/models/operations/get_library_items_enablecreditsmarkergeneration.rb b/lib/plex_ruby_sdk/models/operations/get_library_items_enablecreditsmarkergeneration.rb deleted file mode 100644 index 8ebc183..0000000 --- a/lib/plex_ruby_sdk/models/operations/get_library_items_enablecreditsmarkergeneration.rb +++ /dev/null @@ -1,18 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module PlexRubySDK - module Operations - - # GetLibraryItemsEnableCreditsMarkerGeneration - Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). - class GetLibraryItemsEnableCreditsMarkerGeneration < T::Enum - enums do - LIBRARY_DEFAULT = new('-1') - DISABLED = new('0') - end - end - end -end diff --git a/lib/plex_ruby_sdk/models/operations/get_library_items_episodesort.rb b/lib/plex_ruby_sdk/models/operations/get_library_items_episodesort.rb deleted file mode 100644 index 59a0b6e..0000000 --- a/lib/plex_ruby_sdk/models/operations/get_library_items_episodesort.rb +++ /dev/null @@ -1,19 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module PlexRubySDK - module Operations - - # GetLibraryItemsEpisodeSort - Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). - class GetLibraryItemsEpisodeSort < T::Enum - enums do - LIBRARY_DEFAULT = new('-1') - OLDEST_FIRST = new('0') - NEWEST_FIRST = new('1') - end - end - end -end diff --git a/lib/plex_ruby_sdk/models/operations/get_library_items_flattenseasons.rb b/lib/plex_ruby_sdk/models/operations/get_library_items_flattenseasons.rb deleted file mode 100644 index 1122a84..0000000 --- a/lib/plex_ruby_sdk/models/operations/get_library_items_flattenseasons.rb +++ /dev/null @@ -1,19 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module PlexRubySDK - module Operations - - # GetLibraryItemsFlattenSeasons - Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). - class GetLibraryItemsFlattenSeasons < T::Enum - enums do - LIBRARY_DEFAULT = new('-1') - HIDE = new('0') - SHOW = new('1') - end - end - end -end diff --git a/lib/plex_ruby_sdk/models/operations/get_library_items_media.rb b/lib/plex_ruby_sdk/models/operations/get_library_items_media.rb index bf8d66c..5df3e24 100644 --- a/lib/plex_ruby_sdk/models/operations/get_library_items_media.rb +++ b/lib/plex_ruby_sdk/models/operations/get_library_items_media.rb @@ -36,7 +36,7 @@ module PlexRubySDK field :height, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('height') } } - field :optimized_for_streaming, T.nilable(::PlexRubySDK::Operations::GetLibraryItemsOptimizedForStreaming), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('optimizedForStreaming'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::GetLibraryItemsOptimizedForStreaming, true) } } + field :optimized_for_streaming, T.nilable(::PlexRubySDK::Operations::OptimizedForStreaming), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('optimizedForStreaming'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::OptimizedForStreaming, true) } } field :video_codec, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('videoCodec') } } @@ -49,7 +49,7 @@ module PlexRubySDK field :width, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('width') } } - sig { params(container: ::String, id: ::Integer, part: T::Array[::PlexRubySDK::Operations::GetLibraryItemsPart], aspect_ratio: T.nilable(::Float), audio_channels: T.nilable(::Integer), audio_codec: T.nilable(::String), audio_profile: T.nilable(::String), bitrate: T.nilable(::Integer), duration: T.nilable(::Integer), has64bit_offsets: T.nilable(T::Boolean), has_voice_activity: T.nilable(T::Boolean), height: T.nilable(::Integer), optimized_for_streaming: T.nilable(::PlexRubySDK::Operations::GetLibraryItemsOptimizedForStreaming), video_codec: T.nilable(::String), video_frame_rate: T.nilable(::String), video_profile: T.nilable(::String), video_resolution: T.nilable(::String), width: T.nilable(::Integer)).void } + sig { params(container: ::String, id: ::Integer, part: T::Array[::PlexRubySDK::Operations::GetLibraryItemsPart], aspect_ratio: T.nilable(::Float), audio_channels: T.nilable(::Integer), audio_codec: T.nilable(::String), audio_profile: T.nilable(::String), bitrate: T.nilable(::Integer), duration: T.nilable(::Integer), has64bit_offsets: T.nilable(T::Boolean), has_voice_activity: T.nilable(T::Boolean), height: T.nilable(::Integer), optimized_for_streaming: T.nilable(::PlexRubySDK::Operations::OptimizedForStreaming), video_codec: T.nilable(::String), video_frame_rate: T.nilable(::String), video_profile: T.nilable(::String), video_resolution: T.nilable(::String), width: T.nilable(::Integer)).void } def initialize(container: nil, id: nil, part: nil, aspect_ratio: nil, audio_channels: nil, audio_codec: nil, audio_profile: nil, bitrate: nil, duration: nil, has64bit_offsets: nil, has_voice_activity: nil, height: nil, optimized_for_streaming: nil, video_codec: nil, video_frame_rate: nil, video_profile: nil, video_resolution: nil, width: nil) @container = container @id = id diff --git a/lib/plex_ruby_sdk/models/operations/get_library_items_mediaguid.rb b/lib/plex_ruby_sdk/models/operations/get_library_items_mediaguid.rb deleted file mode 100644 index 896008c..0000000 --- a/lib/plex_ruby_sdk/models/operations/get_library_items_mediaguid.rb +++ /dev/null @@ -1,26 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module PlexRubySDK - module Operations - - - class GetLibraryItemsMediaGuid < ::Crystalline::FieldAugmented - extend T::Sig - - # Can be one of the following formats: - # imdb://tt13015952, tmdb://2434012, tvdb://7945991 - # - field :id, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } - - - sig { params(id: ::String).void } - def initialize(id: nil) - @id = id - end - end - end -end diff --git a/lib/plex_ruby_sdk/models/operations/get_library_items_metadata.rb b/lib/plex_ruby_sdk/models/operations/get_library_items_metadata.rb index 0115d00..216a6f2 100644 --- a/lib/plex_ruby_sdk/models/operations/get_library_items_metadata.rb +++ b/lib/plex_ruby_sdk/models/operations/get_library_items_metadata.rb @@ -51,11 +51,11 @@ module PlexRubySDK field :duration, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('duration') } } # Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). - field :enable_credits_marker_generation, T.nilable(::PlexRubySDK::Operations::GetLibraryItemsEnableCreditsMarkerGeneration), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('enableCreditsMarkerGeneration'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::GetLibraryItemsEnableCreditsMarkerGeneration, true) } } + field :enable_credits_marker_generation, T.nilable(::PlexRubySDK::Operations::EnableCreditsMarkerGeneration), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('enableCreditsMarkerGeneration'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::EnableCreditsMarkerGeneration, true) } } # Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). - field :episode_sort, T.nilable(::PlexRubySDK::Operations::GetLibraryItemsEpisodeSort), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('episodeSort'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::GetLibraryItemsEpisodeSort, true) } } + field :episode_sort, T.nilable(::PlexRubySDK::Operations::EpisodeSort), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('episodeSort'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::EpisodeSort, true) } } # Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). - field :flatten_seasons, T.nilable(::PlexRubySDK::Operations::GetLibraryItemsFlattenSeasons), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('flattenSeasons'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::GetLibraryItemsFlattenSeasons, true) } } + field :flatten_seasons, T.nilable(::PlexRubySDK::Operations::FlattenSeasons), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('flattenSeasons'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::FlattenSeasons, true) } } field :genre, T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsGenre]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Genre') } } @@ -99,9 +99,9 @@ module PlexRubySDK field :media, T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsMedia]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Media') } } # The Guid object is only included in the response if the `includeGuids` parameter is set to `1`. # - field :media_guid, T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsMediaGuid]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Guid') } } + field :media_guid, T.nilable(T::Array[::PlexRubySDK::Operations::MediaGuid]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Guid') } } - field :meta_data_rating, T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsMetaDataRating]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Rating') } } + field :meta_data_rating, T.nilable(T::Array[::PlexRubySDK::Operations::MetaDataRating]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Rating') } } field :originally_available_at, T.nilable(::Date), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('originallyAvailableAt'), 'decoder': Utils.date_from_iso_format(true) } } @@ -144,7 +144,7 @@ module PlexRubySDK # dvd = TheTVDB (DVD), # absolute = TheTVDB (Absolute)). # - field :show_ordering, T.nilable(::PlexRubySDK::Operations::GetLibraryItemsShowOrdering), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('showOrdering'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::GetLibraryItemsShowOrdering, true) } } + field :show_ordering, T.nilable(::PlexRubySDK::Operations::ShowOrdering), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('showOrdering'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::ShowOrdering, true) } } field :skip_children, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('skipChildren') } } @@ -177,7 +177,7 @@ module PlexRubySDK field :year, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('year') } } - sig { params(added_at: ::Integer, guid: ::String, key: ::String, rating_key: ::String, summary: ::String, title: ::String, type: ::PlexRubySDK::Operations::GetLibraryItemsLibraryType, art: T.nilable(::String), audience_rating: T.nilable(::Float), audience_rating_image: T.nilable(::String), banner: T.nilable(::String), chapter_source: T.nilable(::String), child_count: T.nilable(::Integer), collection: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsCollection]), content_rating: T.nilable(::String), country: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsCountry]), director: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsDirector]), duration: T.nilable(::Integer), enable_credits_marker_generation: T.nilable(::PlexRubySDK::Operations::GetLibraryItemsEnableCreditsMarkerGeneration), episode_sort: T.nilable(::PlexRubySDK::Operations::GetLibraryItemsEpisodeSort), flatten_seasons: T.nilable(::PlexRubySDK::Operations::GetLibraryItemsFlattenSeasons), genre: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsGenre]), grandparent_art: T.nilable(::String), grandparent_guid: T.nilable(::String), grandparent_key: T.nilable(::String), grandparent_rating_key: T.nilable(::String), grandparent_slug: T.nilable(::String), grandparent_theme: T.nilable(::String), grandparent_thumb: T.nilable(::String), grandparent_title: T.nilable(::String), has_premium_extras: T.nilable(::String), has_premium_primary_extra: T.nilable(::String), image: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsImage]), index: T.nilable(::Integer), last_viewed_at: T.nilable(::Integer), leaf_count: T.nilable(::Integer), library_section_id: T.nilable(::Integer), library_section_key: T.nilable(::String), library_section_title: T.nilable(::String), location: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsLocation]), media: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsMedia]), media_guid: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsMediaGuid]), meta_data_rating: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsMetaDataRating]), originally_available_at: T.nilable(::Date), original_title: T.nilable(::String), parent_guid: T.nilable(::String), parent_index: T.nilable(::Integer), parent_key: T.nilable(::String), parent_rating_key: T.nilable(::String), parent_slug: T.nilable(::String), parent_studio: T.nilable(::String), parent_theme: T.nilable(::String), parent_thumb: T.nilable(::String), parent_title: T.nilable(::String), parent_year: T.nilable(::Integer), primary_extra_key: T.nilable(::String), rating: T.nilable(::Float), rating_image: T.nilable(::String), role: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsRole]), season_count: T.nilable(::Integer), show_ordering: T.nilable(::PlexRubySDK::Operations::GetLibraryItemsShowOrdering), skip_children: T.nilable(T::Boolean), skip_count: T.nilable(::Integer), slug: T.nilable(::String), studio: T.nilable(::String), tagline: T.nilable(::String), theme: T.nilable(::String), thumb: T.nilable(::String), title_sort: T.nilable(::String), ultra_blur_colors: T.nilable(::PlexRubySDK::Operations::GetLibraryItemsUltraBlurColors), updated_at: T.nilable(::Integer), view_count: T.nilable(::Integer), viewed_leaf_count: T.nilable(::Integer), view_offset: T.nilable(::Integer), writer: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsWriter]), year: T.nilable(::Integer)).void } + sig { params(added_at: ::Integer, guid: ::String, key: ::String, rating_key: ::String, summary: ::String, title: ::String, type: ::PlexRubySDK::Operations::GetLibraryItemsLibraryType, art: T.nilable(::String), audience_rating: T.nilable(::Float), audience_rating_image: T.nilable(::String), banner: T.nilable(::String), chapter_source: T.nilable(::String), child_count: T.nilable(::Integer), collection: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsCollection]), content_rating: T.nilable(::String), country: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsCountry]), director: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsDirector]), duration: T.nilable(::Integer), enable_credits_marker_generation: T.nilable(::PlexRubySDK::Operations::EnableCreditsMarkerGeneration), episode_sort: T.nilable(::PlexRubySDK::Operations::EpisodeSort), flatten_seasons: T.nilable(::PlexRubySDK::Operations::FlattenSeasons), genre: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsGenre]), grandparent_art: T.nilable(::String), grandparent_guid: T.nilable(::String), grandparent_key: T.nilable(::String), grandparent_rating_key: T.nilable(::String), grandparent_slug: T.nilable(::String), grandparent_theme: T.nilable(::String), grandparent_thumb: T.nilable(::String), grandparent_title: T.nilable(::String), has_premium_extras: T.nilable(::String), has_premium_primary_extra: T.nilable(::String), image: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsImage]), index: T.nilable(::Integer), last_viewed_at: T.nilable(::Integer), leaf_count: T.nilable(::Integer), library_section_id: T.nilable(::Integer), library_section_key: T.nilable(::String), library_section_title: T.nilable(::String), location: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsLocation]), media: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsMedia]), media_guid: T.nilable(T::Array[::PlexRubySDK::Operations::MediaGuid]), meta_data_rating: T.nilable(T::Array[::PlexRubySDK::Operations::MetaDataRating]), originally_available_at: T.nilable(::Date), original_title: T.nilable(::String), parent_guid: T.nilable(::String), parent_index: T.nilable(::Integer), parent_key: T.nilable(::String), parent_rating_key: T.nilable(::String), parent_slug: T.nilable(::String), parent_studio: T.nilable(::String), parent_theme: T.nilable(::String), parent_thumb: T.nilable(::String), parent_title: T.nilable(::String), parent_year: T.nilable(::Integer), primary_extra_key: T.nilable(::String), rating: T.nilable(::Float), rating_image: T.nilable(::String), role: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsRole]), season_count: T.nilable(::Integer), show_ordering: T.nilable(::PlexRubySDK::Operations::ShowOrdering), skip_children: T.nilable(T::Boolean), skip_count: T.nilable(::Integer), slug: T.nilable(::String), studio: T.nilable(::String), tagline: T.nilable(::String), theme: T.nilable(::String), thumb: T.nilable(::String), title_sort: T.nilable(::String), ultra_blur_colors: T.nilable(::PlexRubySDK::Operations::GetLibraryItemsUltraBlurColors), updated_at: T.nilable(::Integer), view_count: T.nilable(::Integer), viewed_leaf_count: T.nilable(::Integer), view_offset: T.nilable(::Integer), writer: T.nilable(T::Array[::PlexRubySDK::Operations::GetLibraryItemsWriter]), year: T.nilable(::Integer)).void } def initialize(added_at: nil, guid: nil, key: nil, rating_key: nil, summary: nil, title: nil, type: nil, art: nil, audience_rating: nil, audience_rating_image: nil, banner: nil, chapter_source: nil, child_count: nil, collection: nil, content_rating: nil, country: nil, director: nil, duration: nil, enable_credits_marker_generation: nil, episode_sort: nil, flatten_seasons: nil, genre: nil, grandparent_art: nil, grandparent_guid: nil, grandparent_key: nil, grandparent_rating_key: nil, grandparent_slug: nil, grandparent_theme: nil, grandparent_thumb: nil, grandparent_title: nil, has_premium_extras: nil, has_premium_primary_extra: nil, image: nil, index: nil, last_viewed_at: nil, leaf_count: nil, library_section_id: nil, library_section_key: nil, library_section_title: nil, location: nil, media: nil, media_guid: nil, meta_data_rating: nil, originally_available_at: nil, original_title: nil, parent_guid: nil, parent_index: nil, parent_key: nil, parent_rating_key: nil, parent_slug: nil, parent_studio: nil, parent_theme: nil, parent_thumb: nil, parent_title: nil, parent_year: nil, primary_extra_key: nil, rating: nil, rating_image: nil, role: nil, season_count: nil, show_ordering: nil, skip_children: nil, skip_count: nil, slug: nil, studio: nil, tagline: nil, theme: nil, thumb: nil, title_sort: nil, ultra_blur_colors: nil, updated_at: nil, view_count: nil, viewed_leaf_count: nil, view_offset: nil, writer: nil, year: nil) @added_at = added_at @guid = guid diff --git a/lib/plex_ruby_sdk/models/operations/get_library_items_optimizedforstreaming.rb b/lib/plex_ruby_sdk/models/operations/get_library_items_optimizedforstreaming.rb deleted file mode 100644 index 0e49787..0000000 --- a/lib/plex_ruby_sdk/models/operations/get_library_items_optimizedforstreaming.rb +++ /dev/null @@ -1,18 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module PlexRubySDK - module Operations - - - class GetLibraryItemsOptimizedForStreaming < T::Enum - enums do - DISABLE = new(0) - ENABLE = new(1) - end - end - end -end diff --git a/lib/plex_ruby_sdk/models/operations/get_library_items_showordering.rb b/lib/plex_ruby_sdk/models/operations/get_library_items_showordering.rb deleted file mode 100644 index 49fb328..0000000 --- a/lib/plex_ruby_sdk/models/operations/get_library_items_showordering.rb +++ /dev/null @@ -1,27 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module PlexRubySDK - module Operations - - # GetLibraryItemsShowOrdering - Setting that indicates the episode ordering for the show. - # None = Library default, - # tmdbAiring = The Movie Database (Aired), - # aired = TheTVDB (Aired), - # dvd = TheTVDB (DVD), - # absolute = TheTVDB (Absolute)). - # - class GetLibraryItemsShowOrdering < T::Enum - enums do - NONE = new('None') - TMDB_AIRING = new('tmdbAiring') - TVDB_AIRED = new('aired') - TVDB_DVD = new('dvd') - TVDB_ABSOLUTE = new('absolute') - end - end - end -end diff --git a/lib/plex_ruby_sdk/models/operations/get_media_meta_data_media.rb b/lib/plex_ruby_sdk/models/operations/get_media_meta_data_media.rb index 44fe678..466b62b 100644 --- a/lib/plex_ruby_sdk/models/operations/get_media_meta_data_media.rb +++ b/lib/plex_ruby_sdk/models/operations/get_media_meta_data_media.rb @@ -11,12 +11,8 @@ module PlexRubySDK class GetMediaMetaDataMedia < ::Crystalline::FieldAugmented extend T::Sig - # Indicates whether voice activity is detected. - field :has_voice_activity, T::Boolean, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('hasVoiceActivity') } } # Unique media identifier. field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } - # An array of parts for this media item. - field :part, T::Array[::PlexRubySDK::Operations::GetMediaMetaDataPart], { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Part') } } # Aspect ratio of the video. field :aspect_ratio, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('aspectRatio') } } # Number of audio channels. @@ -35,10 +31,14 @@ module PlexRubySDK field :duration, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('duration') } } field :has64bit_offsets, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('has64bitOffsets') } } + # Indicates whether voice activity is detected. + field :has_voice_activity, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('hasVoiceActivity') } } # Video height in pixels. field :height, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('height') } } # Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true field :optimized_for_streaming, T.nilable(::Object), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('optimizedForStreaming') } } + # An array of parts for this media item. + field :part, T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataPart]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Part') } } # Video codec used. field :video_codec, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('videoCodec') } } # Frame rate of the video. Values found include NTSC, PAL, 24p @@ -52,11 +52,9 @@ module PlexRubySDK field :width, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('width') } } - sig { params(has_voice_activity: T::Boolean, id: ::Integer, part: T::Array[::PlexRubySDK::Operations::GetMediaMetaDataPart], aspect_ratio: T.nilable(::Float), audio_channels: T.nilable(::Integer), audio_codec: T.nilable(::String), audio_profile: T.nilable(::String), bitrate: T.nilable(::Integer), container: T.nilable(::String), display_offset: T.nilable(::Integer), duration: T.nilable(::Integer), has64bit_offsets: T.nilable(T::Boolean), height: T.nilable(::Integer), optimized_for_streaming: T.nilable(::Object), video_codec: T.nilable(::String), video_frame_rate: T.nilable(::String), video_profile: T.nilable(::String), video_resolution: T.nilable(::String), width: T.nilable(::Integer)).void } - def initialize(has_voice_activity: nil, id: nil, part: nil, aspect_ratio: nil, audio_channels: nil, audio_codec: nil, audio_profile: nil, bitrate: nil, container: nil, display_offset: nil, duration: nil, has64bit_offsets: nil, height: nil, optimized_for_streaming: nil, video_codec: nil, video_frame_rate: nil, video_profile: nil, video_resolution: nil, width: nil) - @has_voice_activity = has_voice_activity + sig { params(id: ::Integer, aspect_ratio: T.nilable(::Float), audio_channels: T.nilable(::Integer), audio_codec: T.nilable(::String), audio_profile: T.nilable(::String), bitrate: T.nilable(::Integer), container: T.nilable(::String), display_offset: T.nilable(::Integer), duration: T.nilable(::Integer), has64bit_offsets: T.nilable(T::Boolean), has_voice_activity: T.nilable(T::Boolean), height: T.nilable(::Integer), optimized_for_streaming: T.nilable(::Object), part: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataPart]), video_codec: T.nilable(::String), video_frame_rate: T.nilable(::String), video_profile: T.nilable(::String), video_resolution: T.nilable(::String), width: T.nilable(::Integer)).void } + def initialize(id: nil, aspect_ratio: nil, audio_channels: nil, audio_codec: nil, audio_profile: nil, bitrate: nil, container: nil, display_offset: nil, duration: nil, has64bit_offsets: nil, has_voice_activity: nil, height: nil, optimized_for_streaming: nil, part: nil, video_codec: nil, video_frame_rate: nil, video_profile: nil, video_resolution: nil, width: nil) @id = id - @part = part @aspect_ratio = aspect_ratio @audio_channels = audio_channels @audio_codec = audio_codec @@ -66,8 +64,10 @@ module PlexRubySDK @display_offset = display_offset @duration = duration @has64bit_offsets = has64bit_offsets + @has_voice_activity = has_voice_activity @height = height @optimized_for_streaming = optimized_for_streaming + @part = part @video_codec = video_codec @video_frame_rate = video_frame_rate @video_profile = video_profile diff --git a/lib/plex_ruby_sdk/models/operations/get_media_meta_data_metadata.rb b/lib/plex_ruby_sdk/models/operations/get_media_meta_data_metadata.rb index 30af12b..401af84 100644 --- a/lib/plex_ruby_sdk/models/operations/get_media_meta_data_metadata.rb +++ b/lib/plex_ruby_sdk/models/operations/get_media_meta_data_metadata.rb @@ -106,7 +106,7 @@ module PlexRubySDK field :primary_extra_key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('primaryExtraKey') } } # An array of Writer roles. - field :producer, T.nilable(T::Array[::PlexRubySDK::Operations::Producer]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Producer') } } + field :producer, T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataProducer]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Producer') } } # The general rating field :rating, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('rating') } } # The URL or identifier for the rating image (e.g., Rotten Tomatoes rating image). @@ -116,7 +116,7 @@ module PlexRubySDK # An array of Actor roles. field :role, T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataRole]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Role') } } # An array of similar content objects. - field :similar, T.nilable(T::Array[::PlexRubySDK::Operations::Similar]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Similar') } } + field :similar, T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataSimilar]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Similar') } } # The number of times the item has been skipped. field :skip_count, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('skipCount') } } # A URL-friendly identifier for the item. @@ -135,7 +135,7 @@ module PlexRubySDK field :writer, T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataWriter]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Writer') } } - sig { params(added_at: ::Integer, art: ::String, duration: ::Integer, guid: ::String, image: T::Array[::PlexRubySDK::Operations::GetMediaMetaDataImage], key: ::String, library_section_id: ::Integer, library_section_key: ::String, library_section_title: ::String, rating_key: ::String, summary: ::String, thumb: ::String, title: ::String, type: ::String, ultra_blur_colors: ::PlexRubySDK::Operations::GetMediaMetaDataUltraBlurColors, updated_at: ::Integer, year: ::Integer, audience_rating: T.nilable(::Float), audience_rating_image: T.nilable(::String), chapter_source: T.nilable(::String), child_count: T.nilable(::Integer), content_rating: T.nilable(::String), country: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataCountry]), director: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataDirector]), genre: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataGenre]), grandparent_art: T.nilable(::String), grandparent_guid: T.nilable(::String), grandparent_key: T.nilable(::String), grandparent_rating_key: T.nilable(::String), grandparent_slug: T.nilable(::String), grandparent_thumb: T.nilable(::String), grandparent_title: T.nilable(::String), guids: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataGuids]), index: T.nilable(::Integer), last_viewed_at: T.nilable(::Integer), leaf_count: T.nilable(::Integer), location: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataLocation]), media: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataMedia]), originally_available_at: T.nilable(::Date), original_title: T.nilable(::String), parent_guid: T.nilable(::String), parent_index: T.nilable(::Integer), parent_key: T.nilable(::String), parent_rating_key: T.nilable(::String), parent_thumb: T.nilable(::String), parent_title: T.nilable(::String), primary_extra_key: T.nilable(::String), producer: T.nilable(T::Array[::PlexRubySDK::Operations::Producer]), rating: T.nilable(::Float), rating_image: T.nilable(::String), ratings: T.nilable(T::Array[::PlexRubySDK::Operations::Ratings]), role: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataRole]), similar: T.nilable(T::Array[::PlexRubySDK::Operations::Similar]), skip_count: T.nilable(::Integer), slug: T.nilable(::String), studio: T.nilable(::String), tagline: T.nilable(::String), theme: T.nilable(::String), view_count: T.nilable(::Integer), viewed_leaf_count: T.nilable(::Integer), writer: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataWriter])).void } + sig { params(added_at: ::Integer, art: ::String, duration: ::Integer, guid: ::String, image: T::Array[::PlexRubySDK::Operations::GetMediaMetaDataImage], key: ::String, library_section_id: ::Integer, library_section_key: ::String, library_section_title: ::String, rating_key: ::String, summary: ::String, thumb: ::String, title: ::String, type: ::String, ultra_blur_colors: ::PlexRubySDK::Operations::GetMediaMetaDataUltraBlurColors, updated_at: ::Integer, year: ::Integer, audience_rating: T.nilable(::Float), audience_rating_image: T.nilable(::String), chapter_source: T.nilable(::String), child_count: T.nilable(::Integer), content_rating: T.nilable(::String), country: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataCountry]), director: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataDirector]), genre: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataGenre]), grandparent_art: T.nilable(::String), grandparent_guid: T.nilable(::String), grandparent_key: T.nilable(::String), grandparent_rating_key: T.nilable(::String), grandparent_slug: T.nilable(::String), grandparent_thumb: T.nilable(::String), grandparent_title: T.nilable(::String), guids: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataGuids]), index: T.nilable(::Integer), last_viewed_at: T.nilable(::Integer), leaf_count: T.nilable(::Integer), location: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataLocation]), media: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataMedia]), originally_available_at: T.nilable(::Date), original_title: T.nilable(::String), parent_guid: T.nilable(::String), parent_index: T.nilable(::Integer), parent_key: T.nilable(::String), parent_rating_key: T.nilable(::String), parent_thumb: T.nilable(::String), parent_title: T.nilable(::String), primary_extra_key: T.nilable(::String), producer: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataProducer]), rating: T.nilable(::Float), rating_image: T.nilable(::String), ratings: T.nilable(T::Array[::PlexRubySDK::Operations::Ratings]), role: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataRole]), similar: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataSimilar]), skip_count: T.nilable(::Integer), slug: T.nilable(::String), studio: T.nilable(::String), tagline: T.nilable(::String), theme: T.nilable(::String), view_count: T.nilable(::Integer), viewed_leaf_count: T.nilable(::Integer), writer: T.nilable(T::Array[::PlexRubySDK::Operations::GetMediaMetaDataWriter])).void } def initialize(added_at: nil, art: nil, duration: nil, guid: nil, image: nil, key: nil, library_section_id: nil, library_section_key: nil, library_section_title: nil, rating_key: nil, summary: nil, thumb: nil, title: nil, type: nil, ultra_blur_colors: nil, updated_at: nil, year: nil, audience_rating: nil, audience_rating_image: nil, chapter_source: nil, child_count: nil, content_rating: nil, country: nil, director: nil, genre: nil, grandparent_art: nil, grandparent_guid: nil, grandparent_key: nil, grandparent_rating_key: nil, grandparent_slug: nil, grandparent_thumb: nil, grandparent_title: nil, guids: nil, index: nil, last_viewed_at: nil, leaf_count: nil, location: nil, media: nil, originally_available_at: nil, original_title: nil, parent_guid: nil, parent_index: nil, parent_key: nil, parent_rating_key: nil, parent_thumb: nil, parent_title: nil, primary_extra_key: nil, producer: nil, rating: nil, rating_image: nil, ratings: nil, role: nil, similar: nil, skip_count: nil, slug: nil, studio: nil, tagline: nil, theme: nil, view_count: nil, viewed_leaf_count: nil, writer: nil) @added_at = added_at @art = art diff --git a/lib/plex_ruby_sdk/models/operations/get_media_meta_data_producer.rb b/lib/plex_ruby_sdk/models/operations/get_media_meta_data_producer.rb new file mode 100644 index 0000000..de2547f --- /dev/null +++ b/lib/plex_ruby_sdk/models/operations/get_media_meta_data_producer.rb @@ -0,0 +1,39 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module PlexRubySDK + module Operations + + + class GetMediaMetaDataProducer < ::Crystalline::FieldAugmented + extend T::Sig + + # The filter string for the role. + field :filter, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('filter') } } + # The unique role identifier. + field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } + # The actor's name. + field :tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } } + # A key associated with the actor tag. + field :tag_key, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tagKey') } } + # The character name or role. + field :role, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('role') } } + # URL for the role thumbnail image. + field :thumb, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('thumb') } } + + + sig { params(filter: ::String, id: ::Integer, tag: ::String, tag_key: ::String, role: T.nilable(::String), thumb: T.nilable(::String)).void } + def initialize(filter: nil, id: nil, tag: nil, tag_key: nil, role: nil, thumb: nil) + @filter = filter + @id = id + @tag = tag + @tag_key = tag_key + @role = role + @thumb = thumb + end + end + end +end diff --git a/lib/plex_ruby_sdk/models/operations/get_media_meta_data_similar.rb b/lib/plex_ruby_sdk/models/operations/get_media_meta_data_similar.rb new file mode 100644 index 0000000..dc211b8 --- /dev/null +++ b/lib/plex_ruby_sdk/models/operations/get_media_meta_data_similar.rb @@ -0,0 +1,30 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module PlexRubySDK + module Operations + + + class GetMediaMetaDataSimilar < ::Crystalline::FieldAugmented + extend T::Sig + + # The filter string for similar items. + field :filter, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('filter') } } + # The unique similar item identifier. + field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } + # The tag or title of the similar content. + field :tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } } + + + sig { params(filter: ::String, id: ::Integer, tag: ::String).void } + def initialize(filter: nil, id: nil, tag: nil) + @filter = filter + @id = id + @tag = tag + end + end + end +end diff --git a/lib/plex_ruby_sdk/models/operations/get_media_meta_data_stream.rb b/lib/plex_ruby_sdk/models/operations/get_media_meta_data_stream.rb index 4845d66..fcc36e8 100644 --- a/lib/plex_ruby_sdk/models/operations/get_media_meta_data_stream.rb +++ b/lib/plex_ruby_sdk/models/operations/get_media_meta_data_stream.rb @@ -21,12 +21,6 @@ module PlexRubySDK field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } # Index of the stream. field :index, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('index') } } - # Language of the stream. - field :language, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('language') } } - # ISO language code. - field :language_code, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('languageCode') } } - # Language tag (e.g., en). - field :language_tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('languageTag') } } # Stream type (1=video, 2=audio, 3=subtitle). field :stream_type, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('streamType') } } # Audio channel layout. @@ -43,6 +37,8 @@ module PlexRubySDK field :chroma_location, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('chromaLocation') } } # Chroma subsampling format. field :chroma_subsampling, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('chromaSubsampling') } } + + field :closed_captions, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('closedCaptions') } } # Coded video height. field :coded_height, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('codedHeight') } } # Coded video width. @@ -76,6 +72,8 @@ module PlexRubySDK # Indicates if the stream is a dub. field :dub, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('dub') } } + field :embedded_in_video, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('embeddedInVideo') } } + field :forced, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('forced') } } # Frame rate of the stream. field :frame_rate, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('frameRate') } } @@ -87,6 +85,12 @@ module PlexRubySDK field :hearing_impaired, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('hearingImpaired') } } # Height of the video stream. field :height, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('height') } } + # Language of the stream. + field :language, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('language') } } + # ISO language code. + field :language_code, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('languageCode') } } + # Language tag (e.g., en). + field :language_tag, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('languageTag') } } # Video level. field :level, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('level') } } # Indicates if this is the original stream. @@ -107,16 +111,13 @@ module PlexRubySDK field :width, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('width') } } - sig { params(codec: ::String, display_title: ::String, extended_display_title: ::String, id: ::Integer, index: ::Integer, language: ::String, language_code: ::String, language_tag: ::String, stream_type: ::Integer, audio_channel_layout: T.nilable(::String), bit_depth: T.nilable(::Integer), bitrate: T.nilable(::Integer), can_auto_sync: T.nilable(T::Boolean), channels: T.nilable(::Integer), chroma_location: T.nilable(::String), chroma_subsampling: T.nilable(::String), coded_height: T.nilable(::Integer), coded_width: T.nilable(::Integer), color_primaries: T.nilable(::String), color_range: T.nilable(::String), color_space: T.nilable(::String), color_trc: T.nilable(::String), default: T.nilable(T::Boolean), dovibl_compat_id: T.nilable(::Integer), dovibl_present: T.nilable(T::Boolean), doviel_present: T.nilable(T::Boolean), dovi_level: T.nilable(::Integer), dovi_present: T.nilable(T::Boolean), dovi_profile: T.nilable(::Integer), dovirpu_present: T.nilable(T::Boolean), dovi_version: T.nilable(::String), dub: T.nilable(T::Boolean), forced: T.nilable(T::Boolean), frame_rate: T.nilable(::Float), has_scaling_matrix: T.nilable(T::Boolean), header_compression: T.nilable(T::Boolean), hearing_impaired: T.nilable(T::Boolean), height: T.nilable(::Integer), level: T.nilable(::Integer), original: T.nilable(T::Boolean), profile: T.nilable(::String), ref_frames: T.nilable(::Integer), sampling_rate: T.nilable(::Integer), scan_type: T.nilable(::String), selected: T.nilable(T::Boolean), title: T.nilable(::String), width: T.nilable(::Integer)).void } - def initialize(codec: nil, display_title: nil, extended_display_title: nil, id: nil, index: nil, language: nil, language_code: nil, language_tag: nil, stream_type: nil, audio_channel_layout: nil, bit_depth: nil, bitrate: nil, can_auto_sync: nil, channels: nil, chroma_location: nil, chroma_subsampling: nil, coded_height: nil, coded_width: nil, color_primaries: nil, color_range: nil, color_space: nil, color_trc: nil, default: nil, dovibl_compat_id: nil, dovibl_present: nil, doviel_present: nil, dovi_level: nil, dovi_present: nil, dovi_profile: nil, dovirpu_present: nil, dovi_version: nil, dub: nil, forced: nil, frame_rate: nil, has_scaling_matrix: nil, header_compression: nil, hearing_impaired: nil, height: nil, level: nil, original: nil, profile: nil, ref_frames: nil, sampling_rate: nil, scan_type: nil, selected: nil, title: nil, width: nil) + sig { params(codec: ::String, display_title: ::String, extended_display_title: ::String, id: ::Integer, index: ::Integer, stream_type: ::Integer, audio_channel_layout: T.nilable(::String), bit_depth: T.nilable(::Integer), bitrate: T.nilable(::Integer), can_auto_sync: T.nilable(T::Boolean), channels: T.nilable(::Integer), chroma_location: T.nilable(::String), chroma_subsampling: T.nilable(::String), closed_captions: T.nilable(T::Boolean), coded_height: T.nilable(::Integer), coded_width: T.nilable(::Integer), color_primaries: T.nilable(::String), color_range: T.nilable(::String), color_space: T.nilable(::String), color_trc: T.nilable(::String), default: T.nilable(T::Boolean), dovibl_compat_id: T.nilable(::Integer), dovibl_present: T.nilable(T::Boolean), doviel_present: T.nilable(T::Boolean), dovi_level: T.nilable(::Integer), dovi_present: T.nilable(T::Boolean), dovi_profile: T.nilable(::Integer), dovirpu_present: T.nilable(T::Boolean), dovi_version: T.nilable(::String), dub: T.nilable(T::Boolean), embedded_in_video: T.nilable(::String), forced: T.nilable(T::Boolean), frame_rate: T.nilable(::Float), has_scaling_matrix: T.nilable(T::Boolean), header_compression: T.nilable(T::Boolean), hearing_impaired: T.nilable(T::Boolean), height: T.nilable(::Integer), language: T.nilable(::String), language_code: T.nilable(::String), language_tag: T.nilable(::String), level: T.nilable(::Integer), original: T.nilable(T::Boolean), profile: T.nilable(::String), ref_frames: T.nilable(::Integer), sampling_rate: T.nilable(::Integer), scan_type: T.nilable(::String), selected: T.nilable(T::Boolean), title: T.nilable(::String), width: T.nilable(::Integer)).void } + def initialize(codec: nil, display_title: nil, extended_display_title: nil, id: nil, index: nil, stream_type: nil, audio_channel_layout: nil, bit_depth: nil, bitrate: nil, can_auto_sync: nil, channels: nil, chroma_location: nil, chroma_subsampling: nil, closed_captions: nil, coded_height: nil, coded_width: nil, color_primaries: nil, color_range: nil, color_space: nil, color_trc: nil, default: nil, dovibl_compat_id: nil, dovibl_present: nil, doviel_present: nil, dovi_level: nil, dovi_present: nil, dovi_profile: nil, dovirpu_present: nil, dovi_version: nil, dub: nil, embedded_in_video: nil, forced: nil, frame_rate: nil, has_scaling_matrix: nil, header_compression: nil, hearing_impaired: nil, height: nil, language: nil, language_code: nil, language_tag: nil, level: nil, original: nil, profile: nil, ref_frames: nil, sampling_rate: nil, scan_type: nil, selected: nil, title: nil, width: nil) @codec = codec @display_title = display_title @extended_display_title = extended_display_title @id = id @index = index - @language = language - @language_code = language_code - @language_tag = language_tag @stream_type = stream_type @audio_channel_layout = audio_channel_layout @bit_depth = bit_depth @@ -125,6 +126,7 @@ module PlexRubySDK @channels = channels @chroma_location = chroma_location @chroma_subsampling = chroma_subsampling + @closed_captions = closed_captions @coded_height = coded_height @coded_width = coded_width @color_primaries = color_primaries @@ -141,12 +143,16 @@ module PlexRubySDK @dovirpu_present = dovirpu_present @dovi_version = dovi_version @dub = dub + @embedded_in_video = embedded_in_video @forced = forced @frame_rate = frame_rate @has_scaling_matrix = has_scaling_matrix @header_compression = header_compression @hearing_impaired = hearing_impaired @height = height + @language = language + @language_code = language_code + @language_tag = language_tag @level = level @original = original @profile = profile diff --git a/lib/plex_ruby_sdk/models/operations/get_recently_added_mediacontainer.rb b/lib/plex_ruby_sdk/models/operations/get_recently_added_mediacontainer.rb index 7bdcf0e..83067d9 100644 --- a/lib/plex_ruby_sdk/models/operations/get_recently_added_mediacontainer.rb +++ b/lib/plex_ruby_sdk/models/operations/get_recently_added_mediacontainer.rb @@ -11,32 +11,32 @@ module PlexRubySDK class GetRecentlyAddedMediaContainer < ::Crystalline::FieldAugmented extend T::Sig - + # Indicates whether syncing is allowed. + field :allow_sync, T::Boolean, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('allowSync') } } + # An plugin identifier for the media container. + field :identifier, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('identifier') } } + # Offset value for pagination. + field :offset, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('offset') } } + # Number of media items returned in this response. field :size, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('size') } } - - field :allow_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('allowSync') } } - - field :identifier, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('identifier') } } + # Total number of media items in the library. + field :total_size, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('totalSize') } } # The Meta object is only included in the response if the `includeMeta` parameter is set to `1`. # field :meta, T.nilable(::PlexRubySDK::Operations::Meta), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Meta') } } - + # An array of metadata items. field :metadata, T.nilable(T::Array[::PlexRubySDK::Operations::GetRecentlyAddedMetadata]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Metadata') } } - field :offset, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('offset') } } - field :total_size, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('totalSize') } } - - - sig { params(size: ::Integer, allow_sync: T.nilable(T::Boolean), identifier: T.nilable(::String), meta: T.nilable(::PlexRubySDK::Operations::Meta), metadata: T.nilable(T::Array[::PlexRubySDK::Operations::GetRecentlyAddedMetadata]), offset: T.nilable(::Integer), total_size: T.nilable(::Integer)).void } - def initialize(size: nil, allow_sync: nil, identifier: nil, meta: nil, metadata: nil, offset: nil, total_size: nil) - @size = size + sig { params(allow_sync: T::Boolean, identifier: ::String, offset: ::Integer, size: ::Integer, total_size: ::Integer, meta: T.nilable(::PlexRubySDK::Operations::Meta), metadata: T.nilable(T::Array[::PlexRubySDK::Operations::GetRecentlyAddedMetadata])).void } + def initialize(allow_sync: nil, identifier: nil, offset: nil, size: nil, total_size: nil, meta: nil, metadata: nil) @allow_sync = allow_sync @identifier = identifier + @offset = offset + @size = size + @total_size = total_size @meta = meta @metadata = metadata - @offset = offset - @total_size = total_size end end end diff --git a/lib/plex_ruby_sdk/models/operations/get_recently_added_metadata.rb b/lib/plex_ruby_sdk/models/operations/get_recently_added_metadata.rb index 1feba1e..1285922 100644 --- a/lib/plex_ruby_sdk/models/operations/get_recently_added_metadata.rb +++ b/lib/plex_ruby_sdk/models/operations/get_recently_added_metadata.rb @@ -7,199 +7,198 @@ module PlexRubySDK module Operations - + # Unknown + # class GetRecentlyAddedMetadata < ::Crystalline::FieldAugmented extend T::Sig - # Unix epoch datetime in seconds + field :added_at, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('addedAt') } } - + # The art image URL for the media item. + field :art, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('art') } } + # The audience rating for the media item. + field :audience_rating, ::Float, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('audienceRating') } } + # The number of child items associated with this media item. + field :child_count, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('childCount') } } + # The duration of the media item in milliseconds. + field :duration, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('duration') } } + # The globally unique identifier for the media item. field :guid, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('guid') } } - + # The index position of the media item. + field :index, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('index') } } + # The unique key for the media item. field :key, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('key') } } - # The rating key (Media ID) of this media item. - # Note: This is always an integer, but is represented as a string in the API. - # + # The identifier for the library section. + field :library_section_id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionID') } } + # The key corresponding to the library section. + field :library_section_key, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionKey') } } + # The title of the library section. + field :library_section_title, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionTitle') } } + # The original release date of the media item. + field :originally_available_at, ::Date, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('originallyAvailableAt'), 'decoder': Utils.date_from_iso_format(false) } } + # The studio of the parent media item. + field :parent_studio, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('parentStudio') } } + # The theme URL for the parent media item. + field :parent_theme, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('parentTheme') } } + # The critic rating for the media item. + field :rating, ::Float, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('rating') } } + # The rating key (Media ID) of this media item. Note: Although this is always an integer, it is represented as a string in the API. field :rating_key, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('ratingKey') } } - + # The total number of seasons (for TV shows). + field :season_count, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('seasonCount') } } + # A URL‐friendly version of the media title. + field :slug, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('slug') } } + # A synopsis of the media item. field :summary, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('summary') } } - + # A brief tagline for the media item. + field :tagline, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tagline') } } + # The theme URL for the media item. + field :theme, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('theme') } } + # The thumbnail image URL for the media item. + field :thumb, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('thumb') } } + # The title of the media item. field :title, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('title') } } - # The type of media content - # + # The sort title used for ordering media items. + field :title_sort, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('titleSort') } } + field :type, ::PlexRubySDK::Operations::GetRecentlyAddedHubsType, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::GetRecentlyAddedHubsType, false) } } - - field :art, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('art') } } - - field :audience_rating, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('audienceRating') } } - + # The URL for the audience rating image. field :audience_rating_image, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('audienceRatingImage') } } - - field :banner, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('banner') } } - + # The source from which chapter data is derived. field :chapter_source, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('chapterSource') } } - field :child_count, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('childCount') } } - field :collection, T.nilable(T::Array[::PlexRubySDK::Operations::Collection]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Collection') } } - + # The content rating for the media item. field :content_rating, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('contentRating') } } field :country, T.nilable(T::Array[::PlexRubySDK::Operations::Country]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Country') } } + # The accuracy of the creation timestamp. This value indicates the format(s) provided (for example, 'epoch,local' means both epoch and local time formats are available). + field :created_at_accuracy, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('createdAtAccuracy') } } + # The time zone offset for the creation timestamp, represented as a string. This offset indicates the difference from UTC. + field :created_at_tz_offset, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('createdAtTZOffset') } } field :director, T.nilable(T::Array[::PlexRubySDK::Operations::Director]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Director') } } - field :duration, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('duration') } } - # Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). - field :enable_credits_marker_generation, T.nilable(::PlexRubySDK::Operations::EnableCreditsMarkerGeneration), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('enableCreditsMarkerGeneration'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::EnableCreditsMarkerGeneration, true) } } - # Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). - field :episode_sort, T.nilable(::PlexRubySDK::Operations::EpisodeSort), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('episodeSort'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::EpisodeSort, true) } } - # Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). - field :flatten_seasons, T.nilable(::PlexRubySDK::Operations::FlattenSeasons), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('flattenSeasons'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::FlattenSeasons, true) } } - field :genre, T.nilable(T::Array[::PlexRubySDK::Operations::Genre]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Genre') } } - + # The art URL for the grandparent media item. field :grandparent_art, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('grandparentArt') } } - + # The GUID of the grandparent media item. field :grandparent_guid, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('grandparentGuid') } } - + # The key of the grandparent media item. field :grandparent_key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('grandparentKey') } } - + # The rating key of the grandparent media item. field :grandparent_rating_key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('grandparentRatingKey') } } - + # The slug for the grandparent media item. field :grandparent_slug, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('grandparentSlug') } } - + # The theme URL for the grandparent media item. field :grandparent_theme, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('grandparentTheme') } } - + # The thumbnail URL for the grandparent media item. field :grandparent_thumb, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('grandparentThumb') } } - + # The title of the grandparent media item. field :grandparent_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('grandparentTitle') } } - field :has_premium_extras, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('hasPremiumExtras') } } - - field :has_premium_primary_extra, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('hasPremiumPrimaryExtra') } } + field :guids, T.nilable(T::Array[::PlexRubySDK::Operations::Guids]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Guid') } } field :image, T.nilable(T::Array[::PlexRubySDK::Operations::GetRecentlyAddedImage]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Image') } } - - field :index, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('index') } } - + # The Unix timestamp representing the last time the item was rated. + field :last_rated_at, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('lastRatedAt') } } + # Unix timestamp for when the media item was last viewed. field :last_viewed_at, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('lastViewedAt') } } - + # The number of leaf items (end nodes) under this media item. field :leaf_count, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('leafCount') } } - field :library_section_id, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionID') } } - - field :library_section_key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionKey') } } - - field :library_section_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionTitle') } } - field :location, T.nilable(T::Array[::PlexRubySDK::Operations::Location]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Location') } } - # The Media object is only included when type query is `4` or higher. - # + field :media, T.nilable(T::Array[::PlexRubySDK::Operations::Media]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Media') } } - # The Guid object is only included in the response if the `includeGuids` parameter is set to `1`. - # - field :media_guid, T.nilable(T::Array[::PlexRubySDK::Operations::MediaGuid]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Guid') } } - - field :meta_data_rating, T.nilable(T::Array[::PlexRubySDK::Operations::MetaDataRating]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Rating') } } - - field :originally_available_at, T.nilable(::Date), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('originallyAvailableAt'), 'decoder': Utils.date_from_iso_format(true) } } - + # The original title of the media item (if different). field :original_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('originalTitle') } } - + # The GUID of the parent media item. field :parent_guid, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('parentGuid') } } - + # The index position of the parent media item. field :parent_index, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('parentIndex') } } - + # The key of the parent media item. field :parent_key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('parentKey') } } - # The rating key of the parent item. - # + # The rating key of the parent media item. field :parent_rating_key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('parentRatingKey') } } - + # The slug for the parent media item. field :parent_slug, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('parentSlug') } } - - field :parent_studio, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('parentStudio') } } - - field :parent_theme, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('parentTheme') } } - + # The thumbnail URL for the parent media item. field :parent_thumb, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('parentThumb') } } - + # The title of the parent media item. field :parent_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('parentTitle') } } - + # The release year of the parent media item. field :parent_year, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('parentYear') } } - + # The primary extra key associated with this media item. field :primary_extra_key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('primaryExtraKey') } } - field :rating, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('rating') } } + field :producer, T.nilable(T::Array[::PlexRubySDK::Operations::Producer]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Producer') } } + field :rating1, T.nilable(T::Array[::PlexRubySDK::Operations::Rating]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Rating') } } + # The URL for the rating image. field :rating_image, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('ratingImage') } } field :role, T.nilable(T::Array[::PlexRubySDK::Operations::Role]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Role') } } - field :season_count, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('seasonCount') } } - # Setting that indicates the episode ordering for the show. - # None = Library default, - # tmdbAiring = The Movie Database (Aired), - # aired = TheTVDB (Aired), - # dvd = TheTVDB (DVD), - # absolute = TheTVDB (Absolute)). - # - field :show_ordering, T.nilable(::PlexRubySDK::Operations::ShowOrdering), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('showOrdering'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::ShowOrdering, true) } } - - field :skip_children, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('skipChildren') } } - + field :similar, T.nilable(T::Array[::PlexRubySDK::Operations::Similar]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Similar') } } + # The number of times this media item has been skipped. field :skip_count, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('skipCount') } } - - field :slug, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('slug') } } - + # The studio that produced the media item. field :studio, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('studio') } } - - field :tagline, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tagline') } } - - field :theme, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('theme') } } - - field :thumb, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('thumb') } } - - field :title_sort, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('titleSort') } } + # A classification that further describes the type of media item. For example, 'clip' indicates that the item is a short video clip. + field :subtype, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('subtype') } } field :ultra_blur_colors, T.nilable(::PlexRubySDK::Operations::UltraBlurColors), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('UltraBlurColors') } } # Unix epoch datetime in seconds field :updated_at, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('updatedAt') } } - + # The rating provided by a user for the item. This value is expressed as a decimal number. + field :user_rating, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('userRating') } } + # The number of times this media item has been viewed. field :view_count, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('viewCount') } } - + # The number of leaf items that have been viewed. field :viewed_leaf_count, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('viewedLeafCount') } } - + # The current playback offset (in milliseconds). field :view_offset, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('viewOffset') } } field :writer, T.nilable(T::Array[::PlexRubySDK::Operations::Writer]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Writer') } } - + # The release year of the media item. field :year, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('year') } } - sig { params(added_at: ::Integer, guid: ::String, key: ::String, rating_key: ::String, summary: ::String, title: ::String, type: ::PlexRubySDK::Operations::GetRecentlyAddedHubsType, art: T.nilable(::String), audience_rating: T.nilable(::Float), audience_rating_image: T.nilable(::String), banner: T.nilable(::String), chapter_source: T.nilable(::String), child_count: T.nilable(::Integer), collection: T.nilable(T::Array[::PlexRubySDK::Operations::Collection]), content_rating: T.nilable(::String), country: T.nilable(T::Array[::PlexRubySDK::Operations::Country]), director: T.nilable(T::Array[::PlexRubySDK::Operations::Director]), duration: T.nilable(::Integer), enable_credits_marker_generation: T.nilable(::PlexRubySDK::Operations::EnableCreditsMarkerGeneration), episode_sort: T.nilable(::PlexRubySDK::Operations::EpisodeSort), flatten_seasons: T.nilable(::PlexRubySDK::Operations::FlattenSeasons), genre: T.nilable(T::Array[::PlexRubySDK::Operations::Genre]), grandparent_art: T.nilable(::String), grandparent_guid: T.nilable(::String), grandparent_key: T.nilable(::String), grandparent_rating_key: T.nilable(::String), grandparent_slug: T.nilable(::String), grandparent_theme: T.nilable(::String), grandparent_thumb: T.nilable(::String), grandparent_title: T.nilable(::String), has_premium_extras: T.nilable(::String), has_premium_primary_extra: T.nilable(::String), image: T.nilable(T::Array[::PlexRubySDK::Operations::GetRecentlyAddedImage]), index: T.nilable(::Integer), last_viewed_at: T.nilable(::Integer), leaf_count: T.nilable(::Integer), library_section_id: T.nilable(::Integer), library_section_key: T.nilable(::String), library_section_title: T.nilable(::String), location: T.nilable(T::Array[::PlexRubySDK::Operations::Location]), media: T.nilable(T::Array[::PlexRubySDK::Operations::Media]), media_guid: T.nilable(T::Array[::PlexRubySDK::Operations::MediaGuid]), meta_data_rating: T.nilable(T::Array[::PlexRubySDK::Operations::MetaDataRating]), originally_available_at: T.nilable(::Date), original_title: T.nilable(::String), parent_guid: T.nilable(::String), parent_index: T.nilable(::Integer), parent_key: T.nilable(::String), parent_rating_key: T.nilable(::String), parent_slug: T.nilable(::String), parent_studio: T.nilable(::String), parent_theme: T.nilable(::String), parent_thumb: T.nilable(::String), parent_title: T.nilable(::String), parent_year: T.nilable(::Integer), primary_extra_key: T.nilable(::String), rating: T.nilable(::Float), rating_image: T.nilable(::String), role: T.nilable(T::Array[::PlexRubySDK::Operations::Role]), season_count: T.nilable(::Integer), show_ordering: T.nilable(::PlexRubySDK::Operations::ShowOrdering), skip_children: T.nilable(T::Boolean), skip_count: T.nilable(::Integer), slug: T.nilable(::String), studio: T.nilable(::String), tagline: T.nilable(::String), theme: T.nilable(::String), thumb: T.nilable(::String), title_sort: T.nilable(::String), ultra_blur_colors: T.nilable(::PlexRubySDK::Operations::UltraBlurColors), updated_at: T.nilable(::Integer), view_count: T.nilable(::Integer), viewed_leaf_count: T.nilable(::Integer), view_offset: T.nilable(::Integer), writer: T.nilable(T::Array[::PlexRubySDK::Operations::Writer]), year: T.nilable(::Integer)).void } - def initialize(added_at: nil, guid: nil, key: nil, rating_key: nil, summary: nil, title: nil, type: nil, art: nil, audience_rating: nil, audience_rating_image: nil, banner: nil, chapter_source: nil, child_count: nil, collection: nil, content_rating: nil, country: nil, director: nil, duration: nil, enable_credits_marker_generation: nil, episode_sort: nil, flatten_seasons: nil, genre: nil, grandparent_art: nil, grandparent_guid: nil, grandparent_key: nil, grandparent_rating_key: nil, grandparent_slug: nil, grandparent_theme: nil, grandparent_thumb: nil, grandparent_title: nil, has_premium_extras: nil, has_premium_primary_extra: nil, image: nil, index: nil, last_viewed_at: nil, leaf_count: nil, library_section_id: nil, library_section_key: nil, library_section_title: nil, location: nil, media: nil, media_guid: nil, meta_data_rating: nil, originally_available_at: nil, original_title: nil, parent_guid: nil, parent_index: nil, parent_key: nil, parent_rating_key: nil, parent_slug: nil, parent_studio: nil, parent_theme: nil, parent_thumb: nil, parent_title: nil, parent_year: nil, primary_extra_key: nil, rating: nil, rating_image: nil, role: nil, season_count: nil, show_ordering: nil, skip_children: nil, skip_count: nil, slug: nil, studio: nil, tagline: nil, theme: nil, thumb: nil, title_sort: nil, ultra_blur_colors: nil, updated_at: nil, view_count: nil, viewed_leaf_count: nil, view_offset: nil, writer: nil, year: nil) + sig { params(added_at: ::Integer, art: ::String, audience_rating: ::Float, child_count: ::Integer, duration: ::Integer, guid: ::String, index: ::Integer, key: ::String, library_section_id: ::Integer, library_section_key: ::String, library_section_title: ::String, originally_available_at: ::Date, parent_studio: ::String, parent_theme: ::String, rating: ::Float, rating_key: ::String, season_count: ::Integer, slug: ::String, summary: ::String, tagline: ::String, theme: ::String, thumb: ::String, title: ::String, title_sort: ::String, type: ::PlexRubySDK::Operations::GetRecentlyAddedHubsType, audience_rating_image: T.nilable(::String), chapter_source: T.nilable(::String), collection: T.nilable(T::Array[::PlexRubySDK::Operations::Collection]), content_rating: T.nilable(::String), country: T.nilable(T::Array[::PlexRubySDK::Operations::Country]), created_at_accuracy: T.nilable(::String), created_at_tz_offset: T.nilable(::String), director: T.nilable(T::Array[::PlexRubySDK::Operations::Director]), genre: T.nilable(T::Array[::PlexRubySDK::Operations::Genre]), grandparent_art: T.nilable(::String), grandparent_guid: T.nilable(::String), grandparent_key: T.nilable(::String), grandparent_rating_key: T.nilable(::String), grandparent_slug: T.nilable(::String), grandparent_theme: T.nilable(::String), grandparent_thumb: T.nilable(::String), grandparent_title: T.nilable(::String), guids: T.nilable(T::Array[::PlexRubySDK::Operations::Guids]), image: T.nilable(T::Array[::PlexRubySDK::Operations::GetRecentlyAddedImage]), last_rated_at: T.nilable(::Integer), last_viewed_at: T.nilable(::Integer), leaf_count: T.nilable(::Integer), location: T.nilable(T::Array[::PlexRubySDK::Operations::Location]), media: T.nilable(T::Array[::PlexRubySDK::Operations::Media]), original_title: T.nilable(::String), parent_guid: T.nilable(::String), parent_index: T.nilable(::Integer), parent_key: T.nilable(::String), parent_rating_key: T.nilable(::String), parent_slug: T.nilable(::String), parent_thumb: T.nilable(::String), parent_title: T.nilable(::String), parent_year: T.nilable(::Integer), primary_extra_key: T.nilable(::String), producer: T.nilable(T::Array[::PlexRubySDK::Operations::Producer]), rating1: T.nilable(T::Array[::PlexRubySDK::Operations::Rating]), rating_image: T.nilable(::String), role: T.nilable(T::Array[::PlexRubySDK::Operations::Role]), similar: T.nilable(T::Array[::PlexRubySDK::Operations::Similar]), skip_count: T.nilable(::Integer), studio: T.nilable(::String), subtype: T.nilable(::String), ultra_blur_colors: T.nilable(::PlexRubySDK::Operations::UltraBlurColors), updated_at: T.nilable(::Integer), user_rating: T.nilable(::Float), view_count: T.nilable(::Integer), viewed_leaf_count: T.nilable(::Integer), view_offset: T.nilable(::Integer), writer: T.nilable(T::Array[::PlexRubySDK::Operations::Writer]), year: T.nilable(::Integer)).void } + def initialize(added_at: nil, art: nil, audience_rating: nil, child_count: nil, duration: nil, guid: nil, index: nil, key: nil, library_section_id: nil, library_section_key: nil, library_section_title: nil, originally_available_at: nil, parent_studio: nil, parent_theme: nil, rating: nil, rating_key: nil, season_count: nil, slug: nil, summary: nil, tagline: nil, theme: nil, thumb: nil, title: nil, title_sort: nil, type: nil, audience_rating_image: nil, chapter_source: nil, collection: nil, content_rating: nil, country: nil, created_at_accuracy: nil, created_at_tz_offset: nil, director: nil, genre: nil, grandparent_art: nil, grandparent_guid: nil, grandparent_key: nil, grandparent_rating_key: nil, grandparent_slug: nil, grandparent_theme: nil, grandparent_thumb: nil, grandparent_title: nil, guids: nil, image: nil, last_rated_at: nil, last_viewed_at: nil, leaf_count: nil, location: nil, media: nil, original_title: nil, parent_guid: nil, parent_index: nil, parent_key: nil, parent_rating_key: nil, parent_slug: nil, parent_thumb: nil, parent_title: nil, parent_year: nil, primary_extra_key: nil, producer: nil, rating1: nil, rating_image: nil, role: nil, similar: nil, skip_count: nil, studio: nil, subtype: nil, ultra_blur_colors: nil, updated_at: nil, user_rating: nil, view_count: nil, viewed_leaf_count: nil, view_offset: nil, writer: nil, year: nil) @added_at = added_at - @guid = guid - @key = key - @rating_key = rating_key - @summary = summary - @title = title - @type = type @art = art @audience_rating = audience_rating - @audience_rating_image = audience_rating_image - @banner = banner - @chapter_source = chapter_source @child_count = child_count + @duration = duration + @guid = guid + @index = index + @key = key + @library_section_id = library_section_id + @library_section_key = library_section_key + @library_section_title = library_section_title + @originally_available_at = originally_available_at + @parent_studio = parent_studio + @parent_theme = parent_theme + @rating = rating + @rating_key = rating_key + @season_count = season_count + @slug = slug + @summary = summary + @tagline = tagline + @theme = theme + @thumb = thumb + @title = title + @title_sort = title_sort + @type = type + @audience_rating_image = audience_rating_image + @chapter_source = chapter_source @collection = collection @content_rating = content_rating @country = country + @created_at_accuracy = created_at_accuracy + @created_at_tz_offset = created_at_tz_offset @director = director - @duration = duration - @enable_credits_marker_generation = enable_credits_marker_generation - @episode_sort = episode_sort - @flatten_seasons = flatten_seasons @genre = genre @grandparent_art = grandparent_art @grandparent_guid = grandparent_guid @@ -209,47 +208,34 @@ module PlexRubySDK @grandparent_theme = grandparent_theme @grandparent_thumb = grandparent_thumb @grandparent_title = grandparent_title - @has_premium_extras = has_premium_extras - @has_premium_primary_extra = has_premium_primary_extra + @guids = guids @image = image - @index = index + @last_rated_at = last_rated_at @last_viewed_at = last_viewed_at @leaf_count = leaf_count - @library_section_id = library_section_id - @library_section_key = library_section_key - @library_section_title = library_section_title @location = location @media = media - @media_guid = media_guid - @meta_data_rating = meta_data_rating - @originally_available_at = originally_available_at @original_title = original_title @parent_guid = parent_guid @parent_index = parent_index @parent_key = parent_key @parent_rating_key = parent_rating_key @parent_slug = parent_slug - @parent_studio = parent_studio - @parent_theme = parent_theme @parent_thumb = parent_thumb @parent_title = parent_title @parent_year = parent_year @primary_extra_key = primary_extra_key - @rating = rating + @producer = producer + @rating1 = rating1 @rating_image = rating_image @role = role - @season_count = season_count - @show_ordering = show_ordering - @skip_children = skip_children + @similar = similar @skip_count = skip_count - @slug = slug @studio = studio - @tagline = tagline - @theme = theme - @thumb = thumb - @title_sort = title_sort + @subtype = subtype @ultra_blur_colors = ultra_blur_colors @updated_at = updated_at + @user_rating = user_rating @view_count = view_count @viewed_leaf_count = viewed_leaf_count @view_offset = view_offset diff --git a/lib/plex_ruby_sdk/models/operations/getondeck_badrequest.rb b/lib/plex_ruby_sdk/models/operations/getondeck_badrequest.rb deleted file mode 100644 index 7980e25..0000000 --- a/lib/plex_ruby_sdk/models/operations/getondeck_badrequest.rb +++ /dev/null @@ -1,24 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module PlexRubySDK - module Operations - - # Bad Request - A parameter was not specified, or was specified incorrectly. - class GetOnDeckBadRequest < ::Crystalline::FieldAugmented - extend T::Sig - - - field :errors, T.nilable(T::Array[::PlexRubySDK::Operations::GetOnDeckErrors]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('errors') } } - - - sig { params(errors: T.nilable(T::Array[::PlexRubySDK::Operations::GetOnDeckErrors])).void } - def initialize(errors: nil) - @errors = errors - end - end - end -end diff --git a/lib/plex_ruby_sdk/models/operations/getondeck_errors.rb b/lib/plex_ruby_sdk/models/operations/getondeck_errors.rb deleted file mode 100644 index b01baa8..0000000 --- a/lib/plex_ruby_sdk/models/operations/getondeck_errors.rb +++ /dev/null @@ -1,30 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module PlexRubySDK - module Operations - - - class GetOnDeckErrors < ::Crystalline::FieldAugmented - extend T::Sig - - - field :code, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('code') } } - - field :message, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('message') } } - - field :status, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('status') } } - - - sig { params(code: T.nilable(::Integer), message: T.nilable(::String), status: T.nilable(::Integer)).void } - def initialize(code: nil, message: nil, status: nil) - @code = code - @message = message - @status = status - end - end - end -end diff --git a/lib/plex_ruby_sdk/models/operations/getondeck_library_errors.rb b/lib/plex_ruby_sdk/models/operations/getondeck_library_errors.rb deleted file mode 100644 index f9e393b..0000000 --- a/lib/plex_ruby_sdk/models/operations/getondeck_library_errors.rb +++ /dev/null @@ -1,30 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module PlexRubySDK - module Operations - - - class GetOnDeckLibraryErrors < ::Crystalline::FieldAugmented - extend T::Sig - - - field :code, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('code') } } - - field :message, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('message') } } - - field :status, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('status') } } - - - sig { params(code: T.nilable(::Integer), message: T.nilable(::String), status: T.nilable(::Integer)).void } - def initialize(code: nil, message: nil, status: nil) - @code = code - @message = message - @status = status - end - end - end -end diff --git a/lib/plex_ruby_sdk/models/operations/getondeck_media.rb b/lib/plex_ruby_sdk/models/operations/getondeck_media.rb deleted file mode 100644 index a5dc532..0000000 --- a/lib/plex_ruby_sdk/models/operations/getondeck_media.rb +++ /dev/null @@ -1,66 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module PlexRubySDK - module Operations - - - class GetOnDeckMedia < ::Crystalline::FieldAugmented - extend T::Sig - - - field :aspect_ratio, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('aspectRatio') } } - - field :audio_channels, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('audioChannels') } } - - field :audio_codec, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('audioCodec') } } - - field :audio_profile, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('audioProfile') } } - - field :bitrate, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('bitrate') } } - - field :container, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('container') } } - - field :duration, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('duration') } } - - field :height, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('height') } } - - field :id, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } - - field :part, T.nilable(T::Array[::PlexRubySDK::Operations::GetOnDeckPart]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Part') } } - - field :video_codec, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('videoCodec') } } - - field :video_frame_rate, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('videoFrameRate') } } - - field :video_profile, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('videoProfile') } } - - field :video_resolution, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('videoResolution') } } - - field :width, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('width') } } - - - sig { params(aspect_ratio: T.nilable(::Float), audio_channels: T.nilable(::Float), audio_codec: T.nilable(::String), audio_profile: T.nilable(::String), bitrate: T.nilable(::Float), container: T.nilable(::String), duration: T.nilable(::Float), height: T.nilable(::Float), id: T.nilable(::Float), part: T.nilable(T::Array[::PlexRubySDK::Operations::GetOnDeckPart]), video_codec: T.nilable(::String), video_frame_rate: T.nilable(::String), video_profile: T.nilable(::String), video_resolution: T.nilable(::String), width: T.nilable(::Float)).void } - def initialize(aspect_ratio: nil, audio_channels: nil, audio_codec: nil, audio_profile: nil, bitrate: nil, container: nil, duration: nil, height: nil, id: nil, part: nil, video_codec: nil, video_frame_rate: nil, video_profile: nil, video_resolution: nil, width: nil) - @aspect_ratio = aspect_ratio - @audio_channels = audio_channels - @audio_codec = audio_codec - @audio_profile = audio_profile - @bitrate = bitrate - @container = container - @duration = duration - @height = height - @id = id - @part = part - @video_codec = video_codec - @video_frame_rate = video_frame_rate - @video_profile = video_profile - @video_resolution = video_resolution - @width = width - end - end - end -end diff --git a/lib/plex_ruby_sdk/models/operations/getondeck_mediacontainer.rb b/lib/plex_ruby_sdk/models/operations/getondeck_mediacontainer.rb deleted file mode 100644 index f0dfcef..0000000 --- a/lib/plex_ruby_sdk/models/operations/getondeck_mediacontainer.rb +++ /dev/null @@ -1,42 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module PlexRubySDK - module Operations - - - class GetOnDeckMediaContainer < ::Crystalline::FieldAugmented - extend T::Sig - - - field :allow_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('allowSync') } } - - field :identifier, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('identifier') } } - - field :media_tag_prefix, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('mediaTagPrefix') } } - - field :media_tag_version, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('mediaTagVersion') } } - - field :metadata, T.nilable(T::Array[::PlexRubySDK::Operations::GetOnDeckMetadata]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Metadata') } } - - field :mixed_parents, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('mixedParents') } } - - field :size, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('size') } } - - - sig { params(allow_sync: T.nilable(T::Boolean), identifier: T.nilable(::String), media_tag_prefix: T.nilable(::String), media_tag_version: T.nilable(::Float), metadata: T.nilable(T::Array[::PlexRubySDK::Operations::GetOnDeckMetadata]), mixed_parents: T.nilable(T::Boolean), size: T.nilable(::Float)).void } - def initialize(allow_sync: nil, identifier: nil, media_tag_prefix: nil, media_tag_version: nil, metadata: nil, mixed_parents: nil, size: nil) - @allow_sync = allow_sync - @identifier = identifier - @media_tag_prefix = media_tag_prefix - @media_tag_version = media_tag_version - @metadata = metadata - @mixed_parents = mixed_parents - @size = size - end - end - end -end diff --git a/lib/plex_ruby_sdk/models/operations/getondeck_metadata.rb b/lib/plex_ruby_sdk/models/operations/getondeck_metadata.rb deleted file mode 100644 index f338421..0000000 --- a/lib/plex_ruby_sdk/models/operations/getondeck_metadata.rb +++ /dev/null @@ -1,129 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module PlexRubySDK - module Operations - - - class GetOnDeckMetadata < ::Crystalline::FieldAugmented - extend T::Sig - - - field :added_at, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('addedAt') } } - - field :allow_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('allowSync') } } - - field :art, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('art') } } - - field :content_rating, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('contentRating') } } - - field :duration, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('duration') } } - - field :grandparent_art, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('grandparentArt') } } - - field :grandparent_guid, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('grandparentGuid') } } - - field :grandparent_key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('grandparentKey') } } - - field :grandparent_rating_key, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('grandparentRatingKey') } } - - field :grandparent_theme, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('grandparentTheme') } } - - field :grandparent_thumb, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('grandparentThumb') } } - - field :grandparent_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('grandparentTitle') } } - - field :guid, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('guid') } } - - field :guids, T.nilable(T::Array[::PlexRubySDK::Operations::GetOnDeckGuids]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Guid') } } - - field :index, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('index') } } - - field :key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('key') } } - - field :last_viewed_at, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('lastViewedAt') } } - - field :library_section_id, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionID') } } - - field :library_section_key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionKey') } } - - field :library_section_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionTitle') } } - - field :library_section_uuid, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionUUID') } } - - field :media, T.nilable(T::Array[::PlexRubySDK::Operations::GetOnDeckMedia]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Media') } } - - field :originally_available_at, T.nilable(::DateTime), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('originallyAvailableAt'), 'decoder': Utils.datetime_from_iso_format(true) } } - - field :parent_guid, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('parentGuid') } } - - field :parent_index, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('parentIndex') } } - - field :parent_key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('parentKey') } } - - field :parent_rating_key, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('parentRatingKey') } } - - field :parent_thumb, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('parentThumb') } } - - field :parent_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('parentTitle') } } - - field :rating_key, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('ratingKey') } } - - field :summary, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('summary') } } - - field :thumb, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('thumb') } } - - field :title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('title') } } - - field :type, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('type') } } - - field :updated_at, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('updatedAt') } } - - field :year, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('year') } } - - - sig { params(added_at: T.nilable(::Float), allow_sync: T.nilable(T::Boolean), art: T.nilable(::String), content_rating: T.nilable(::String), duration: T.nilable(::Float), grandparent_art: T.nilable(::String), grandparent_guid: T.nilable(::String), grandparent_key: T.nilable(::String), grandparent_rating_key: T.nilable(::Float), grandparent_theme: T.nilable(::String), grandparent_thumb: T.nilable(::String), grandparent_title: T.nilable(::String), guid: T.nilable(::String), guids: T.nilable(T::Array[::PlexRubySDK::Operations::GetOnDeckGuids]), index: T.nilable(::Float), key: T.nilable(::String), last_viewed_at: T.nilable(::Float), library_section_id: T.nilable(::Float), library_section_key: T.nilable(::String), library_section_title: T.nilable(::String), library_section_uuid: T.nilable(::String), media: T.nilable(T::Array[::PlexRubySDK::Operations::GetOnDeckMedia]), originally_available_at: T.nilable(::DateTime), parent_guid: T.nilable(::String), parent_index: T.nilable(::Float), parent_key: T.nilable(::String), parent_rating_key: T.nilable(::Float), parent_thumb: T.nilable(::String), parent_title: T.nilable(::String), rating_key: T.nilable(::Float), summary: T.nilable(::String), thumb: T.nilable(::String), title: T.nilable(::String), type: T.nilable(::String), updated_at: T.nilable(::Float), year: T.nilable(::Float)).void } - def initialize(added_at: nil, allow_sync: nil, art: nil, content_rating: nil, duration: nil, grandparent_art: nil, grandparent_guid: nil, grandparent_key: nil, grandparent_rating_key: nil, grandparent_theme: nil, grandparent_thumb: nil, grandparent_title: nil, guid: nil, guids: nil, index: nil, key: nil, last_viewed_at: nil, library_section_id: nil, library_section_key: nil, library_section_title: nil, library_section_uuid: nil, media: nil, originally_available_at: nil, parent_guid: nil, parent_index: nil, parent_key: nil, parent_rating_key: nil, parent_thumb: nil, parent_title: nil, rating_key: nil, summary: nil, thumb: nil, title: nil, type: nil, updated_at: nil, year: nil) - @added_at = added_at - @allow_sync = allow_sync - @art = art - @content_rating = content_rating - @duration = duration - @grandparent_art = grandparent_art - @grandparent_guid = grandparent_guid - @grandparent_key = grandparent_key - @grandparent_rating_key = grandparent_rating_key - @grandparent_theme = grandparent_theme - @grandparent_thumb = grandparent_thumb - @grandparent_title = grandparent_title - @guid = guid - @guids = guids - @index = index - @key = key - @last_viewed_at = last_viewed_at - @library_section_id = library_section_id - @library_section_key = library_section_key - @library_section_title = library_section_title - @library_section_uuid = library_section_uuid - @media = media - @originally_available_at = originally_available_at - @parent_guid = parent_guid - @parent_index = parent_index - @parent_key = parent_key - @parent_rating_key = parent_rating_key - @parent_thumb = parent_thumb - @parent_title = parent_title - @rating_key = rating_key - @summary = summary - @thumb = thumb - @title = title - @type = type - @updated_at = updated_at - @year = year - end - end - end -end diff --git a/lib/plex_ruby_sdk/models/operations/getondeck_part.rb b/lib/plex_ruby_sdk/models/operations/getondeck_part.rb deleted file mode 100644 index 31ea106..0000000 --- a/lib/plex_ruby_sdk/models/operations/getondeck_part.rb +++ /dev/null @@ -1,48 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module PlexRubySDK - module Operations - - - class GetOnDeckPart < ::Crystalline::FieldAugmented - extend T::Sig - - - field :audio_profile, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('audioProfile') } } - - field :container, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('container') } } - - field :duration, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('duration') } } - - field :file, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('file') } } - - field :id, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } - - field :key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('key') } } - - field :size, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('size') } } - - field :stream, T.nilable(T::Array[::PlexRubySDK::Operations::GetOnDeckStream]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Stream') } } - - field :video_profile, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('videoProfile') } } - - - sig { params(audio_profile: T.nilable(::String), container: T.nilable(::String), duration: T.nilable(::Float), file: T.nilable(::String), id: T.nilable(::Float), key: T.nilable(::String), size: T.nilable(::Float), stream: T.nilable(T::Array[::PlexRubySDK::Operations::GetOnDeckStream]), video_profile: T.nilable(::String)).void } - def initialize(audio_profile: nil, container: nil, duration: nil, file: nil, id: nil, key: nil, size: nil, stream: nil, video_profile: nil) - @audio_profile = audio_profile - @container = container - @duration = duration - @file = file - @id = id - @key = key - @size = size - @stream = stream - @video_profile = video_profile - end - end - end -end diff --git a/lib/plex_ruby_sdk/models/operations/getondeck_response.rb b/lib/plex_ruby_sdk/models/operations/getondeck_response.rb deleted file mode 100644 index 8cbb6b5..0000000 --- a/lib/plex_ruby_sdk/models/operations/getondeck_response.rb +++ /dev/null @@ -1,39 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module PlexRubySDK - module Operations - - - class GetOnDeckResponse < ::Crystalline::FieldAugmented - extend T::Sig - - # HTTP response content type for this operation - field :content_type, ::String - # Raw HTTP response; suitable for custom response parsing - field :raw_response, ::Faraday::Response - # HTTP response status code for this operation - field :status_code, ::Integer - # Bad Request - A parameter was not specified, or was specified incorrectly. - field :bad_request, T.nilable(::PlexRubySDK::Operations::GetOnDeckBadRequest) - # The on Deck content - field :object, T.nilable(::PlexRubySDK::Operations::GetOnDeckResponseBody) - # Unauthorized - Returned if the X-Plex-Token is missing from the header or query. - field :unauthorized, T.nilable(::PlexRubySDK::Operations::GetOnDeckUnauthorized) - - - sig { params(content_type: ::String, raw_response: ::Faraday::Response, status_code: ::Integer, bad_request: T.nilable(::PlexRubySDK::Operations::GetOnDeckBadRequest), object: T.nilable(::PlexRubySDK::Operations::GetOnDeckResponseBody), unauthorized: T.nilable(::PlexRubySDK::Operations::GetOnDeckUnauthorized)).void } - def initialize(content_type: nil, raw_response: nil, status_code: nil, bad_request: nil, object: nil, unauthorized: nil) - @content_type = content_type - @raw_response = raw_response - @status_code = status_code - @bad_request = bad_request - @object = object - @unauthorized = unauthorized - end - end - end -end diff --git a/lib/plex_ruby_sdk/models/operations/getondeck_responsebody.rb b/lib/plex_ruby_sdk/models/operations/getondeck_responsebody.rb deleted file mode 100644 index 816181a..0000000 --- a/lib/plex_ruby_sdk/models/operations/getondeck_responsebody.rb +++ /dev/null @@ -1,24 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module PlexRubySDK - module Operations - - # The on Deck content - class GetOnDeckResponseBody < ::Crystalline::FieldAugmented - extend T::Sig - - - field :media_container, T.nilable(::PlexRubySDK::Operations::GetOnDeckMediaContainer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('MediaContainer') } } - - - sig { params(media_container: T.nilable(::PlexRubySDK::Operations::GetOnDeckMediaContainer)).void } - def initialize(media_container: nil) - @media_container = media_container - end - end - end -end diff --git a/lib/plex_ruby_sdk/models/operations/getondeck_stream.rb b/lib/plex_ruby_sdk/models/operations/getondeck_stream.rb deleted file mode 100644 index 8ed5d32..0000000 --- a/lib/plex_ruby_sdk/models/operations/getondeck_stream.rb +++ /dev/null @@ -1,90 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module PlexRubySDK - module Operations - - - class GetOnDeckStream < ::Crystalline::FieldAugmented - extend T::Sig - - - field :bit_depth, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('bitDepth') } } - - field :bitrate, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('bitrate') } } - - field :chroma_location, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('chromaLocation') } } - - field :chroma_subsampling, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('chromaSubsampling') } } - - field :codec, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('codec') } } - - field :coded_height, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('codedHeight') } } - - field :coded_width, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('codedWidth') } } - - field :color_range, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('colorRange') } } - - field :default, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('default') } } - - field :display_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('displayTitle') } } - - field :extended_display_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('extendedDisplayTitle') } } - - field :frame_rate, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('frameRate') } } - - field :height, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('height') } } - - field :id, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } - - field :index, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('index') } } - - field :language, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('language') } } - - field :language_code, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('languageCode') } } - - field :language_tag, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('languageTag') } } - - field :level, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('level') } } - - field :profile, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('profile') } } - - field :ref_frames, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('refFrames') } } - - field :stream_type, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('streamType') } } - - field :width, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('width') } } - - - sig { params(bit_depth: T.nilable(::Float), bitrate: T.nilable(::Float), chroma_location: T.nilable(::String), chroma_subsampling: T.nilable(::String), codec: T.nilable(::String), coded_height: T.nilable(::Float), coded_width: T.nilable(::Float), color_range: T.nilable(::String), default: T.nilable(T::Boolean), display_title: T.nilable(::String), extended_display_title: T.nilable(::String), frame_rate: T.nilable(::Float), height: T.nilable(::Float), id: T.nilable(::Float), index: T.nilable(::Float), language: T.nilable(::String), language_code: T.nilable(::String), language_tag: T.nilable(::String), level: T.nilable(::Float), profile: T.nilable(::String), ref_frames: T.nilable(::Float), stream_type: T.nilable(::Float), width: T.nilable(::Float)).void } - def initialize(bit_depth: nil, bitrate: nil, chroma_location: nil, chroma_subsampling: nil, codec: nil, coded_height: nil, coded_width: nil, color_range: nil, default: nil, display_title: nil, extended_display_title: nil, frame_rate: nil, height: nil, id: nil, index: nil, language: nil, language_code: nil, language_tag: nil, level: nil, profile: nil, ref_frames: nil, stream_type: nil, width: nil) - @bit_depth = bit_depth - @bitrate = bitrate - @chroma_location = chroma_location - @chroma_subsampling = chroma_subsampling - @codec = codec - @coded_height = coded_height - @coded_width = coded_width - @color_range = color_range - @default = default - @display_title = display_title - @extended_display_title = extended_display_title - @frame_rate = frame_rate - @height = height - @id = id - @index = index - @language = language - @language_code = language_code - @language_tag = language_tag - @level = level - @profile = profile - @ref_frames = ref_frames - @stream_type = stream_type - @width = width - end - end - end -end diff --git a/lib/plex_ruby_sdk/models/operations/getondeck_unauthorized.rb b/lib/plex_ruby_sdk/models/operations/getondeck_unauthorized.rb deleted file mode 100644 index 4c8db43..0000000 --- a/lib/plex_ruby_sdk/models/operations/getondeck_unauthorized.rb +++ /dev/null @@ -1,24 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module PlexRubySDK - module Operations - - # Unauthorized - Returned if the X-Plex-Token is missing from the header or query. - class GetOnDeckUnauthorized < ::Crystalline::FieldAugmented - extend T::Sig - - - field :errors, T.nilable(T::Array[::PlexRubySDK::Operations::GetOnDeckLibraryErrors]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('errors') } } - - - sig { params(errors: T.nilable(T::Array[::PlexRubySDK::Operations::GetOnDeckLibraryErrors])).void } - def initialize(errors: nil) - @errors = errors - end - end - end -end diff --git a/lib/plex_ruby_sdk/models/operations/hasthumbnail.rb b/lib/plex_ruby_sdk/models/operations/hasthumbnail.rb index 15c50b0..177ead7 100644 --- a/lib/plex_ruby_sdk/models/operations/hasthumbnail.rb +++ b/lib/plex_ruby_sdk/models/operations/hasthumbnail.rb @@ -7,7 +7,7 @@ module PlexRubySDK module Operations - + # HasThumbnail - Indicates if the part has a thumbnail. class HasThumbnail < T::Enum enums do FALSE = new('0') diff --git a/lib/plex_ruby_sdk/models/operations/location.rb b/lib/plex_ruby_sdk/models/operations/location.rb index 3bc84f1..e1dc6a3 100644 --- a/lib/plex_ruby_sdk/models/operations/location.rb +++ b/lib/plex_ruby_sdk/models/operations/location.rb @@ -7,15 +7,15 @@ module PlexRubySDK module Operations - + # The folder path for the media item. class Location < ::Crystalline::FieldAugmented extend T::Sig - field :path, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('path') } } + field :path, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('path') } } - sig { params(path: T.nilable(::String)).void } + sig { params(path: ::String).void } def initialize(path: nil) @path = path end diff --git a/lib/plex_ruby_sdk/models/operations/media.rb b/lib/plex_ruby_sdk/models/operations/media.rb index 2b71e7d..f1b4552 100644 --- a/lib/plex_ruby_sdk/models/operations/media.rb +++ b/lib/plex_ruby_sdk/models/operations/media.rb @@ -11,59 +11,63 @@ module PlexRubySDK class Media < ::Crystalline::FieldAugmented extend T::Sig - - field :container, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('container') } } - + # Unique media identifier. field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } - - field :part, T::Array[::PlexRubySDK::Operations::Part], { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Part') } } - + # Aspect ratio of the video. field :aspect_ratio, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('aspectRatio') } } - + # Number of audio channels. field :audio_channels, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('audioChannels') } } - + # Audio codec used. field :audio_codec, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('audioCodec') } } - + # The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). field :audio_profile, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('audioProfile') } } - + # Bitrate in bits per second. field :bitrate, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('bitrate') } } + # File container type. + field :container, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('container') } } + field :display_offset, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('displayOffset') } } + # Duration of the media in milliseconds. field :duration, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('duration') } } field :has64bit_offsets, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('has64bitOffsets') } } - + # Indicates whether voice activity is detected. field :has_voice_activity, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('hasVoiceActivity') } } - + # Video height in pixels. field :height, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('height') } } - - field :optimized_for_streaming, T.nilable(::PlexRubySDK::Operations::OptimizedForStreaming), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('optimizedForStreaming'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::OptimizedForStreaming, true) } } - + # Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true + field :optimized_for_streaming, T.nilable(::Object), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('optimizedForStreaming') } } + # An array of parts for this media item. + field :part, T.nilable(T::Array[::PlexRubySDK::Operations::Part]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Part') } } + # Video codec used. field :video_codec, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('videoCodec') } } - + # Frame rate of the video. Values found include NTSC, PAL, 24p + # field :video_frame_rate, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('videoFrameRate') } } - + # Video profile (e.g., main 10). field :video_profile, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('videoProfile') } } - + # Video resolution (e.g., 4k). field :video_resolution, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('videoResolution') } } - + # Video width in pixels. field :width, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('width') } } - sig { params(container: ::String, id: ::Integer, part: T::Array[::PlexRubySDK::Operations::Part], aspect_ratio: T.nilable(::Float), audio_channels: T.nilable(::Integer), audio_codec: T.nilable(::String), audio_profile: T.nilable(::String), bitrate: T.nilable(::Integer), duration: T.nilable(::Integer), has64bit_offsets: T.nilable(T::Boolean), has_voice_activity: T.nilable(T::Boolean), height: T.nilable(::Integer), optimized_for_streaming: T.nilable(::PlexRubySDK::Operations::OptimizedForStreaming), video_codec: T.nilable(::String), video_frame_rate: T.nilable(::String), video_profile: T.nilable(::String), video_resolution: T.nilable(::String), width: T.nilable(::Integer)).void } - def initialize(container: nil, id: nil, part: nil, aspect_ratio: nil, audio_channels: nil, audio_codec: nil, audio_profile: nil, bitrate: nil, duration: nil, has64bit_offsets: nil, has_voice_activity: nil, height: nil, optimized_for_streaming: nil, video_codec: nil, video_frame_rate: nil, video_profile: nil, video_resolution: nil, width: nil) - @container = container + sig { params(id: ::Integer, aspect_ratio: T.nilable(::Float), audio_channels: T.nilable(::Integer), audio_codec: T.nilable(::String), audio_profile: T.nilable(::String), bitrate: T.nilable(::Integer), container: T.nilable(::String), display_offset: T.nilable(::Integer), duration: T.nilable(::Integer), has64bit_offsets: T.nilable(T::Boolean), has_voice_activity: T.nilable(T::Boolean), height: T.nilable(::Integer), optimized_for_streaming: T.nilable(::Object), part: T.nilable(T::Array[::PlexRubySDK::Operations::Part]), video_codec: T.nilable(::String), video_frame_rate: T.nilable(::String), video_profile: T.nilable(::String), video_resolution: T.nilable(::String), width: T.nilable(::Integer)).void } + def initialize(id: nil, aspect_ratio: nil, audio_channels: nil, audio_codec: nil, audio_profile: nil, bitrate: nil, container: nil, display_offset: nil, duration: nil, has64bit_offsets: nil, has_voice_activity: nil, height: nil, optimized_for_streaming: nil, part: nil, video_codec: nil, video_frame_rate: nil, video_profile: nil, video_resolution: nil, width: nil) @id = id - @part = part @aspect_ratio = aspect_ratio @audio_channels = audio_channels @audio_codec = audio_codec @audio_profile = audio_profile @bitrate = bitrate + @container = container + @display_offset = display_offset @duration = duration @has64bit_offsets = has64bit_offsets @has_voice_activity = has_voice_activity @height = height @optimized_for_streaming = optimized_for_streaming + @part = part @video_codec = video_codec @video_frame_rate = video_frame_rate @video_profile = video_profile diff --git a/lib/plex_ruby_sdk/models/operations/part.rb b/lib/plex_ruby_sdk/models/operations/part.rb index f66237d..c96040b 100644 --- a/lib/plex_ruby_sdk/models/operations/part.rb +++ b/lib/plex_ruby_sdk/models/operations/part.rb @@ -11,48 +11,56 @@ module PlexRubySDK class Part < ::Crystalline::FieldAugmented extend T::Sig - # The container format of the media file. - # - field :container, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('container') } } - + # File path for the part. field :file, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('file') } } - + # Unique part identifier. field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } - + # Key to access this part. field :key, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('key') } } - + # File size in bytes. field :size, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('size') } } - + # Indicates if the part is accessible. + field :accessible, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('accessible') } } + # The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). field :audio_profile, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('audioProfile') } } - + # Container format of the part. + field :container, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('container') } } + # Duration of the part in milliseconds. field :duration, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('duration') } } + # Indicates if the part exists. + field :exists, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('exists') } } field :has64bit_offsets, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('has64bitOffsets') } } field :has_thumbnail, T.nilable(::PlexRubySDK::Operations::HasThumbnail), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('hasThumbnail'), 'decoder': Utils.enum_from_string(::PlexRubySDK::Operations::HasThumbnail, true) } } field :indexes, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('indexes') } } + # Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true + field :optimized_for_streaming, T.nilable(::Object), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('optimizedForStreaming') } } - field :optimized_for_streaming, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('optimizedForStreaming') } } - + field :packet_length, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('packetLength') } } + # An array of streams for this part. field :stream, T.nilable(T::Array[::PlexRubySDK::Operations::Stream]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Stream') } } - + # Video profile for the part. field :video_profile, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('videoProfile') } } - sig { params(container: ::String, file: ::String, id: ::Integer, key: ::String, size: ::Integer, audio_profile: T.nilable(::String), duration: T.nilable(::Integer), has64bit_offsets: T.nilable(T::Boolean), has_thumbnail: T.nilable(::PlexRubySDK::Operations::HasThumbnail), indexes: T.nilable(::String), optimized_for_streaming: T.nilable(T::Boolean), stream: T.nilable(T::Array[::PlexRubySDK::Operations::Stream]), video_profile: T.nilable(::String)).void } - def initialize(container: nil, file: nil, id: nil, key: nil, size: nil, audio_profile: nil, duration: nil, has64bit_offsets: nil, has_thumbnail: nil, indexes: nil, optimized_for_streaming: nil, stream: nil, video_profile: nil) - @container = container + sig { params(file: ::String, id: ::Integer, key: ::String, size: ::Integer, accessible: T.nilable(T::Boolean), audio_profile: T.nilable(::String), container: T.nilable(::String), duration: T.nilable(::Integer), exists: T.nilable(T::Boolean), has64bit_offsets: T.nilable(T::Boolean), has_thumbnail: T.nilable(::PlexRubySDK::Operations::HasThumbnail), indexes: T.nilable(::String), optimized_for_streaming: T.nilable(::Object), packet_length: T.nilable(::Integer), stream: T.nilable(T::Array[::PlexRubySDK::Operations::Stream]), video_profile: T.nilable(::String)).void } + def initialize(file: nil, id: nil, key: nil, size: nil, accessible: nil, audio_profile: nil, container: nil, duration: nil, exists: nil, has64bit_offsets: nil, has_thumbnail: nil, indexes: nil, optimized_for_streaming: nil, packet_length: nil, stream: nil, video_profile: nil) @file = file @id = id @key = key @size = size + @accessible = accessible @audio_profile = audio_profile + @container = container @duration = duration + @exists = exists @has64bit_offsets = has64bit_offsets @has_thumbnail = has_thumbnail @indexes = indexes @optimized_for_streaming = optimized_for_streaming + @packet_length = packet_length @stream = stream @video_profile = video_profile end diff --git a/lib/plex_ruby_sdk/models/operations/producer.rb b/lib/plex_ruby_sdk/models/operations/producer.rb index 9191137..ff5bbeb 100644 --- a/lib/plex_ruby_sdk/models/operations/producer.rb +++ b/lib/plex_ruby_sdk/models/operations/producer.rb @@ -11,27 +11,24 @@ module PlexRubySDK class Producer < ::Crystalline::FieldAugmented extend T::Sig - # The filter string for the role. + # The filter string used to query this producer. field :filter, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('filter') } } - # The unique role identifier. + # Unique identifier for the producer. field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } - # The actor's name. + # The name of the producer field :tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } } - # A key associated with the actor tag. - field :tag_key, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tagKey') } } - # The character name or role. - field :role, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('role') } } - # URL for the role thumbnail image. + # A unique key associated with the producer's tag, used for internal identification. + field :tag_key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tagKey') } } + # The URL of the thumbnail image for the actor. field :thumb, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('thumb') } } - sig { params(filter: ::String, id: ::Integer, tag: ::String, tag_key: ::String, role: T.nilable(::String), thumb: T.nilable(::String)).void } - def initialize(filter: nil, id: nil, tag: nil, tag_key: nil, role: nil, thumb: nil) + sig { params(filter: ::String, id: ::Integer, tag: ::String, tag_key: T.nilable(::String), thumb: T.nilable(::String)).void } + def initialize(filter: nil, id: nil, tag: nil, tag_key: nil, thumb: nil) @filter = filter @id = id @tag = tag @tag_key = tag_key - @role = role @thumb = thumb end end diff --git a/lib/plex_ruby_sdk/models/operations/get_library_items_metadatarating.rb b/lib/plex_ruby_sdk/models/operations/rating.rb similarity index 78% rename from lib/plex_ruby_sdk/models/operations/get_library_items_metadatarating.rb rename to lib/plex_ruby_sdk/models/operations/rating.rb index f364954..d3cfcb5 100644 --- a/lib/plex_ruby_sdk/models/operations/get_library_items_metadatarating.rb +++ b/lib/plex_ruby_sdk/models/operations/rating.rb @@ -7,15 +7,15 @@ module PlexRubySDK module Operations - - class GetLibraryItemsMetaDataRating < ::Crystalline::FieldAugmented + # The type of rating, for example 'audience' or 'critic'. + class Rating < ::Crystalline::FieldAugmented extend T::Sig - # A URI or path to the rating image. + field :image, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('image') } } - # The type of rating (e.g., audience, critic). + field :type, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('type') } } - # The value of the rating. + field :value, ::Float, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('value') } } diff --git a/lib/plex_ruby_sdk/models/operations/role.rb b/lib/plex_ruby_sdk/models/operations/role.rb index b50a1e1..fb2a3f2 100644 --- a/lib/plex_ruby_sdk/models/operations/role.rb +++ b/lib/plex_ruby_sdk/models/operations/role.rb @@ -11,26 +11,26 @@ module PlexRubySDK class Role < ::Crystalline::FieldAugmented extend T::Sig - # The filter used to find the actor or tag. - field :filter, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('filter') } } - # The ID of the tag or actor. - field :id, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } - # The role of the actor or tag in the media. + # The filter string used to query this actor. For example, it may indicate that this is an actor with a given key. + field :filter, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('filter') } } + # Unique identifier for the actor or role. + field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } + # The display tag for the actor (typically the actor's name). + field :tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } } + # The role played by the actor in the media item. field :role, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('role') } } - # The name of the tag or actor. - field :tag, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } } - # Unique identifier for the tag. + # A unique key associated with the actor's tag, used for internal identification. field :tag_key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tagKey') } } - # The thumbnail of the actor + # The URL of the thumbnail image for the actor. field :thumb, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('thumb') } } - sig { params(filter: T.nilable(::String), id: T.nilable(::Integer), role: T.nilable(::String), tag: T.nilable(::String), tag_key: T.nilable(::String), thumb: T.nilable(::String)).void } - def initialize(filter: nil, id: nil, role: nil, tag: nil, tag_key: nil, thumb: nil) + sig { params(filter: ::String, id: ::Integer, tag: ::String, role: T.nilable(::String), tag_key: T.nilable(::String), thumb: T.nilable(::String)).void } + def initialize(filter: nil, id: nil, tag: nil, role: nil, tag_key: nil, thumb: nil) @filter = filter @id = id - @role = role @tag = tag + @role = role @tag_key = tag_key @thumb = thumb end diff --git a/lib/plex_ruby_sdk/models/operations/similar.rb b/lib/plex_ruby_sdk/models/operations/similar.rb index 0221432..b36f5f5 100644 --- a/lib/plex_ruby_sdk/models/operations/similar.rb +++ b/lib/plex_ruby_sdk/models/operations/similar.rb @@ -7,15 +7,15 @@ module PlexRubySDK module Operations - + # The display tag for the similar item, typically the title. class Similar < ::Crystalline::FieldAugmented extend T::Sig - # The filter string for similar items. + field :filter, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('filter') } } - # The unique similar item identifier. + field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } - # The tag or title of the similar content. + field :tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } } diff --git a/lib/plex_ruby_sdk/models/operations/stream.rb b/lib/plex_ruby_sdk/models/operations/stream.rb index 21f9a0c..e8942be 100644 --- a/lib/plex_ruby_sdk/models/operations/stream.rb +++ b/lib/plex_ruby_sdk/models/operations/stream.rb @@ -11,87 +11,111 @@ module PlexRubySDK class Stream < ::Crystalline::FieldAugmented extend T::Sig - # Codec used by the stream + # Codec used by the stream. field :codec, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('codec') } } - + # Display title for the stream. + field :display_title, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('displayTitle') } } + # Extended display title for the stream. + field :extended_display_title, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('extendedDisplayTitle') } } + # Unique stream identifier. field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } - # The index of the stream + # Index of the stream. field :index, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('index') } } - # Type of stream (1 = video, 2 = audio, 3 = subtitle) + # Stream type (1=video, 2=audio, 3=subtitle). field :stream_type, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('streamType') } } - # The audio channel layout + # Audio channel layout. field :audio_channel_layout, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('audioChannelLayout') } } - # The bit depth of the video stream + # Bit depth of the video stream. field :bit_depth, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('bitDepth') } } - # The bitrate of the stream in kbps + # Bitrate of the stream. field :bitrate, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('bitrate') } } - # Indicates if the subtitle stream can auto-sync + # Indicates if the stream can auto-sync. field :can_auto_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('canAutoSync') } } - # Number of audio channels (for audio streams) + # Number of audio channels (for audio streams). field :channels, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('channels') } } - # The chroma location of the video stream + # Chroma sample location. field :chroma_location, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('chromaLocation') } } - # The chroma subsampling format + # Chroma subsampling format. field :chroma_subsampling, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('chromaSubsampling') } } field :closed_captions, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('closedCaptions') } } - # The coded height of the video stream + # Coded video height. field :coded_height, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('codedHeight') } } - # The coded width of the video stream + # Coded video width. field :coded_width, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('codedWidth') } } - # The color primaries of the video stream + # Color primaries used. field :color_primaries, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('colorPrimaries') } } - # The color range of the video stream + # Color range (e.g., tv). field :color_range, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('colorRange') } } - # The color space of the video stream + # Color space. field :color_space, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('colorSpace') } } - # The transfer characteristics (TRC) of the video stream + # Color transfer characteristics. field :color_trc, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('colorTrc') } } - # Indicates if this is the default stream + # Indicates if this stream is default. field :default, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('default') } } - # Display title of the stream - field :display_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('displayTitle') } } + # Dolby Vision BL compatibility ID. + field :dovibl_compat_id, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('DOVIBLCompatID') } } + # Indicates if Dolby Vision BL is present. + field :dovibl_present, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('DOVIBLPresent') } } + # Indicates if Dolby Vision EL is present. + field :doviel_present, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('DOVIELPresent') } } + # Dolby Vision level. + field :dovi_level, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('DOVILevel') } } + # Indicates if Dolby Vision is present. + field :dovi_present, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('DOVIPresent') } } + # Dolby Vision profile. + field :dovi_profile, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('DOVIProfile') } } + # Indicates if Dolby Vision RPU is present. + field :dovirpu_present, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('DOVIRPUPresent') } } + # Dolby Vision version. + field :dovi_version, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('DOVIVersion') } } + # Indicates if the stream is a dub. + field :dub, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('dub') } } field :embedded_in_video, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('embeddedInVideo') } } - # Extended display title of the stream - field :extended_display_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('extendedDisplayTitle') } } - # The frame rate of the video stream - field :frame_rate, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('frameRate') } } - # Indicates if the stream has a scaling matrix - field :has_scaling_matrix, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('hasScalingMatrix') } } + field :forced, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('forced') } } + # Frame rate of the stream. + field :frame_rate, T.nilable(::Float), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('frameRate') } } + + field :has_scaling_matrix, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('hasScalingMatrix') } } + # Indicates whether header compression is enabled. + field :header_compression, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('headerCompression') } } + # Indicates if the stream is for the hearing impaired. field :hearing_impaired, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('hearingImpaired') } } - # The height of the video stream + # Height of the video stream. field :height, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('height') } } - # The language of the stream (for audio/subtitle streams) + # Language of the stream. field :language, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('language') } } - # Language code of the stream + # ISO language code. field :language_code, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('languageCode') } } - # Language tag of the stream + # Language tag (e.g., en). field :language_tag, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('languageTag') } } - # The level of the video codec + # Video level. field :level, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('level') } } - # The profile of the video codec + # Indicates if this is the original stream. + field :original, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('original') } } + # Video profile. field :profile, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('profile') } } - # Number of reference frames + # Number of reference frames. field :ref_frames, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('refFrames') } } - # Sampling rate of the audio stream in Hz + # Sampling rate for the audio stream. field :sampling_rate, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('samplingRate') } } - # The scan type (progressive or interlaced) + field :scan_type, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('scanType') } } - # Indicates if the stream is selected + # Indicates if this stream is selected (applicable for audio streams). field :selected, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('selected') } } - # The identifier of the video stream - field :stream_identifier, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('streamIdentifier') } } - # Title of the subtitle track (for subtitle streams) + # Optional title for the stream (e.g., language variant). field :title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('title') } } - # The width of the video stream + # Width of the video stream. field :width, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('width') } } - sig { params(codec: ::String, id: ::Integer, index: ::Integer, stream_type: ::Integer, audio_channel_layout: T.nilable(::String), bit_depth: T.nilable(::Integer), bitrate: T.nilable(::Integer), can_auto_sync: T.nilable(T::Boolean), channels: T.nilable(::Integer), chroma_location: T.nilable(::String), chroma_subsampling: T.nilable(::String), closed_captions: T.nilable(T::Boolean), coded_height: T.nilable(::Integer), coded_width: T.nilable(::Integer), color_primaries: T.nilable(::String), color_range: T.nilable(::String), color_space: T.nilable(::String), color_trc: T.nilable(::String), default: T.nilable(T::Boolean), display_title: T.nilable(::String), embedded_in_video: T.nilable(::String), extended_display_title: T.nilable(::String), frame_rate: T.nilable(::Float), has_scaling_matrix: T.nilable(T::Boolean), hearing_impaired: T.nilable(T::Boolean), height: T.nilable(::Integer), language: T.nilable(::String), language_code: T.nilable(::String), language_tag: T.nilable(::String), level: T.nilable(::Integer), profile: T.nilable(::String), ref_frames: T.nilable(::Integer), sampling_rate: T.nilable(::Integer), scan_type: T.nilable(::String), selected: T.nilable(T::Boolean), stream_identifier: T.nilable(::String), title: T.nilable(::String), width: T.nilable(::Integer)).void } - def initialize(codec: nil, id: nil, index: nil, stream_type: nil, audio_channel_layout: nil, bit_depth: nil, bitrate: nil, can_auto_sync: nil, channels: nil, chroma_location: nil, chroma_subsampling: nil, closed_captions: nil, coded_height: nil, coded_width: nil, color_primaries: nil, color_range: nil, color_space: nil, color_trc: nil, default: nil, display_title: nil, embedded_in_video: nil, extended_display_title: nil, frame_rate: nil, has_scaling_matrix: nil, hearing_impaired: nil, height: nil, language: nil, language_code: nil, language_tag: nil, level: nil, profile: nil, ref_frames: nil, sampling_rate: nil, scan_type: nil, selected: nil, stream_identifier: nil, title: nil, width: nil) + sig { params(codec: ::String, display_title: ::String, extended_display_title: ::String, id: ::Integer, index: ::Integer, stream_type: ::Integer, audio_channel_layout: T.nilable(::String), bit_depth: T.nilable(::Integer), bitrate: T.nilable(::Integer), can_auto_sync: T.nilable(T::Boolean), channels: T.nilable(::Integer), chroma_location: T.nilable(::String), chroma_subsampling: T.nilable(::String), closed_captions: T.nilable(T::Boolean), coded_height: T.nilable(::Integer), coded_width: T.nilable(::Integer), color_primaries: T.nilable(::String), color_range: T.nilable(::String), color_space: T.nilable(::String), color_trc: T.nilable(::String), default: T.nilable(T::Boolean), dovibl_compat_id: T.nilable(::Integer), dovibl_present: T.nilable(T::Boolean), doviel_present: T.nilable(T::Boolean), dovi_level: T.nilable(::Integer), dovi_present: T.nilable(T::Boolean), dovi_profile: T.nilable(::Integer), dovirpu_present: T.nilable(T::Boolean), dovi_version: T.nilable(::String), dub: T.nilable(T::Boolean), embedded_in_video: T.nilable(::String), forced: T.nilable(T::Boolean), frame_rate: T.nilable(::Float), has_scaling_matrix: T.nilable(T::Boolean), header_compression: T.nilable(T::Boolean), hearing_impaired: T.nilable(T::Boolean), height: T.nilable(::Integer), language: T.nilable(::String), language_code: T.nilable(::String), language_tag: T.nilable(::String), level: T.nilable(::Integer), original: T.nilable(T::Boolean), profile: T.nilable(::String), ref_frames: T.nilable(::Integer), sampling_rate: T.nilable(::Integer), scan_type: T.nilable(::String), selected: T.nilable(T::Boolean), title: T.nilable(::String), width: T.nilable(::Integer)).void } + def initialize(codec: nil, display_title: nil, extended_display_title: nil, id: nil, index: nil, stream_type: nil, audio_channel_layout: nil, bit_depth: nil, bitrate: nil, can_auto_sync: nil, channels: nil, chroma_location: nil, chroma_subsampling: nil, closed_captions: nil, coded_height: nil, coded_width: nil, color_primaries: nil, color_range: nil, color_space: nil, color_trc: nil, default: nil, dovibl_compat_id: nil, dovibl_present: nil, doviel_present: nil, dovi_level: nil, dovi_present: nil, dovi_profile: nil, dovirpu_present: nil, dovi_version: nil, dub: nil, embedded_in_video: nil, forced: nil, frame_rate: nil, has_scaling_matrix: nil, header_compression: nil, hearing_impaired: nil, height: nil, language: nil, language_code: nil, language_tag: nil, level: nil, original: nil, profile: nil, ref_frames: nil, sampling_rate: nil, scan_type: nil, selected: nil, title: nil, width: nil) @codec = codec + @display_title = display_title + @extended_display_title = extended_display_title @id = id @index = index @stream_type = stream_type @@ -110,23 +134,32 @@ module PlexRubySDK @color_space = color_space @color_trc = color_trc @default = default - @display_title = display_title + @dovibl_compat_id = dovibl_compat_id + @dovibl_present = dovibl_present + @doviel_present = doviel_present + @dovi_level = dovi_level + @dovi_present = dovi_present + @dovi_profile = dovi_profile + @dovirpu_present = dovirpu_present + @dovi_version = dovi_version + @dub = dub @embedded_in_video = embedded_in_video - @extended_display_title = extended_display_title + @forced = forced @frame_rate = frame_rate @has_scaling_matrix = has_scaling_matrix + @header_compression = header_compression @hearing_impaired = hearing_impaired @height = height @language = language @language_code = language_code @language_tag = language_tag @level = level + @original = original @profile = profile @ref_frames = ref_frames @sampling_rate = sampling_rate @scan_type = scan_type @selected = selected - @stream_identifier = stream_identifier @title = title @width = width end diff --git a/lib/plex_ruby_sdk/models/operations/writer.rb b/lib/plex_ruby_sdk/models/operations/writer.rb index 4e5ae11..aed8992 100644 --- a/lib/plex_ruby_sdk/models/operations/writer.rb +++ b/lib/plex_ruby_sdk/models/operations/writer.rb @@ -11,13 +11,22 @@ module PlexRubySDK class Writer < ::Crystalline::FieldAugmented extend T::Sig - - field :tag, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } } + # The filter string used to query this writer. + field :filter, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('filter') } } + # Unique identifier for the writer. + field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } } + # The role of Writer + field :tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } } + # A unique key associated with the writers tag, used for internal identification. + field :tag_key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tagKey') } } - sig { params(tag: T.nilable(::String)).void } - def initialize(tag: nil) + sig { params(filter: ::String, id: ::Integer, tag: ::String, tag_key: T.nilable(::String)).void } + def initialize(filter: nil, id: nil, tag: nil, tag_key: nil) + @filter = filter + @id = id @tag = tag + @tag_key = tag_key end end end diff --git a/lib/plex_ruby_sdk/sdkconfiguration.rb b/lib/plex_ruby_sdk/sdkconfiguration.rb index 43e2849..e3c7e9f 100644 --- a/lib/plex_ruby_sdk/sdkconfiguration.rb +++ b/lib/plex_ruby_sdk/sdkconfiguration.rb @@ -45,9 +45,9 @@ module PlexRubySDK end @language = 'ruby' @openapi_doc_version = '0.0.3' - @sdk_version = '0.7.6' + @sdk_version = '0.7.7' @gen_version = '2.545.4' - @user_agent = 'speakeasy-sdk/ruby 0.7.6 2.545.4 0.0.3 plex_ruby_sdk' + @user_agent = 'speakeasy-sdk/ruby 0.7.7 2.545.4 0.0.3 plex_ruby_sdk' end sig { returns([String, T::Hash[Symbol, String]]) } diff --git a/plex_ruby_sdk.gemspec b/plex_ruby_sdk.gemspec index 348a6e0..8dfb9a0 100644 --- a/plex_ruby_sdk.gemspec +++ b/plex_ruby_sdk.gemspec @@ -4,7 +4,7 @@ $LOAD_PATH.push File.expand_path('lib', __dir__) Gem::Specification.new do |s| s.name = 'plex_ruby_sdk' - s.version = '0.7.6' + s.version = '0.7.7' s.platform = Gem::Platform::RUBY s.licenses = ['Apache-2.0'] s.summary = ''