diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 532a87e..9afdc1e 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: 01a51eb2-5d90-4a24-b154-68e491d02c36 management: - docChecksum: 71aea44b27d124ce7bc7da09090777b5 + docChecksum: 68de03e6e877c4fc50ebfdd47bb117ac docVersion: 0.0.3 speakeasyVersion: 1.513.4 generationVersion: 2.545.4 - releaseVersion: 0.14.0 - configChecksum: 8d63b5b0e5999503bc583daf8b07e261 + releaseVersion: 0.14.1 + configChecksum: af81ecc743738241e77243f9186ee750 repoURL: https://github.com/LukeHagar/plexphp.git repoSubDirectory: . installationURL: https://github.com/LukeHagar/plexphp @@ -158,10 +158,6 @@ generatedFiles: - docs/Models/Errors/GetMyPlexAccountErrors.md - docs/Models/Errors/GetMyPlexAccountServerErrors.md - docs/Models/Errors/GetMyPlexAccountUnauthorized.md - - docs/Models/Errors/GetOnDeckBadRequest.md - - docs/Models/Errors/GetOnDeckErrors.md - - docs/Models/Errors/GetOnDeckLibraryErrors.md - - docs/Models/Errors/GetOnDeckUnauthorized.md - docs/Models/Errors/GetPinBadRequest.md - docs/Models/Errors/GetPinErrors.md - docs/Models/Errors/GetPlaylistBadRequest.md @@ -428,6 +424,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/GetAllMediaLibraryLibraryOptimizedForStreaming.md @@ -521,12 +518,9 @@ 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/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 @@ -543,9 +537,7 @@ 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/GetLibraryItemsMetaDataRating.md - docs/Models/Operations/GetLibraryItemsMetadata.md - docs/Models/Operations/GetLibraryItemsOperator.md - docs/Models/Operations/GetLibraryItemsOptimizedForStreaming.md @@ -556,7 +548,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 @@ -575,11 +566,14 @@ generatedFiles: - docs/Models/Operations/GetMediaMetaDataMetadata.md - docs/Models/Operations/GetMediaMetaDataOptimizedForStreaming.md - docs/Models/Operations/GetMediaMetaDataOptimizedForStreaming1.md + - docs/Models/Operations/GetMediaMetaDataOptimizedForStreamingLibrary1.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/GetMediaMetaDataWriter.md @@ -596,14 +590,6 @@ generatedFiles: - docs/Models/Operations/GetMetadataChildrenResponseBody.md - docs/Models/Operations/GetMyPlexAccountResponse.md - docs/Models/Operations/GetMyPlexAccountResponseBody.md - - docs/Models/Operations/GetOnDeckGuids.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/GetPinAuthPinContainer.md - docs/Models/Operations/GetPinRequest.md - docs/Models/Operations/GetPinResponse.md @@ -655,6 +641,8 @@ generatedFiles: - docs/Models/Operations/GetRecentlyAddedMediaContainer.md - docs/Models/Operations/GetRecentlyAddedMetadata.md - docs/Models/Operations/GetRecentlyAddedOperator.md + - docs/Models/Operations/GetRecentlyAddedOptimizedForStreaming.md + - docs/Models/Operations/GetRecentlyAddedOptimizedForStreaming1.md - docs/Models/Operations/GetRecentlyAddedRequest.md - docs/Models/Operations/GetRecentlyAddedResponse.md - docs/Models/Operations/GetRecentlyAddedResponseBody.md @@ -880,6 +868,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 @@ -1167,12 +1156,6 @@ generatedFiles: - src/Models/Errors/GetMyPlexAccountServerErrors.php - src/Models/Errors/GetMyPlexAccountUnauthorized.php - src/Models/Errors/GetMyPlexAccountUnauthorizedThrowable.php - - src/Models/Errors/GetOnDeckBadRequest.php - - src/Models/Errors/GetOnDeckBadRequestThrowable.php - - src/Models/Errors/GetOnDeckErrors.php - - src/Models/Errors/GetOnDeckLibraryErrors.php - - src/Models/Errors/GetOnDeckUnauthorized.php - - src/Models/Errors/GetOnDeckUnauthorizedThrowable.php - src/Models/Errors/GetPinBadRequest.php - src/Models/Errors/GetPinBadRequestThrowable.php - src/Models/Errors/GetPinErrors.php @@ -1534,6 +1517,7 @@ generatedFiles: - src/Models/Operations/GetAllMediaLibraryFieldType.php - src/Models/Operations/GetAllMediaLibraryFilter.php - src/Models/Operations/GetAllMediaLibraryGenre.php + - src/Models/Operations/GetAllMediaLibraryGuids.php - src/Models/Operations/GetAllMediaLibraryHasThumbnail.php - src/Models/Operations/GetAllMediaLibraryImage.php - src/Models/Operations/GetAllMediaLibraryLibraryResponseType.php @@ -1625,12 +1609,9 @@ generatedFiles: - src/Models/Operations/GetLibraryItemsCountry.php - src/Models/Operations/GetLibraryItemsDefaultDirection.php - src/Models/Operations/GetLibraryItemsDirector.php - - src/Models/Operations/GetLibraryItemsEnableCreditsMarkerGeneration.php - - src/Models/Operations/GetLibraryItemsEpisodeSort.php - src/Models/Operations/GetLibraryItemsField.php - src/Models/Operations/GetLibraryItemsFieldType.php - src/Models/Operations/GetLibraryItemsFilter.php - - src/Models/Operations/GetLibraryItemsFlattenSeasons.php - src/Models/Operations/GetLibraryItemsGenre.php - src/Models/Operations/GetLibraryItemsHasThumbnail.php - src/Models/Operations/GetLibraryItemsImage.php @@ -1647,9 +1628,7 @@ generatedFiles: - src/Models/Operations/GetLibraryItemsLocation.php - src/Models/Operations/GetLibraryItemsMedia.php - src/Models/Operations/GetLibraryItemsMediaContainer.php - - src/Models/Operations/GetLibraryItemsMediaGuid.php - src/Models/Operations/GetLibraryItemsMeta.php - - src/Models/Operations/GetLibraryItemsMetaDataRating.php - src/Models/Operations/GetLibraryItemsMetadata.php - src/Models/Operations/GetLibraryItemsOperator.php - src/Models/Operations/GetLibraryItemsOptimizedForStreaming.php @@ -1660,7 +1639,6 @@ generatedFiles: - src/Models/Operations/GetLibraryItemsResponse.php - src/Models/Operations/GetLibraryItemsResponseBody.php - src/Models/Operations/GetLibraryItemsRole.php - - src/Models/Operations/GetLibraryItemsShowOrdering.php - src/Models/Operations/GetLibraryItemsSort.php - src/Models/Operations/GetLibraryItemsStream.php - src/Models/Operations/GetLibraryItemsType.php @@ -1677,11 +1655,14 @@ generatedFiles: - src/Models/Operations/GetMediaMetaDataMediaContainer.php - src/Models/Operations/GetMediaMetaDataMetadata.php - src/Models/Operations/GetMediaMetaDataOptimizedForStreaming1.php + - src/Models/Operations/GetMediaMetaDataOptimizedForStreamingLibrary1.php - src/Models/Operations/GetMediaMetaDataPart.php + - src/Models/Operations/GetMediaMetaDataProducer.php - src/Models/Operations/GetMediaMetaDataRequest.php - src/Models/Operations/GetMediaMetaDataResponse.php - src/Models/Operations/GetMediaMetaDataResponseBody.php - src/Models/Operations/GetMediaMetaDataRole.php + - src/Models/Operations/GetMediaMetaDataSimilar.php - src/Models/Operations/GetMediaMetaDataStream.php - src/Models/Operations/GetMediaMetaDataUltraBlurColors.php - src/Models/Operations/GetMediaMetaDataWriter.php @@ -1698,14 +1679,6 @@ generatedFiles: - src/Models/Operations/GetMetadataChildrenResponseBody.php - src/Models/Operations/GetMyPlexAccountResponse.php - src/Models/Operations/GetMyPlexAccountResponseBody.php - - src/Models/Operations/GetOnDeckGuids.php - - src/Models/Operations/GetOnDeckMedia.php - - src/Models/Operations/GetOnDeckMediaContainer.php - - src/Models/Operations/GetOnDeckMetadata.php - - src/Models/Operations/GetOnDeckPart.php - - src/Models/Operations/GetOnDeckResponse.php - - src/Models/Operations/GetOnDeckResponseBody.php - - src/Models/Operations/GetOnDeckStream.php - src/Models/Operations/GetPinAuthPinContainer.php - src/Models/Operations/GetPinRequest.php - src/Models/Operations/GetPinResponse.php @@ -1757,6 +1730,7 @@ generatedFiles: - src/Models/Operations/GetRecentlyAddedMediaContainer.php - src/Models/Operations/GetRecentlyAddedMetadata.php - src/Models/Operations/GetRecentlyAddedOperator.php + - src/Models/Operations/GetRecentlyAddedOptimizedForStreaming1.php - src/Models/Operations/GetRecentlyAddedRequest.php - src/Models/Operations/GetRecentlyAddedResponse.php - src/Models/Operations/GetRecentlyAddedResponseBody.php @@ -1936,7 +1910,6 @@ generatedFiles: - src/Models/Operations/One.php - src/Models/Operations/OnlyTransient.php - src/Models/Operations/Operator.php - - src/Models/Operations/OptimizedForStreaming.php - src/Models/Operations/OptimizedForStreaming1.php - src/Models/Operations/Owned.php - src/Models/Operations/Part.php @@ -1982,6 +1955,7 @@ generatedFiles: - src/Models/Operations/QueryParamOnlyTransient.php - src/Models/Operations/QueryParamSmart.php - src/Models/Operations/QueryParamType.php + - src/Models/Operations/Rating.php - src/Models/Operations/Ratings.php - src/Models/Operations/Release.php - src/Models/Operations/ResponseBody.php @@ -2454,7 +2428,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": 1, "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": true, "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"}, {"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": 0, "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"}], "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: @@ -3158,7 +3132,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": @@ -3179,7 +3153,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 de40f2c..ca5b40c 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -15,7 +15,7 @@ generation: oAuth2ClientCredentialsEnabled: false oAuth2PasswordEnabled: false php: - version: 0.14.0 + version: 0.14.1 additionalDependencies: autoload: {} autoload-dev: {} diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 140ce88..d31357e 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-1741392513 + - speakeasy-sdk-regen-1741565346 targets: plexphp: source: plexapi sourceNamespace: plexapi - sourceRevisionDigest: sha256:bf7001af017ce5072c503bfbaf60793f94549163b517489dc53e4f7b685659c0 - sourceBlobDigest: sha256:ed2b29043c84f32d2efa92a126083fd9a81644a7ce9c6ac86d9aeb3493cbd6f8 + sourceRevisionDigest: sha256:2066ba94b55e21d651c79003e3cf402fb77c52a0969fc52310b3383fbed038f4 + sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351 codeSamplesNamespace: code-samples-php-plexphp - codeSamplesRevisionDigest: sha256:01eb8c50402af5d52e723a8b01100b282a41088adf944ba9887c06ded6a81c76 + codeSamplesRevisionDigest: sha256:c1760cfece394f08d2810dd5979ab885b155e54cf70571e06bec8d0b254d7efd workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README.md b/README.md index 99628e4..087e683 100644 --- a/README.md +++ b/README.md @@ -184,7 +184,6 @@ if ($response->object !== null) { * [getSearchLibrary](docs/sdks/library/README.md#getsearchlibrary) - Search Library * [getFileHash](docs/sdks/library/README.md#getfilehash) - Get Hash Value * [getMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children -* [getOnDeck](docs/sdks/library/README.md#getondeck) - Get On Deck * [getTopWatchedContent](docs/sdks/library/README.md#gettopwatchedcontent) - Get Top Watched Content ### [log](docs/sdks/log/README.md) diff --git a/RELEASES.md b/RELEASES.md index ccb1b5b..a7ca0be 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -802,4 +802,14 @@ Based on: ### Generated - [php v0.14.0] . ### Releases -- [Composer v0.14.0] https://packagist.org/packages/lukehagar/plex-api#v0.14.0 - . \ No newline at end of file +- [Composer v0.14.0] https://packagist.org/packages/lukehagar/plex-api#v0.14.0 - . + +## 2025-03-10 00:08:50 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.513.4 (2.545.4) https://github.com/speakeasy-api/speakeasy +### Generated +- [php v0.14.1] . +### Releases +- [Composer v0.14.1] https://packagist.org/packages/lukehagar/plex-api#v0.14.1 - . \ No newline at end of file diff --git a/codeSamples.yaml b/codeSamples.yaml index f705f03..6f8cf98 100644 --- a/codeSamples.yaml +++ b/codeSamples.yaml @@ -906,33 +906,6 @@ actions: if ($response->bytes !== null) { // handle response } - - target: $["paths"]["/library/onDeck"]["get"] - update: - x-codeSamples: - - lang: php - label: getOnDeck - source: |- - declare(strict_types=1); - - require 'vendor/autoload.php'; - - use LukeHagar\Plex_API; - - $sdk = Plex_API\PlexAPI::builder() - ->setSecurity( - '' - ) - ->build(); - - - - $response = $sdk->library->getOnDeck( - - ); - - if ($response->object !== null) { - // handle response - } - target: $["paths"]["/library/recentlyAdded"]["get"] update: x-codeSamples: diff --git a/docs/Models/Errors/GetOnDeckBadRequest.md b/docs/Models/Errors/GetOnDeckBadRequest.md deleted file mode 100644 index 49e0b72..0000000 --- a/docs/Models/Errors/GetOnDeckBadRequest.md +++ /dev/null @@ -1,11 +0,0 @@ -# GetOnDeckBadRequest - -Bad Request - A parameter was not specified, or was specified incorrectly. - - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `errors` | array<[Errors\GetOnDeckErrors](../../Models/Errors/GetOnDeckErrors.md)> | :heavy_minus_sign: | N/A | -| `rawResponse` | [\Psr\Http\Message\ResponseInterface](https://www.php-fig.org/psr/psr-7/#33-psrhttpmessageresponseinterface) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/Models/Errors/GetOnDeckErrors.md b/docs/Models/Errors/GetOnDeckErrors.md deleted file mode 100644 index e83ecdb..0000000 --- a/docs/Models/Errors/GetOnDeckErrors.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetOnDeckErrors - - -## Fields - -| Field | Type | Required | Description | Example | -| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| `code` | *?int* | :heavy_minus_sign: | N/A | 1000 | -| `message` | *?string* | :heavy_minus_sign: | N/A | X-Plex-Client-Identifier is missing | -| `status` | *?int* | :heavy_minus_sign: | N/A | 400 | \ No newline at end of file diff --git a/docs/Models/Errors/GetOnDeckLibraryErrors.md b/docs/Models/Errors/GetOnDeckLibraryErrors.md deleted file mode 100644 index de4436e..0000000 --- a/docs/Models/Errors/GetOnDeckLibraryErrors.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetOnDeckLibraryErrors - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | -| `code` | *?int* | :heavy_minus_sign: | N/A | 1001 | -| `message` | *?string* | :heavy_minus_sign: | N/A | User could not be authenticated | -| `status` | *?int* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/Models/Errors/GetOnDeckUnauthorized.md b/docs/Models/Errors/GetOnDeckUnauthorized.md deleted file mode 100644 index 442b3cd..0000000 --- a/docs/Models/Errors/GetOnDeckUnauthorized.md +++ /dev/null @@ -1,11 +0,0 @@ -# GetOnDeckUnauthorized - -Unauthorized - Returned if the X-Plex-Token is missing from the header or query. - - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `errors` | array<[Errors\GetOnDeckLibraryErrors](../../Models/Errors/GetOnDeckLibraryErrors.md)> | :heavy_minus_sign: | N/A | -| `rawResponse` | [\Psr\Http\Message\ResponseInterface](https://www.php-fig.org/psr/psr-7/#33-psrhttpmessageresponseinterface) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/Models/Operations/Collection.md b/docs/Models/Operations/Collection.md index d4a27a3..745c5ea 100644 --- a/docs/Models/Operations/Collection.md +++ b/docs/Models/Operations/Collection.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `tag` | *?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 920bed6..7d78b84 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` | *?string* | :heavy_minus_sign: | N/A | United States of America | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| `id` | *int* | :heavy_check_mark: | N/A | 259 | +| `tag` | *string* | :heavy_check_mark: | The country of origin of this media item | United States of America | +| `filter` | *?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 d51adbb..bda44cf 100644 --- a/docs/Models/Operations/Director.md +++ b/docs/Models/Operations/Director.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `tag` | *?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 c8b2cb8..92e53b2 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` | *?string* | :heavy_minus_sign: | N/A | Adventure | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | +| `id` | *int* | :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 306f8cf..d3222ff 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..87fd56e --- /dev/null +++ b/docs/Models/Operations/GetAllMediaLibraryGuids.md @@ -0,0 +1,8 @@ +# GetAllMediaLibraryGuids + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `id` | *?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 e5e11ec..45e4667 100644 --- a/docs/Models/Operations/GetAllMediaLibraryMedia.md +++ b/docs/Models/Operations/GetAllMediaLibraryMedia.md @@ -3,24 +3,24 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `id` | *int* | :heavy_check_mark: | Unique media identifier. | 387322 | -| `hasVoiceActivity` | *bool* | :heavy_check_mark: | Indicates whether voice activity is detected. | false | -| `part` | array<[Operations\GetAllMediaLibraryPart](../../Models/Operations/GetAllMediaLibraryPart.md)> | :heavy_check_mark: | An array of parts for this media item. | | -| `duration` | *?int* | :heavy_minus_sign: | Duration of the media in milliseconds. | 9610350 | -| `bitrate` | *?int* | :heavy_minus_sign: | Bitrate in bits per second. | 25512 | -| `width` | *?int* | :heavy_minus_sign: | Video width in pixels. | 3840 | -| `height` | *?int* | :heavy_minus_sign: | Video height in pixels. | 1602 | -| `aspectRatio` | *?float* | :heavy_minus_sign: | Aspect ratio of the video. | 2.35 | -| `audioChannels` | *?int* | :heavy_minus_sign: | Number of audio channels. | 6 | -| `displayOffset` | *?int* | :heavy_minus_sign: | N/A | 50 | -| `audioCodec` | *?string* | :heavy_minus_sign: | Audio codec used. | eac3 | -| `videoCodec` | *?string* | :heavy_minus_sign: | Video codec used. | hevc | -| `videoResolution` | *?string* | :heavy_minus_sign: | Video resolution (e.g., 4k). | 4k | -| `container` | *?string* | :heavy_minus_sign: | File container type. | mkv | -| `videoFrameRate` | *?string* | :heavy_minus_sign: | Frame rate of the video. Values found include NTSC, PAL, 24p
| 24p | -| `videoProfile` | *?string* | :heavy_minus_sign: | Video profile (e.g., main 10). | main 10 | -| `audioProfile` | *?string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | -| `optimizedForStreaming` | [Operations\One\|bool\|null](../../Models/Operations/GetAllMediaLibraryOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | -| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | false | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | Unique media identifier. | 387322 | +| `duration` | *?int* | :heavy_minus_sign: | Duration of the media in milliseconds. | 9610350 | +| `bitrate` | *?int* | :heavy_minus_sign: | Bitrate in bits per second. | 25512 | +| `width` | *?int* | :heavy_minus_sign: | Video width in pixels. | 3840 | +| `height` | *?int* | :heavy_minus_sign: | Video height in pixels. | 1602 | +| `aspectRatio` | *?float* | :heavy_minus_sign: | Aspect ratio of the video. | 2.35 | +| `audioChannels` | *?int* | :heavy_minus_sign: | Number of audio channels. | 6 | +| `displayOffset` | *?int* | :heavy_minus_sign: | N/A | 50 | +| `audioCodec` | *?string* | :heavy_minus_sign: | Audio codec used. | eac3 | +| `videoCodec` | *?string* | :heavy_minus_sign: | Video codec used. | hevc | +| `videoResolution` | *?string* | :heavy_minus_sign: | Video resolution (e.g., 4k). | 4k | +| `container` | *?string* | :heavy_minus_sign: | File container type. | mkv | +| `videoFrameRate` | *?string* | :heavy_minus_sign: | Frame rate of the video. Values found include NTSC, PAL, 24p
| 24p | +| `videoProfile` | *?string* | :heavy_minus_sign: | Video profile (e.g., main 10). | main 10 | +| `hasVoiceActivity` | *?bool* | :heavy_minus_sign: | Indicates whether voice activity is detected. | false | +| `audioProfile` | *?string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | +| `optimizedForStreaming` | [Operations\OptimizedForStreaming1\|bool\|null](../../Models/Operations/GetAllMediaLibraryOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | +| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | false | +| `part` | array<[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 a771265..0814c13 100644 --- a/docs/Models/Operations/GetAllMediaLibraryMetadata.md +++ b/docs/Models/Operations/GetAllMediaLibraryMetadata.md @@ -18,7 +18,6 @@ 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 | | `audienceRating` | *float* | :heavy_check_mark: | The audience rating for the media item. | 9.2 | -| `year` | *int* | :heavy_check_mark: | 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 | @@ -31,6 +30,7 @@ Unknown | `addedAt` | *int* | :heavy_check_mark: | N/A | 1556281940 | | `studio` | *?string* | :heavy_minus_sign: | The studio that produced the media item. | 20th Century Studios | | `contentRating` | *?string* | :heavy_minus_sign: | The content rating for the media item. | PG-13 | +| `year` | *?int* | :heavy_minus_sign: | The release year of the media item. | 2022 | | `leafCount` | *?int* | :heavy_minus_sign: | The number of leaf items (end nodes) under this media item. | 14 | | `viewedLeafCount` | *?int* | :heavy_minus_sign: | The number of leaf items that have been viewed. | 0 | | `updatedAt` | *?int* | :heavy_minus_sign: | Unix epoch datetime in seconds | 1556281940 | @@ -70,5 +70,5 @@ Unknown | `director` | array<[Operations\GetAllMediaLibraryDirector](../../Models/Operations/GetAllMediaLibraryDirector.md)> | :heavy_minus_sign: | N/A | | | `writer` | array<[Operations\GetAllMediaLibraryWriter](../../Models/Operations/GetAllMediaLibraryWriter.md)> | :heavy_minus_sign: | N/A | | | `role` | array<[Operations\GetAllMediaLibraryRole](../../Models/Operations/GetAllMediaLibraryRole.md)> | :heavy_minus_sign: | N/A | | -| `guids` | array<[Operations\Guids](../../Models/Operations/Guids.md)> | :heavy_minus_sign: | N/A | | +| `guids` | array<[Operations\GetAllMediaLibraryGuids](../../Models/Operations/GetAllMediaLibraryGuids.md)> | :heavy_minus_sign: | N/A | | | `collection` | array<[Operations\GetAllMediaLibraryCollection](../../Models/Operations/GetAllMediaLibraryCollection.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/GetAllMediaLibraryOptimizedForStreaming.md b/docs/Models/Operations/GetAllMediaLibraryOptimizedForStreaming.md index cc48e21..59caf18 100644 --- a/docs/Models/Operations/GetAllMediaLibraryOptimizedForStreaming.md +++ b/docs/Models/Operations/GetAllMediaLibraryOptimizedForStreaming.md @@ -5,13 +5,13 @@ Has this media been optimized for streaming. NOTE: This can be 0, 1, false or tr ## Supported Types -### `Operations\One` +### `Operations\OptimizedForStreaming1` ```php /** -* @var Operations\One +* @var Operations\OptimizedForStreaming1 */ -Operations\One $value = /* values here */ +Operations\OptimizedForStreaming1 $value = /* values here */ ``` ### `bool` diff --git a/docs/Models/Operations/GetAllMediaLibraryRole.md b/docs/Models/Operations/GetAllMediaLibraryRole.md index e8f606f..22a59d1 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 f56b3fd..71b10e0 100644 --- a/docs/Models/Operations/GetAllMediaLibraryStream.md +++ b/docs/Models/Operations/GetAllMediaLibraryStream.md @@ -9,13 +9,13 @@ | `streamType` | *int* | :heavy_check_mark: | Stream type (1=video, 2=audio, 3=subtitle). | 1 | | `codec` | *string* | :heavy_check_mark: | Codec used by the stream. | hevc | | `index` | *int* | :heavy_check_mark: | Index of the stream. | 0 | -| `language` | *string* | :heavy_check_mark: | Language of the stream. | English | -| `languageTag` | *string* | :heavy_check_mark: | Language tag (e.g., en). | en | -| `languageCode` | *string* | :heavy_check_mark: | ISO language code. | eng | | `displayTitle` | *string* | :heavy_check_mark: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | | `extendedDisplayTitle` | *string* | :heavy_check_mark: | Extended display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | | `default` | *?bool* | :heavy_minus_sign: | Indicates if this stream is default. | true | | `bitrate` | *?int* | :heavy_minus_sign: | Bitrate of the stream. | 24743 | +| `language` | *?string* | :heavy_minus_sign: | Language of the stream. | English | +| `languageTag` | *?string* | :heavy_minus_sign: | Language tag (e.g., en). | en | +| `languageCode` | *?string* | :heavy_minus_sign: | ISO language code. | eng | | `headerCompression` | *?bool* | :heavy_minus_sign: | Indicates whether header compression is enabled. | true | | `doviblCompatID` | *?int* | :heavy_minus_sign: | Dolby Vision BL compatibility ID. | 1 | | `doviblPresent` | *?bool* | :heavy_minus_sign: | Indicates if Dolby Vision BL is present. | true | @@ -30,6 +30,7 @@ | `chromaSubsampling` | *?string* | :heavy_minus_sign: | Chroma subsampling format. | 4:2:0 | | `codedHeight` | *?int* | :heavy_minus_sign: | Coded video height. | 1608 | | `codedWidth` | *?int* | :heavy_minus_sign: | Coded video width. | 3840 | +| `closedCaptions` | *?bool* | :heavy_minus_sign: | N/A | true | | `colorPrimaries` | *?string* | :heavy_minus_sign: | Color primaries used. | bt2020 | | `colorRange` | *?string* | :heavy_minus_sign: | Color range (e.g., tv). | tv | | `colorSpace` | *?string* | :heavy_minus_sign: | Color space. | bt2020nc | @@ -41,6 +42,7 @@ | `hasScalingMatrix` | *?bool* | :heavy_minus_sign: | N/A | false | | `profile` | *?string* | :heavy_minus_sign: | Video profile. | main 10 | | `scanType` | *?string* | :heavy_minus_sign: | N/A | progressive | +| `embeddedInVideo` | *?string* | :heavy_minus_sign: | N/A | progressive | | `refFrames` | *?int* | :heavy_minus_sign: | Number of reference frames. | 1 | | `width` | *?int* | :heavy_minus_sign: | Width of the video stream. | 3840 | | `selected` | *?bool* | :heavy_minus_sign: | Indicates if this stream is selected (applicable for audio streams). | true | diff --git a/docs/Models/Operations/GetAllMediaLibraryWriter.md b/docs/Models/Operations/GetAllMediaLibraryWriter.md index 1150674..4c55c19 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 5fa5c36..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 | -| ---------------- | ---------------- | -| `LibraryDefault` | -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 5498991..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 | -| ---------------- | ---------------- | -| `LibraryDefault` | -1 | -| `OldestFirst` | 0 | -| `NewestFirst` | 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 534d449..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 | -| ---------------- | ---------------- | -| `LibraryDefault` | -1 | -| `Hide` | 0 | -| `Show` | 1 | \ 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 d0cdc17..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/GetLibraryItemsMetaDataRating.md b/docs/Models/Operations/GetLibraryItemsMetaDataRating.md deleted file mode 100644 index 7a50f97..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/GetLibraryItemsMetadata.md b/docs/Models/Operations/GetLibraryItemsMetadata.md index 601ca74..c52314c 100644 --- a/docs/Models/Operations/GetLibraryItemsMetadata.md +++ b/docs/Models/Operations/GetLibraryItemsMetadata.md @@ -24,10 +24,10 @@ | `year` | *?int* | :heavy_minus_sign: | N/A | 2022 | | `seasonCount` | *?int* | :heavy_minus_sign: | N/A | 2022 | | `tagline` | *?string* | :heavy_minus_sign: | N/A | Return to Pandora. | -| `flattenSeasons` | [?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 | -| `episodeSort` | [?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 | -| `enableCreditsMarkerGeneration` | [?Operations\GetLibraryItemsEnableCreditsMarkerGeneration](../../Models/Operations/GetLibraryItemsEnableCreditsMarkerGeneration.md) | :heavy_minus_sign: | Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). | -1 | -| `showOrdering` | [?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 | +| `flattenSeasons` | [?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 | +| `episodeSort` | [?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 | +| `enableCreditsMarkerGeneration` | [?Operations\EnableCreditsMarkerGeneration](../../Models/Operations/EnableCreditsMarkerGeneration.md) | :heavy_minus_sign: | Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). | -1 | +| `showOrdering` | [?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` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 | | `art` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 | | `banner` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/58683/banner/1703239236 | @@ -55,9 +55,9 @@ | `collection` | array<[Operations\GetLibraryItemsCollection](../../Models/Operations/GetLibraryItemsCollection.md)> | :heavy_minus_sign: | N/A | | | `role` | array<[Operations\GetLibraryItemsRole](../../Models/Operations/GetLibraryItemsRole.md)> | :heavy_minus_sign: | N/A | | | `location` | array<[Operations\GetLibraryItemsLocation](../../Models/Operations/GetLibraryItemsLocation.md)> | :heavy_minus_sign: | N/A | | -| `mediaGuid` | array<[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`.
| | +| `mediaGuid` | array<[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`.
| | | `ultraBlurColors` | [?Operations\GetLibraryItemsUltraBlurColors](../../Models/Operations/GetLibraryItemsUltraBlurColors.md) | :heavy_minus_sign: | N/A | | -| `metaDataRating` | array<[Operations\GetLibraryItemsMetaDataRating](../../Models/Operations/GetLibraryItemsMetaDataRating.md)> | :heavy_minus_sign: | N/A | | +| `metaDataRating` | array<[Operations\MetaDataRating](../../Models/Operations/MetaDataRating.md)> | :heavy_minus_sign: | N/A | | | `image` | array<[Operations\GetLibraryItemsImage](../../Models/Operations/GetLibraryItemsImage.md)> | :heavy_minus_sign: | N/A | | | `titleSort` | *?string* | :heavy_minus_sign: | N/A | Whale | | `viewCount` | *?int* | :heavy_minus_sign: | N/A | 1 | diff --git a/docs/Models/Operations/GetLibraryItemsShowOrdering.md b/docs/Models/Operations/GetLibraryItemsShowOrdering.md deleted file mode 100644 index b7967f8..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 | -| `TmdbAiring` | tmdbAiring | -| `TvdbAired` | aired | -| `TvdbDvd` | dvd | -| `TvdbAbsolute` | absolute | \ No newline at end of file diff --git a/docs/Models/Operations/GetMediaMetaDataLibraryOptimizedForStreaming.md b/docs/Models/Operations/GetMediaMetaDataLibraryOptimizedForStreaming.md index f18b3e9..6cae2d9 100644 --- a/docs/Models/Operations/GetMediaMetaDataLibraryOptimizedForStreaming.md +++ b/docs/Models/Operations/GetMediaMetaDataLibraryOptimizedForStreaming.md @@ -5,13 +5,13 @@ Has this media been optimized for streaming. NOTE: This can be 0, 1, false or tr ## Supported Types -### `Operations\GetMediaMetaDataOptimizedForStreaming1` +### `Operations\GetMediaMetaDataOptimizedForStreamingLibrary1` ```php /** -* @var Operations\GetMediaMetaDataOptimizedForStreaming1 +* @var Operations\GetMediaMetaDataOptimizedForStreamingLibrary1 */ -Operations\GetMediaMetaDataOptimizedForStreaming1 $value = /* values here */ +Operations\GetMediaMetaDataOptimizedForStreamingLibrary1 $value = /* values here */ ``` ### `bool` diff --git a/docs/Models/Operations/GetMediaMetaDataMedia.md b/docs/Models/Operations/GetMediaMetaDataMedia.md index 5fdc84d..cf8f218 100644 --- a/docs/Models/Operations/GetMediaMetaDataMedia.md +++ b/docs/Models/Operations/GetMediaMetaDataMedia.md @@ -3,24 +3,24 @@ ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | -| `id` | *int* | :heavy_check_mark: | Unique media identifier. | 387322 | -| `hasVoiceActivity` | *bool* | :heavy_check_mark: | Indicates whether voice activity is detected. | false | -| `part` | array<[Operations\GetMediaMetaDataPart](../../Models/Operations/GetMediaMetaDataPart.md)> | :heavy_check_mark: | An array of parts for this media item. | | -| `duration` | *?int* | :heavy_minus_sign: | Duration of the media in milliseconds. | 9610350 | -| `bitrate` | *?int* | :heavy_minus_sign: | Bitrate in bits per second. | 25512 | -| `width` | *?int* | :heavy_minus_sign: | Video width in pixels. | 3840 | -| `height` | *?int* | :heavy_minus_sign: | Video height in pixels. | 1602 | -| `aspectRatio` | *?float* | :heavy_minus_sign: | Aspect ratio of the video. | 2.35 | -| `audioChannels` | *?int* | :heavy_minus_sign: | Number of audio channels. | 6 | -| `displayOffset` | *?int* | :heavy_minus_sign: | N/A | 50 | -| `audioCodec` | *?string* | :heavy_minus_sign: | Audio codec used. | eac3 | -| `videoCodec` | *?string* | :heavy_minus_sign: | Video codec used. | hevc | -| `videoResolution` | *?string* | :heavy_minus_sign: | Video resolution (e.g., 4k). | 4k | -| `container` | *?string* | :heavy_minus_sign: | File container type. | mkv | -| `videoFrameRate` | *?string* | :heavy_minus_sign: | Frame rate of the video. Values found include NTSC, PAL, 24p
| 24p | -| `videoProfile` | *?string* | :heavy_minus_sign: | Video profile (e.g., main 10). | main 10 | -| `audioProfile` | *?string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | -| `optimizedForStreaming` | [Operations\OptimizedForStreaming1\|bool\|null](../../Models/Operations/GetMediaMetaDataOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | -| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | false | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | Unique media identifier. | 387322 | +| `duration` | *?int* | :heavy_minus_sign: | Duration of the media in milliseconds. | 9610350 | +| `bitrate` | *?int* | :heavy_minus_sign: | Bitrate in bits per second. | 25512 | +| `width` | *?int* | :heavy_minus_sign: | Video width in pixels. | 3840 | +| `height` | *?int* | :heavy_minus_sign: | Video height in pixels. | 1602 | +| `aspectRatio` | *?float* | :heavy_minus_sign: | Aspect ratio of the video. | 2.35 | +| `audioChannels` | *?int* | :heavy_minus_sign: | Number of audio channels. | 6 | +| `displayOffset` | *?int* | :heavy_minus_sign: | N/A | 50 | +| `audioCodec` | *?string* | :heavy_minus_sign: | Audio codec used. | eac3 | +| `videoCodec` | *?string* | :heavy_minus_sign: | Video codec used. | hevc | +| `videoResolution` | *?string* | :heavy_minus_sign: | Video resolution (e.g., 4k). | 4k | +| `container` | *?string* | :heavy_minus_sign: | File container type. | mkv | +| `videoFrameRate` | *?string* | :heavy_minus_sign: | Frame rate of the video. Values found include NTSC, PAL, 24p
| 24p | +| `videoProfile` | *?string* | :heavy_minus_sign: | Video profile (e.g., main 10). | main 10 | +| `hasVoiceActivity` | *?bool* | :heavy_minus_sign: | Indicates whether voice activity is detected. | false | +| `audioProfile` | *?string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | +| `optimizedForStreaming` | [Operations\GetMediaMetaDataOptimizedForStreaming1\|bool\|null](../../Models/Operations/GetMediaMetaDataOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | +| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | false | +| `part` | array<[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 fade3db..fd9c1a2 100644 --- a/docs/Models/Operations/GetMediaMetaDataMetadata.md +++ b/docs/Models/Operations/GetMediaMetaDataMetadata.md @@ -63,6 +63,6 @@ | `role` | array<[Operations\GetMediaMetaDataRole](../../Models/Operations/GetMediaMetaDataRole.md)> | :heavy_minus_sign: | An array of Actor roles. | | | `director` | array<[Operations\GetMediaMetaDataDirector](../../Models/Operations/GetMediaMetaDataDirector.md)> | :heavy_minus_sign: | An array of Director roles. | | | `writer` | array<[Operations\GetMediaMetaDataWriter](../../Models/Operations/GetMediaMetaDataWriter.md)> | :heavy_minus_sign: | An array of Writer roles. | | -| `producer` | array<[Operations\Producer](../../Models/Operations/Producer.md)> | :heavy_minus_sign: | An array of Writer roles. | | -| `similar` | array<[Operations\Similar](../../Models/Operations/Similar.md)> | :heavy_minus_sign: | An array of similar content objects. | | +| `producer` | array<[Operations\GetMediaMetaDataProducer](../../Models/Operations/GetMediaMetaDataProducer.md)> | :heavy_minus_sign: | An array of Writer roles. | | +| `similar` | array<[Operations\GetMediaMetaDataSimilar](../../Models/Operations/GetMediaMetaDataSimilar.md)> | :heavy_minus_sign: | An array of similar content objects. | | | `location` | array<[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/GetMediaMetaDataOptimizedForStreaming.md b/docs/Models/Operations/GetMediaMetaDataOptimizedForStreaming.md index 13a2aba..1940b33 100644 --- a/docs/Models/Operations/GetMediaMetaDataOptimizedForStreaming.md +++ b/docs/Models/Operations/GetMediaMetaDataOptimizedForStreaming.md @@ -5,13 +5,13 @@ Has this media been optimized for streaming. NOTE: This can be 0, 1, false or tr ## Supported Types -### `Operations\OptimizedForStreaming1` +### `Operations\GetMediaMetaDataOptimizedForStreaming1` ```php /** -* @var Operations\OptimizedForStreaming1 +* @var Operations\GetMediaMetaDataOptimizedForStreaming1 */ -Operations\OptimizedForStreaming1 $value = /* values here */ +Operations\GetMediaMetaDataOptimizedForStreaming1 $value = /* values here */ ``` ### `bool` diff --git a/docs/Models/Operations/GetMediaMetaDataOptimizedForStreamingLibrary1.md b/docs/Models/Operations/GetMediaMetaDataOptimizedForStreamingLibrary1.md new file mode 100644 index 0000000..12f0d93 --- /dev/null +++ b/docs/Models/Operations/GetMediaMetaDataOptimizedForStreamingLibrary1.md @@ -0,0 +1,9 @@ +# GetMediaMetaDataOptimizedForStreamingLibrary1 + + +## Values + +| Name | Value | +| ------ | ------ | +| `Zero` | 0 | +| `One` | 1 | \ No newline at end of file diff --git a/docs/Models/Operations/GetMediaMetaDataPart.md b/docs/Models/Operations/GetMediaMetaDataPart.md index 19674ea..90d8a1f 100644 --- a/docs/Models/Operations/GetMediaMetaDataPart.md +++ b/docs/Models/Operations/GetMediaMetaDataPart.md @@ -3,21 +3,21 @@ ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -| `id` | *int* | :heavy_check_mark: | Unique part identifier. | 418385 | -| `key` | *string* | :heavy_check_mark: | Key to access this part. | /library/parts/418385/1735864239/file.mkv | -| `file` | *string* | :heavy_check_mark: | File path for the part. | /mnt/Movies_1/W/Wicked (2024).mkv | -| `size` | *int* | :heavy_check_mark: | File size in bytes. | 30649952104 | -| `accessible` | *?bool* | :heavy_minus_sign: | Indicates if the part is accessible. | true | -| `exists` | *?bool* | :heavy_minus_sign: | Indicates if the part exists. | true | -| `indexes` | *?string* | :heavy_minus_sign: | N/A | sd | -| `duration` | *?int* | :heavy_minus_sign: | Duration of the part in milliseconds. | 9610350 | -| `packetLength` | *?int* | :heavy_minus_sign: | N/A | 188 | -| `container` | *?string* | :heavy_minus_sign: | Container format of the part. | mkv | -| `videoProfile` | *?string* | :heavy_minus_sign: | Video profile for the part. | main 10 | -| `audioProfile` | *?string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | -| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | false | -| `optimizedForStreaming` | [Operations\GetMediaMetaDataOptimizedForStreaming1\|bool\|null](../../Models/Operations/GetMediaMetaDataLibraryOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | -| `hasThumbnail` | [?Operations\GetMediaMetaDataHasThumbnail](../../Models/Operations/GetMediaMetaDataHasThumbnail.md) | :heavy_minus_sign: | N/A | 1 | -| `stream` | array<[Operations\GetMediaMetaDataStream](../../Models/Operations/GetMediaMetaDataStream.md)> | :heavy_minus_sign: | An array of streams for this part. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | Unique part identifier. | 418385 | +| `key` | *string* | :heavy_check_mark: | Key to access this part. | /library/parts/418385/1735864239/file.mkv | +| `file` | *string* | :heavy_check_mark: | File path for the part. | /mnt/Movies_1/W/Wicked (2024).mkv | +| `size` | *int* | :heavy_check_mark: | File size in bytes. | 30649952104 | +| `accessible` | *?bool* | :heavy_minus_sign: | Indicates if the part is accessible. | true | +| `exists` | *?bool* | :heavy_minus_sign: | Indicates if the part exists. | true | +| `indexes` | *?string* | :heavy_minus_sign: | N/A | sd | +| `duration` | *?int* | :heavy_minus_sign: | Duration of the part in milliseconds. | 9610350 | +| `packetLength` | *?int* | :heavy_minus_sign: | N/A | 188 | +| `container` | *?string* | :heavy_minus_sign: | Container format of the part. | mkv | +| `videoProfile` | *?string* | :heavy_minus_sign: | Video profile for the part. | main 10 | +| `audioProfile` | *?string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | +| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | false | +| `optimizedForStreaming` | [Operations\GetMediaMetaDataOptimizedForStreamingLibrary1\|bool\|null](../../Models/Operations/GetMediaMetaDataLibraryOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | +| `hasThumbnail` | [?Operations\GetMediaMetaDataHasThumbnail](../../Models/Operations/GetMediaMetaDataHasThumbnail.md) | :heavy_minus_sign: | N/A | 1 | +| `stream` | array<[Operations\GetMediaMetaDataStream](../../Models/Operations/GetMediaMetaDataStream.md)> | :heavy_minus_sign: | An array of streams for this part. | | \ 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..2757f8c --- /dev/null +++ b/docs/Models/Operations/GetMediaMetaDataProducer.md @@ -0,0 +1,13 @@ +# GetMediaMetaDataProducer + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `id` | *int* | :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 | +| `tagKey` | *string* | :heavy_check_mark: | A key associated with the actor tag. | 5d77683254f42c001f8c3f69 | +| `role` | *?string* | :heavy_minus_sign: | The character name or role. | Jimmy McGill | +| `thumb` | *?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..52cebd7 --- /dev/null +++ b/docs/Models/Operations/GetMediaMetaDataSimilar.md @@ -0,0 +1,10 @@ +# GetMediaMetaDataSimilar + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| `id` | *int* | :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 b8a28fe..fa04b99 100644 --- a/docs/Models/Operations/GetMediaMetaDataStream.md +++ b/docs/Models/Operations/GetMediaMetaDataStream.md @@ -9,13 +9,13 @@ | `streamType` | *int* | :heavy_check_mark: | Stream type (1=video, 2=audio, 3=subtitle). | 1 | | `codec` | *string* | :heavy_check_mark: | Codec used by the stream. | hevc | | `index` | *int* | :heavy_check_mark: | Index of the stream. | 0 | -| `language` | *string* | :heavy_check_mark: | Language of the stream. | English | -| `languageTag` | *string* | :heavy_check_mark: | Language tag (e.g., en). | en | -| `languageCode` | *string* | :heavy_check_mark: | ISO language code. | eng | | `displayTitle` | *string* | :heavy_check_mark: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | | `extendedDisplayTitle` | *string* | :heavy_check_mark: | Extended display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | | `default` | *?bool* | :heavy_minus_sign: | Indicates if this stream is default. | true | | `bitrate` | *?int* | :heavy_minus_sign: | Bitrate of the stream. | 24743 | +| `language` | *?string* | :heavy_minus_sign: | Language of the stream. | English | +| `languageTag` | *?string* | :heavy_minus_sign: | Language tag (e.g., en). | en | +| `languageCode` | *?string* | :heavy_minus_sign: | ISO language code. | eng | | `headerCompression` | *?bool* | :heavy_minus_sign: | Indicates whether header compression is enabled. | true | | `doviblCompatID` | *?int* | :heavy_minus_sign: | Dolby Vision BL compatibility ID. | 1 | | `doviblPresent` | *?bool* | :heavy_minus_sign: | Indicates if Dolby Vision BL is present. | true | @@ -30,6 +30,7 @@ | `chromaSubsampling` | *?string* | :heavy_minus_sign: | Chroma subsampling format. | 4:2:0 | | `codedHeight` | *?int* | :heavy_minus_sign: | Coded video height. | 1608 | | `codedWidth` | *?int* | :heavy_minus_sign: | Coded video width. | 3840 | +| `closedCaptions` | *?bool* | :heavy_minus_sign: | N/A | true | | `colorPrimaries` | *?string* | :heavy_minus_sign: | Color primaries used. | bt2020 | | `colorRange` | *?string* | :heavy_minus_sign: | Color range (e.g., tv). | tv | | `colorSpace` | *?string* | :heavy_minus_sign: | Color space. | bt2020nc | @@ -41,6 +42,7 @@ | `hasScalingMatrix` | *?bool* | :heavy_minus_sign: | N/A | false | | `profile` | *?string* | :heavy_minus_sign: | Video profile. | main 10 | | `scanType` | *?string* | :heavy_minus_sign: | N/A | progressive | +| `embeddedInVideo` | *?string* | :heavy_minus_sign: | N/A | progressive | | `refFrames` | *?int* | :heavy_minus_sign: | Number of reference frames. | 1 | | `width` | *?int* | :heavy_minus_sign: | Width of the video stream. | 3840 | | `selected` | *?bool* | :heavy_minus_sign: | Indicates if this stream is selected (applicable for audio streams). | true | diff --git a/docs/Models/Operations/GetOnDeckGuids.md b/docs/Models/Operations/GetOnDeckGuids.md deleted file mode 100644 index 862c750..0000000 --- a/docs/Models/Operations/GetOnDeckGuids.md +++ /dev/null @@ -1,8 +0,0 @@ -# GetOnDeckGuids - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `id` | *?string* | :heavy_minus_sign: | N/A | imdb://tt13303712 | \ 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 2dd18ce..0000000 --- a/docs/Models/Operations/GetOnDeckMedia.md +++ /dev/null @@ -1,22 +0,0 @@ -# GetOnDeckMedia - - -## Fields - -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | -| `id` | *?float* | :heavy_minus_sign: | N/A | 80994 | -| `duration` | *?float* | :heavy_minus_sign: | N/A | 420080 | -| `bitrate` | *?float* | :heavy_minus_sign: | N/A | 1046 | -| `width` | *?float* | :heavy_minus_sign: | N/A | 1920 | -| `height` | *?float* | :heavy_minus_sign: | N/A | 1080 | -| `aspectRatio` | *?float* | :heavy_minus_sign: | N/A | 1.78 | -| `audioChannels` | *?float* | :heavy_minus_sign: | N/A | 2 | -| `audioCodec` | *?string* | :heavy_minus_sign: | N/A | aac | -| `videoCodec` | *?string* | :heavy_minus_sign: | N/A | hevc | -| `videoResolution` | *?string* | :heavy_minus_sign: | N/A | 1080 | -| `container` | *?string* | :heavy_minus_sign: | N/A | mkv | -| `videoFrameRate` | *?string* | :heavy_minus_sign: | N/A | PAL | -| `audioProfile` | *?string* | :heavy_minus_sign: | N/A | lc | -| `videoProfile` | *?string* | :heavy_minus_sign: | N/A | main | -| `part` | array<[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 e07c0e5..0000000 --- a/docs/Models/Operations/GetOnDeckMediaContainer.md +++ /dev/null @@ -1,14 +0,0 @@ -# GetOnDeckMediaContainer - - -## Fields - -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | -| `size` | *?float* | :heavy_minus_sign: | N/A | 16 | -| `allowSync` | *?bool* | :heavy_minus_sign: | N/A | | -| `identifier` | *?string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | -| `mediaTagPrefix` | *?string* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ | -| `mediaTagVersion` | *?float* | :heavy_minus_sign: | N/A | 1680021154 | -| `mixedParents` | *?bool* | :heavy_minus_sign: | N/A | | -| `metadata` | array<[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 9d77b60..0000000 --- a/docs/Models/Operations/GetOnDeckMetadata.md +++ /dev/null @@ -1,43 +0,0 @@ -# GetOnDeckMetadata - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `allowSync` | *?bool* | :heavy_minus_sign: | N/A | | -| `librarySectionID` | *?float* | :heavy_minus_sign: | N/A | 2 | -| `librarySectionTitle` | *?string* | :heavy_minus_sign: | N/A | TV Shows | -| `librarySectionUUID` | *?string* | :heavy_minus_sign: | N/A | 4bb2521c-8ba9-459b-aaee-8ab8bc35eabd | -| `ratingKey` | *?float* | :heavy_minus_sign: | N/A | 49564 | -| `key` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/49564 | -| `parentRatingKey` | *?float* | :heavy_minus_sign: | N/A | 49557 | -| `grandparentRatingKey` | *?float* | :heavy_minus_sign: | N/A | 49556 | -| `guid` | *?string* | :heavy_minus_sign: | N/A | plex://episode/5ea7d7402e7ab10042e74d4f | -| `parentGuid` | *?string* | :heavy_minus_sign: | N/A | plex://season/602e754d67f4c8002ce54b3d | -| `grandparentGuid` | *?string* | :heavy_minus_sign: | N/A | plex://show/5d9c090e705e7a001e6e94d8 | -| `type` | *?string* | :heavy_minus_sign: | N/A | episode | -| `title` | *?string* | :heavy_minus_sign: | N/A | Circus | -| `grandparentKey` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/49556 | -| `parentKey` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/49557 | -| `librarySectionKey` | *?string* | :heavy_minus_sign: | N/A | /library/sections/2 | -| `grandparentTitle` | *?string* | :heavy_minus_sign: | N/A | Bluey (2018) | -| `parentTitle` | *?string* | :heavy_minus_sign: | N/A | Season 2 | -| `contentRating` | *?string* | :heavy_minus_sign: | N/A | TV-Y | -| `summary` | *?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` | *?float* | :heavy_minus_sign: | N/A | 33 | -| `parentIndex` | *?float* | :heavy_minus_sign: | N/A | 2 | -| `lastViewedAt` | *?float* | :heavy_minus_sign: | N/A | 1681908352 | -| `year` | *?float* | :heavy_minus_sign: | N/A | 2018 | -| `thumb` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/49564/thumb/1654258204 | -| `art` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/49556/art/1680939546 | -| `parentThumb` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/49557/thumb/1654258204 | -| `grandparentThumb` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/49556/thumb/1680939546 | -| `grandparentArt` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/49556/art/1680939546 | -| `grandparentTheme` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/49556/theme/1680939546 | -| `duration` | *?float* | :heavy_minus_sign: | N/A | 420080 | -| `originallyAvailableAt` | [\DateTime](https://www.php.net/manual/en/class.datetime.php) | :heavy_minus_sign: | N/A | 2020-10-31 00:00:00 +0000 UTC | -| `addedAt` | *?float* | :heavy_minus_sign: | N/A | 1654258196 | -| `updatedAt` | *?float* | :heavy_minus_sign: | N/A | 1654258204 | -| `media` | array<[Operations\GetOnDeckMedia](../../Models/Operations/GetOnDeckMedia.md)> | :heavy_minus_sign: | N/A | | -| `guids` | array<[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 7865687..0000000 --- a/docs/Models/Operations/GetOnDeckPart.md +++ /dev/null @@ -1,16 +0,0 @@ -# GetOnDeckPart - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | -| `id` | *?float* | :heavy_minus_sign: | N/A | 80994 | -| `key` | *?string* | :heavy_minus_sign: | N/A | /library/parts/80994/1655007810/file.mkv | -| `duration` | *?float* | :heavy_minus_sign: | N/A | 420080 | -| `file` | *?string* | :heavy_minus_sign: | N/A | /tvshows/Bluey (2018)/Bluey (2018) - S02E33 - Circus.mkv | -| `size` | *?float* | :heavy_minus_sign: | N/A | 55148931 | -| `audioProfile` | *?string* | :heavy_minus_sign: | N/A | lc | -| `container` | *?string* | :heavy_minus_sign: | N/A | mkv | -| `videoProfile` | *?string* | :heavy_minus_sign: | N/A | main | -| `stream` | array<[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 fbcf26c..0000000 --- a/docs/Models/Operations/GetOnDeckResponse.md +++ /dev/null @@ -1,11 +0,0 @@ -# GetOnDeckResponse - - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | -| `statusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | -| `rawResponse` | [\Psr\Http\Message\ResponseInterface](https://www.php-fig.org/psr/psr-7/#33-psrhttpmessageresponseinterface) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | -| `object` | [?Operations\GetOnDeckResponseBody](../../Models/Operations/GetOnDeckResponseBody.md) | :heavy_minus_sign: | The on Deck content | \ 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 2730718..0000000 --- a/docs/Models/Operations/GetOnDeckResponseBody.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetOnDeckResponseBody - -The on Deck content - - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | -| `mediaContainer` | [?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 051c832..0000000 --- a/docs/Models/Operations/GetOnDeckStream.md +++ /dev/null @@ -1,30 +0,0 @@ -# GetOnDeckStream - - -## Fields - -| Field | Type | Required | Description | Example | -| ---------------------- | ---------------------- | ---------------------- | ---------------------- | ---------------------- | -| `id` | *?float* | :heavy_minus_sign: | N/A | 211234 | -| `streamType` | *?float* | :heavy_minus_sign: | N/A | 1 | -| `default` | *?bool* | :heavy_minus_sign: | N/A | | -| `codec` | *?string* | :heavy_minus_sign: | N/A | hevc | -| `index` | *?float* | :heavy_minus_sign: | N/A | 0 | -| `bitrate` | *?float* | :heavy_minus_sign: | N/A | 918 | -| `language` | *?string* | :heavy_minus_sign: | N/A | English | -| `languageTag` | *?string* | :heavy_minus_sign: | N/A | en | -| `languageCode` | *?string* | :heavy_minus_sign: | N/A | eng | -| `bitDepth` | *?float* | :heavy_minus_sign: | N/A | 8 | -| `chromaLocation` | *?string* | :heavy_minus_sign: | N/A | left | -| `chromaSubsampling` | *?string* | :heavy_minus_sign: | N/A | 4:2:0 | -| `codedHeight` | *?float* | :heavy_minus_sign: | N/A | 1080 | -| `codedWidth` | *?float* | :heavy_minus_sign: | N/A | 1920 | -| `colorRange` | *?string* | :heavy_minus_sign: | N/A | tv | -| `frameRate` | *?float* | :heavy_minus_sign: | N/A | 25 | -| `height` | *?float* | :heavy_minus_sign: | N/A | 1080 | -| `level` | *?float* | :heavy_minus_sign: | N/A | 120 | -| `profile` | *?string* | :heavy_minus_sign: | N/A | main | -| `refFrames` | *?float* | :heavy_minus_sign: | N/A | 1 | -| `width` | *?float* | :heavy_minus_sign: | N/A | 1920 | -| `displayTitle` | *?string* | :heavy_minus_sign: | N/A | 1080p (HEVC Main) | -| `extendedDisplayTitle` | *?string* | :heavy_minus_sign: | N/A | 1080p (HEVC Main) | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedMediaContainer.md b/docs/Models/Operations/GetRecentlyAddedMediaContainer.md index e6b2cfd..2c214ca 100644 --- a/docs/Models/Operations/GetRecentlyAddedMediaContainer.md +++ b/docs/Models/Operations/GetRecentlyAddedMediaContainer.md @@ -5,10 +5,10 @@ | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | -| `size` | *int* | :heavy_check_mark: | N/A | 50 | -| `offset` | *?int* | :heavy_minus_sign: | N/A | | -| `totalSize` | *?int* | :heavy_minus_sign: | N/A | | -| `identifier` | *?string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | -| `allowSync` | *?bool* | :heavy_minus_sign: | N/A | false | +| `size` | *int* | :heavy_check_mark: | Number of media items returned in this response. | 50 | +| `totalSize` | *int* | :heavy_check_mark: | Total number of media items in the library. | 50 | +| `offset` | *int* | :heavy_check_mark: | Offset value for pagination. | 0 | +| `allowSync` | *bool* | :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` | [?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` | array<[Operations\GetRecentlyAddedMetadata](../../Models/Operations/GetRecentlyAddedMetadata.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file +| `metadata` | array<[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 2aa56d2..dde3313 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 | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `ratingKey` | *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 | -| `type` | [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 | -| `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. | -| `addedAt` | *int* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 | -| `studio` | *?string* | :heavy_minus_sign: | N/A | 20th Century Studios | -| `skipChildren` | *?bool* | :heavy_minus_sign: | N/A | false | -| `librarySectionID` | *?int* | :heavy_minus_sign: | N/A | 1 | -| `librarySectionTitle` | *?string* | :heavy_minus_sign: | N/A | Movies | -| `librarySectionKey` | *?string* | :heavy_minus_sign: | N/A | /library/sections/1 | -| `slug` | *?string* | :heavy_minus_sign: | N/A | 4-for-texas | -| `contentRating` | *?string* | :heavy_minus_sign: | N/A | PG-13 | -| `rating` | *?float* | :heavy_minus_sign: | N/A | 7.6 | -| `audienceRating` | *?float* | :heavy_minus_sign: | N/A | 9.2 | -| `year` | *?int* | :heavy_minus_sign: | N/A | 2022 | -| `seasonCount` | *?int* | :heavy_minus_sign: | N/A | 2022 | -| `tagline` | *?string* | :heavy_minus_sign: | N/A | Return to Pandora. | -| `flattenSeasons` | [?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 | -| `episodeSort` | [?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 | -| `enableCreditsMarkerGeneration` | [?Operations\EnableCreditsMarkerGeneration](../../Models/Operations/EnableCreditsMarkerGeneration.md) | :heavy_minus_sign: | Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). | -1 | -| `showOrdering` | [?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` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 | -| `art` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 | -| `banner` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/58683/banner/1703239236 | -| `duration` | *?int* | :heavy_minus_sign: | N/A | 11558112 | -| `originallyAvailableAt` | [\DateTime](https://www.php.net/manual/en/class.datetime.php) | :heavy_minus_sign: | N/A | 2022-12-14 00:00:00 +0000 UTC | -| `updatedAt` | *?int* | :heavy_minus_sign: | Unix epoch datetime in seconds | 1556281940 | -| `audienceRatingImage` | *?string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright | -| `chapterSource` | *?string* | :heavy_minus_sign: | N/A | media | -| `primaryExtraKey` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/58684 | -| `ratingImage` | *?string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.ripe | -| `grandparentRatingKey` | *?string* | :heavy_minus_sign: | N/A | 66 | -| `grandparentGuid` | *?string* | :heavy_minus_sign: | N/A | plex://show/5d9c081b170e24001f2a7be4 | -| `grandparentKey` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/66 | -| `grandparentTitle` | *?string* | :heavy_minus_sign: | N/A | Caprica | -| `grandparentThumb` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/66/thumb/1705716261 | -| `parentSlug` | *?string* | :heavy_minus_sign: | N/A | alice-in-borderland-2020 | -| `grandparentSlug` | *?string* | :heavy_minus_sign: | N/A | alice-in-borderland-2020 | -| `grandparentArt` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/66/art/1705716261 | -| `grandparentTheme` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/66/theme/1705716261 | -| `media` | array<[Operations\Media](../../Models/Operations/Media.md)> | :heavy_minus_sign: | The Media object is only included when type query is `4` or higher.
| | -| `genre` | array<[Operations\Genre](../../Models/Operations/Genre.md)> | :heavy_minus_sign: | N/A | | -| `country` | array<[Operations\Country](../../Models/Operations/Country.md)> | :heavy_minus_sign: | N/A | | -| `director` | array<[Operations\Director](../../Models/Operations/Director.md)> | :heavy_minus_sign: | N/A | | -| `writer` | array<[Operations\Writer](../../Models/Operations/Writer.md)> | :heavy_minus_sign: | N/A | | -| `collection` | array<[Operations\Collection](../../Models/Operations/Collection.md)> | :heavy_minus_sign: | N/A | | -| `role` | array<[Operations\Role](../../Models/Operations/Role.md)> | :heavy_minus_sign: | N/A | | -| `location` | array<[Operations\Location](../../Models/Operations/Location.md)> | :heavy_minus_sign: | N/A | | -| `mediaGuid` | array<[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`.
| | -| `ultraBlurColors` | [?Operations\UltraBlurColors](../../Models/Operations/UltraBlurColors.md) | :heavy_minus_sign: | N/A | | -| `metaDataRating` | array<[Operations\MetaDataRating](../../Models/Operations/MetaDataRating.md)> | :heavy_minus_sign: | N/A | | -| `image` | array<[Operations\GetRecentlyAddedImage](../../Models/Operations/GetRecentlyAddedImage.md)> | :heavy_minus_sign: | N/A | | -| `titleSort` | *?string* | :heavy_minus_sign: | N/A | Whale | -| `viewCount` | *?int* | :heavy_minus_sign: | N/A | 1 | -| `lastViewedAt` | *?int* | :heavy_minus_sign: | N/A | 1682752242 | -| `originalTitle` | *?string* | :heavy_minus_sign: | N/A | 映画 ブラッククローバー 魔法帝の剣 | -| `viewOffset` | *?int* | :heavy_minus_sign: | N/A | 5222500 | -| `skipCount` | *?int* | :heavy_minus_sign: | N/A | 1 | -| `index` | *?int* | :heavy_minus_sign: | N/A | 1 | -| `theme` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/1/theme/1705636920 | -| `leafCount` | *?int* | :heavy_minus_sign: | N/A | 14 | -| `viewedLeafCount` | *?int* | :heavy_minus_sign: | N/A | 0 | -| `childCount` | *?int* | :heavy_minus_sign: | N/A | 1 | -| `hasPremiumExtras` | *?string* | :heavy_minus_sign: | N/A | 1 | -| `hasPremiumPrimaryExtra` | *?string* | :heavy_minus_sign: | N/A | 1 | -| `parentRatingKey` | *?string* | :heavy_minus_sign: | The rating key of the parent item.
| 66 | -| `parentGuid` | *?string* | :heavy_minus_sign: | N/A | plex://show/5d9c081b170e24001f2a7be4 | -| `parentStudio` | *?string* | :heavy_minus_sign: | N/A | UCP | -| `parentKey` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/66 | -| `parentTitle` | *?string* | :heavy_minus_sign: | N/A | Caprica | -| `parentIndex` | *?int* | :heavy_minus_sign: | N/A | 1 | -| `parentYear` | *?int* | :heavy_minus_sign: | N/A | 2010 | -| `parentThumb` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/66/thumb/1705716261 | -| `parentTheme` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/66/theme/1705716261 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `addedAt` | *int* | :heavy_check_mark: | N/A | 1556281940 | +| `art` | *string* | :heavy_check_mark: | The art image URL for the media item. | /library/metadata/58683/art/1703239236 | +| `audienceRating` | *float* | :heavy_check_mark: | The audience rating for the media item. | 9.2 | +| `childCount` | *int* | :heavy_check_mark: | The number of child items associated with this media item. | 1 | +| `duration` | *int* | :heavy_check_mark: | The duration of the media item in milliseconds. | 11558112 | +| `guid` | *string* | :heavy_check_mark: | The globally unique identifier for the media item. | plex://movie/5d7768ba96b655001fdc0408 | +| `index` | *int* | :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 | +| `librarySectionID` | *int* | :heavy_check_mark: | The identifier for the library section. | 1 | +| `librarySectionKey` | *string* | :heavy_check_mark: | The key corresponding to the library section. | /library/sections/1 | +| `librarySectionTitle` | *string* | :heavy_check_mark: | The title of the library section. | Movies | +| `originallyAvailableAt` | [\DateTime](https://www.php.net/manual/en/class.datetime.php) | :heavy_check_mark: | The original release date of the media item. | 2022-12-14 | +| `parentStudio` | *string* | :heavy_check_mark: | The studio of the parent media item. | UCP | +| `parentTheme` | *string* | :heavy_check_mark: | The theme URL for the parent media item. | /library/metadata/66/theme/1705716261 | +| `ratingKey` | *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 | +| `seasonCount` | *int* | :heavy_check_mark: | The total number of seasons (for TV shows). | 2022 | +| `slug` | *string* | :heavy_check_mark: | A URL‐friendly version of the media title. | 4-for-texas | +| `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 | +| `titleSort` | *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` | [Operations\GetRecentlyAddedHubsType](../../Models/Operations/GetRecentlyAddedHubsType.md) | :heavy_check_mark: | N/A | movie | +| `audienceRatingImage` | *?string* | :heavy_minus_sign: | The URL for the audience rating image. | rottentomatoes://image.rating.upright | +| `chapterSource` | *?string* | :heavy_minus_sign: | The source from which chapter data is derived. | media | +| `contentRating` | *?string* | :heavy_minus_sign: | The content rating for the media item. | PG-13 | +| `createdAtAccuracy` | *?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 | +| `createdAtTZOffset` | *?string* | :heavy_minus_sign: | The time zone offset for the creation timestamp, represented as a string. This offset indicates the difference from UTC. | 0 | +| `grandparentArt` | *?string* | :heavy_minus_sign: | The art URL for the grandparent media item. | /library/metadata/66/art/1705716261 | +| `grandparentGuid` | *?string* | :heavy_minus_sign: | The GUID of the grandparent media item. | plex://show/5d9c081b170e24001f2a7be4 | +| `grandparentKey` | *?string* | :heavy_minus_sign: | The key of the grandparent media item. | /library/metadata/66 | +| `grandparentRatingKey` | *?string* | :heavy_minus_sign: | The rating key of the grandparent media item. | 66 | +| `grandparentSlug` | *?string* | :heavy_minus_sign: | The slug for the grandparent media item. | alice-in-borderland-2020 | +| `grandparentTheme` | *?string* | :heavy_minus_sign: | The theme URL for the grandparent media item. | /library/metadata/66/theme/1705716261 | +| `grandparentThumb` | *?string* | :heavy_minus_sign: | The thumbnail URL for the grandparent media item. | /library/metadata/66/thumb/1705716261 | +| `grandparentTitle` | *?string* | :heavy_minus_sign: | The title of the grandparent media item. | Caprica | +| `lastRatedAt` | *?int* | :heavy_minus_sign: | The Unix timestamp representing the last time the item was rated. | 1721813113 | +| `lastViewedAt` | *?int* | :heavy_minus_sign: | Unix timestamp for when the media item was last viewed. | 1682752242 | +| `leafCount` | *?int* | :heavy_minus_sign: | The number of leaf items (end nodes) under this media item. | 14 | +| `originalTitle` | *?string* | :heavy_minus_sign: | The original title of the media item (if different). | 映画 ブラッククローバー 魔法帝の剣 | +| `parentGuid` | *?string* | :heavy_minus_sign: | The GUID of the parent media item. | plex://show/5d9c081b170e24001f2a7be4 | +| `parentIndex` | *?int* | :heavy_minus_sign: | The index position of the parent media item. | 1 | +| `parentKey` | *?string* | :heavy_minus_sign: | The key of the parent media item. | /library/metadata/66 | +| `parentRatingKey` | *?string* | :heavy_minus_sign: | The rating key of the parent media item. | 66 | +| `parentSlug` | *?string* | :heavy_minus_sign: | The slug for the parent media item. | alice-in-borderland-2020 | +| `parentThumb` | *?string* | :heavy_minus_sign: | The thumbnail URL for the parent media item. | /library/metadata/66/thumb/1705716261 | +| `parentTitle` | *?string* | :heavy_minus_sign: | The title of the parent media item. | Caprica | +| `parentYear` | *?int* | :heavy_minus_sign: | The release year of the parent media item. | 2010 | +| `primaryExtraKey` | *?string* | :heavy_minus_sign: | The primary extra key associated with this media item. | /library/metadata/58684 | +| `ratingImage` | *?string* | :heavy_minus_sign: | The URL for the rating image. | rottentomatoes://image.rating.ripe | +| `skipCount` | *?int* | :heavy_minus_sign: | The number of times this media item has been skipped. | 1 | +| `studio` | *?string* | :heavy_minus_sign: | The studio that produced the media item. | 20th Century Studios | +| `subtype` | *?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 | +| `updatedAt` | *?int* | :heavy_minus_sign: | Unix epoch datetime in seconds | 1556281940 | +| `userRating` | *?float* | :heavy_minus_sign: | The rating provided by a user for the item. This value is expressed as a decimal number. | 10 | +| `viewCount` | *?int* | :heavy_minus_sign: | The number of times this media item has been viewed. | 1 | +| `viewOffset` | *?int* | :heavy_minus_sign: | The current playback offset (in milliseconds). | 5222500 | +| `viewedLeafCount` | *?int* | :heavy_minus_sign: | The number of leaf items that have been viewed. | 0 | +| `year` | *?int* | :heavy_minus_sign: | The release year of the media item. | 2022 | +| `image` | array<[Operations\GetRecentlyAddedImage](../../Models/Operations/GetRecentlyAddedImage.md)> | :heavy_minus_sign: | N/A | | +| `ultraBlurColors` | [?Operations\UltraBlurColors](../../Models/Operations/UltraBlurColors.md) | :heavy_minus_sign: | N/A | | +| `media` | array<[Operations\Media](../../Models/Operations/Media.md)> | :heavy_minus_sign: | N/A | | +| `genre` | array<[Operations\Genre](../../Models/Operations/Genre.md)> | :heavy_minus_sign: | N/A | | +| `country` | array<[Operations\Country](../../Models/Operations/Country.md)> | :heavy_minus_sign: | N/A | | +| `director` | array<[Operations\Director](../../Models/Operations/Director.md)> | :heavy_minus_sign: | N/A | | +| `writer` | array<[Operations\Writer](../../Models/Operations/Writer.md)> | :heavy_minus_sign: | N/A | | +| `role` | array<[Operations\Role](../../Models/Operations/Role.md)> | :heavy_minus_sign: | N/A | | +| `producer` | array<[Operations\Producer](../../Models/Operations/Producer.md)> | :heavy_minus_sign: | N/A | | +| `rating1` | array<[Operations\Rating](../../Models/Operations/Rating.md)> | :heavy_minus_sign: | N/A | | +| `similar` | array<[Operations\Similar](../../Models/Operations/Similar.md)> | :heavy_minus_sign: | N/A | | +| `location` | array<[Operations\Location](../../Models/Operations/Location.md)> | :heavy_minus_sign: | N/A | | +| `guids` | array<[Operations\Guids](../../Models/Operations/Guids.md)> | :heavy_minus_sign: | N/A | | +| `collection` | array<[Operations\Collection](../../Models/Operations/Collection.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedOptimizedForStreaming.md b/docs/Models/Operations/GetRecentlyAddedOptimizedForStreaming.md new file mode 100644 index 0000000..e263ec6 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedOptimizedForStreaming.md @@ -0,0 +1,25 @@ +# GetRecentlyAddedOptimizedForStreaming + +Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true + + +## Supported Types + +### `Operations\GetRecentlyAddedOptimizedForStreaming1` + +```php +/** +* @var Operations\GetRecentlyAddedOptimizedForStreaming1 +*/ +Operations\GetRecentlyAddedOptimizedForStreaming1 $value = /* values here */ +``` + +### `bool` + +```php +/** +* @var bool +*/ +bool $value = /* values here */ +``` + diff --git a/docs/Models/Operations/GetRecentlyAddedOptimizedForStreaming1.md b/docs/Models/Operations/GetRecentlyAddedOptimizedForStreaming1.md new file mode 100644 index 0000000..0fd6f93 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedOptimizedForStreaming1.md @@ -0,0 +1,9 @@ +# GetRecentlyAddedOptimizedForStreaming1 + + +## Values + +| Name | Value | +| ------ | ------ | +| `Zero` | 0 | +| `One` | 1 | \ No newline at end of file diff --git a/docs/Models/Operations/HasThumbnail.md b/docs/Models/Operations/HasThumbnail.md index a676daf..7a4a122 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 0f97681..96984ce 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` | *?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 4bba7c9..f5124b1 100644 --- a/docs/Models/Operations/Media.md +++ b/docs/Models/Operations/Media.md @@ -3,23 +3,24 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | -| `id` | *int* | :heavy_check_mark: | N/A | 119534 | -| `container` | *string* | :heavy_check_mark: | N/A | mkv | -| `part` | array<[Operations\Part](../../Models/Operations/Part.md)> | :heavy_check_mark: | N/A | | -| `duration` | *?int* | :heavy_minus_sign: | N/A | 11558112 | -| `bitrate` | *?int* | :heavy_minus_sign: | N/A | 25025 | -| `width` | *?int* | :heavy_minus_sign: | N/A | 3840 | -| `height` | *?int* | :heavy_minus_sign: | N/A | 2072 | -| `aspectRatio` | *?float* | :heavy_minus_sign: | N/A | 1.85 | -| `audioProfile` | *?string* | :heavy_minus_sign: | N/A | dts | -| `audioChannels` | *?int* | :heavy_minus_sign: | N/A | 6 | -| `audioCodec` | *?string* | :heavy_minus_sign: | N/A | eac3 | -| `videoCodec` | *?string* | :heavy_minus_sign: | N/A | hevc | -| `videoResolution` | *?string* | :heavy_minus_sign: | N/A | 4k | -| `videoFrameRate` | *?string* | :heavy_minus_sign: | N/A | 24p | -| `videoProfile` | *?string* | :heavy_minus_sign: | N/A | main 10 | -| `hasVoiceActivity` | *?bool* | :heavy_minus_sign: | N/A | false | -| `optimizedForStreaming` | [?Operations\OptimizedForStreaming](../../Models/Operations/OptimizedForStreaming.md) | :heavy_minus_sign: | N/A | 1 | -| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | false | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | Unique media identifier. | 387322 | +| `duration` | *?int* | :heavy_minus_sign: | Duration of the media in milliseconds. | 9610350 | +| `bitrate` | *?int* | :heavy_minus_sign: | Bitrate in bits per second. | 25512 | +| `width` | *?int* | :heavy_minus_sign: | Video width in pixels. | 3840 | +| `height` | *?int* | :heavy_minus_sign: | Video height in pixels. | 1602 | +| `aspectRatio` | *?float* | :heavy_minus_sign: | Aspect ratio of the video. | 2.35 | +| `audioChannels` | *?int* | :heavy_minus_sign: | Number of audio channels. | 6 | +| `displayOffset` | *?int* | :heavy_minus_sign: | N/A | 50 | +| `audioCodec` | *?string* | :heavy_minus_sign: | Audio codec used. | eac3 | +| `videoCodec` | *?string* | :heavy_minus_sign: | Video codec used. | hevc | +| `videoResolution` | *?string* | :heavy_minus_sign: | Video resolution (e.g., 4k). | 4k | +| `container` | *?string* | :heavy_minus_sign: | File container type. | mkv | +| `videoFrameRate` | *?string* | :heavy_minus_sign: | Frame rate of the video. Values found include NTSC, PAL, 24p
| 24p | +| `videoProfile` | *?string* | :heavy_minus_sign: | Video profile (e.g., main 10). | main 10 | +| `hasVoiceActivity` | *?bool* | :heavy_minus_sign: | Indicates whether voice activity is detected. | false | +| `audioProfile` | *?string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | +| `optimizedForStreaming` | [Operations\One\|bool\|null](../../Models/Operations/OptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | +| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | false | +| `part` | array<[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/OptimizedForStreaming.md b/docs/Models/Operations/OptimizedForStreaming.md index 6485ce7..afd4e4d 100644 --- a/docs/Models/Operations/OptimizedForStreaming.md +++ b/docs/Models/Operations/OptimizedForStreaming.md @@ -1,9 +1,25 @@ # OptimizedForStreaming +Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true -## Values -| Name | Value | -| --------- | --------- | -| `Disable` | 0 | -| `Enable` | 1 | \ No newline at end of file +## Supported Types + +### `Operations\One` + +```php +/** +* @var Operations\One +*/ +Operations\One $value = /* values here */ +``` + +### `bool` + +```php +/** +* @var bool +*/ +bool $value = /* values here */ +``` + diff --git a/docs/Models/Operations/Part.md b/docs/Models/Operations/Part.md index b5811cc..47e820e 100644 --- a/docs/Models/Operations/Part.md +++ b/docs/Models/Operations/Part.md @@ -3,18 +3,21 @@ ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `id` | *int* | :heavy_check_mark: | N/A | 119542 | -| `key` | *string* | :heavy_check_mark: | N/A | /library/parts/119542/1680457526/file.mkv | -| `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` | *int* | :heavy_check_mark: | N/A | 36158371307 | -| `container` | *string* | :heavy_check_mark: | The container format of the media file.
| mkv | -| `duration` | *?int* | :heavy_minus_sign: | N/A | 11558112 | -| `audioProfile` | *?string* | :heavy_minus_sign: | N/A | dts | -| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | false | -| `optimizedForStreaming` | *?bool* | :heavy_minus_sign: | N/A | false | -| `videoProfile` | *?string* | :heavy_minus_sign: | N/A | main 10 | -| `indexes` | *?string* | :heavy_minus_sign: | N/A | sd | -| `hasThumbnail` | [?Operations\HasThumbnail](../../Models/Operations/HasThumbnail.md) | :heavy_minus_sign: | N/A | 1 | -| `stream` | array<[Operations\Stream](../../Models/Operations/Stream.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | Unique part identifier. | 418385 | +| `key` | *string* | :heavy_check_mark: | Key to access this part. | /library/parts/418385/1735864239/file.mkv | +| `file` | *string* | :heavy_check_mark: | File path for the part. | /mnt/Movies_1/W/Wicked (2024).mkv | +| `size` | *int* | :heavy_check_mark: | File size in bytes. | 30649952104 | +| `accessible` | *?bool* | :heavy_minus_sign: | Indicates if the part is accessible. | true | +| `exists` | *?bool* | :heavy_minus_sign: | Indicates if the part exists. | true | +| `indexes` | *?string* | :heavy_minus_sign: | N/A | sd | +| `duration` | *?int* | :heavy_minus_sign: | Duration of the part in milliseconds. | 9610350 | +| `packetLength` | *?int* | :heavy_minus_sign: | N/A | 188 | +| `container` | *?string* | :heavy_minus_sign: | Container format of the part. | mkv | +| `videoProfile` | *?string* | :heavy_minus_sign: | Video profile for the part. | main 10 | +| `audioProfile` | *?string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | +| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | false | +| `optimizedForStreaming` | [Operations\GetRecentlyAddedOptimizedForStreaming1\|bool\|null](../../Models/Operations/GetRecentlyAddedOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | +| `hasThumbnail` | [?Operations\HasThumbnail](../../Models/Operations/HasThumbnail.md) | :heavy_minus_sign: | N/A | 1 | +| `stream` | array<[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 6a2d43c..3a21df6 100644 --- a/docs/Models/Operations/Producer.md +++ b/docs/Models/Operations/Producer.md @@ -3,11 +3,10 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| `id` | *int* | :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 | -| `tagKey` | *string* | :heavy_check_mark: | A key associated with the actor tag. | 5d77683254f42c001f8c3f69 | -| `role` | *?string* | :heavy_minus_sign: | The character name or role. | Jimmy McGill | -| `thumb` | *?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` | *int* | :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 | +| `tagKey` | *?string* | :heavy_minus_sign: | A unique key associated with the producer's tag, used for internal identification. | 5d77683d85719b001f3a535e | +| `thumb` | *?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..b7ff854 --- /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 e8410b2..6df2299 100644 --- a/docs/Models/Operations/Role.md +++ b/docs/Models/Operations/Role.md @@ -3,11 +3,11 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| `id` | *?int* | :heavy_minus_sign: | The ID of the tag or actor. | 294129 | -| `filter` | *?string* | :heavy_minus_sign: | The filter used to find the actor or tag. | actor=294129 | -| `thumb` | *?string* | :heavy_minus_sign: | The thumbnail of the actor | https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg | -| `tag` | *?string* | :heavy_minus_sign: | The name of the tag or actor. | Mike Smith | -| `tagKey` | *?string* | :heavy_minus_sign: | Unique identifier for the tag. | 668e7e7b22bcad9064350c91 | -| `role` | *?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` | *int* | :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 | +| `tagKey` | *?string* | :heavy_minus_sign: | A unique key associated with the actor's tag, used for internal identification. | 5d77683d85719b001f3a535e | +| `role` | *?string* | :heavy_minus_sign: | The role played by the actor in the media item. | Self - Judge | +| `thumb` | *?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 52a567a..22cd0e9 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` | *int* | :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` | *int* | :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 850e00e..2ec5fab 100644 --- a/docs/Models/Operations/Stream.md +++ b/docs/Models/Operations/Stream.md @@ -3,43 +3,54 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | -| `id` | *int* | :heavy_check_mark: | N/A | 272796 | -| `streamType` | *int* | :heavy_check_mark: | Type of stream (1 = video, 2 = audio, 3 = subtitle) | 1 | -| `codec` | *string* | :heavy_check_mark: | Codec used by the stream | h264 | -| `index` | *int* | :heavy_check_mark: | The index of the stream | 0 | -| `default` | *?bool* | :heavy_minus_sign: | Indicates if this is the default stream | true | -| `selected` | *?bool* | :heavy_minus_sign: | Indicates if the stream is selected | true | -| `bitrate` | *?int* | :heavy_minus_sign: | The bitrate of the stream in kbps | 6273 | -| `colorPrimaries` | *?string* | :heavy_minus_sign: | The color primaries of the video stream | bt709 | -| `colorRange` | *?string* | :heavy_minus_sign: | The color range of the video stream | tv | -| `colorSpace` | *?string* | :heavy_minus_sign: | The color space of the video stream | bt709 | -| `colorTrc` | *?string* | :heavy_minus_sign: | The transfer characteristics (TRC) of the video stream | bt709 | -| `bitDepth` | *?int* | :heavy_minus_sign: | The bit depth of the video stream | 8 | -| `chromaLocation` | *?string* | :heavy_minus_sign: | The chroma location of the video stream | left | -| `streamIdentifier` | *?string* | :heavy_minus_sign: | The identifier of the video stream | 2 | -| `chromaSubsampling` | *?string* | :heavy_minus_sign: | The chroma subsampling format | 4:2:0 | -| `codedHeight` | *?int* | :heavy_minus_sign: | The coded height of the video stream | 1088 | -| `codedWidth` | *?int* | :heavy_minus_sign: | The coded width of the video stream | 1920 | -| `frameRate` | *?float* | :heavy_minus_sign: | The frame rate of the video stream | 29.97 | -| `hasScalingMatrix` | *?bool* | :heavy_minus_sign: | Indicates if the stream has a scaling matrix | false | -| `hearingImpaired` | *?bool* | :heavy_minus_sign: | N/A | false | -| `closedCaptions` | *?bool* | :heavy_minus_sign: | N/A | false | -| `embeddedInVideo` | *?string* | :heavy_minus_sign: | N/A | 1 | -| `height` | *?int* | :heavy_minus_sign: | The height of the video stream | 1080 | -| `level` | *?int* | :heavy_minus_sign: | The level of the video codec | 40 | -| `profile` | *?string* | :heavy_minus_sign: | The profile of the video codec | main | -| `refFrames` | *?int* | :heavy_minus_sign: | Number of reference frames | 4 | -| `scanType` | *?string* | :heavy_minus_sign: | The scan type (progressive or interlaced) | progressive | -| `width` | *?int* | :heavy_minus_sign: | The width of the video stream | 1920 | -| `displayTitle` | *?string* | :heavy_minus_sign: | Display title of the stream | 1080p (H.264) | -| `extendedDisplayTitle` | *?string* | :heavy_minus_sign: | Extended display title of the stream | 1080p (H.264) | -| `channels` | *?int* | :heavy_minus_sign: | Number of audio channels (for audio streams) | 2 | -| `language` | *?string* | :heavy_minus_sign: | The language of the stream (for audio/subtitle streams) | English | -| `languageTag` | *?string* | :heavy_minus_sign: | Language tag of the stream | en | -| `languageCode` | *?string* | :heavy_minus_sign: | Language code of the stream | eng | -| `audioChannelLayout` | *?string* | :heavy_minus_sign: | The audio channel layout | stereo | -| `samplingRate` | *?int* | :heavy_minus_sign: | Sampling rate of the audio stream in Hz | 48000 | -| `title` | *?string* | :heavy_minus_sign: | Title of the subtitle track (for subtitle streams) | English | -| `canAutoSync` | *?bool* | :heavy_minus_sign: | Indicates if the subtitle stream can auto-sync | false | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | Unique stream identifier. | 1002625 | +| `streamType` | *int* | :heavy_check_mark: | Stream type (1=video, 2=audio, 3=subtitle). | 1 | +| `codec` | *string* | :heavy_check_mark: | Codec used by the stream. | hevc | +| `index` | *int* | :heavy_check_mark: | Index of the stream. | 0 | +| `displayTitle` | *string* | :heavy_check_mark: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | +| `extendedDisplayTitle` | *string* | :heavy_check_mark: | Extended display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | +| `default` | *?bool* | :heavy_minus_sign: | Indicates if this stream is default. | true | +| `bitrate` | *?int* | :heavy_minus_sign: | Bitrate of the stream. | 24743 | +| `language` | *?string* | :heavy_minus_sign: | Language of the stream. | English | +| `languageTag` | *?string* | :heavy_minus_sign: | Language tag (e.g., en). | en | +| `languageCode` | *?string* | :heavy_minus_sign: | ISO language code. | eng | +| `headerCompression` | *?bool* | :heavy_minus_sign: | Indicates whether header compression is enabled. | true | +| `doviblCompatID` | *?int* | :heavy_minus_sign: | Dolby Vision BL compatibility ID. | 1 | +| `doviblPresent` | *?bool* | :heavy_minus_sign: | Indicates if Dolby Vision BL is present. | true | +| `dovielPresent` | *?bool* | :heavy_minus_sign: | Indicates if Dolby Vision EL is present. | false | +| `doviLevel` | *?int* | :heavy_minus_sign: | Dolby Vision level. | 6 | +| `doviPresent` | *?bool* | :heavy_minus_sign: | Indicates if Dolby Vision is present. | true | +| `doviProfile` | *?int* | :heavy_minus_sign: | Dolby Vision profile. | 8 | +| `dovirpuPresent` | *?bool* | :heavy_minus_sign: | Indicates if Dolby Vision RPU is present. | true | +| `doviVersion` | *?string* | :heavy_minus_sign: | Dolby Vision version. | 1.0 | +| `bitDepth` | *?int* | :heavy_minus_sign: | Bit depth of the video stream. | 10 | +| `chromaLocation` | *?string* | :heavy_minus_sign: | Chroma sample location. | topleft | +| `chromaSubsampling` | *?string* | :heavy_minus_sign: | Chroma subsampling format. | 4:2:0 | +| `codedHeight` | *?int* | :heavy_minus_sign: | Coded video height. | 1608 | +| `codedWidth` | *?int* | :heavy_minus_sign: | Coded video width. | 3840 | +| `closedCaptions` | *?bool* | :heavy_minus_sign: | N/A | true | +| `colorPrimaries` | *?string* | :heavy_minus_sign: | Color primaries used. | bt2020 | +| `colorRange` | *?string* | :heavy_minus_sign: | Color range (e.g., tv). | tv | +| `colorSpace` | *?string* | :heavy_minus_sign: | Color space. | bt2020nc | +| `colorTrc` | *?string* | :heavy_minus_sign: | Color transfer characteristics. | smpte2084 | +| `frameRate` | *?float* | :heavy_minus_sign: | Frame rate of the stream. | 23.976 | +| `height` | *?int* | :heavy_minus_sign: | Height of the video stream. | 1602 | +| `level` | *?int* | :heavy_minus_sign: | Video level. | 150 | +| `original` | *?bool* | :heavy_minus_sign: | Indicates if this is the original stream. | true | +| `hasScalingMatrix` | *?bool* | :heavy_minus_sign: | N/A | false | +| `profile` | *?string* | :heavy_minus_sign: | Video profile. | main 10 | +| `scanType` | *?string* | :heavy_minus_sign: | N/A | progressive | +| `embeddedInVideo` | *?string* | :heavy_minus_sign: | N/A | progressive | +| `refFrames` | *?int* | :heavy_minus_sign: | Number of reference frames. | 1 | +| `width` | *?int* | :heavy_minus_sign: | Width of the video stream. | 3840 | +| `selected` | *?bool* | :heavy_minus_sign: | Indicates if this stream is selected (applicable for audio streams). | true | +| `forced` | *?bool* | :heavy_minus_sign: | N/A | true | +| `channels` | *?int* | :heavy_minus_sign: | Number of audio channels (for audio streams). | 6 | +| `audioChannelLayout` | *?string* | :heavy_minus_sign: | Audio channel layout. | 5.1(side) | +| `samplingRate` | *?int* | :heavy_minus_sign: | Sampling rate for the audio stream. | 48000 | +| `canAutoSync` | *?bool* | :heavy_minus_sign: | Indicates if the stream can auto-sync. | false | +| `hearingImpaired` | *?bool* | :heavy_minus_sign: | Indicates if the stream is for the hearing impaired. | true | +| `dub` | *?bool* | :heavy_minus_sign: | Indicates if the stream is a dub. | true | +| `title` | *?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 2c181db..65d0fc7 100644 --- a/docs/Models/Operations/Writer.md +++ b/docs/Models/Operations/Writer.md @@ -3,6 +3,9 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `tag` | *?string* | :heavy_minus_sign: | N/A | James Cameron | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | +| `id` | *int* | :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 | +| `tagKey` | *?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 870f6c4..06926aa 100644 --- a/docs/sdks/library/README.md +++ b/docs/sdks/library/README.md @@ -23,7 +23,6 @@ API Calls interacting with Plex Media Server Libraries * [getSearchLibrary](#getsearchlibrary) - Search Library * [getFileHash](#getfilehash) - Get Hash Value * [getMetadataChildren](#getmetadatachildren) - Get Items Children -* [getOnDeck](#getondeck) - Get On Deck * [getTopWatchedContent](#gettopwatchedcontent) - Get Top Watched Content ## deleteLibrary @@ -914,49 +913,6 @@ if ($response->object !== null) { | Errors\GetMetadataChildrenUnauthorized | 401 | application/json | | Errors\SDKException | 4XX, 5XX | \*/\* | -## getOnDeck - -This endpoint will return the on deck content. - - -### Example Usage - -```php -declare(strict_types=1); - -require 'vendor/autoload.php'; - -use LukeHagar\Plex_API; - -$sdk = Plex_API\PlexAPI::builder() - ->setSecurity( - '' - ) - ->build(); - - - -$response = $sdk->library->getOnDeck( - -); - -if ($response->object !== null) { - // handle response -} -``` - -### Response - -**[?Operations\GetOnDeckResponse](../../Models/Operations/GetOnDeckResponse.md)** - -### Errors - -| Error Type | Status Code | Content Type | -| ---------------------------- | ---------------------------- | ---------------------------- | -| Errors\GetOnDeckBadRequest | 400 | application/json | -| Errors\GetOnDeckUnauthorized | 401 | application/json | -| Errors\SDKException | 4XX, 5XX | \*/\* | - ## getTopWatchedContent This endpoint will return the top watched content from libraries of a certain type diff --git a/src/Library.php b/src/Library.php index 4fbd212..5e366e9 100644 --- a/src/Library.php +++ b/src/Library.php @@ -1470,91 +1470,6 @@ class Library } } - /** - * Get On Deck - * - * This endpoint will return the on deck content. - * - * - * @return Operations\GetOnDeckResponse - * @throws \LukeHagar\Plex_API\Models\Errors\SDKException - */ - public function getOnDeck(?Options $options = null): Operations\GetOnDeckResponse - { - $baseUrl = Utils\Utils::templateUrl($this->sdkConfiguration->getServerUrl(), $this->sdkConfiguration->getServerDefaults()); - $url = Utils\Utils::generateUrl($baseUrl, '/library/onDeck'); - $urlOverride = null; - $httpOptions = ['http_errors' => false]; - $httpOptions['headers']['Accept'] = 'application/json'; - $httpOptions['headers']['user-agent'] = $this->sdkConfiguration->userAgent; - $httpRequest = new \GuzzleHttp\Psr7\Request('GET', $url); - $hookContext = new HookContext('getOnDeck', null, $this->sdkConfiguration->securitySource); - $httpRequest = $this->sdkConfiguration->hooks->beforeRequest(new Hooks\BeforeRequestContext($hookContext), $httpRequest); - $httpOptions = Utils\Utils::convertHeadersToOptions($httpRequest, $httpOptions); - $httpRequest = Utils\Utils::removeHeaders($httpRequest); - try { - $httpResponse = $this->sdkConfiguration->client->send($httpRequest, $httpOptions); - } catch (\GuzzleHttp\Exception\GuzzleException $error) { - $res = $this->sdkConfiguration->hooks->afterError(new Hooks\AfterErrorContext($hookContext), null, $error); - $httpResponse = $res; - } - $contentType = $httpResponse->getHeader('Content-Type')[0] ?? ''; - - $statusCode = $httpResponse->getStatusCode(); - if (Utils\Utils::matchStatusCodes($statusCode, ['400', '401', '4XX', '5XX'])) { - $res = $this->sdkConfiguration->hooks->afterError(new Hooks\AfterErrorContext($hookContext), $httpResponse, null); - $httpResponse = $res; - } - if (Utils\Utils::matchStatusCodes($statusCode, ['200'])) { - if (Utils\Utils::matchContentType($contentType, 'application/json')) { - $httpResponse = $this->sdkConfiguration->hooks->afterSuccess(new Hooks\AfterSuccessContext($hookContext), $httpResponse); - - $serializer = Utils\JSON::createSerializer(); - $responseData = (string) $httpResponse->getBody(); - $obj = $serializer->deserialize($responseData, '\LukeHagar\Plex_API\Models\Operations\GetOnDeckResponseBody', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true)); - $response = new Operations\GetOnDeckResponse( - statusCode: $statusCode, - contentType: $contentType, - rawResponse: $httpResponse, - object: $obj); - - return $response; - } else { - throw new \LukeHagar\Plex_API\Models\Errors\SDKException('Unknown content type received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse); - } - } elseif (Utils\Utils::matchStatusCodes($statusCode, ['400'])) { - if (Utils\Utils::matchContentType($contentType, 'application/json')) { - $httpResponse = $this->sdkConfiguration->hooks->afterSuccess(new Hooks\AfterSuccessContext($hookContext), $httpResponse); - - $serializer = Utils\JSON::createSerializer(); - $responseData = (string) $httpResponse->getBody(); - $obj = $serializer->deserialize($responseData, '\LukeHagar\Plex_API\Models\Errors\GetOnDeckBadRequest', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true)); - $obj->rawResponse = $httpResponse; - throw $obj->toException(); - } else { - throw new \LukeHagar\Plex_API\Models\Errors\SDKException('Unknown content type received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse); - } - } elseif (Utils\Utils::matchStatusCodes($statusCode, ['401'])) { - if (Utils\Utils::matchContentType($contentType, 'application/json')) { - $httpResponse = $this->sdkConfiguration->hooks->afterSuccess(new Hooks\AfterSuccessContext($hookContext), $httpResponse); - - $serializer = Utils\JSON::createSerializer(); - $responseData = (string) $httpResponse->getBody(); - $obj = $serializer->deserialize($responseData, '\LukeHagar\Plex_API\Models\Errors\GetOnDeckUnauthorized', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true)); - $obj->rawResponse = $httpResponse; - throw $obj->toException(); - } else { - throw new \LukeHagar\Plex_API\Models\Errors\SDKException('Unknown content type received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse); - } - } elseif (Utils\Utils::matchStatusCodes($statusCode, ['4XX'])) { - throw new \LukeHagar\Plex_API\Models\Errors\SDKException('API error occurred', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse); - } elseif (Utils\Utils::matchStatusCodes($statusCode, ['5XX'])) { - throw new \LukeHagar\Plex_API\Models\Errors\SDKException('API error occurred', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse); - } else { - throw new \LukeHagar\Plex_API\Models\Errors\SDKException('Unknown status code received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse); - } - } - /** * Get Top Watched Content * diff --git a/src/Models/Errors/GetOnDeckBadRequest.php b/src/Models/Errors/GetOnDeckBadRequest.php deleted file mode 100644 index 48743e7..0000000 --- a/src/Models/Errors/GetOnDeckBadRequest.php +++ /dev/null @@ -1,53 +0,0 @@ - $errors - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('errors')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Errors\GetOnDeckErrors>|null')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?array $errors = null; - - /** - * Raw HTTP response; suitable for custom response parsing - * - * @var ?\Psr\Http\Message\ResponseInterface $rawResponse - */ - #[\Speakeasy\Serializer\Annotation\Exclude] - - public ?\Psr\Http\Message\ResponseInterface $rawResponse = null; - - /** - * @param ?array $errors - * @param ?\Psr\Http\Message\ResponseInterface $rawResponse - * @phpstan-pure - */ - public function __construct(?array $errors = null, ?\Psr\Http\Message\ResponseInterface $rawResponse = null) - { - $this->errors = $errors; - $this->rawResponse = $rawResponse; - } - - public function toException(): GetOnDeckBadRequestThrowable - { - $serializer = Utils\JSON::createSerializer(); - $message = $serializer->serialize($this, 'json'); - $code = -1; - - return new GetOnDeckBadRequestThrowable($message, (int) $code, $this); - } -} \ No newline at end of file diff --git a/src/Models/Errors/GetOnDeckBadRequestThrowable.php b/src/Models/Errors/GetOnDeckBadRequestThrowable.php deleted file mode 100644 index 9b377c6..0000000 --- a/src/Models/Errors/GetOnDeckBadRequestThrowable.php +++ /dev/null @@ -1,20 +0,0 @@ -container = $container; - } -} \ No newline at end of file diff --git a/src/Models/Errors/GetOnDeckErrors.php b/src/Models/Errors/GetOnDeckErrors.php deleted file mode 100644 index 401f76a..0000000 --- a/src/Models/Errors/GetOnDeckErrors.php +++ /dev/null @@ -1,50 +0,0 @@ -code = $code; - $this->message = $message; - $this->status = $status; - } -} \ No newline at end of file diff --git a/src/Models/Errors/GetOnDeckLibraryErrors.php b/src/Models/Errors/GetOnDeckLibraryErrors.php deleted file mode 100644 index a1ddcbb..0000000 --- a/src/Models/Errors/GetOnDeckLibraryErrors.php +++ /dev/null @@ -1,50 +0,0 @@ -code = $code; - $this->message = $message; - $this->status = $status; - } -} \ No newline at end of file diff --git a/src/Models/Errors/GetOnDeckUnauthorized.php b/src/Models/Errors/GetOnDeckUnauthorized.php deleted file mode 100644 index 8de2020..0000000 --- a/src/Models/Errors/GetOnDeckUnauthorized.php +++ /dev/null @@ -1,53 +0,0 @@ - $errors - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('errors')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Errors\GetOnDeckLibraryErrors>|null')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?array $errors = null; - - /** - * Raw HTTP response; suitable for custom response parsing - * - * @var ?\Psr\Http\Message\ResponseInterface $rawResponse - */ - #[\Speakeasy\Serializer\Annotation\Exclude] - - public ?\Psr\Http\Message\ResponseInterface $rawResponse = null; - - /** - * @param ?array $errors - * @param ?\Psr\Http\Message\ResponseInterface $rawResponse - * @phpstan-pure - */ - public function __construct(?array $errors = null, ?\Psr\Http\Message\ResponseInterface $rawResponse = null) - { - $this->errors = $errors; - $this->rawResponse = $rawResponse; - } - - public function toException(): GetOnDeckUnauthorizedThrowable - { - $serializer = Utils\JSON::createSerializer(); - $message = $serializer->serialize($this, 'json'); - $code = -1; - - return new GetOnDeckUnauthorizedThrowable($message, (int) $code, $this); - } -} \ No newline at end of file diff --git a/src/Models/Errors/GetOnDeckUnauthorizedThrowable.php b/src/Models/Errors/GetOnDeckUnauthorizedThrowable.php deleted file mode 100644 index 6b9d23e..0000000 --- a/src/Models/Errors/GetOnDeckUnauthorizedThrowable.php +++ /dev/null @@ -1,20 +0,0 @@ -container = $container; - } -} \ No newline at end of file diff --git a/src/Models/Operations/Collection.php b/src/Models/Operations/Collection.php index bf8948c..be7b2d4 100644 --- a/src/Models/Operations/Collection.php +++ b/src/Models/Operations/Collection.php @@ -12,18 +12,18 @@ namespace LukeHagar\Plex_API\Models\Operations; class Collection { /** + * The user-made collection this media item belongs to * - * @var ?string $tag + * @var string $tag */ #[\Speakeasy\Serializer\Annotation\SerializedName('tag')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $tag = null; + public string $tag; /** - * @param ?string $tag + * @param string $tag * @phpstan-pure */ - public function __construct(?string $tag = null) + public function __construct(string $tag) { $this->tag = $tag; } diff --git a/src/Models/Operations/Country.php b/src/Models/Operations/Country.php index e9f39e3..66c3b3a 100644 --- a/src/Models/Operations/Country.php +++ b/src/Models/Operations/Country.php @@ -9,22 +9,42 @@ declare(strict_types=1); namespace LukeHagar\Plex_API\Models\Operations; +/** Country - The filter query string for country media items. */ class Country { /** * - * @var ?string $tag + * @var int $id */ - #[\Speakeasy\Serializer\Annotation\SerializedName('tag')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $tag = null; + #[\Speakeasy\Serializer\Annotation\SerializedName('id')] + public int $id; /** - * @param ?string $tag + * The country of origin of this media item + * + * @var string $tag + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('tag')] + public string $tag; + + /** + * + * @var ?string $filter + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('filter')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $filter = null; + + /** + * @param int $id + * @param string $tag + * @param ?string $filter * @phpstan-pure */ - public function __construct(?string $tag = null) + public function __construct(int $id, string $tag, ?string $filter = null) { + $this->id = $id; $this->tag = $tag; + $this->filter = $filter; } } \ No newline at end of file diff --git a/src/Models/Operations/Director.php b/src/Models/Operations/Director.php index cae0b41..01a5b4b 100644 --- a/src/Models/Operations/Director.php +++ b/src/Models/Operations/Director.php @@ -12,18 +12,18 @@ namespace LukeHagar\Plex_API\Models\Operations; class Director { /** + * The role of Director * - * @var ?string $tag + * @var string $tag */ #[\Speakeasy\Serializer\Annotation\SerializedName('tag')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $tag = null; + public string $tag; /** - * @param ?string $tag + * @param string $tag * @phpstan-pure */ - public function __construct(?string $tag = null) + public function __construct(string $tag) { $this->tag = $tag; } diff --git a/src/Models/Operations/Genre.php b/src/Models/Operations/Genre.php index 574e68c..001e5dc 100644 --- a/src/Models/Operations/Genre.php +++ b/src/Models/Operations/Genre.php @@ -9,22 +9,43 @@ declare(strict_types=1); namespace LukeHagar\Plex_API\Models\Operations; +/** Genre - The filter query string for similar items. */ class Genre { /** * - * @var ?string $tag + * @var int $id */ - #[\Speakeasy\Serializer\Annotation\SerializedName('tag')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $tag = null; + #[\Speakeasy\Serializer\Annotation\SerializedName('id')] + public int $id; /** - * @param ?string $tag + * + * @var string $filter + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('filter')] + public string $filter; + + /** + * The genre name of this media-item + * + * + * + * @var string $tag + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('tag')] + public string $tag; + + /** + * @param int $id + * @param string $filter + * @param string $tag * @phpstan-pure */ - public function __construct(?string $tag = null) + public function __construct(int $id, string $filter, string $tag) { + $this->id = $id; + $this->filter = $filter; $this->tag = $tag; } } \ No newline at end of file diff --git a/src/Models/Operations/GetAllMediaLibraryGenre.php b/src/Models/Operations/GetAllMediaLibraryGenre.php index 7db0387..8d8c0bf 100644 --- a/src/Models/Operations/GetAllMediaLibraryGenre.php +++ b/src/Models/Operations/GetAllMediaLibraryGenre.php @@ -12,7 +12,9 @@ namespace LukeHagar\Plex_API\Models\Operations; class GetAllMediaLibraryGenre { /** - * The country of origin of this media item + * The genre name of this media-item + * + * * * @var string $tag */ diff --git a/src/Models/Operations/GetOnDeckGuids.php b/src/Models/Operations/GetAllMediaLibraryGuids.php similarity index 78% rename from src/Models/Operations/GetOnDeckGuids.php rename to src/Models/Operations/GetAllMediaLibraryGuids.php index 1dd1f52..3affedf 100644 --- a/src/Models/Operations/GetOnDeckGuids.php +++ b/src/Models/Operations/GetAllMediaLibraryGuids.php @@ -9,9 +9,12 @@ declare(strict_types=1); namespace LukeHagar\Plex_API\Models\Operations; -class GetOnDeckGuids +class GetAllMediaLibraryGuids { /** + * The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337 + * + * * * @var ?string $id */ diff --git a/src/Models/Operations/GetAllMediaLibraryMedia.php b/src/Models/Operations/GetAllMediaLibraryMedia.php index b4ba6e1..69f7ce0 100644 --- a/src/Models/Operations/GetAllMediaLibraryMedia.php +++ b/src/Models/Operations/GetAllMediaLibraryMedia.php @@ -19,23 +19,6 @@ class GetAllMediaLibraryMedia #[\Speakeasy\Serializer\Annotation\SerializedName('id')] public int $id; - /** - * Indicates whether voice activity is detected. - * - * @var bool $hasVoiceActivity - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('hasVoiceActivity')] - public bool $hasVoiceActivity; - - /** - * An array of parts for this media item. - * - * @var array $part - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('Part')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetAllMediaLibraryPart>')] - public array $part; - /** * Duration of the media in milliseconds. * @@ -154,6 +137,15 @@ class GetAllMediaLibraryMedia #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?string $videoProfile = null; + /** + * Indicates whether voice activity is detected. + * + * @var ?bool $hasVoiceActivity + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('hasVoiceActivity')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?bool $hasVoiceActivity = null; + /** * The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). * @@ -166,12 +158,12 @@ class GetAllMediaLibraryMedia /** * Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true * - * @var One|bool|null $optimizedForStreaming + * @var OptimizedForStreaming1|bool|null $optimizedForStreaming */ #[\Speakeasy\Serializer\Annotation\SerializedName('optimizedForStreaming')] - #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\One|bool|null')] + #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\OptimizedForStreaming1|bool|null')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public One|bool|null $optimizedForStreaming = null; + public OptimizedForStreaming1|bool|null $optimizedForStreaming = null; /** * @@ -181,10 +173,18 @@ class GetAllMediaLibraryMedia #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?bool $has64bitOffsets = null; + /** + * An array of parts for this media item. + * + * @var ?array $part + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('Part')] + #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetAllMediaLibraryPart>|null')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?array $part = null; + /** * @param int $id - * @param bool $hasVoiceActivity - * @param array $part * @param ?int $duration * @param ?int $bitrate * @param ?int $width @@ -198,16 +198,16 @@ class GetAllMediaLibraryMedia * @param ?string $container * @param ?string $videoFrameRate * @param ?string $videoProfile + * @param ?bool $hasVoiceActivity * @param ?string $audioProfile - * @param One|bool|null $optimizedForStreaming + * @param OptimizedForStreaming1|bool|null $optimizedForStreaming * @param ?bool $has64bitOffsets + * @param ?array $part * @phpstan-pure */ - public function __construct(int $id, bool $hasVoiceActivity, array $part, ?int $duration = null, ?int $bitrate = null, ?int $width = null, ?int $height = null, ?float $aspectRatio = null, ?int $audioChannels = null, ?int $displayOffset = null, ?string $audioCodec = null, ?string $videoCodec = null, ?string $videoResolution = null, ?string $container = null, ?string $videoFrameRate = null, ?string $videoProfile = null, ?string $audioProfile = null, One|bool|null $optimizedForStreaming = null, ?bool $has64bitOffsets = null) + public function __construct(int $id, ?int $duration = null, ?int $bitrate = null, ?int $width = null, ?int $height = null, ?float $aspectRatio = null, ?int $audioChannels = null, ?int $displayOffset = null, ?string $audioCodec = null, ?string $videoCodec = null, ?string $videoResolution = null, ?string $container = null, ?string $videoFrameRate = null, ?string $videoProfile = null, ?bool $hasVoiceActivity = null, ?string $audioProfile = null, OptimizedForStreaming1|bool|null $optimizedForStreaming = null, ?bool $has64bitOffsets = null, ?array $part = null) { $this->id = $id; - $this->hasVoiceActivity = $hasVoiceActivity; - $this->part = $part; $this->duration = $duration; $this->bitrate = $bitrate; $this->width = $width; @@ -221,8 +221,10 @@ class GetAllMediaLibraryMedia $this->container = $container; $this->videoFrameRate = $videoFrameRate; $this->videoProfile = $videoProfile; + $this->hasVoiceActivity = $hasVoiceActivity; $this->audioProfile = $audioProfile; $this->optimizedForStreaming = $optimizedForStreaming; $this->has64bitOffsets = $has64bitOffsets; + $this->part = $part; } } \ No newline at end of file diff --git a/src/Models/Operations/GetAllMediaLibraryMetadata.php b/src/Models/Operations/GetAllMediaLibraryMetadata.php index 8f6e0cb..0446a38 100644 --- a/src/Models/Operations/GetAllMediaLibraryMetadata.php +++ b/src/Models/Operations/GetAllMediaLibraryMetadata.php @@ -96,14 +96,6 @@ class GetAllMediaLibraryMetadata #[\Speakeasy\Serializer\Annotation\SerializedName('audienceRating')] public float $audienceRating; - /** - * The release year of the media item. - * - * @var int $year - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('year')] - public int $year; - /** * A brief tagline for the media item. * @@ -201,6 +193,15 @@ class GetAllMediaLibraryMetadata #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?string $contentRating = null; + /** + * The release year of the media item. + * + * @var ?int $year + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('year')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?int $year = null; + /** * The number of leaf items (end nodes) under this media item. * @@ -562,10 +563,10 @@ class GetAllMediaLibraryMetadata /** * $guids * - * @var ?array $guids + * @var ?array $guids */ #[\Speakeasy\Serializer\Annotation\SerializedName('Guid')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Guids>|null')] + #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetAllMediaLibraryGuids>|null')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?array $guids = null; @@ -590,7 +591,6 @@ class GetAllMediaLibraryMetadata * @param string $summary * @param float $rating * @param float $audienceRating - * @param int $year * @param string $tagline * @param string $thumb * @param string $art @@ -603,6 +603,7 @@ class GetAllMediaLibraryMetadata * @param int $addedAt * @param ?string $studio * @param ?string $contentRating + * @param ?int $year * @param ?int $leafCount * @param ?int $viewedLeafCount * @param ?int $updatedAt @@ -642,11 +643,11 @@ class GetAllMediaLibraryMetadata * @param ?array $director * @param ?array $writer * @param ?array $role - * @param ?array $guids + * @param ?array $guids * @param ?array $collection * @phpstan-pure */ - public function __construct(string $ratingKey, string $key, string $guid, string $slug, GetAllMediaLibraryLibraryType $type, string $title, string $titleSort, string $summary, float $rating, float $audienceRating, int $year, string $tagline, string $thumb, string $art, string $theme, int $index, int $childCount, int $seasonCount, int $duration, LocalDate $originallyAvailableAt, int $addedAt, ?string $studio = null, ?string $contentRating = null, ?int $leafCount = null, ?int $viewedLeafCount = null, ?int $updatedAt = null, ?string $audienceRatingImage = null, ?string $chapterSource = null, ?string $primaryExtraKey = null, ?string $originalTitle = null, ?string $parentRatingKey = null, ?string $grandparentRatingKey = null, ?string $parentGuid = null, ?string $grandparentGuid = null, ?string $grandparentSlug = null, ?string $grandparentKey = null, ?string $parentKey = null, ?string $grandparentTitle = null, ?string $grandparentThumb = null, ?string $grandparentTheme = null, ?string $grandparentArt = null, ?string $parentTitle = null, ?int $parentIndex = null, ?string $parentThumb = null, ?string $ratingImage = null, ?int $viewCount = null, ?int $viewOffset = null, ?int $skipCount = null, ?string $subtype = null, ?int $lastRatedAt = null, ?string $createdAtAccuracy = null, ?string $createdAtTZOffset = null, ?int $lastViewedAt = null, ?float $userRating = null, ?array $image = null, ?GetAllMediaLibraryUltraBlurColors $ultraBlurColors = null, ?array $media = null, ?array $genre = null, ?array $country = null, ?array $director = null, ?array $writer = null, ?array $role = null, ?array $guids = null, ?array $collection = null) + public function __construct(string $ratingKey, string $key, string $guid, string $slug, GetAllMediaLibraryLibraryType $type, string $title, string $titleSort, string $summary, float $rating, float $audienceRating, string $tagline, string $thumb, string $art, string $theme, int $index, int $childCount, int $seasonCount, int $duration, LocalDate $originallyAvailableAt, int $addedAt, ?string $studio = null, ?string $contentRating = null, ?int $year = null, ?int $leafCount = null, ?int $viewedLeafCount = null, ?int $updatedAt = null, ?string $audienceRatingImage = null, ?string $chapterSource = null, ?string $primaryExtraKey = null, ?string $originalTitle = null, ?string $parentRatingKey = null, ?string $grandparentRatingKey = null, ?string $parentGuid = null, ?string $grandparentGuid = null, ?string $grandparentSlug = null, ?string $grandparentKey = null, ?string $parentKey = null, ?string $grandparentTitle = null, ?string $grandparentThumb = null, ?string $grandparentTheme = null, ?string $grandparentArt = null, ?string $parentTitle = null, ?int $parentIndex = null, ?string $parentThumb = null, ?string $ratingImage = null, ?int $viewCount = null, ?int $viewOffset = null, ?int $skipCount = null, ?string $subtype = null, ?int $lastRatedAt = null, ?string $createdAtAccuracy = null, ?string $createdAtTZOffset = null, ?int $lastViewedAt = null, ?float $userRating = null, ?array $image = null, ?GetAllMediaLibraryUltraBlurColors $ultraBlurColors = null, ?array $media = null, ?array $genre = null, ?array $country = null, ?array $director = null, ?array $writer = null, ?array $role = null, ?array $guids = null, ?array $collection = null) { $this->ratingKey = $ratingKey; $this->key = $key; @@ -658,7 +659,6 @@ class GetAllMediaLibraryMetadata $this->summary = $summary; $this->rating = $rating; $this->audienceRating = $audienceRating; - $this->year = $year; $this->tagline = $tagline; $this->thumb = $thumb; $this->art = $art; @@ -671,6 +671,7 @@ class GetAllMediaLibraryMetadata $this->addedAt = $addedAt; $this->studio = $studio; $this->contentRating = $contentRating; + $this->year = $year; $this->leafCount = $leafCount; $this->viewedLeafCount = $viewedLeafCount; $this->updatedAt = $updatedAt; diff --git a/src/Models/Operations/GetAllMediaLibraryRole.php b/src/Models/Operations/GetAllMediaLibraryRole.php index 6707187..c21b5b8 100644 --- a/src/Models/Operations/GetAllMediaLibraryRole.php +++ b/src/Models/Operations/GetAllMediaLibraryRole.php @@ -12,7 +12,7 @@ namespace LukeHagar\Plex_API\Models\Operations; class GetAllMediaLibraryRole { /** - * The name of the actor for this role + * The display tag for the actor (typically the actor's name). * * @var string $tag */ diff --git a/src/Models/Operations/GetAllMediaLibraryStream.php b/src/Models/Operations/GetAllMediaLibraryStream.php index fe4eaa4..a92b0c0 100644 --- a/src/Models/Operations/GetAllMediaLibraryStream.php +++ b/src/Models/Operations/GetAllMediaLibraryStream.php @@ -43,30 +43,6 @@ class GetAllMediaLibraryStream #[\Speakeasy\Serializer\Annotation\SerializedName('index')] public int $index; - /** - * Language of the stream. - * - * @var string $language - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('language')] - public string $language; - - /** - * Language tag (e.g., en). - * - * @var string $languageTag - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('languageTag')] - public string $languageTag; - - /** - * ISO language code. - * - * @var string $languageCode - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('languageCode')] - public string $languageCode; - /** * Display title for the stream. * @@ -101,6 +77,33 @@ class GetAllMediaLibraryStream #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?int $bitrate = null; + /** + * Language of the stream. + * + * @var ?string $language + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('language')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $language = null; + + /** + * Language tag (e.g., en). + * + * @var ?string $languageTag + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('languageTag')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $languageTag = null; + + /** + * ISO language code. + * + * @var ?string $languageCode + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('languageCode')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $languageCode = null; + /** * Indicates whether header compression is enabled. * @@ -227,6 +230,14 @@ class GetAllMediaLibraryStream #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?int $codedWidth = null; + /** + * + * @var ?bool $closedCaptions + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('closedCaptions')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?bool $closedCaptions = null; + /** * Color primaries used. * @@ -324,6 +335,14 @@ class GetAllMediaLibraryStream #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?string $scanType = null; + /** + * + * @var ?string $embeddedInVideo + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('embeddedInVideo')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $embeddedInVideo = null; + /** * Number of reference frames. * @@ -427,13 +446,13 @@ class GetAllMediaLibraryStream * @param int $streamType * @param string $codec * @param int $index - * @param string $language - * @param string $languageTag - * @param string $languageCode * @param string $displayTitle * @param string $extendedDisplayTitle * @param ?bool $default * @param ?int $bitrate + * @param ?string $language + * @param ?string $languageTag + * @param ?string $languageCode * @param ?bool $headerCompression * @param ?int $doviblCompatID * @param ?bool $doviblPresent @@ -448,6 +467,7 @@ class GetAllMediaLibraryStream * @param ?string $chromaSubsampling * @param ?int $codedHeight * @param ?int $codedWidth + * @param ?bool $closedCaptions * @param ?string $colorPrimaries * @param ?string $colorRange * @param ?string $colorSpace @@ -459,6 +479,7 @@ class GetAllMediaLibraryStream * @param ?bool $hasScalingMatrix * @param ?string $profile * @param ?string $scanType + * @param ?string $embeddedInVideo * @param ?int $refFrames * @param ?int $width * @param ?bool $selected @@ -472,19 +493,19 @@ class GetAllMediaLibraryStream * @param ?string $title * @phpstan-pure */ - public function __construct(int $id, int $streamType, string $codec, int $index, string $language, string $languageTag, string $languageCode, string $displayTitle, string $extendedDisplayTitle, ?bool $default = null, ?int $bitrate = null, ?bool $headerCompression = null, ?int $doviblCompatID = null, ?bool $doviblPresent = null, ?bool $dovielPresent = null, ?int $doviLevel = null, ?bool $doviPresent = null, ?int $doviProfile = null, ?bool $dovirpuPresent = null, ?string $doviVersion = null, ?int $bitDepth = null, ?string $chromaLocation = null, ?string $chromaSubsampling = null, ?int $codedHeight = null, ?int $codedWidth = null, ?string $colorPrimaries = null, ?string $colorRange = null, ?string $colorSpace = null, ?string $colorTrc = null, ?float $frameRate = null, ?int $height = null, ?int $level = null, ?bool $original = null, ?bool $hasScalingMatrix = null, ?string $profile = null, ?string $scanType = null, ?int $refFrames = null, ?int $width = null, ?bool $selected = null, ?bool $forced = null, ?int $channels = null, ?string $audioChannelLayout = null, ?int $samplingRate = null, ?bool $canAutoSync = null, ?bool $hearingImpaired = null, ?bool $dub = null, ?string $title = null) + public function __construct(int $id, int $streamType, string $codec, int $index, string $displayTitle, string $extendedDisplayTitle, ?bool $default = null, ?int $bitrate = null, ?string $language = null, ?string $languageTag = null, ?string $languageCode = null, ?bool $headerCompression = null, ?int $doviblCompatID = null, ?bool $doviblPresent = null, ?bool $dovielPresent = null, ?int $doviLevel = null, ?bool $doviPresent = null, ?int $doviProfile = null, ?bool $dovirpuPresent = null, ?string $doviVersion = null, ?int $bitDepth = null, ?string $chromaLocation = null, ?string $chromaSubsampling = null, ?int $codedHeight = null, ?int $codedWidth = null, ?bool $closedCaptions = null, ?string $colorPrimaries = null, ?string $colorRange = null, ?string $colorSpace = null, ?string $colorTrc = null, ?float $frameRate = null, ?int $height = null, ?int $level = null, ?bool $original = null, ?bool $hasScalingMatrix = null, ?string $profile = null, ?string $scanType = null, ?string $embeddedInVideo = null, ?int $refFrames = null, ?int $width = null, ?bool $selected = null, ?bool $forced = null, ?int $channels = null, ?string $audioChannelLayout = null, ?int $samplingRate = null, ?bool $canAutoSync = null, ?bool $hearingImpaired = null, ?bool $dub = null, ?string $title = null) { $this->id = $id; $this->streamType = $streamType; $this->codec = $codec; $this->index = $index; - $this->language = $language; - $this->languageTag = $languageTag; - $this->languageCode = $languageCode; $this->displayTitle = $displayTitle; $this->extendedDisplayTitle = $extendedDisplayTitle; $this->default = $default; $this->bitrate = $bitrate; + $this->language = $language; + $this->languageTag = $languageTag; + $this->languageCode = $languageCode; $this->headerCompression = $headerCompression; $this->doviblCompatID = $doviblCompatID; $this->doviblPresent = $doviblPresent; @@ -499,6 +520,7 @@ class GetAllMediaLibraryStream $this->chromaSubsampling = $chromaSubsampling; $this->codedHeight = $codedHeight; $this->codedWidth = $codedWidth; + $this->closedCaptions = $closedCaptions; $this->colorPrimaries = $colorPrimaries; $this->colorRange = $colorRange; $this->colorSpace = $colorSpace; @@ -510,6 +532,7 @@ class GetAllMediaLibraryStream $this->hasScalingMatrix = $hasScalingMatrix; $this->profile = $profile; $this->scanType = $scanType; + $this->embeddedInVideo = $embeddedInVideo; $this->refFrames = $refFrames; $this->width = $width; $this->selected = $selected; diff --git a/src/Models/Operations/GetLibraryItemsEnableCreditsMarkerGeneration.php b/src/Models/Operations/GetLibraryItemsEnableCreditsMarkerGeneration.php deleted file mode 100644 index a3b61eb..0000000 --- a/src/Models/Operations/GetLibraryItemsEnableCreditsMarkerGeneration.php +++ /dev/null @@ -1,17 +0,0 @@ -id = $id; - } -} \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryItemsMetadata.php b/src/Models/Operations/GetLibraryItemsMetadata.php index 0e39859..fd23aaa 100644 --- a/src/Models/Operations/GetLibraryItemsMetadata.php +++ b/src/Models/Operations/GetLibraryItemsMetadata.php @@ -168,32 +168,32 @@ class GetLibraryItemsMetadata /** * Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). * - * @var ?GetLibraryItemsFlattenSeasons $flattenSeasons + * @var ?FlattenSeasons $flattenSeasons */ #[\Speakeasy\Serializer\Annotation\SerializedName('flattenSeasons')] - #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsFlattenSeasons|null')] + #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\FlattenSeasons|null')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?GetLibraryItemsFlattenSeasons $flattenSeasons = null; + public ?FlattenSeasons $flattenSeasons = null; /** * Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). * - * @var ?GetLibraryItemsEpisodeSort $episodeSort + * @var ?EpisodeSort $episodeSort */ #[\Speakeasy\Serializer\Annotation\SerializedName('episodeSort')] - #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsEpisodeSort|null')] + #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\EpisodeSort|null')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?GetLibraryItemsEpisodeSort $episodeSort = null; + public ?EpisodeSort $episodeSort = null; /** * Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). * - * @var ?GetLibraryItemsEnableCreditsMarkerGeneration $enableCreditsMarkerGeneration + * @var ?EnableCreditsMarkerGeneration $enableCreditsMarkerGeneration */ #[\Speakeasy\Serializer\Annotation\SerializedName('enableCreditsMarkerGeneration')] - #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsEnableCreditsMarkerGeneration|null')] + #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\EnableCreditsMarkerGeneration|null')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?GetLibraryItemsEnableCreditsMarkerGeneration $enableCreditsMarkerGeneration = null; + public ?EnableCreditsMarkerGeneration $enableCreditsMarkerGeneration = null; /** * Setting that indicates the episode ordering for the show. @@ -205,12 +205,12 @@ class GetLibraryItemsMetadata * absolute = TheTVDB (Absolute)). * * - * @var ?GetLibraryItemsShowOrdering $showOrdering + * @var ?ShowOrdering $showOrdering */ #[\Speakeasy\Serializer\Annotation\SerializedName('showOrdering')] - #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsShowOrdering|null')] + #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\ShowOrdering|null')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?GetLibraryItemsShowOrdering $showOrdering = null; + public ?ShowOrdering $showOrdering = null; /** * @@ -452,10 +452,10 @@ class GetLibraryItemsMetadata * * * - * @var ?array $mediaGuid + * @var ?array $mediaGuid */ #[\Speakeasy\Serializer\Annotation\SerializedName('Guid')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsMediaGuid>|null')] + #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\MediaGuid>|null')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?array $mediaGuid = null; @@ -471,10 +471,10 @@ class GetLibraryItemsMetadata /** * $metaDataRating * - * @var ?array $metaDataRating + * @var ?array $metaDataRating */ #[\Speakeasy\Serializer\Annotation\SerializedName('Rating')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsMetaDataRating>|null')] + #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\MetaDataRating>|null')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?array $metaDataRating = null; @@ -687,10 +687,10 @@ class GetLibraryItemsMetadata * @param ?int $year * @param ?int $seasonCount * @param ?string $tagline - * @param ?GetLibraryItemsFlattenSeasons $flattenSeasons - * @param ?GetLibraryItemsEpisodeSort $episodeSort - * @param ?GetLibraryItemsEnableCreditsMarkerGeneration $enableCreditsMarkerGeneration - * @param ?GetLibraryItemsShowOrdering $showOrdering + * @param ?FlattenSeasons $flattenSeasons + * @param ?EpisodeSort $episodeSort + * @param ?EnableCreditsMarkerGeneration $enableCreditsMarkerGeneration + * @param ?ShowOrdering $showOrdering * @param ?string $thumb * @param ?string $art * @param ?string $banner @@ -718,9 +718,9 @@ class GetLibraryItemsMetadata * @param ?array $collection * @param ?array $role * @param ?array $location - * @param ?array $mediaGuid + * @param ?array $mediaGuid * @param ?GetLibraryItemsUltraBlurColors $ultraBlurColors - * @param ?array $metaDataRating + * @param ?array $metaDataRating * @param ?array $image * @param ?string $titleSort * @param ?int $viewCount @@ -746,7 +746,7 @@ class GetLibraryItemsMetadata * @param ?string $parentTheme * @phpstan-pure */ - public function __construct(string $ratingKey, string $key, string $guid, GetLibraryItemsLibraryType $type, string $title, string $summary, int $addedAt, ?string $studio = null, ?bool $skipChildren = null, ?int $librarySectionID = null, ?string $librarySectionTitle = null, ?string $librarySectionKey = null, ?string $slug = null, ?string $contentRating = null, ?float $rating = null, ?float $audienceRating = null, ?int $year = null, ?int $seasonCount = null, ?string $tagline = null, ?GetLibraryItemsFlattenSeasons $flattenSeasons = null, ?GetLibraryItemsEpisodeSort $episodeSort = null, ?GetLibraryItemsEnableCreditsMarkerGeneration $enableCreditsMarkerGeneration = null, ?GetLibraryItemsShowOrdering $showOrdering = null, ?string $thumb = null, ?string $art = null, ?string $banner = null, ?int $duration = null, ?LocalDate $originallyAvailableAt = null, ?int $updatedAt = null, ?string $audienceRatingImage = null, ?string $chapterSource = null, ?string $primaryExtraKey = null, ?string $ratingImage = null, ?string $grandparentRatingKey = null, ?string $grandparentGuid = null, ?string $grandparentKey = null, ?string $grandparentTitle = null, ?string $grandparentThumb = null, ?string $parentSlug = null, ?string $grandparentSlug = null, ?string $grandparentArt = null, ?string $grandparentTheme = null, ?array $media = null, ?array $genre = null, ?array $country = null, ?array $director = null, ?array $writer = null, ?array $collection = null, ?array $role = null, ?array $location = null, ?array $mediaGuid = null, ?GetLibraryItemsUltraBlurColors $ultraBlurColors = null, ?array $metaDataRating = null, ?array $image = null, ?string $titleSort = null, ?int $viewCount = null, ?int $lastViewedAt = null, ?string $originalTitle = null, ?int $viewOffset = null, ?int $skipCount = null, ?int $index = null, ?string $theme = null, ?int $leafCount = null, ?int $viewedLeafCount = null, ?int $childCount = null, ?string $hasPremiumExtras = null, ?string $hasPremiumPrimaryExtra = null, ?string $parentRatingKey = null, ?string $parentGuid = null, ?string $parentStudio = null, ?string $parentKey = null, ?string $parentTitle = null, ?int $parentIndex = null, ?int $parentYear = null, ?string $parentThumb = null, ?string $parentTheme = null) + public function __construct(string $ratingKey, string $key, string $guid, GetLibraryItemsLibraryType $type, string $title, string $summary, int $addedAt, ?string $studio = null, ?bool $skipChildren = null, ?int $librarySectionID = null, ?string $librarySectionTitle = null, ?string $librarySectionKey = null, ?string $slug = null, ?string $contentRating = null, ?float $rating = null, ?float $audienceRating = null, ?int $year = null, ?int $seasonCount = null, ?string $tagline = null, ?FlattenSeasons $flattenSeasons = null, ?EpisodeSort $episodeSort = null, ?EnableCreditsMarkerGeneration $enableCreditsMarkerGeneration = null, ?ShowOrdering $showOrdering = null, ?string $thumb = null, ?string $art = null, ?string $banner = null, ?int $duration = null, ?LocalDate $originallyAvailableAt = null, ?int $updatedAt = null, ?string $audienceRatingImage = null, ?string $chapterSource = null, ?string $primaryExtraKey = null, ?string $ratingImage = null, ?string $grandparentRatingKey = null, ?string $grandparentGuid = null, ?string $grandparentKey = null, ?string $grandparentTitle = null, ?string $grandparentThumb = null, ?string $parentSlug = null, ?string $grandparentSlug = null, ?string $grandparentArt = null, ?string $grandparentTheme = null, ?array $media = null, ?array $genre = null, ?array $country = null, ?array $director = null, ?array $writer = null, ?array $collection = null, ?array $role = null, ?array $location = null, ?array $mediaGuid = null, ?GetLibraryItemsUltraBlurColors $ultraBlurColors = null, ?array $metaDataRating = null, ?array $image = null, ?string $titleSort = null, ?int $viewCount = null, ?int $lastViewedAt = null, ?string $originalTitle = null, ?int $viewOffset = null, ?int $skipCount = null, ?int $index = null, ?string $theme = null, ?int $leafCount = null, ?int $viewedLeafCount = null, ?int $childCount = null, ?string $hasPremiumExtras = null, ?string $hasPremiumPrimaryExtra = null, ?string $parentRatingKey = null, ?string $parentGuid = null, ?string $parentStudio = null, ?string $parentKey = null, ?string $parentTitle = null, ?int $parentIndex = null, ?int $parentYear = null, ?string $parentThumb = null, ?string $parentTheme = null) { $this->ratingKey = $ratingKey; $this->key = $key; diff --git a/src/Models/Operations/GetLibraryItemsShowOrdering.php b/src/Models/Operations/GetLibraryItemsShowOrdering.php deleted file mode 100644 index 0ca2e22..0000000 --- a/src/Models/Operations/GetLibraryItemsShowOrdering.php +++ /dev/null @@ -1,29 +0,0 @@ - $part - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('Part')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetMediaMetaDataPart>')] - public array $part; - /** * Duration of the media in milliseconds. * @@ -154,6 +137,15 @@ class GetMediaMetaDataMedia #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?string $videoProfile = null; + /** + * Indicates whether voice activity is detected. + * + * @var ?bool $hasVoiceActivity + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('hasVoiceActivity')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?bool $hasVoiceActivity = null; + /** * The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). * @@ -166,12 +158,12 @@ class GetMediaMetaDataMedia /** * Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true * - * @var OptimizedForStreaming1|bool|null $optimizedForStreaming + * @var GetMediaMetaDataOptimizedForStreaming1|bool|null $optimizedForStreaming */ #[\Speakeasy\Serializer\Annotation\SerializedName('optimizedForStreaming')] - #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\OptimizedForStreaming1|bool|null')] + #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\GetMediaMetaDataOptimizedForStreaming1|bool|null')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public OptimizedForStreaming1|bool|null $optimizedForStreaming = null; + public GetMediaMetaDataOptimizedForStreaming1|bool|null $optimizedForStreaming = null; /** * @@ -181,10 +173,18 @@ class GetMediaMetaDataMedia #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?bool $has64bitOffsets = null; + /** + * An array of parts for this media item. + * + * @var ?array $part + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('Part')] + #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetMediaMetaDataPart>|null')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?array $part = null; + /** * @param int $id - * @param bool $hasVoiceActivity - * @param array $part * @param ?int $duration * @param ?int $bitrate * @param ?int $width @@ -198,16 +198,16 @@ class GetMediaMetaDataMedia * @param ?string $container * @param ?string $videoFrameRate * @param ?string $videoProfile + * @param ?bool $hasVoiceActivity * @param ?string $audioProfile - * @param OptimizedForStreaming1|bool|null $optimizedForStreaming + * @param GetMediaMetaDataOptimizedForStreaming1|bool|null $optimizedForStreaming * @param ?bool $has64bitOffsets + * @param ?array $part * @phpstan-pure */ - public function __construct(int $id, bool $hasVoiceActivity, array $part, ?int $duration = null, ?int $bitrate = null, ?int $width = null, ?int $height = null, ?float $aspectRatio = null, ?int $audioChannels = null, ?int $displayOffset = null, ?string $audioCodec = null, ?string $videoCodec = null, ?string $videoResolution = null, ?string $container = null, ?string $videoFrameRate = null, ?string $videoProfile = null, ?string $audioProfile = null, OptimizedForStreaming1|bool|null $optimizedForStreaming = null, ?bool $has64bitOffsets = null) + public function __construct(int $id, ?int $duration = null, ?int $bitrate = null, ?int $width = null, ?int $height = null, ?float $aspectRatio = null, ?int $audioChannels = null, ?int $displayOffset = null, ?string $audioCodec = null, ?string $videoCodec = null, ?string $videoResolution = null, ?string $container = null, ?string $videoFrameRate = null, ?string $videoProfile = null, ?bool $hasVoiceActivity = null, ?string $audioProfile = null, GetMediaMetaDataOptimizedForStreaming1|bool|null $optimizedForStreaming = null, ?bool $has64bitOffsets = null, ?array $part = null) { $this->id = $id; - $this->hasVoiceActivity = $hasVoiceActivity; - $this->part = $part; $this->duration = $duration; $this->bitrate = $bitrate; $this->width = $width; @@ -221,8 +221,10 @@ class GetMediaMetaDataMedia $this->container = $container; $this->videoFrameRate = $videoFrameRate; $this->videoProfile = $videoProfile; + $this->hasVoiceActivity = $hasVoiceActivity; $this->audioProfile = $audioProfile; $this->optimizedForStreaming = $optimizedForStreaming; $this->has64bitOffsets = $has64bitOffsets; + $this->part = $part; } } \ No newline at end of file diff --git a/src/Models/Operations/GetMediaMetaDataMetadata.php b/src/Models/Operations/GetMediaMetaDataMetadata.php index c88f369..25d6c6b 100644 --- a/src/Models/Operations/GetMediaMetaDataMetadata.php +++ b/src/Models/Operations/GetMediaMetaDataMetadata.php @@ -524,20 +524,20 @@ class GetMediaMetaDataMetadata /** * An array of Writer roles. * - * @var ?array $producer + * @var ?array $producer */ #[\Speakeasy\Serializer\Annotation\SerializedName('Producer')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Producer>|null')] + #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetMediaMetaDataProducer>|null')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?array $producer = null; /** * An array of similar content objects. * - * @var ?array $similar + * @var ?array $similar */ #[\Speakeasy\Serializer\Annotation\SerializedName('Similar')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Similar>|null')] + #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetMediaMetaDataSimilar>|null')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?array $similar = null; @@ -610,8 +610,8 @@ class GetMediaMetaDataMetadata * @param ?array $role * @param ?array $director * @param ?array $writer - * @param ?array $producer - * @param ?array $similar + * @param ?array $producer + * @param ?array $similar * @param ?array $location * @phpstan-pure */ diff --git a/src/Models/Operations/GetMediaMetaDataOptimizedForStreamingLibrary1.php b/src/Models/Operations/GetMediaMetaDataOptimizedForStreamingLibrary1.php new file mode 100644 index 0000000..444a823 --- /dev/null +++ b/src/Models/Operations/GetMediaMetaDataOptimizedForStreamingLibrary1.php @@ -0,0 +1,16 @@ + $stream * @phpstan-pure */ - public function __construct(int $id, string $key, string $file, int $size, ?bool $accessible = null, ?bool $exists = null, ?string $indexes = null, ?int $duration = null, ?int $packetLength = null, ?string $container = null, ?string $videoProfile = null, ?string $audioProfile = null, ?bool $has64bitOffsets = null, GetMediaMetaDataOptimizedForStreaming1|bool|null $optimizedForStreaming = null, ?array $stream = null, ?GetMediaMetaDataHasThumbnail $hasThumbnail = GetMediaMetaDataHasThumbnail::False) + public function __construct(int $id, string $key, string $file, int $size, ?bool $accessible = null, ?bool $exists = null, ?string $indexes = null, ?int $duration = null, ?int $packetLength = null, ?string $container = null, ?string $videoProfile = null, ?string $audioProfile = null, ?bool $has64bitOffsets = null, GetMediaMetaDataOptimizedForStreamingLibrary1|bool|null $optimizedForStreaming = null, ?array $stream = null, ?GetMediaMetaDataHasThumbnail $hasThumbnail = GetMediaMetaDataHasThumbnail::False) { $this->id = $id; $this->key = $key; diff --git a/src/Models/Operations/GetMediaMetaDataProducer.php b/src/Models/Operations/GetMediaMetaDataProducer.php new file mode 100644 index 0000000..68a3bf4 --- /dev/null +++ b/src/Models/Operations/GetMediaMetaDataProducer.php @@ -0,0 +1,82 @@ +id = $id; + $this->filter = $filter; + $this->tag = $tag; + $this->tagKey = $tagKey; + $this->role = $role; + $this->thumb = $thumb; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetMediaMetaDataSimilar.php b/src/Models/Operations/GetMediaMetaDataSimilar.php new file mode 100644 index 0000000..5f56704 --- /dev/null +++ b/src/Models/Operations/GetMediaMetaDataSimilar.php @@ -0,0 +1,50 @@ +id = $id; + $this->filter = $filter; + $this->tag = $tag; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetMediaMetaDataStream.php b/src/Models/Operations/GetMediaMetaDataStream.php index 5aa1a71..7fa0021 100644 --- a/src/Models/Operations/GetMediaMetaDataStream.php +++ b/src/Models/Operations/GetMediaMetaDataStream.php @@ -43,30 +43,6 @@ class GetMediaMetaDataStream #[\Speakeasy\Serializer\Annotation\SerializedName('index')] public int $index; - /** - * Language of the stream. - * - * @var string $language - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('language')] - public string $language; - - /** - * Language tag (e.g., en). - * - * @var string $languageTag - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('languageTag')] - public string $languageTag; - - /** - * ISO language code. - * - * @var string $languageCode - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('languageCode')] - public string $languageCode; - /** * Display title for the stream. * @@ -101,6 +77,33 @@ class GetMediaMetaDataStream #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?int $bitrate = null; + /** + * Language of the stream. + * + * @var ?string $language + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('language')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $language = null; + + /** + * Language tag (e.g., en). + * + * @var ?string $languageTag + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('languageTag')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $languageTag = null; + + /** + * ISO language code. + * + * @var ?string $languageCode + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('languageCode')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $languageCode = null; + /** * Indicates whether header compression is enabled. * @@ -227,6 +230,14 @@ class GetMediaMetaDataStream #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?int $codedWidth = null; + /** + * + * @var ?bool $closedCaptions + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('closedCaptions')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?bool $closedCaptions = null; + /** * Color primaries used. * @@ -324,6 +335,14 @@ class GetMediaMetaDataStream #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?string $scanType = null; + /** + * + * @var ?string $embeddedInVideo + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('embeddedInVideo')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $embeddedInVideo = null; + /** * Number of reference frames. * @@ -427,13 +446,13 @@ class GetMediaMetaDataStream * @param int $streamType * @param string $codec * @param int $index - * @param string $language - * @param string $languageTag - * @param string $languageCode * @param string $displayTitle * @param string $extendedDisplayTitle * @param ?bool $default * @param ?int $bitrate + * @param ?string $language + * @param ?string $languageTag + * @param ?string $languageCode * @param ?bool $headerCompression * @param ?int $doviblCompatID * @param ?bool $doviblPresent @@ -448,6 +467,7 @@ class GetMediaMetaDataStream * @param ?string $chromaSubsampling * @param ?int $codedHeight * @param ?int $codedWidth + * @param ?bool $closedCaptions * @param ?string $colorPrimaries * @param ?string $colorRange * @param ?string $colorSpace @@ -459,6 +479,7 @@ class GetMediaMetaDataStream * @param ?bool $hasScalingMatrix * @param ?string $profile * @param ?string $scanType + * @param ?string $embeddedInVideo * @param ?int $refFrames * @param ?int $width * @param ?bool $selected @@ -472,19 +493,19 @@ class GetMediaMetaDataStream * @param ?string $title * @phpstan-pure */ - public function __construct(int $id, int $streamType, string $codec, int $index, string $language, string $languageTag, string $languageCode, string $displayTitle, string $extendedDisplayTitle, ?bool $default = null, ?int $bitrate = null, ?bool $headerCompression = null, ?int $doviblCompatID = null, ?bool $doviblPresent = null, ?bool $dovielPresent = null, ?int $doviLevel = null, ?bool $doviPresent = null, ?int $doviProfile = null, ?bool $dovirpuPresent = null, ?string $doviVersion = null, ?int $bitDepth = null, ?string $chromaLocation = null, ?string $chromaSubsampling = null, ?int $codedHeight = null, ?int $codedWidth = null, ?string $colorPrimaries = null, ?string $colorRange = null, ?string $colorSpace = null, ?string $colorTrc = null, ?float $frameRate = null, ?int $height = null, ?int $level = null, ?bool $original = null, ?bool $hasScalingMatrix = null, ?string $profile = null, ?string $scanType = null, ?int $refFrames = null, ?int $width = null, ?bool $selected = null, ?bool $forced = null, ?int $channels = null, ?string $audioChannelLayout = null, ?int $samplingRate = null, ?bool $canAutoSync = null, ?bool $hearingImpaired = null, ?bool $dub = null, ?string $title = null) + public function __construct(int $id, int $streamType, string $codec, int $index, string $displayTitle, string $extendedDisplayTitle, ?bool $default = null, ?int $bitrate = null, ?string $language = null, ?string $languageTag = null, ?string $languageCode = null, ?bool $headerCompression = null, ?int $doviblCompatID = null, ?bool $doviblPresent = null, ?bool $dovielPresent = null, ?int $doviLevel = null, ?bool $doviPresent = null, ?int $doviProfile = null, ?bool $dovirpuPresent = null, ?string $doviVersion = null, ?int $bitDepth = null, ?string $chromaLocation = null, ?string $chromaSubsampling = null, ?int $codedHeight = null, ?int $codedWidth = null, ?bool $closedCaptions = null, ?string $colorPrimaries = null, ?string $colorRange = null, ?string $colorSpace = null, ?string $colorTrc = null, ?float $frameRate = null, ?int $height = null, ?int $level = null, ?bool $original = null, ?bool $hasScalingMatrix = null, ?string $profile = null, ?string $scanType = null, ?string $embeddedInVideo = null, ?int $refFrames = null, ?int $width = null, ?bool $selected = null, ?bool $forced = null, ?int $channels = null, ?string $audioChannelLayout = null, ?int $samplingRate = null, ?bool $canAutoSync = null, ?bool $hearingImpaired = null, ?bool $dub = null, ?string $title = null) { $this->id = $id; $this->streamType = $streamType; $this->codec = $codec; $this->index = $index; - $this->language = $language; - $this->languageTag = $languageTag; - $this->languageCode = $languageCode; $this->displayTitle = $displayTitle; $this->extendedDisplayTitle = $extendedDisplayTitle; $this->default = $default; $this->bitrate = $bitrate; + $this->language = $language; + $this->languageTag = $languageTag; + $this->languageCode = $languageCode; $this->headerCompression = $headerCompression; $this->doviblCompatID = $doviblCompatID; $this->doviblPresent = $doviblPresent; @@ -499,6 +520,7 @@ class GetMediaMetaDataStream $this->chromaSubsampling = $chromaSubsampling; $this->codedHeight = $codedHeight; $this->codedWidth = $codedWidth; + $this->closedCaptions = $closedCaptions; $this->colorPrimaries = $colorPrimaries; $this->colorRange = $colorRange; $this->colorSpace = $colorSpace; @@ -510,6 +532,7 @@ class GetMediaMetaDataStream $this->hasScalingMatrix = $hasScalingMatrix; $this->profile = $profile; $this->scanType = $scanType; + $this->embeddedInVideo = $embeddedInVideo; $this->refFrames = $refFrames; $this->width = $width; $this->selected = $selected; diff --git a/src/Models/Operations/GetOnDeckMedia.php b/src/Models/Operations/GetOnDeckMedia.php deleted file mode 100644 index 3da57f8..0000000 --- a/src/Models/Operations/GetOnDeckMedia.php +++ /dev/null @@ -1,172 +0,0 @@ - $part - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('Part')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetOnDeckPart>|null')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?array $part = null; - - /** - * @param ?float $id - * @param ?float $duration - * @param ?float $bitrate - * @param ?float $width - * @param ?float $height - * @param ?float $aspectRatio - * @param ?float $audioChannels - * @param ?string $audioCodec - * @param ?string $videoCodec - * @param ?string $videoResolution - * @param ?string $container - * @param ?string $videoFrameRate - * @param ?string $audioProfile - * @param ?string $videoProfile - * @param ?array $part - * @phpstan-pure - */ - public function __construct(?float $id = null, ?float $duration = null, ?float $bitrate = null, ?float $width = null, ?float $height = null, ?float $aspectRatio = null, ?float $audioChannels = null, ?string $audioCodec = null, ?string $videoCodec = null, ?string $videoResolution = null, ?string $container = null, ?string $videoFrameRate = null, ?string $audioProfile = null, ?string $videoProfile = null, ?array $part = null) - { - $this->id = $id; - $this->duration = $duration; - $this->bitrate = $bitrate; - $this->width = $width; - $this->height = $height; - $this->aspectRatio = $aspectRatio; - $this->audioChannels = $audioChannels; - $this->audioCodec = $audioCodec; - $this->videoCodec = $videoCodec; - $this->videoResolution = $videoResolution; - $this->container = $container; - $this->videoFrameRate = $videoFrameRate; - $this->audioProfile = $audioProfile; - $this->videoProfile = $videoProfile; - $this->part = $part; - } -} \ No newline at end of file diff --git a/src/Models/Operations/GetOnDeckMediaContainer.php b/src/Models/Operations/GetOnDeckMediaContainer.php deleted file mode 100644 index c5cfaa9..0000000 --- a/src/Models/Operations/GetOnDeckMediaContainer.php +++ /dev/null @@ -1,92 +0,0 @@ - $metadata - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('Metadata')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetOnDeckMetadata>|null')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?array $metadata = null; - - /** - * @param ?float $size - * @param ?bool $allowSync - * @param ?string $identifier - * @param ?string $mediaTagPrefix - * @param ?float $mediaTagVersion - * @param ?bool $mixedParents - * @param ?array $metadata - * @phpstan-pure - */ - public function __construct(?float $size = null, ?bool $allowSync = null, ?string $identifier = null, ?string $mediaTagPrefix = null, ?float $mediaTagVersion = null, ?bool $mixedParents = null, ?array $metadata = null) - { - $this->size = $size; - $this->allowSync = $allowSync; - $this->identifier = $identifier; - $this->mediaTagPrefix = $mediaTagPrefix; - $this->mediaTagVersion = $mediaTagVersion; - $this->mixedParents = $mixedParents; - $this->metadata = $metadata; - } -} \ No newline at end of file diff --git a/src/Models/Operations/GetOnDeckMetadata.php b/src/Models/Operations/GetOnDeckMetadata.php deleted file mode 100644 index 7b304bb..0000000 --- a/src/Models/Operations/GetOnDeckMetadata.php +++ /dev/null @@ -1,384 +0,0 @@ - $media - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('Media')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetOnDeckMedia>|null')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?array $media = null; - - /** - * $guids - * - * @var ?array $guids - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('Guid')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetOnDeckGuids>|null')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?array $guids = null; - - /** - * @param ?bool $allowSync - * @param ?float $librarySectionID - * @param ?string $librarySectionTitle - * @param ?string $librarySectionUUID - * @param ?float $ratingKey - * @param ?string $key - * @param ?float $parentRatingKey - * @param ?float $grandparentRatingKey - * @param ?string $guid - * @param ?string $parentGuid - * @param ?string $grandparentGuid - * @param ?string $type - * @param ?string $title - * @param ?string $grandparentKey - * @param ?string $parentKey - * @param ?string $librarySectionKey - * @param ?string $grandparentTitle - * @param ?string $parentTitle - * @param ?string $contentRating - * @param ?string $summary - * @param ?float $index - * @param ?float $parentIndex - * @param ?float $lastViewedAt - * @param ?float $year - * @param ?string $thumb - * @param ?string $art - * @param ?string $parentThumb - * @param ?string $grandparentThumb - * @param ?string $grandparentArt - * @param ?string $grandparentTheme - * @param ?float $duration - * @param ?\DateTime $originallyAvailableAt - * @param ?float $addedAt - * @param ?float $updatedAt - * @param ?array $media - * @param ?array $guids - * @phpstan-pure - */ - public function __construct(?bool $allowSync = null, ?float $librarySectionID = null, ?string $librarySectionTitle = null, ?string $librarySectionUUID = null, ?float $ratingKey = null, ?string $key = null, ?float $parentRatingKey = null, ?float $grandparentRatingKey = null, ?string $guid = null, ?string $parentGuid = null, ?string $grandparentGuid = null, ?string $type = null, ?string $title = null, ?string $grandparentKey = null, ?string $parentKey = null, ?string $librarySectionKey = null, ?string $grandparentTitle = null, ?string $parentTitle = null, ?string $contentRating = null, ?string $summary = null, ?float $index = null, ?float $parentIndex = null, ?float $lastViewedAt = null, ?float $year = null, ?string $thumb = null, ?string $art = null, ?string $parentThumb = null, ?string $grandparentThumb = null, ?string $grandparentArt = null, ?string $grandparentTheme = null, ?float $duration = null, ?\DateTime $originallyAvailableAt = null, ?float $addedAt = null, ?float $updatedAt = null, ?array $media = null, ?array $guids = null) - { - $this->allowSync = $allowSync; - $this->librarySectionID = $librarySectionID; - $this->librarySectionTitle = $librarySectionTitle; - $this->librarySectionUUID = $librarySectionUUID; - $this->ratingKey = $ratingKey; - $this->key = $key; - $this->parentRatingKey = $parentRatingKey; - $this->grandparentRatingKey = $grandparentRatingKey; - $this->guid = $guid; - $this->parentGuid = $parentGuid; - $this->grandparentGuid = $grandparentGuid; - $this->type = $type; - $this->title = $title; - $this->grandparentKey = $grandparentKey; - $this->parentKey = $parentKey; - $this->librarySectionKey = $librarySectionKey; - $this->grandparentTitle = $grandparentTitle; - $this->parentTitle = $parentTitle; - $this->contentRating = $contentRating; - $this->summary = $summary; - $this->index = $index; - $this->parentIndex = $parentIndex; - $this->lastViewedAt = $lastViewedAt; - $this->year = $year; - $this->thumb = $thumb; - $this->art = $art; - $this->parentThumb = $parentThumb; - $this->grandparentThumb = $grandparentThumb; - $this->grandparentArt = $grandparentArt; - $this->grandparentTheme = $grandparentTheme; - $this->duration = $duration; - $this->originallyAvailableAt = $originallyAvailableAt; - $this->addedAt = $addedAt; - $this->updatedAt = $updatedAt; - $this->media = $media; - $this->guids = $guids; - } -} \ No newline at end of file diff --git a/src/Models/Operations/GetOnDeckPart.php b/src/Models/Operations/GetOnDeckPart.php deleted file mode 100644 index b07b6b5..0000000 --- a/src/Models/Operations/GetOnDeckPart.php +++ /dev/null @@ -1,112 +0,0 @@ - $stream - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('Stream')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetOnDeckStream>|null')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?array $stream = null; - - /** - * @param ?float $id - * @param ?string $key - * @param ?float $duration - * @param ?string $file - * @param ?float $size - * @param ?string $audioProfile - * @param ?string $container - * @param ?string $videoProfile - * @param ?array $stream - * @phpstan-pure - */ - public function __construct(?float $id = null, ?string $key = null, ?float $duration = null, ?string $file = null, ?float $size = null, ?string $audioProfile = null, ?string $container = null, ?string $videoProfile = null, ?array $stream = null) - { - $this->id = $id; - $this->key = $key; - $this->duration = $duration; - $this->file = $file; - $this->size = $size; - $this->audioProfile = $audioProfile; - $this->container = $container; - $this->videoProfile = $videoProfile; - $this->stream = $stream; - } -} \ No newline at end of file diff --git a/src/Models/Operations/GetOnDeckResponse.php b/src/Models/Operations/GetOnDeckResponse.php deleted file mode 100644 index e4f1223..0000000 --- a/src/Models/Operations/GetOnDeckResponse.php +++ /dev/null @@ -1,56 +0,0 @@ -contentType = $contentType; - $this->statusCode = $statusCode; - $this->rawResponse = $rawResponse; - $this->object = $object; - } -} \ No newline at end of file diff --git a/src/Models/Operations/GetOnDeckResponseBody.php b/src/Models/Operations/GetOnDeckResponseBody.php deleted file mode 100644 index e628e4d..0000000 --- a/src/Models/Operations/GetOnDeckResponseBody.php +++ /dev/null @@ -1,32 +0,0 @@ -mediaContainer = $mediaContainer; - } -} \ No newline at end of file diff --git a/src/Models/Operations/GetOnDeckStream.php b/src/Models/Operations/GetOnDeckStream.php deleted file mode 100644 index 64f8fff..0000000 --- a/src/Models/Operations/GetOnDeckStream.php +++ /dev/null @@ -1,250 +0,0 @@ -id = $id; - $this->streamType = $streamType; - $this->default = $default; - $this->codec = $codec; - $this->index = $index; - $this->bitrate = $bitrate; - $this->language = $language; - $this->languageTag = $languageTag; - $this->languageCode = $languageCode; - $this->bitDepth = $bitDepth; - $this->chromaLocation = $chromaLocation; - $this->chromaSubsampling = $chromaSubsampling; - $this->codedHeight = $codedHeight; - $this->codedWidth = $codedWidth; - $this->colorRange = $colorRange; - $this->frameRate = $frameRate; - $this->height = $height; - $this->level = $level; - $this->profile = $profile; - $this->refFrames = $refFrames; - $this->width = $width; - $this->displayTitle = $displayTitle; - $this->extendedDisplayTitle = $extendedDisplayTitle; - } -} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedMediaContainer.php b/src/Models/Operations/GetRecentlyAddedMediaContainer.php index 93789e4..7779340 100644 --- a/src/Models/Operations/GetRecentlyAddedMediaContainer.php +++ b/src/Models/Operations/GetRecentlyAddedMediaContainer.php @@ -12,6 +12,7 @@ namespace LukeHagar\Plex_API\Models\Operations; class GetRecentlyAddedMediaContainer { /** + * Number of media items returned in this response. * * @var int $size */ @@ -19,36 +20,36 @@ class GetRecentlyAddedMediaContainer public int $size; /** + * Total number of media items in the library. * - * @var ?int $offset - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('offset')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?int $offset = null; - - /** - * - * @var ?int $totalSize + * @var int $totalSize */ #[\Speakeasy\Serializer\Annotation\SerializedName('totalSize')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?int $totalSize = null; + public int $totalSize; /** + * Offset value for pagination. * - * @var ?string $identifier + * @var int $offset */ - #[\Speakeasy\Serializer\Annotation\SerializedName('identifier')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $identifier = null; + #[\Speakeasy\Serializer\Annotation\SerializedName('offset')] + public int $offset; /** + * Indicates whether syncing is allowed. * - * @var ?bool $allowSync + * @var bool $allowSync */ #[\Speakeasy\Serializer\Annotation\SerializedName('allowSync')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?bool $allowSync = null; + public bool $allowSync; + + /** + * An plugin identifier for the media container. + * + * @var string $identifier + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('identifier')] + public string $identifier; /** * The Meta object is only included in the response if the `includeMeta` parameter is set to `1`. @@ -63,7 +64,7 @@ class GetRecentlyAddedMediaContainer public ?Meta $meta = null; /** - * $metadata + * An array of metadata items. * * @var ?array $metadata */ @@ -74,21 +75,21 @@ class GetRecentlyAddedMediaContainer /** * @param int $size - * @param ?int $offset - * @param ?int $totalSize - * @param ?string $identifier - * @param ?bool $allowSync + * @param int $totalSize + * @param int $offset + * @param bool $allowSync + * @param string $identifier * @param ?Meta $meta * @param ?array $metadata * @phpstan-pure */ - public function __construct(int $size, ?int $offset = null, ?int $totalSize = null, ?string $identifier = null, ?bool $allowSync = null, ?Meta $meta = null, ?array $metadata = null) + public function __construct(int $size, int $totalSize, int $offset, bool $allowSync, string $identifier, ?Meta $meta = null, ?array $metadata = null) { $this->size = $size; - $this->offset = $offset; $this->totalSize = $totalSize; - $this->identifier = $identifier; + $this->offset = $offset; $this->allowSync = $allowSync; + $this->identifier = $identifier; $this->meta = $meta; $this->metadata = $metadata; } diff --git a/src/Models/Operations/GetRecentlyAddedMetadata.php b/src/Models/Operations/GetRecentlyAddedMetadata.php index f83f09f..f2dff44 100644 --- a/src/Models/Operations/GetRecentlyAddedMetadata.php +++ b/src/Models/Operations/GetRecentlyAddedMetadata.php @@ -9,27 +9,54 @@ declare(strict_types=1); namespace LukeHagar\Plex_API\Models\Operations; use Brick\DateTime\LocalDate; +/** + * GetRecentlyAddedMetadata - Unknown + * + * + */ class GetRecentlyAddedMetadata { /** - * The rating key (Media ID) of this media item. * - * Note: This is always an integer, but is represented as a string in the API. - * - * - * @var string $ratingKey + * @var int $addedAt */ - #[\Speakeasy\Serializer\Annotation\SerializedName('ratingKey')] - public string $ratingKey; + #[\Speakeasy\Serializer\Annotation\SerializedName('addedAt')] + public int $addedAt; /** + * The art image URL for the media item. * - * @var string $key + * @var string $art */ - #[\Speakeasy\Serializer\Annotation\SerializedName('key')] - public string $key; + #[\Speakeasy\Serializer\Annotation\SerializedName('art')] + public string $art; /** + * The audience rating for the media item. + * + * @var float $audienceRating + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('audienceRating')] + public float $audienceRating; + + /** + * The number of child items associated with this media item. + * + * @var int $childCount + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('childCount')] + public int $childCount; + + /** + * The duration of the media item in milliseconds. + * + * @var int $duration + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('duration')] + public int $duration; + + /** + * The globally unique identifier for the media item. * * @var string $guid */ @@ -37,17 +64,143 @@ class GetRecentlyAddedMetadata public string $guid; /** - * The type of media content + * The index position of the media item. * - * - * - * @var GetRecentlyAddedHubsType $type + * @var int $index */ - #[\Speakeasy\Serializer\Annotation\SerializedName('type')] - #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedHubsType')] - public GetRecentlyAddedHubsType $type; + #[\Speakeasy\Serializer\Annotation\SerializedName('index')] + public int $index; /** + * The unique key for the media item. + * + * @var string $key + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('key')] + public string $key; + + /** + * The identifier for the library section. + * + * @var int $librarySectionID + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('librarySectionID')] + public int $librarySectionID; + + /** + * The key corresponding to the library section. + * + * @var string $librarySectionKey + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('librarySectionKey')] + public string $librarySectionKey; + + /** + * The title of the library section. + * + * @var string $librarySectionTitle + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('librarySectionTitle')] + public string $librarySectionTitle; + + /** + * The original release date of the media item. + * + * @var LocalDate $originallyAvailableAt + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('originallyAvailableAt')] + public LocalDate $originallyAvailableAt; + + /** + * The studio of the parent media item. + * + * @var string $parentStudio + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('parentStudio')] + public string $parentStudio; + + /** + * The theme URL for the parent media item. + * + * @var string $parentTheme + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('parentTheme')] + public string $parentTheme; + + /** + * 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. + * + * @var string $ratingKey + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('ratingKey')] + public string $ratingKey; + + /** + * The critic rating for the media item. + * + * @var float $rating + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('rating')] + public float $rating; + + /** + * The total number of seasons (for TV shows). + * + * @var int $seasonCount + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('seasonCount')] + public int $seasonCount; + + /** + * A URL‐friendly version of the media title. + * + * @var string $slug + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('slug')] + public string $slug; + + /** + * A synopsis of the media item. + * + * @var string $summary + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('summary')] + public string $summary; + + /** + * A brief tagline for the media item. + * + * @var string $tagline + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('tagline')] + public string $tagline; + + /** + * The theme URL for the media item. + * + * @var string $theme + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('theme')] + public string $theme; + + /** + * The thumbnail image URL for the media item. + * + * @var string $thumb + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('thumb')] + public string $thumb; + + /** + * The sort title used for ordering media items. + * + * @var string $titleSort + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('titleSort')] + public string $titleSort; + + /** + * The title of the media item. * * @var string $title */ @@ -56,68 +209,32 @@ class GetRecentlyAddedMetadata /** * - * @var string $summary + * @var GetRecentlyAddedHubsType $type */ - #[\Speakeasy\Serializer\Annotation\SerializedName('summary')] - public string $summary; + #[\Speakeasy\Serializer\Annotation\SerializedName('type')] + #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedHubsType')] + public GetRecentlyAddedHubsType $type; /** - * Unix epoch datetime in seconds + * The URL for the audience rating image. * - * @var int $addedAt + * @var ?string $audienceRatingImage */ - #[\Speakeasy\Serializer\Annotation\SerializedName('addedAt')] - public int $addedAt; - - /** - * - * @var ?string $studio - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('studio')] + #[\Speakeasy\Serializer\Annotation\SerializedName('audienceRatingImage')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $studio = null; + public ?string $audienceRatingImage = null; /** + * The source from which chapter data is derived. * - * @var ?bool $skipChildren + * @var ?string $chapterSource */ - #[\Speakeasy\Serializer\Annotation\SerializedName('skipChildren')] + #[\Speakeasy\Serializer\Annotation\SerializedName('chapterSource')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?bool $skipChildren = null; - - /** - * - * @var ?int $librarySectionID - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('librarySectionID')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?int $librarySectionID = null; - - /** - * - * @var ?string $librarySectionTitle - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('librarySectionTitle')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $librarySectionTitle = null; - - /** - * - * @var ?string $librarySectionKey - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('librarySectionKey')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $librarySectionKey = null; - - /** - * - * @var ?string $slug - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('slug')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $slug = null; + public ?string $chapterSource = null; /** + * The content rating for the media item. * * @var ?string $contentRating */ @@ -126,131 +243,247 @@ class GetRecentlyAddedMetadata public ?string $contentRating = null; /** + * 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). * - * @var ?float $rating + * @var ?string $createdAtAccuracy */ - #[\Speakeasy\Serializer\Annotation\SerializedName('rating')] + #[\Speakeasy\Serializer\Annotation\SerializedName('createdAtAccuracy')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?float $rating = null; + public ?string $createdAtAccuracy = null; /** + * The time zone offset for the creation timestamp, represented as a string. This offset indicates the difference from UTC. * - * @var ?float $audienceRating + * @var ?string $createdAtTZOffset */ - #[\Speakeasy\Serializer\Annotation\SerializedName('audienceRating')] + #[\Speakeasy\Serializer\Annotation\SerializedName('createdAtTZOffset')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?float $audienceRating = null; + public ?string $createdAtTZOffset = null; /** + * The art URL for the grandparent media item. * - * @var ?int $year + * @var ?string $grandparentArt */ - #[\Speakeasy\Serializer\Annotation\SerializedName('year')] + #[\Speakeasy\Serializer\Annotation\SerializedName('grandparentArt')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?int $year = null; + public ?string $grandparentArt = null; /** + * The GUID of the grandparent media item. * - * @var ?int $seasonCount + * @var ?string $grandparentGuid */ - #[\Speakeasy\Serializer\Annotation\SerializedName('seasonCount')] + #[\Speakeasy\Serializer\Annotation\SerializedName('grandparentGuid')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?int $seasonCount = null; + public ?string $grandparentGuid = null; /** + * The key of the grandparent media item. * - * @var ?string $tagline + * @var ?string $grandparentKey */ - #[\Speakeasy\Serializer\Annotation\SerializedName('tagline')] + #[\Speakeasy\Serializer\Annotation\SerializedName('grandparentKey')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $tagline = null; + public ?string $grandparentKey = null; /** - * Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). + * The rating key of the grandparent media item. * - * @var ?FlattenSeasons $flattenSeasons + * @var ?string $grandparentRatingKey */ - #[\Speakeasy\Serializer\Annotation\SerializedName('flattenSeasons')] - #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\FlattenSeasons|null')] + #[\Speakeasy\Serializer\Annotation\SerializedName('grandparentRatingKey')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?FlattenSeasons $flattenSeasons = null; + public ?string $grandparentRatingKey = null; /** - * Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). + * The slug for the grandparent media item. * - * @var ?EpisodeSort $episodeSort + * @var ?string $grandparentSlug */ - #[\Speakeasy\Serializer\Annotation\SerializedName('episodeSort')] - #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\EpisodeSort|null')] + #[\Speakeasy\Serializer\Annotation\SerializedName('grandparentSlug')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?EpisodeSort $episodeSort = null; + public ?string $grandparentSlug = null; /** - * Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). + * The theme URL for the grandparent media item. * - * @var ?EnableCreditsMarkerGeneration $enableCreditsMarkerGeneration + * @var ?string $grandparentTheme */ - #[\Speakeasy\Serializer\Annotation\SerializedName('enableCreditsMarkerGeneration')] - #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\EnableCreditsMarkerGeneration|null')] + #[\Speakeasy\Serializer\Annotation\SerializedName('grandparentTheme')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?EnableCreditsMarkerGeneration $enableCreditsMarkerGeneration = null; + public ?string $grandparentTheme = null; /** - * Setting that indicates the episode ordering for the show. + * The thumbnail URL for the grandparent media item. * - * None = Library default, - * tmdbAiring = The Movie Database (Aired), - * aired = TheTVDB (Aired), - * dvd = TheTVDB (DVD), - * absolute = TheTVDB (Absolute)). - * - * - * @var ?ShowOrdering $showOrdering + * @var ?string $grandparentThumb */ - #[\Speakeasy\Serializer\Annotation\SerializedName('showOrdering')] - #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\ShowOrdering|null')] + #[\Speakeasy\Serializer\Annotation\SerializedName('grandparentThumb')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?ShowOrdering $showOrdering = null; + public ?string $grandparentThumb = null; /** + * The title of the grandparent media item. * - * @var ?string $thumb + * @var ?string $grandparentTitle */ - #[\Speakeasy\Serializer\Annotation\SerializedName('thumb')] + #[\Speakeasy\Serializer\Annotation\SerializedName('grandparentTitle')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $thumb = null; + public ?string $grandparentTitle = null; /** + * The Unix timestamp representing the last time the item was rated. * - * @var ?string $art + * @var ?int $lastRatedAt */ - #[\Speakeasy\Serializer\Annotation\SerializedName('art')] + #[\Speakeasy\Serializer\Annotation\SerializedName('lastRatedAt')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $art = null; + public ?int $lastRatedAt = null; /** + * Unix timestamp for when the media item was last viewed. * - * @var ?string $banner + * @var ?int $lastViewedAt */ - #[\Speakeasy\Serializer\Annotation\SerializedName('banner')] + #[\Speakeasy\Serializer\Annotation\SerializedName('lastViewedAt')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $banner = null; + public ?int $lastViewedAt = null; /** + * The number of leaf items (end nodes) under this media item. * - * @var ?int $duration + * @var ?int $leafCount */ - #[\Speakeasy\Serializer\Annotation\SerializedName('duration')] + #[\Speakeasy\Serializer\Annotation\SerializedName('leafCount')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?int $duration = null; + public ?int $leafCount = null; /** + * The original title of the media item (if different). * - * @var ?LocalDate $originallyAvailableAt + * @var ?string $originalTitle */ - #[\Speakeasy\Serializer\Annotation\SerializedName('originallyAvailableAt')] + #[\Speakeasy\Serializer\Annotation\SerializedName('originalTitle')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?LocalDate $originallyAvailableAt = null; + public ?string $originalTitle = null; + + /** + * The GUID of the parent media item. + * + * @var ?string $parentGuid + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('parentGuid')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $parentGuid = null; + + /** + * The index position of the parent media item. + * + * @var ?int $parentIndex + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('parentIndex')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?int $parentIndex = null; + + /** + * The key of the parent media item. + * + * @var ?string $parentKey + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('parentKey')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $parentKey = null; + + /** + * The rating key of the parent media item. + * + * @var ?string $parentRatingKey + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('parentRatingKey')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $parentRatingKey = null; + + /** + * The slug for the parent media item. + * + * @var ?string $parentSlug + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('parentSlug')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $parentSlug = null; + + /** + * The thumbnail URL for the parent media item. + * + * @var ?string $parentThumb + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('parentThumb')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $parentThumb = null; + + /** + * The title of the parent media item. + * + * @var ?string $parentTitle + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('parentTitle')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $parentTitle = null; + + /** + * The release year of the parent media item. + * + * @var ?int $parentYear + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('parentYear')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?int $parentYear = null; + + /** + * The primary extra key associated with this media item. + * + * @var ?string $primaryExtraKey + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('primaryExtraKey')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $primaryExtraKey = null; + + /** + * The URL for the rating image. + * + * @var ?string $ratingImage + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('ratingImage')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $ratingImage = null; + + /** + * The number of times this media item has been skipped. + * + * @var ?int $skipCount + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('skipCount')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?int $skipCount = null; + + /** + * The studio that produced the media item. + * + * @var ?string $studio + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('studio')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $studio = null; + + /** + * A classification that further describes the type of media item. For example, 'clip' indicates that the item is a short video clip. + * + * @var ?string $subtype + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('subtype')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $subtype = null; /** * Unix epoch datetime in seconds @@ -262,113 +495,71 @@ class GetRecentlyAddedMetadata public ?int $updatedAt = null; /** + * The rating provided by a user for the item. This value is expressed as a decimal number. * - * @var ?string $audienceRatingImage + * @var ?float $userRating */ - #[\Speakeasy\Serializer\Annotation\SerializedName('audienceRatingImage')] + #[\Speakeasy\Serializer\Annotation\SerializedName('userRating')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $audienceRatingImage = null; + public ?float $userRating = null; + + /** + * The number of times this media item has been viewed. + * + * @var ?int $viewCount + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('viewCount')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?int $viewCount = null; + + /** + * The current playback offset (in milliseconds). + * + * @var ?int $viewOffset + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('viewOffset')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?int $viewOffset = null; + + /** + * The number of leaf items that have been viewed. + * + * @var ?int $viewedLeafCount + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('viewedLeafCount')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?int $viewedLeafCount = null; + + /** + * The release year of the media item. + * + * @var ?int $year + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('year')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?int $year = null; + + /** + * $image + * + * @var ?array $image + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('Image')] + #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedImage>|null')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?array $image = null; /** * - * @var ?string $chapterSource + * @var ?UltraBlurColors $ultraBlurColors */ - #[\Speakeasy\Serializer\Annotation\SerializedName('chapterSource')] + #[\Speakeasy\Serializer\Annotation\SerializedName('UltraBlurColors')] + #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\UltraBlurColors|null')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $chapterSource = null; + public ?UltraBlurColors $ultraBlurColors = null; /** - * - * @var ?string $primaryExtraKey - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('primaryExtraKey')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $primaryExtraKey = null; - - /** - * - * @var ?string $ratingImage - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('ratingImage')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $ratingImage = null; - - /** - * - * @var ?string $grandparentRatingKey - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('grandparentRatingKey')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $grandparentRatingKey = null; - - /** - * - * @var ?string $grandparentGuid - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('grandparentGuid')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $grandparentGuid = null; - - /** - * - * @var ?string $grandparentKey - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('grandparentKey')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $grandparentKey = null; - - /** - * - * @var ?string $grandparentTitle - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('grandparentTitle')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $grandparentTitle = null; - - /** - * - * @var ?string $grandparentThumb - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('grandparentThumb')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $grandparentThumb = null; - - /** - * - * @var ?string $parentSlug - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('parentSlug')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $parentSlug = null; - - /** - * - * @var ?string $grandparentSlug - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('grandparentSlug')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $grandparentSlug = null; - - /** - * - * @var ?string $grandparentArt - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('grandparentArt')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $grandparentArt = null; - - /** - * - * @var ?string $grandparentTheme - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('grandparentTheme')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $grandparentTheme = null; - - /** - * The Media object is only included when type query is `4` or higher. - * - * + * $media * * @var ?array $media */ @@ -417,16 +608,6 @@ class GetRecentlyAddedMetadata #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?array $writer = null; - /** - * $collection - * - * @var ?array $collection - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('Collection')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Collection>|null')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?array $collection = null; - /** * $role * @@ -437,6 +618,36 @@ class GetRecentlyAddedMetadata #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?array $role = null; + /** + * $producer + * + * @var ?array $producer + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('Producer')] + #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Producer>|null')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?array $producer = null; + + /** + * $rating1 + * + * @var ?array $rating1 + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('Rating')] + #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Rating>|null')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?array $rating1 = null; + + /** + * $similar + * + * @var ?array $similar + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('Similar')] + #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Similar>|null')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?array $similar = null; + /** * $location * @@ -448,381 +659,179 @@ class GetRecentlyAddedMetadata public ?array $location = null; /** - * The Guid object is only included in the response if the `includeGuids` parameter is set to `1`. + * $guids * - * - * - * @var ?array $mediaGuid + * @var ?array $guids */ #[\Speakeasy\Serializer\Annotation\SerializedName('Guid')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\MediaGuid>|null')] + #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Guids>|null')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?array $mediaGuid = null; + public ?array $guids = null; /** + * $collection * - * @var ?UltraBlurColors $ultraBlurColors + * @var ?array $collection */ - #[\Speakeasy\Serializer\Annotation\SerializedName('UltraBlurColors')] - #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\UltraBlurColors|null')] + #[\Speakeasy\Serializer\Annotation\SerializedName('Collection')] + #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Collection>|null')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?UltraBlurColors $ultraBlurColors = null; + public ?array $collection = null; /** - * $metaDataRating - * - * @var ?array $metaDataRating - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('Rating')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\MetaDataRating>|null')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?array $metaDataRating = null; - - /** - * $image - * - * @var ?array $image - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('Image')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedImage>|null')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?array $image = null; - - /** - * - * @var ?string $titleSort - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('titleSort')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $titleSort = null; - - /** - * - * @var ?int $viewCount - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('viewCount')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?int $viewCount = null; - - /** - * - * @var ?int $lastViewedAt - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('lastViewedAt')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?int $lastViewedAt = null; - - /** - * - * @var ?string $originalTitle - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('originalTitle')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $originalTitle = null; - - /** - * - * @var ?int $viewOffset - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('viewOffset')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?int $viewOffset = null; - - /** - * - * @var ?int $skipCount - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('skipCount')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?int $skipCount = null; - - /** - * - * @var ?int $index - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('index')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?int $index = null; - - /** - * - * @var ?string $theme - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('theme')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $theme = null; - - /** - * - * @var ?int $leafCount - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('leafCount')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?int $leafCount = null; - - /** - * - * @var ?int $viewedLeafCount - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('viewedLeafCount')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?int $viewedLeafCount = null; - - /** - * - * @var ?int $childCount - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('childCount')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?int $childCount = null; - - /** - * - * @var ?string $hasPremiumExtras - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('hasPremiumExtras')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $hasPremiumExtras = null; - - /** - * - * @var ?string $hasPremiumPrimaryExtra - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('hasPremiumPrimaryExtra')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $hasPremiumPrimaryExtra = null; - - /** - * The rating key of the parent item. - * - * - * - * @var ?string $parentRatingKey - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('parentRatingKey')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $parentRatingKey = null; - - /** - * - * @var ?string $parentGuid - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('parentGuid')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $parentGuid = null; - - /** - * - * @var ?string $parentStudio - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('parentStudio')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $parentStudio = null; - - /** - * - * @var ?string $parentKey - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('parentKey')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $parentKey = null; - - /** - * - * @var ?string $parentTitle - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('parentTitle')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $parentTitle = null; - - /** - * - * @var ?int $parentIndex - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('parentIndex')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?int $parentIndex = null; - - /** - * - * @var ?int $parentYear - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('parentYear')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?int $parentYear = null; - - /** - * - * @var ?string $parentThumb - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('parentThumb')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $parentThumb = null; - - /** - * - * @var ?string $parentTheme - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('parentTheme')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $parentTheme = null; - - /** - * @param string $ratingKey - * @param string $key - * @param string $guid - * @param GetRecentlyAddedHubsType $type - * @param string $title - * @param string $summary * @param int $addedAt - * @param ?string $studio - * @param ?bool $skipChildren - * @param ?int $librarySectionID - * @param ?string $librarySectionTitle - * @param ?string $librarySectionKey - * @param ?string $slug - * @param ?string $contentRating - * @param ?float $rating - * @param ?float $audienceRating - * @param ?int $year - * @param ?int $seasonCount - * @param ?string $tagline - * @param ?FlattenSeasons $flattenSeasons - * @param ?EpisodeSort $episodeSort - * @param ?EnableCreditsMarkerGeneration $enableCreditsMarkerGeneration - * @param ?ShowOrdering $showOrdering - * @param ?string $thumb - * @param ?string $art - * @param ?string $banner - * @param ?int $duration - * @param ?LocalDate $originallyAvailableAt - * @param ?int $updatedAt + * @param string $art + * @param float $audienceRating + * @param int $childCount + * @param int $duration + * @param string $guid + * @param int $index + * @param string $key + * @param int $librarySectionID + * @param string $librarySectionKey + * @param string $librarySectionTitle + * @param LocalDate $originallyAvailableAt + * @param string $parentStudio + * @param string $parentTheme + * @param string $ratingKey + * @param float $rating + * @param int $seasonCount + * @param string $slug + * @param string $summary + * @param string $tagline + * @param string $theme + * @param string $thumb + * @param string $titleSort + * @param string $title + * @param GetRecentlyAddedHubsType $type * @param ?string $audienceRatingImage * @param ?string $chapterSource - * @param ?string $primaryExtraKey - * @param ?string $ratingImage - * @param ?string $grandparentRatingKey + * @param ?string $contentRating + * @param ?string $createdAtAccuracy + * @param ?string $createdAtTZOffset + * @param ?string $grandparentArt * @param ?string $grandparentGuid * @param ?string $grandparentKey - * @param ?string $grandparentTitle - * @param ?string $grandparentThumb - * @param ?string $parentSlug + * @param ?string $grandparentRatingKey * @param ?string $grandparentSlug - * @param ?string $grandparentArt * @param ?string $grandparentTheme + * @param ?string $grandparentThumb + * @param ?string $grandparentTitle + * @param ?int $lastRatedAt + * @param ?int $lastViewedAt + * @param ?int $leafCount + * @param ?string $originalTitle + * @param ?string $parentGuid + * @param ?int $parentIndex + * @param ?string $parentKey + * @param ?string $parentRatingKey + * @param ?string $parentSlug + * @param ?string $parentThumb + * @param ?string $parentTitle + * @param ?int $parentYear + * @param ?string $primaryExtraKey + * @param ?string $ratingImage + * @param ?int $skipCount + * @param ?string $studio + * @param ?string $subtype + * @param ?int $updatedAt + * @param ?float $userRating + * @param ?int $viewCount + * @param ?int $viewOffset + * @param ?int $viewedLeafCount + * @param ?int $year + * @param ?array $image + * @param ?UltraBlurColors $ultraBlurColors * @param ?array $media * @param ?array $genre * @param ?array $country * @param ?array $director * @param ?array $writer - * @param ?array $collection * @param ?array $role + * @param ?array $producer + * @param ?array $rating1 + * @param ?array $similar * @param ?array $location - * @param ?array $mediaGuid - * @param ?UltraBlurColors $ultraBlurColors - * @param ?array $metaDataRating - * @param ?array $image - * @param ?string $titleSort - * @param ?int $viewCount - * @param ?int $lastViewedAt - * @param ?string $originalTitle - * @param ?int $viewOffset - * @param ?int $skipCount - * @param ?int $index - * @param ?string $theme - * @param ?int $leafCount - * @param ?int $viewedLeafCount - * @param ?int $childCount - * @param ?string $hasPremiumExtras - * @param ?string $hasPremiumPrimaryExtra - * @param ?string $parentRatingKey - * @param ?string $parentGuid - * @param ?string $parentStudio - * @param ?string $parentKey - * @param ?string $parentTitle - * @param ?int $parentIndex - * @param ?int $parentYear - * @param ?string $parentThumb - * @param ?string $parentTheme + * @param ?array $guids + * @param ?array $collection * @phpstan-pure */ - public function __construct(string $ratingKey, string $key, string $guid, GetRecentlyAddedHubsType $type, string $title, string $summary, int $addedAt, ?string $studio = null, ?bool $skipChildren = null, ?int $librarySectionID = null, ?string $librarySectionTitle = null, ?string $librarySectionKey = null, ?string $slug = null, ?string $contentRating = null, ?float $rating = null, ?float $audienceRating = null, ?int $year = null, ?int $seasonCount = null, ?string $tagline = null, ?FlattenSeasons $flattenSeasons = null, ?EpisodeSort $episodeSort = null, ?EnableCreditsMarkerGeneration $enableCreditsMarkerGeneration = null, ?ShowOrdering $showOrdering = null, ?string $thumb = null, ?string $art = null, ?string $banner = null, ?int $duration = null, ?LocalDate $originallyAvailableAt = null, ?int $updatedAt = null, ?string $audienceRatingImage = null, ?string $chapterSource = null, ?string $primaryExtraKey = null, ?string $ratingImage = null, ?string $grandparentRatingKey = null, ?string $grandparentGuid = null, ?string $grandparentKey = null, ?string $grandparentTitle = null, ?string $grandparentThumb = null, ?string $parentSlug = null, ?string $grandparentSlug = null, ?string $grandparentArt = null, ?string $grandparentTheme = null, ?array $media = null, ?array $genre = null, ?array $country = null, ?array $director = null, ?array $writer = null, ?array $collection = null, ?array $role = null, ?array $location = null, ?array $mediaGuid = null, ?UltraBlurColors $ultraBlurColors = null, ?array $metaDataRating = null, ?array $image = null, ?string $titleSort = null, ?int $viewCount = null, ?int $lastViewedAt = null, ?string $originalTitle = null, ?int $viewOffset = null, ?int $skipCount = null, ?int $index = null, ?string $theme = null, ?int $leafCount = null, ?int $viewedLeafCount = null, ?int $childCount = null, ?string $hasPremiumExtras = null, ?string $hasPremiumPrimaryExtra = null, ?string $parentRatingKey = null, ?string $parentGuid = null, ?string $parentStudio = null, ?string $parentKey = null, ?string $parentTitle = null, ?int $parentIndex = null, ?int $parentYear = null, ?string $parentThumb = null, ?string $parentTheme = null) + public function __construct(int $addedAt, string $art, float $audienceRating, int $childCount, int $duration, string $guid, int $index, string $key, int $librarySectionID, string $librarySectionKey, string $librarySectionTitle, LocalDate $originallyAvailableAt, string $parentStudio, string $parentTheme, string $ratingKey, float $rating, int $seasonCount, string $slug, string $summary, string $tagline, string $theme, string $thumb, string $titleSort, string $title, GetRecentlyAddedHubsType $type, ?string $audienceRatingImage = null, ?string $chapterSource = null, ?string $contentRating = null, ?string $createdAtAccuracy = null, ?string $createdAtTZOffset = null, ?string $grandparentArt = null, ?string $grandparentGuid = null, ?string $grandparentKey = null, ?string $grandparentRatingKey = null, ?string $grandparentSlug = null, ?string $grandparentTheme = null, ?string $grandparentThumb = null, ?string $grandparentTitle = null, ?int $lastRatedAt = null, ?int $lastViewedAt = null, ?int $leafCount = null, ?string $originalTitle = null, ?string $parentGuid = null, ?int $parentIndex = null, ?string $parentKey = null, ?string $parentRatingKey = null, ?string $parentSlug = null, ?string $parentThumb = null, ?string $parentTitle = null, ?int $parentYear = null, ?string $primaryExtraKey = null, ?string $ratingImage = null, ?int $skipCount = null, ?string $studio = null, ?string $subtype = null, ?int $updatedAt = null, ?float $userRating = null, ?int $viewCount = null, ?int $viewOffset = null, ?int $viewedLeafCount = null, ?int $year = null, ?array $image = null, ?UltraBlurColors $ultraBlurColors = null, ?array $media = null, ?array $genre = null, ?array $country = null, ?array $director = null, ?array $writer = null, ?array $role = null, ?array $producer = null, ?array $rating1 = null, ?array $similar = null, ?array $location = null, ?array $guids = null, ?array $collection = null) { - $this->ratingKey = $ratingKey; - $this->key = $key; - $this->guid = $guid; - $this->type = $type; - $this->title = $title; - $this->summary = $summary; $this->addedAt = $addedAt; - $this->studio = $studio; - $this->skipChildren = $skipChildren; - $this->librarySectionID = $librarySectionID; - $this->librarySectionTitle = $librarySectionTitle; - $this->librarySectionKey = $librarySectionKey; - $this->slug = $slug; - $this->contentRating = $contentRating; - $this->rating = $rating; - $this->audienceRating = $audienceRating; - $this->year = $year; - $this->seasonCount = $seasonCount; - $this->tagline = $tagline; - $this->flattenSeasons = $flattenSeasons; - $this->episodeSort = $episodeSort; - $this->enableCreditsMarkerGeneration = $enableCreditsMarkerGeneration; - $this->showOrdering = $showOrdering; - $this->thumb = $thumb; $this->art = $art; - $this->banner = $banner; + $this->audienceRating = $audienceRating; + $this->childCount = $childCount; $this->duration = $duration; + $this->guid = $guid; + $this->index = $index; + $this->key = $key; + $this->librarySectionID = $librarySectionID; + $this->librarySectionKey = $librarySectionKey; + $this->librarySectionTitle = $librarySectionTitle; $this->originallyAvailableAt = $originallyAvailableAt; - $this->updatedAt = $updatedAt; + $this->parentStudio = $parentStudio; + $this->parentTheme = $parentTheme; + $this->ratingKey = $ratingKey; + $this->rating = $rating; + $this->seasonCount = $seasonCount; + $this->slug = $slug; + $this->summary = $summary; + $this->tagline = $tagline; + $this->theme = $theme; + $this->thumb = $thumb; + $this->titleSort = $titleSort; + $this->title = $title; + $this->type = $type; $this->audienceRatingImage = $audienceRatingImage; $this->chapterSource = $chapterSource; - $this->primaryExtraKey = $primaryExtraKey; - $this->ratingImage = $ratingImage; - $this->grandparentRatingKey = $grandparentRatingKey; + $this->contentRating = $contentRating; + $this->createdAtAccuracy = $createdAtAccuracy; + $this->createdAtTZOffset = $createdAtTZOffset; + $this->grandparentArt = $grandparentArt; $this->grandparentGuid = $grandparentGuid; $this->grandparentKey = $grandparentKey; - $this->grandparentTitle = $grandparentTitle; - $this->grandparentThumb = $grandparentThumb; - $this->parentSlug = $parentSlug; + $this->grandparentRatingKey = $grandparentRatingKey; $this->grandparentSlug = $grandparentSlug; - $this->grandparentArt = $grandparentArt; $this->grandparentTheme = $grandparentTheme; + $this->grandparentThumb = $grandparentThumb; + $this->grandparentTitle = $grandparentTitle; + $this->lastRatedAt = $lastRatedAt; + $this->lastViewedAt = $lastViewedAt; + $this->leafCount = $leafCount; + $this->originalTitle = $originalTitle; + $this->parentGuid = $parentGuid; + $this->parentIndex = $parentIndex; + $this->parentKey = $parentKey; + $this->parentRatingKey = $parentRatingKey; + $this->parentSlug = $parentSlug; + $this->parentThumb = $parentThumb; + $this->parentTitle = $parentTitle; + $this->parentYear = $parentYear; + $this->primaryExtraKey = $primaryExtraKey; + $this->ratingImage = $ratingImage; + $this->skipCount = $skipCount; + $this->studio = $studio; + $this->subtype = $subtype; + $this->updatedAt = $updatedAt; + $this->userRating = $userRating; + $this->viewCount = $viewCount; + $this->viewOffset = $viewOffset; + $this->viewedLeafCount = $viewedLeafCount; + $this->year = $year; + $this->image = $image; + $this->ultraBlurColors = $ultraBlurColors; $this->media = $media; $this->genre = $genre; $this->country = $country; $this->director = $director; $this->writer = $writer; - $this->collection = $collection; $this->role = $role; + $this->producer = $producer; + $this->rating1 = $rating1; + $this->similar = $similar; $this->location = $location; - $this->mediaGuid = $mediaGuid; - $this->ultraBlurColors = $ultraBlurColors; - $this->metaDataRating = $metaDataRating; - $this->image = $image; - $this->titleSort = $titleSort; - $this->viewCount = $viewCount; - $this->lastViewedAt = $lastViewedAt; - $this->originalTitle = $originalTitle; - $this->viewOffset = $viewOffset; - $this->skipCount = $skipCount; - $this->index = $index; - $this->theme = $theme; - $this->leafCount = $leafCount; - $this->viewedLeafCount = $viewedLeafCount; - $this->childCount = $childCount; - $this->hasPremiumExtras = $hasPremiumExtras; - $this->hasPremiumPrimaryExtra = $hasPremiumPrimaryExtra; - $this->parentRatingKey = $parentRatingKey; - $this->parentGuid = $parentGuid; - $this->parentStudio = $parentStudio; - $this->parentKey = $parentKey; - $this->parentTitle = $parentTitle; - $this->parentIndex = $parentIndex; - $this->parentYear = $parentYear; - $this->parentThumb = $parentThumb; - $this->parentTheme = $parentTheme; + $this->guids = $guids; + $this->collection = $collection; } } \ No newline at end of file diff --git a/src/Models/Operations/OptimizedForStreaming.php b/src/Models/Operations/GetRecentlyAddedOptimizedForStreaming1.php similarity index 65% rename from src/Models/Operations/OptimizedForStreaming.php rename to src/Models/Operations/GetRecentlyAddedOptimizedForStreaming1.php index 673a77e..b70db64 100644 --- a/src/Models/Operations/OptimizedForStreaming.php +++ b/src/Models/Operations/GetRecentlyAddedOptimizedForStreaming1.php @@ -9,8 +9,8 @@ declare(strict_types=1); namespace LukeHagar\Plex_API\Models\Operations; -enum OptimizedForStreaming: int +enum GetRecentlyAddedOptimizedForStreaming1: int { - case Disable = 0; - case Enable = 1; + case Zero = 0; + case One = 1; } diff --git a/src/Models/Operations/HasThumbnail.php b/src/Models/Operations/HasThumbnail.php index e26e7b6..0fb4ab2 100644 --- a/src/Models/Operations/HasThumbnail.php +++ b/src/Models/Operations/HasThumbnail.php @@ -9,6 +9,7 @@ declare(strict_types=1); namespace LukeHagar\Plex_API\Models\Operations; +/** Indicates if the part has a thumbnail. */ enum HasThumbnail: string { case False = '0'; diff --git a/src/Models/Operations/Location.php b/src/Models/Operations/Location.php index 26e0c62..dbd5af1 100644 --- a/src/Models/Operations/Location.php +++ b/src/Models/Operations/Location.php @@ -9,21 +9,21 @@ declare(strict_types=1); namespace LukeHagar\Plex_API\Models\Operations; +/** Location - The folder path for the media item. */ class Location { /** * - * @var ?string $path + * @var string $path */ #[\Speakeasy\Serializer\Annotation\SerializedName('path')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $path = null; + public string $path; /** - * @param ?string $path + * @param string $path * @phpstan-pure */ - public function __construct(?string $path = null) + public function __construct(string $path) { $this->path = $path; } diff --git a/src/Models/Operations/Media.php b/src/Models/Operations/Media.php index 6965b7b..6a212ab 100644 --- a/src/Models/Operations/Media.php +++ b/src/Models/Operations/Media.php @@ -12,6 +12,7 @@ namespace LukeHagar\Plex_API\Models\Operations; class Media { /** + * Unique media identifier. * * @var int $id */ @@ -19,22 +20,7 @@ class Media public int $id; /** - * - * @var string $container - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('container')] - public string $container; - - /** - * $part - * - * @var array $part - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('Part')] - #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Part>')] - public array $part; - - /** + * Duration of the media in milliseconds. * * @var ?int $duration */ @@ -43,6 +29,7 @@ class Media public ?int $duration = null; /** + * Bitrate in bits per second. * * @var ?int $bitrate */ @@ -51,6 +38,7 @@ class Media public ?int $bitrate = null; /** + * Video width in pixels. * * @var ?int $width */ @@ -59,6 +47,7 @@ class Media public ?int $width = null; /** + * Video height in pixels. * * @var ?int $height */ @@ -67,6 +56,7 @@ class Media public ?int $height = null; /** + * Aspect ratio of the video. * * @var ?float $aspectRatio */ @@ -75,14 +65,7 @@ class Media public ?float $aspectRatio = null; /** - * - * @var ?string $audioProfile - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('audioProfile')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $audioProfile = null; - - /** + * Number of audio channels. * * @var ?int $audioChannels */ @@ -91,6 +74,15 @@ class Media public ?int $audioChannels = null; /** + * + * @var ?int $displayOffset + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('displayOffset')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?int $displayOffset = null; + + /** + * Audio codec used. * * @var ?string $audioCodec */ @@ -99,6 +91,7 @@ class Media public ?string $audioCodec = null; /** + * Video codec used. * * @var ?string $videoCodec */ @@ -107,6 +100,7 @@ class Media public ?string $videoCodec = null; /** + * Video resolution (e.g., 4k). * * @var ?string $videoResolution */ @@ -115,6 +109,18 @@ class Media public ?string $videoResolution = null; /** + * File container type. + * + * @var ?string $container + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('container')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $container = null; + + /** + * Frame rate of the video. Values found include NTSC, PAL, 24p + * + * * * @var ?string $videoFrameRate */ @@ -123,6 +129,7 @@ class Media public ?string $videoFrameRate = null; /** + * Video profile (e.g., main 10). * * @var ?string $videoProfile */ @@ -131,6 +138,7 @@ class Media public ?string $videoProfile = null; /** + * Indicates whether voice activity is detected. * * @var ?bool $hasVoiceActivity */ @@ -138,6 +146,25 @@ class Media #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?bool $hasVoiceActivity = null; + /** + * The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). + * + * @var ?string $audioProfile + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('audioProfile')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $audioProfile = null; + + /** + * Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true + * + * @var One|bool|null $optimizedForStreaming + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('optimizedForStreaming')] + #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\One|bool|null')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public One|bool|null $optimizedForStreaming = null; + /** * * @var ?bool $has64bitOffsets @@ -147,54 +174,57 @@ class Media public ?bool $has64bitOffsets = null; /** + * An array of parts for this media item. * - * @var ?OptimizedForStreaming $optimizedForStreaming + * @var ?array $part */ - #[\Speakeasy\Serializer\Annotation\SerializedName('optimizedForStreaming')] - #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\OptimizedForStreaming|null')] + #[\Speakeasy\Serializer\Annotation\SerializedName('Part')] + #[\Speakeasy\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Part>|null')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?OptimizedForStreaming $optimizedForStreaming = null; + public ?array $part = null; /** * @param int $id - * @param string $container - * @param array $part * @param ?int $duration * @param ?int $bitrate * @param ?int $width * @param ?int $height * @param ?float $aspectRatio - * @param ?string $audioProfile * @param ?int $audioChannels + * @param ?int $displayOffset * @param ?string $audioCodec * @param ?string $videoCodec * @param ?string $videoResolution + * @param ?string $container * @param ?string $videoFrameRate * @param ?string $videoProfile * @param ?bool $hasVoiceActivity - * @param ?OptimizedForStreaming $optimizedForStreaming + * @param ?string $audioProfile + * @param One|bool|null $optimizedForStreaming * @param ?bool $has64bitOffsets + * @param ?array $part * @phpstan-pure */ - public function __construct(int $id, string $container, array $part, ?int $duration = null, ?int $bitrate = null, ?int $width = null, ?int $height = null, ?float $aspectRatio = null, ?string $audioProfile = null, ?int $audioChannels = null, ?string $audioCodec = null, ?string $videoCodec = null, ?string $videoResolution = null, ?string $videoFrameRate = null, ?string $videoProfile = null, ?bool $hasVoiceActivity = null, ?bool $has64bitOffsets = null, ?OptimizedForStreaming $optimizedForStreaming = OptimizedForStreaming::Disable) + public function __construct(int $id, ?int $duration = null, ?int $bitrate = null, ?int $width = null, ?int $height = null, ?float $aspectRatio = null, ?int $audioChannels = null, ?int $displayOffset = null, ?string $audioCodec = null, ?string $videoCodec = null, ?string $videoResolution = null, ?string $container = null, ?string $videoFrameRate = null, ?string $videoProfile = null, ?bool $hasVoiceActivity = null, ?string $audioProfile = null, One|bool|null $optimizedForStreaming = null, ?bool $has64bitOffsets = null, ?array $part = null) { $this->id = $id; - $this->container = $container; - $this->part = $part; $this->duration = $duration; $this->bitrate = $bitrate; $this->width = $width; $this->height = $height; $this->aspectRatio = $aspectRatio; - $this->audioProfile = $audioProfile; $this->audioChannels = $audioChannels; + $this->displayOffset = $displayOffset; $this->audioCodec = $audioCodec; $this->videoCodec = $videoCodec; $this->videoResolution = $videoResolution; + $this->container = $container; $this->videoFrameRate = $videoFrameRate; $this->videoProfile = $videoProfile; $this->hasVoiceActivity = $hasVoiceActivity; - $this->has64bitOffsets = $has64bitOffsets; + $this->audioProfile = $audioProfile; $this->optimizedForStreaming = $optimizedForStreaming; + $this->has64bitOffsets = $has64bitOffsets; + $this->part = $part; } } \ No newline at end of file diff --git a/src/Models/Operations/Part.php b/src/Models/Operations/Part.php index bfe5514..8b337f5 100644 --- a/src/Models/Operations/Part.php +++ b/src/Models/Operations/Part.php @@ -12,6 +12,7 @@ namespace LukeHagar\Plex_API\Models\Operations; class Part { /** + * Unique part identifier. * * @var int $id */ @@ -19,6 +20,7 @@ class Part public int $id; /** + * Key to access this part. * * @var string $key */ @@ -26,6 +28,7 @@ class Part public string $key; /** + * File path for the part. * * @var string $file */ @@ -33,6 +36,7 @@ class Part public string $file; /** + * File size in bytes. * * @var int $size */ @@ -40,16 +44,33 @@ class Part public int $size; /** - * The container format of the media file. + * Indicates if the part is accessible. * - * - * - * @var string $container + * @var ?bool $accessible */ - #[\Speakeasy\Serializer\Annotation\SerializedName('container')] - public string $container; + #[\Speakeasy\Serializer\Annotation\SerializedName('accessible')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?bool $accessible = null; /** + * Indicates if the part exists. + * + * @var ?bool $exists + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('exists')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?bool $exists = null; + + /** + * + * @var ?string $indexes + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('indexes')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $indexes = null; + + /** + * Duration of the part in milliseconds. * * @var ?int $duration */ @@ -58,6 +79,33 @@ class Part public ?int $duration = null; /** + * + * @var ?int $packetLength + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('packetLength')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?int $packetLength = null; + + /** + * Container format of the part. + * + * @var ?string $container + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('container')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $container = null; + + /** + * Video profile for the part. + * + * @var ?string $videoProfile + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('videoProfile')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $videoProfile = null; + + /** + * The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). * * @var ?string $audioProfile */ @@ -74,31 +122,17 @@ class Part public ?bool $has64bitOffsets = null; /** + * Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true * - * @var ?bool $optimizedForStreaming + * @var GetRecentlyAddedOptimizedForStreaming1|bool|null $optimizedForStreaming */ #[\Speakeasy\Serializer\Annotation\SerializedName('optimizedForStreaming')] + #[\Speakeasy\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedOptimizedForStreaming1|bool|null')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?bool $optimizedForStreaming = null; + public GetRecentlyAddedOptimizedForStreaming1|bool|null $optimizedForStreaming = null; /** - * - * @var ?string $videoProfile - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('videoProfile')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $videoProfile = null; - - /** - * - * @var ?string $indexes - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('indexes')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $indexes = null; - - /** - * $stream + * An array of streams for this part. * * @var ?array $stream */ @@ -121,30 +155,36 @@ class Part * @param string $key * @param string $file * @param int $size - * @param string $container + * @param ?bool $accessible + * @param ?bool $exists + * @param ?string $indexes * @param ?int $duration + * @param ?int $packetLength + * @param ?string $container + * @param ?string $videoProfile * @param ?string $audioProfile * @param ?bool $has64bitOffsets - * @param ?bool $optimizedForStreaming - * @param ?string $videoProfile - * @param ?string $indexes + * @param GetRecentlyAddedOptimizedForStreaming1|bool|null $optimizedForStreaming * @param ?HasThumbnail $hasThumbnail * @param ?array $stream * @phpstan-pure */ - public function __construct(int $id, string $key, string $file, int $size, string $container, ?int $duration = null, ?string $audioProfile = null, ?bool $has64bitOffsets = null, ?bool $optimizedForStreaming = null, ?string $videoProfile = null, ?string $indexes = null, ?array $stream = null, ?HasThumbnail $hasThumbnail = HasThumbnail::False) + public function __construct(int $id, string $key, string $file, int $size, ?bool $accessible = null, ?bool $exists = null, ?string $indexes = null, ?int $duration = null, ?int $packetLength = null, ?string $container = null, ?string $videoProfile = null, ?string $audioProfile = null, ?bool $has64bitOffsets = null, GetRecentlyAddedOptimizedForStreaming1|bool|null $optimizedForStreaming = null, ?array $stream = null, ?HasThumbnail $hasThumbnail = HasThumbnail::False) { $this->id = $id; $this->key = $key; $this->file = $file; $this->size = $size; - $this->container = $container; + $this->accessible = $accessible; + $this->exists = $exists; + $this->indexes = $indexes; $this->duration = $duration; + $this->packetLength = $packetLength; + $this->container = $container; + $this->videoProfile = $videoProfile; $this->audioProfile = $audioProfile; $this->has64bitOffsets = $has64bitOffsets; $this->optimizedForStreaming = $optimizedForStreaming; - $this->videoProfile = $videoProfile; - $this->indexes = $indexes; $this->stream = $stream; $this->hasThumbnail = $hasThumbnail; } diff --git a/src/Models/Operations/Producer.php b/src/Models/Operations/Producer.php index fdc8e47..f8c52e9 100644 --- a/src/Models/Operations/Producer.php +++ b/src/Models/Operations/Producer.php @@ -12,7 +12,7 @@ namespace LukeHagar\Plex_API\Models\Operations; class Producer { /** - * The unique role identifier. + * Unique identifier for the producer. * * @var int $id */ @@ -20,7 +20,7 @@ class Producer public int $id; /** - * The filter string for the role. + * The filter string used to query this producer. * * @var string $filter */ @@ -28,7 +28,7 @@ class Producer public string $filter; /** - * The actor's name. + * The name of the producer * * @var string $tag */ @@ -36,24 +36,16 @@ class Producer public string $tag; /** - * A key associated with the actor tag. + * A unique key associated with the producer's tag, used for internal identification. * - * @var string $tagKey + * @var ?string $tagKey */ #[\Speakeasy\Serializer\Annotation\SerializedName('tagKey')] - public string $tagKey; - - /** - * The character name or role. - * - * @var ?string $role - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('role')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $role = null; + public ?string $tagKey = null; /** - * URL for the role thumbnail image. + * The URL of the thumbnail image for the actor. * * @var ?string $thumb */ @@ -65,18 +57,16 @@ class Producer * @param int $id * @param string $filter * @param string $tag - * @param string $tagKey - * @param ?string $role + * @param ?string $tagKey * @param ?string $thumb * @phpstan-pure */ - public function __construct(int $id, string $filter, string $tag, string $tagKey, ?string $role = null, ?string $thumb = null) + public function __construct(int $id, string $filter, string $tag, ?string $tagKey = null, ?string $thumb = null) { $this->id = $id; $this->filter = $filter; $this->tag = $tag; $this->tagKey = $tagKey; - $this->role = $role; $this->thumb = $thumb; } } \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryItemsMetaDataRating.php b/src/Models/Operations/Rating.php similarity index 84% rename from src/Models/Operations/GetLibraryItemsMetaDataRating.php rename to src/Models/Operations/Rating.php index 7f76ee5..a2af803 100644 --- a/src/Models/Operations/GetLibraryItemsMetaDataRating.php +++ b/src/Models/Operations/Rating.php @@ -9,10 +9,10 @@ declare(strict_types=1); namespace LukeHagar\Plex_API\Models\Operations; -class GetLibraryItemsMetaDataRating +/** Rating - The type of rating, for example 'audience' or 'critic'. */ +class Rating { /** - * A URI or path to the rating image. * * @var string $image */ @@ -20,7 +20,6 @@ class GetLibraryItemsMetaDataRating public string $image; /** - * The value of the rating. * * @var float $value */ @@ -28,7 +27,6 @@ class GetLibraryItemsMetaDataRating public float $value; /** - * The type of rating (e.g., audience, critic). * * @var string $type */ diff --git a/src/Models/Operations/Role.php b/src/Models/Operations/Role.php index bdf4585..ab74e72 100644 --- a/src/Models/Operations/Role.php +++ b/src/Models/Operations/Role.php @@ -12,43 +12,31 @@ namespace LukeHagar\Plex_API\Models\Operations; class Role { /** - * The ID of the tag or actor. + * Unique identifier for the actor or role. * - * @var ?int $id + * @var int $id */ #[\Speakeasy\Serializer\Annotation\SerializedName('id')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?int $id = null; + public int $id; /** - * The filter used to find the actor or tag. + * The filter string used to query this actor. For example, it may indicate that this is an actor with a given key. * - * @var ?string $filter + * @var string $filter */ #[\Speakeasy\Serializer\Annotation\SerializedName('filter')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $filter = null; + public string $filter; /** - * The thumbnail of the actor + * The display tag for the actor (typically the actor's name). * - * @var ?string $thumb - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('thumb')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $thumb = null; - - /** - * The name of the tag or actor. - * - * @var ?string $tag + * @var string $tag */ #[\Speakeasy\Serializer\Annotation\SerializedName('tag')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $tag = null; + public string $tag; /** - * Unique identifier for the tag. + * A unique key associated with the actor's tag, used for internal identification. * * @var ?string $tagKey */ @@ -57,7 +45,7 @@ class Role public ?string $tagKey = null; /** - * The role of the actor or tag in the media. + * The role played by the actor in the media item. * * @var ?string $role */ @@ -66,21 +54,30 @@ class Role public ?string $role = null; /** - * @param ?int $id - * @param ?string $filter - * @param ?string $thumb - * @param ?string $tag + * The URL of the thumbnail image for the actor. + * + * @var ?string $thumb + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('thumb')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $thumb = null; + + /** + * @param int $id + * @param string $filter + * @param string $tag * @param ?string $tagKey * @param ?string $role + * @param ?string $thumb * @phpstan-pure */ - public function __construct(?int $id = null, ?string $filter = null, ?string $thumb = null, ?string $tag = null, ?string $tagKey = null, ?string $role = null) + public function __construct(int $id, string $filter, string $tag, ?string $tagKey = null, ?string $role = null, ?string $thumb = null) { $this->id = $id; $this->filter = $filter; - $this->thumb = $thumb; $this->tag = $tag; $this->tagKey = $tagKey; $this->role = $role; + $this->thumb = $thumb; } } \ No newline at end of file diff --git a/src/Models/Operations/Similar.php b/src/Models/Operations/Similar.php index fee8528..243853a 100644 --- a/src/Models/Operations/Similar.php +++ b/src/Models/Operations/Similar.php @@ -9,10 +9,10 @@ declare(strict_types=1); namespace LukeHagar\Plex_API\Models\Operations; +/** Similar - The display tag for the similar item, typically the title. */ class Similar { /** - * The unique similar item identifier. * * @var int $id */ @@ -20,7 +20,6 @@ class Similar public int $id; /** - * The filter string for similar items. * * @var string $filter */ @@ -28,7 +27,6 @@ class Similar public string $filter; /** - * The tag or title of the similar content. * * @var string $tag */ diff --git a/src/Models/Operations/Stream.php b/src/Models/Operations/Stream.php index 743ee58..c2f980a 100644 --- a/src/Models/Operations/Stream.php +++ b/src/Models/Operations/Stream.php @@ -12,6 +12,7 @@ namespace LukeHagar\Plex_API\Models\Operations; class Stream { /** + * Unique stream identifier. * * @var int $id */ @@ -19,7 +20,7 @@ class Stream public int $id; /** - * Type of stream (1 = video, 2 = audio, 3 = subtitle) + * Stream type (1=video, 2=audio, 3=subtitle). * * @var int $streamType */ @@ -27,7 +28,7 @@ class Stream public int $streamType; /** - * Codec used by the stream + * Codec used by the stream. * * @var string $codec */ @@ -35,7 +36,7 @@ class Stream public string $codec; /** - * The index of the stream + * Index of the stream. * * @var int $index */ @@ -43,7 +44,23 @@ class Stream public int $index; /** - * Indicates if this is the default stream + * Display title for the stream. + * + * @var string $displayTitle + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('displayTitle')] + public string $displayTitle; + + /** + * Extended display title for the stream. + * + * @var string $extendedDisplayTitle + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('extendedDisplayTitle')] + public string $extendedDisplayTitle; + + /** + * Indicates if this stream is default. * * @var ?bool $default */ @@ -52,16 +69,7 @@ class Stream public ?bool $default = null; /** - * Indicates if the stream is selected - * - * @var ?bool $selected - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('selected')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?bool $selected = null; - - /** - * The bitrate of the stream in kbps + * Bitrate of the stream. * * @var ?int $bitrate */ @@ -70,43 +78,115 @@ class Stream public ?int $bitrate = null; /** - * The color primaries of the video stream + * Language of the stream. * - * @var ?string $colorPrimaries + * @var ?string $language */ - #[\Speakeasy\Serializer\Annotation\SerializedName('colorPrimaries')] + #[\Speakeasy\Serializer\Annotation\SerializedName('language')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $colorPrimaries = null; + public ?string $language = null; /** - * The color range of the video stream + * Language tag (e.g., en). * - * @var ?string $colorRange + * @var ?string $languageTag */ - #[\Speakeasy\Serializer\Annotation\SerializedName('colorRange')] + #[\Speakeasy\Serializer\Annotation\SerializedName('languageTag')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $colorRange = null; + public ?string $languageTag = null; /** - * The color space of the video stream + * ISO language code. * - * @var ?string $colorSpace + * @var ?string $languageCode */ - #[\Speakeasy\Serializer\Annotation\SerializedName('colorSpace')] + #[\Speakeasy\Serializer\Annotation\SerializedName('languageCode')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $colorSpace = null; + public ?string $languageCode = null; /** - * The transfer characteristics (TRC) of the video stream + * Indicates whether header compression is enabled. * - * @var ?string $colorTrc + * @var ?bool $headerCompression */ - #[\Speakeasy\Serializer\Annotation\SerializedName('colorTrc')] + #[\Speakeasy\Serializer\Annotation\SerializedName('headerCompression')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $colorTrc = null; + public ?bool $headerCompression = null; /** - * The bit depth of the video stream + * Dolby Vision BL compatibility ID. + * + * @var ?int $doviblCompatID + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('DOVIBLCompatID')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?int $doviblCompatID = null; + + /** + * Indicates if Dolby Vision BL is present. + * + * @var ?bool $doviblPresent + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('DOVIBLPresent')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?bool $doviblPresent = null; + + /** + * Indicates if Dolby Vision EL is present. + * + * @var ?bool $dovielPresent + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('DOVIELPresent')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?bool $dovielPresent = null; + + /** + * Dolby Vision level. + * + * @var ?int $doviLevel + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('DOVILevel')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?int $doviLevel = null; + + /** + * Indicates if Dolby Vision is present. + * + * @var ?bool $doviPresent + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('DOVIPresent')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?bool $doviPresent = null; + + /** + * Dolby Vision profile. + * + * @var ?int $doviProfile + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('DOVIProfile')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?int $doviProfile = null; + + /** + * Indicates if Dolby Vision RPU is present. + * + * @var ?bool $dovirpuPresent + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('DOVIRPUPresent')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?bool $dovirpuPresent = null; + + /** + * Dolby Vision version. + * + * @var ?string $doviVersion + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('DOVIVersion')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $doviVersion = null; + + /** + * Bit depth of the video stream. * * @var ?int $bitDepth */ @@ -115,7 +195,7 @@ class Stream public ?int $bitDepth = null; /** - * The chroma location of the video stream + * Chroma sample location. * * @var ?string $chromaLocation */ @@ -124,16 +204,7 @@ class Stream public ?string $chromaLocation = null; /** - * The identifier of the video stream - * - * @var ?string $streamIdentifier - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('streamIdentifier')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $streamIdentifier = null; - - /** - * The chroma subsampling format + * Chroma subsampling format. * * @var ?string $chromaSubsampling */ @@ -142,7 +213,7 @@ class Stream public ?string $chromaSubsampling = null; /** - * The coded height of the video stream + * Coded video height. * * @var ?int $codedHeight */ @@ -151,7 +222,7 @@ class Stream public ?int $codedHeight = null; /** - * The coded width of the video stream + * Coded video width. * * @var ?int $codedWidth */ @@ -159,32 +230,6 @@ class Stream #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?int $codedWidth = null; - /** - * The frame rate of the video stream - * - * @var ?float $frameRate - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('frameRate')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?float $frameRate = null; - - /** - * Indicates if the stream has a scaling matrix - * - * @var ?bool $hasScalingMatrix - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('hasScalingMatrix')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?bool $hasScalingMatrix = null; - - /** - * - * @var ?bool $hearingImpaired - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('hearingImpaired')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?bool $hearingImpaired = null; - /** * * @var ?bool $closedCaptions @@ -194,15 +239,52 @@ class Stream public ?bool $closedCaptions = null; /** + * Color primaries used. * - * @var ?string $embeddedInVideo + * @var ?string $colorPrimaries */ - #[\Speakeasy\Serializer\Annotation\SerializedName('embeddedInVideo')] + #[\Speakeasy\Serializer\Annotation\SerializedName('colorPrimaries')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $embeddedInVideo = null; + public ?string $colorPrimaries = null; /** - * The height of the video stream + * Color range (e.g., tv). + * + * @var ?string $colorRange + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('colorRange')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $colorRange = null; + + /** + * Color space. + * + * @var ?string $colorSpace + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('colorSpace')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $colorSpace = null; + + /** + * Color transfer characteristics. + * + * @var ?string $colorTrc + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('colorTrc')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $colorTrc = null; + + /** + * Frame rate of the stream. + * + * @var ?float $frameRate + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('frameRate')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?float $frameRate = null; + + /** + * Height of the video stream. * * @var ?int $height */ @@ -211,7 +293,7 @@ class Stream public ?int $height = null; /** - * The level of the video codec + * Video level. * * @var ?int $level */ @@ -220,7 +302,24 @@ class Stream public ?int $level = null; /** - * The profile of the video codec + * Indicates if this is the original stream. + * + * @var ?bool $original + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('original')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?bool $original = null; + + /** + * + * @var ?bool $hasScalingMatrix + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('hasScalingMatrix')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?bool $hasScalingMatrix = null; + + /** + * Video profile. * * @var ?string $profile */ @@ -229,16 +328,6 @@ class Stream public ?string $profile = null; /** - * Number of reference frames - * - * @var ?int $refFrames - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('refFrames')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?int $refFrames = null; - - /** - * The scan type (progressive or interlaced) * * @var ?string $scanType */ @@ -247,7 +336,24 @@ class Stream public ?string $scanType = null; /** - * The width of the video stream + * + * @var ?string $embeddedInVideo + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('embeddedInVideo')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $embeddedInVideo = null; + + /** + * Number of reference frames. + * + * @var ?int $refFrames + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('refFrames')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?int $refFrames = null; + + /** + * Width of the video stream. * * @var ?int $width */ @@ -256,25 +362,24 @@ class Stream public ?int $width = null; /** - * Display title of the stream + * Indicates if this stream is selected (applicable for audio streams). * - * @var ?string $displayTitle + * @var ?bool $selected */ - #[\Speakeasy\Serializer\Annotation\SerializedName('displayTitle')] + #[\Speakeasy\Serializer\Annotation\SerializedName('selected')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $displayTitle = null; + public ?bool $selected = null; /** - * Extended display title of the stream * - * @var ?string $extendedDisplayTitle + * @var ?bool $forced */ - #[\Speakeasy\Serializer\Annotation\SerializedName('extendedDisplayTitle')] + #[\Speakeasy\Serializer\Annotation\SerializedName('forced')] #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $extendedDisplayTitle = null; + public ?bool $forced = null; /** - * Number of audio channels (for audio streams) + * Number of audio channels (for audio streams). * * @var ?int $channels */ @@ -283,34 +388,7 @@ class Stream public ?int $channels = null; /** - * The language of the stream (for audio/subtitle streams) - * - * @var ?string $language - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('language')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $language = null; - - /** - * Language tag of the stream - * - * @var ?string $languageTag - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('languageTag')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $languageTag = null; - - /** - * Language code of the stream - * - * @var ?string $languageCode - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('languageCode')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $languageCode = null; - - /** - * The audio channel layout + * Audio channel layout. * * @var ?string $audioChannelLayout */ @@ -319,7 +397,7 @@ class Stream public ?string $audioChannelLayout = null; /** - * Sampling rate of the audio stream in Hz + * Sampling rate for the audio stream. * * @var ?int $samplingRate */ @@ -328,16 +406,7 @@ class Stream public ?int $samplingRate = null; /** - * Title of the subtitle track (for subtitle streams) - * - * @var ?string $title - */ - #[\Speakeasy\Serializer\Annotation\SerializedName('title')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $title = null; - - /** - * Indicates if the subtitle stream can auto-sync + * Indicates if the stream can auto-sync. * * @var ?bool $canAutoSync */ @@ -345,86 +414,135 @@ class Stream #[\Speakeasy\Serializer\Annotation\SkipWhenNull] public ?bool $canAutoSync = null; + /** + * Indicates if the stream is for the hearing impaired. + * + * @var ?bool $hearingImpaired + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('hearingImpaired')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?bool $hearingImpaired = null; + + /** + * Indicates if the stream is a dub. + * + * @var ?bool $dub + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('dub')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?bool $dub = null; + + /** + * Optional title for the stream (e.g., language variant). + * + * @var ?string $title + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('title')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $title = null; + /** * @param int $id * @param int $streamType * @param string $codec * @param int $index + * @param string $displayTitle + * @param string $extendedDisplayTitle * @param ?bool $default - * @param ?bool $selected * @param ?int $bitrate + * @param ?string $language + * @param ?string $languageTag + * @param ?string $languageCode + * @param ?bool $headerCompression + * @param ?int $doviblCompatID + * @param ?bool $doviblPresent + * @param ?bool $dovielPresent + * @param ?int $doviLevel + * @param ?bool $doviPresent + * @param ?int $doviProfile + * @param ?bool $dovirpuPresent + * @param ?string $doviVersion + * @param ?int $bitDepth + * @param ?string $chromaLocation + * @param ?string $chromaSubsampling + * @param ?int $codedHeight + * @param ?int $codedWidth + * @param ?bool $closedCaptions * @param ?string $colorPrimaries * @param ?string $colorRange * @param ?string $colorSpace * @param ?string $colorTrc - * @param ?int $bitDepth - * @param ?string $chromaLocation - * @param ?string $streamIdentifier - * @param ?string $chromaSubsampling - * @param ?int $codedHeight - * @param ?int $codedWidth * @param ?float $frameRate - * @param ?bool $hasScalingMatrix - * @param ?bool $hearingImpaired - * @param ?bool $closedCaptions - * @param ?string $embeddedInVideo * @param ?int $height * @param ?int $level + * @param ?bool $original + * @param ?bool $hasScalingMatrix * @param ?string $profile - * @param ?int $refFrames * @param ?string $scanType + * @param ?string $embeddedInVideo + * @param ?int $refFrames * @param ?int $width - * @param ?string $displayTitle - * @param ?string $extendedDisplayTitle + * @param ?bool $selected + * @param ?bool $forced * @param ?int $channels - * @param ?string $language - * @param ?string $languageTag - * @param ?string $languageCode * @param ?string $audioChannelLayout * @param ?int $samplingRate - * @param ?string $title * @param ?bool $canAutoSync + * @param ?bool $hearingImpaired + * @param ?bool $dub + * @param ?string $title * @phpstan-pure */ - public function __construct(int $id, int $streamType, string $codec, int $index, ?bool $default = null, ?bool $selected = null, ?int $bitrate = null, ?string $colorPrimaries = null, ?string $colorRange = null, ?string $colorSpace = null, ?string $colorTrc = null, ?int $bitDepth = null, ?string $chromaLocation = null, ?string $streamIdentifier = null, ?string $chromaSubsampling = null, ?int $codedHeight = null, ?int $codedWidth = null, ?float $frameRate = null, ?bool $hasScalingMatrix = null, ?bool $hearingImpaired = null, ?bool $closedCaptions = null, ?string $embeddedInVideo = null, ?int $height = null, ?int $level = null, ?string $profile = null, ?int $refFrames = null, ?string $scanType = null, ?int $width = null, ?string $displayTitle = null, ?string $extendedDisplayTitle = null, ?int $channels = null, ?string $language = null, ?string $languageTag = null, ?string $languageCode = null, ?string $audioChannelLayout = null, ?int $samplingRate = null, ?string $title = null, ?bool $canAutoSync = null) + public function __construct(int $id, int $streamType, string $codec, int $index, string $displayTitle, string $extendedDisplayTitle, ?bool $default = null, ?int $bitrate = null, ?string $language = null, ?string $languageTag = null, ?string $languageCode = null, ?bool $headerCompression = null, ?int $doviblCompatID = null, ?bool $doviblPresent = null, ?bool $dovielPresent = null, ?int $doviLevel = null, ?bool $doviPresent = null, ?int $doviProfile = null, ?bool $dovirpuPresent = null, ?string $doviVersion = null, ?int $bitDepth = null, ?string $chromaLocation = null, ?string $chromaSubsampling = null, ?int $codedHeight = null, ?int $codedWidth = null, ?bool $closedCaptions = null, ?string $colorPrimaries = null, ?string $colorRange = null, ?string $colorSpace = null, ?string $colorTrc = null, ?float $frameRate = null, ?int $height = null, ?int $level = null, ?bool $original = null, ?bool $hasScalingMatrix = null, ?string $profile = null, ?string $scanType = null, ?string $embeddedInVideo = null, ?int $refFrames = null, ?int $width = null, ?bool $selected = null, ?bool $forced = null, ?int $channels = null, ?string $audioChannelLayout = null, ?int $samplingRate = null, ?bool $canAutoSync = null, ?bool $hearingImpaired = null, ?bool $dub = null, ?string $title = null) { $this->id = $id; $this->streamType = $streamType; $this->codec = $codec; $this->index = $index; + $this->displayTitle = $displayTitle; + $this->extendedDisplayTitle = $extendedDisplayTitle; $this->default = $default; - $this->selected = $selected; $this->bitrate = $bitrate; + $this->language = $language; + $this->languageTag = $languageTag; + $this->languageCode = $languageCode; + $this->headerCompression = $headerCompression; + $this->doviblCompatID = $doviblCompatID; + $this->doviblPresent = $doviblPresent; + $this->dovielPresent = $dovielPresent; + $this->doviLevel = $doviLevel; + $this->doviPresent = $doviPresent; + $this->doviProfile = $doviProfile; + $this->dovirpuPresent = $dovirpuPresent; + $this->doviVersion = $doviVersion; + $this->bitDepth = $bitDepth; + $this->chromaLocation = $chromaLocation; + $this->chromaSubsampling = $chromaSubsampling; + $this->codedHeight = $codedHeight; + $this->codedWidth = $codedWidth; + $this->closedCaptions = $closedCaptions; $this->colorPrimaries = $colorPrimaries; $this->colorRange = $colorRange; $this->colorSpace = $colorSpace; $this->colorTrc = $colorTrc; - $this->bitDepth = $bitDepth; - $this->chromaLocation = $chromaLocation; - $this->streamIdentifier = $streamIdentifier; - $this->chromaSubsampling = $chromaSubsampling; - $this->codedHeight = $codedHeight; - $this->codedWidth = $codedWidth; $this->frameRate = $frameRate; - $this->hasScalingMatrix = $hasScalingMatrix; - $this->hearingImpaired = $hearingImpaired; - $this->closedCaptions = $closedCaptions; - $this->embeddedInVideo = $embeddedInVideo; $this->height = $height; $this->level = $level; + $this->original = $original; + $this->hasScalingMatrix = $hasScalingMatrix; $this->profile = $profile; - $this->refFrames = $refFrames; $this->scanType = $scanType; + $this->embeddedInVideo = $embeddedInVideo; + $this->refFrames = $refFrames; $this->width = $width; - $this->displayTitle = $displayTitle; - $this->extendedDisplayTitle = $extendedDisplayTitle; + $this->selected = $selected; + $this->forced = $forced; $this->channels = $channels; - $this->language = $language; - $this->languageTag = $languageTag; - $this->languageCode = $languageCode; $this->audioChannelLayout = $audioChannelLayout; $this->samplingRate = $samplingRate; - $this->title = $title; $this->canAutoSync = $canAutoSync; + $this->hearingImpaired = $hearingImpaired; + $this->dub = $dub; + $this->title = $title; } } \ No newline at end of file diff --git a/src/Models/Operations/Writer.php b/src/Models/Operations/Writer.php index 57671a1..a8d8c52 100644 --- a/src/Models/Operations/Writer.php +++ b/src/Models/Operations/Writer.php @@ -12,19 +12,50 @@ namespace LukeHagar\Plex_API\Models\Operations; class Writer { /** + * Unique identifier for the writer. * - * @var ?string $tag + * @var int $id */ - #[\Speakeasy\Serializer\Annotation\SerializedName('tag')] - #[\Speakeasy\Serializer\Annotation\SkipWhenNull] - public ?string $tag = null; + #[\Speakeasy\Serializer\Annotation\SerializedName('id')] + public int $id; /** - * @param ?string $tag + * The filter string used to query this writer. + * + * @var string $filter + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('filter')] + public string $filter; + + /** + * The role of Writer + * + * @var string $tag + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('tag')] + public string $tag; + + /** + * A unique key associated with the writers tag, used for internal identification. + * + * @var ?string $tagKey + */ + #[\Speakeasy\Serializer\Annotation\SerializedName('tagKey')] + #[\Speakeasy\Serializer\Annotation\SkipWhenNull] + public ?string $tagKey = null; + + /** + * @param int $id + * @param string $filter + * @param string $tag + * @param ?string $tagKey * @phpstan-pure */ - public function __construct(?string $tag = null) + public function __construct(int $id, string $filter, string $tag, ?string $tagKey = null) { + $this->id = $id; + $this->filter = $filter; $this->tag = $tag; + $this->tagKey = $tagKey; } } \ No newline at end of file diff --git a/src/SDKConfiguration.php b/src/SDKConfiguration.php index 6be65cc..1da3685 100644 --- a/src/SDKConfiguration.php +++ b/src/SDKConfiguration.php @@ -33,11 +33,11 @@ class SDKConfiguration public string $openapiDocVersion = '0.0.3'; - public string $sdkVersion = '0.14.0'; + public string $sdkVersion = '0.14.1'; public string $genVersion = '2.545.4'; - public string $userAgent = 'speakeasy-sdk/php 0.14.0 2.545.4 0.0.3 lukehagar/plex-api'; + public string $userAgent = 'speakeasy-sdk/php 0.14.1 2.545.4 0.0.3 lukehagar/plex-api'; public ?RetryConfig $retryConfig = null;