From 9b0ac863a4df50b39b058b180b65ea7c4187f436 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Mon, 10 Mar 2025 00:10:03 +0000 Subject: [PATCH] ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.513.4 --- .speakeasy/gen.lock | 39 +- .speakeasy/gen.yaml | 2 +- .speakeasy/workflow.lock | 12 +- README.md | 1 - RELEASES.md | 12 +- codeSamples.yaml | 29 - docs/models/operations/collection.md | 6 +- docs/models/operations/country.md | 10 +- docs/models/operations/director.md | 6 +- docs/models/operations/genre.md | 10 +- .../operations/getallmedialibrarygenre.md | 6 +- .../operations/getallmedialibraryguids.md | 8 + .../operations/getallmedialibrarymedia.md | 4 +- .../operations/getallmedialibrarymetadata.md | 4 +- ...getallmedialibraryoptimizedforstreaming.md | 4 +- .../operations/getallmedialibraryrole.md | 6 +- .../operations/getallmedialibrarystream.md | 8 +- .../operations/getallmedialibrarywriter.md | 2 +- ...braryitemsenablecreditsmarkergeneration.md | 11 - .../operations/getlibraryitemsepisodesort.md | 12 - .../getlibraryitemsflattenseasons.md | 12 - .../operations/getlibraryitemsmediaguid.md | 8 - .../operations/getlibraryitemsmetadata.md | 12 +- .../getlibraryitemsmetadatarating.md | 10 - .../operations/getlibraryitemsshowordering.md | 20 - ...diametadatalibraryoptimizedforstreaming.md | 4 +- .../operations/getmediametadatamedia.md | 4 +- .../operations/getmediametadatametadata.md | 4 +- .../getmediametadataoptimizedforstreaming.md | 4 +- ...iametadataoptimizedforstreaminglibrary1.md | 9 + .../operations/getmediametadataproducer.md | 13 + .../operations/getmediametadatasimilar.md | 10 + .../operations/getmediametadatastream.md | 8 +- docs/models/operations/getondeckguids.md | 8 - docs/models/operations/getondeckmedia.md | 22 - .../operations/getondeckmediacontainer.md | 14 - docs/models/operations/getondeckmetadata.md | 43 - docs/models/operations/getondeckpart.md | 16 - docs/models/operations/getondeckresponse.md | 11 - .../operations/getondeckresponsebody.md | 10 - docs/models/operations/getondeckstream.md | 30 - .../getrecentlyaddedmediacontainer.md | 12 +- .../operations/getrecentlyaddedmetadata.md | 158 +- .../getrecentlyaddedoptimizedforstreaming.md | 19 + .../getrecentlyaddedoptimizedforstreaming1.md | 9 + docs/models/operations/hasthumbnail.md | 2 + docs/models/operations/location.md | 8 +- docs/models/operations/media.md | 35 +- .../operations/optimizedforstreaming.md | 20 +- docs/models/operations/part.md | 33 +- docs/models/operations/producer.md | 15 +- docs/models/operations/rating.md | 12 + docs/models/operations/role.md | 16 +- docs/models/operations/similar.md | 12 +- docs/models/operations/stream.md | 91 +- docs/models/operations/writer.md | 9 +- docs/models/sdkerrors/getondeckbadrequest.md | 11 - docs/models/sdkerrors/getondeckerrors.md | 10 - .../sdkerrors/getondecklibraryerrors.md | 10 - .../models/sdkerrors/getondeckunauthorized.md | 11 - docs/sdks/library/README.md | 55 +- library.go | 245 -- models/operations/getallmedialibrary.go | 111 +- models/operations/getlibraryitems.go | 120 +- models/operations/getmediametadata.go | 288 +- models/operations/getondeck.go | 817 ---- models/operations/getrecentlyadded.go | 3389 +++++++++-------- models/sdkerrors/getondeck.go | 90 - plexapi.go | 4 +- 69 files changed, 2540 insertions(+), 3536 deletions(-) create mode 100644 docs/models/operations/getallmedialibraryguids.md delete mode 100644 docs/models/operations/getlibraryitemsenablecreditsmarkergeneration.md delete mode 100644 docs/models/operations/getlibraryitemsepisodesort.md delete mode 100644 docs/models/operations/getlibraryitemsflattenseasons.md delete mode 100644 docs/models/operations/getlibraryitemsmediaguid.md delete mode 100644 docs/models/operations/getlibraryitemsmetadatarating.md delete mode 100644 docs/models/operations/getlibraryitemsshowordering.md create mode 100644 docs/models/operations/getmediametadataoptimizedforstreaminglibrary1.md create mode 100644 docs/models/operations/getmediametadataproducer.md create mode 100644 docs/models/operations/getmediametadatasimilar.md delete mode 100644 docs/models/operations/getondeckguids.md delete mode 100644 docs/models/operations/getondeckmedia.md delete mode 100644 docs/models/operations/getondeckmediacontainer.md delete mode 100644 docs/models/operations/getondeckmetadata.md delete mode 100644 docs/models/operations/getondeckpart.md delete mode 100644 docs/models/operations/getondeckresponse.md delete mode 100644 docs/models/operations/getondeckresponsebody.md delete mode 100644 docs/models/operations/getondeckstream.md create mode 100644 docs/models/operations/getrecentlyaddedoptimizedforstreaming.md create mode 100644 docs/models/operations/getrecentlyaddedoptimizedforstreaming1.md create mode 100644 docs/models/operations/rating.md delete mode 100644 docs/models/sdkerrors/getondeckbadrequest.md delete mode 100644 docs/models/sdkerrors/getondeckerrors.md delete mode 100644 docs/models/sdkerrors/getondecklibraryerrors.md delete mode 100644 docs/models/sdkerrors/getondeckunauthorized.md delete mode 100644 models/operations/getondeck.go delete mode 100644 models/sdkerrors/getondeck.go diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index be4ea37..5696771 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: dfa99515-01c0-42eb-9be5-ee212fd03eb3 management: - docChecksum: 71aea44b27d124ce7bc7da09090777b5 + docChecksum: 68de03e6e877c4fc50ebfdd47bb117ac docVersion: 0.0.3 speakeasyVersion: 1.513.4 generationVersion: 2.545.4 - releaseVersion: 0.19.1 - configChecksum: 338be38840b914c5824e877a0db625a1 + releaseVersion: 0.19.2 + configChecksum: 74b5f18d17d5bac9c07a3ad0a16cd9d0 repoURL: https://github.com/LukeHagar/plexgo.git repoSubDirectory: . installationURL: https://github.com/LukeHagar/plexgo @@ -69,7 +69,6 @@ generatedFiles: - /models/operations/getmediaproviders.go - /models/operations/getmetadatachildren.go - /models/operations/getmyplexaccount.go - - /models/operations/getondeck.go - /models/operations/getpin.go - /models/operations/getplaylist.go - /models/operations/getplaylistcontents.go @@ -150,7 +149,6 @@ generatedFiles: - /models/sdkerrors/getmediaproviders.go - /models/sdkerrors/getmetadatachildren.go - /models/sdkerrors/getmyplexaccount.go - - /models/sdkerrors/getondeck.go - /models/sdkerrors/getpin.go - /models/sdkerrors/getplaylist.go - /models/sdkerrors/getplaylistcontents.go @@ -284,6 +282,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 @@ -377,12 +376,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 @@ -399,10 +395,8 @@ generatedFiles: - docs/models/operations/getlibraryitemslocation.md - docs/models/operations/getlibraryitemsmedia.md - docs/models/operations/getlibraryitemsmediacontainer.md - - docs/models/operations/getlibraryitemsmediaguid.md - docs/models/operations/getlibraryitemsmeta.md - docs/models/operations/getlibraryitemsmetadata.md - - docs/models/operations/getlibraryitemsmetadatarating.md - docs/models/operations/getlibraryitemsoperator.md - docs/models/operations/getlibraryitemsoptimizedforstreaming.md - docs/models/operations/getlibraryitemspart.md @@ -412,7 +406,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 @@ -431,11 +424,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 @@ -452,14 +448,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 @@ -511,6 +499,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 @@ -737,6 +727,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 @@ -916,10 +907,6 @@ generatedFiles: - docs/models/sdkerrors/getmyplexaccounterrors.md - docs/models/sdkerrors/getmyplexaccountservererrors.md - docs/models/sdkerrors/getmyplexaccountunauthorized.md - - docs/models/sdkerrors/getondeckbadrequest.md - - docs/models/sdkerrors/getondeckerrors.md - - docs/models/sdkerrors/getondecklibraryerrors.md - - docs/models/sdkerrors/getondeckunauthorized.md - docs/models/sdkerrors/getpinbadrequest.md - docs/models/sdkerrors/getpinerrors.md - docs/models/sdkerrors/getplaylistbadrequest.md @@ -1530,7 +1517,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: @@ -2234,7 +2221,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": @@ -2255,7 +2242,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 dd63d77..bfd6771 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -15,7 +15,7 @@ generation: oAuth2ClientCredentialsEnabled: true oAuth2PasswordEnabled: false go: - version: 0.19.1 + version: 0.19.2 additionalDependencies: {} allowUnknownFieldsInWeakUnions: false clientServerStatusCodesAsErrors: true diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index fe70e86..ac1cfde 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-1741392494 + - speakeasy-sdk-regen-1741565327 targets: plexgo: source: plexapi sourceNamespace: plexapi - sourceRevisionDigest: sha256:bf7001af017ce5072c503bfbaf60793f94549163b517489dc53e4f7b685659c0 - sourceBlobDigest: sha256:ed2b29043c84f32d2efa92a126083fd9a81644a7ce9c6ac86d9aeb3493cbd6f8 + sourceRevisionDigest: sha256:2066ba94b55e21d651c79003e3cf402fb77c52a0969fc52310b3383fbed038f4 + sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351 codeSamplesNamespace: code-samples-go-plexgo - codeSamplesRevisionDigest: sha256:01609ce90e3ede4fb9713410186aab8747cf7992930126be0a0e4af56761e5e0 + codeSamplesRevisionDigest: sha256:1c039b4b936c2e504fdce037068ca992efeb22b94f6fc013db92ed1923c0bc33 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README.md b/README.md index 8b0412f..fdfeed8 100644 --- a/README.md +++ b/README.md @@ -152,7 +152,6 @@ func main() { * [GetMediaMetaData](docs/sdks/library/README.md#getmediametadata) - Get Media Metadata * [GetMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children * [GetTopWatchedContent](docs/sdks/library/README.md#gettopwatchedcontent) - Get Top Watched Content -* [GetOnDeck](docs/sdks/library/README.md#getondeck) - Get On Deck ### [Log](docs/sdks/log/README.md) diff --git a/RELEASES.md b/RELEASES.md index cb22ff2..6a4fa0d 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1062,4 +1062,14 @@ Based on: ### Generated - [go v0.19.1] . ### Releases -- [Go v0.19.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.19.1 - . \ No newline at end of file +- [Go v0.19.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.19.1 - . + +## 2025-03-10 00:08:31 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.513.4 (2.545.4) https://github.com/speakeasy-api/speakeasy +### Generated +- [go v0.19.2] . +### Releases +- [Go v0.19.2] https://github.com/LukeHagar/plexgo/releases/tag/v0.19.2 - . \ No newline at end of file diff --git a/codeSamples.yaml b/codeSamples.yaml index e08bbe2..53a5643 100644 --- a/codeSamples.yaml +++ b/codeSamples.yaml @@ -950,35 +950,6 @@ actions: // handle response } } - - target: $["paths"]["/library/onDeck"]["get"] - update: - x-codeSamples: - - lang: go - label: getOnDeck - source: |- - package main - - import( - "context" - "github.com/LukeHagar/plexgo" - "log" - ) - - func main() { - ctx := context.Background() - - s := plexgo.New( - plexgo.WithSecurity(""), - ) - - res, err := s.Library.GetOnDeck(ctx) - if err != nil { - log.Fatal(err) - } - if res.Object != nil { - // handle response - } - } - target: $["paths"]["/library/recentlyAdded"]["get"] update: x-codeSamples: diff --git a/docs/models/operations/collection.md b/docs/models/operations/collection.md index d4eeab4..b58e7d3 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 a3f5fe0..3a13d15 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` | *int64* | :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 473ca01..d5bc7ba 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 a67234c..d715d0d 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` | *int64* | :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 6e3962c..26739a5 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..709a1ec --- /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 b934ffa..c1a774a 100644 --- a/docs/models/operations/getallmedialibrarymedia.md +++ b/docs/models/operations/getallmedialibrarymedia.md @@ -19,8 +19,8 @@ | `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_check_mark: | Indicates whether voice activity is detected. | false | +| `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.GetAllMediaLibraryOptimizedForStreaming](../../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` | [][operations.GetAllMediaLibraryPart](../../models/operations/getallmedialibrarypart.md) | :heavy_check_mark: | An array of parts for this media item. | | \ No newline at end of file +| `Part` | [][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 c084e61..b38e46f 100644 --- a/docs/models/operations/getallmedialibrarymetadata.md +++ b/docs/models/operations/getallmedialibrarymetadata.md @@ -20,7 +20,7 @@ Unknown | `Summary` | *string* | :heavy_check_mark: | A synopsis of the media item. | Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.
Once a familiar threat returns to finish what was previously started, Jake must
work with Neytiri and the army of the Na'vi race to protect their home.
| | `Rating` | *float32* | :heavy_check_mark: | The critic rating for the media item. | 7.6 | | `AudienceRating` | *float64* | :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 | +| `Year` | **int* | :heavy_minus_sign: | The release year of the media item. | 2022 | | `Tagline` | *string* | :heavy_check_mark: | A brief tagline for the media item. | Return to Pandora. | | `Thumb` | *string* | :heavy_check_mark: | The thumbnail image URL for the media item. | /library/metadata/58683/thumb/1703239236 | | `Art` | *string* | :heavy_check_mark: | The art image URL for the media item. | /library/metadata/58683/art/1703239236 | @@ -70,5 +70,5 @@ Unknown | `Director` | [][operations.GetAllMediaLibraryDirector](../../models/operations/getallmedialibrarydirector.md) | :heavy_minus_sign: | N/A | | | `Writer` | [][operations.GetAllMediaLibraryWriter](../../models/operations/getallmedialibrarywriter.md) | :heavy_minus_sign: | N/A | | | `Role` | [][operations.GetAllMediaLibraryRole](../../models/operations/getallmedialibraryrole.md) | :heavy_minus_sign: | N/A | | -| `Guids` | [][operations.Guids](../../models/operations/guids.md) | :heavy_minus_sign: | N/A | | +| `Guids` | [][operations.GetAllMediaLibraryGuids](../../models/operations/getallmedialibraryguids.md) | :heavy_minus_sign: | N/A | | | `Collection` | [][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 7a77cf8..f1ab323 100644 --- a/docs/models/operations/getallmedialibraryoptimizedforstreaming.md +++ b/docs/models/operations/getallmedialibraryoptimizedforstreaming.md @@ -5,10 +5,10 @@ Has this media been optimized for streaming. NOTE: This can be 0, 1, false or tr ## Supported Types -### One +### OptimizedForStreaming1 ```go -getAllMediaLibraryOptimizedForStreaming := operations.CreateGetAllMediaLibraryOptimizedForStreamingOne(operations.One{/* values here */}) +getAllMediaLibraryOptimizedForStreaming := operations.CreateGetAllMediaLibraryOptimizedForStreamingOptimizedForStreaming1(operations.OptimizedForStreaming1{/* values here */}) ``` ### diff --git a/docs/models/operations/getallmedialibraryrole.md b/docs/models/operations/getallmedialibraryrole.md index b82113f..d6837bb 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 23fa8b2..25ef3e2 100644 --- a/docs/models/operations/getallmedialibrarystream.md +++ b/docs/models/operations/getallmedialibrarystream.md @@ -11,9 +11,9 @@ | `Codec` | *string* | :heavy_check_mark: | Codec used by the stream. | hevc | | `Index` | *int* | :heavy_check_mark: | Index of the stream. | 0 | | `Bitrate` | **int* | :heavy_minus_sign: | Bitrate of the stream. | 24743 | -| `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 | +| `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 | @@ -28,6 +28,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 | @@ -39,6 +40,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 | | `DisplayTitle` | *string* | :heavy_check_mark: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | diff --git a/docs/models/operations/getallmedialibrarywriter.md b/docs/models/operations/getallmedialibrarywriter.md index 520daef..9c71fcb 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 e5591dc..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 | -| ------------------------------------------------------------ | ------------------------------------------------------------ | -| `GetLibraryItemsEnableCreditsMarkerGenerationLibraryDefault` | -1 | -| `GetLibraryItemsEnableCreditsMarkerGenerationDisabled` | 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 20a9f13..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 | -| ------------------------------------------ | ------------------------------------------ | -| `GetLibraryItemsEpisodeSortLibraryDefault` | -1 | -| `GetLibraryItemsEpisodeSortOldestFirst` | 0 | -| `GetLibraryItemsEpisodeSortNewestFirst` | 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 09a23e5..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 | -| --------------------------------------------- | --------------------------------------------- | -| `GetLibraryItemsFlattenSeasonsLibraryDefault` | -1 | -| `GetLibraryItemsFlattenSeasonsHide` | 0 | -| `GetLibraryItemsFlattenSeasonsShow` | 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 fcfdeef..0000000 --- a/docs/models/operations/getlibraryitemsmediaguid.md +++ /dev/null @@ -1,8 +0,0 @@ -# GetLibraryItemsMediaGUID - - -## Fields - -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | -| `ID` | *string* | :heavy_check_mark: | Can be one of the following formats:
imdb://tt13015952, tmdb://2434012, tvdb://7945991
| imdb://tt13015952 | \ No newline at end of file diff --git a/docs/models/operations/getlibraryitemsmetadata.md b/docs/models/operations/getlibraryitemsmetadata.md index 2b995d6..9d0c81e 100644 --- a/docs/models/operations/getlibraryitemsmetadata.md +++ b/docs/models/operations/getlibraryitemsmetadata.md @@ -23,10 +23,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` | [][operations.GetLibraryItemsCollection](../../models/operations/getlibraryitemscollection.md) | :heavy_minus_sign: | N/A | | | `Role` | [][operations.GetLibraryItemsRole](../../models/operations/getlibraryitemsrole.md) | :heavy_minus_sign: | N/A | | | `Location` | [][operations.GetLibraryItemsLocation](../../models/operations/getlibraryitemslocation.md) | :heavy_minus_sign: | N/A | | -| `MediaGUID` | [][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` | [][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` | [][operations.GetLibraryItemsMetaDataRating](../../models/operations/getlibraryitemsmetadatarating.md) | :heavy_minus_sign: | N/A | | +| `MetaDataRating` | [][operations.MetaDataRating](../../models/operations/metadatarating.md) | :heavy_minus_sign: | N/A | | | `Image` | [][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/getlibraryitemsmetadatarating.md b/docs/models/operations/getlibraryitemsmetadatarating.md deleted file mode 100644 index 66ff724..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` | *float32* | :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/getlibraryitemsshowordering.md b/docs/models/operations/getlibraryitemsshowordering.md deleted file mode 100644 index 9e3314d..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 | -| ----------------------------------------- | ----------------------------------------- | -| `GetLibraryItemsShowOrderingNone` | None | -| `GetLibraryItemsShowOrderingTmdbAiring` | tmdbAiring | -| `GetLibraryItemsShowOrderingTvdbAired` | aired | -| `GetLibraryItemsShowOrderingTvdbDvd` | dvd | -| `GetLibraryItemsShowOrderingTvdbAbsolute` | absolute | \ No newline at end of file diff --git a/docs/models/operations/getmediametadatalibraryoptimizedforstreaming.md b/docs/models/operations/getmediametadatalibraryoptimizedforstreaming.md index eba3720..badf5a6 100644 --- a/docs/models/operations/getmediametadatalibraryoptimizedforstreaming.md +++ b/docs/models/operations/getmediametadatalibraryoptimizedforstreaming.md @@ -5,10 +5,10 @@ Has this media been optimized for streaming. NOTE: This can be 0, 1, false or tr ## Supported Types -### GetMediaMetaDataOptimizedForStreaming1 +### GetMediaMetaDataOptimizedForStreamingLibrary1 ```go -getMediaMetaDataLibraryOptimizedForStreaming := operations.CreateGetMediaMetaDataLibraryOptimizedForStreamingGetMediaMetaDataOptimizedForStreaming1(operations.GetMediaMetaDataOptimizedForStreaming1{/* values here */}) +getMediaMetaDataLibraryOptimizedForStreaming := operations.CreateGetMediaMetaDataLibraryOptimizedForStreamingGetMediaMetaDataOptimizedForStreamingLibrary1(operations.GetMediaMetaDataOptimizedForStreamingLibrary1{/* values here */}) ``` ### diff --git a/docs/models/operations/getmediametadatamedia.md b/docs/models/operations/getmediametadatamedia.md index e976ed6..8b5e15b 100644 --- a/docs/models/operations/getmediametadatamedia.md +++ b/docs/models/operations/getmediametadatamedia.md @@ -19,8 +19,8 @@ | `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_check_mark: | Indicates whether voice activity is detected. | false | +| `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.GetMediaMetaDataOptimizedForStreaming](../../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` | [][operations.GetMediaMetaDataPart](../../models/operations/getmediametadatapart.md) | :heavy_check_mark: | An array of parts for this media item. | | \ No newline at end of file +| `Part` | [][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 cd7dfcc..1c18a2a 100644 --- a/docs/models/operations/getmediametadatametadata.md +++ b/docs/models/operations/getmediametadatametadata.md @@ -63,6 +63,6 @@ | `Role` | [][operations.GetMediaMetaDataRole](../../models/operations/getmediametadatarole.md) | :heavy_minus_sign: | An array of Actor roles. | | | `Director` | [][operations.GetMediaMetaDataDirector](../../models/operations/getmediametadatadirector.md) | :heavy_minus_sign: | An array of Director roles. | | | `Writer` | [][operations.GetMediaMetaDataWriter](../../models/operations/getmediametadatawriter.md) | :heavy_minus_sign: | An array of Writer roles. | | -| `Producer` | [][operations.Producer](../../models/operations/producer.md) | :heavy_minus_sign: | An array of Writer roles. | | -| `Similar` | [][operations.Similar](../../models/operations/similar.md) | :heavy_minus_sign: | An array of similar content objects. | | +| `Producer` | [][operations.GetMediaMetaDataProducer](../../models/operations/getmediametadataproducer.md) | :heavy_minus_sign: | An array of Writer roles. | | +| `Similar` | [][operations.GetMediaMetaDataSimilar](../../models/operations/getmediametadatasimilar.md) | :heavy_minus_sign: | An array of similar content objects. | | | `Location` | [][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 dbfde26..43e7076 100644 --- a/docs/models/operations/getmediametadataoptimizedforstreaming.md +++ b/docs/models/operations/getmediametadataoptimizedforstreaming.md @@ -5,10 +5,10 @@ Has this media been optimized for streaming. NOTE: This can be 0, 1, false or tr ## Supported Types -### OptimizedForStreaming1 +### GetMediaMetaDataOptimizedForStreaming1 ```go -getMediaMetaDataOptimizedForStreaming := operations.CreateGetMediaMetaDataOptimizedForStreamingOptimizedForStreaming1(operations.OptimizedForStreaming1{/* values here */}) +getMediaMetaDataOptimizedForStreaming := operations.CreateGetMediaMetaDataOptimizedForStreamingGetMediaMetaDataOptimizedForStreaming1(operations.GetMediaMetaDataOptimizedForStreaming1{/* values here */}) ``` ### diff --git a/docs/models/operations/getmediametadataoptimizedforstreaminglibrary1.md b/docs/models/operations/getmediametadataoptimizedforstreaminglibrary1.md new file mode 100644 index 0000000..31e0f34 --- /dev/null +++ b/docs/models/operations/getmediametadataoptimizedforstreaminglibrary1.md @@ -0,0 +1,9 @@ +# GetMediaMetaDataOptimizedForStreamingLibrary1 + + +## Values + +| Name | Value | +| --------------------------------------------------- | --------------------------------------------------- | +| `GetMediaMetaDataOptimizedForStreamingLibrary1Zero` | 0 | +| `GetMediaMetaDataOptimizedForStreamingLibrary1One` | 1 | \ 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..11cf110 --- /dev/null +++ b/docs/models/operations/getmediametadataproducer.md @@ -0,0 +1,13 @@ +# GetMediaMetaDataProducer + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `ID` | *int64* | :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..9531b4b --- /dev/null +++ b/docs/models/operations/getmediametadatasimilar.md @@ -0,0 +1,10 @@ +# GetMediaMetaDataSimilar + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| `ID` | *int64* | :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 911f297..ea023e7 100644 --- a/docs/models/operations/getmediametadatastream.md +++ b/docs/models/operations/getmediametadatastream.md @@ -11,9 +11,9 @@ | `Codec` | *string* | :heavy_check_mark: | Codec used by the stream. | hevc | | `Index` | *int* | :heavy_check_mark: | Index of the stream. | 0 | | `Bitrate` | **int* | :heavy_minus_sign: | Bitrate of the stream. | 24743 | -| `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 | +| `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 | @@ -28,6 +28,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 | @@ -39,6 +40,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 | | `DisplayTitle` | *string* | :heavy_check_mark: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | diff --git a/docs/models/operations/getondeckguids.md b/docs/models/operations/getondeckguids.md deleted file mode 100644 index 41ed1d5..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 d773382..0000000 --- a/docs/models/operations/getondeckmedia.md +++ /dev/null @@ -1,22 +0,0 @@ -# GetOnDeckMedia - - -## Fields - -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| `ID` | **float64* | :heavy_minus_sign: | N/A | 80994 | -| `Duration` | **float64* | :heavy_minus_sign: | N/A | 420080 | -| `Bitrate` | **float64* | :heavy_minus_sign: | N/A | 1046 | -| `Width` | **float64* | :heavy_minus_sign: | N/A | 1920 | -| `Height` | **float64* | :heavy_minus_sign: | N/A | 1080 | -| `AspectRatio` | **float64* | :heavy_minus_sign: | N/A | 1.78 | -| `AudioChannels` | **float64* | :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` | [][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 8bb8233..0000000 --- a/docs/models/operations/getondeckmediacontainer.md +++ /dev/null @@ -1,14 +0,0 @@ -# GetOnDeckMediaContainer - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | -| `Size` | **float64* | :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` | **float64* | :heavy_minus_sign: | N/A | 1680021154 | -| `MixedParents` | **bool* | :heavy_minus_sign: | N/A | | -| `Metadata` | [][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 0e78de2..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` | **float64* | :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` | **float64* | :heavy_minus_sign: | N/A | 49564 | -| `Key` | **string* | :heavy_minus_sign: | N/A | /library/metadata/49564 | -| `ParentRatingKey` | **float64* | :heavy_minus_sign: | N/A | 49557 | -| `GrandparentRatingKey` | **float64* | :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` | **float64* | :heavy_minus_sign: | N/A | 33 | -| `ParentIndex` | **float64* | :heavy_minus_sign: | N/A | 2 | -| `LastViewedAt` | **float64* | :heavy_minus_sign: | N/A | 1681908352 | -| `Year` | **float64* | :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` | **float64* | :heavy_minus_sign: | N/A | 420080 | -| `OriginallyAvailableAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A | 2020-10-31 00:00:00 +0000 UTC | -| `AddedAt` | **float64* | :heavy_minus_sign: | N/A | 1654258196 | -| `UpdatedAt` | **float64* | :heavy_minus_sign: | N/A | 1654258204 | -| `Media` | [][operations.GetOnDeckMedia](../../models/operations/getondeckmedia.md) | :heavy_minus_sign: | N/A | | -| `Guids` | [][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 b937520..0000000 --- a/docs/models/operations/getondeckpart.md +++ /dev/null @@ -1,16 +0,0 @@ -# GetOnDeckPart - - -## Fields - -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `ID` | **float64* | :heavy_minus_sign: | N/A | 80994 | -| `Key` | **string* | :heavy_minus_sign: | N/A | /library/parts/80994/1655007810/file.mkv | -| `Duration` | **float64* | :heavy_minus_sign: | N/A | 420080 | -| `File` | **string* | :heavy_minus_sign: | N/A | /tvshows/Bluey (2018)/Bluey (2018) - S02E33 - Circus.mkv | -| `Size` | **float64* | :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` | [][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 0df972d..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` | [*http.Response](https://pkg.go.dev/net/http#Response) | :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 8134ee9..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 32f0468..0000000 --- a/docs/models/operations/getondeckstream.md +++ /dev/null @@ -1,30 +0,0 @@ -# GetOnDeckStream - - -## Fields - -| Field | Type | Required | Description | Example | -| ---------------------- | ---------------------- | ---------------------- | ---------------------- | ---------------------- | -| `ID` | **float64* | :heavy_minus_sign: | N/A | 211234 | -| `StreamType` | **float64* | :heavy_minus_sign: | N/A | 1 | -| `Default` | **bool* | :heavy_minus_sign: | N/A | | -| `Codec` | **string* | :heavy_minus_sign: | N/A | hevc | -| `Index` | **float64* | :heavy_minus_sign: | N/A | 0 | -| `Bitrate` | **float64* | :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` | **float64* | :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` | **float64* | :heavy_minus_sign: | N/A | 1080 | -| `CodedWidth` | **float64* | :heavy_minus_sign: | N/A | 1920 | -| `ColorRange` | **string* | :heavy_minus_sign: | N/A | tv | -| `FrameRate` | **float64* | :heavy_minus_sign: | N/A | 25 | -| `Height` | **float64* | :heavy_minus_sign: | N/A | 1080 | -| `Level` | **float64* | :heavy_minus_sign: | N/A | 120 | -| `Profile` | **string* | :heavy_minus_sign: | N/A | main | -| `RefFrames` | **float64* | :heavy_minus_sign: | N/A | 1 | -| `Width` | **float64* | :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 e1af96f..77a49ab 100644 --- a/docs/models/operations/getrecentlyaddedmediacontainer.md +++ b/docs/models/operations/getrecentlyaddedmediacontainer.md @@ -5,10 +5,10 @@ | Field | Type | Required | Description | Example | | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | -| `Size` | *int64* | :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` | *int64* | :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` | [][operations.GetRecentlyAddedMetadata](../../models/operations/getrecentlyaddedmetadata.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file +| `Metadata` | [][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 c82e13a..3025000 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 | -| `Studio` | **string* | :heavy_minus_sign: | N/A | 20th Century Studios | -| `SkipChildren` | **bool* | :heavy_minus_sign: | N/A | false | -| `LibrarySectionID` | **int64* | :heavy_minus_sign: | N/A | 1 | -| `LibrarySectionTitle` | **string* | :heavy_minus_sign: | N/A | Movies | -| `LibrarySectionKey` | **string* | :heavy_minus_sign: | N/A | /library/sections/1 | -| `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 | -| `Slug` | **string* | :heavy_minus_sign: | N/A | 4-for-texas | -| `ContentRating` | **string* | :heavy_minus_sign: | N/A | PG-13 | -| `Summary` | *string* | :heavy_check_mark: | N/A | Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home. | -| `Rating` | **float64* | :heavy_minus_sign: | N/A | 7.6 | -| `AudienceRating` | **float64* | :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` | [*types.Date](../../types/date.md) | :heavy_minus_sign: | N/A | 2022-12-14 00:00:00 +0000 UTC | -| `AddedAt` | *int64* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 | -| `UpdatedAt` | **int64* | :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` | [][operations.Media](../../models/operations/media.md) | :heavy_minus_sign: | The Media object is only included when type query is `4` or higher.
| | -| `Genre` | [][operations.Genre](../../models/operations/genre.md) | :heavy_minus_sign: | N/A | | -| `Country` | [][operations.Country](../../models/operations/country.md) | :heavy_minus_sign: | N/A | | -| `Director` | [][operations.Director](../../models/operations/director.md) | :heavy_minus_sign: | N/A | | -| `Writer` | [][operations.Writer](../../models/operations/writer.md) | :heavy_minus_sign: | N/A | | -| `Collection` | [][operations.Collection](../../models/operations/collection.md) | :heavy_minus_sign: | N/A | | -| `Role` | [][operations.Role](../../models/operations/role.md) | :heavy_minus_sign: | N/A | | -| `Location` | [][operations.Location](../../models/operations/location.md) | :heavy_minus_sign: | N/A | | -| `MediaGUID` | [][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` | [][operations.MetaDataRating](../../models/operations/metadatarating.md) | :heavy_minus_sign: | N/A | | -| `Image` | [][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` | *int64* | :heavy_check_mark: | N/A | 1556281940 | +| `Art` | *string* | :heavy_check_mark: | The art image URL for the media item. | /library/metadata/58683/art/1703239236 | +| `AudienceRatingImage` | **string* | :heavy_minus_sign: | The URL for the audience rating image. | rottentomatoes://image.rating.upright | +| `AudienceRating` | *float64* | :heavy_check_mark: | The audience rating for the media item. | 9.2 | +| `ChapterSource` | **string* | :heavy_minus_sign: | The source from which chapter data is derived. | media | +| `ChildCount` | *int* | :heavy_check_mark: | The number of child items associated with this media item. | 1 | +| `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 | +| `Duration` | *int* | :heavy_check_mark: | The duration of the media item in milliseconds. | 11558112 | +| `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 | +| `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 | +| `LastRatedAt` | **int64* | :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 | +| `LibrarySectionID` | *int64* | :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 | +| `OriginalTitle` | **string* | :heavy_minus_sign: | The original title of the media item (if different). | 映画 ブラッククローバー 魔法帝の剣 | +| `OriginallyAvailableAt` | [types.Date](../../types/date.md) | :heavy_check_mark: | The original release date of the media item. | 2022-12-14 | +| `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 | +| `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 | +| `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 | +| `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` | *float32* | :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 | +| `SkipCount` | **int* | :heavy_minus_sign: | The number of times this media item has been skipped. | 1 | +| `Slug` | *string* | :heavy_check_mark: | A URL‐friendly version of the media title. | 4-for-texas | +| `Studio` | **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 | +| `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 | +| `UpdatedAt` | **int64* | :heavy_minus_sign: | Unix epoch datetime in seconds | 1556281940 | +| `UserRating` | **float32* | :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` | [][operations.GetRecentlyAddedImage](../../models/operations/getrecentlyaddedimage.md) | :heavy_minus_sign: | N/A | | +| `UltraBlurColors` | [*operations.UltraBlurColors](../../models/operations/ultrablurcolors.md) | :heavy_minus_sign: | N/A | | +| `Media` | [][operations.Media](../../models/operations/media.md) | :heavy_minus_sign: | N/A | | +| `Genre` | [][operations.Genre](../../models/operations/genre.md) | :heavy_minus_sign: | N/A | | +| `Country` | [][operations.Country](../../models/operations/country.md) | :heavy_minus_sign: | N/A | | +| `Director` | [][operations.Director](../../models/operations/director.md) | :heavy_minus_sign: | N/A | | +| `Writer` | [][operations.Writer](../../models/operations/writer.md) | :heavy_minus_sign: | N/A | | +| `Role` | [][operations.Role](../../models/operations/role.md) | :heavy_minus_sign: | N/A | | +| `Producer` | [][operations.Producer](../../models/operations/producer.md) | :heavy_minus_sign: | N/A | | +| `Rating1` | [][operations.Rating](../../models/operations/rating.md) | :heavy_minus_sign: | N/A | | +| `Similar` | [][operations.Similar](../../models/operations/similar.md) | :heavy_minus_sign: | N/A | | +| `Location` | [][operations.Location](../../models/operations/location.md) | :heavy_minus_sign: | N/A | | +| `Guids` | [][operations.Guids](../../models/operations/guids.md) | :heavy_minus_sign: | N/A | | +| `Collection` | [][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..8e88efa --- /dev/null +++ b/docs/models/operations/getrecentlyaddedoptimizedforstreaming.md @@ -0,0 +1,19 @@ +# GetRecentlyAddedOptimizedForStreaming + +Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true + + +## Supported Types + +### GetRecentlyAddedOptimizedForStreaming1 + +```go +getRecentlyAddedOptimizedForStreaming := operations.CreateGetRecentlyAddedOptimizedForStreamingGetRecentlyAddedOptimizedForStreaming1(operations.GetRecentlyAddedOptimizedForStreaming1{/* values here */}) +``` + +### + +```go +getRecentlyAddedOptimizedForStreaming := operations.CreateGetRecentlyAddedOptimizedForStreamingBoolean(bool{/* values here */}) +``` + diff --git a/docs/models/operations/getrecentlyaddedoptimizedforstreaming1.md b/docs/models/operations/getrecentlyaddedoptimizedforstreaming1.md new file mode 100644 index 0000000..4bd115a --- /dev/null +++ b/docs/models/operations/getrecentlyaddedoptimizedforstreaming1.md @@ -0,0 +1,9 @@ +# GetRecentlyAddedOptimizedForStreaming1 + + +## Values + +| Name | Value | +| -------------------------------------------- | -------------------------------------------- | +| `GetRecentlyAddedOptimizedForStreaming1Zero` | 0 | +| `GetRecentlyAddedOptimizedForStreaming1One` | 1 | \ No newline at end of file diff --git a/docs/models/operations/hasthumbnail.md b/docs/models/operations/hasthumbnail.md index 63f1316..52406a1 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 f3f73b1..d8aa98a 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 19ad131..7ba1a29 100644 --- a/docs/models/operations/media.md +++ b/docs/models/operations/media.md @@ -5,21 +5,22 @@ | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | -| `ID` | *int* | :heavy_check_mark: | N/A | 119534 | -| `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` | **float64* | :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 | -| `Container` | *string* | :heavy_check_mark: | N/A | mkv | -| `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 | +| `ID` | *int64* | :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` | **float32* | :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.OptimizedForStreaming](../../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` | [][operations.Part](../../models/operations/part.md) | :heavy_check_mark: | N/A | | \ No newline at end of file +| `Part` | [][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 47a07ae..b60d7df 100644 --- a/docs/models/operations/optimizedforstreaming.md +++ b/docs/models/operations/optimizedforstreaming.md @@ -1,9 +1,19 @@ # OptimizedForStreaming +Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true -## Values -| Name | Value | -| ------------------------------ | ------------------------------ | -| `OptimizedForStreamingDisable` | 0 | -| `OptimizedForStreamingEnable` | 1 | \ No newline at end of file +## Supported Types + +### One + +```go +optimizedForStreaming := operations.CreateOptimizedForStreamingOne(operations.One{/* values here */}) +``` + +### + +```go +optimizedForStreaming := operations.CreateOptimizedForStreamingBoolean(bool{/* values here */}) +``` + diff --git a/docs/models/operations/part.md b/docs/models/operations/part.md index ef3c4be..9caed81 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 | -| `Duration` | **int* | :heavy_minus_sign: | N/A | 11558112 | -| `File` | *string* | :heavy_check_mark: | N/A | /movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv | -| `Size` | *int64* | :heavy_check_mark: | N/A | 36158371307 | -| `Container` | *string* | :heavy_check_mark: | The container format of the media file.
| mkv | -| `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` | [][operations.Stream](../../models/operations/stream.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `Accessible` | **bool* | :heavy_minus_sign: | Indicates if the part is accessible. | true | +| `Exists` | **bool* | :heavy_minus_sign: | Indicates if the part exists. | true | +| `ID` | *int64* | :heavy_check_mark: | Unique part identifier. | 418385 | +| `Key` | *string* | :heavy_check_mark: | Key to access this part. | /library/parts/418385/1735864239/file.mkv | +| `Indexes` | **string* | :heavy_minus_sign: | N/A | sd | +| `Duration` | **int* | :heavy_minus_sign: | Duration of the part in milliseconds. | 9610350 | +| `File` | *string* | :heavy_check_mark: | File path for the part. | /mnt/Movies_1/W/Wicked (2024).mkv | +| `Size` | *int64* | :heavy_check_mark: | File size in bytes. | 30649952104 | +| `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.GetRecentlyAddedOptimizedForStreaming](../../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` | [][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 54feba6..83a278d 100644 --- a/docs/models/operations/producer.md +++ b/docs/models/operations/producer.md @@ -3,11 +3,10 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| `ID` | *int64* | :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` | *int64* | :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..347c1f9 --- /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` | *float64* | :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 c0c7761..71ea5a8 100644 --- a/docs/models/operations/role.md +++ b/docs/models/operations/role.md @@ -3,11 +3,11 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| `ID` | **int64* | :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` | *int64* | :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 5253fd3..5b57d2b 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` | *int64* | :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` | *int64* | :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 dfec48a..cbc48a3 100644 --- a/docs/models/operations/stream.md +++ b/docs/models/operations/stream.md @@ -3,43 +3,54 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | -| `ID` | *int64* | :heavy_check_mark: | N/A | 272796 | -| `StreamType` | *int64* | :heavy_check_mark: | Type of stream (1 = video, 2 = audio, 3 = subtitle) | 1 | -| `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 | -| `Codec` | *string* | :heavy_check_mark: | Codec used by the stream | h264 | -| `Index` | *int64* | :heavy_check_mark: | The index of the stream | 0 | -| `Bitrate` | **int64* | :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` | **int64* | :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` | **int64* | :heavy_minus_sign: | The coded height of the video stream | 1088 | -| `CodedWidth` | **int64* | :heavy_minus_sign: | The coded width of the video stream | 1920 | -| `FrameRate` | **float64* | :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` | **int64* | :heavy_minus_sign: | The height of the video stream | 1080 | -| `Level` | **int64* | :heavy_minus_sign: | The level of the video codec | 40 | -| `Profile` | **string* | :heavy_minus_sign: | The profile of the video codec | main | -| `RefFrames` | **int64* | :heavy_minus_sign: | Number of reference frames | 4 | -| `ScanType` | **string* | :heavy_minus_sign: | The scan type (progressive or interlaced) | progressive | -| `Width` | **int64* | :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` | **int64* | :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` | **int64* | :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` | *int64* | :heavy_check_mark: | Unique stream identifier. | 1002625 | +| `StreamType` | *int* | :heavy_check_mark: | Stream type (1=video, 2=audio, 3=subtitle). | 1 | +| `Default` | **bool* | :heavy_minus_sign: | Indicates if this stream is default. | true | +| `Codec` | *string* | :heavy_check_mark: | Codec used by the stream. | hevc | +| `Index` | *int* | :heavy_check_mark: | Index of the stream. | 0 | +| `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` | **float32* | :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 | +| `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) | +| `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 f7d1251..a0c1be8 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` | *int64* | :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/models/sdkerrors/getondeckbadrequest.md b/docs/models/sdkerrors/getondeckbadrequest.md deleted file mode 100644 index 017b1f0..0000000 --- a/docs/models/sdkerrors/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` | [][sdkerrors.GetOnDeckErrors](../../models/sdkerrors/getondeckerrors.md) | :heavy_minus_sign: | N/A | -| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/models/sdkerrors/getondeckerrors.md b/docs/models/sdkerrors/getondeckerrors.md deleted file mode 100644 index 2ed2a77..0000000 --- a/docs/models/sdkerrors/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/sdkerrors/getondecklibraryerrors.md b/docs/models/sdkerrors/getondecklibraryerrors.md deleted file mode 100644 index ff48ef1..0000000 --- a/docs/models/sdkerrors/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/sdkerrors/getondeckunauthorized.md b/docs/models/sdkerrors/getondeckunauthorized.md deleted file mode 100644 index e75ef9c..0000000 --- a/docs/models/sdkerrors/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` | [][sdkerrors.GetOnDeckLibraryErrors](../../models/sdkerrors/getondecklibraryerrors.md) | :heavy_minus_sign: | N/A | -| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/sdks/library/README.md b/docs/sdks/library/README.md index 6404908..791f7aa 100644 --- a/docs/sdks/library/README.md +++ b/docs/sdks/library/README.md @@ -24,7 +24,6 @@ API Calls interacting with Plex Media Server Libraries * [GetMediaMetaData](#getmediametadata) - Get Media Metadata * [GetMetadataChildren](#getmetadatachildren) - Get Items Children * [GetTopWatchedContent](#gettopwatchedcontent) - Get Top Watched Content -* [GetOnDeck](#getondeck) - Get On Deck ## GetFileHash @@ -1015,56 +1014,4 @@ func main() { | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | | sdkerrors.GetTopWatchedContentBadRequest | 400 | application/json | | sdkerrors.GetTopWatchedContentUnauthorized | 401 | application/json | -| sdkerrors.SDKError | 4XX, 5XX | \*/\* | - -## GetOnDeck - -This endpoint will return the on deck content. - - -### Example Usage - -```go -package main - -import( - "context" - "github.com/LukeHagar/plexgo" - "log" -) - -func main() { - ctx := context.Background() - - s := plexgo.New( - plexgo.WithSecurity(""), - ) - - res, err := s.Library.GetOnDeck(ctx) - if err != nil { - log.Fatal(err) - } - if res.Object != nil { - // handle response - } -} -``` - -### Parameters - -| Parameter | Type | Required | Description | -| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | -| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | - -### Response - -**[*operations.GetOnDeckResponse](../../models/operations/getondeckresponse.md), error** - -### Errors - -| Error Type | Status Code | Content Type | -| ------------------------------- | ------------------------------- | ------------------------------- | -| sdkerrors.GetOnDeckBadRequest | 400 | application/json | -| sdkerrors.GetOnDeckUnauthorized | 401 | application/json | -| sdkerrors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/library.go b/library.go index 0472143..568662f 100644 --- a/library.go +++ b/library.go @@ -4082,248 +4082,3 @@ func (s *Library) GetTopWatchedContent(ctx context.Context, type_ operations.Get return res, nil } - -// GetOnDeck - Get On Deck -// This endpoint will return the on deck content. -func (s *Library) GetOnDeck(ctx context.Context, opts ...operations.Option) (*operations.GetOnDeckResponse, error) { - o := operations.Options{} - supportedOptions := []string{ - operations.SupportedOptionRetries, - operations.SupportedOptionTimeout, - } - - for _, opt := range opts { - if err := opt(&o, supportedOptions...); err != nil { - return nil, fmt.Errorf("error applying option: %w", err) - } - } - - var baseURL string - if o.ServerURL == nil { - baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) - } else { - baseURL = *o.ServerURL - } - opURL, err := url.JoinPath(baseURL, "/library/onDeck") - if err != nil { - return nil, fmt.Errorf("error generating URL: %w", err) - } - - hookCtx := hooks.HookContext{ - BaseURL: baseURL, - Context: ctx, - OperationID: "getOnDeck", - OAuth2Scopes: []string{}, - SecuritySource: s.sdkConfiguration.Security, - } - - timeout := o.Timeout - if timeout == nil { - timeout = s.sdkConfiguration.Timeout - } - - if timeout != nil { - var cancel context.CancelFunc - ctx, cancel = context.WithTimeout(ctx, *timeout) - defer cancel() - } - - req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil) - if err != nil { - return nil, fmt.Errorf("error creating request: %w", err) - } - req.Header.Set("Accept", "application/json") - req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) - - if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { - return nil, err - } - - for k, v := range o.SetHeaders { - req.Header.Set(k, v) - } - - globalRetryConfig := s.sdkConfiguration.RetryConfig - retryConfig := o.Retries - if retryConfig == nil { - if globalRetryConfig != nil { - retryConfig = globalRetryConfig - } - } - - var httpRes *http.Response - if retryConfig != nil { - httpRes, err = utils.Retry(ctx, utils.Retries{ - Config: retryConfig, - StatusCodes: []string{ - "429", - "500", - "502", - "503", - "504", - }, - }, func() (*http.Response, error) { - if req.Body != nil { - copyBody, err := req.GetBody() - if err != nil { - return nil, err - } - req.Body = copyBody - } - - req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) - if err != nil { - if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { - return nil, err - } - - return nil, retry.Permanent(err) - } - - httpRes, err := s.sdkConfiguration.Client.Do(req) - if err != nil || httpRes == nil { - if err != nil { - err = fmt.Errorf("error sending request: %w", err) - } else { - err = fmt.Errorf("error sending request: no response") - } - - _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) - } - return httpRes, err - }) - - if err != nil { - return nil, err - } else { - httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) - if err != nil { - return nil, err - } - } - } else { - req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) - if err != nil { - return nil, err - } - - httpRes, err = s.sdkConfiguration.Client.Do(req) - if err != nil || httpRes == nil { - if err != nil { - err = fmt.Errorf("error sending request: %w", err) - } else { - err = fmt.Errorf("error sending request: no response") - } - - _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) - return nil, err - } else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) { - _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) - if err != nil { - return nil, err - } else if _httpRes != nil { - httpRes = _httpRes - } - } else { - httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) - if err != nil { - return nil, err - } - } - } - - res := &operations.GetOnDeckResponse{ - StatusCode: httpRes.StatusCode, - ContentType: httpRes.Header.Get("Content-Type"), - RawResponse: httpRes, - } - - switch { - case httpRes.StatusCode == 200: - switch { - case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := utils.ConsumeRawBody(httpRes) - if err != nil { - return nil, err - } - - var out operations.GetOnDeckResponseBody - if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { - return nil, err - } - - res.Object = &out - default: - rawBody, err := utils.ConsumeRawBody(httpRes) - if err != nil { - return nil, err - } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) - } - case httpRes.StatusCode == 400: - switch { - case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := utils.ConsumeRawBody(httpRes) - if err != nil { - return nil, err - } - - var out sdkerrors.GetOnDeckBadRequest - if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { - return nil, err - } - - out.RawResponse = httpRes - return nil, &out - default: - rawBody, err := utils.ConsumeRawBody(httpRes) - if err != nil { - return nil, err - } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) - } - case httpRes.StatusCode == 401: - switch { - case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := utils.ConsumeRawBody(httpRes) - if err != nil { - return nil, err - } - - var out sdkerrors.GetOnDeckUnauthorized - if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { - return nil, err - } - - out.RawResponse = httpRes - return nil, &out - default: - rawBody, err := utils.ConsumeRawBody(httpRes) - if err != nil { - return nil, err - } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) - } - case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: - rawBody, err := utils.ConsumeRawBody(httpRes) - if err != nil { - return nil, err - } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) - case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := utils.ConsumeRawBody(httpRes) - if err != nil { - return nil, err - } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) - default: - rawBody, err := utils.ConsumeRawBody(httpRes) - if err != nil { - return nil, err - } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) - } - - return res, nil - -} diff --git a/models/operations/getallmedialibrary.go b/models/operations/getallmedialibrary.go index 26e738c..c8c7507 100644 --- a/models/operations/getallmedialibrary.go +++ b/models/operations/getallmedialibrary.go @@ -778,17 +778,17 @@ func (o *GetAllMediaLibraryUltraBlurColors) GetBottomLeft() string { return o.BottomLeft } -type One int +type OptimizedForStreaming1 int const ( - OneZero One = 0 - OneOne One = 1 + OptimizedForStreaming1Zero OptimizedForStreaming1 = 0 + OptimizedForStreaming1One OptimizedForStreaming1 = 1 ) -func (e One) ToPointer() *One { +func (e OptimizedForStreaming1) ToPointer() *OptimizedForStreaming1 { return &e } -func (e *One) UnmarshalJSON(data []byte) error { +func (e *OptimizedForStreaming1) UnmarshalJSON(data []byte) error { var v int if err := json.Unmarshal(data, &v); err != nil { return err @@ -797,34 +797,34 @@ func (e *One) UnmarshalJSON(data []byte) error { case 0: fallthrough case 1: - *e = One(v) + *e = OptimizedForStreaming1(v) return nil default: - return fmt.Errorf("invalid value for One: %v", v) + return fmt.Errorf("invalid value for OptimizedForStreaming1: %v", v) } } type GetAllMediaLibraryOptimizedForStreamingType string const ( - GetAllMediaLibraryOptimizedForStreamingTypeOne GetAllMediaLibraryOptimizedForStreamingType = "1" - GetAllMediaLibraryOptimizedForStreamingTypeBoolean GetAllMediaLibraryOptimizedForStreamingType = "boolean" + GetAllMediaLibraryOptimizedForStreamingTypeOptimizedForStreaming1 GetAllMediaLibraryOptimizedForStreamingType = "optimizedForStreaming_1" + GetAllMediaLibraryOptimizedForStreamingTypeBoolean GetAllMediaLibraryOptimizedForStreamingType = "boolean" ) // GetAllMediaLibraryOptimizedForStreaming - Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true type GetAllMediaLibraryOptimizedForStreaming struct { - One *One `queryParam:"inline"` - Boolean *bool `queryParam:"inline"` + OptimizedForStreaming1 *OptimizedForStreaming1 `queryParam:"inline"` + Boolean *bool `queryParam:"inline"` Type GetAllMediaLibraryOptimizedForStreamingType } -func CreateGetAllMediaLibraryOptimizedForStreamingOne(one One) GetAllMediaLibraryOptimizedForStreaming { - typ := GetAllMediaLibraryOptimizedForStreamingTypeOne +func CreateGetAllMediaLibraryOptimizedForStreamingOptimizedForStreaming1(optimizedForStreaming1 OptimizedForStreaming1) GetAllMediaLibraryOptimizedForStreaming { + typ := GetAllMediaLibraryOptimizedForStreamingTypeOptimizedForStreaming1 return GetAllMediaLibraryOptimizedForStreaming{ - One: &one, - Type: typ, + OptimizedForStreaming1: &optimizedForStreaming1, + Type: typ, } } @@ -839,10 +839,10 @@ func CreateGetAllMediaLibraryOptimizedForStreamingBoolean(boolean bool) GetAllMe func (u *GetAllMediaLibraryOptimizedForStreaming) UnmarshalJSON(data []byte) error { - var one One = One(0) - if err := utils.UnmarshalJSON(data, &one, "", true, true); err == nil { - u.One = &one - u.Type = GetAllMediaLibraryOptimizedForStreamingTypeOne + var optimizedForStreaming1 OptimizedForStreaming1 = OptimizedForStreaming1(0) + if err := utils.UnmarshalJSON(data, &optimizedForStreaming1, "", true, true); err == nil { + u.OptimizedForStreaming1 = &optimizedForStreaming1 + u.Type = GetAllMediaLibraryOptimizedForStreamingTypeOptimizedForStreaming1 return nil } @@ -857,8 +857,8 @@ func (u *GetAllMediaLibraryOptimizedForStreaming) UnmarshalJSON(data []byte) err } func (u GetAllMediaLibraryOptimizedForStreaming) MarshalJSON() ([]byte, error) { - if u.One != nil { - return utils.MarshalJSON(u.One, "", true) + if u.OptimizedForStreaming1 != nil { + return utils.MarshalJSON(u.OptimizedForStreaming1, "", true) } if u.Boolean != nil { @@ -999,11 +999,11 @@ type GetAllMediaLibraryStream struct { // Bitrate of the stream. Bitrate *int `json:"bitrate,omitempty"` // Language of the stream. - Language string `json:"language"` + Language *string `json:"language,omitempty"` // Language tag (e.g., en). - LanguageTag string `json:"languageTag"` + LanguageTag *string `json:"languageTag,omitempty"` // ISO language code. - LanguageCode string `json:"languageCode"` + LanguageCode *string `json:"languageCode,omitempty"` // Indicates whether header compression is enabled. HeaderCompression *bool `json:"headerCompression,omitempty"` // Dolby Vision BL compatibility ID. @@ -1031,7 +1031,8 @@ type GetAllMediaLibraryStream struct { // Coded video height. CodedHeight *int `json:"codedHeight,omitempty"` // Coded video width. - CodedWidth *int `json:"codedWidth,omitempty"` + CodedWidth *int `json:"codedWidth,omitempty"` + ClosedCaptions *bool `json:"closedCaptions,omitempty"` // Color primaries used. ColorPrimaries *string `json:"colorPrimaries,omitempty"` // Color range (e.g., tv). @@ -1050,8 +1051,9 @@ type GetAllMediaLibraryStream struct { Original *bool `json:"original,omitempty"` HasScalingMatrix *bool `json:"hasScalingMatrix,omitempty"` // Video profile. - Profile *string `json:"profile,omitempty"` - ScanType *string `json:"scanType,omitempty"` + Profile *string `json:"profile,omitempty"` + ScanType *string `json:"scanType,omitempty"` + EmbeddedInVideo *string `json:"embeddedInVideo,omitempty"` // Number of reference frames. RefFrames *int `json:"refFrames,omitempty"` // Width of the video stream. @@ -1121,23 +1123,23 @@ func (o *GetAllMediaLibraryStream) GetBitrate() *int { return o.Bitrate } -func (o *GetAllMediaLibraryStream) GetLanguage() string { +func (o *GetAllMediaLibraryStream) GetLanguage() *string { if o == nil { - return "" + return nil } return o.Language } -func (o *GetAllMediaLibraryStream) GetLanguageTag() string { +func (o *GetAllMediaLibraryStream) GetLanguageTag() *string { if o == nil { - return "" + return nil } return o.LanguageTag } -func (o *GetAllMediaLibraryStream) GetLanguageCode() string { +func (o *GetAllMediaLibraryStream) GetLanguageCode() *string { if o == nil { - return "" + return nil } return o.LanguageCode } @@ -1240,6 +1242,13 @@ func (o *GetAllMediaLibraryStream) GetCodedWidth() *int { return o.CodedWidth } +func (o *GetAllMediaLibraryStream) GetClosedCaptions() *bool { + if o == nil { + return nil + } + return o.ClosedCaptions +} + func (o *GetAllMediaLibraryStream) GetColorPrimaries() *string { if o == nil { return nil @@ -1317,6 +1326,13 @@ func (o *GetAllMediaLibraryStream) GetScanType() *string { return o.ScanType } +func (o *GetAllMediaLibraryStream) GetEmbeddedInVideo() *string { + if o == nil { + return nil + } + return o.EmbeddedInVideo +} + func (o *GetAllMediaLibraryStream) GetRefFrames() *int { if o == nil { return nil @@ -1592,14 +1608,14 @@ type GetAllMediaLibraryMedia struct { // Video profile (e.g., main 10). VideoProfile *string `json:"videoProfile,omitempty"` // Indicates whether voice activity is detected. - HasVoiceActivity bool `json:"hasVoiceActivity"` + HasVoiceActivity *bool `json:"hasVoiceActivity,omitempty"` // The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). AudioProfile *string `json:"audioProfile,omitempty"` // Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true OptimizedForStreaming *GetAllMediaLibraryOptimizedForStreaming `json:"optimizedForStreaming,omitempty"` Has64bitOffsets *bool `json:"has64bitOffsets,omitempty"` // An array of parts for this media item. - Part []GetAllMediaLibraryPart `json:"Part"` + Part []GetAllMediaLibraryPart `json:"Part,omitempty"` } func (o *GetAllMediaLibraryMedia) GetID() int64 { @@ -1700,9 +1716,9 @@ func (o *GetAllMediaLibraryMedia) GetVideoProfile() *string { return o.VideoProfile } -func (o *GetAllMediaLibraryMedia) GetHasVoiceActivity() bool { +func (o *GetAllMediaLibraryMedia) GetHasVoiceActivity() *bool { if o == nil { - return false + return nil } return o.HasVoiceActivity } @@ -1730,13 +1746,14 @@ func (o *GetAllMediaLibraryMedia) GetHas64bitOffsets() *bool { func (o *GetAllMediaLibraryMedia) GetPart() []GetAllMediaLibraryPart { if o == nil { - return []GetAllMediaLibraryPart{} + return nil } return o.Part } type GetAllMediaLibraryGenre struct { - // The country of origin of this media item + // The genre name of this media-item + // Tag string `json:"tag"` } @@ -1784,7 +1801,7 @@ func (o *GetAllMediaLibraryWriter) GetTag() string { } type GetAllMediaLibraryRole struct { - // The name of the actor for this role + // The display tag for the actor (typically the actor's name). Tag string `json:"tag"` } @@ -1795,13 +1812,13 @@ func (o *GetAllMediaLibraryRole) GetTag() string { return o.Tag } -type Guids struct { +type GetAllMediaLibraryGuids struct { // The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337 // ID *string `json:"id,omitempty"` } -func (o *Guids) GetID() *string { +func (o *GetAllMediaLibraryGuids) GetID() *string { if o == nil { return nil } @@ -1846,7 +1863,7 @@ type GetAllMediaLibraryMetadata struct { // The audience rating for the media item. AudienceRating float64 `json:"audienceRating"` // The release year of the media item. - Year int `json:"year"` + Year *int `json:"year,omitempty"` // A brief tagline for the media item. Tagline string `json:"tagline"` // The thumbnail image URL for the media item. @@ -1936,7 +1953,7 @@ type GetAllMediaLibraryMetadata struct { Director []GetAllMediaLibraryDirector `json:"Director,omitempty"` Writer []GetAllMediaLibraryWriter `json:"Writer,omitempty"` Role []GetAllMediaLibraryRole `json:"Role,omitempty"` - Guids []Guids `json:"Guid,omitempty"` + Guids []GetAllMediaLibraryGuids `json:"Guid,omitempty"` Collection []GetAllMediaLibraryCollection `json:"Collection,omitempty"` } @@ -2035,9 +2052,9 @@ func (o *GetAllMediaLibraryMetadata) GetAudienceRating() float64 { return o.AudienceRating } -func (o *GetAllMediaLibraryMetadata) GetYear() int { +func (o *GetAllMediaLibraryMetadata) GetYear() *int { if o == nil { - return 0 + return nil } return o.Year } @@ -2385,7 +2402,7 @@ func (o *GetAllMediaLibraryMetadata) GetRole() []GetAllMediaLibraryRole { return o.Role } -func (o *GetAllMediaLibraryMetadata) GetGuids() []Guids { +func (o *GetAllMediaLibraryMetadata) GetGuids() []GetAllMediaLibraryGuids { if o == nil { return nil } diff --git a/models/operations/getlibraryitems.go b/models/operations/getlibraryitems.go index d4a03b7..7aa0da4 100644 --- a/models/operations/getlibraryitems.go +++ b/models/operations/getlibraryitems.go @@ -639,19 +639,19 @@ func (e *GetLibraryItemsLibraryType) UnmarshalJSON(data []byte) error { } } -// GetLibraryItemsFlattenSeasons - Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). -type GetLibraryItemsFlattenSeasons string +// FlattenSeasons - Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). +type FlattenSeasons string const ( - GetLibraryItemsFlattenSeasonsLibraryDefault GetLibraryItemsFlattenSeasons = "-1" - GetLibraryItemsFlattenSeasonsHide GetLibraryItemsFlattenSeasons = "0" - GetLibraryItemsFlattenSeasonsShow GetLibraryItemsFlattenSeasons = "1" + FlattenSeasonsLibraryDefault FlattenSeasons = "-1" + FlattenSeasonsHide FlattenSeasons = "0" + FlattenSeasonsShow FlattenSeasons = "1" ) -func (e GetLibraryItemsFlattenSeasons) ToPointer() *GetLibraryItemsFlattenSeasons { +func (e FlattenSeasons) ToPointer() *FlattenSeasons { return &e } -func (e *GetLibraryItemsFlattenSeasons) UnmarshalJSON(data []byte) error { +func (e *FlattenSeasons) UnmarshalJSON(data []byte) error { var v string if err := json.Unmarshal(data, &v); err != nil { return err @@ -662,26 +662,26 @@ func (e *GetLibraryItemsFlattenSeasons) UnmarshalJSON(data []byte) error { case "0": fallthrough case "1": - *e = GetLibraryItemsFlattenSeasons(v) + *e = FlattenSeasons(v) return nil default: - return fmt.Errorf("invalid value for GetLibraryItemsFlattenSeasons: %v", v) + return fmt.Errorf("invalid value for FlattenSeasons: %v", v) } } -// GetLibraryItemsEpisodeSort - Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). -type GetLibraryItemsEpisodeSort string +// EpisodeSort - Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). +type EpisodeSort string const ( - GetLibraryItemsEpisodeSortLibraryDefault GetLibraryItemsEpisodeSort = "-1" - GetLibraryItemsEpisodeSortOldestFirst GetLibraryItemsEpisodeSort = "0" - GetLibraryItemsEpisodeSortNewestFirst GetLibraryItemsEpisodeSort = "1" + EpisodeSortLibraryDefault EpisodeSort = "-1" + EpisodeSortOldestFirst EpisodeSort = "0" + EpisodeSortNewestFirst EpisodeSort = "1" ) -func (e GetLibraryItemsEpisodeSort) ToPointer() *GetLibraryItemsEpisodeSort { +func (e EpisodeSort) ToPointer() *EpisodeSort { return &e } -func (e *GetLibraryItemsEpisodeSort) UnmarshalJSON(data []byte) error { +func (e *EpisodeSort) UnmarshalJSON(data []byte) error { var v string if err := json.Unmarshal(data, &v); err != nil { return err @@ -692,25 +692,25 @@ func (e *GetLibraryItemsEpisodeSort) UnmarshalJSON(data []byte) error { case "0": fallthrough case "1": - *e = GetLibraryItemsEpisodeSort(v) + *e = EpisodeSort(v) return nil default: - return fmt.Errorf("invalid value for GetLibraryItemsEpisodeSort: %v", v) + return fmt.Errorf("invalid value for EpisodeSort: %v", v) } } -// GetLibraryItemsEnableCreditsMarkerGeneration - Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). -type GetLibraryItemsEnableCreditsMarkerGeneration string +// EnableCreditsMarkerGeneration - Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). +type EnableCreditsMarkerGeneration string const ( - GetLibraryItemsEnableCreditsMarkerGenerationLibraryDefault GetLibraryItemsEnableCreditsMarkerGeneration = "-1" - GetLibraryItemsEnableCreditsMarkerGenerationDisabled GetLibraryItemsEnableCreditsMarkerGeneration = "0" + EnableCreditsMarkerGenerationLibraryDefault EnableCreditsMarkerGeneration = "-1" + EnableCreditsMarkerGenerationDisabled EnableCreditsMarkerGeneration = "0" ) -func (e GetLibraryItemsEnableCreditsMarkerGeneration) ToPointer() *GetLibraryItemsEnableCreditsMarkerGeneration { +func (e EnableCreditsMarkerGeneration) ToPointer() *EnableCreditsMarkerGeneration { return &e } -func (e *GetLibraryItemsEnableCreditsMarkerGeneration) UnmarshalJSON(data []byte) error { +func (e *EnableCreditsMarkerGeneration) UnmarshalJSON(data []byte) error { var v string if err := json.Unmarshal(data, &v); err != nil { return err @@ -719,33 +719,33 @@ func (e *GetLibraryItemsEnableCreditsMarkerGeneration) UnmarshalJSON(data []byte case "-1": fallthrough case "0": - *e = GetLibraryItemsEnableCreditsMarkerGeneration(v) + *e = EnableCreditsMarkerGeneration(v) return nil default: - return fmt.Errorf("invalid value for GetLibraryItemsEnableCreditsMarkerGeneration: %v", v) + return fmt.Errorf("invalid value for EnableCreditsMarkerGeneration: %v", v) } } -// GetLibraryItemsShowOrdering - Setting that indicates the episode ordering for the show. +// ShowOrdering - 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)). -type GetLibraryItemsShowOrdering string +type ShowOrdering string const ( - GetLibraryItemsShowOrderingNone GetLibraryItemsShowOrdering = "None" - GetLibraryItemsShowOrderingTmdbAiring GetLibraryItemsShowOrdering = "tmdbAiring" - GetLibraryItemsShowOrderingTvdbAired GetLibraryItemsShowOrdering = "aired" - GetLibraryItemsShowOrderingTvdbDvd GetLibraryItemsShowOrdering = "dvd" - GetLibraryItemsShowOrderingTvdbAbsolute GetLibraryItemsShowOrdering = "absolute" + ShowOrderingNone ShowOrdering = "None" + ShowOrderingTmdbAiring ShowOrdering = "tmdbAiring" + ShowOrderingTvdbAired ShowOrdering = "aired" + ShowOrderingTvdbDvd ShowOrdering = "dvd" + ShowOrderingTvdbAbsolute ShowOrdering = "absolute" ) -func (e GetLibraryItemsShowOrdering) ToPointer() *GetLibraryItemsShowOrdering { +func (e ShowOrdering) ToPointer() *ShowOrdering { return &e } -func (e *GetLibraryItemsShowOrdering) UnmarshalJSON(data []byte) error { +func (e *ShowOrdering) UnmarshalJSON(data []byte) error { var v string if err := json.Unmarshal(data, &v); err != nil { return err @@ -760,10 +760,10 @@ func (e *GetLibraryItemsShowOrdering) UnmarshalJSON(data []byte) error { case "dvd": fallthrough case "absolute": - *e = GetLibraryItemsShowOrdering(v) + *e = ShowOrdering(v) return nil default: - return fmt.Errorf("invalid value for GetLibraryItemsShowOrdering: %v", v) + return fmt.Errorf("invalid value for ShowOrdering: %v", v) } } @@ -1561,14 +1561,14 @@ func (o *GetLibraryItemsLocation) GetPath() *string { return o.Path } -type GetLibraryItemsMediaGUID struct { +type MediaGUID struct { // Can be one of the following formats: // imdb://tt13015952, tmdb://2434012, tvdb://7945991 // ID string `json:"id"` } -func (o *GetLibraryItemsMediaGUID) GetID() string { +func (o *MediaGUID) GetID() string { if o == nil { return "" } @@ -1610,7 +1610,7 @@ func (o *GetLibraryItemsUltraBlurColors) GetBottomLeft() string { return o.BottomLeft } -type GetLibraryItemsMetaDataRating struct { +type MetaDataRating struct { // A URI or path to the rating image. Image string `json:"image"` // The value of the rating. @@ -1619,21 +1619,21 @@ type GetLibraryItemsMetaDataRating struct { Type string `json:"type"` } -func (o *GetLibraryItemsMetaDataRating) GetImage() string { +func (o *MetaDataRating) GetImage() string { if o == nil { return "" } return o.Image } -func (o *GetLibraryItemsMetaDataRating) GetValue() float32 { +func (o *MetaDataRating) GetValue() float32 { if o == nil { return 0.0 } return o.Value } -func (o *GetLibraryItemsMetaDataRating) GetType() string { +func (o *MetaDataRating) GetType() string { if o == nil { return "" } @@ -1724,11 +1724,11 @@ type GetLibraryItemsMetadata struct { SeasonCount *int `json:"seasonCount,omitempty"` Tagline *string `json:"tagline,omitempty"` // Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). - FlattenSeasons *GetLibraryItemsFlattenSeasons `json:"flattenSeasons,omitempty"` + FlattenSeasons *FlattenSeasons `json:"flattenSeasons,omitempty"` // Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). - EpisodeSort *GetLibraryItemsEpisodeSort `json:"episodeSort,omitempty"` + EpisodeSort *EpisodeSort `json:"episodeSort,omitempty"` // Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). - EnableCreditsMarkerGeneration *GetLibraryItemsEnableCreditsMarkerGeneration `json:"enableCreditsMarkerGeneration,omitempty"` + EnableCreditsMarkerGeneration *EnableCreditsMarkerGeneration `json:"enableCreditsMarkerGeneration,omitempty"` // Setting that indicates the episode ordering for the show. // None = Library default, // tmdbAiring = The Movie Database (Aired), @@ -1736,12 +1736,12 @@ type GetLibraryItemsMetadata struct { // dvd = TheTVDB (DVD), // absolute = TheTVDB (Absolute)). // - ShowOrdering *GetLibraryItemsShowOrdering `json:"showOrdering,omitempty"` - Thumb *string `json:"thumb,omitempty"` - Art *string `json:"art,omitempty"` - Banner *string `json:"banner,omitempty"` - Duration *int `json:"duration,omitempty"` - OriginallyAvailableAt *types.Date `json:"originallyAvailableAt,omitempty"` + ShowOrdering *ShowOrdering `json:"showOrdering,omitempty"` + Thumb *string `json:"thumb,omitempty"` + Art *string `json:"art,omitempty"` + Banner *string `json:"banner,omitempty"` + Duration *int `json:"duration,omitempty"` + OriginallyAvailableAt *types.Date `json:"originallyAvailableAt,omitempty"` // Unix epoch datetime in seconds AddedAt int64 `json:"addedAt"` // Unix epoch datetime in seconds @@ -1771,9 +1771,9 @@ type GetLibraryItemsMetadata struct { Location []GetLibraryItemsLocation `json:"Location,omitempty"` // The Guid object is only included in the response if the `includeGuids` parameter is set to `1`. // - MediaGUID []GetLibraryItemsMediaGUID `json:"Guid,omitempty"` + MediaGUID []MediaGUID `json:"Guid,omitempty"` UltraBlurColors *GetLibraryItemsUltraBlurColors `json:"UltraBlurColors,omitempty"` - MetaDataRating []GetLibraryItemsMetaDataRating `json:"Rating,omitempty"` + MetaDataRating []MetaDataRating `json:"Rating,omitempty"` Image []GetLibraryItemsImage `json:"Image,omitempty"` TitleSort *string `json:"titleSort,omitempty"` ViewCount *int `json:"viewCount,omitempty"` @@ -1938,28 +1938,28 @@ func (o *GetLibraryItemsMetadata) GetTagline() *string { return o.Tagline } -func (o *GetLibraryItemsMetadata) GetFlattenSeasons() *GetLibraryItemsFlattenSeasons { +func (o *GetLibraryItemsMetadata) GetFlattenSeasons() *FlattenSeasons { if o == nil { return nil } return o.FlattenSeasons } -func (o *GetLibraryItemsMetadata) GetEpisodeSort() *GetLibraryItemsEpisodeSort { +func (o *GetLibraryItemsMetadata) GetEpisodeSort() *EpisodeSort { if o == nil { return nil } return o.EpisodeSort } -func (o *GetLibraryItemsMetadata) GetEnableCreditsMarkerGeneration() *GetLibraryItemsEnableCreditsMarkerGeneration { +func (o *GetLibraryItemsMetadata) GetEnableCreditsMarkerGeneration() *EnableCreditsMarkerGeneration { if o == nil { return nil } return o.EnableCreditsMarkerGeneration } -func (o *GetLibraryItemsMetadata) GetShowOrdering() *GetLibraryItemsShowOrdering { +func (o *GetLibraryItemsMetadata) GetShowOrdering() *ShowOrdering { if o == nil { return nil } @@ -2162,7 +2162,7 @@ func (o *GetLibraryItemsMetadata) GetLocation() []GetLibraryItemsLocation { return o.Location } -func (o *GetLibraryItemsMetadata) GetMediaGUID() []GetLibraryItemsMediaGUID { +func (o *GetLibraryItemsMetadata) GetMediaGUID() []MediaGUID { if o == nil { return nil } @@ -2176,7 +2176,7 @@ func (o *GetLibraryItemsMetadata) GetUltraBlurColors() *GetLibraryItemsUltraBlur return o.UltraBlurColors } -func (o *GetLibraryItemsMetadata) GetMetaDataRating() []GetLibraryItemsMetaDataRating { +func (o *GetLibraryItemsMetadata) GetMetaDataRating() []MetaDataRating { if o == nil { return nil } diff --git a/models/operations/getmediametadata.go b/models/operations/getmediametadata.go index f88f42f..89ee3f3 100644 --- a/models/operations/getmediametadata.go +++ b/models/operations/getmediametadata.go @@ -140,96 +140,6 @@ func (o *GetMediaMetaDataRequest) GetAsyncRefreshLocalMediaAgent() *bool { return o.AsyncRefreshLocalMediaAgent } -type OptimizedForStreaming1 int - -const ( - OptimizedForStreaming1Zero OptimizedForStreaming1 = 0 - OptimizedForStreaming1One OptimizedForStreaming1 = 1 -) - -func (e OptimizedForStreaming1) ToPointer() *OptimizedForStreaming1 { - return &e -} -func (e *OptimizedForStreaming1) UnmarshalJSON(data []byte) error { - var v int - if err := json.Unmarshal(data, &v); err != nil { - return err - } - switch v { - case 0: - fallthrough - case 1: - *e = OptimizedForStreaming1(v) - return nil - default: - return fmt.Errorf("invalid value for OptimizedForStreaming1: %v", v) - } -} - -type GetMediaMetaDataOptimizedForStreamingType string - -const ( - GetMediaMetaDataOptimizedForStreamingTypeOptimizedForStreaming1 GetMediaMetaDataOptimizedForStreamingType = "optimizedForStreaming_1" - GetMediaMetaDataOptimizedForStreamingTypeBoolean GetMediaMetaDataOptimizedForStreamingType = "boolean" -) - -// GetMediaMetaDataOptimizedForStreaming - Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true -type GetMediaMetaDataOptimizedForStreaming struct { - OptimizedForStreaming1 *OptimizedForStreaming1 `queryParam:"inline"` - Boolean *bool `queryParam:"inline"` - - Type GetMediaMetaDataOptimizedForStreamingType -} - -func CreateGetMediaMetaDataOptimizedForStreamingOptimizedForStreaming1(optimizedForStreaming1 OptimizedForStreaming1) GetMediaMetaDataOptimizedForStreaming { - typ := GetMediaMetaDataOptimizedForStreamingTypeOptimizedForStreaming1 - - return GetMediaMetaDataOptimizedForStreaming{ - OptimizedForStreaming1: &optimizedForStreaming1, - Type: typ, - } -} - -func CreateGetMediaMetaDataOptimizedForStreamingBoolean(boolean bool) GetMediaMetaDataOptimizedForStreaming { - typ := GetMediaMetaDataOptimizedForStreamingTypeBoolean - - return GetMediaMetaDataOptimizedForStreaming{ - Boolean: &boolean, - Type: typ, - } -} - -func (u *GetMediaMetaDataOptimizedForStreaming) UnmarshalJSON(data []byte) error { - - var optimizedForStreaming1 OptimizedForStreaming1 = OptimizedForStreaming1(0) - if err := utils.UnmarshalJSON(data, &optimizedForStreaming1, "", true, true); err == nil { - u.OptimizedForStreaming1 = &optimizedForStreaming1 - u.Type = GetMediaMetaDataOptimizedForStreamingTypeOptimizedForStreaming1 - return nil - } - - var boolean bool = false - if err := utils.UnmarshalJSON(data, &boolean, "", true, true); err == nil { - u.Boolean = &boolean - u.Type = GetMediaMetaDataOptimizedForStreamingTypeBoolean - return nil - } - - return fmt.Errorf("could not unmarshal `%s` into any supported union types for GetMediaMetaDataOptimizedForStreaming", string(data)) -} - -func (u GetMediaMetaDataOptimizedForStreaming) MarshalJSON() ([]byte, error) { - if u.OptimizedForStreaming1 != nil { - return utils.MarshalJSON(u.OptimizedForStreaming1, "", true) - } - - if u.Boolean != nil { - return utils.MarshalJSON(u.Boolean, "", true) - } - - return nil, errors.New("could not marshal union type GetMediaMetaDataOptimizedForStreaming: all fields are null") -} - type GetMediaMetaDataOptimizedForStreaming1 int const ( @@ -256,27 +166,117 @@ func (e *GetMediaMetaDataOptimizedForStreaming1) UnmarshalJSON(data []byte) erro } } +type GetMediaMetaDataOptimizedForStreamingType string + +const ( + GetMediaMetaDataOptimizedForStreamingTypeGetMediaMetaDataOptimizedForStreaming1 GetMediaMetaDataOptimizedForStreamingType = "get-media-meta-data_optimizedForStreaming_1" + GetMediaMetaDataOptimizedForStreamingTypeBoolean GetMediaMetaDataOptimizedForStreamingType = "boolean" +) + +// GetMediaMetaDataOptimizedForStreaming - Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true +type GetMediaMetaDataOptimizedForStreaming struct { + GetMediaMetaDataOptimizedForStreaming1 *GetMediaMetaDataOptimizedForStreaming1 `queryParam:"inline"` + Boolean *bool `queryParam:"inline"` + + Type GetMediaMetaDataOptimizedForStreamingType +} + +func CreateGetMediaMetaDataOptimizedForStreamingGetMediaMetaDataOptimizedForStreaming1(getMediaMetaDataOptimizedForStreaming1 GetMediaMetaDataOptimizedForStreaming1) GetMediaMetaDataOptimizedForStreaming { + typ := GetMediaMetaDataOptimizedForStreamingTypeGetMediaMetaDataOptimizedForStreaming1 + + return GetMediaMetaDataOptimizedForStreaming{ + GetMediaMetaDataOptimizedForStreaming1: &getMediaMetaDataOptimizedForStreaming1, + Type: typ, + } +} + +func CreateGetMediaMetaDataOptimizedForStreamingBoolean(boolean bool) GetMediaMetaDataOptimizedForStreaming { + typ := GetMediaMetaDataOptimizedForStreamingTypeBoolean + + return GetMediaMetaDataOptimizedForStreaming{ + Boolean: &boolean, + Type: typ, + } +} + +func (u *GetMediaMetaDataOptimizedForStreaming) UnmarshalJSON(data []byte) error { + + var getMediaMetaDataOptimizedForStreaming1 GetMediaMetaDataOptimizedForStreaming1 = GetMediaMetaDataOptimizedForStreaming1(0) + if err := utils.UnmarshalJSON(data, &getMediaMetaDataOptimizedForStreaming1, "", true, true); err == nil { + u.GetMediaMetaDataOptimizedForStreaming1 = &getMediaMetaDataOptimizedForStreaming1 + u.Type = GetMediaMetaDataOptimizedForStreamingTypeGetMediaMetaDataOptimizedForStreaming1 + return nil + } + + var boolean bool = false + if err := utils.UnmarshalJSON(data, &boolean, "", true, true); err == nil { + u.Boolean = &boolean + u.Type = GetMediaMetaDataOptimizedForStreamingTypeBoolean + return nil + } + + return fmt.Errorf("could not unmarshal `%s` into any supported union types for GetMediaMetaDataOptimizedForStreaming", string(data)) +} + +func (u GetMediaMetaDataOptimizedForStreaming) MarshalJSON() ([]byte, error) { + if u.GetMediaMetaDataOptimizedForStreaming1 != nil { + return utils.MarshalJSON(u.GetMediaMetaDataOptimizedForStreaming1, "", true) + } + + if u.Boolean != nil { + return utils.MarshalJSON(u.Boolean, "", true) + } + + return nil, errors.New("could not marshal union type GetMediaMetaDataOptimizedForStreaming: all fields are null") +} + +type GetMediaMetaDataOptimizedForStreamingLibrary1 int + +const ( + GetMediaMetaDataOptimizedForStreamingLibrary1Zero GetMediaMetaDataOptimizedForStreamingLibrary1 = 0 + GetMediaMetaDataOptimizedForStreamingLibrary1One GetMediaMetaDataOptimizedForStreamingLibrary1 = 1 +) + +func (e GetMediaMetaDataOptimizedForStreamingLibrary1) ToPointer() *GetMediaMetaDataOptimizedForStreamingLibrary1 { + return &e +} +func (e *GetMediaMetaDataOptimizedForStreamingLibrary1) UnmarshalJSON(data []byte) error { + var v int + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case 0: + fallthrough + case 1: + *e = GetMediaMetaDataOptimizedForStreamingLibrary1(v) + return nil + default: + return fmt.Errorf("invalid value for GetMediaMetaDataOptimizedForStreamingLibrary1: %v", v) + } +} + type GetMediaMetaDataLibraryOptimizedForStreamingType string const ( - GetMediaMetaDataLibraryOptimizedForStreamingTypeGetMediaMetaDataOptimizedForStreaming1 GetMediaMetaDataLibraryOptimizedForStreamingType = "get-media-meta-data_optimizedForStreaming_1" - GetMediaMetaDataLibraryOptimizedForStreamingTypeBoolean GetMediaMetaDataLibraryOptimizedForStreamingType = "boolean" + GetMediaMetaDataLibraryOptimizedForStreamingTypeGetMediaMetaDataOptimizedForStreamingLibrary1 GetMediaMetaDataLibraryOptimizedForStreamingType = "get-media-meta-data_optimizedForStreaming_Library_1" + GetMediaMetaDataLibraryOptimizedForStreamingTypeBoolean GetMediaMetaDataLibraryOptimizedForStreamingType = "boolean" ) // GetMediaMetaDataLibraryOptimizedForStreaming - Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true type GetMediaMetaDataLibraryOptimizedForStreaming struct { - GetMediaMetaDataOptimizedForStreaming1 *GetMediaMetaDataOptimizedForStreaming1 `queryParam:"inline"` - Boolean *bool `queryParam:"inline"` + GetMediaMetaDataOptimizedForStreamingLibrary1 *GetMediaMetaDataOptimizedForStreamingLibrary1 `queryParam:"inline"` + Boolean *bool `queryParam:"inline"` Type GetMediaMetaDataLibraryOptimizedForStreamingType } -func CreateGetMediaMetaDataLibraryOptimizedForStreamingGetMediaMetaDataOptimizedForStreaming1(getMediaMetaDataOptimizedForStreaming1 GetMediaMetaDataOptimizedForStreaming1) GetMediaMetaDataLibraryOptimizedForStreaming { - typ := GetMediaMetaDataLibraryOptimizedForStreamingTypeGetMediaMetaDataOptimizedForStreaming1 +func CreateGetMediaMetaDataLibraryOptimizedForStreamingGetMediaMetaDataOptimizedForStreamingLibrary1(getMediaMetaDataOptimizedForStreamingLibrary1 GetMediaMetaDataOptimizedForStreamingLibrary1) GetMediaMetaDataLibraryOptimizedForStreaming { + typ := GetMediaMetaDataLibraryOptimizedForStreamingTypeGetMediaMetaDataOptimizedForStreamingLibrary1 return GetMediaMetaDataLibraryOptimizedForStreaming{ - GetMediaMetaDataOptimizedForStreaming1: &getMediaMetaDataOptimizedForStreaming1, - Type: typ, + GetMediaMetaDataOptimizedForStreamingLibrary1: &getMediaMetaDataOptimizedForStreamingLibrary1, + Type: typ, } } @@ -291,10 +291,10 @@ func CreateGetMediaMetaDataLibraryOptimizedForStreamingBoolean(boolean bool) Get func (u *GetMediaMetaDataLibraryOptimizedForStreaming) UnmarshalJSON(data []byte) error { - var getMediaMetaDataOptimizedForStreaming1 GetMediaMetaDataOptimizedForStreaming1 = GetMediaMetaDataOptimizedForStreaming1(0) - if err := utils.UnmarshalJSON(data, &getMediaMetaDataOptimizedForStreaming1, "", true, true); err == nil { - u.GetMediaMetaDataOptimizedForStreaming1 = &getMediaMetaDataOptimizedForStreaming1 - u.Type = GetMediaMetaDataLibraryOptimizedForStreamingTypeGetMediaMetaDataOptimizedForStreaming1 + var getMediaMetaDataOptimizedForStreamingLibrary1 GetMediaMetaDataOptimizedForStreamingLibrary1 = GetMediaMetaDataOptimizedForStreamingLibrary1(0) + if err := utils.UnmarshalJSON(data, &getMediaMetaDataOptimizedForStreamingLibrary1, "", true, true); err == nil { + u.GetMediaMetaDataOptimizedForStreamingLibrary1 = &getMediaMetaDataOptimizedForStreamingLibrary1 + u.Type = GetMediaMetaDataLibraryOptimizedForStreamingTypeGetMediaMetaDataOptimizedForStreamingLibrary1 return nil } @@ -309,8 +309,8 @@ func (u *GetMediaMetaDataLibraryOptimizedForStreaming) UnmarshalJSON(data []byte } func (u GetMediaMetaDataLibraryOptimizedForStreaming) MarshalJSON() ([]byte, error) { - if u.GetMediaMetaDataOptimizedForStreaming1 != nil { - return utils.MarshalJSON(u.GetMediaMetaDataOptimizedForStreaming1, "", true) + if u.GetMediaMetaDataOptimizedForStreamingLibrary1 != nil { + return utils.MarshalJSON(u.GetMediaMetaDataOptimizedForStreamingLibrary1, "", true) } if u.Boolean != nil { @@ -361,11 +361,11 @@ type GetMediaMetaDataStream struct { // Bitrate of the stream. Bitrate *int `json:"bitrate,omitempty"` // Language of the stream. - Language string `json:"language"` + Language *string `json:"language,omitempty"` // Language tag (e.g., en). - LanguageTag string `json:"languageTag"` + LanguageTag *string `json:"languageTag,omitempty"` // ISO language code. - LanguageCode string `json:"languageCode"` + LanguageCode *string `json:"languageCode,omitempty"` // Indicates whether header compression is enabled. HeaderCompression *bool `json:"headerCompression,omitempty"` // Dolby Vision BL compatibility ID. @@ -393,7 +393,8 @@ type GetMediaMetaDataStream struct { // Coded video height. CodedHeight *int `json:"codedHeight,omitempty"` // Coded video width. - CodedWidth *int `json:"codedWidth,omitempty"` + CodedWidth *int `json:"codedWidth,omitempty"` + ClosedCaptions *bool `json:"closedCaptions,omitempty"` // Color primaries used. ColorPrimaries *string `json:"colorPrimaries,omitempty"` // Color range (e.g., tv). @@ -412,8 +413,9 @@ type GetMediaMetaDataStream struct { Original *bool `json:"original,omitempty"` HasScalingMatrix *bool `json:"hasScalingMatrix,omitempty"` // Video profile. - Profile *string `json:"profile,omitempty"` - ScanType *string `json:"scanType,omitempty"` + Profile *string `json:"profile,omitempty"` + ScanType *string `json:"scanType,omitempty"` + EmbeddedInVideo *string `json:"embeddedInVideo,omitempty"` // Number of reference frames. RefFrames *int `json:"refFrames,omitempty"` // Width of the video stream. @@ -483,23 +485,23 @@ func (o *GetMediaMetaDataStream) GetBitrate() *int { return o.Bitrate } -func (o *GetMediaMetaDataStream) GetLanguage() string { +func (o *GetMediaMetaDataStream) GetLanguage() *string { if o == nil { - return "" + return nil } return o.Language } -func (o *GetMediaMetaDataStream) GetLanguageTag() string { +func (o *GetMediaMetaDataStream) GetLanguageTag() *string { if o == nil { - return "" + return nil } return o.LanguageTag } -func (o *GetMediaMetaDataStream) GetLanguageCode() string { +func (o *GetMediaMetaDataStream) GetLanguageCode() *string { if o == nil { - return "" + return nil } return o.LanguageCode } @@ -602,6 +604,13 @@ func (o *GetMediaMetaDataStream) GetCodedWidth() *int { return o.CodedWidth } +func (o *GetMediaMetaDataStream) GetClosedCaptions() *bool { + if o == nil { + return nil + } + return o.ClosedCaptions +} + func (o *GetMediaMetaDataStream) GetColorPrimaries() *string { if o == nil { return nil @@ -679,6 +688,13 @@ func (o *GetMediaMetaDataStream) GetScanType() *string { return o.ScanType } +func (o *GetMediaMetaDataStream) GetEmbeddedInVideo() *string { + if o == nil { + return nil + } + return o.EmbeddedInVideo +} + func (o *GetMediaMetaDataStream) GetRefFrames() *int { if o == nil { return nil @@ -954,14 +970,14 @@ type GetMediaMetaDataMedia struct { // Video profile (e.g., main 10). VideoProfile *string `json:"videoProfile,omitempty"` // Indicates whether voice activity is detected. - HasVoiceActivity bool `json:"hasVoiceActivity"` + HasVoiceActivity *bool `json:"hasVoiceActivity,omitempty"` // The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). AudioProfile *string `json:"audioProfile,omitempty"` // Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true OptimizedForStreaming *GetMediaMetaDataOptimizedForStreaming `json:"optimizedForStreaming,omitempty"` Has64bitOffsets *bool `json:"has64bitOffsets,omitempty"` // An array of parts for this media item. - Part []GetMediaMetaDataPart `json:"Part"` + Part []GetMediaMetaDataPart `json:"Part,omitempty"` } func (o *GetMediaMetaDataMedia) GetID() int64 { @@ -1062,9 +1078,9 @@ func (o *GetMediaMetaDataMedia) GetVideoProfile() *string { return o.VideoProfile } -func (o *GetMediaMetaDataMedia) GetHasVoiceActivity() bool { +func (o *GetMediaMetaDataMedia) GetHasVoiceActivity() *bool { if o == nil { - return false + return nil } return o.HasVoiceActivity } @@ -1092,7 +1108,7 @@ func (o *GetMediaMetaDataMedia) GetHas64bitOffsets() *bool { func (o *GetMediaMetaDataMedia) GetPart() []GetMediaMetaDataPart { if o == nil { - return []GetMediaMetaDataPart{} + return nil } return o.Part } @@ -1439,7 +1455,7 @@ func (o *GetMediaMetaDataWriter) GetThumb() *string { return o.Thumb } -type Producer struct { +type GetMediaMetaDataProducer struct { // The unique role identifier. ID int64 `json:"id"` // The filter string for the role. @@ -1454,49 +1470,49 @@ type Producer struct { Thumb *string `json:"thumb,omitempty"` } -func (o *Producer) GetID() int64 { +func (o *GetMediaMetaDataProducer) GetID() int64 { if o == nil { return 0 } return o.ID } -func (o *Producer) GetFilter() string { +func (o *GetMediaMetaDataProducer) GetFilter() string { if o == nil { return "" } return o.Filter } -func (o *Producer) GetTag() string { +func (o *GetMediaMetaDataProducer) GetTag() string { if o == nil { return "" } return o.Tag } -func (o *Producer) GetTagKey() string { +func (o *GetMediaMetaDataProducer) GetTagKey() string { if o == nil { return "" } return o.TagKey } -func (o *Producer) GetRole() *string { +func (o *GetMediaMetaDataProducer) GetRole() *string { if o == nil { return nil } return o.Role } -func (o *Producer) GetThumb() *string { +func (o *GetMediaMetaDataProducer) GetThumb() *string { if o == nil { return nil } return o.Thumb } -type Similar struct { +type GetMediaMetaDataSimilar struct { // The unique similar item identifier. ID int64 `json:"id"` // The filter string for similar items. @@ -1505,21 +1521,21 @@ type Similar struct { Tag string `json:"tag"` } -func (o *Similar) GetID() int64 { +func (o *GetMediaMetaDataSimilar) GetID() int64 { if o == nil { return 0 } return o.ID } -func (o *Similar) GetFilter() string { +func (o *GetMediaMetaDataSimilar) GetFilter() string { if o == nil { return "" } return o.Filter } -func (o *Similar) GetTag() string { +func (o *GetMediaMetaDataSimilar) GetTag() string { if o == nil { return "" } @@ -1650,9 +1666,9 @@ type GetMediaMetaDataMetadata struct { // An array of Writer roles. Writer []GetMediaMetaDataWriter `json:"Writer,omitempty"` // An array of Writer roles. - Producer []Producer `json:"Producer,omitempty"` + Producer []GetMediaMetaDataProducer `json:"Producer,omitempty"` // An array of similar content objects. - Similar []Similar `json:"Similar,omitempty"` + Similar []GetMediaMetaDataSimilar `json:"Similar,omitempty"` // An array of location objects. Location []GetMediaMetaDataLocation `json:"Location,omitempty"` } @@ -2074,14 +2090,14 @@ func (o *GetMediaMetaDataMetadata) GetWriter() []GetMediaMetaDataWriter { return o.Writer } -func (o *GetMediaMetaDataMetadata) GetProducer() []Producer { +func (o *GetMediaMetaDataMetadata) GetProducer() []GetMediaMetaDataProducer { if o == nil { return nil } return o.Producer } -func (o *GetMediaMetaDataMetadata) GetSimilar() []Similar { +func (o *GetMediaMetaDataMetadata) GetSimilar() []GetMediaMetaDataSimilar { if o == nil { return nil } diff --git a/models/operations/getondeck.go b/models/operations/getondeck.go deleted file mode 100644 index 72f0025..0000000 --- a/models/operations/getondeck.go +++ /dev/null @@ -1,817 +0,0 @@ -// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -package operations - -import ( - "github.com/LukeHagar/plexgo/internal/utils" - "net/http" - "time" -) - -type GetOnDeckStream struct { - ID *float64 `json:"id,omitempty"` - StreamType *float64 `json:"streamType,omitempty"` - Default *bool `json:"default,omitempty"` - Codec *string `json:"codec,omitempty"` - Index *float64 `json:"index,omitempty"` - Bitrate *float64 `json:"bitrate,omitempty"` - Language *string `json:"language,omitempty"` - LanguageTag *string `json:"languageTag,omitempty"` - LanguageCode *string `json:"languageCode,omitempty"` - BitDepth *float64 `json:"bitDepth,omitempty"` - ChromaLocation *string `json:"chromaLocation,omitempty"` - ChromaSubsampling *string `json:"chromaSubsampling,omitempty"` - CodedHeight *float64 `json:"codedHeight,omitempty"` - CodedWidth *float64 `json:"codedWidth,omitempty"` - ColorRange *string `json:"colorRange,omitempty"` - FrameRate *float64 `json:"frameRate,omitempty"` - Height *float64 `json:"height,omitempty"` - Level *float64 `json:"level,omitempty"` - Profile *string `json:"profile,omitempty"` - RefFrames *float64 `json:"refFrames,omitempty"` - Width *float64 `json:"width,omitempty"` - DisplayTitle *string `json:"displayTitle,omitempty"` - ExtendedDisplayTitle *string `json:"extendedDisplayTitle,omitempty"` -} - -func (o *GetOnDeckStream) GetID() *float64 { - if o == nil { - return nil - } - return o.ID -} - -func (o *GetOnDeckStream) GetStreamType() *float64 { - if o == nil { - return nil - } - return o.StreamType -} - -func (o *GetOnDeckStream) GetDefault() *bool { - if o == nil { - return nil - } - return o.Default -} - -func (o *GetOnDeckStream) GetCodec() *string { - if o == nil { - return nil - } - return o.Codec -} - -func (o *GetOnDeckStream) GetIndex() *float64 { - if o == nil { - return nil - } - return o.Index -} - -func (o *GetOnDeckStream) GetBitrate() *float64 { - if o == nil { - return nil - } - return o.Bitrate -} - -func (o *GetOnDeckStream) GetLanguage() *string { - if o == nil { - return nil - } - return o.Language -} - -func (o *GetOnDeckStream) GetLanguageTag() *string { - if o == nil { - return nil - } - return o.LanguageTag -} - -func (o *GetOnDeckStream) GetLanguageCode() *string { - if o == nil { - return nil - } - return o.LanguageCode -} - -func (o *GetOnDeckStream) GetBitDepth() *float64 { - if o == nil { - return nil - } - return o.BitDepth -} - -func (o *GetOnDeckStream) GetChromaLocation() *string { - if o == nil { - return nil - } - return o.ChromaLocation -} - -func (o *GetOnDeckStream) GetChromaSubsampling() *string { - if o == nil { - return nil - } - return o.ChromaSubsampling -} - -func (o *GetOnDeckStream) GetCodedHeight() *float64 { - if o == nil { - return nil - } - return o.CodedHeight -} - -func (o *GetOnDeckStream) GetCodedWidth() *float64 { - if o == nil { - return nil - } - return o.CodedWidth -} - -func (o *GetOnDeckStream) GetColorRange() *string { - if o == nil { - return nil - } - return o.ColorRange -} - -func (o *GetOnDeckStream) GetFrameRate() *float64 { - if o == nil { - return nil - } - return o.FrameRate -} - -func (o *GetOnDeckStream) GetHeight() *float64 { - if o == nil { - return nil - } - return o.Height -} - -func (o *GetOnDeckStream) GetLevel() *float64 { - if o == nil { - return nil - } - return o.Level -} - -func (o *GetOnDeckStream) GetProfile() *string { - if o == nil { - return nil - } - return o.Profile -} - -func (o *GetOnDeckStream) GetRefFrames() *float64 { - if o == nil { - return nil - } - return o.RefFrames -} - -func (o *GetOnDeckStream) GetWidth() *float64 { - if o == nil { - return nil - } - return o.Width -} - -func (o *GetOnDeckStream) GetDisplayTitle() *string { - if o == nil { - return nil - } - return o.DisplayTitle -} - -func (o *GetOnDeckStream) GetExtendedDisplayTitle() *string { - if o == nil { - return nil - } - return o.ExtendedDisplayTitle -} - -type GetOnDeckPart struct { - ID *float64 `json:"id,omitempty"` - Key *string `json:"key,omitempty"` - Duration *float64 `json:"duration,omitempty"` - File *string `json:"file,omitempty"` - Size *float64 `json:"size,omitempty"` - AudioProfile *string `json:"audioProfile,omitempty"` - Container *string `json:"container,omitempty"` - VideoProfile *string `json:"videoProfile,omitempty"` - Stream []GetOnDeckStream `json:"Stream,omitempty"` -} - -func (o *GetOnDeckPart) GetID() *float64 { - if o == nil { - return nil - } - return o.ID -} - -func (o *GetOnDeckPart) GetKey() *string { - if o == nil { - return nil - } - return o.Key -} - -func (o *GetOnDeckPart) GetDuration() *float64 { - if o == nil { - return nil - } - return o.Duration -} - -func (o *GetOnDeckPart) GetFile() *string { - if o == nil { - return nil - } - return o.File -} - -func (o *GetOnDeckPart) GetSize() *float64 { - if o == nil { - return nil - } - return o.Size -} - -func (o *GetOnDeckPart) GetAudioProfile() *string { - if o == nil { - return nil - } - return o.AudioProfile -} - -func (o *GetOnDeckPart) GetContainer() *string { - if o == nil { - return nil - } - return o.Container -} - -func (o *GetOnDeckPart) GetVideoProfile() *string { - if o == nil { - return nil - } - return o.VideoProfile -} - -func (o *GetOnDeckPart) GetStream() []GetOnDeckStream { - if o == nil { - return nil - } - return o.Stream -} - -type GetOnDeckMedia struct { - ID *float64 `json:"id,omitempty"` - Duration *float64 `json:"duration,omitempty"` - Bitrate *float64 `json:"bitrate,omitempty"` - Width *float64 `json:"width,omitempty"` - Height *float64 `json:"height,omitempty"` - AspectRatio *float64 `json:"aspectRatio,omitempty"` - AudioChannels *float64 `json:"audioChannels,omitempty"` - AudioCodec *string `json:"audioCodec,omitempty"` - VideoCodec *string `json:"videoCodec,omitempty"` - VideoResolution *string `json:"videoResolution,omitempty"` - Container *string `json:"container,omitempty"` - VideoFrameRate *string `json:"videoFrameRate,omitempty"` - AudioProfile *string `json:"audioProfile,omitempty"` - VideoProfile *string `json:"videoProfile,omitempty"` - Part []GetOnDeckPart `json:"Part,omitempty"` -} - -func (o *GetOnDeckMedia) GetID() *float64 { - if o == nil { - return nil - } - return o.ID -} - -func (o *GetOnDeckMedia) GetDuration() *float64 { - if o == nil { - return nil - } - return o.Duration -} - -func (o *GetOnDeckMedia) GetBitrate() *float64 { - if o == nil { - return nil - } - return o.Bitrate -} - -func (o *GetOnDeckMedia) GetWidth() *float64 { - if o == nil { - return nil - } - return o.Width -} - -func (o *GetOnDeckMedia) GetHeight() *float64 { - if o == nil { - return nil - } - return o.Height -} - -func (o *GetOnDeckMedia) GetAspectRatio() *float64 { - if o == nil { - return nil - } - return o.AspectRatio -} - -func (o *GetOnDeckMedia) GetAudioChannels() *float64 { - if o == nil { - return nil - } - return o.AudioChannels -} - -func (o *GetOnDeckMedia) GetAudioCodec() *string { - if o == nil { - return nil - } - return o.AudioCodec -} - -func (o *GetOnDeckMedia) GetVideoCodec() *string { - if o == nil { - return nil - } - return o.VideoCodec -} - -func (o *GetOnDeckMedia) GetVideoResolution() *string { - if o == nil { - return nil - } - return o.VideoResolution -} - -func (o *GetOnDeckMedia) GetContainer() *string { - if o == nil { - return nil - } - return o.Container -} - -func (o *GetOnDeckMedia) GetVideoFrameRate() *string { - if o == nil { - return nil - } - return o.VideoFrameRate -} - -func (o *GetOnDeckMedia) GetAudioProfile() *string { - if o == nil { - return nil - } - return o.AudioProfile -} - -func (o *GetOnDeckMedia) GetVideoProfile() *string { - if o == nil { - return nil - } - return o.VideoProfile -} - -func (o *GetOnDeckMedia) GetPart() []GetOnDeckPart { - if o == nil { - return nil - } - return o.Part -} - -type GetOnDeckGuids struct { - ID *string `json:"id,omitempty"` -} - -func (o *GetOnDeckGuids) GetID() *string { - if o == nil { - return nil - } - return o.ID -} - -type GetOnDeckMetadata struct { - AllowSync *bool `json:"allowSync,omitempty"` - LibrarySectionID *float64 `json:"librarySectionID,omitempty"` - LibrarySectionTitle *string `json:"librarySectionTitle,omitempty"` - LibrarySectionUUID *string `json:"librarySectionUUID,omitempty"` - RatingKey *float64 `json:"ratingKey,omitempty"` - Key *string `json:"key,omitempty"` - ParentRatingKey *float64 `json:"parentRatingKey,omitempty"` - GrandparentRatingKey *float64 `json:"grandparentRatingKey,omitempty"` - GUID *string `json:"guid,omitempty"` - ParentGUID *string `json:"parentGuid,omitempty"` - GrandparentGUID *string `json:"grandparentGuid,omitempty"` - Type *string `json:"type,omitempty"` - Title *string `json:"title,omitempty"` - GrandparentKey *string `json:"grandparentKey,omitempty"` - ParentKey *string `json:"parentKey,omitempty"` - LibrarySectionKey *string `json:"librarySectionKey,omitempty"` - GrandparentTitle *string `json:"grandparentTitle,omitempty"` - ParentTitle *string `json:"parentTitle,omitempty"` - ContentRating *string `json:"contentRating,omitempty"` - Summary *string `json:"summary,omitempty"` - Index *float64 `json:"index,omitempty"` - ParentIndex *float64 `json:"parentIndex,omitempty"` - LastViewedAt *float64 `json:"lastViewedAt,omitempty"` - Year *float64 `json:"year,omitempty"` - Thumb *string `json:"thumb,omitempty"` - Art *string `json:"art,omitempty"` - ParentThumb *string `json:"parentThumb,omitempty"` - GrandparentThumb *string `json:"grandparentThumb,omitempty"` - GrandparentArt *string `json:"grandparentArt,omitempty"` - GrandparentTheme *string `json:"grandparentTheme,omitempty"` - Duration *float64 `json:"duration,omitempty"` - OriginallyAvailableAt *time.Time `json:"originallyAvailableAt,omitempty"` - AddedAt *float64 `json:"addedAt,omitempty"` - UpdatedAt *float64 `json:"updatedAt,omitempty"` - Media []GetOnDeckMedia `json:"Media,omitempty"` - Guids []GetOnDeckGuids `json:"Guid,omitempty"` -} - -func (g GetOnDeckMetadata) MarshalJSON() ([]byte, error) { - return utils.MarshalJSON(g, "", false) -} - -func (g *GetOnDeckMetadata) UnmarshalJSON(data []byte) error { - if err := utils.UnmarshalJSON(data, &g, "", false, false); err != nil { - return err - } - return nil -} - -func (o *GetOnDeckMetadata) GetAllowSync() *bool { - if o == nil { - return nil - } - return o.AllowSync -} - -func (o *GetOnDeckMetadata) GetLibrarySectionID() *float64 { - if o == nil { - return nil - } - return o.LibrarySectionID -} - -func (o *GetOnDeckMetadata) GetLibrarySectionTitle() *string { - if o == nil { - return nil - } - return o.LibrarySectionTitle -} - -func (o *GetOnDeckMetadata) GetLibrarySectionUUID() *string { - if o == nil { - return nil - } - return o.LibrarySectionUUID -} - -func (o *GetOnDeckMetadata) GetRatingKey() *float64 { - if o == nil { - return nil - } - return o.RatingKey -} - -func (o *GetOnDeckMetadata) GetKey() *string { - if o == nil { - return nil - } - return o.Key -} - -func (o *GetOnDeckMetadata) GetParentRatingKey() *float64 { - if o == nil { - return nil - } - return o.ParentRatingKey -} - -func (o *GetOnDeckMetadata) GetGrandparentRatingKey() *float64 { - if o == nil { - return nil - } - return o.GrandparentRatingKey -} - -func (o *GetOnDeckMetadata) GetGUID() *string { - if o == nil { - return nil - } - return o.GUID -} - -func (o *GetOnDeckMetadata) GetParentGUID() *string { - if o == nil { - return nil - } - return o.ParentGUID -} - -func (o *GetOnDeckMetadata) GetGrandparentGUID() *string { - if o == nil { - return nil - } - return o.GrandparentGUID -} - -func (o *GetOnDeckMetadata) GetType() *string { - if o == nil { - return nil - } - return o.Type -} - -func (o *GetOnDeckMetadata) GetTitle() *string { - if o == nil { - return nil - } - return o.Title -} - -func (o *GetOnDeckMetadata) GetGrandparentKey() *string { - if o == nil { - return nil - } - return o.GrandparentKey -} - -func (o *GetOnDeckMetadata) GetParentKey() *string { - if o == nil { - return nil - } - return o.ParentKey -} - -func (o *GetOnDeckMetadata) GetLibrarySectionKey() *string { - if o == nil { - return nil - } - return o.LibrarySectionKey -} - -func (o *GetOnDeckMetadata) GetGrandparentTitle() *string { - if o == nil { - return nil - } - return o.GrandparentTitle -} - -func (o *GetOnDeckMetadata) GetParentTitle() *string { - if o == nil { - return nil - } - return o.ParentTitle -} - -func (o *GetOnDeckMetadata) GetContentRating() *string { - if o == nil { - return nil - } - return o.ContentRating -} - -func (o *GetOnDeckMetadata) GetSummary() *string { - if o == nil { - return nil - } - return o.Summary -} - -func (o *GetOnDeckMetadata) GetIndex() *float64 { - if o == nil { - return nil - } - return o.Index -} - -func (o *GetOnDeckMetadata) GetParentIndex() *float64 { - if o == nil { - return nil - } - return o.ParentIndex -} - -func (o *GetOnDeckMetadata) GetLastViewedAt() *float64 { - if o == nil { - return nil - } - return o.LastViewedAt -} - -func (o *GetOnDeckMetadata) GetYear() *float64 { - if o == nil { - return nil - } - return o.Year -} - -func (o *GetOnDeckMetadata) GetThumb() *string { - if o == nil { - return nil - } - return o.Thumb -} - -func (o *GetOnDeckMetadata) GetArt() *string { - if o == nil { - return nil - } - return o.Art -} - -func (o *GetOnDeckMetadata) GetParentThumb() *string { - if o == nil { - return nil - } - return o.ParentThumb -} - -func (o *GetOnDeckMetadata) GetGrandparentThumb() *string { - if o == nil { - return nil - } - return o.GrandparentThumb -} - -func (o *GetOnDeckMetadata) GetGrandparentArt() *string { - if o == nil { - return nil - } - return o.GrandparentArt -} - -func (o *GetOnDeckMetadata) GetGrandparentTheme() *string { - if o == nil { - return nil - } - return o.GrandparentTheme -} - -func (o *GetOnDeckMetadata) GetDuration() *float64 { - if o == nil { - return nil - } - return o.Duration -} - -func (o *GetOnDeckMetadata) GetOriginallyAvailableAt() *time.Time { - if o == nil { - return nil - } - return o.OriginallyAvailableAt -} - -func (o *GetOnDeckMetadata) GetAddedAt() *float64 { - if o == nil { - return nil - } - return o.AddedAt -} - -func (o *GetOnDeckMetadata) GetUpdatedAt() *float64 { - if o == nil { - return nil - } - return o.UpdatedAt -} - -func (o *GetOnDeckMetadata) GetMedia() []GetOnDeckMedia { - if o == nil { - return nil - } - return o.Media -} - -func (o *GetOnDeckMetadata) GetGuids() []GetOnDeckGuids { - if o == nil { - return nil - } - return o.Guids -} - -type GetOnDeckMediaContainer struct { - Size *float64 `json:"size,omitempty"` - AllowSync *bool `json:"allowSync,omitempty"` - Identifier *string `json:"identifier,omitempty"` - MediaTagPrefix *string `json:"mediaTagPrefix,omitempty"` - MediaTagVersion *float64 `json:"mediaTagVersion,omitempty"` - MixedParents *bool `json:"mixedParents,omitempty"` - Metadata []GetOnDeckMetadata `json:"Metadata,omitempty"` -} - -func (o *GetOnDeckMediaContainer) GetSize() *float64 { - if o == nil { - return nil - } - return o.Size -} - -func (o *GetOnDeckMediaContainer) GetAllowSync() *bool { - if o == nil { - return nil - } - return o.AllowSync -} - -func (o *GetOnDeckMediaContainer) GetIdentifier() *string { - if o == nil { - return nil - } - return o.Identifier -} - -func (o *GetOnDeckMediaContainer) GetMediaTagPrefix() *string { - if o == nil { - return nil - } - return o.MediaTagPrefix -} - -func (o *GetOnDeckMediaContainer) GetMediaTagVersion() *float64 { - if o == nil { - return nil - } - return o.MediaTagVersion -} - -func (o *GetOnDeckMediaContainer) GetMixedParents() *bool { - if o == nil { - return nil - } - return o.MixedParents -} - -func (o *GetOnDeckMediaContainer) GetMetadata() []GetOnDeckMetadata { - if o == nil { - return nil - } - return o.Metadata -} - -// GetOnDeckResponseBody - The on Deck content -type GetOnDeckResponseBody struct { - MediaContainer *GetOnDeckMediaContainer `json:"MediaContainer,omitempty"` -} - -func (o *GetOnDeckResponseBody) GetMediaContainer() *GetOnDeckMediaContainer { - if o == nil { - return nil - } - return o.MediaContainer -} - -type GetOnDeckResponse struct { - // HTTP response content type for this operation - ContentType string - // HTTP response status code for this operation - StatusCode int - // Raw HTTP response; suitable for custom response parsing - RawResponse *http.Response - // The on Deck content - Object *GetOnDeckResponseBody -} - -func (o *GetOnDeckResponse) GetContentType() string { - if o == nil { - return "" - } - return o.ContentType -} - -func (o *GetOnDeckResponse) GetStatusCode() int { - if o == nil { - return 0 - } - return o.StatusCode -} - -func (o *GetOnDeckResponse) GetRawResponse() *http.Response { - if o == nil { - return nil - } - return o.RawResponse -} - -func (o *GetOnDeckResponse) GetObject() *GetOnDeckResponseBody { - if o == nil { - return nil - } - return o.Object -} diff --git a/models/operations/getrecentlyadded.go b/models/operations/getrecentlyadded.go index d98152e..f575dc7 100644 --- a/models/operations/getrecentlyadded.go +++ b/models/operations/getrecentlyadded.go @@ -4,6 +4,7 @@ package operations import ( "encoding/json" + "errors" "fmt" "github.com/LukeHagar/plexgo/internal/utils" "github.com/LukeHagar/plexgo/types" @@ -560,1007 +561,6 @@ func (e *GetRecentlyAddedHubsType) UnmarshalJSON(data []byte) error { } } -// FlattenSeasons - Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). -type FlattenSeasons string - -const ( - FlattenSeasonsLibraryDefault FlattenSeasons = "-1" - FlattenSeasonsHide FlattenSeasons = "0" - FlattenSeasonsShow FlattenSeasons = "1" -) - -func (e FlattenSeasons) ToPointer() *FlattenSeasons { - return &e -} -func (e *FlattenSeasons) UnmarshalJSON(data []byte) error { - var v string - if err := json.Unmarshal(data, &v); err != nil { - return err - } - switch v { - case "-1": - fallthrough - case "0": - fallthrough - case "1": - *e = FlattenSeasons(v) - return nil - default: - return fmt.Errorf("invalid value for FlattenSeasons: %v", v) - } -} - -// EpisodeSort - Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). -type EpisodeSort string - -const ( - EpisodeSortLibraryDefault EpisodeSort = "-1" - EpisodeSortOldestFirst EpisodeSort = "0" - EpisodeSortNewestFirst EpisodeSort = "1" -) - -func (e EpisodeSort) ToPointer() *EpisodeSort { - return &e -} -func (e *EpisodeSort) UnmarshalJSON(data []byte) error { - var v string - if err := json.Unmarshal(data, &v); err != nil { - return err - } - switch v { - case "-1": - fallthrough - case "0": - fallthrough - case "1": - *e = EpisodeSort(v) - return nil - default: - return fmt.Errorf("invalid value for EpisodeSort: %v", v) - } -} - -// EnableCreditsMarkerGeneration - Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). -type EnableCreditsMarkerGeneration string - -const ( - EnableCreditsMarkerGenerationLibraryDefault EnableCreditsMarkerGeneration = "-1" - EnableCreditsMarkerGenerationDisabled EnableCreditsMarkerGeneration = "0" -) - -func (e EnableCreditsMarkerGeneration) ToPointer() *EnableCreditsMarkerGeneration { - return &e -} -func (e *EnableCreditsMarkerGeneration) UnmarshalJSON(data []byte) error { - var v string - if err := json.Unmarshal(data, &v); err != nil { - return err - } - switch v { - case "-1": - fallthrough - case "0": - *e = EnableCreditsMarkerGeneration(v) - return nil - default: - return fmt.Errorf("invalid value for EnableCreditsMarkerGeneration: %v", v) - } -} - -// ShowOrdering - 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)). -type ShowOrdering string - -const ( - ShowOrderingNone ShowOrdering = "None" - ShowOrderingTmdbAiring ShowOrdering = "tmdbAiring" - ShowOrderingTvdbAired ShowOrdering = "aired" - ShowOrderingTvdbDvd ShowOrdering = "dvd" - ShowOrderingTvdbAbsolute ShowOrdering = "absolute" -) - -func (e ShowOrdering) ToPointer() *ShowOrdering { - return &e -} -func (e *ShowOrdering) UnmarshalJSON(data []byte) error { - var v string - if err := json.Unmarshal(data, &v); err != nil { - return err - } - switch v { - case "None": - fallthrough - case "tmdbAiring": - fallthrough - case "aired": - fallthrough - case "dvd": - fallthrough - case "absolute": - *e = ShowOrdering(v) - return nil - default: - return fmt.Errorf("invalid value for ShowOrdering: %v", v) - } -} - -type OptimizedForStreaming int - -const ( - OptimizedForStreamingDisable OptimizedForStreaming = 0 - OptimizedForStreamingEnable OptimizedForStreaming = 1 -) - -func (e OptimizedForStreaming) ToPointer() *OptimizedForStreaming { - return &e -} -func (e *OptimizedForStreaming) UnmarshalJSON(data []byte) error { - var v int - if err := json.Unmarshal(data, &v); err != nil { - return err - } - switch v { - case 0: - fallthrough - case 1: - *e = OptimizedForStreaming(v) - return nil - default: - return fmt.Errorf("invalid value for OptimizedForStreaming: %v", v) - } -} - -type HasThumbnail string - -const ( - HasThumbnailFalse HasThumbnail = "0" - HasThumbnailTrue HasThumbnail = "1" -) - -func (e HasThumbnail) ToPointer() *HasThumbnail { - return &e -} -func (e *HasThumbnail) UnmarshalJSON(data []byte) error { - var v string - if err := json.Unmarshal(data, &v); err != nil { - return err - } - switch v { - case "0": - fallthrough - case "1": - *e = HasThumbnail(v) - return nil - default: - return fmt.Errorf("invalid value for HasThumbnail: %v", v) - } -} - -type Stream struct { - ID int64 `json:"id"` - // Type of stream (1 = video, 2 = audio, 3 = subtitle) - StreamType int64 `json:"streamType"` - // Indicates if this is the default stream - Default *bool `json:"default,omitempty"` - // Indicates if the stream is selected - Selected *bool `json:"selected,omitempty"` - // Codec used by the stream - Codec string `json:"codec"` - // The index of the stream - Index int64 `json:"index"` - // The bitrate of the stream in kbps - Bitrate *int64 `json:"bitrate,omitempty"` - // The color primaries of the video stream - ColorPrimaries *string `json:"colorPrimaries,omitempty"` - // The color range of the video stream - ColorRange *string `json:"colorRange,omitempty"` - // The color space of the video stream - ColorSpace *string `json:"colorSpace,omitempty"` - // The transfer characteristics (TRC) of the video stream - ColorTrc *string `json:"colorTrc,omitempty"` - // The bit depth of the video stream - BitDepth *int64 `json:"bitDepth,omitempty"` - // The chroma location of the video stream - ChromaLocation *string `json:"chromaLocation,omitempty"` - // The identifier of the video stream - StreamIdentifier *string `json:"streamIdentifier,omitempty"` - // The chroma subsampling format - ChromaSubsampling *string `json:"chromaSubsampling,omitempty"` - // The coded height of the video stream - CodedHeight *int64 `json:"codedHeight,omitempty"` - // The coded width of the video stream - CodedWidth *int64 `json:"codedWidth,omitempty"` - // The frame rate of the video stream - FrameRate *float64 `json:"frameRate,omitempty"` - // Indicates if the stream has a scaling matrix - HasScalingMatrix *bool `json:"hasScalingMatrix,omitempty"` - HearingImpaired *bool `json:"hearingImpaired,omitempty"` - ClosedCaptions *bool `json:"closedCaptions,omitempty"` - EmbeddedInVideo *string `json:"embeddedInVideo,omitempty"` - // The height of the video stream - Height *int64 `json:"height,omitempty"` - // The level of the video codec - Level *int64 `json:"level,omitempty"` - // The profile of the video codec - Profile *string `json:"profile,omitempty"` - // Number of reference frames - RefFrames *int64 `json:"refFrames,omitempty"` - // The scan type (progressive or interlaced) - ScanType *string `json:"scanType,omitempty"` - // The width of the video stream - Width *int64 `json:"width,omitempty"` - // Display title of the stream - DisplayTitle *string `json:"displayTitle,omitempty"` - // Extended display title of the stream - ExtendedDisplayTitle *string `json:"extendedDisplayTitle,omitempty"` - // Number of audio channels (for audio streams) - Channels *int64 `json:"channels,omitempty"` - // The language of the stream (for audio/subtitle streams) - Language *string `json:"language,omitempty"` - // Language tag of the stream - LanguageTag *string `json:"languageTag,omitempty"` - // Language code of the stream - LanguageCode *string `json:"languageCode,omitempty"` - // The audio channel layout - AudioChannelLayout *string `json:"audioChannelLayout,omitempty"` - // Sampling rate of the audio stream in Hz - SamplingRate *int64 `json:"samplingRate,omitempty"` - // Title of the subtitle track (for subtitle streams) - Title *string `json:"title,omitempty"` - // Indicates if the subtitle stream can auto-sync - CanAutoSync *bool `json:"canAutoSync,omitempty"` -} - -func (o *Stream) GetID() int64 { - if o == nil { - return 0 - } - return o.ID -} - -func (o *Stream) GetStreamType() int64 { - if o == nil { - return 0 - } - return o.StreamType -} - -func (o *Stream) GetDefault() *bool { - if o == nil { - return nil - } - return o.Default -} - -func (o *Stream) GetSelected() *bool { - if o == nil { - return nil - } - return o.Selected -} - -func (o *Stream) GetCodec() string { - if o == nil { - return "" - } - return o.Codec -} - -func (o *Stream) GetIndex() int64 { - if o == nil { - return 0 - } - return o.Index -} - -func (o *Stream) GetBitrate() *int64 { - if o == nil { - return nil - } - return o.Bitrate -} - -func (o *Stream) GetColorPrimaries() *string { - if o == nil { - return nil - } - return o.ColorPrimaries -} - -func (o *Stream) GetColorRange() *string { - if o == nil { - return nil - } - return o.ColorRange -} - -func (o *Stream) GetColorSpace() *string { - if o == nil { - return nil - } - return o.ColorSpace -} - -func (o *Stream) GetColorTrc() *string { - if o == nil { - return nil - } - return o.ColorTrc -} - -func (o *Stream) GetBitDepth() *int64 { - if o == nil { - return nil - } - return o.BitDepth -} - -func (o *Stream) GetChromaLocation() *string { - if o == nil { - return nil - } - return o.ChromaLocation -} - -func (o *Stream) GetStreamIdentifier() *string { - if o == nil { - return nil - } - return o.StreamIdentifier -} - -func (o *Stream) GetChromaSubsampling() *string { - if o == nil { - return nil - } - return o.ChromaSubsampling -} - -func (o *Stream) GetCodedHeight() *int64 { - if o == nil { - return nil - } - return o.CodedHeight -} - -func (o *Stream) GetCodedWidth() *int64 { - if o == nil { - return nil - } - return o.CodedWidth -} - -func (o *Stream) GetFrameRate() *float64 { - if o == nil { - return nil - } - return o.FrameRate -} - -func (o *Stream) GetHasScalingMatrix() *bool { - if o == nil { - return nil - } - return o.HasScalingMatrix -} - -func (o *Stream) GetHearingImpaired() *bool { - if o == nil { - return nil - } - return o.HearingImpaired -} - -func (o *Stream) GetClosedCaptions() *bool { - if o == nil { - return nil - } - return o.ClosedCaptions -} - -func (o *Stream) GetEmbeddedInVideo() *string { - if o == nil { - return nil - } - return o.EmbeddedInVideo -} - -func (o *Stream) GetHeight() *int64 { - if o == nil { - return nil - } - return o.Height -} - -func (o *Stream) GetLevel() *int64 { - if o == nil { - return nil - } - return o.Level -} - -func (o *Stream) GetProfile() *string { - if o == nil { - return nil - } - return o.Profile -} - -func (o *Stream) GetRefFrames() *int64 { - if o == nil { - return nil - } - return o.RefFrames -} - -func (o *Stream) GetScanType() *string { - if o == nil { - return nil - } - return o.ScanType -} - -func (o *Stream) GetWidth() *int64 { - if o == nil { - return nil - } - return o.Width -} - -func (o *Stream) GetDisplayTitle() *string { - if o == nil { - return nil - } - return o.DisplayTitle -} - -func (o *Stream) GetExtendedDisplayTitle() *string { - if o == nil { - return nil - } - return o.ExtendedDisplayTitle -} - -func (o *Stream) GetChannels() *int64 { - if o == nil { - return nil - } - return o.Channels -} - -func (o *Stream) GetLanguage() *string { - if o == nil { - return nil - } - return o.Language -} - -func (o *Stream) GetLanguageTag() *string { - if o == nil { - return nil - } - return o.LanguageTag -} - -func (o *Stream) GetLanguageCode() *string { - if o == nil { - return nil - } - return o.LanguageCode -} - -func (o *Stream) GetAudioChannelLayout() *string { - if o == nil { - return nil - } - return o.AudioChannelLayout -} - -func (o *Stream) GetSamplingRate() *int64 { - if o == nil { - return nil - } - return o.SamplingRate -} - -func (o *Stream) GetTitle() *string { - if o == nil { - return nil - } - return o.Title -} - -func (o *Stream) GetCanAutoSync() *bool { - if o == nil { - return nil - } - return o.CanAutoSync -} - -type Part struct { - ID int `json:"id"` - Key string `json:"key"` - Duration *int `json:"duration,omitempty"` - File string `json:"file"` - Size int64 `json:"size"` - // The container format of the media file. - // - Container string `json:"container"` - AudioProfile *string `json:"audioProfile,omitempty"` - Has64bitOffsets *bool `json:"has64bitOffsets,omitempty"` - OptimizedForStreaming *bool `json:"optimizedForStreaming,omitempty"` - VideoProfile *string `json:"videoProfile,omitempty"` - Indexes *string `json:"indexes,omitempty"` - HasThumbnail *HasThumbnail `default:"0" json:"hasThumbnail"` - Stream []Stream `json:"Stream,omitempty"` -} - -func (p Part) MarshalJSON() ([]byte, error) { - return utils.MarshalJSON(p, "", false) -} - -func (p *Part) UnmarshalJSON(data []byte) error { - if err := utils.UnmarshalJSON(data, &p, "", false, false); err != nil { - return err - } - return nil -} - -func (o *Part) GetID() int { - if o == nil { - return 0 - } - return o.ID -} - -func (o *Part) GetKey() string { - if o == nil { - return "" - } - return o.Key -} - -func (o *Part) GetDuration() *int { - if o == nil { - return nil - } - return o.Duration -} - -func (o *Part) GetFile() string { - if o == nil { - return "" - } - return o.File -} - -func (o *Part) GetSize() int64 { - if o == nil { - return 0 - } - return o.Size -} - -func (o *Part) GetContainer() string { - if o == nil { - return "" - } - return o.Container -} - -func (o *Part) GetAudioProfile() *string { - if o == nil { - return nil - } - return o.AudioProfile -} - -func (o *Part) GetHas64bitOffsets() *bool { - if o == nil { - return nil - } - return o.Has64bitOffsets -} - -func (o *Part) GetOptimizedForStreaming() *bool { - if o == nil { - return nil - } - return o.OptimizedForStreaming -} - -func (o *Part) GetVideoProfile() *string { - if o == nil { - return nil - } - return o.VideoProfile -} - -func (o *Part) GetIndexes() *string { - if o == nil { - return nil - } - return o.Indexes -} - -func (o *Part) GetHasThumbnail() *HasThumbnail { - if o == nil { - return nil - } - return o.HasThumbnail -} - -func (o *Part) GetStream() []Stream { - if o == nil { - return nil - } - return o.Stream -} - -type Media struct { - ID int `json:"id"` - Duration *int `json:"duration,omitempty"` - Bitrate *int `json:"bitrate,omitempty"` - Width *int `json:"width,omitempty"` - Height *int `json:"height,omitempty"` - AspectRatio *float64 `json:"aspectRatio,omitempty"` - AudioProfile *string `json:"audioProfile,omitempty"` - AudioChannels *int `json:"audioChannels,omitempty"` - AudioCodec *string `json:"audioCodec,omitempty"` - VideoCodec *string `json:"videoCodec,omitempty"` - VideoResolution *string `json:"videoResolution,omitempty"` - Container string `json:"container"` - VideoFrameRate *string `json:"videoFrameRate,omitempty"` - VideoProfile *string `json:"videoProfile,omitempty"` - HasVoiceActivity *bool `json:"hasVoiceActivity,omitempty"` - OptimizedForStreaming *OptimizedForStreaming `default:"0" json:"optimizedForStreaming"` - Has64bitOffsets *bool `json:"has64bitOffsets,omitempty"` - Part []Part `json:"Part"` -} - -func (m Media) MarshalJSON() ([]byte, error) { - return utils.MarshalJSON(m, "", false) -} - -func (m *Media) UnmarshalJSON(data []byte) error { - if err := utils.UnmarshalJSON(data, &m, "", false, false); err != nil { - return err - } - return nil -} - -func (o *Media) GetID() int { - if o == nil { - return 0 - } - return o.ID -} - -func (o *Media) GetDuration() *int { - if o == nil { - return nil - } - return o.Duration -} - -func (o *Media) GetBitrate() *int { - if o == nil { - return nil - } - return o.Bitrate -} - -func (o *Media) GetWidth() *int { - if o == nil { - return nil - } - return o.Width -} - -func (o *Media) GetHeight() *int { - if o == nil { - return nil - } - return o.Height -} - -func (o *Media) GetAspectRatio() *float64 { - if o == nil { - return nil - } - return o.AspectRatio -} - -func (o *Media) GetAudioProfile() *string { - if o == nil { - return nil - } - return o.AudioProfile -} - -func (o *Media) GetAudioChannels() *int { - if o == nil { - return nil - } - return o.AudioChannels -} - -func (o *Media) GetAudioCodec() *string { - if o == nil { - return nil - } - return o.AudioCodec -} - -func (o *Media) GetVideoCodec() *string { - if o == nil { - return nil - } - return o.VideoCodec -} - -func (o *Media) GetVideoResolution() *string { - if o == nil { - return nil - } - return o.VideoResolution -} - -func (o *Media) GetContainer() string { - if o == nil { - return "" - } - return o.Container -} - -func (o *Media) GetVideoFrameRate() *string { - if o == nil { - return nil - } - return o.VideoFrameRate -} - -func (o *Media) GetVideoProfile() *string { - if o == nil { - return nil - } - return o.VideoProfile -} - -func (o *Media) GetHasVoiceActivity() *bool { - if o == nil { - return nil - } - return o.HasVoiceActivity -} - -func (o *Media) GetOptimizedForStreaming() *OptimizedForStreaming { - if o == nil { - return nil - } - return o.OptimizedForStreaming -} - -func (o *Media) GetHas64bitOffsets() *bool { - if o == nil { - return nil - } - return o.Has64bitOffsets -} - -func (o *Media) GetPart() []Part { - if o == nil { - return []Part{} - } - return o.Part -} - -type Genre struct { - Tag *string `json:"tag,omitempty"` -} - -func (o *Genre) GetTag() *string { - if o == nil { - return nil - } - return o.Tag -} - -type Country struct { - Tag *string `json:"tag,omitempty"` -} - -func (o *Country) GetTag() *string { - if o == nil { - return nil - } - return o.Tag -} - -type Director struct { - Tag *string `json:"tag,omitempty"` -} - -func (o *Director) GetTag() *string { - if o == nil { - return nil - } - return o.Tag -} - -type Writer struct { - Tag *string `json:"tag,omitempty"` -} - -func (o *Writer) GetTag() *string { - if o == nil { - return nil - } - return o.Tag -} - -type Collection struct { - Tag *string `json:"tag,omitempty"` -} - -func (o *Collection) GetTag() *string { - if o == nil { - return nil - } - return o.Tag -} - -type Role struct { - // The ID of the tag or actor. - ID *int64 `json:"id,omitempty"` - // The filter used to find the actor or tag. - Filter *string `json:"filter,omitempty"` - // The thumbnail of the actor - Thumb *string `json:"thumb,omitempty"` - // The name of the tag or actor. - Tag *string `json:"tag,omitempty"` - // Unique identifier for the tag. - TagKey *string `json:"tagKey,omitempty"` - // The role of the actor or tag in the media. - Role *string `json:"role,omitempty"` -} - -func (o *Role) GetID() *int64 { - if o == nil { - return nil - } - return o.ID -} - -func (o *Role) GetFilter() *string { - if o == nil { - return nil - } - return o.Filter -} - -func (o *Role) GetThumb() *string { - if o == nil { - return nil - } - return o.Thumb -} - -func (o *Role) GetTag() *string { - if o == nil { - return nil - } - return o.Tag -} - -func (o *Role) GetTagKey() *string { - if o == nil { - return nil - } - return o.TagKey -} - -func (o *Role) GetRole() *string { - if o == nil { - return nil - } - return o.Role -} - -type Location struct { - Path *string `json:"path,omitempty"` -} - -func (o *Location) GetPath() *string { - if o == nil { - return nil - } - return o.Path -} - -type MediaGUID struct { - // Can be one of the following formats: - // imdb://tt13015952, tmdb://2434012, tvdb://7945991 - // - ID string `json:"id"` -} - -func (o *MediaGUID) GetID() string { - if o == nil { - return "" - } - return o.ID -} - -type UltraBlurColors struct { - TopLeft string `json:"topLeft"` - TopRight string `json:"topRight"` - BottomRight string `json:"bottomRight"` - BottomLeft string `json:"bottomLeft"` -} - -func (o *UltraBlurColors) GetTopLeft() string { - if o == nil { - return "" - } - return o.TopLeft -} - -func (o *UltraBlurColors) GetTopRight() string { - if o == nil { - return "" - } - return o.TopRight -} - -func (o *UltraBlurColors) GetBottomRight() string { - if o == nil { - return "" - } - return o.BottomRight -} - -func (o *UltraBlurColors) GetBottomLeft() string { - if o == nil { - return "" - } - return o.BottomLeft -} - -type MetaDataRating struct { - // A URI or path to the rating image. - Image string `json:"image"` - // The value of the rating. - Value float32 `json:"value"` - // The type of rating (e.g., audience, critic). - Type string `json:"type"` -} - -func (o *MetaDataRating) GetImage() string { - if o == nil { - return "" - } - return o.Image -} - -func (o *MetaDataRating) GetValue() float32 { - if o == nil { - return 0.0 - } - return o.Value -} - -func (o *MetaDataRating) GetType() string { - if o == nil { - return "" - } - return o.Type -} - type GetRecentlyAddedHubsResponseType string const ( @@ -1620,106 +620,1458 @@ func (o *GetRecentlyAddedImage) GetURL() string { return o.URL } +type UltraBlurColors struct { + TopLeft string `json:"topLeft"` + TopRight string `json:"topRight"` + BottomRight string `json:"bottomRight"` + BottomLeft string `json:"bottomLeft"` +} + +func (o *UltraBlurColors) GetTopLeft() string { + if o == nil { + return "" + } + return o.TopLeft +} + +func (o *UltraBlurColors) GetTopRight() string { + if o == nil { + return "" + } + return o.TopRight +} + +func (o *UltraBlurColors) GetBottomRight() string { + if o == nil { + return "" + } + return o.BottomRight +} + +func (o *UltraBlurColors) GetBottomLeft() string { + if o == nil { + return "" + } + return o.BottomLeft +} + +type One int + +const ( + OneZero One = 0 + OneOne One = 1 +) + +func (e One) ToPointer() *One { + return &e +} +func (e *One) UnmarshalJSON(data []byte) error { + var v int + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case 0: + fallthrough + case 1: + *e = One(v) + return nil + default: + return fmt.Errorf("invalid value for One: %v", v) + } +} + +type OptimizedForStreamingType string + +const ( + OptimizedForStreamingTypeOne OptimizedForStreamingType = "1" + OptimizedForStreamingTypeBoolean OptimizedForStreamingType = "boolean" +) + +// OptimizedForStreaming - Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true +type OptimizedForStreaming struct { + One *One `queryParam:"inline"` + Boolean *bool `queryParam:"inline"` + + Type OptimizedForStreamingType +} + +func CreateOptimizedForStreamingOne(one One) OptimizedForStreaming { + typ := OptimizedForStreamingTypeOne + + return OptimizedForStreaming{ + One: &one, + Type: typ, + } +} + +func CreateOptimizedForStreamingBoolean(boolean bool) OptimizedForStreaming { + typ := OptimizedForStreamingTypeBoolean + + return OptimizedForStreaming{ + Boolean: &boolean, + Type: typ, + } +} + +func (u *OptimizedForStreaming) UnmarshalJSON(data []byte) error { + + var one One = One(0) + if err := utils.UnmarshalJSON(data, &one, "", true, true); err == nil { + u.One = &one + u.Type = OptimizedForStreamingTypeOne + return nil + } + + var boolean bool = false + if err := utils.UnmarshalJSON(data, &boolean, "", true, true); err == nil { + u.Boolean = &boolean + u.Type = OptimizedForStreamingTypeBoolean + return nil + } + + return fmt.Errorf("could not unmarshal `%s` into any supported union types for OptimizedForStreaming", string(data)) +} + +func (u OptimizedForStreaming) MarshalJSON() ([]byte, error) { + if u.One != nil { + return utils.MarshalJSON(u.One, "", true) + } + + if u.Boolean != nil { + return utils.MarshalJSON(u.Boolean, "", true) + } + + return nil, errors.New("could not marshal union type OptimizedForStreaming: all fields are null") +} + +type GetRecentlyAddedOptimizedForStreaming1 int + +const ( + GetRecentlyAddedOptimizedForStreaming1Zero GetRecentlyAddedOptimizedForStreaming1 = 0 + GetRecentlyAddedOptimizedForStreaming1One GetRecentlyAddedOptimizedForStreaming1 = 1 +) + +func (e GetRecentlyAddedOptimizedForStreaming1) ToPointer() *GetRecentlyAddedOptimizedForStreaming1 { + return &e +} +func (e *GetRecentlyAddedOptimizedForStreaming1) UnmarshalJSON(data []byte) error { + var v int + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case 0: + fallthrough + case 1: + *e = GetRecentlyAddedOptimizedForStreaming1(v) + return nil + default: + return fmt.Errorf("invalid value for GetRecentlyAddedOptimizedForStreaming1: %v", v) + } +} + +type GetRecentlyAddedOptimizedForStreamingType string + +const ( + GetRecentlyAddedOptimizedForStreamingTypeGetRecentlyAddedOptimizedForStreaming1 GetRecentlyAddedOptimizedForStreamingType = "get-recently-added_optimizedForStreaming_1" + GetRecentlyAddedOptimizedForStreamingTypeBoolean GetRecentlyAddedOptimizedForStreamingType = "boolean" +) + +// GetRecentlyAddedOptimizedForStreaming - Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true +type GetRecentlyAddedOptimizedForStreaming struct { + GetRecentlyAddedOptimizedForStreaming1 *GetRecentlyAddedOptimizedForStreaming1 `queryParam:"inline"` + Boolean *bool `queryParam:"inline"` + + Type GetRecentlyAddedOptimizedForStreamingType +} + +func CreateGetRecentlyAddedOptimizedForStreamingGetRecentlyAddedOptimizedForStreaming1(getRecentlyAddedOptimizedForStreaming1 GetRecentlyAddedOptimizedForStreaming1) GetRecentlyAddedOptimizedForStreaming { + typ := GetRecentlyAddedOptimizedForStreamingTypeGetRecentlyAddedOptimizedForStreaming1 + + return GetRecentlyAddedOptimizedForStreaming{ + GetRecentlyAddedOptimizedForStreaming1: &getRecentlyAddedOptimizedForStreaming1, + Type: typ, + } +} + +func CreateGetRecentlyAddedOptimizedForStreamingBoolean(boolean bool) GetRecentlyAddedOptimizedForStreaming { + typ := GetRecentlyAddedOptimizedForStreamingTypeBoolean + + return GetRecentlyAddedOptimizedForStreaming{ + Boolean: &boolean, + Type: typ, + } +} + +func (u *GetRecentlyAddedOptimizedForStreaming) UnmarshalJSON(data []byte) error { + + var getRecentlyAddedOptimizedForStreaming1 GetRecentlyAddedOptimizedForStreaming1 = GetRecentlyAddedOptimizedForStreaming1(0) + if err := utils.UnmarshalJSON(data, &getRecentlyAddedOptimizedForStreaming1, "", true, true); err == nil { + u.GetRecentlyAddedOptimizedForStreaming1 = &getRecentlyAddedOptimizedForStreaming1 + u.Type = GetRecentlyAddedOptimizedForStreamingTypeGetRecentlyAddedOptimizedForStreaming1 + return nil + } + + var boolean bool = false + if err := utils.UnmarshalJSON(data, &boolean, "", true, true); err == nil { + u.Boolean = &boolean + u.Type = GetRecentlyAddedOptimizedForStreamingTypeBoolean + return nil + } + + return fmt.Errorf("could not unmarshal `%s` into any supported union types for GetRecentlyAddedOptimizedForStreaming", string(data)) +} + +func (u GetRecentlyAddedOptimizedForStreaming) MarshalJSON() ([]byte, error) { + if u.GetRecentlyAddedOptimizedForStreaming1 != nil { + return utils.MarshalJSON(u.GetRecentlyAddedOptimizedForStreaming1, "", true) + } + + if u.Boolean != nil { + return utils.MarshalJSON(u.Boolean, "", true) + } + + return nil, errors.New("could not marshal union type GetRecentlyAddedOptimizedForStreaming: all fields are null") +} + +// HasThumbnail - Indicates if the part has a thumbnail. +type HasThumbnail string + +const ( + HasThumbnailFalse HasThumbnail = "0" + HasThumbnailTrue HasThumbnail = "1" +) + +func (e HasThumbnail) ToPointer() *HasThumbnail { + return &e +} +func (e *HasThumbnail) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "0": + fallthrough + case "1": + *e = HasThumbnail(v) + return nil + default: + return fmt.Errorf("invalid value for HasThumbnail: %v", v) + } +} + +type Stream struct { + // Unique stream identifier. + ID int64 `json:"id"` + // Stream type (1=video, 2=audio, 3=subtitle). + StreamType int `json:"streamType"` + // Indicates if this stream is default. + Default *bool `json:"default,omitempty"` + // Codec used by the stream. + Codec string `json:"codec"` + // Index of the stream. + Index int `json:"index"` + // Bitrate of the stream. + Bitrate *int `json:"bitrate,omitempty"` + // Language of the stream. + Language *string `json:"language,omitempty"` + // Language tag (e.g., en). + LanguageTag *string `json:"languageTag,omitempty"` + // ISO language code. + LanguageCode *string `json:"languageCode,omitempty"` + // Indicates whether header compression is enabled. + HeaderCompression *bool `json:"headerCompression,omitempty"` + // Dolby Vision BL compatibility ID. + DOVIBLCompatID *int `json:"DOVIBLCompatID,omitempty"` + // Indicates if Dolby Vision BL is present. + DOVIBLPresent *bool `json:"DOVIBLPresent,omitempty"` + // Indicates if Dolby Vision EL is present. + DOVIELPresent *bool `json:"DOVIELPresent,omitempty"` + // Dolby Vision level. + DOVILevel *int `json:"DOVILevel,omitempty"` + // Indicates if Dolby Vision is present. + DOVIPresent *bool `json:"DOVIPresent,omitempty"` + // Dolby Vision profile. + DOVIProfile *int `json:"DOVIProfile,omitempty"` + // Indicates if Dolby Vision RPU is present. + DOVIRPUPresent *bool `json:"DOVIRPUPresent,omitempty"` + // Dolby Vision version. + DOVIVersion *string `json:"DOVIVersion,omitempty"` + // Bit depth of the video stream. + BitDepth *int `json:"bitDepth,omitempty"` + // Chroma sample location. + ChromaLocation *string `json:"chromaLocation,omitempty"` + // Chroma subsampling format. + ChromaSubsampling *string `json:"chromaSubsampling,omitempty"` + // Coded video height. + CodedHeight *int `json:"codedHeight,omitempty"` + // Coded video width. + CodedWidth *int `json:"codedWidth,omitempty"` + ClosedCaptions *bool `json:"closedCaptions,omitempty"` + // Color primaries used. + ColorPrimaries *string `json:"colorPrimaries,omitempty"` + // Color range (e.g., tv). + ColorRange *string `json:"colorRange,omitempty"` + // Color space. + ColorSpace *string `json:"colorSpace,omitempty"` + // Color transfer characteristics. + ColorTrc *string `json:"colorTrc,omitempty"` + // Frame rate of the stream. + FrameRate *float32 `json:"frameRate,omitempty"` + // Height of the video stream. + Height *int `json:"height,omitempty"` + // Video level. + Level *int `json:"level,omitempty"` + // Indicates if this is the original stream. + Original *bool `json:"original,omitempty"` + HasScalingMatrix *bool `json:"hasScalingMatrix,omitempty"` + // Video profile. + Profile *string `json:"profile,omitempty"` + ScanType *string `json:"scanType,omitempty"` + EmbeddedInVideo *string `json:"embeddedInVideo,omitempty"` + // Number of reference frames. + RefFrames *int `json:"refFrames,omitempty"` + // Width of the video stream. + Width *int `json:"width,omitempty"` + // Display title for the stream. + DisplayTitle string `json:"displayTitle"` + // Extended display title for the stream. + ExtendedDisplayTitle string `json:"extendedDisplayTitle"` + // Indicates if this stream is selected (applicable for audio streams). + Selected *bool `json:"selected,omitempty"` + Forced *bool `json:"forced,omitempty"` + // Number of audio channels (for audio streams). + Channels *int `json:"channels,omitempty"` + // Audio channel layout. + AudioChannelLayout *string `json:"audioChannelLayout,omitempty"` + // Sampling rate for the audio stream. + SamplingRate *int `json:"samplingRate,omitempty"` + // Indicates if the stream can auto-sync. + CanAutoSync *bool `json:"canAutoSync,omitempty"` + // Indicates if the stream is for the hearing impaired. + HearingImpaired *bool `json:"hearingImpaired,omitempty"` + // Indicates if the stream is a dub. + Dub *bool `json:"dub,omitempty"` + // Optional title for the stream (e.g., language variant). + Title *string `json:"title,omitempty"` +} + +func (o *Stream) GetID() int64 { + if o == nil { + return 0 + } + return o.ID +} + +func (o *Stream) GetStreamType() int { + if o == nil { + return 0 + } + return o.StreamType +} + +func (o *Stream) GetDefault() *bool { + if o == nil { + return nil + } + return o.Default +} + +func (o *Stream) GetCodec() string { + if o == nil { + return "" + } + return o.Codec +} + +func (o *Stream) GetIndex() int { + if o == nil { + return 0 + } + return o.Index +} + +func (o *Stream) GetBitrate() *int { + if o == nil { + return nil + } + return o.Bitrate +} + +func (o *Stream) GetLanguage() *string { + if o == nil { + return nil + } + return o.Language +} + +func (o *Stream) GetLanguageTag() *string { + if o == nil { + return nil + } + return o.LanguageTag +} + +func (o *Stream) GetLanguageCode() *string { + if o == nil { + return nil + } + return o.LanguageCode +} + +func (o *Stream) GetHeaderCompression() *bool { + if o == nil { + return nil + } + return o.HeaderCompression +} + +func (o *Stream) GetDOVIBLCompatID() *int { + if o == nil { + return nil + } + return o.DOVIBLCompatID +} + +func (o *Stream) GetDOVIBLPresent() *bool { + if o == nil { + return nil + } + return o.DOVIBLPresent +} + +func (o *Stream) GetDOVIELPresent() *bool { + if o == nil { + return nil + } + return o.DOVIELPresent +} + +func (o *Stream) GetDOVILevel() *int { + if o == nil { + return nil + } + return o.DOVILevel +} + +func (o *Stream) GetDOVIPresent() *bool { + if o == nil { + return nil + } + return o.DOVIPresent +} + +func (o *Stream) GetDOVIProfile() *int { + if o == nil { + return nil + } + return o.DOVIProfile +} + +func (o *Stream) GetDOVIRPUPresent() *bool { + if o == nil { + return nil + } + return o.DOVIRPUPresent +} + +func (o *Stream) GetDOVIVersion() *string { + if o == nil { + return nil + } + return o.DOVIVersion +} + +func (o *Stream) GetBitDepth() *int { + if o == nil { + return nil + } + return o.BitDepth +} + +func (o *Stream) GetChromaLocation() *string { + if o == nil { + return nil + } + return o.ChromaLocation +} + +func (o *Stream) GetChromaSubsampling() *string { + if o == nil { + return nil + } + return o.ChromaSubsampling +} + +func (o *Stream) GetCodedHeight() *int { + if o == nil { + return nil + } + return o.CodedHeight +} + +func (o *Stream) GetCodedWidth() *int { + if o == nil { + return nil + } + return o.CodedWidth +} + +func (o *Stream) GetClosedCaptions() *bool { + if o == nil { + return nil + } + return o.ClosedCaptions +} + +func (o *Stream) GetColorPrimaries() *string { + if o == nil { + return nil + } + return o.ColorPrimaries +} + +func (o *Stream) GetColorRange() *string { + if o == nil { + return nil + } + return o.ColorRange +} + +func (o *Stream) GetColorSpace() *string { + if o == nil { + return nil + } + return o.ColorSpace +} + +func (o *Stream) GetColorTrc() *string { + if o == nil { + return nil + } + return o.ColorTrc +} + +func (o *Stream) GetFrameRate() *float32 { + if o == nil { + return nil + } + return o.FrameRate +} + +func (o *Stream) GetHeight() *int { + if o == nil { + return nil + } + return o.Height +} + +func (o *Stream) GetLevel() *int { + if o == nil { + return nil + } + return o.Level +} + +func (o *Stream) GetOriginal() *bool { + if o == nil { + return nil + } + return o.Original +} + +func (o *Stream) GetHasScalingMatrix() *bool { + if o == nil { + return nil + } + return o.HasScalingMatrix +} + +func (o *Stream) GetProfile() *string { + if o == nil { + return nil + } + return o.Profile +} + +func (o *Stream) GetScanType() *string { + if o == nil { + return nil + } + return o.ScanType +} + +func (o *Stream) GetEmbeddedInVideo() *string { + if o == nil { + return nil + } + return o.EmbeddedInVideo +} + +func (o *Stream) GetRefFrames() *int { + if o == nil { + return nil + } + return o.RefFrames +} + +func (o *Stream) GetWidth() *int { + if o == nil { + return nil + } + return o.Width +} + +func (o *Stream) GetDisplayTitle() string { + if o == nil { + return "" + } + return o.DisplayTitle +} + +func (o *Stream) GetExtendedDisplayTitle() string { + if o == nil { + return "" + } + return o.ExtendedDisplayTitle +} + +func (o *Stream) GetSelected() *bool { + if o == nil { + return nil + } + return o.Selected +} + +func (o *Stream) GetForced() *bool { + if o == nil { + return nil + } + return o.Forced +} + +func (o *Stream) GetChannels() *int { + if o == nil { + return nil + } + return o.Channels +} + +func (o *Stream) GetAudioChannelLayout() *string { + if o == nil { + return nil + } + return o.AudioChannelLayout +} + +func (o *Stream) GetSamplingRate() *int { + if o == nil { + return nil + } + return o.SamplingRate +} + +func (o *Stream) GetCanAutoSync() *bool { + if o == nil { + return nil + } + return o.CanAutoSync +} + +func (o *Stream) GetHearingImpaired() *bool { + if o == nil { + return nil + } + return o.HearingImpaired +} + +func (o *Stream) GetDub() *bool { + if o == nil { + return nil + } + return o.Dub +} + +func (o *Stream) GetTitle() *string { + if o == nil { + return nil + } + return o.Title +} + +type Part struct { + // Indicates if the part is accessible. + Accessible *bool `json:"accessible,omitempty"` + // Indicates if the part exists. + Exists *bool `json:"exists,omitempty"` + // Unique part identifier. + ID int64 `json:"id"` + // Key to access this part. + Key string `json:"key"` + Indexes *string `json:"indexes,omitempty"` + // Duration of the part in milliseconds. + Duration *int `json:"duration,omitempty"` + // File path for the part. + File string `json:"file"` + // File size in bytes. + Size int64 `json:"size"` + PacketLength *int `json:"packetLength,omitempty"` + // Container format of the part. + Container *string `json:"container,omitempty"` + // Video profile for the part. + VideoProfile *string `json:"videoProfile,omitempty"` + // The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). + AudioProfile *string `json:"audioProfile,omitempty"` + Has64bitOffsets *bool `json:"has64bitOffsets,omitempty"` + // Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true + OptimizedForStreaming *GetRecentlyAddedOptimizedForStreaming `json:"optimizedForStreaming,omitempty"` + HasThumbnail *HasThumbnail `default:"0" json:"hasThumbnail"` + // An array of streams for this part. + Stream []Stream `json:"Stream,omitempty"` +} + +func (p Part) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(p, "", false) +} + +func (p *Part) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &p, "", false, false); err != nil { + return err + } + return nil +} + +func (o *Part) GetAccessible() *bool { + if o == nil { + return nil + } + return o.Accessible +} + +func (o *Part) GetExists() *bool { + if o == nil { + return nil + } + return o.Exists +} + +func (o *Part) GetID() int64 { + if o == nil { + return 0 + } + return o.ID +} + +func (o *Part) GetKey() string { + if o == nil { + return "" + } + return o.Key +} + +func (o *Part) GetIndexes() *string { + if o == nil { + return nil + } + return o.Indexes +} + +func (o *Part) GetDuration() *int { + if o == nil { + return nil + } + return o.Duration +} + +func (o *Part) GetFile() string { + if o == nil { + return "" + } + return o.File +} + +func (o *Part) GetSize() int64 { + if o == nil { + return 0 + } + return o.Size +} + +func (o *Part) GetPacketLength() *int { + if o == nil { + return nil + } + return o.PacketLength +} + +func (o *Part) GetContainer() *string { + if o == nil { + return nil + } + return o.Container +} + +func (o *Part) GetVideoProfile() *string { + if o == nil { + return nil + } + return o.VideoProfile +} + +func (o *Part) GetAudioProfile() *string { + if o == nil { + return nil + } + return o.AudioProfile +} + +func (o *Part) GetHas64bitOffsets() *bool { + if o == nil { + return nil + } + return o.Has64bitOffsets +} + +func (o *Part) GetOptimizedForStreaming() *GetRecentlyAddedOptimizedForStreaming { + if o == nil { + return nil + } + return o.OptimizedForStreaming +} + +func (o *Part) GetHasThumbnail() *HasThumbnail { + if o == nil { + return nil + } + return o.HasThumbnail +} + +func (o *Part) GetStream() []Stream { + if o == nil { + return nil + } + return o.Stream +} + +type Media struct { + // Unique media identifier. + ID int64 `json:"id"` + // Duration of the media in milliseconds. + Duration *int `json:"duration,omitempty"` + // Bitrate in bits per second. + Bitrate *int `json:"bitrate,omitempty"` + // Video width in pixels. + Width *int `json:"width,omitempty"` + // Video height in pixels. + Height *int `json:"height,omitempty"` + // Aspect ratio of the video. + AspectRatio *float32 `json:"aspectRatio,omitempty"` + // Number of audio channels. + AudioChannels *int `json:"audioChannels,omitempty"` + DisplayOffset *int `json:"displayOffset,omitempty"` + // Audio codec used. + AudioCodec *string `json:"audioCodec,omitempty"` + // Video codec used. + VideoCodec *string `json:"videoCodec,omitempty"` + // Video resolution (e.g., 4k). + VideoResolution *string `json:"videoResolution,omitempty"` + // File container type. + Container *string `json:"container,omitempty"` + // Frame rate of the video. Values found include NTSC, PAL, 24p + // + VideoFrameRate *string `json:"videoFrameRate,omitempty"` + // Video profile (e.g., main 10). + VideoProfile *string `json:"videoProfile,omitempty"` + // Indicates whether voice activity is detected. + HasVoiceActivity *bool `json:"hasVoiceActivity,omitempty"` + // The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). + AudioProfile *string `json:"audioProfile,omitempty"` + // Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true + OptimizedForStreaming *OptimizedForStreaming `json:"optimizedForStreaming,omitempty"` + Has64bitOffsets *bool `json:"has64bitOffsets,omitempty"` + // An array of parts for this media item. + Part []Part `json:"Part,omitempty"` +} + +func (o *Media) GetID() int64 { + if o == nil { + return 0 + } + return o.ID +} + +func (o *Media) GetDuration() *int { + if o == nil { + return nil + } + return o.Duration +} + +func (o *Media) GetBitrate() *int { + if o == nil { + return nil + } + return o.Bitrate +} + +func (o *Media) GetWidth() *int { + if o == nil { + return nil + } + return o.Width +} + +func (o *Media) GetHeight() *int { + if o == nil { + return nil + } + return o.Height +} + +func (o *Media) GetAspectRatio() *float32 { + if o == nil { + return nil + } + return o.AspectRatio +} + +func (o *Media) GetAudioChannels() *int { + if o == nil { + return nil + } + return o.AudioChannels +} + +func (o *Media) GetDisplayOffset() *int { + if o == nil { + return nil + } + return o.DisplayOffset +} + +func (o *Media) GetAudioCodec() *string { + if o == nil { + return nil + } + return o.AudioCodec +} + +func (o *Media) GetVideoCodec() *string { + if o == nil { + return nil + } + return o.VideoCodec +} + +func (o *Media) GetVideoResolution() *string { + if o == nil { + return nil + } + return o.VideoResolution +} + +func (o *Media) GetContainer() *string { + if o == nil { + return nil + } + return o.Container +} + +func (o *Media) GetVideoFrameRate() *string { + if o == nil { + return nil + } + return o.VideoFrameRate +} + +func (o *Media) GetVideoProfile() *string { + if o == nil { + return nil + } + return o.VideoProfile +} + +func (o *Media) GetHasVoiceActivity() *bool { + if o == nil { + return nil + } + return o.HasVoiceActivity +} + +func (o *Media) GetAudioProfile() *string { + if o == nil { + return nil + } + return o.AudioProfile +} + +func (o *Media) GetOptimizedForStreaming() *OptimizedForStreaming { + if o == nil { + return nil + } + return o.OptimizedForStreaming +} + +func (o *Media) GetHas64bitOffsets() *bool { + if o == nil { + return nil + } + return o.Has64bitOffsets +} + +func (o *Media) GetPart() []Part { + if o == nil { + return nil + } + return o.Part +} + +// Genre - The filter query string for similar items. +type Genre struct { + ID int64 `json:"id"` + Filter string `json:"filter"` + // The genre name of this media-item + // + Tag string `json:"tag"` +} + +func (o *Genre) GetID() int64 { + if o == nil { + return 0 + } + return o.ID +} + +func (o *Genre) GetFilter() string { + if o == nil { + return "" + } + return o.Filter +} + +func (o *Genre) GetTag() string { + if o == nil { + return "" + } + return o.Tag +} + +// Country - The filter query string for country media items. +type Country struct { + ID int64 `json:"id"` + // The country of origin of this media item + Tag string `json:"tag"` + Filter *string `json:"filter,omitempty"` +} + +func (o *Country) GetID() int64 { + if o == nil { + return 0 + } + return o.ID +} + +func (o *Country) GetTag() string { + if o == nil { + return "" + } + return o.Tag +} + +func (o *Country) GetFilter() *string { + if o == nil { + return nil + } + return o.Filter +} + +type Director struct { + // The role of Director + Tag string `json:"tag"` +} + +func (o *Director) GetTag() string { + if o == nil { + return "" + } + return o.Tag +} + +type Writer struct { + // Unique identifier for the writer. + ID int64 `json:"id"` + // The filter string used to query this writer. + Filter string `json:"filter"` + // The role of Writer + Tag string `json:"tag"` + // A unique key associated with the writers tag, used for internal identification. + TagKey *string `json:"tagKey,omitempty"` +} + +func (o *Writer) GetID() int64 { + if o == nil { + return 0 + } + return o.ID +} + +func (o *Writer) GetFilter() string { + if o == nil { + return "" + } + return o.Filter +} + +func (o *Writer) GetTag() string { + if o == nil { + return "" + } + return o.Tag +} + +func (o *Writer) GetTagKey() *string { + if o == nil { + return nil + } + return o.TagKey +} + +type Role struct { + // Unique identifier for the actor or role. + ID int64 `json:"id"` + // The filter string used to query this actor. For example, it may indicate that this is an actor with a given key. + Filter string `json:"filter"` + // The display tag for the actor (typically the actor's name). + Tag string `json:"tag"` + // A unique key associated with the actor's tag, used for internal identification. + TagKey *string `json:"tagKey,omitempty"` + // The role played by the actor in the media item. + Role *string `json:"role,omitempty"` + // The URL of the thumbnail image for the actor. + Thumb *string `json:"thumb,omitempty"` +} + +func (o *Role) GetID() int64 { + if o == nil { + return 0 + } + return o.ID +} + +func (o *Role) GetFilter() string { + if o == nil { + return "" + } + return o.Filter +} + +func (o *Role) GetTag() string { + if o == nil { + return "" + } + return o.Tag +} + +func (o *Role) GetTagKey() *string { + if o == nil { + return nil + } + return o.TagKey +} + +func (o *Role) GetRole() *string { + if o == nil { + return nil + } + return o.Role +} + +func (o *Role) GetThumb() *string { + if o == nil { + return nil + } + return o.Thumb +} + +type Producer struct { + // Unique identifier for the producer. + ID int64 `json:"id"` + // The filter string used to query this producer. + Filter string `json:"filter"` + // The name of the producer + Tag string `json:"tag"` + // A unique key associated with the producer's tag, used for internal identification. + TagKey *string `json:"tagKey,omitempty"` + // The URL of the thumbnail image for the actor. + Thumb *string `json:"thumb,omitempty"` +} + +func (o *Producer) GetID() int64 { + if o == nil { + return 0 + } + return o.ID +} + +func (o *Producer) GetFilter() string { + if o == nil { + return "" + } + return o.Filter +} + +func (o *Producer) GetTag() string { + if o == nil { + return "" + } + return o.Tag +} + +func (o *Producer) GetTagKey() *string { + if o == nil { + return nil + } + return o.TagKey +} + +func (o *Producer) GetThumb() *string { + if o == nil { + return nil + } + return o.Thumb +} + +// Rating - The type of rating, for example 'audience' or 'critic'. +type Rating struct { + Image string `json:"image"` + Value float64 `json:"value"` + Type string `json:"type"` +} + +func (o *Rating) GetImage() string { + if o == nil { + return "" + } + return o.Image +} + +func (o *Rating) GetValue() float64 { + if o == nil { + return 0.0 + } + return o.Value +} + +func (o *Rating) GetType() string { + if o == nil { + return "" + } + return o.Type +} + +// Similar - The display tag for the similar item, typically the title. +type Similar struct { + ID int64 `json:"id"` + Filter string `json:"filter"` + Tag string `json:"tag"` +} + +func (o *Similar) GetID() int64 { + if o == nil { + return 0 + } + return o.ID +} + +func (o *Similar) GetFilter() string { + if o == nil { + return "" + } + return o.Filter +} + +func (o *Similar) GetTag() string { + if o == nil { + return "" + } + return o.Tag +} + +// Location - The folder path for the media item. +type Location struct { + Path string `json:"path"` +} + +func (o *Location) GetPath() string { + if o == nil { + return "" + } + return o.Path +} + +type Guids struct { + // The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337 + // + ID *string `json:"id,omitempty"` +} + +func (o *Guids) GetID() *string { + if o == nil { + return nil + } + return o.ID +} + +type Collection struct { + // The user-made collection this media item belongs to + Tag string `json:"tag"` +} + +func (o *Collection) GetTag() string { + if o == nil { + return "" + } + return o.Tag +} + +// GetRecentlyAddedMetadata - Unknown type GetRecentlyAddedMetadata struct { - // The rating key (Media ID) of this media item. - // Note: This is always an integer, but is represented as a string in the API. - // - RatingKey string `json:"ratingKey"` - Key string `json:"key"` - GUID string `json:"guid"` - Studio *string `json:"studio,omitempty"` - SkipChildren *bool `json:"skipChildren,omitempty"` - LibrarySectionID *int64 `json:"librarySectionID,omitempty"` - LibrarySectionTitle *string `json:"librarySectionTitle,omitempty"` - LibrarySectionKey *string `json:"librarySectionKey,omitempty"` - // The type of media content - // - Type GetRecentlyAddedHubsType `json:"type"` - Title string `json:"title"` - Slug *string `json:"slug,omitempty"` - ContentRating *string `json:"contentRating,omitempty"` - Summary string `json:"summary"` - Rating *float64 `json:"rating,omitempty"` - AudienceRating *float64 `json:"audienceRating,omitempty"` - Year *int `json:"year,omitempty"` - SeasonCount *int `json:"seasonCount,omitempty"` - Tagline *string `json:"tagline,omitempty"` - // Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). - FlattenSeasons *FlattenSeasons `json:"flattenSeasons,omitempty"` - // Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). - EpisodeSort *EpisodeSort `json:"episodeSort,omitempty"` - // Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). - EnableCreditsMarkerGeneration *EnableCreditsMarkerGeneration `json:"enableCreditsMarkerGeneration,omitempty"` - // 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)). - // - ShowOrdering *ShowOrdering `json:"showOrdering,omitempty"` - Thumb *string `json:"thumb,omitempty"` - Art *string `json:"art,omitempty"` - Banner *string `json:"banner,omitempty"` - Duration *int `json:"duration,omitempty"` - OriginallyAvailableAt *types.Date `json:"originallyAvailableAt,omitempty"` - // Unix epoch datetime in seconds AddedAt int64 `json:"addedAt"` - // Unix epoch datetime in seconds - UpdatedAt *int64 `json:"updatedAt,omitempty"` - AudienceRatingImage *string `json:"audienceRatingImage,omitempty"` - ChapterSource *string `json:"chapterSource,omitempty"` - PrimaryExtraKey *string `json:"primaryExtraKey,omitempty"` - RatingImage *string `json:"ratingImage,omitempty"` + // The art image URL for the media item. + Art string `json:"art"` + // The URL for the audience rating image. + AudienceRatingImage *string `json:"audienceRatingImage,omitempty"` + // The audience rating for the media item. + AudienceRating float64 `json:"audienceRating"` + // The source from which chapter data is derived. + ChapterSource *string `json:"chapterSource,omitempty"` + // The number of child items associated with this media item. + ChildCount int `json:"childCount"` + // The content rating for the media item. + ContentRating *string `json:"contentRating,omitempty"` + // 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). + CreatedAtAccuracy *string `json:"createdAtAccuracy,omitempty"` + // The time zone offset for the creation timestamp, represented as a string. This offset indicates the difference from UTC. + CreatedAtTZOffset *string `json:"createdAtTZOffset,omitempty"` + // The duration of the media item in milliseconds. + Duration int `json:"duration"` + // The art URL for the grandparent media item. + GrandparentArt *string `json:"grandparentArt,omitempty"` + // The GUID of the grandparent media item. + GrandparentGUID *string `json:"grandparentGuid,omitempty"` + // The key of the grandparent media item. + GrandparentKey *string `json:"grandparentKey,omitempty"` + // The rating key of the grandparent media item. GrandparentRatingKey *string `json:"grandparentRatingKey,omitempty"` - GrandparentGUID *string `json:"grandparentGuid,omitempty"` - GrandparentKey *string `json:"grandparentKey,omitempty"` - GrandparentTitle *string `json:"grandparentTitle,omitempty"` - GrandparentThumb *string `json:"grandparentThumb,omitempty"` - ParentSlug *string `json:"parentSlug,omitempty"` - GrandparentSlug *string `json:"grandparentSlug,omitempty"` - GrandparentArt *string `json:"grandparentArt,omitempty"` - GrandparentTheme *string `json:"grandparentTheme,omitempty"` - // The Media object is only included when type query is `4` or higher. - // - Media []Media `json:"Media,omitempty"` - Genre []Genre `json:"Genre,omitempty"` - Country []Country `json:"Country,omitempty"` - Director []Director `json:"Director,omitempty"` - Writer []Writer `json:"Writer,omitempty"` - Collection []Collection `json:"Collection,omitempty"` - Role []Role `json:"Role,omitempty"` - Location []Location `json:"Location,omitempty"` - // The Guid object is only included in the response if the `includeGuids` parameter is set to `1`. - // - MediaGUID []MediaGUID `json:"Guid,omitempty"` - UltraBlurColors *UltraBlurColors `json:"UltraBlurColors,omitempty"` - MetaDataRating []MetaDataRating `json:"Rating,omitempty"` - Image []GetRecentlyAddedImage `json:"Image,omitempty"` - TitleSort *string `json:"titleSort,omitempty"` - ViewCount *int `json:"viewCount,omitempty"` - LastViewedAt *int `json:"lastViewedAt,omitempty"` - OriginalTitle *string `json:"originalTitle,omitempty"` - ViewOffset *int `json:"viewOffset,omitempty"` - SkipCount *int `json:"skipCount,omitempty"` - Index *int `json:"index,omitempty"` - Theme *string `json:"theme,omitempty"` - LeafCount *int `json:"leafCount,omitempty"` - ViewedLeafCount *int `json:"viewedLeafCount,omitempty"` - ChildCount *int `json:"childCount,omitempty"` - HasPremiumExtras *string `json:"hasPremiumExtras,omitempty"` - HasPremiumPrimaryExtra *string `json:"hasPremiumPrimaryExtra,omitempty"` - // The rating key of the parent item. - // + // The slug for the grandparent media item. + GrandparentSlug *string `json:"grandparentSlug,omitempty"` + // The theme URL for the grandparent media item. + GrandparentTheme *string `json:"grandparentTheme,omitempty"` + // The thumbnail URL for the grandparent media item. + GrandparentThumb *string `json:"grandparentThumb,omitempty"` + // The title of the grandparent media item. + GrandparentTitle *string `json:"grandparentTitle,omitempty"` + // The globally unique identifier for the media item. + GUID string `json:"guid"` + // The index position of the media item. + Index int `json:"index"` + // The unique key for the media item. + Key string `json:"key"` + // The Unix timestamp representing the last time the item was rated. + LastRatedAt *int64 `json:"lastRatedAt,omitempty"` + // Unix timestamp for when the media item was last viewed. + LastViewedAt *int `json:"lastViewedAt,omitempty"` + // The number of leaf items (end nodes) under this media item. + LeafCount *int `json:"leafCount,omitempty"` + // The identifier for the library section. + LibrarySectionID int64 `json:"librarySectionID"` + // The key corresponding to the library section. + LibrarySectionKey string `json:"librarySectionKey"` + // The title of the library section. + LibrarySectionTitle string `json:"librarySectionTitle"` + // The original title of the media item (if different). + OriginalTitle *string `json:"originalTitle,omitempty"` + // The original release date of the media item. + OriginallyAvailableAt types.Date `json:"originallyAvailableAt"` + // The GUID of the parent media item. + ParentGUID *string `json:"parentGuid,omitempty"` + // The index position of the parent media item. + ParentIndex *int `json:"parentIndex,omitempty"` + // The key of the parent media item. + ParentKey *string `json:"parentKey,omitempty"` + // The rating key of the parent media item. ParentRatingKey *string `json:"parentRatingKey,omitempty"` - ParentGUID *string `json:"parentGuid,omitempty"` - ParentStudio *string `json:"parentStudio,omitempty"` - ParentKey *string `json:"parentKey,omitempty"` - ParentTitle *string `json:"parentTitle,omitempty"` - ParentIndex *int `json:"parentIndex,omitempty"` - ParentYear *int `json:"parentYear,omitempty"` - ParentThumb *string `json:"parentThumb,omitempty"` - ParentTheme *string `json:"parentTheme,omitempty"` + // The slug for the parent media item. + ParentSlug *string `json:"parentSlug,omitempty"` + // The studio of the parent media item. + ParentStudio string `json:"parentStudio"` + // The theme URL for the parent media item. + ParentTheme string `json:"parentTheme"` + // The thumbnail URL for the parent media item. + ParentThumb *string `json:"parentThumb,omitempty"` + // The title of the parent media item. + ParentTitle *string `json:"parentTitle,omitempty"` + // The release year of the parent media item. + ParentYear *int `json:"parentYear,omitempty"` + // The primary extra key associated with this media item. + PrimaryExtraKey *string `json:"primaryExtraKey,omitempty"` + // The URL for the rating image. + RatingImage *string `json:"ratingImage,omitempty"` + // 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. + RatingKey string `json:"ratingKey"` + // The critic rating for the media item. + Rating float32 `json:"rating"` + // The total number of seasons (for TV shows). + SeasonCount int `json:"seasonCount"` + // The number of times this media item has been skipped. + SkipCount *int `json:"skipCount,omitempty"` + // A URL‐friendly version of the media title. + Slug string `json:"slug"` + // The studio that produced the media item. + Studio *string `json:"studio,omitempty"` + // A classification that further describes the type of media item. For example, 'clip' indicates that the item is a short video clip. + Subtype *string `json:"subtype,omitempty"` + // A synopsis of the media item. + Summary string `json:"summary"` + // A brief tagline for the media item. + Tagline string `json:"tagline"` + // The theme URL for the media item. + Theme string `json:"theme"` + // The thumbnail image URL for the media item. + Thumb string `json:"thumb"` + // The sort title used for ordering media items. + TitleSort string `json:"titleSort"` + // The title of the media item. + Title string `json:"title"` + Type GetRecentlyAddedHubsType `json:"type"` + // Unix epoch datetime in seconds + UpdatedAt *int64 `json:"updatedAt,omitempty"` + // The rating provided by a user for the item. This value is expressed as a decimal number. + UserRating *float32 `json:"userRating,omitempty"` + // The number of times this media item has been viewed. + ViewCount *int `json:"viewCount,omitempty"` + // The current playback offset (in milliseconds). + ViewOffset *int `json:"viewOffset,omitempty"` + // The number of leaf items that have been viewed. + ViewedLeafCount *int `json:"viewedLeafCount,omitempty"` + // The release year of the media item. + Year *int `json:"year,omitempty"` + Image []GetRecentlyAddedImage `json:"Image,omitempty"` + UltraBlurColors *UltraBlurColors `json:"UltraBlurColors,omitempty"` + Media []Media `json:"Media,omitempty"` + Genre []Genre `json:"Genre,omitempty"` + Country []Country `json:"Country,omitempty"` + Director []Director `json:"Director,omitempty"` + Writer []Writer `json:"Writer,omitempty"` + Role []Role `json:"Role,omitempty"` + Producer []Producer `json:"Producer,omitempty"` + Rating1 []Rating `json:"Rating,omitempty"` + Similar []Similar `json:"Similar,omitempty"` + Location []Location `json:"Location,omitempty"` + Guids []Guids `json:"Guid,omitempty"` + Collection []Collection `json:"Collection,omitempty"` } func (g GetRecentlyAddedMetadata) MarshalJSON() ([]byte, error) { @@ -1733,195 +2085,6 @@ func (g *GetRecentlyAddedMetadata) UnmarshalJSON(data []byte) error { return nil } -func (o *GetRecentlyAddedMetadata) GetRatingKey() string { - if o == nil { - return "" - } - return o.RatingKey -} - -func (o *GetRecentlyAddedMetadata) GetKey() string { - if o == nil { - return "" - } - return o.Key -} - -func (o *GetRecentlyAddedMetadata) GetGUID() string { - if o == nil { - return "" - } - return o.GUID -} - -func (o *GetRecentlyAddedMetadata) GetStudio() *string { - if o == nil { - return nil - } - return o.Studio -} - -func (o *GetRecentlyAddedMetadata) GetSkipChildren() *bool { - if o == nil { - return nil - } - return o.SkipChildren -} - -func (o *GetRecentlyAddedMetadata) GetLibrarySectionID() *int64 { - if o == nil { - return nil - } - return o.LibrarySectionID -} - -func (o *GetRecentlyAddedMetadata) GetLibrarySectionTitle() *string { - if o == nil { - return nil - } - return o.LibrarySectionTitle -} - -func (o *GetRecentlyAddedMetadata) GetLibrarySectionKey() *string { - if o == nil { - return nil - } - return o.LibrarySectionKey -} - -func (o *GetRecentlyAddedMetadata) GetType() GetRecentlyAddedHubsType { - if o == nil { - return GetRecentlyAddedHubsType("") - } - return o.Type -} - -func (o *GetRecentlyAddedMetadata) GetTitle() string { - if o == nil { - return "" - } - return o.Title -} - -func (o *GetRecentlyAddedMetadata) GetSlug() *string { - if o == nil { - return nil - } - return o.Slug -} - -func (o *GetRecentlyAddedMetadata) GetContentRating() *string { - if o == nil { - return nil - } - return o.ContentRating -} - -func (o *GetRecentlyAddedMetadata) GetSummary() string { - if o == nil { - return "" - } - return o.Summary -} - -func (o *GetRecentlyAddedMetadata) GetRating() *float64 { - if o == nil { - return nil - } - return o.Rating -} - -func (o *GetRecentlyAddedMetadata) GetAudienceRating() *float64 { - if o == nil { - return nil - } - return o.AudienceRating -} - -func (o *GetRecentlyAddedMetadata) GetYear() *int { - if o == nil { - return nil - } - return o.Year -} - -func (o *GetRecentlyAddedMetadata) GetSeasonCount() *int { - if o == nil { - return nil - } - return o.SeasonCount -} - -func (o *GetRecentlyAddedMetadata) GetTagline() *string { - if o == nil { - return nil - } - return o.Tagline -} - -func (o *GetRecentlyAddedMetadata) GetFlattenSeasons() *FlattenSeasons { - if o == nil { - return nil - } - return o.FlattenSeasons -} - -func (o *GetRecentlyAddedMetadata) GetEpisodeSort() *EpisodeSort { - if o == nil { - return nil - } - return o.EpisodeSort -} - -func (o *GetRecentlyAddedMetadata) GetEnableCreditsMarkerGeneration() *EnableCreditsMarkerGeneration { - if o == nil { - return nil - } - return o.EnableCreditsMarkerGeneration -} - -func (o *GetRecentlyAddedMetadata) GetShowOrdering() *ShowOrdering { - if o == nil { - return nil - } - return o.ShowOrdering -} - -func (o *GetRecentlyAddedMetadata) GetThumb() *string { - if o == nil { - return nil - } - return o.Thumb -} - -func (o *GetRecentlyAddedMetadata) GetArt() *string { - if o == nil { - return nil - } - return o.Art -} - -func (o *GetRecentlyAddedMetadata) GetBanner() *string { - if o == nil { - return nil - } - return o.Banner -} - -func (o *GetRecentlyAddedMetadata) GetDuration() *int { - if o == nil { - return nil - } - return o.Duration -} - -func (o *GetRecentlyAddedMetadata) GetOriginallyAvailableAt() *types.Date { - if o == nil { - return nil - } - return o.OriginallyAvailableAt -} - func (o *GetRecentlyAddedMetadata) GetAddedAt() int64 { if o == nil { return 0 @@ -1929,11 +2092,11 @@ func (o *GetRecentlyAddedMetadata) GetAddedAt() int64 { return o.AddedAt } -func (o *GetRecentlyAddedMetadata) GetUpdatedAt() *int64 { +func (o *GetRecentlyAddedMetadata) GetArt() string { if o == nil { - return nil + return "" } - return o.UpdatedAt + return o.Art } func (o *GetRecentlyAddedMetadata) GetAudienceRatingImage() *string { @@ -1943,6 +2106,13 @@ func (o *GetRecentlyAddedMetadata) GetAudienceRatingImage() *string { return o.AudienceRatingImage } +func (o *GetRecentlyAddedMetadata) GetAudienceRating() float64 { + if o == nil { + return 0.0 + } + return o.AudienceRating +} + func (o *GetRecentlyAddedMetadata) GetChapterSource() *string { if o == nil { return nil @@ -1950,25 +2120,46 @@ func (o *GetRecentlyAddedMetadata) GetChapterSource() *string { return o.ChapterSource } -func (o *GetRecentlyAddedMetadata) GetPrimaryExtraKey() *string { +func (o *GetRecentlyAddedMetadata) GetChildCount() int { if o == nil { - return nil + return 0 } - return o.PrimaryExtraKey + return o.ChildCount } -func (o *GetRecentlyAddedMetadata) GetRatingImage() *string { +func (o *GetRecentlyAddedMetadata) GetContentRating() *string { if o == nil { return nil } - return o.RatingImage + return o.ContentRating } -func (o *GetRecentlyAddedMetadata) GetGrandparentRatingKey() *string { +func (o *GetRecentlyAddedMetadata) GetCreatedAtAccuracy() *string { if o == nil { return nil } - return o.GrandparentRatingKey + return o.CreatedAtAccuracy +} + +func (o *GetRecentlyAddedMetadata) GetCreatedAtTZOffset() *string { + if o == nil { + return nil + } + return o.CreatedAtTZOffset +} + +func (o *GetRecentlyAddedMetadata) GetDuration() int { + if o == nil { + return 0 + } + return o.Duration +} + +func (o *GetRecentlyAddedMetadata) GetGrandparentArt() *string { + if o == nil { + return nil + } + return o.GrandparentArt } func (o *GetRecentlyAddedMetadata) GetGrandparentGUID() *string { @@ -1985,25 +2176,11 @@ func (o *GetRecentlyAddedMetadata) GetGrandparentKey() *string { return o.GrandparentKey } -func (o *GetRecentlyAddedMetadata) GetGrandparentTitle() *string { +func (o *GetRecentlyAddedMetadata) GetGrandparentRatingKey() *string { if o == nil { return nil } - return o.GrandparentTitle -} - -func (o *GetRecentlyAddedMetadata) GetGrandparentThumb() *string { - if o == nil { - return nil - } - return o.GrandparentThumb -} - -func (o *GetRecentlyAddedMetadata) GetParentSlug() *string { - if o == nil { - return nil - } - return o.ParentSlug + return o.GrandparentRatingKey } func (o *GetRecentlyAddedMetadata) GetGrandparentSlug() *string { @@ -2013,13 +2190,6 @@ func (o *GetRecentlyAddedMetadata) GetGrandparentSlug() *string { return o.GrandparentSlug } -func (o *GetRecentlyAddedMetadata) GetGrandparentArt() *string { - if o == nil { - return nil - } - return o.GrandparentArt -} - func (o *GetRecentlyAddedMetadata) GetGrandparentTheme() *string { if o == nil { return nil @@ -2027,6 +2197,335 @@ func (o *GetRecentlyAddedMetadata) GetGrandparentTheme() *string { return o.GrandparentTheme } +func (o *GetRecentlyAddedMetadata) GetGrandparentThumb() *string { + if o == nil { + return nil + } + return o.GrandparentThumb +} + +func (o *GetRecentlyAddedMetadata) GetGrandparentTitle() *string { + if o == nil { + return nil + } + return o.GrandparentTitle +} + +func (o *GetRecentlyAddedMetadata) GetGUID() string { + if o == nil { + return "" + } + return o.GUID +} + +func (o *GetRecentlyAddedMetadata) GetIndex() int { + if o == nil { + return 0 + } + return o.Index +} + +func (o *GetRecentlyAddedMetadata) GetKey() string { + if o == nil { + return "" + } + return o.Key +} + +func (o *GetRecentlyAddedMetadata) GetLastRatedAt() *int64 { + if o == nil { + return nil + } + return o.LastRatedAt +} + +func (o *GetRecentlyAddedMetadata) GetLastViewedAt() *int { + if o == nil { + return nil + } + return o.LastViewedAt +} + +func (o *GetRecentlyAddedMetadata) GetLeafCount() *int { + if o == nil { + return nil + } + return o.LeafCount +} + +func (o *GetRecentlyAddedMetadata) GetLibrarySectionID() int64 { + if o == nil { + return 0 + } + return o.LibrarySectionID +} + +func (o *GetRecentlyAddedMetadata) GetLibrarySectionKey() string { + if o == nil { + return "" + } + return o.LibrarySectionKey +} + +func (o *GetRecentlyAddedMetadata) GetLibrarySectionTitle() string { + if o == nil { + return "" + } + return o.LibrarySectionTitle +} + +func (o *GetRecentlyAddedMetadata) GetOriginalTitle() *string { + if o == nil { + return nil + } + return o.OriginalTitle +} + +func (o *GetRecentlyAddedMetadata) GetOriginallyAvailableAt() types.Date { + if o == nil { + return types.Date{} + } + return o.OriginallyAvailableAt +} + +func (o *GetRecentlyAddedMetadata) GetParentGUID() *string { + if o == nil { + return nil + } + return o.ParentGUID +} + +func (o *GetRecentlyAddedMetadata) GetParentIndex() *int { + if o == nil { + return nil + } + return o.ParentIndex +} + +func (o *GetRecentlyAddedMetadata) GetParentKey() *string { + if o == nil { + return nil + } + return o.ParentKey +} + +func (o *GetRecentlyAddedMetadata) GetParentRatingKey() *string { + if o == nil { + return nil + } + return o.ParentRatingKey +} + +func (o *GetRecentlyAddedMetadata) GetParentSlug() *string { + if o == nil { + return nil + } + return o.ParentSlug +} + +func (o *GetRecentlyAddedMetadata) GetParentStudio() string { + if o == nil { + return "" + } + return o.ParentStudio +} + +func (o *GetRecentlyAddedMetadata) GetParentTheme() string { + if o == nil { + return "" + } + return o.ParentTheme +} + +func (o *GetRecentlyAddedMetadata) GetParentThumb() *string { + if o == nil { + return nil + } + return o.ParentThumb +} + +func (o *GetRecentlyAddedMetadata) GetParentTitle() *string { + if o == nil { + return nil + } + return o.ParentTitle +} + +func (o *GetRecentlyAddedMetadata) GetParentYear() *int { + if o == nil { + return nil + } + return o.ParentYear +} + +func (o *GetRecentlyAddedMetadata) GetPrimaryExtraKey() *string { + if o == nil { + return nil + } + return o.PrimaryExtraKey +} + +func (o *GetRecentlyAddedMetadata) GetRatingImage() *string { + if o == nil { + return nil + } + return o.RatingImage +} + +func (o *GetRecentlyAddedMetadata) GetRatingKey() string { + if o == nil { + return "" + } + return o.RatingKey +} + +func (o *GetRecentlyAddedMetadata) GetRating() float32 { + if o == nil { + return 0.0 + } + return o.Rating +} + +func (o *GetRecentlyAddedMetadata) GetSeasonCount() int { + if o == nil { + return 0 + } + return o.SeasonCount +} + +func (o *GetRecentlyAddedMetadata) GetSkipCount() *int { + if o == nil { + return nil + } + return o.SkipCount +} + +func (o *GetRecentlyAddedMetadata) GetSlug() string { + if o == nil { + return "" + } + return o.Slug +} + +func (o *GetRecentlyAddedMetadata) GetStudio() *string { + if o == nil { + return nil + } + return o.Studio +} + +func (o *GetRecentlyAddedMetadata) GetSubtype() *string { + if o == nil { + return nil + } + return o.Subtype +} + +func (o *GetRecentlyAddedMetadata) GetSummary() string { + if o == nil { + return "" + } + return o.Summary +} + +func (o *GetRecentlyAddedMetadata) GetTagline() string { + if o == nil { + return "" + } + return o.Tagline +} + +func (o *GetRecentlyAddedMetadata) GetTheme() string { + if o == nil { + return "" + } + return o.Theme +} + +func (o *GetRecentlyAddedMetadata) GetThumb() string { + if o == nil { + return "" + } + return o.Thumb +} + +func (o *GetRecentlyAddedMetadata) GetTitleSort() string { + if o == nil { + return "" + } + return o.TitleSort +} + +func (o *GetRecentlyAddedMetadata) GetTitle() string { + if o == nil { + return "" + } + return o.Title +} + +func (o *GetRecentlyAddedMetadata) GetType() GetRecentlyAddedHubsType { + if o == nil { + return GetRecentlyAddedHubsType("") + } + return o.Type +} + +func (o *GetRecentlyAddedMetadata) GetUpdatedAt() *int64 { + if o == nil { + return nil + } + return o.UpdatedAt +} + +func (o *GetRecentlyAddedMetadata) GetUserRating() *float32 { + if o == nil { + return nil + } + return o.UserRating +} + +func (o *GetRecentlyAddedMetadata) GetViewCount() *int { + if o == nil { + return nil + } + return o.ViewCount +} + +func (o *GetRecentlyAddedMetadata) GetViewOffset() *int { + if o == nil { + return nil + } + return o.ViewOffset +} + +func (o *GetRecentlyAddedMetadata) GetViewedLeafCount() *int { + if o == nil { + return nil + } + return o.ViewedLeafCount +} + +func (o *GetRecentlyAddedMetadata) GetYear() *int { + if o == nil { + return nil + } + return o.Year +} + +func (o *GetRecentlyAddedMetadata) GetImage() []GetRecentlyAddedImage { + if o == nil { + return nil + } + return o.Image +} + +func (o *GetRecentlyAddedMetadata) GetUltraBlurColors() *UltraBlurColors { + if o == nil { + return nil + } + return o.UltraBlurColors +} + func (o *GetRecentlyAddedMetadata) GetMedia() []Media { if o == nil { return nil @@ -2062,13 +2561,6 @@ func (o *GetRecentlyAddedMetadata) GetWriter() []Writer { return o.Writer } -func (o *GetRecentlyAddedMetadata) GetCollection() []Collection { - if o == nil { - return nil - } - return o.Collection -} - func (o *GetRecentlyAddedMetadata) GetRole() []Role { if o == nil { return nil @@ -2076,6 +2568,27 @@ func (o *GetRecentlyAddedMetadata) GetRole() []Role { return o.Role } +func (o *GetRecentlyAddedMetadata) GetProducer() []Producer { + if o == nil { + return nil + } + return o.Producer +} + +func (o *GetRecentlyAddedMetadata) GetRating1() []Rating { + if o == nil { + return nil + } + return o.Rating1 +} + +func (o *GetRecentlyAddedMetadata) GetSimilar() []Similar { + if o == nil { + return nil + } + return o.Similar +} + func (o *GetRecentlyAddedMetadata) GetLocation() []Location { if o == nil { return nil @@ -2083,235 +2596,73 @@ func (o *GetRecentlyAddedMetadata) GetLocation() []Location { return o.Location } -func (o *GetRecentlyAddedMetadata) GetMediaGUID() []MediaGUID { +func (o *GetRecentlyAddedMetadata) GetGuids() []Guids { if o == nil { return nil } - return o.MediaGUID + return o.Guids } -func (o *GetRecentlyAddedMetadata) GetUltraBlurColors() *UltraBlurColors { +func (o *GetRecentlyAddedMetadata) GetCollection() []Collection { if o == nil { return nil } - return o.UltraBlurColors -} - -func (o *GetRecentlyAddedMetadata) GetMetaDataRating() []MetaDataRating { - if o == nil { - return nil - } - return o.MetaDataRating -} - -func (o *GetRecentlyAddedMetadata) GetImage() []GetRecentlyAddedImage { - if o == nil { - return nil - } - return o.Image -} - -func (o *GetRecentlyAddedMetadata) GetTitleSort() *string { - if o == nil { - return nil - } - return o.TitleSort -} - -func (o *GetRecentlyAddedMetadata) GetViewCount() *int { - if o == nil { - return nil - } - return o.ViewCount -} - -func (o *GetRecentlyAddedMetadata) GetLastViewedAt() *int { - if o == nil { - return nil - } - return o.LastViewedAt -} - -func (o *GetRecentlyAddedMetadata) GetOriginalTitle() *string { - if o == nil { - return nil - } - return o.OriginalTitle -} - -func (o *GetRecentlyAddedMetadata) GetViewOffset() *int { - if o == nil { - return nil - } - return o.ViewOffset -} - -func (o *GetRecentlyAddedMetadata) GetSkipCount() *int { - if o == nil { - return nil - } - return o.SkipCount -} - -func (o *GetRecentlyAddedMetadata) GetIndex() *int { - if o == nil { - return nil - } - return o.Index -} - -func (o *GetRecentlyAddedMetadata) GetTheme() *string { - if o == nil { - return nil - } - return o.Theme -} - -func (o *GetRecentlyAddedMetadata) GetLeafCount() *int { - if o == nil { - return nil - } - return o.LeafCount -} - -func (o *GetRecentlyAddedMetadata) GetViewedLeafCount() *int { - if o == nil { - return nil - } - return o.ViewedLeafCount -} - -func (o *GetRecentlyAddedMetadata) GetChildCount() *int { - if o == nil { - return nil - } - return o.ChildCount -} - -func (o *GetRecentlyAddedMetadata) GetHasPremiumExtras() *string { - if o == nil { - return nil - } - return o.HasPremiumExtras -} - -func (o *GetRecentlyAddedMetadata) GetHasPremiumPrimaryExtra() *string { - if o == nil { - return nil - } - return o.HasPremiumPrimaryExtra -} - -func (o *GetRecentlyAddedMetadata) GetParentRatingKey() *string { - if o == nil { - return nil - } - return o.ParentRatingKey -} - -func (o *GetRecentlyAddedMetadata) GetParentGUID() *string { - if o == nil { - return nil - } - return o.ParentGUID -} - -func (o *GetRecentlyAddedMetadata) GetParentStudio() *string { - if o == nil { - return nil - } - return o.ParentStudio -} - -func (o *GetRecentlyAddedMetadata) GetParentKey() *string { - if o == nil { - return nil - } - return o.ParentKey -} - -func (o *GetRecentlyAddedMetadata) GetParentTitle() *string { - if o == nil { - return nil - } - return o.ParentTitle -} - -func (o *GetRecentlyAddedMetadata) GetParentIndex() *int { - if o == nil { - return nil - } - return o.ParentIndex -} - -func (o *GetRecentlyAddedMetadata) GetParentYear() *int { - if o == nil { - return nil - } - return o.ParentYear -} - -func (o *GetRecentlyAddedMetadata) GetParentThumb() *string { - if o == nil { - return nil - } - return o.ParentThumb -} - -func (o *GetRecentlyAddedMetadata) GetParentTheme() *string { - if o == nil { - return nil - } - return o.ParentTheme + return o.Collection } type GetRecentlyAddedMediaContainer struct { - Size int64 `json:"size"` - Offset *int `json:"offset,omitempty"` - TotalSize *int `json:"totalSize,omitempty"` - Identifier *string `json:"identifier,omitempty"` - AllowSync *bool `json:"allowSync,omitempty"` + // Number of media items returned in this response. + Size int `json:"size"` + // Total number of media items in the library. + TotalSize int `json:"totalSize"` + // Offset value for pagination. + Offset int64 `json:"offset"` + // Indicates whether syncing is allowed. + AllowSync bool `json:"allowSync"` + // An plugin identifier for the media container. + Identifier string `json:"identifier"` // The Meta object is only included in the response if the `includeMeta` parameter is set to `1`. // - Meta *Meta `json:"Meta,omitempty"` + Meta *Meta `json:"Meta,omitempty"` + // An array of metadata items. Metadata []GetRecentlyAddedMetadata `json:"Metadata,omitempty"` } -func (o *GetRecentlyAddedMediaContainer) GetSize() int64 { +func (o *GetRecentlyAddedMediaContainer) GetSize() int { if o == nil { return 0 } return o.Size } -func (o *GetRecentlyAddedMediaContainer) GetOffset() *int { +func (o *GetRecentlyAddedMediaContainer) GetTotalSize() int { if o == nil { - return nil - } - return o.Offset -} - -func (o *GetRecentlyAddedMediaContainer) GetTotalSize() *int { - if o == nil { - return nil + return 0 } return o.TotalSize } -func (o *GetRecentlyAddedMediaContainer) GetIdentifier() *string { +func (o *GetRecentlyAddedMediaContainer) GetOffset() int64 { if o == nil { - return nil + return 0 } - return o.Identifier + return o.Offset } -func (o *GetRecentlyAddedMediaContainer) GetAllowSync() *bool { +func (o *GetRecentlyAddedMediaContainer) GetAllowSync() bool { if o == nil { - return nil + return false } return o.AllowSync } +func (o *GetRecentlyAddedMediaContainer) GetIdentifier() string { + if o == nil { + return "" + } + return o.Identifier +} + func (o *GetRecentlyAddedMediaContainer) GetMeta() *Meta { if o == nil { return nil diff --git a/models/sdkerrors/getondeck.go b/models/sdkerrors/getondeck.go deleted file mode 100644 index fd3403e..0000000 --- a/models/sdkerrors/getondeck.go +++ /dev/null @@ -1,90 +0,0 @@ -// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -package sdkerrors - -import ( - "encoding/json" - "net/http" -) - -type GetOnDeckLibraryErrors struct { - Code *int `json:"code,omitempty"` - Message *string `json:"message,omitempty"` - Status *int `json:"status,omitempty"` -} - -func (o *GetOnDeckLibraryErrors) GetCode() *int { - if o == nil { - return nil - } - return o.Code -} - -func (o *GetOnDeckLibraryErrors) GetMessage() *string { - if o == nil { - return nil - } - return o.Message -} - -func (o *GetOnDeckLibraryErrors) GetStatus() *int { - if o == nil { - return nil - } - return o.Status -} - -// GetOnDeckUnauthorized - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. -type GetOnDeckUnauthorized struct { - Errors []GetOnDeckLibraryErrors `json:"errors,omitempty"` - // Raw HTTP response; suitable for custom response parsing - RawResponse *http.Response `json:"-"` -} - -var _ error = &GetOnDeckUnauthorized{} - -func (e *GetOnDeckUnauthorized) Error() string { - data, _ := json.Marshal(e) - return string(data) -} - -type GetOnDeckErrors struct { - Code *int `json:"code,omitempty"` - Message *string `json:"message,omitempty"` - Status *int `json:"status,omitempty"` -} - -func (o *GetOnDeckErrors) GetCode() *int { - if o == nil { - return nil - } - return o.Code -} - -func (o *GetOnDeckErrors) GetMessage() *string { - if o == nil { - return nil - } - return o.Message -} - -func (o *GetOnDeckErrors) GetStatus() *int { - if o == nil { - return nil - } - return o.Status -} - -// GetOnDeckBadRequest - Bad Request - A parameter was not specified, or was specified incorrectly. -type GetOnDeckBadRequest struct { - Errors []GetOnDeckErrors `json:"errors,omitempty"` - // Raw HTTP response; suitable for custom response parsing - RawResponse *http.Response `json:"-"` -} - -var _ error = &GetOnDeckBadRequest{} - -func (e *GetOnDeckBadRequest) Error() string { - data, _ := json.Marshal(e) - return string(data) -} diff --git a/plexapi.go b/plexapi.go index 407c483..0b3c5fb 100644 --- a/plexapi.go +++ b/plexapi.go @@ -299,9 +299,9 @@ func New(opts ...SDKOption) *PlexAPI { sdkConfiguration: sdkConfiguration{ Language: "go", OpenAPIDocVersion: "0.0.3", - SDKVersion: "0.19.1", + SDKVersion: "0.19.2", GenVersion: "2.545.4", - UserAgent: "speakeasy-sdk/go 0.19.1 2.545.4 0.0.3 github.com/LukeHagar/plexgo", + UserAgent: "speakeasy-sdk/go 0.19.2 2.545.4 0.0.3 github.com/LukeHagar/plexgo", ServerDefaults: []map[string]string{ { "protocol": "https",