From ee0e41ac6eb4763ae2a64b7251e6f936cf60a351 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Sat, 8 Feb 2025 00:02:43 +0000 Subject: [PATCH] ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.487.1 --- .speakeasy/gen.lock | 110 +- .speakeasy/gen.yaml | 2 +- .speakeasy/workflow.lock | 14 +- README.md | 3 +- RELEASES.md | 12 +- codeSamples.yaml | 44 +- .../errors/getactorslibrarybadrequest.md | 11 + ...keyerrors.md => getactorslibraryerrors.md} | 2 +- ...rs.md => getactorslibrarylibraryerrors.md} | 2 +- .../errors/getactorslibraryunauthorized.md | 11 + .../errors/getmediametadatabadrequest.md | 11 + docs/models/errors/getmediametadataerrors.md | 10 + .../errors/getmediametadatalibraryerrors.md | 10 + .../errors/getmediametadataunauthorized.md | 11 + .../getmetadatabyratingkeybadrequest.md | 11 - .../getmetadatabyratingkeyunauthorized.md | 11 - .../operations/getactorslibrarydirectory.md | 11 + .../getactorslibrarymediacontainer.md | 20 + .../getactorslibraryqueryparamtype.md | 22 + .../operations/getactorslibraryrequest.md | 9 + .../operations/getactorslibraryresponse.md | 11 + .../getactorslibraryresponsebody.md | 10 + .../getcountrieslibraryqueryparamtype.md | 22 + .../operations/getcountrieslibraryrequest.md | 7 +- .../getgenreslibraryqueryparamtype.md | 22 + .../operations/getgenreslibraryrequest.md | 7 +- .../getlibraryitemsqueryparamtype.md | 2 +- .../operations/getlibraryitemsrequest.md | 18 +- .../operations/getmediametadatacountry.md | 10 + .../operations/getmediametadatadirector.md | 13 + .../operations/getmediametadatagenre.md | 10 + .../operations/getmediametadataimage.md | 10 + .../operations/getmediametadatalocation.md | 8 + .../operations/getmediametadatamedia.md | 22 + .../getmediametadatamediacontainer.md | 16 + ...etadata.md => getmediametadatametadata.md} | 103 +- .../models/operations/getmediametadatapart.md | 18 + .../operations/getmediametadatarequest.md | 21 + .../operations/getmediametadataresponse.md | 11 + .../getmediametadataresponsebody.md | 10 + .../models/operations/getmediametadatarole.md | 13 + .../operations/getmediametadatastream.md | 53 + .../getmediametadataultrablurcolors.md | 11 + .../operations/getmediametadatawriter.md | 13 + .../getmetadatabyratingkeycountry.md | 10 - .../getmetadatabyratingkeydirector.md | 12 - .../operations/getmetadatabyratingkeygenre.md | 10 - .../operations/getmetadatabyratingkeymedia.md | 24 - .../getmetadatabyratingkeymediacontainer.md | 16 - .../operations/getmetadatabyratingkeypart.md | 18 - .../getmetadatabyratingkeyrequest.md | 8 - .../getmetadatabyratingkeyresponse.md | 11 - .../getmetadatabyratingkeyresponsebody.md | 10 - .../operations/getmetadatabyratingkeyrole.md | 13 - .../getmetadatabyratingkeystream.md | 39 - .../getmetadatabyratingkeywriter.md | 12 - .../getplaylistcontentsqueryparamtype.md | 2 +- .../operations/getplaylistcontentsrequest.md | 8 +- .../getrecentlyaddedlibraryrequest.md | 18 +- .../operations/getrecentlyaddedrequest.md | 18 +- .../getsearchlibraryqueryparamtype.md | 2 +- .../operations/getsearchlibraryrequest.md | 8 +- .../gettopwatchedcontentqueryparamtype.md | 2 +- .../operations/gettopwatchedcontentrequest.md | 8 +- docs/models/operations/guids.md | 2 +- docs/models/operations/producer.md | 11 +- docs/models/operations/queryparamtype.md | 2 +- docs/models/operations/rating.md | 10 + docs/models/operations/ratings.md | 10 - docs/models/operations/similar.md | 10 + docs/models/operations/type.md | 2 +- docs/sdks/library/README.md | 134 +- docs/sdks/playlists/README.md | 10 +- pyproject.toml | 2 +- src/plex_api_client/_version.py | 4 +- src/plex_api_client/library.py | 324 ++++- src/plex_api_client/models/errors/__init__.py | 54 +- ...by_rating_key.py => get_actors_library.py} | 32 +- .../models/errors/get_media_meta_data.py | 79 ++ .../models/operations/__init__.py | 168 ++- .../models/operations/get_actors_library.py | 205 +++ .../operations/get_countries_library.py | 44 +- .../models/operations/get_genres_library.py | 44 +- .../models/operations/get_library_items.py | 46 +- .../models/operations/get_media_meta_data.py | 1242 +++++++++++++++++ .../operations/get_meta_data_by_rating_key.py | 629 --------- .../models/operations/get_recently_added.py | 6 +- .../operations/get_recently_added_library.py | 6 +- .../models/operations/get_search_library.py | 6 +- .../models/operations/getplaylistcontents.py | 6 +- .../models/operations/gettopwatchedcontent.py | 6 +- src/plex_api_client/playlists.py | 4 +- 92 files changed, 2920 insertions(+), 1205 deletions(-) create mode 100644 docs/models/errors/getactorslibrarybadrequest.md rename docs/models/errors/{getmetadatabyratingkeyerrors.md => getactorslibraryerrors.md} (96%) rename docs/models/errors/{getmetadatabyratingkeylibraryerrors.md => getactorslibrarylibraryerrors.md} (95%) create mode 100644 docs/models/errors/getactorslibraryunauthorized.md create mode 100644 docs/models/errors/getmediametadatabadrequest.md create mode 100644 docs/models/errors/getmediametadataerrors.md create mode 100644 docs/models/errors/getmediametadatalibraryerrors.md create mode 100644 docs/models/errors/getmediametadataunauthorized.md delete mode 100644 docs/models/errors/getmetadatabyratingkeybadrequest.md delete mode 100644 docs/models/errors/getmetadatabyratingkeyunauthorized.md create mode 100644 docs/models/operations/getactorslibrarydirectory.md create mode 100644 docs/models/operations/getactorslibrarymediacontainer.md create mode 100644 docs/models/operations/getactorslibraryqueryparamtype.md create mode 100644 docs/models/operations/getactorslibraryrequest.md create mode 100644 docs/models/operations/getactorslibraryresponse.md create mode 100644 docs/models/operations/getactorslibraryresponsebody.md create mode 100644 docs/models/operations/getcountrieslibraryqueryparamtype.md create mode 100644 docs/models/operations/getgenreslibraryqueryparamtype.md create mode 100644 docs/models/operations/getmediametadatacountry.md create mode 100644 docs/models/operations/getmediametadatadirector.md create mode 100644 docs/models/operations/getmediametadatagenre.md create mode 100644 docs/models/operations/getmediametadataimage.md create mode 100644 docs/models/operations/getmediametadatalocation.md create mode 100644 docs/models/operations/getmediametadatamedia.md create mode 100644 docs/models/operations/getmediametadatamediacontainer.md rename docs/models/operations/{getmetadatabyratingkeymetadata.md => getmediametadatametadata.md} (54%) create mode 100644 docs/models/operations/getmediametadatapart.md create mode 100644 docs/models/operations/getmediametadatarequest.md create mode 100644 docs/models/operations/getmediametadataresponse.md create mode 100644 docs/models/operations/getmediametadataresponsebody.md create mode 100644 docs/models/operations/getmediametadatarole.md create mode 100644 docs/models/operations/getmediametadatastream.md create mode 100644 docs/models/operations/getmediametadataultrablurcolors.md create mode 100644 docs/models/operations/getmediametadatawriter.md delete mode 100644 docs/models/operations/getmetadatabyratingkeycountry.md delete mode 100644 docs/models/operations/getmetadatabyratingkeydirector.md delete mode 100644 docs/models/operations/getmetadatabyratingkeygenre.md delete mode 100644 docs/models/operations/getmetadatabyratingkeymedia.md delete mode 100644 docs/models/operations/getmetadatabyratingkeymediacontainer.md delete mode 100644 docs/models/operations/getmetadatabyratingkeypart.md delete mode 100644 docs/models/operations/getmetadatabyratingkeyrequest.md delete mode 100644 docs/models/operations/getmetadatabyratingkeyresponse.md delete mode 100644 docs/models/operations/getmetadatabyratingkeyresponsebody.md delete mode 100644 docs/models/operations/getmetadatabyratingkeyrole.md delete mode 100644 docs/models/operations/getmetadatabyratingkeystream.md delete mode 100644 docs/models/operations/getmetadatabyratingkeywriter.md create mode 100644 docs/models/operations/rating.md delete mode 100644 docs/models/operations/ratings.md create mode 100644 docs/models/operations/similar.md rename src/plex_api_client/models/errors/{get_meta_data_by_rating_key.py => get_actors_library.py} (58%) create mode 100644 src/plex_api_client/models/errors/get_media_meta_data.py create mode 100644 src/plex_api_client/models/operations/get_actors_library.py create mode 100644 src/plex_api_client/models/operations/get_media_meta_data.py delete mode 100644 src/plex_api_client/models/operations/get_meta_data_by_rating_key.py diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 3827fc6..72a33a9 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: 3eeea668-4ef4-464e-a888-bdfa023bedf5 management: - docChecksum: 7dec92ab9151a1b5a35df5faa81811ba + docChecksum: 5d44282cd3351c75bd6c9a894dbe1ec9 docVersion: 0.0.3 - speakeasyVersion: 1.487.0 + speakeasyVersion: 1.487.1 generationVersion: 2.506.0 - releaseVersion: 0.22.0 - configChecksum: 02e21ec9a82866d44b79d54a1ec21b1d + releaseVersion: 0.22.1 + configChecksum: e3d7995df0c9196051a949812c3b6d0a repoURL: https://github.com/LukeHagar/plexpy.git repoSubDirectory: . installationURL: https://github.com/LukeHagar/plexpy.git @@ -77,6 +77,10 @@ generatedFiles: - docs/models/errors/enablepapertraillogerrors.md - docs/models/errors/enablepapertrailunauthorized.md - docs/models/errors/errors.md + - docs/models/errors/getactorslibrarybadrequest.md + - docs/models/errors/getactorslibraryerrors.md + - docs/models/errors/getactorslibrarylibraryerrors.md + - docs/models/errors/getactorslibraryunauthorized.md - docs/models/errors/getalllibrariesbadrequest.md - docs/models/errors/getalllibrarieserrors.md - docs/models/errors/getalllibrarieslibraryerrors.md @@ -141,14 +145,14 @@ generatedFiles: - docs/models/errors/getlibraryitemserrors.md - docs/models/errors/getlibraryitemslibraryerrors.md - docs/models/errors/getlibraryitemsunauthorized.md + - docs/models/errors/getmediametadatabadrequest.md + - docs/models/errors/getmediametadataerrors.md + - docs/models/errors/getmediametadatalibraryerrors.md + - docs/models/errors/getmediametadataunauthorized.md - docs/models/errors/getmediaprovidersbadrequest.md - docs/models/errors/getmediaproviderserrors.md - docs/models/errors/getmediaprovidersservererrors.md - docs/models/errors/getmediaprovidersunauthorized.md - - docs/models/errors/getmetadatabyratingkeybadrequest.md - - docs/models/errors/getmetadatabyratingkeyerrors.md - - docs/models/errors/getmetadatabyratingkeylibraryerrors.md - - docs/models/errors/getmetadatabyratingkeyunauthorized.md - docs/models/errors/getmetadatachildrenbadrequest.md - docs/models/errors/getmetadatachildrenerrors.md - docs/models/errors/getmetadatachildrenlibraryerrors.md @@ -407,6 +411,12 @@ generatedFiles: - docs/models/operations/friend.md - docs/models/operations/genre.md - docs/models/operations/geodata.md + - docs/models/operations/getactorslibrarydirectory.md + - docs/models/operations/getactorslibrarymediacontainer.md + - docs/models/operations/getactorslibraryqueryparamtype.md + - docs/models/operations/getactorslibraryrequest.md + - docs/models/operations/getactorslibraryresponse.md + - docs/models/operations/getactorslibraryresponsebody.md - docs/models/operations/getalllibrariesdirectory.md - docs/models/operations/getalllibrarieslocation.md - docs/models/operations/getalllibrariesmediacontainer.md @@ -428,6 +438,7 @@ generatedFiles: - docs/models/operations/getcompanionsdataresponse.md - docs/models/operations/getcountrieslibrarydirectory.md - docs/models/operations/getcountrieslibrarymediacontainer.md + - docs/models/operations/getcountrieslibraryqueryparamtype.md - docs/models/operations/getcountrieslibraryrequest.md - docs/models/operations/getcountrieslibraryresponse.md - docs/models/operations/getcountrieslibraryresponsebody.md @@ -438,6 +449,7 @@ generatedFiles: - docs/models/operations/getfilehashresponse.md - docs/models/operations/getgenreslibrarydirectory.md - docs/models/operations/getgenreslibrarymediacontainer.md + - docs/models/operations/getgenreslibraryqueryparamtype.md - docs/models/operations/getgenreslibraryrequest.md - docs/models/operations/getgenreslibraryresponse.md - docs/models/operations/getgenreslibraryresponsebody.md @@ -520,24 +532,27 @@ generatedFiles: - docs/models/operations/getlibraryitemstype.md - docs/models/operations/getlibraryitemsultrablurcolors.md - docs/models/operations/getlibraryitemswriter.md + - docs/models/operations/getmediametadatacountry.md + - docs/models/operations/getmediametadatadirector.md + - docs/models/operations/getmediametadatagenre.md + - docs/models/operations/getmediametadataimage.md + - docs/models/operations/getmediametadatalocation.md + - docs/models/operations/getmediametadatamedia.md + - docs/models/operations/getmediametadatamediacontainer.md + - docs/models/operations/getmediametadatametadata.md + - docs/models/operations/getmediametadatapart.md + - docs/models/operations/getmediametadatarequest.md + - docs/models/operations/getmediametadataresponse.md + - docs/models/operations/getmediametadataresponsebody.md + - docs/models/operations/getmediametadatarole.md + - docs/models/operations/getmediametadatastream.md + - docs/models/operations/getmediametadataultrablurcolors.md + - docs/models/operations/getmediametadatawriter.md - docs/models/operations/getmediaprovidersdirectory.md - docs/models/operations/getmediaprovidersmediacontainer.md - docs/models/operations/getmediaprovidersrequest.md - docs/models/operations/getmediaprovidersresponse.md - docs/models/operations/getmediaprovidersresponsebody.md - - docs/models/operations/getmetadatabyratingkeycountry.md - - docs/models/operations/getmetadatabyratingkeydirector.md - - docs/models/operations/getmetadatabyratingkeygenre.md - - docs/models/operations/getmetadatabyratingkeymedia.md - - docs/models/operations/getmetadatabyratingkeymediacontainer.md - - docs/models/operations/getmetadatabyratingkeymetadata.md - - docs/models/operations/getmetadatabyratingkeypart.md - - docs/models/operations/getmetadatabyratingkeyrequest.md - - docs/models/operations/getmetadatabyratingkeyresponse.md - - docs/models/operations/getmetadatabyratingkeyresponsebody.md - - docs/models/operations/getmetadatabyratingkeyrole.md - - docs/models/operations/getmetadatabyratingkeystream.md - - docs/models/operations/getmetadatabyratingkeywriter.md - docs/models/operations/getmetadatachildrendirectory.md - docs/models/operations/getmetadatachildrenmediacontainer.md - docs/models/operations/getmetadatachildrenmetadata.md @@ -824,7 +839,7 @@ generatedFiles: - docs/models/operations/queryparamonlytransient.md - docs/models/operations/queryparamsmart.md - docs/models/operations/queryparamtype.md - - docs/models/operations/ratings.md + - docs/models/operations/rating.md - docs/models/operations/release.md - docs/models/operations/responsebody.md - docs/models/operations/restricted.md @@ -839,6 +854,7 @@ generatedFiles: - docs/models/operations/sharedservers.md - docs/models/operations/sharedsources.md - docs/models/operations/showordering.md + - docs/models/operations/similar.md - docs/models/operations/skip.md - docs/models/operations/smart.md - docs/models/operations/sort.md @@ -928,14 +944,15 @@ generatedFiles: - src/plex_api_client/models/errors/deletelibrary.py - src/plex_api_client/models/errors/deleteplaylist.py - src/plex_api_client/models/errors/enablepapertrail.py + - src/plex_api_client/models/errors/get_actors_library.py - src/plex_api_client/models/errors/get_all_libraries.py - src/plex_api_client/models/errors/get_banner_image.py - src/plex_api_client/models/errors/get_countries_library.py - src/plex_api_client/models/errors/get_genres_library.py - src/plex_api_client/models/errors/get_library_details.py - src/plex_api_client/models/errors/get_library_items.py + - src/plex_api_client/models/errors/get_media_meta_data.py - src/plex_api_client/models/errors/get_media_providers.py - - src/plex_api_client/models/errors/get_meta_data_by_rating_key.py - src/plex_api_client/models/errors/get_recently_added_library.py - src/plex_api_client/models/errors/get_refresh_library_metadata.py - src/plex_api_client/models/errors/get_search_all_libraries.py @@ -1008,14 +1025,15 @@ generatedFiles: - src/plex_api_client/models/operations/deletelibrary.py - src/plex_api_client/models/operations/deleteplaylist.py - src/plex_api_client/models/operations/enablepapertrail.py + - src/plex_api_client/models/operations/get_actors_library.py - src/plex_api_client/models/operations/get_all_libraries.py - src/plex_api_client/models/operations/get_banner_image.py - src/plex_api_client/models/operations/get_countries_library.py - src/plex_api_client/models/operations/get_genres_library.py - src/plex_api_client/models/operations/get_library_details.py - src/plex_api_client/models/operations/get_library_items.py + - src/plex_api_client/models/operations/get_media_meta_data.py - src/plex_api_client/models/operations/get_media_providers.py - - src/plex_api_client/models/operations/get_meta_data_by_rating_key.py - src/plex_api_client/models/operations/get_recently_added.py - src/plex_api_client/models/operations/get_recently_added_library.py - src/plex_api_client/models/operations/get_refresh_library_metadata.py @@ -2099,6 +2117,8 @@ examples: parameters: path: sectionKey: 9518 + query: + type: 2 responses: "200": application/json: {"MediaContainer": {"size": 50, "identifier": "com.plexapp.plugins.library", "allowSync": false, "art": "/:/resources/show-fanart.jpg", "content": "secondary", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "nocache": true, "thumb": "/:/resources/show.png", "title1": "TV Shows (Reality)", "title2": "By Genre", "viewGroup": "secondary", "Directory": [{"fastKey": "/library/sections/10/all?genre=89", "key": "89", "title": "Action", "type": "genre"}]}} @@ -2111,6 +2131,8 @@ examples: parameters: path: sectionKey: 9518 + query: + type: 2 responses: "200": application/json: {"MediaContainer": {"size": 50, "identifier": "com.plexapp.plugins.library", "allowSync": false, "art": "/:/resources/show-fanart.jpg", "content": "secondary", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "nocache": true, "thumb": "/:/resources/show.png", "title1": "TV Series", "title2": "By Country", "viewGroup": "secondary", "Directory": [{"fastKey": "/library/sections/2/all?country=15491", "key": "15491", "title": "Japan"}]}} @@ -2142,5 +2164,45 @@ examples: 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": application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + get-actors-library: + speakeasy-default-get-actors-library: + parameters: + path: + sectionKey: 9518 + query: + type: 2 + responses: + "200": + application/json: {"MediaContainer": {"size": 50, "allowSync": false, "art": "/:/resources/show-fanart.jpg", "identifier": "com.plexapp.plugins.library", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "nocache": true, "thumb": "/:/resources/show.png", "title1": "TV Series", "title2": "By Starring Actor", "viewGroup": "secondary", "viewMode": "131131", "Directory": [{"fastKey": "/library/sections/2/all?actor=134671", "thumb": "https://metadata-static.plex.tv/e/people/e2a915b537ef720252b6d408bc1f91b3.jpg", "key": "134671", "title": "Aaron Paul"}, {"fastKey": "/library/sections/2/all?actor=134671", "thumb": "https://metadata-static.plex.tv/e/people/e2a915b537ef720252b6d408bc1f91b3.jpg", "key": "134671", "title": "Aaron Paul"}]}} + "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}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + "401": + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + get-media-meta-data: + speakeasy-default-get-media-meta-data: + parameters: + path: + ratingKey: 9518 + query: + includeConcerts: true + includeExtras: true + includeOnDeck: true + includePopularLeaves: true + includePreferences: true + includeReviews: true + includeChapters: true + includeStations: true + includeExternalMedia: true + asyncAugmentMetadata: true + asyncCheckFiles: true + asyncRefreshAnalysis: true + 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, "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": 1625505101, "updatedAt": 1736487993, "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, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": 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, "container": "mkv", "videoProfile": "main 10", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "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", "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", "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, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": 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, "container": "mkv", "videoProfile": "main 10", "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, "container": "mkv", "videoProfile": "main 10", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "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", "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", "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, "container": "mkv", "videoProfile": "main 10", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "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, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": 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, "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": 1625505101, "updatedAt": 1736487993, "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, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": 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, "container": "mkv", "videoProfile": "main 10", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "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", "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", "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, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": 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, "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": 1625505101, "updatedAt": 1736487993, "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, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": 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, "container": "mkv", "videoProfile": "main 10", "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, "container": "mkv", "videoProfile": "main 10", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "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", "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", "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, "container": "mkv", "videoProfile": "main 10", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "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", "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, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": 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, "container": "mkv", "videoProfile": "main 10", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "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", "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, "container": "mkv", "videoProfile": "main 10", "Stream": [{"id": 1002625, "streamType": 1, "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "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", "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"}]}]}} + "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": + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} examplesVersion: 1.0.0 generatedTests: {} diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 87ed815..54638fd 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -13,7 +13,7 @@ generation: oAuth2ClientCredentialsEnabled: true oAuth2PasswordEnabled: false python: - version: 0.22.0 + version: 0.22.1 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index c724328..1723476 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,4 +1,4 @@ -speakeasyVersion: 1.487.0 +speakeasyVersion: 1.487.1 sources: my-source: sourceNamespace: my-source @@ -8,19 +8,19 @@ sources: - latest plexapi: sourceNamespace: plexapi - sourceRevisionDigest: sha256:e6ab335dd91a4165f4510e4a3af8a55819c6310b7e66251266d2384376f3ccae - sourceBlobDigest: sha256:89d1b1133e400c89f0d06efe5e5168f5ba25a413e1ab8380d442d6b233e2e5a9 + sourceRevisionDigest: sha256:49536684a97842ea7c069f909012b31a22a046d8277aee47b50a334494bf2c64 + sourceBlobDigest: sha256:eac671ea32ce31e1e558839153f7effef39bb35b4e461c6e95661d0eaf4ce1c8 tags: - latest - - speakeasy-sdk-regen-1738886477 + - speakeasy-sdk-regen-1738972888 targets: plexpy: source: plexapi sourceNamespace: plexapi - sourceRevisionDigest: sha256:e6ab335dd91a4165f4510e4a3af8a55819c6310b7e66251266d2384376f3ccae - sourceBlobDigest: sha256:89d1b1133e400c89f0d06efe5e5168f5ba25a413e1ab8380d442d6b233e2e5a9 + sourceRevisionDigest: sha256:49536684a97842ea7c069f909012b31a22a046d8277aee47b50a334494bf2c64 + sourceBlobDigest: sha256:eac671ea32ce31e1e558839153f7effef39bb35b4e461c6e95661d0eaf4ce1c8 codeSamplesNamespace: code-samples-python-plexpy - codeSamplesRevisionDigest: sha256:7c876b753cb5ce60e78319a51e8a0a436679e86c4e4a90d423d73532459dac53 + codeSamplesRevisionDigest: sha256:ad966264da2ccb1f43501d2435d91d5bf795538ec83e99a3f4a2f97acee1293a workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README.md b/README.md index ad180eb..cd8eb96 100644 --- a/README.md +++ b/README.md @@ -219,8 +219,9 @@ asyncio.run(main()) * [get_search_library](docs/sdks/library/README.md#get_search_library) - Search Library * [get_genres_library](docs/sdks/library/README.md#get_genres_library) - Get Genres of library media * [get_countries_library](docs/sdks/library/README.md#get_countries_library) - Get Countries of library media +* [get_actors_library](docs/sdks/library/README.md#get_actors_library) - Get Actors of library media * [get_search_all_libraries](docs/sdks/library/README.md#get_search_all_libraries) - Search All Libraries -* [get_meta_data_by_rating_key](docs/sdks/library/README.md#get_meta_data_by_rating_key) - Get Metadata by RatingKey +* [get_media_meta_data](docs/sdks/library/README.md#get_media_meta_data) - Get Media Metadata * [get_metadata_children](docs/sdks/library/README.md#get_metadata_children) - Get Items Children * [get_top_watched_content](docs/sdks/library/README.md#get_top_watched_content) - Get Top Watched Content * [get_on_deck](docs/sdks/library/README.md#get_on_deck) - Get On Deck diff --git a/RELEASES.md b/RELEASES.md index e947128..d49ec2b 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -928,4 +928,14 @@ Based on: ### Generated - [python v0.22.0] . ### Releases -- [PyPI v0.22.0] https://pypi.org/project/plex-api-client/0.22.0 - . \ No newline at end of file +- [PyPI v0.22.0] https://pypi.org/project/plex-api-client/0.22.0 - . + +## 2025-02-08 00:01:13 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.487.1 (2.506.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.22.1] . +### Releases +- [PyPI v0.22.1] https://pypi.org/project/plex-api-client/0.22.1 - . \ No newline at end of file diff --git a/codeSamples.yaml b/codeSamples.yaml index 1319659..00bf978 100644 --- a/codeSamples.yaml +++ b/codeSamples.yaml @@ -509,7 +509,7 @@ actions: update: x-codeSamples: - lang: python - label: key + label: data source: |- from plex_api_client import PlexAPI @@ -517,7 +517,22 @@ actions: access_token="", ) as plex_api: - res = plex_api.library.get_meta_data_by_rating_key(rating_key=9518) + res = plex_api.library.get_media_meta_data(request={ + "rating_key": 9518, + "include_concerts": True, + "include_extras": True, + "include_on_deck": True, + "include_popular_leaves": True, + "include_preferences": True, + "include_reviews": True, + "include_chapters": True, + "include_stations": True, + "include_external_media": True, + "async_augment_metadata": True, + "async_check_files": True, + "async_refresh_analysis": True, + "async_refresh_local_media_agent": True, + }) assert res.object is not None @@ -745,6 +760,25 @@ actions: assert res.object is not None + # Handle response + print(res.object) + - target: $["paths"]["/library/sections/{sectionKey}/actor"]["get"] + update: + x-codeSamples: + - lang: python + label: library + source: |- + from plex_api_client import PlexAPI + from plex_api_client.models import operations + + with PlexAPI( + access_token="", + ) as plex_api: + + res = plex_api.library.get_actors_library(section_key=9518, type_=operations.GetActorsLibraryQueryParamType.TV_SHOW) + + assert res.object is not None + # Handle response print(res.object) - target: $["paths"]["/library/sections/{sectionKey}/country"]["get"] @@ -754,12 +788,13 @@ actions: label: library source: |- from plex_api_client import PlexAPI + from plex_api_client.models import operations with PlexAPI( access_token="", ) as plex_api: - res = plex_api.library.get_countries_library(section_key=9518) + res = plex_api.library.get_countries_library(section_key=9518, type_=operations.GetCountriesLibraryQueryParamType.TV_SHOW) assert res.object is not None @@ -772,12 +807,13 @@ actions: label: library source: |- from plex_api_client import PlexAPI + from plex_api_client.models import operations with PlexAPI( access_token="", ) as plex_api: - res = plex_api.library.get_genres_library(section_key=9518) + res = plex_api.library.get_genres_library(section_key=9518, type_=operations.GetGenresLibraryQueryParamType.TV_SHOW) assert res.object is not None diff --git a/docs/models/errors/getactorslibrarybadrequest.md b/docs/models/errors/getactorslibrarybadrequest.md new file mode 100644 index 0000000..7d47646 --- /dev/null +++ b/docs/models/errors/getactorslibrarybadrequest.md @@ -0,0 +1,11 @@ +# GetActorsLibraryBadRequest + +Bad Request - A parameter was not specified, or was specified incorrectly. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `errors` | List[[errors.GetActorsLibraryErrors](../../models/errors/getactorslibraryerrors.md)] | :heavy_minus_sign: | N/A | +| `raw_response` | [httpx.Response](https://www.python-httpx.org/api/#response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/models/errors/getmetadatabyratingkeyerrors.md b/docs/models/errors/getactorslibraryerrors.md similarity index 96% rename from docs/models/errors/getmetadatabyratingkeyerrors.md rename to docs/models/errors/getactorslibraryerrors.md index 170a50a..6148c67 100644 --- a/docs/models/errors/getmetadatabyratingkeyerrors.md +++ b/docs/models/errors/getactorslibraryerrors.md @@ -1,4 +1,4 @@ -# GetMetaDataByRatingKeyErrors +# GetActorsLibraryErrors ## Fields diff --git a/docs/models/errors/getmetadatabyratingkeylibraryerrors.md b/docs/models/errors/getactorslibrarylibraryerrors.md similarity index 95% rename from docs/models/errors/getmetadatabyratingkeylibraryerrors.md rename to docs/models/errors/getactorslibrarylibraryerrors.md index e34adb6..d2031e4 100644 --- a/docs/models/errors/getmetadatabyratingkeylibraryerrors.md +++ b/docs/models/errors/getactorslibrarylibraryerrors.md @@ -1,4 +1,4 @@ -# GetMetaDataByRatingKeyLibraryErrors +# GetActorsLibraryLibraryErrors ## Fields diff --git a/docs/models/errors/getactorslibraryunauthorized.md b/docs/models/errors/getactorslibraryunauthorized.md new file mode 100644 index 0000000..9af288d --- /dev/null +++ b/docs/models/errors/getactorslibraryunauthorized.md @@ -0,0 +1,11 @@ +# GetActorsLibraryUnauthorized + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `errors` | List[[errors.GetActorsLibraryLibraryErrors](../../models/errors/getactorslibrarylibraryerrors.md)] | :heavy_minus_sign: | N/A | +| `raw_response` | [httpx.Response](https://www.python-httpx.org/api/#response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/models/errors/getmediametadatabadrequest.md b/docs/models/errors/getmediametadatabadrequest.md new file mode 100644 index 0000000..78841de --- /dev/null +++ b/docs/models/errors/getmediametadatabadrequest.md @@ -0,0 +1,11 @@ +# GetMediaMetaDataBadRequest + +Bad Request - A parameter was not specified, or was specified incorrectly. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `errors` | List[[errors.GetMediaMetaDataErrors](../../models/errors/getmediametadataerrors.md)] | :heavy_minus_sign: | N/A | +| `raw_response` | [httpx.Response](https://www.python-httpx.org/api/#response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/models/errors/getmediametadataerrors.md b/docs/models/errors/getmediametadataerrors.md new file mode 100644 index 0000000..d15837f --- /dev/null +++ b/docs/models/errors/getmediametadataerrors.md @@ -0,0 +1,10 @@ +# GetMediaMetaDataErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `code` | *Optional[int]* | :heavy_minus_sign: | N/A | 1000 | +| `message` | *Optional[str]* | :heavy_minus_sign: | N/A | X-Plex-Client-Identifier is missing | +| `status` | *Optional[int]* | :heavy_minus_sign: | N/A | 400 | \ No newline at end of file diff --git a/docs/models/errors/getmediametadatalibraryerrors.md b/docs/models/errors/getmediametadatalibraryerrors.md new file mode 100644 index 0000000..a90e8d5 --- /dev/null +++ b/docs/models/errors/getmediametadatalibraryerrors.md @@ -0,0 +1,10 @@ +# GetMediaMetaDataLibraryErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Optional[int]* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *Optional[str]* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Optional[int]* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/errors/getmediametadataunauthorized.md b/docs/models/errors/getmediametadataunauthorized.md new file mode 100644 index 0000000..a59c09e --- /dev/null +++ b/docs/models/errors/getmediametadataunauthorized.md @@ -0,0 +1,11 @@ +# GetMediaMetaDataUnauthorized + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `errors` | List[[errors.GetMediaMetaDataLibraryErrors](../../models/errors/getmediametadatalibraryerrors.md)] | :heavy_minus_sign: | N/A | +| `raw_response` | [httpx.Response](https://www.python-httpx.org/api/#response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/models/errors/getmetadatabyratingkeybadrequest.md b/docs/models/errors/getmetadatabyratingkeybadrequest.md deleted file mode 100644 index e2655c6..0000000 --- a/docs/models/errors/getmetadatabyratingkeybadrequest.md +++ /dev/null @@ -1,11 +0,0 @@ -# GetMetaDataByRatingKeyBadRequest - -Bad Request - A parameter was not specified, or was specified incorrectly. - - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | -| `errors` | List[[errors.GetMetaDataByRatingKeyErrors](../../models/errors/getmetadatabyratingkeyerrors.md)] | :heavy_minus_sign: | N/A | -| `raw_response` | [httpx.Response](https://www.python-httpx.org/api/#response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/models/errors/getmetadatabyratingkeyunauthorized.md b/docs/models/errors/getmetadatabyratingkeyunauthorized.md deleted file mode 100644 index 635a1ee..0000000 --- a/docs/models/errors/getmetadatabyratingkeyunauthorized.md +++ /dev/null @@ -1,11 +0,0 @@ -# GetMetaDataByRatingKeyUnauthorized - -Unauthorized - Returned if the X-Plex-Token is missing from the header or query. - - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -| `errors` | List[[errors.GetMetaDataByRatingKeyLibraryErrors](../../models/errors/getmetadatabyratingkeylibraryerrors.md)] | :heavy_minus_sign: | N/A | -| `raw_response` | [httpx.Response](https://www.python-httpx.org/api/#response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/models/operations/getactorslibrarydirectory.md b/docs/models/operations/getactorslibrarydirectory.md new file mode 100644 index 0000000..05a91e0 --- /dev/null +++ b/docs/models/operations/getactorslibrarydirectory.md @@ -0,0 +1,11 @@ +# GetActorsLibraryDirectory + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `fast_key` | *str* | :heavy_check_mark: | A fast lookup key for the actor relative url. | /library/sections/2/all?actor=134671 | +| `thumb` | *str* | :heavy_check_mark: | URL for the thumbnail image of the actor. | https://metadata-static.plex.tv/e/people/e2a915b537ef720252b6d408bc1f91b3.jpg | +| `key` | *str* | :heavy_check_mark: | A unique key representing the actor. | 134671 | +| `title` | *str* | :heavy_check_mark: | The name of the actor. | Aaron Paul | \ No newline at end of file diff --git a/docs/models/operations/getactorslibrarymediacontainer.md b/docs/models/operations/getactorslibrarymediacontainer.md new file mode 100644 index 0000000..ffcc6fd --- /dev/null +++ b/docs/models/operations/getactorslibrarymediacontainer.md @@ -0,0 +1,20 @@ +# GetActorsLibraryMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `size` | *float* | :heavy_check_mark: | N/A | 50 | +| `allow_sync` | *bool* | :heavy_check_mark: | Indicates whether syncing is allowed. | false | +| `art` | *str* | :heavy_check_mark: | URL for the background artwork of the media container. | /:/resources/show-fanart.jpg | +| `identifier` | *str* | :heavy_check_mark: | An plugin identifier for the media container. | com.plexapp.plugins.library | +| `media_tag_prefix` | *str* | :heavy_check_mark: | The prefix used for media tag resource paths. | /system/bundle/media/flags/ | +| `media_tag_version` | *int* | :heavy_check_mark: | The version number for media tags. | 1734362201 | +| `nocache` | *bool* | :heavy_check_mark: | Specifies whether caching is disabled. | true | +| `thumb` | *str* | :heavy_check_mark: | URL for the thumbnail image of the media container. | /:/resources/show.png | +| `title1` | *str* | :heavy_check_mark: | The primary title of the media container. | TV Series | +| `title2` | *str* | :heavy_check_mark: | The secondary title of the media container. | By Starring Actor | +| `view_group` | *str* | :heavy_check_mark: | Identifier for the view group layout. | secondary | +| `view_mode` | *str* | :heavy_check_mark: | Identifier for the view mode. | 131131 | +| `directory` | List[[operations.GetActorsLibraryDirectory](../../models/operations/getactorslibrarydirectory.md)] | :heavy_minus_sign: | An array of actor entries for media items. | | \ No newline at end of file diff --git a/docs/models/operations/getactorslibraryqueryparamtype.md b/docs/models/operations/getactorslibraryqueryparamtype.md new file mode 100644 index 0000000..c0c209a --- /dev/null +++ b/docs/models/operations/getactorslibraryqueryparamtype.md @@ -0,0 +1,22 @@ +# GetActorsLibraryQueryParamType + +The type of media to retrieve or filter by. +1 = movie +2 = show +3 = season +4 = episode +E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + + + +## Values + +| Name | Value | +| --------- | --------- | +| `MOVIE` | 1 | +| `TV_SHOW` | 2 | +| `SEASON` | 3 | +| `EPISODE` | 4 | +| `AUDIO` | 8 | +| `ALBUM` | 9 | +| `TRACK` | 10 | \ No newline at end of file diff --git a/docs/models/operations/getactorslibraryrequest.md b/docs/models/operations/getactorslibraryrequest.md new file mode 100644 index 0000000..f4d47d4 --- /dev/null +++ b/docs/models/operations/getactorslibraryrequest.md @@ -0,0 +1,9 @@ +# GetActorsLibraryRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `section_key` | *int* | :heavy_check_mark: | The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
| 9518 | +| `type` | [operations.GetActorsLibraryQueryParamType](../../models/operations/getactorslibraryqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | \ No newline at end of file diff --git a/docs/models/operations/getactorslibraryresponse.md b/docs/models/operations/getactorslibraryresponse.md new file mode 100644 index 0000000..3de927f --- /dev/null +++ b/docs/models/operations/getactorslibraryresponse.md @@ -0,0 +1,11 @@ +# GetActorsLibraryResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `content_type` | *str* | :heavy_check_mark: | HTTP response content type for this operation | +| `status_code` | *int* | :heavy_check_mark: | HTTP response status code for this operation | +| `raw_response` | [httpx.Response](https://www.python-httpx.org/api/#response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [Optional[operations.GetActorsLibraryResponseBody]](../../models/operations/getactorslibraryresponsebody.md) | :heavy_minus_sign: | Successful response containing media container data. | \ No newline at end of file diff --git a/docs/models/operations/getactorslibraryresponsebody.md b/docs/models/operations/getactorslibraryresponsebody.md new file mode 100644 index 0000000..58cb38a --- /dev/null +++ b/docs/models/operations/getactorslibraryresponsebody.md @@ -0,0 +1,10 @@ +# GetActorsLibraryResponseBody + +Successful response containing media container data. + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| `media_container` | [Optional[operations.GetActorsLibraryMediaContainer]](../../models/operations/getactorslibrarymediacontainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/getcountrieslibraryqueryparamtype.md b/docs/models/operations/getcountrieslibraryqueryparamtype.md new file mode 100644 index 0000000..01d493f --- /dev/null +++ b/docs/models/operations/getcountrieslibraryqueryparamtype.md @@ -0,0 +1,22 @@ +# GetCountriesLibraryQueryParamType + +The type of media to retrieve or filter by. +1 = movie +2 = show +3 = season +4 = episode +E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + + + +## Values + +| Name | Value | +| --------- | --------- | +| `MOVIE` | 1 | +| `TV_SHOW` | 2 | +| `SEASON` | 3 | +| `EPISODE` | 4 | +| `AUDIO` | 8 | +| `ALBUM` | 9 | +| `TRACK` | 10 | \ No newline at end of file diff --git a/docs/models/operations/getcountrieslibraryrequest.md b/docs/models/operations/getcountrieslibraryrequest.md index 46c9f21..0c60cca 100644 --- a/docs/models/operations/getcountrieslibraryrequest.md +++ b/docs/models/operations/getcountrieslibraryrequest.md @@ -3,6 +3,7 @@ ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | -| `section_key` | *int* | :heavy_check_mark: | The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
| 9518 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `section_key` | *int* | :heavy_check_mark: | The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
| 9518 | +| `type` | [operations.GetCountriesLibraryQueryParamType](../../models/operations/getcountrieslibraryqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | \ No newline at end of file diff --git a/docs/models/operations/getgenreslibraryqueryparamtype.md b/docs/models/operations/getgenreslibraryqueryparamtype.md new file mode 100644 index 0000000..d77360e --- /dev/null +++ b/docs/models/operations/getgenreslibraryqueryparamtype.md @@ -0,0 +1,22 @@ +# GetGenresLibraryQueryParamType + +The type of media to retrieve or filter by. +1 = movie +2 = show +3 = season +4 = episode +E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + + + +## Values + +| Name | Value | +| --------- | --------- | +| `MOVIE` | 1 | +| `TV_SHOW` | 2 | +| `SEASON` | 3 | +| `EPISODE` | 4 | +| `AUDIO` | 8 | +| `ALBUM` | 9 | +| `TRACK` | 10 | \ No newline at end of file diff --git a/docs/models/operations/getgenreslibraryrequest.md b/docs/models/operations/getgenreslibraryrequest.md index 35e917e..0f6609f 100644 --- a/docs/models/operations/getgenreslibraryrequest.md +++ b/docs/models/operations/getgenreslibraryrequest.md @@ -3,6 +3,7 @@ ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | -| `section_key` | *int* | :heavy_check_mark: | The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
| 9518 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `section_key` | *int* | :heavy_check_mark: | The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
| 9518 | +| `type` | [operations.GetGenresLibraryQueryParamType](../../models/operations/getgenreslibraryqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | \ No newline at end of file diff --git a/docs/models/operations/getlibraryitemsqueryparamtype.md b/docs/models/operations/getlibraryitemsqueryparamtype.md index 3e72612..294dc8e 100644 --- a/docs/models/operations/getlibraryitemsqueryparamtype.md +++ b/docs/models/operations/getlibraryitemsqueryparamtype.md @@ -1,6 +1,6 @@ # GetLibraryItemsQueryParamType -The type of media to retrieve. +The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season diff --git a/docs/models/operations/getlibraryitemsrequest.md b/docs/models/operations/getlibraryitemsrequest.md index e862929..0e79463 100644 --- a/docs/models/operations/getlibraryitemsrequest.md +++ b/docs/models/operations/getlibraryitemsrequest.md @@ -3,12 +3,12 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `tag` | [operations.Tag](../../models/operations/tag.md) | :heavy_check_mark: | A key representing a specific tag within the section. | | -| `section_key` | *int* | :heavy_check_mark: | The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
| 9518 | -| `include_guids` | [Optional[operations.IncludeGuids]](../../models/operations/includeguids.md) | :heavy_minus_sign: | Adds the Guids object to the response
| 1 | -| `type` | [Optional[operations.GetLibraryItemsQueryParamType]](../../models/operations/getlibraryitemsqueryparamtype.md) | :heavy_minus_sign: | The type of media to retrieve.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | -| `include_meta` | [Optional[operations.GetLibraryItemsQueryParamIncludeMeta]](../../models/operations/getlibraryitemsqueryparamincludemeta.md) | :heavy_minus_sign: | Adds the Meta object to the response
| 1 | -| `x_plex_container_start` | *Optional[int]* | :heavy_minus_sign: | The index of the first item to return. If not specified, the first item will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 0
| 0 | -| `x_plex_container_size` | *Optional[int]* | :heavy_minus_sign: | The number of items to return. If not specified, all items will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 50
| 50 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tag` | [operations.Tag](../../models/operations/tag.md) | :heavy_check_mark: | A key representing a specific tag within the section. | | +| `type` | [operations.GetLibraryItemsQueryParamType](../../models/operations/getlibraryitemsqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | +| `section_key` | *int* | :heavy_check_mark: | The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
| 9518 | +| `include_guids` | [Optional[operations.IncludeGuids]](../../models/operations/includeguids.md) | :heavy_minus_sign: | Adds the Guids object to the response
| 1 | +| `include_meta` | [Optional[operations.GetLibraryItemsQueryParamIncludeMeta]](../../models/operations/getlibraryitemsqueryparamincludemeta.md) | :heavy_minus_sign: | Adds the Meta object to the response
| 1 | +| `x_plex_container_start` | *Optional[int]* | :heavy_minus_sign: | The index of the first item to return. If not specified, the first item will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 0
| 0 | +| `x_plex_container_size` | *Optional[int]* | :heavy_minus_sign: | The number of items to return. If not specified, all items will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 50
| 50 | \ No newline at end of file diff --git a/docs/models/operations/getmediametadatacountry.md b/docs/models/operations/getmediametadatacountry.md new file mode 100644 index 0000000..a7693a6 --- /dev/null +++ b/docs/models/operations/getmediametadatacountry.md @@ -0,0 +1,10 @@ +# GetMediaMetaDataCountry + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | +| `id` | *int* | :heavy_check_mark: | The unique country identifier. | 58591 | +| `filter_` | *str* | :heavy_check_mark: | The filter string for the country. | country=58591 | +| `tag` | *str* | :heavy_check_mark: | The country name. | United States of America | \ No newline at end of file diff --git a/docs/models/operations/getmediametadatadirector.md b/docs/models/operations/getmediametadatadirector.md new file mode 100644 index 0000000..0a3d3be --- /dev/null +++ b/docs/models/operations/getmediametadatadirector.md @@ -0,0 +1,13 @@ +# GetMediaMetaDataDirector + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | The unique role identifier. | 109501 | +| `filter_` | *str* | :heavy_check_mark: | The filter string for the role. | actor=109501 | +| `tag` | *str* | :heavy_check_mark: | The actor's name. | Bob Odenkirk | +| `tag_key` | *str* | :heavy_check_mark: | A key associated with the actor tag. | 5d77683254f42c001f8c3f69 | +| `role` | *Optional[str]* | :heavy_minus_sign: | The character name or role. | Jimmy McGill | +| `thumb` | *Optional[str]* | :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/getmediametadatagenre.md b/docs/models/operations/getmediametadatagenre.md new file mode 100644 index 0000000..345a328 --- /dev/null +++ b/docs/models/operations/getmediametadatagenre.md @@ -0,0 +1,10 @@ +# GetMediaMetaDataGenre + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | +| `id` | *int* | :heavy_check_mark: | The unique genre identifier. | 1057 | +| `filter_` | *str* | :heavy_check_mark: | The filter string for the genre. | genre=1057 | +| `tag` | *str* | :heavy_check_mark: | The genre name. | Crime | \ No newline at end of file diff --git a/docs/models/operations/getmediametadataimage.md b/docs/models/operations/getmediametadataimage.md new file mode 100644 index 0000000..8d2b026 --- /dev/null +++ b/docs/models/operations/getmediametadataimage.md @@ -0,0 +1,10 @@ +# GetMediaMetaDataImage + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | +| `alt` | *str* | :heavy_check_mark: | Alternate text for the image. | Better Call Saul | +| `type` | *str* | :heavy_check_mark: | The type of image (e.g., coverPoster, background, clearLogo). | coverPoster | +| `url` | *str* | :heavy_check_mark: | The URL of the image. | /library/metadata/44288/thumb/1736487993 | \ No newline at end of file diff --git a/docs/models/operations/getmediametadatalocation.md b/docs/models/operations/getmediametadatalocation.md new file mode 100644 index 0000000..24fc5a1 --- /dev/null +++ b/docs/models/operations/getmediametadatalocation.md @@ -0,0 +1,8 @@ +# GetMediaMetaDataLocation + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `path` | *str* | :heavy_check_mark: | The file path for the location. | /TV Shows/Better Call Saul | \ No newline at end of file diff --git a/docs/models/operations/getmediametadatamedia.md b/docs/models/operations/getmediametadatamedia.md new file mode 100644 index 0000000..0357a6a --- /dev/null +++ b/docs/models/operations/getmediametadatamedia.md @@ -0,0 +1,22 @@ +# GetMediaMetaDataMedia + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | Unique media identifier. | 387322 | +| `duration` | *int* | :heavy_check_mark: | Duration of the media in milliseconds. | 9610350 | +| `bitrate` | *int* | :heavy_check_mark: | Bitrate in bits per second. | 25512 | +| `width` | *int* | :heavy_check_mark: | Video width in pixels. | 3840 | +| `height` | *int* | :heavy_check_mark: | Video height in pixels. | 1602 | +| `aspect_ratio` | *float* | :heavy_check_mark: | Aspect ratio of the video. | 2.35 | +| `audio_channels` | *int* | :heavy_check_mark: | Number of audio channels. | 6 | +| `audio_codec` | *str* | :heavy_check_mark: | Audio codec used. | eac3 | +| `video_codec` | *str* | :heavy_check_mark: | Video codec used. | hevc | +| `video_resolution` | *str* | :heavy_check_mark: | Video resolution (e.g., 4k). | 4k | +| `container` | *str* | :heavy_check_mark: | File container type. | mkv | +| `video_frame_rate` | *str* | :heavy_check_mark: | Frame rate of the video (e.g., 24p). | 24p | +| `video_profile` | *str* | :heavy_check_mark: | Video profile (e.g., main 10). | main 10 | +| `has_voice_activity` | *bool* | :heavy_check_mark: | Indicates whether voice activity is detected. | false | +| `part` | List[[operations.GetMediaMetaDataPart](../../models/operations/getmediametadatapart.md)] | :heavy_check_mark: | An array of parts for this media item. | | \ No newline at end of file diff --git a/docs/models/operations/getmediametadatamediacontainer.md b/docs/models/operations/getmediametadatamediacontainer.md new file mode 100644 index 0000000..0c03516 --- /dev/null +++ b/docs/models/operations/getmediametadatamediacontainer.md @@ -0,0 +1,16 @@ +# GetMediaMetaDataMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `size` | *float* | :heavy_check_mark: | N/A | 50 | +| `allow_sync` | *bool* | :heavy_check_mark: | Indicates whether syncing is allowed. | false | +| `identifier` | *str* | :heavy_check_mark: | An plugin identifier for the media container. | com.plexapp.plugins.library | +| `library_section_id` | *int* | :heavy_check_mark: | The unique identifier for the library section. | 2 | +| `library_section_title` | *str* | :heavy_check_mark: | The title of the library section. | TV Series | +| `media_tag_prefix` | *str* | :heavy_check_mark: | The prefix used for media tag resource paths. | /system/bundle/media/flags/ | +| `media_tag_version` | *int* | :heavy_check_mark: | The version number for media tags. | 1734362201 | +| `metadata` | List[[operations.GetMediaMetaDataMetadata](../../models/operations/getmediametadatametadata.md)] | :heavy_check_mark: | An array of metadata items. | | +| `library_section_uuid` | *Optional[str]* | :heavy_minus_sign: | The universally unique identifier for the library section. | e69655a2-ef48-4aba-bb19-0cc34d1e7d36 | \ No newline at end of file diff --git a/docs/models/operations/getmetadatabyratingkeymetadata.md b/docs/models/operations/getmediametadatametadata.md similarity index 54% rename from docs/models/operations/getmetadatabyratingkeymetadata.md rename to docs/models/operations/getmediametadatametadata.md index 0c977e3..4ed1425 100644 --- a/docs/models/operations/getmetadatabyratingkeymetadata.md +++ b/docs/models/operations/getmediametadatametadata.md @@ -1,45 +1,66 @@ -# GetMetaDataByRatingKeyMetadata +# GetMediaMetaDataMetadata ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `rating_key` | *Optional[str]* | :heavy_minus_sign: | N/A | 17 | -| `key` | *Optional[str]* | :heavy_minus_sign: | N/A | /library/metadata/17 | -| `guid` | *Optional[str]* | :heavy_minus_sign: | N/A | plex://movie/5d77683f6f4521001ea9dc53 | -| `studio` | *Optional[str]* | :heavy_minus_sign: | N/A | Universal Pictures | -| `type` | *Optional[str]* | :heavy_minus_sign: | N/A | movie | -| `title` | *Optional[str]* | :heavy_minus_sign: | N/A | Serenity | -| `library_section_title` | *Optional[str]* | :heavy_minus_sign: | N/A | Movies | -| `library_section_id` | *Optional[int]* | :heavy_minus_sign: | N/A | 1 | -| `library_section_key` | *Optional[str]* | :heavy_minus_sign: | N/A | /library/sections/1 | -| `grandparent_title` | *Optional[str]* | :heavy_minus_sign: | The name of the album artist for the track when audio, and the name of the TV show for the episode when video. | | -| `parent_title` | *Optional[str]* | :heavy_minus_sign: | The name of the album for the track when audio, and the name of the season for the episode when TV show. | | -| `original_title` | *Optional[str]* | :heavy_minus_sign: | The orginal untranslated name of the media item when non-english. | | -| `index` | *Optional[int]* | :heavy_minus_sign: | The index starting from 0 of this media item in the MetaData array. | | -| `parent_index` | *Optional[int]* | :heavy_minus_sign: | The parent index starting from 0 of this media item in the parent MetaData array. | | -| `content_rating` | *Optional[str]* | :heavy_minus_sign: | N/A | PG-13 | -| `summary` | *Optional[str]* | :heavy_minus_sign: | N/A | Serenity continues the story of the TV series it was based upon ("Firefly"). River Tam had a secret - one in which she's not even aware - so dangerous, no one's safe, as an Alliance operative's sent to capture her, and all others are considered irrelevant to his job. | -| `rating` | *Optional[float]* | :heavy_minus_sign: | N/A | 8.2 | -| `audience_rating` | *Optional[float]* | :heavy_minus_sign: | N/A | 9.1 | -| `year` | *Optional[int]* | :heavy_minus_sign: | N/A | 2005 | -| `tagline` | *Optional[str]* | :heavy_minus_sign: | N/A | They aim to misbehave. | -| `thumb` | *Optional[str]* | :heavy_minus_sign: | N/A | /library/metadata/17/thumb/1705637165 | -| `art` | *Optional[str]* | :heavy_minus_sign: | N/A | /library/metadata/17/art/1705637165 | -| `duration` | *Optional[int]* | :heavy_minus_sign: | N/A | 141417 | -| `originally_available_at` | [datetime](https://docs.python.org/3/library/datetime.html#datetime-objects) | :heavy_minus_sign: | N/A | 2005-09-29 00:00:00 +0000 UTC | -| `added_at` | *Optional[int]* | :heavy_minus_sign: | N/A | 1705637164 | -| `updated_at` | *Optional[int]* | :heavy_minus_sign: | N/A | 1705637165 | -| `audience_rating_image` | *Optional[str]* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright | -| `has_premium_primary_extra` | *Optional[str]* | :heavy_minus_sign: | N/A | 1 | -| `rating_image` | *Optional[str]* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.ripe | -| `media` | List[[operations.GetMetaDataByRatingKeyMedia](../../models/operations/getmetadatabyratingkeymedia.md)] | :heavy_minus_sign: | N/A | | -| `genre` | List[[operations.GetMetaDataByRatingKeyGenre](../../models/operations/getmetadatabyratingkeygenre.md)] | :heavy_minus_sign: | N/A | | -| `country` | List[[operations.GetMetaDataByRatingKeyCountry](../../models/operations/getmetadatabyratingkeycountry.md)] | :heavy_minus_sign: | N/A | | -| `guids` | List[[operations.Guids](../../models/operations/guids.md)] | :heavy_minus_sign: | N/A | | -| `ratings` | List[[operations.Ratings](../../models/operations/ratings.md)] | :heavy_minus_sign: | N/A | | -| `director` | List[[operations.GetMetaDataByRatingKeyDirector](../../models/operations/getmetadatabyratingkeydirector.md)] | :heavy_minus_sign: | N/A | | -| `writer` | List[[operations.GetMetaDataByRatingKeyWriter](../../models/operations/getmetadatabyratingkeywriter.md)] | :heavy_minus_sign: | N/A | | -| `role` | List[[operations.GetMetaDataByRatingKeyRole](../../models/operations/getmetadatabyratingkeyrole.md)] | :heavy_minus_sign: | N/A | | -| `producer` | List[[operations.Producer](../../models/operations/producer.md)] | :heavy_minus_sign: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `rating_key` | *str* | :heavy_check_mark: | The rating key of the metadata item. | 44288 | +| `key` | *str* | :heavy_check_mark: | The API key to access metadata details. | /library/metadata/44288/children | +| `guid` | *str* | :heavy_check_mark: | The globally unique identifier for the item. | plex://show/5d9c08254eefaa001f5d6dcb | +| `type` | *str* | :heavy_check_mark: | The type of content (e.g., show, movie). | show | +| `title` | *str* | :heavy_check_mark: | The title of the content. | Better Call Saul | +| `library_section_title` | *str* | :heavy_check_mark: | The title of the library section. | TV Series | +| `library_section_id` | *int* | :heavy_check_mark: | The ID of the library section. | 2 | +| `library_section_key` | *str* | :heavy_check_mark: | The key of the library section. | /library/sections/2 | +| `content_rating` | *str* | :heavy_check_mark: | The content rating (e.g., TV-MA). | TV-MA | +| `summary` | *str* | :heavy_check_mark: | A summary of the content. | 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. | +| `audience_rating` | *float* | :heavy_check_mark: | The audience rating for the content. | 8.7 | +| `year` | *int* | :heavy_check_mark: | The release year. | 2015 | +| `thumb` | *str* | :heavy_check_mark: | URL of the thumbnail image. | /library/metadata/44288/thumb/1736487993 | +| `art` | *str* | :heavy_check_mark: | URL of the art image. | /library/metadata/44288/art/1736487993 | +| `duration` | *int* | :heavy_check_mark: | Duration of the content in milliseconds. | 2700000 | +| `originally_available_at` | [datetime](https://docs.python.org/3/library/datetime.html#datetime-objects) | :heavy_check_mark: | The original release date. | 2015-02-08 | +| `added_at` | *int* | :heavy_check_mark: | Unix timestamp when the item was added. | 1625505101 | +| `updated_at` | *int* | :heavy_check_mark: | Unix timestamp when the item was last updated. | 1736487993 | +| `audience_rating_image` | *str* | :heavy_check_mark: | The URL for the audience rating image. | themoviedb://image.rating | +| `image` | List[[operations.GetMediaMetaDataImage](../../models/operations/getmediametadataimage.md)] | :heavy_check_mark: | An array of image objects. | | +| `ultra_blur_colors` | [operations.GetMediaMetaDataUltraBlurColors](../../models/operations/getmediametadataultrablurcolors.md) | :heavy_check_mark: | N/A | | +| `guids` | List[[operations.Guids](../../models/operations/guids.md)] | :heavy_check_mark: | An array of GUID objects. | | +| `rating` | List[[operations.Rating](../../models/operations/rating.md)] | :heavy_check_mark: | An array of rating objects. | | +| `parent_rating_key` | *Optional[str]* | :heavy_minus_sign: | The rating key of the parent of this metadata item. | 48047 | +| `grandparent_rating_key` | *Optional[str]* | :heavy_minus_sign: | The rating key of the grandparent of this metadata item. | 45520 | +| `parent_guid` | *Optional[str]* | :heavy_minus_sign: | A GUID identifying the parent entity (e.g., season) for the item. | plex://season/618b89208dde18df707ad15c | +| `grandparent_guid` | *Optional[str]* | :heavy_minus_sign: | A GUID identifying the grandparent entity (e.g., show). | plex://show/5e16253691c20300412003a8 | +| `grandparent_slug` | *Optional[str]* | :heavy_minus_sign: | A URL-friendly identifier (slug) for the grandparent entity. | alice-in-borderland-2020 | +| `grandparent_key` | *Optional[str]* | :heavy_minus_sign: | A key identifying the grandparent metadata in the library. | /library/metadata/45520 | +| `parent_key` | *Optional[str]* | :heavy_minus_sign: | A key identifying the parent metadata in the library. | /library/metadata/48047 | +| `slug` | *Optional[str]* | :heavy_minus_sign: | A URL-friendly identifier for the item. | better-call-saul | +| `studio` | *Optional[str]* | :heavy_minus_sign: | The studio that produced the content. | Sony Pictures Television | +| `original_title` | *Optional[str]* | :heavy_minus_sign: | The original title of the content. | Wicked: Part I | +| `index` | *Optional[int]* | :heavy_minus_sign: | The index or order of the item. | 1 | +| `grandparent_title` | *Optional[str]* | :heavy_minus_sign: | The title of the grandparent entity (typically the show's title). | Alice in Borderland | +| `parent_title` | *Optional[str]* | :heavy_minus_sign: | The title of the parent entity (typically the season's title). | Season 2 | +| `view_count` | *Optional[int]* | :heavy_minus_sign: | The number of times the item has been viewed. | 4 | +| `skip_count` | *Optional[int]* | :heavy_minus_sign: | The number of times the item has been skipped. | 1 | +| `last_viewed_at` | *Optional[int]* | :heavy_minus_sign: | Unix timestamp of when the item was last viewed. | 1625764795 | +| `tagline` | *Optional[str]* | :heavy_minus_sign: | The tagline of the content. | Make the call | +| `chapter_source` | *Optional[str]* | :heavy_minus_sign: | N/A | media | +| `primary_extra_key` | *Optional[str]* | :heavy_minus_sign: | N/A | /library/metadata/134704 | +| `theme` | *Optional[str]* | :heavy_minus_sign: | URL of the theme image. | /library/metadata/44288/theme/1736487993 | +| `leaf_count` | *Optional[int]* | :heavy_minus_sign: | The total number of episodes (or leaves). | 63 | +| `viewed_leaf_count` | *Optional[int]* | :heavy_minus_sign: | The number of episodes that have been viewed. | 4 | +| `child_count` | *Optional[int]* | :heavy_minus_sign: | The number of child items. | 6 | +| `parent_index` | *Optional[int]* | :heavy_minus_sign: | The index number of the parent entity, which could indicate its order or position. | 2 | +| `parent_thumb` | *Optional[str]* | :heavy_minus_sign: | The URL of the parent's thumbnail image. | /library/metadata/48047/thumb/1671800243 | +| `grandparent_thumb` | *Optional[str]* | :heavy_minus_sign: | The URL of the grandparent's thumbnail image. | /library/metadata/45520/thumb/1736488003 | +| `grandparent_art` | *Optional[str]* | :heavy_minus_sign: | The URL of the grandparent's art image. | /library/metadata/45520/art/1736488003 | +| `media` | List[[operations.GetMediaMetaDataMedia](../../models/operations/getmediametadatamedia.md)] | :heavy_minus_sign: | N/A | | +| `genre` | List[[operations.GetMediaMetaDataGenre](../../models/operations/getmediametadatagenre.md)] | :heavy_minus_sign: | An array of genre tags. | | +| `country` | List[[operations.GetMediaMetaDataCountry](../../models/operations/getmediametadatacountry.md)] | :heavy_minus_sign: | An array of country tags. | | +| `role` | List[[operations.GetMediaMetaDataRole](../../models/operations/getmediametadatarole.md)] | :heavy_minus_sign: | An array of Actor roles. | | +| `director` | List[[operations.GetMediaMetaDataDirector](../../models/operations/getmediametadatadirector.md)] | :heavy_minus_sign: | An array of Director roles. | | +| `writer` | List[[operations.GetMediaMetaDataWriter](../../models/operations/getmediametadatawriter.md)] | :heavy_minus_sign: | An array of Writer roles. | | +| `producer` | List[[operations.Producer](../../models/operations/producer.md)] | :heavy_minus_sign: | An array of Writer roles. | | +| `similar` | List[[operations.Similar](../../models/operations/similar.md)] | :heavy_minus_sign: | An array of similar content objects. | | +| `location` | List[[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/getmediametadatapart.md b/docs/models/operations/getmediametadatapart.md new file mode 100644 index 0000000..bad432e --- /dev/null +++ b/docs/models/operations/getmediametadatapart.md @@ -0,0 +1,18 @@ +# GetMediaMetaDataPart + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | Unique part identifier. | 418385 | +| `key` | *str* | :heavy_check_mark: | Key to access this part. | /library/parts/418385/1735864239/file.mkv | +| `duration` | *int* | :heavy_check_mark: | Duration of the part in milliseconds. | 9610350 | +| `file` | *str* | :heavy_check_mark: | File path for the part. | /mnt/Movies_1/W/Wicked (2024).mkv | +| `size` | *int* | :heavy_check_mark: | File size in bytes. | 30649952104 | +| `container` | *str* | :heavy_check_mark: | Container format of the part. | mkv | +| `video_profile` | *str* | :heavy_check_mark: | Video profile for the part. | main 10 | +| `stream` | List[[operations.GetMediaMetaDataStream](../../models/operations/getmediametadatastream.md)] | :heavy_check_mark: | An array of streams for this part. | | +| `accessible` | *Optional[bool]* | :heavy_minus_sign: | Indicates if the part is accessible. | true | +| `exists` | *Optional[bool]* | :heavy_minus_sign: | Indicates if the part exists. | true | +| `indexes` | *Optional[str]* | :heavy_minus_sign: | N/A | sd | \ No newline at end of file diff --git a/docs/models/operations/getmediametadatarequest.md b/docs/models/operations/getmediametadatarequest.md new file mode 100644 index 0000000..9dfc498 --- /dev/null +++ b/docs/models/operations/getmediametadatarequest.md @@ -0,0 +1,21 @@ +# GetMediaMetaDataRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | +| `rating_key` | *int* | :heavy_check_mark: | the id of the library item to return the children of. | 9518 | +| `include_concerts` | *Optional[bool]* | :heavy_minus_sign: | Include concerts data if set to true. | true | +| `include_extras` | *Optional[bool]* | :heavy_minus_sign: | Include extra content (e.g. bonus features). | true | +| `include_on_deck` | *Optional[bool]* | :heavy_minus_sign: | Include on-deck items. | true | +| `include_popular_leaves` | *Optional[bool]* | :heavy_minus_sign: | Include popular leaves (episodes/chapters). | true | +| `include_preferences` | *Optional[bool]* | :heavy_minus_sign: | Include preferences information. | true | +| `include_reviews` | *Optional[bool]* | :heavy_minus_sign: | Include reviews for the content. | true | +| `include_chapters` | *Optional[bool]* | :heavy_minus_sign: | Include chapter details. | true | +| `include_stations` | *Optional[bool]* | :heavy_minus_sign: | Include station data. | true | +| `include_external_media` | *Optional[bool]* | :heavy_minus_sign: | Include external media data. | true | +| `async_augment_metadata` | *Optional[bool]* | :heavy_minus_sign: | Trigger asynchronous metadata augmentation. | true | +| `async_check_files` | *Optional[bool]* | :heavy_minus_sign: | Trigger asynchronous file checking. | true | +| `async_refresh_analysis` | *Optional[bool]* | :heavy_minus_sign: | Trigger asynchronous refresh of analysis. | true | +| `async_refresh_local_media_agent` | *Optional[bool]* | :heavy_minus_sign: | Trigger asynchronous refresh of the local media agent. | true | \ No newline at end of file diff --git a/docs/models/operations/getmediametadataresponse.md b/docs/models/operations/getmediametadataresponse.md new file mode 100644 index 0000000..a0d118a --- /dev/null +++ b/docs/models/operations/getmediametadataresponse.md @@ -0,0 +1,11 @@ +# GetMediaMetaDataResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `content_type` | *str* | :heavy_check_mark: | HTTP response content type for this operation | +| `status_code` | *int* | :heavy_check_mark: | HTTP response status code for this operation | +| `raw_response` | [httpx.Response](https://www.python-httpx.org/api/#response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [Optional[operations.GetMediaMetaDataResponseBody]](../../models/operations/getmediametadataresponsebody.md) | :heavy_minus_sign: | The metadata of the library item. | \ No newline at end of file diff --git a/docs/models/operations/getmediametadataresponsebody.md b/docs/models/operations/getmediametadataresponsebody.md new file mode 100644 index 0000000..76711ae --- /dev/null +++ b/docs/models/operations/getmediametadataresponsebody.md @@ -0,0 +1,10 @@ +# GetMediaMetaDataResponseBody + +The metadata of the library item. + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| `media_container` | [Optional[operations.GetMediaMetaDataMediaContainer]](../../models/operations/getmediametadatamediacontainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/getmediametadatarole.md b/docs/models/operations/getmediametadatarole.md new file mode 100644 index 0000000..a248ba6 --- /dev/null +++ b/docs/models/operations/getmediametadatarole.md @@ -0,0 +1,13 @@ +# GetMediaMetaDataRole + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | The unique role identifier. | 109501 | +| `filter_` | *str* | :heavy_check_mark: | The filter string for the role. | actor=109501 | +| `tag` | *str* | :heavy_check_mark: | The actor's name. | Bob Odenkirk | +| `tag_key` | *str* | :heavy_check_mark: | A key associated with the actor tag. | 5d77683254f42c001f8c3f69 | +| `role` | *Optional[str]* | :heavy_minus_sign: | The character name or role. | Jimmy McGill | +| `thumb` | *Optional[str]* | :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/getmediametadatastream.md b/docs/models/operations/getmediametadatastream.md new file mode 100644 index 0000000..8645aaf --- /dev/null +++ b/docs/models/operations/getmediametadatastream.md @@ -0,0 +1,53 @@ +# GetMediaMetaDataStream + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | Unique stream identifier. | 1002625 | +| `stream_type` | *int* | :heavy_check_mark: | Stream type (1=video, 2=audio, 3=subtitle). | 1 | +| `codec` | *str* | :heavy_check_mark: | Codec used by the stream. | hevc | +| `index` | *int* | :heavy_check_mark: | Index of the stream. | 0 | +| `bitrate` | *int* | :heavy_check_mark: | Bitrate of the stream. | 24743 | +| `language` | *str* | :heavy_check_mark: | Language of the stream. | English | +| `language_tag` | *str* | :heavy_check_mark: | Language tag (e.g., en). | en | +| `language_code` | *str* | :heavy_check_mark: | ISO language code. | eng | +| `display_title` | *str* | :heavy_check_mark: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | +| `extended_display_title` | *str* | :heavy_check_mark: | Extended display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | +| `default` | *Optional[bool]* | :heavy_minus_sign: | Indicates if this stream is default. | true | +| `dovibl_compat_id` | *Optional[int]* | :heavy_minus_sign: | Dolby Vision BL compatibility ID. | 1 | +| `dovibl_present` | *Optional[bool]* | :heavy_minus_sign: | Indicates if Dolby Vision BL is present. | true | +| `doviel_present` | *Optional[bool]* | :heavy_minus_sign: | Indicates if Dolby Vision EL is present. | false | +| `dovi_level` | *Optional[int]* | :heavy_minus_sign: | Dolby Vision level. | 6 | +| `dovi_present` | *Optional[bool]* | :heavy_minus_sign: | Indicates if Dolby Vision is present. | true | +| `dovi_profile` | *Optional[int]* | :heavy_minus_sign: | Dolby Vision profile. | 8 | +| `dovirpu_present` | *Optional[bool]* | :heavy_minus_sign: | Indicates if Dolby Vision RPU is present. | true | +| `dovi_version` | *Optional[str]* | :heavy_minus_sign: | Dolby Vision version. | 1.0 | +| `bit_depth` | *Optional[int]* | :heavy_minus_sign: | Bit depth of the video stream. | 10 | +| `chroma_location` | *Optional[str]* | :heavy_minus_sign: | Chroma sample location. | topleft | +| `chroma_subsampling` | *Optional[str]* | :heavy_minus_sign: | Chroma subsampling format. | 4:2:0 | +| `coded_height` | *Optional[int]* | :heavy_minus_sign: | Coded video height. | 1608 | +| `coded_width` | *Optional[int]* | :heavy_minus_sign: | Coded video width. | 3840 | +| `color_primaries` | *Optional[str]* | :heavy_minus_sign: | Color primaries used. | bt2020 | +| `color_range` | *Optional[str]* | :heavy_minus_sign: | Color range (e.g., tv). | tv | +| `color_space` | *Optional[str]* | :heavy_minus_sign: | Color space. | bt2020nc | +| `color_trc` | *Optional[str]* | :heavy_minus_sign: | Color transfer characteristics. | smpte2084 | +| `frame_rate` | *Optional[float]* | :heavy_minus_sign: | Frame rate of the stream. | 23.976 | +| `height` | *Optional[int]* | :heavy_minus_sign: | Height of the video stream. | 1602 | +| `level` | *Optional[int]* | :heavy_minus_sign: | Video level. | 150 | +| `original` | *Optional[bool]* | :heavy_minus_sign: | Indicates if this is the original stream. | true | +| `has_scaling_matrix` | *Optional[bool]* | :heavy_minus_sign: | N/A | false | +| `profile` | *Optional[str]* | :heavy_minus_sign: | Video profile. | main 10 | +| `scan_type` | *Optional[str]* | :heavy_minus_sign: | N/A | progressive | +| `ref_frames` | *Optional[int]* | :heavy_minus_sign: | Number of reference frames. | 1 | +| `width` | *Optional[int]* | :heavy_minus_sign: | Width of the video stream. | 3840 | +| `selected` | *Optional[bool]* | :heavy_minus_sign: | Indicates if this stream is selected (applicable for audio streams). | true | +| `forced` | *Optional[bool]* | :heavy_minus_sign: | N/A | true | +| `channels` | *Optional[int]* | :heavy_minus_sign: | Number of audio channels (for audio streams). | 6 | +| `audio_channel_layout` | *Optional[str]* | :heavy_minus_sign: | Audio channel layout. | 5.1(side) | +| `sampling_rate` | *Optional[int]* | :heavy_minus_sign: | Sampling rate for the audio stream. | 48000 | +| `can_auto_sync` | *Optional[bool]* | :heavy_minus_sign: | Indicates if the stream can auto-sync. | false | +| `hearing_impaired` | *Optional[bool]* | :heavy_minus_sign: | Indicates if the stream is for the hearing impaired. | true | +| `dub` | *Optional[bool]* | :heavy_minus_sign: | Indicates if the stream is a dub. | true | +| `title` | *Optional[str]* | :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/getmediametadataultrablurcolors.md b/docs/models/operations/getmediametadataultrablurcolors.md new file mode 100644 index 0000000..27fd896 --- /dev/null +++ b/docs/models/operations/getmediametadataultrablurcolors.md @@ -0,0 +1,11 @@ +# GetMediaMetaDataUltraBlurColors + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | +| `top_left` | *str* | :heavy_check_mark: | The top-left color value. | 11333a | +| `top_right` | *str* | :heavy_check_mark: | The top-right color value. | 1d2721 | +| `bottom_right` | *str* | :heavy_check_mark: | The bottom-right color value. | 5c451d | +| `bottom_left` | *str* | :heavy_check_mark: | The bottom-left color value. | 372c10 | \ No newline at end of file diff --git a/docs/models/operations/getmediametadatawriter.md b/docs/models/operations/getmediametadatawriter.md new file mode 100644 index 0000000..d41b94b --- /dev/null +++ b/docs/models/operations/getmediametadatawriter.md @@ -0,0 +1,13 @@ +# GetMediaMetaDataWriter + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | The unique role identifier. | 109501 | +| `filter_` | *str* | :heavy_check_mark: | The filter string for the role. | actor=109501 | +| `tag` | *str* | :heavy_check_mark: | The actor's name. | Bob Odenkirk | +| `tag_key` | *str* | :heavy_check_mark: | A key associated with the actor tag. | 5d77683254f42c001f8c3f69 | +| `role` | *Optional[str]* | :heavy_minus_sign: | The character name or role. | Jimmy McGill | +| `thumb` | *Optional[str]* | :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/getmetadatabyratingkeycountry.md b/docs/models/operations/getmetadatabyratingkeycountry.md deleted file mode 100644 index 8781b56..0000000 --- a/docs/models/operations/getmetadatabyratingkeycountry.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetMetaDataByRatingKeyCountry - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -| `id` | *Optional[int]* | :heavy_minus_sign: | N/A | 116 | -| `filter_` | *Optional[str]* | :heavy_minus_sign: | N/A | country=116 | -| `tag` | *Optional[str]* | :heavy_minus_sign: | N/A | United States of America | \ No newline at end of file diff --git a/docs/models/operations/getmetadatabyratingkeydirector.md b/docs/models/operations/getmetadatabyratingkeydirector.md deleted file mode 100644 index e8de61b..0000000 --- a/docs/models/operations/getmetadatabyratingkeydirector.md +++ /dev/null @@ -1,12 +0,0 @@ -# GetMetaDataByRatingKeyDirector - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `id` | *Optional[int]* | :heavy_minus_sign: | N/A | 130 | -| `filter_` | *Optional[str]* | :heavy_minus_sign: | N/A | director=130 | -| `tag` | *Optional[str]* | :heavy_minus_sign: | N/A | Joss Whedon | -| `tag_key` | *Optional[str]* | :heavy_minus_sign: | N/A | 5d776828880197001ec90e8f | -| `thumb` | *Optional[str]* | :heavy_minus_sign: | N/A | https://metadata-static.plex.tv/people/5d776828880197001ec90e8f.jpg | \ No newline at end of file diff --git a/docs/models/operations/getmetadatabyratingkeygenre.md b/docs/models/operations/getmetadatabyratingkeygenre.md deleted file mode 100644 index 81bedd3..0000000 --- a/docs/models/operations/getmetadatabyratingkeygenre.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetMetaDataByRatingKeyGenre - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `id` | *Optional[int]* | :heavy_minus_sign: | N/A | 184 | -| `filter_` | *Optional[str]* | :heavy_minus_sign: | N/A | genre=184 | -| `tag` | *Optional[str]* | :heavy_minus_sign: | N/A | Thriller | \ No newline at end of file diff --git a/docs/models/operations/getmetadatabyratingkeymedia.md b/docs/models/operations/getmetadatabyratingkeymedia.md deleted file mode 100644 index 0947452..0000000 --- a/docs/models/operations/getmetadatabyratingkeymedia.md +++ /dev/null @@ -1,24 +0,0 @@ -# GetMetaDataByRatingKeyMedia - - -## Fields - -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| `id` | *Optional[int]* | :heavy_minus_sign: | N/A | 15 | -| `duration` | *Optional[int]* | :heavy_minus_sign: | N/A | 141417 | -| `bitrate` | *Optional[int]* | :heavy_minus_sign: | N/A | 2278 | -| `width` | *Optional[int]* | :heavy_minus_sign: | N/A | 1920 | -| `height` | *Optional[int]* | :heavy_minus_sign: | N/A | 814 | -| `aspect_ratio` | *Optional[float]* | :heavy_minus_sign: | N/A | 2.35 | -| `audio_channels` | *Optional[int]* | :heavy_minus_sign: | N/A | 2 | -| `audio_codec` | *Optional[str]* | :heavy_minus_sign: | N/A | aac | -| `video_codec` | *Optional[str]* | :heavy_minus_sign: | N/A | h264 | -| `video_resolution` | *Optional[str]* | :heavy_minus_sign: | N/A | 1080 | -| `container` | *Optional[str]* | :heavy_minus_sign: | N/A | mp4 | -| `video_frame_rate` | *Optional[str]* | :heavy_minus_sign: | N/A | 24p | -| `optimized_for_streaming` | *Optional[int]* | :heavy_minus_sign: | N/A | 0 | -| `audio_profile` | *Optional[str]* | :heavy_minus_sign: | N/A | lc | -| `has64bit_offsets` | *Optional[bool]* | :heavy_minus_sign: | N/A | false | -| `video_profile` | *Optional[str]* | :heavy_minus_sign: | N/A | high | -| `part` | List[[operations.GetMetaDataByRatingKeyPart](../../models/operations/getmetadatabyratingkeypart.md)] | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/getmetadatabyratingkeymediacontainer.md b/docs/models/operations/getmetadatabyratingkeymediacontainer.md deleted file mode 100644 index e2518c6..0000000 --- a/docs/models/operations/getmetadatabyratingkeymediacontainer.md +++ /dev/null @@ -1,16 +0,0 @@ -# GetMetaDataByRatingKeyMediaContainer - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `size` | *Optional[int]* | :heavy_minus_sign: | N/A | 1 | -| `allow_sync` | *Optional[bool]* | :heavy_minus_sign: | N/A | true | -| `identifier` | *Optional[str]* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | -| `library_section_id` | *Optional[int]* | :heavy_minus_sign: | N/A | 1 | -| `library_section_title` | *Optional[str]* | :heavy_minus_sign: | N/A | Movies | -| `library_section_uuid` | *Optional[str]* | :heavy_minus_sign: | N/A | cfc899d7-3000-46f6-8489-b9592714ada5 | -| `media_tag_prefix` | *Optional[str]* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ | -| `media_tag_version` | *Optional[int]* | :heavy_minus_sign: | N/A | 1698860922 | -| `metadata` | List[[operations.GetMetaDataByRatingKeyMetadata](../../models/operations/getmetadatabyratingkeymetadata.md)] | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/getmetadatabyratingkeypart.md b/docs/models/operations/getmetadatabyratingkeypart.md deleted file mode 100644 index 37b4ccb..0000000 --- a/docs/models/operations/getmetadatabyratingkeypart.md +++ /dev/null @@ -1,18 +0,0 @@ -# GetMetaDataByRatingKeyPart - - -## Fields - -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| `id` | *Optional[int]* | :heavy_minus_sign: | N/A | 15 | -| `key` | *Optional[str]* | :heavy_minus_sign: | N/A | /library/parts/15/1705637151/file.mp4 | -| `duration` | *Optional[int]* | :heavy_minus_sign: | N/A | 141417 | -| `file` | *Optional[str]* | :heavy_minus_sign: | N/A | /movies/Serenity (2005)/Serenity (2005).mp4 | -| `size` | *Optional[int]* | :heavy_minus_sign: | N/A | 40271948 | -| `audio_profile` | *Optional[str]* | :heavy_minus_sign: | N/A | lc | -| `container` | *Optional[str]* | :heavy_minus_sign: | N/A | mp4 | -| `has64bit_offsets` | *Optional[bool]* | :heavy_minus_sign: | N/A | false | -| `optimized_for_streaming` | *Optional[bool]* | :heavy_minus_sign: | N/A | false | -| `video_profile` | *Optional[str]* | :heavy_minus_sign: | N/A | high | -| `stream` | List[[operations.GetMetaDataByRatingKeyStream](../../models/operations/getmetadatabyratingkeystream.md)] | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/getmetadatabyratingkeyrequest.md b/docs/models/operations/getmetadatabyratingkeyrequest.md deleted file mode 100644 index 0e283ab..0000000 --- a/docs/models/operations/getmetadatabyratingkeyrequest.md +++ /dev/null @@ -1,8 +0,0 @@ -# GetMetaDataByRatingKeyRequest - - -## Fields - -| Field | Type | Required | Description | Example | -| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | -| `rating_key` | *int* | :heavy_check_mark: | the id of the library item to return the children of. | 9518 | \ No newline at end of file diff --git a/docs/models/operations/getmetadatabyratingkeyresponse.md b/docs/models/operations/getmetadatabyratingkeyresponse.md deleted file mode 100644 index 08f84d7..0000000 --- a/docs/models/operations/getmetadatabyratingkeyresponse.md +++ /dev/null @@ -1,11 +0,0 @@ -# GetMetaDataByRatingKeyResponse - - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | -| `content_type` | *str* | :heavy_check_mark: | HTTP response content type for this operation | -| `status_code` | *int* | :heavy_check_mark: | HTTP response status code for this operation | -| `raw_response` | [httpx.Response](https://www.python-httpx.org/api/#response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | -| `object` | [Optional[operations.GetMetaDataByRatingKeyResponseBody]](../../models/operations/getmetadatabyratingkeyresponsebody.md) | :heavy_minus_sign: | The metadata of the library item. | \ No newline at end of file diff --git a/docs/models/operations/getmetadatabyratingkeyresponsebody.md b/docs/models/operations/getmetadatabyratingkeyresponsebody.md deleted file mode 100644 index a7d34c6..0000000 --- a/docs/models/operations/getmetadatabyratingkeyresponsebody.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetMetaDataByRatingKeyResponseBody - -The metadata of the library item. - - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| `media_container` | [Optional[operations.GetMetaDataByRatingKeyMediaContainer]](../../models/operations/getmetadatabyratingkeymediacontainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/getmetadatabyratingkeyrole.md b/docs/models/operations/getmetadatabyratingkeyrole.md deleted file mode 100644 index e3c5bd9..0000000 --- a/docs/models/operations/getmetadatabyratingkeyrole.md +++ /dev/null @@ -1,13 +0,0 @@ -# GetMetaDataByRatingKeyRole - - -## Fields - -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| `id` | *Optional[int]* | :heavy_minus_sign: | N/A | 220 | -| `filter_` | *Optional[str]* | :heavy_minus_sign: | N/A | actor=220 | -| `tag` | *Optional[str]* | :heavy_minus_sign: | N/A | Dennis Keiffer | -| `tag_key` | *Optional[str]* | :heavy_minus_sign: | N/A | 5d77683554f42c001f8c4708 | -| `role` | *Optional[str]* | :heavy_minus_sign: | N/A | Bar Guy (uncredited) | -| `thumb` | *Optional[str]* | :heavy_minus_sign: | N/A | https://metadata-static.plex.tv/6/people/648e9a7ea1d537bccfcd7615134b78ce.jpg | \ No newline at end of file diff --git a/docs/models/operations/getmetadatabyratingkeystream.md b/docs/models/operations/getmetadatabyratingkeystream.md deleted file mode 100644 index a1f15e5..0000000 --- a/docs/models/operations/getmetadatabyratingkeystream.md +++ /dev/null @@ -1,39 +0,0 @@ -# GetMetaDataByRatingKeyStream - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -| `id` | *Optional[int]* | :heavy_minus_sign: | N/A | 29 | -| `stream_type` | *Optional[int]* | :heavy_minus_sign: | N/A | 2 | -| `default` | *Optional[bool]* | :heavy_minus_sign: | N/A | true | -| `codec` | *Optional[str]* | :heavy_minus_sign: | N/A | aac | -| `index` | *Optional[int]* | :heavy_minus_sign: | N/A | 0 | -| `bitrate` | *Optional[int]* | :heavy_minus_sign: | N/A | 128 | -| `bit_depth` | *Optional[int]* | :heavy_minus_sign: | N/A | 8 | -| `chroma_location` | *Optional[str]* | :heavy_minus_sign: | N/A | left | -| `chroma_subsampling` | *Optional[str]* | :heavy_minus_sign: | N/A | 14520 | -| `coded_height` | *Optional[int]* | :heavy_minus_sign: | N/A | 816 | -| `coded_width` | *Optional[int]* | :heavy_minus_sign: | N/A | 1920 | -| `color_primaries` | *Optional[str]* | :heavy_minus_sign: | N/A | bt709 | -| `color_range` | *Optional[str]* | :heavy_minus_sign: | N/A | tv | -| `color_space` | *Optional[str]* | :heavy_minus_sign: | N/A | bt709 | -| `color_trc` | *Optional[str]* | :heavy_minus_sign: | N/A | bt709 | -| `frame_rate` | *Optional[int]* | :heavy_minus_sign: | N/A | 24 | -| `has_scaling_matrix` | *Optional[bool]* | :heavy_minus_sign: | N/A | false | -| `height` | *Optional[int]* | :heavy_minus_sign: | N/A | 814 | -| `level` | *Optional[int]* | :heavy_minus_sign: | N/A | 40 | -| `profile` | *Optional[str]* | :heavy_minus_sign: | N/A | lc | -| `ref_frames` | *Optional[int]* | :heavy_minus_sign: | N/A | 4 | -| `scan_type` | *Optional[str]* | :heavy_minus_sign: | N/A | progressive | -| `stream_identifier` | *Optional[str]* | :heavy_minus_sign: | N/A | 1 | -| `width` | *Optional[int]* | :heavy_minus_sign: | N/A | 1920 | -| `display_title` | *Optional[str]* | :heavy_minus_sign: | N/A | English (AAC Stereo) | -| `extended_display_title` | *Optional[str]* | :heavy_minus_sign: | N/A | English (AAC Stereo) | -| `selected` | *Optional[bool]* | :heavy_minus_sign: | N/A | true | -| `channels` | *Optional[int]* | :heavy_minus_sign: | N/A | 2 | -| `language` | *Optional[str]* | :heavy_minus_sign: | N/A | English | -| `language_tag` | *Optional[str]* | :heavy_minus_sign: | N/A | en | -| `language_code` | *Optional[str]* | :heavy_minus_sign: | N/A | eng | -| `sampling_rate` | *Optional[int]* | :heavy_minus_sign: | N/A | 44100 | \ No newline at end of file diff --git a/docs/models/operations/getmetadatabyratingkeywriter.md b/docs/models/operations/getmetadatabyratingkeywriter.md deleted file mode 100644 index f780784..0000000 --- a/docs/models/operations/getmetadatabyratingkeywriter.md +++ /dev/null @@ -1,12 +0,0 @@ -# GetMetaDataByRatingKeyWriter - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `id` | *Optional[int]* | :heavy_minus_sign: | N/A | 132 | -| `filter_` | *Optional[str]* | :heavy_minus_sign: | N/A | writer=132 | -| `tag` | *Optional[str]* | :heavy_minus_sign: | N/A | Joss Whedon | -| `tag_key` | *Optional[str]* | :heavy_minus_sign: | N/A | 5d776828880197001ec90e8f | -| `thumb` | *Optional[str]* | :heavy_minus_sign: | N/A | https://metadata-static.plex.tv/people/5d776828880197001ec90e8f.jpg | \ No newline at end of file diff --git a/docs/models/operations/getplaylistcontentsqueryparamtype.md b/docs/models/operations/getplaylistcontentsqueryparamtype.md index 03ff772..65100f4 100644 --- a/docs/models/operations/getplaylistcontentsqueryparamtype.md +++ b/docs/models/operations/getplaylistcontentsqueryparamtype.md @@ -1,6 +1,6 @@ # GetPlaylistContentsQueryParamType -The type of media to retrieve. +The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season diff --git a/docs/models/operations/getplaylistcontentsrequest.md b/docs/models/operations/getplaylistcontentsrequest.md index ed7c0fa..8c7092b 100644 --- a/docs/models/operations/getplaylistcontentsrequest.md +++ b/docs/models/operations/getplaylistcontentsrequest.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `playlist_id` | *float* | :heavy_check_mark: | the ID of the playlist | | -| `type` | [operations.GetPlaylistContentsQueryParamType](../../models/operations/getplaylistcontentsqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `playlist_id` | *float* | :heavy_check_mark: | the ID of the playlist | | +| `type` | [operations.GetPlaylistContentsQueryParamType](../../models/operations/getplaylistcontentsqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | \ No newline at end of file diff --git a/docs/models/operations/getrecentlyaddedlibraryrequest.md b/docs/models/operations/getrecentlyaddedlibraryrequest.md index d2381dd..58d2618 100644 --- a/docs/models/operations/getrecentlyaddedlibraryrequest.md +++ b/docs/models/operations/getrecentlyaddedlibraryrequest.md @@ -3,12 +3,12 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `type` | [operations.QueryParamType](../../models/operations/queryparamtype.md) | :heavy_check_mark: | The type of media to retrieve.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | -| `content_directory_id` | *Optional[int]* | :heavy_minus_sign: | N/A | 2 | -| `pinned_content_directory_id` | List[*int*] | :heavy_minus_sign: | N/A | [
3,
5,
7,
13,
12,
1,
6,
14,
2,
10,
16,
17
] | -| `section_id` | *Optional[int]* | :heavy_minus_sign: | The library section ID for filtering content. | 2 | -| `include_meta` | [Optional[operations.QueryParamIncludeMeta]](../../models/operations/queryparamincludemeta.md) | :heavy_minus_sign: | Adds the Meta object to the response
| 1 | -| `x_plex_container_start` | *Optional[int]* | :heavy_minus_sign: | The index of the first item to return. If not specified, the first item will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 0
| 0 | -| `x_plex_container_size` | *Optional[int]* | :heavy_minus_sign: | The number of items to return. If not specified, all items will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 50
| 50 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | [operations.QueryParamType](../../models/operations/queryparamtype.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | +| `content_directory_id` | *Optional[int]* | :heavy_minus_sign: | N/A | 2 | +| `pinned_content_directory_id` | List[*int*] | :heavy_minus_sign: | N/A | [
3,
5,
7,
13,
12,
1,
6,
14,
2,
10,
16,
17
] | +| `section_id` | *Optional[int]* | :heavy_minus_sign: | The library section ID for filtering content. | 2 | +| `include_meta` | [Optional[operations.QueryParamIncludeMeta]](../../models/operations/queryparamincludemeta.md) | :heavy_minus_sign: | Adds the Meta object to the response
| 1 | +| `x_plex_container_start` | *Optional[int]* | :heavy_minus_sign: | The index of the first item to return. If not specified, the first item will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 0
| 0 | +| `x_plex_container_size` | *Optional[int]* | :heavy_minus_sign: | The number of items to return. If not specified, all items will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 50
| 50 | \ No newline at end of file diff --git a/docs/models/operations/getrecentlyaddedrequest.md b/docs/models/operations/getrecentlyaddedrequest.md index 732e680..a56e767 100644 --- a/docs/models/operations/getrecentlyaddedrequest.md +++ b/docs/models/operations/getrecentlyaddedrequest.md @@ -3,12 +3,12 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `content_directory_id` | *int* | :heavy_check_mark: | The content directory ID. | | -| `type` | [operations.Type](../../models/operations/type.md) | :heavy_check_mark: | The type of media to retrieve.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | -| `pinned_content_directory_id` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of pinned content directory IDs. | | -| `section_id` | *Optional[int]* | :heavy_minus_sign: | The library section ID for filtering content. | 2 | -| `include_meta` | [Optional[operations.IncludeMeta]](../../models/operations/includemeta.md) | :heavy_minus_sign: | Adds the Meta object to the response
| 1 | -| `x_plex_container_start` | *Optional[int]* | :heavy_minus_sign: | The index of the first item to return. If not specified, the first item will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 0
| 0 | -| `x_plex_container_size` | *Optional[int]* | :heavy_minus_sign: | The number of items to return. If not specified, all items will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 50
| 50 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `content_directory_id` | *int* | :heavy_check_mark: | The content directory ID. | | +| `type` | [operations.Type](../../models/operations/type.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | +| `pinned_content_directory_id` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of pinned content directory IDs. | | +| `section_id` | *Optional[int]* | :heavy_minus_sign: | The library section ID for filtering content. | 2 | +| `include_meta` | [Optional[operations.IncludeMeta]](../../models/operations/includemeta.md) | :heavy_minus_sign: | Adds the Meta object to the response
| 1 | +| `x_plex_container_start` | *Optional[int]* | :heavy_minus_sign: | The index of the first item to return. If not specified, the first item will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 0
| 0 | +| `x_plex_container_size` | *Optional[int]* | :heavy_minus_sign: | The number of items to return. If not specified, all items will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 50
| 50 | \ No newline at end of file diff --git a/docs/models/operations/getsearchlibraryqueryparamtype.md b/docs/models/operations/getsearchlibraryqueryparamtype.md index 9173866..1331727 100644 --- a/docs/models/operations/getsearchlibraryqueryparamtype.md +++ b/docs/models/operations/getsearchlibraryqueryparamtype.md @@ -1,6 +1,6 @@ # GetSearchLibraryQueryParamType -The type of media to retrieve. +The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season diff --git a/docs/models/operations/getsearchlibraryrequest.md b/docs/models/operations/getsearchlibraryrequest.md index 582cec7..99ed3fb 100644 --- a/docs/models/operations/getsearchlibraryrequest.md +++ b/docs/models/operations/getsearchlibraryrequest.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `section_key` | *int* | :heavy_check_mark: | The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
| 9518 | -| `type` | [operations.GetSearchLibraryQueryParamType](../../models/operations/getsearchlibraryqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `section_key` | *int* | :heavy_check_mark: | The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
| 9518 | +| `type` | [operations.GetSearchLibraryQueryParamType](../../models/operations/getsearchlibraryqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | \ No newline at end of file diff --git a/docs/models/operations/gettopwatchedcontentqueryparamtype.md b/docs/models/operations/gettopwatchedcontentqueryparamtype.md index 88163df..d8d7d45 100644 --- a/docs/models/operations/gettopwatchedcontentqueryparamtype.md +++ b/docs/models/operations/gettopwatchedcontentqueryparamtype.md @@ -1,6 +1,6 @@ # GetTopWatchedContentQueryParamType -The type of media to retrieve. +The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season diff --git a/docs/models/operations/gettopwatchedcontentrequest.md b/docs/models/operations/gettopwatchedcontentrequest.md index f7c062d..e143e65 100644 --- a/docs/models/operations/gettopwatchedcontentrequest.md +++ b/docs/models/operations/gettopwatchedcontentrequest.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `type` | [operations.GetTopWatchedContentQueryParamType](../../models/operations/gettopwatchedcontentqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | -| `include_guids` | *Optional[int]* | :heavy_minus_sign: | Adds the Guids object to the response
| 1 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | [operations.GetTopWatchedContentQueryParamType](../../models/operations/gettopwatchedcontentqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | +| `include_guids` | *Optional[int]* | :heavy_minus_sign: | Adds the Guids object to the response
| 1 | \ No newline at end of file diff --git a/docs/models/operations/guids.md b/docs/models/operations/guids.md index 497e932..b90a6c4 100644 --- a/docs/models/operations/guids.md +++ b/docs/models/operations/guids.md @@ -5,4 +5,4 @@ | Field | Type | Required | Description | Example | | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `id` | *Optional[str]* | :heavy_minus_sign: | N/A | tvdb://2337 | \ No newline at end of file +| `id` | *str* | :heavy_check_mark: | The GUID value. | imdb://tt3032476 | \ No newline at end of file diff --git a/docs/models/operations/producer.md b/docs/models/operations/producer.md index 842532d..cc86582 100644 --- a/docs/models/operations/producer.md +++ b/docs/models/operations/producer.md @@ -5,8 +5,9 @@ | Field | Type | Required | Description | Example | | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| `id` | *Optional[int]* | :heavy_minus_sign: | N/A | 221 | -| `filter_` | *Optional[str]* | :heavy_minus_sign: | N/A | producer=221 | -| `tag` | *Optional[str]* | :heavy_minus_sign: | N/A | Barry Mendel | -| `tag_key` | *Optional[str]* | :heavy_minus_sign: | N/A | 5d776826961905001eb90e2b | -| `thumb` | *Optional[str]* | :heavy_minus_sign: | N/A | https://metadata-static.plex.tv/8/people/87877371326a964634d18556d94547e1.jpg | \ No newline at end of file +| `id` | *int* | :heavy_check_mark: | The unique role identifier. | 109501 | +| `filter_` | *str* | :heavy_check_mark: | The filter string for the role. | actor=109501 | +| `tag` | *str* | :heavy_check_mark: | The actor's name. | Bob Odenkirk | +| `tag_key` | *str* | :heavy_check_mark: | A key associated with the actor tag. | 5d77683254f42c001f8c3f69 | +| `role` | *Optional[str]* | :heavy_minus_sign: | The character name or role. | Jimmy McGill | +| `thumb` | *Optional[str]* | :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/queryparamtype.md b/docs/models/operations/queryparamtype.md index 8839871..c6862dd 100644 --- a/docs/models/operations/queryparamtype.md +++ b/docs/models/operations/queryparamtype.md @@ -1,6 +1,6 @@ # QueryParamType -The type of media to retrieve. +The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season diff --git a/docs/models/operations/rating.md b/docs/models/operations/rating.md new file mode 100644 index 0000000..d74c893 --- /dev/null +++ b/docs/models/operations/rating.md @@ -0,0 +1,10 @@ +# Rating + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | +| `image` | *str* | :heavy_check_mark: | The image or reference for the rating. | imdb://image.rating | +| `value` | *float* | :heavy_check_mark: | The rating value. | 9 | +| `type` | *str* | :heavy_check_mark: | The type of rating (e.g., audience, critic). | audience | \ No newline at end of file diff --git a/docs/models/operations/ratings.md b/docs/models/operations/ratings.md deleted file mode 100644 index 4c69179..0000000 --- a/docs/models/operations/ratings.md +++ /dev/null @@ -1,10 +0,0 @@ -# Ratings - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------- | ------------------------- | ------------------------- | ------------------------- | ------------------------- | -| `image` | *Optional[str]* | :heavy_minus_sign: | N/A | themoviedb://image.rating | -| `value` | *Optional[float]* | :heavy_minus_sign: | N/A | 7.4 | -| `type` | *Optional[str]* | :heavy_minus_sign: | N/A | audience | \ No newline at end of file diff --git a/docs/models/operations/similar.md b/docs/models/operations/similar.md new file mode 100644 index 0000000..e334bbb --- /dev/null +++ b/docs/models/operations/similar.md @@ -0,0 +1,10 @@ +# Similar + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| `id` | *int* | :heavy_check_mark: | The unique similar item identifier. | 26 | +| `filter_` | *str* | :heavy_check_mark: | The filter string for similar items. | similar=26 | +| `tag` | *str* | :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/type.md b/docs/models/operations/type.md index de77210..e750bc8 100644 --- a/docs/models/operations/type.md +++ b/docs/models/operations/type.md @@ -1,6 +1,6 @@ # Type -The type of media to retrieve. +The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season diff --git a/docs/sdks/library/README.md b/docs/sdks/library/README.md index de880bf..d2b7042 100644 --- a/docs/sdks/library/README.md +++ b/docs/sdks/library/README.md @@ -18,8 +18,9 @@ API Calls interacting with Plex Media Server Libraries * [get_search_library](#get_search_library) - Search Library * [get_genres_library](#get_genres_library) - Get Genres of library media * [get_countries_library](#get_countries_library) - Get Countries of library media +* [get_actors_library](#get_actors_library) - Get Actors of library media * [get_search_all_libraries](#get_search_all_libraries) - Search All Libraries -* [get_meta_data_by_rating_key](#get_meta_data_by_rating_key) - Get Metadata by RatingKey +* [get_media_meta_data](#get_media_meta_data) - Get Media Metadata * [get_metadata_children](#get_metadata_children) - Get Items Children * [get_top_watched_content](#get_top_watched_content) - Get Top Watched Content * [get_on_deck](#get_on_deck) - Get On Deck @@ -332,8 +333,8 @@ with PlexAPI( res = plex_api.library.get_library_items(request={ "tag": operations.Tag.EDITION, - "section_key": 9518, "type": operations.GetLibraryItemsQueryParamType.TV_SHOW, + "section_key": 9518, }) assert res.object is not None @@ -449,11 +450,11 @@ with PlexAPI( ### Parameters -| Parameter | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `section_key` | *int* | :heavy_check_mark: | The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
| 9518 | -| `type` | [operations.GetSearchLibraryQueryParamType](../../models/operations/getsearchlibraryqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | +| Parameter | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `section_key` | *int* | :heavy_check_mark: | The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
| 9518 | +| `type` | [operations.GetSearchLibraryQueryParamType](../../models/operations/getsearchlibraryqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | ### Response @@ -476,12 +477,13 @@ Retrieves a list of all the genres that are found for the media in this library. ```python from plex_api_client import PlexAPI +from plex_api_client.models import operations with PlexAPI( access_token="", ) as plex_api: - res = plex_api.library.get_genres_library(section_key=9518) + res = plex_api.library.get_genres_library(section_key=9518, type_=operations.GetGenresLibraryQueryParamType.TV_SHOW) assert res.object is not None @@ -492,10 +494,11 @@ with PlexAPI( ### Parameters -| Parameter | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | -| `section_key` | *int* | :heavy_check_mark: | The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
| 9518 | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | +| Parameter | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `section_key` | *int* | :heavy_check_mark: | The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
| 9518 | +| `type` | [operations.GetGenresLibraryQueryParamType](../../models/operations/getgenreslibraryqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | ### Response @@ -518,12 +521,13 @@ Retrieves a list of all the countries that are found for the media in this libra ```python from plex_api_client import PlexAPI +from plex_api_client.models import operations with PlexAPI( access_token="", ) as plex_api: - res = plex_api.library.get_countries_library(section_key=9518) + res = plex_api.library.get_countries_library(section_key=9518, type_=operations.GetCountriesLibraryQueryParamType.TV_SHOW) assert res.object is not None @@ -534,10 +538,11 @@ with PlexAPI( ### Parameters -| Parameter | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | -| `section_key` | *int* | :heavy_check_mark: | The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
| 9518 | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | +| Parameter | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `section_key` | *int* | :heavy_check_mark: | The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
| 9518 | +| `type` | [operations.GetCountriesLibraryQueryParamType](../../models/operations/getcountrieslibraryqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | ### Response @@ -551,6 +556,50 @@ with PlexAPI( | errors.GetCountriesLibraryUnauthorized | 401 | application/json | | errors.SDKError | 4XX, 5XX | \*/\* | +## get_actors_library + +Retrieves a list of all the actors that are found for the media in this library. + + +### Example Usage + +```python +from plex_api_client import PlexAPI +from plex_api_client.models import operations + +with PlexAPI( + access_token="", +) as plex_api: + + res = plex_api.library.get_actors_library(section_key=9518, type_=operations.GetActorsLibraryQueryParamType.TV_SHOW) + + assert res.object is not None + + # Handle response + print(res.object) + +``` + +### Parameters + +| Parameter | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `section_key` | *int* | :heavy_check_mark: | The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
| 9518 | +| `type` | [operations.GetActorsLibraryQueryParamType](../../models/operations/getactorslibraryqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | + +### Response + +**[operations.GetActorsLibraryResponse](../../models/operations/getactorslibraryresponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | +| errors.GetActorsLibraryBadRequest | 400 | application/json | +| errors.GetActorsLibraryUnauthorized | 401 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | + ## get_search_all_libraries Search the provided query across all library sections, or a single section, and return matches as hubs, split up by type. @@ -600,9 +649,9 @@ with PlexAPI( | errors.GetSearchAllLibrariesUnauthorized | 401 | application/json | | errors.SDKError | 4XX, 5XX | \*/\* | -## get_meta_data_by_rating_key +## get_media_meta_data -This endpoint will return the metadata of a library item specified with the ratingKey. +This endpoint will return all the (meta)data of a library item specified with by the ratingKey. ### Example Usage @@ -614,7 +663,22 @@ with PlexAPI( access_token="", ) as plex_api: - res = plex_api.library.get_meta_data_by_rating_key(rating_key=9518) + res = plex_api.library.get_media_meta_data(request={ + "rating_key": 9518, + "include_concerts": True, + "include_extras": True, + "include_on_deck": True, + "include_popular_leaves": True, + "include_preferences": True, + "include_reviews": True, + "include_chapters": True, + "include_stations": True, + "include_external_media": True, + "async_augment_metadata": True, + "async_check_files": True, + "async_refresh_analysis": True, + "async_refresh_local_media_agent": True, + }) assert res.object is not None @@ -625,22 +689,22 @@ with PlexAPI( ### Parameters -| Parameter | Type | Required | Description | Example | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `rating_key` | *int* | :heavy_check_mark: | the id of the library item to return the children of. | 9518 | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | +| Parameter | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `request` | [operations.GetMediaMetaDataRequest](../../models/operations/getmediametadatarequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response -**[operations.GetMetaDataByRatingKeyResponse](../../models/operations/getmetadatabyratingkeyresponse.md)** +**[operations.GetMediaMetaDataResponse](../../models/operations/getmediametadataresponse.md)** ### Errors -| Error Type | Status Code | Content Type | -| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | -| errors.GetMetaDataByRatingKeyBadRequest | 400 | application/json | -| errors.GetMetaDataByRatingKeyUnauthorized | 401 | application/json | -| errors.SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | +| errors.GetMediaMetaDataBadRequest | 400 | application/json | +| errors.GetMediaMetaDataUnauthorized | 401 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | ## get_metadata_children @@ -711,11 +775,11 @@ with PlexAPI( ### Parameters -| Parameter | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `type` | [operations.GetTopWatchedContentQueryParamType](../../models/operations/gettopwatchedcontentqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | -| `include_guids` | *Optional[int]* | :heavy_minus_sign: | Adds the Guids object to the response
| 1 | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | +| Parameter | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | [operations.GetTopWatchedContentQueryParamType](../../models/operations/gettopwatchedcontentqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | +| `include_guids` | *Optional[int]* | :heavy_minus_sign: | Adds the Guids object to the response
| 1 | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | ### Response diff --git a/docs/sdks/playlists/README.md b/docs/sdks/playlists/README.md index 4ff1acb..1fb7509 100644 --- a/docs/sdks/playlists/README.md +++ b/docs/sdks/playlists/README.md @@ -271,11 +271,11 @@ with PlexAPI( ### Parameters -| Parameter | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `playlist_id` | *float* | :heavy_check_mark: | the ID of the playlist | | -| `type` | [operations.GetPlaylistContentsQueryParamType](../../models/operations/getplaylistcontentsqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | +| Parameter | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `playlist_id` | *float* | :heavy_check_mark: | the ID of the playlist | | +| `type` | [operations.GetPlaylistContentsQueryParamType](../../models/operations/getplaylistcontentsqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | ### Response diff --git a/pyproject.toml b/pyproject.toml index 845bdf9..395deb7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "plex-api-client" -version = "0.22.0" +version = "0.22.1" description = "Python Client SDK Generated by Speakeasy" authors = [{ name = "Speakeasy" },] readme = "README-PYPI.md" diff --git a/src/plex_api_client/_version.py b/src/plex_api_client/_version.py index f5b790a..622c91b 100644 --- a/src/plex_api_client/_version.py +++ b/src/plex_api_client/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "plex-api-client" -__version__: str = "0.22.0" +__version__: str = "0.22.1" __openapi_doc_version__: str = "0.0.3" __gen_version__: str = "2.506.0" -__user_agent__: str = "speakeasy-sdk/python 0.22.0 2.506.0 0.0.3 plex-api-client" +__user_agent__: str = "speakeasy-sdk/python 0.22.1 2.506.0 0.0.3 plex-api-client" try: if __package__ is not None: diff --git a/src/plex_api_client/library.py b/src/plex_api_client/library.py index 313e714..2386b18 100644 --- a/src/plex_api_client/library.py +++ b/src/plex_api_client/library.py @@ -1700,7 +1700,7 @@ class Library(BaseSDK): :param section_key: The unique key of the Plex library. Note: This is unique in the context of the Plex server. - :param type: The type of media to retrieve. 1 = movie 2 = show 3 = season 4 = episode E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + :param type: The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season 4 = episode E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -1829,7 +1829,7 @@ class Library(BaseSDK): :param section_key: The unique key of the Plex library. Note: This is unique in the context of the Plex server. - :param type: The type of media to retrieve. 1 = movie 2 = show 3 = season 4 = episode E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + :param type: The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season 4 = episode E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -1929,6 +1929,7 @@ class Library(BaseSDK): self, *, section_key: int, + type_: operations.GetGenresLibraryQueryParamType, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, @@ -1940,6 +1941,7 @@ class Library(BaseSDK): :param section_key: The unique key of the Plex library. Note: This is unique in the context of the Plex server. + :param type: The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season 4 = episode E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -1955,6 +1957,7 @@ class Library(BaseSDK): request = operations.GetGenresLibraryRequest( section_key=section_key, + type=type_, ) req = self._build_request( @@ -2038,6 +2041,7 @@ class Library(BaseSDK): self, *, section_key: int, + type_: operations.GetGenresLibraryQueryParamType, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, @@ -2049,6 +2053,7 @@ class Library(BaseSDK): :param section_key: The unique key of the Plex library. Note: This is unique in the context of the Plex server. + :param type: The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season 4 = episode E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -2064,6 +2069,7 @@ class Library(BaseSDK): request = operations.GetGenresLibraryRequest( section_key=section_key, + type=type_, ) req = self._build_request_async( @@ -2147,6 +2153,7 @@ class Library(BaseSDK): self, *, section_key: int, + type_: operations.GetCountriesLibraryQueryParamType, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, @@ -2158,6 +2165,7 @@ class Library(BaseSDK): :param section_key: The unique key of the Plex library. Note: This is unique in the context of the Plex server. + :param type: The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season 4 = episode E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -2173,6 +2181,7 @@ class Library(BaseSDK): request = operations.GetCountriesLibraryRequest( section_key=section_key, + type=type_, ) req = self._build_request( @@ -2256,6 +2265,7 @@ class Library(BaseSDK): self, *, section_key: int, + type_: operations.GetCountriesLibraryQueryParamType, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, @@ -2267,6 +2277,7 @@ class Library(BaseSDK): :param section_key: The unique key of the Plex library. Note: This is unique in the context of the Plex server. + :param type: The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season 4 = episode E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -2282,6 +2293,7 @@ class Library(BaseSDK): request = operations.GetCountriesLibraryRequest( section_key=section_key, + type=type_, ) req = self._build_request_async( @@ -2361,6 +2373,230 @@ class Library(BaseSDK): http_res, ) + def get_actors_library( + self, + *, + section_key: int, + type_: operations.GetActorsLibraryQueryParamType, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> operations.GetActorsLibraryResponse: + r"""Get Actors of library media + + Retrieves a list of all the actors that are found for the media in this library. + + + :param section_key: The unique key of the Plex library. Note: This is unique in the context of the Plex server. + :param type: The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season 4 = episode E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if server_url is not None: + base_url = server_url + + request = operations.GetActorsLibraryRequest( + section_key=section_key, + type=type_, + ) + + req = self._build_request( + method="GET", + path="/library/sections/{sectionKey}/actor", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + operation_id="get-actors-library", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), + request=req, + error_status_codes=["400", "401", "404", "4XX", "5XX"], + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return operations.GetActorsLibraryResponse( + object=utils.unmarshal_json( + http_res.text, Optional[operations.GetActorsLibraryResponseBody] + ), + status_code=http_res.status_code, + content_type=http_res.headers.get("Content-Type") or "", + raw_response=http_res, + ) + if utils.match_response(http_res, "400", "application/json"): + response_data = utils.unmarshal_json( + http_res.text, errors.GetActorsLibraryBadRequestData + ) + response_data.raw_response = http_res + raise errors.GetActorsLibraryBadRequest(data=response_data) + if utils.match_response(http_res, "401", "application/json"): + response_data = utils.unmarshal_json( + http_res.text, errors.GetActorsLibraryUnauthorizedData + ) + response_data.raw_response = http_res + raise errors.GetActorsLibraryUnauthorized(data=response_data) + if utils.match_response(http_res, ["404", "4XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + + content_type = http_res.headers.get("Content-Type") + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) + + async def get_actors_library_async( + self, + *, + section_key: int, + type_: operations.GetActorsLibraryQueryParamType, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> operations.GetActorsLibraryResponse: + r"""Get Actors of library media + + Retrieves a list of all the actors that are found for the media in this library. + + + :param section_key: The unique key of the Plex library. Note: This is unique in the context of the Plex server. + :param type: The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season 4 = episode E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if server_url is not None: + base_url = server_url + + request = operations.GetActorsLibraryRequest( + section_key=section_key, + type=type_, + ) + + req = self._build_request_async( + method="GET", + path="/library/sections/{sectionKey}/actor", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + operation_id="get-actors-library", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), + request=req, + error_status_codes=["400", "401", "404", "4XX", "5XX"], + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return operations.GetActorsLibraryResponse( + object=utils.unmarshal_json( + http_res.text, Optional[operations.GetActorsLibraryResponseBody] + ), + status_code=http_res.status_code, + content_type=http_res.headers.get("Content-Type") or "", + raw_response=http_res, + ) + if utils.match_response(http_res, "400", "application/json"): + response_data = utils.unmarshal_json( + http_res.text, errors.GetActorsLibraryBadRequestData + ) + response_data.raw_response = http_res + raise errors.GetActorsLibraryBadRequest(data=response_data) + if utils.match_response(http_res, "401", "application/json"): + response_data = utils.unmarshal_json( + http_res.text, errors.GetActorsLibraryUnauthorizedData + ) + response_data.raw_response = http_res + raise errors.GetActorsLibraryUnauthorized(data=response_data) + if utils.match_response(http_res, ["404", "4XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + + content_type = http_res.headers.get("Content-Type") + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) + def get_search_all_libraries( self, *, @@ -2587,21 +2823,24 @@ class Library(BaseSDK): http_res, ) - def get_meta_data_by_rating_key( + def get_media_meta_data( self, *, - rating_key: int, + request: Union[ + operations.GetMediaMetaDataRequest, + operations.GetMediaMetaDataRequestTypedDict, + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> operations.GetMetaDataByRatingKeyResponse: - r"""Get Metadata by RatingKey + ) -> operations.GetMediaMetaDataResponse: + r"""Get Media Metadata - This endpoint will return the metadata of a library item specified with the ratingKey. + This endpoint will return all the (meta)data of a library item specified with by the ratingKey. - :param rating_key: the id of the library item to return the children of. + :param request: The request object to send. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -2615,9 +2854,9 @@ class Library(BaseSDK): if server_url is not None: base_url = server_url - request = operations.GetMetaDataByRatingKeyRequest( - rating_key=rating_key, - ) + if not isinstance(request, BaseModel): + request = utils.unmarshal(request, operations.GetMediaMetaDataRequest) + request = cast(operations.GetMediaMetaDataRequest, request) req = self._build_request( method="GET", @@ -2645,21 +2884,20 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( - operation_id="get-meta-data-by-rating-key", + operation_id="get-media-meta-data", oauth2_scopes=[], security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["400", "401", "4XX", "5XX"], + error_status_codes=["400", "401", "404", "4XX", "5XX"], retry_config=retry_config, ) response_data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.GetMetaDataByRatingKeyResponse( + return operations.GetMediaMetaDataResponse( object=utils.unmarshal_json( - http_res.text, - Optional[operations.GetMetaDataByRatingKeyResponseBody], + http_res.text, Optional[operations.GetMediaMetaDataResponseBody] ), status_code=http_res.status_code, content_type=http_res.headers.get("Content-Type") or "", @@ -2667,17 +2905,17 @@ class Library(BaseSDK): ) if utils.match_response(http_res, "400", "application/json"): response_data = utils.unmarshal_json( - http_res.text, errors.GetMetaDataByRatingKeyBadRequestData + http_res.text, errors.GetMediaMetaDataBadRequestData ) response_data.raw_response = http_res - raise errors.GetMetaDataByRatingKeyBadRequest(data=response_data) + raise errors.GetMediaMetaDataBadRequest(data=response_data) if utils.match_response(http_res, "401", "application/json"): response_data = utils.unmarshal_json( - http_res.text, errors.GetMetaDataByRatingKeyUnauthorizedData + http_res.text, errors.GetMediaMetaDataUnauthorizedData ) response_data.raw_response = http_res - raise errors.GetMetaDataByRatingKeyUnauthorized(data=response_data) - if utils.match_response(http_res, "4XX", "*"): + raise errors.GetMediaMetaDataUnauthorized(data=response_data) + if utils.match_response(http_res, ["404", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -2697,21 +2935,24 @@ class Library(BaseSDK): http_res, ) - async def get_meta_data_by_rating_key_async( + async def get_media_meta_data_async( self, *, - rating_key: int, + request: Union[ + operations.GetMediaMetaDataRequest, + operations.GetMediaMetaDataRequestTypedDict, + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> operations.GetMetaDataByRatingKeyResponse: - r"""Get Metadata by RatingKey + ) -> operations.GetMediaMetaDataResponse: + r"""Get Media Metadata - This endpoint will return the metadata of a library item specified with the ratingKey. + This endpoint will return all the (meta)data of a library item specified with by the ratingKey. - :param rating_key: the id of the library item to return the children of. + :param request: The request object to send. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -2725,9 +2966,9 @@ class Library(BaseSDK): if server_url is not None: base_url = server_url - request = operations.GetMetaDataByRatingKeyRequest( - rating_key=rating_key, - ) + if not isinstance(request, BaseModel): + request = utils.unmarshal(request, operations.GetMediaMetaDataRequest) + request = cast(operations.GetMediaMetaDataRequest, request) req = self._build_request_async( method="GET", @@ -2755,21 +2996,20 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( - operation_id="get-meta-data-by-rating-key", + operation_id="get-media-meta-data", oauth2_scopes=[], security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["400", "401", "4XX", "5XX"], + error_status_codes=["400", "401", "404", "4XX", "5XX"], retry_config=retry_config, ) response_data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.GetMetaDataByRatingKeyResponse( + return operations.GetMediaMetaDataResponse( object=utils.unmarshal_json( - http_res.text, - Optional[operations.GetMetaDataByRatingKeyResponseBody], + http_res.text, Optional[operations.GetMediaMetaDataResponseBody] ), status_code=http_res.status_code, content_type=http_res.headers.get("Content-Type") or "", @@ -2777,17 +3017,17 @@ class Library(BaseSDK): ) if utils.match_response(http_res, "400", "application/json"): response_data = utils.unmarshal_json( - http_res.text, errors.GetMetaDataByRatingKeyBadRequestData + http_res.text, errors.GetMediaMetaDataBadRequestData ) response_data.raw_response = http_res - raise errors.GetMetaDataByRatingKeyBadRequest(data=response_data) + raise errors.GetMediaMetaDataBadRequest(data=response_data) if utils.match_response(http_res, "401", "application/json"): response_data = utils.unmarshal_json( - http_res.text, errors.GetMetaDataByRatingKeyUnauthorizedData + http_res.text, errors.GetMediaMetaDataUnauthorizedData ) response_data.raw_response = http_res - raise errors.GetMetaDataByRatingKeyUnauthorized(data=response_data) - if utils.match_response(http_res, "4XX", "*"): + raise errors.GetMediaMetaDataUnauthorized(data=response_data) + if utils.match_response(http_res, ["404", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.SDKError( "API error occurred", http_res.status_code, http_res_text, http_res @@ -3046,7 +3286,7 @@ class Library(BaseSDK): This endpoint will return the top watched content from libraries of a certain type - :param type: The type of media to retrieve. 1 = movie 2 = show 3 = season 4 = episode E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + :param type: The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season 4 = episode E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries :param include_guids: Adds the Guids object to the response :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method @@ -3158,7 +3398,7 @@ class Library(BaseSDK): This endpoint will return the top watched content from libraries of a certain type - :param type: The type of media to retrieve. 1 = movie 2 = show 3 = season 4 = episode E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + :param type: The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season 4 = episode E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries :param include_guids: Adds the Guids object to the response :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method diff --git a/src/plex_api_client/models/errors/__init__.py b/src/plex_api_client/models/errors/__init__.py index 3331724..a10e3c0 100644 --- a/src/plex_api_client/models/errors/__init__.py +++ b/src/plex_api_client/models/errors/__init__.py @@ -90,6 +90,16 @@ from .enablepapertrail import ( EnablePaperTrailUnauthorized, EnablePaperTrailUnauthorizedData, ) +from .get_actors_library import ( + GetActorsLibraryBadRequest, + GetActorsLibraryBadRequestData, + GetActorsLibraryErrors, + GetActorsLibraryErrorsTypedDict, + GetActorsLibraryLibraryErrors, + GetActorsLibraryLibraryErrorsTypedDict, + GetActorsLibraryUnauthorized, + GetActorsLibraryUnauthorizedData, +) from .get_all_libraries import ( GetAllLibrariesBadRequest, GetAllLibrariesBadRequestData, @@ -150,6 +160,16 @@ from .get_library_items import ( GetLibraryItemsUnauthorized, GetLibraryItemsUnauthorizedData, ) +from .get_media_meta_data import ( + GetMediaMetaDataBadRequest, + GetMediaMetaDataBadRequestData, + GetMediaMetaDataErrors, + GetMediaMetaDataErrorsTypedDict, + GetMediaMetaDataLibraryErrors, + GetMediaMetaDataLibraryErrorsTypedDict, + GetMediaMetaDataUnauthorized, + GetMediaMetaDataUnauthorizedData, +) from .get_media_providers import ( GetMediaProvidersBadRequest, GetMediaProvidersBadRequestData, @@ -160,16 +180,6 @@ from .get_media_providers import ( GetMediaProvidersUnauthorized, GetMediaProvidersUnauthorizedData, ) -from .get_meta_data_by_rating_key import ( - GetMetaDataByRatingKeyBadRequest, - GetMetaDataByRatingKeyBadRequestData, - GetMetaDataByRatingKeyErrors, - GetMetaDataByRatingKeyErrorsTypedDict, - GetMetaDataByRatingKeyLibraryErrors, - GetMetaDataByRatingKeyLibraryErrorsTypedDict, - GetMetaDataByRatingKeyUnauthorized, - GetMetaDataByRatingKeyUnauthorizedData, -) from .get_recently_added_library import ( GetRecentlyAddedLibraryBadRequest, GetRecentlyAddedLibraryBadRequestData, @@ -848,6 +858,14 @@ __all__ = [ "EnablePaperTrailUnauthorizedData", "Errors", "ErrorsTypedDict", + "GetActorsLibraryBadRequest", + "GetActorsLibraryBadRequestData", + "GetActorsLibraryErrors", + "GetActorsLibraryErrorsTypedDict", + "GetActorsLibraryLibraryErrors", + "GetActorsLibraryLibraryErrorsTypedDict", + "GetActorsLibraryUnauthorized", + "GetActorsLibraryUnauthorizedData", "GetAllLibrariesBadRequest", "GetAllLibrariesBadRequestData", "GetAllLibrariesErrors", @@ -976,6 +994,14 @@ __all__ = [ "GetLibraryItemsLibraryErrorsTypedDict", "GetLibraryItemsUnauthorized", "GetLibraryItemsUnauthorizedData", + "GetMediaMetaDataBadRequest", + "GetMediaMetaDataBadRequestData", + "GetMediaMetaDataErrors", + "GetMediaMetaDataErrorsTypedDict", + "GetMediaMetaDataLibraryErrors", + "GetMediaMetaDataLibraryErrorsTypedDict", + "GetMediaMetaDataUnauthorized", + "GetMediaMetaDataUnauthorizedData", "GetMediaProvidersBadRequest", "GetMediaProvidersBadRequestData", "GetMediaProvidersErrors", @@ -984,14 +1010,6 @@ __all__ = [ "GetMediaProvidersServerErrorsTypedDict", "GetMediaProvidersUnauthorized", "GetMediaProvidersUnauthorizedData", - "GetMetaDataByRatingKeyBadRequest", - "GetMetaDataByRatingKeyBadRequestData", - "GetMetaDataByRatingKeyErrors", - "GetMetaDataByRatingKeyErrorsTypedDict", - "GetMetaDataByRatingKeyLibraryErrors", - "GetMetaDataByRatingKeyLibraryErrorsTypedDict", - "GetMetaDataByRatingKeyUnauthorized", - "GetMetaDataByRatingKeyUnauthorizedData", "GetMetadataChildrenBadRequest", "GetMetadataChildrenBadRequestData", "GetMetadataChildrenErrors", diff --git a/src/plex_api_client/models/errors/get_meta_data_by_rating_key.py b/src/plex_api_client/models/errors/get_actors_library.py similarity index 58% rename from src/plex_api_client/models/errors/get_meta_data_by_rating_key.py rename to src/plex_api_client/models/errors/get_actors_library.py index 20e96ed..708ce9c 100644 --- a/src/plex_api_client/models/errors/get_meta_data_by_rating_key.py +++ b/src/plex_api_client/models/errors/get_actors_library.py @@ -9,13 +9,13 @@ from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict -class GetMetaDataByRatingKeyLibraryErrorsTypedDict(TypedDict): +class GetActorsLibraryLibraryErrorsTypedDict(TypedDict): code: NotRequired[int] message: NotRequired[str] status: NotRequired[int] -class GetMetaDataByRatingKeyLibraryErrors(BaseModel): +class GetActorsLibraryLibraryErrors(BaseModel): code: Optional[int] = None message: Optional[str] = None @@ -23,8 +23,8 @@ class GetMetaDataByRatingKeyLibraryErrors(BaseModel): status: Optional[int] = None -class GetMetaDataByRatingKeyUnauthorizedData(BaseModel): - errors: Optional[List[GetMetaDataByRatingKeyLibraryErrors]] = None +class GetActorsLibraryUnauthorizedData(BaseModel): + errors: Optional[List[GetActorsLibraryLibraryErrors]] = None raw_response: Annotated[Optional[httpx.Response], pydantic.Field(exclude=True)] = ( None @@ -32,25 +32,25 @@ class GetMetaDataByRatingKeyUnauthorizedData(BaseModel): r"""Raw HTTP response; suitable for custom response parsing""" -class GetMetaDataByRatingKeyUnauthorized(Exception): +class GetActorsLibraryUnauthorized(Exception): r"""Unauthorized - Returned if the X-Plex-Token is missing from the header or query.""" - data: GetMetaDataByRatingKeyUnauthorizedData + data: GetActorsLibraryUnauthorizedData - def __init__(self, data: GetMetaDataByRatingKeyUnauthorizedData): + def __init__(self, data: GetActorsLibraryUnauthorizedData): self.data = data def __str__(self) -> str: - return utils.marshal_json(self.data, GetMetaDataByRatingKeyUnauthorizedData) + return utils.marshal_json(self.data, GetActorsLibraryUnauthorizedData) -class GetMetaDataByRatingKeyErrorsTypedDict(TypedDict): +class GetActorsLibraryErrorsTypedDict(TypedDict): code: NotRequired[int] message: NotRequired[str] status: NotRequired[int] -class GetMetaDataByRatingKeyErrors(BaseModel): +class GetActorsLibraryErrors(BaseModel): code: Optional[int] = None message: Optional[str] = None @@ -58,8 +58,8 @@ class GetMetaDataByRatingKeyErrors(BaseModel): status: Optional[int] = None -class GetMetaDataByRatingKeyBadRequestData(BaseModel): - errors: Optional[List[GetMetaDataByRatingKeyErrors]] = None +class GetActorsLibraryBadRequestData(BaseModel): + errors: Optional[List[GetActorsLibraryErrors]] = None raw_response: Annotated[Optional[httpx.Response], pydantic.Field(exclude=True)] = ( None @@ -67,13 +67,13 @@ class GetMetaDataByRatingKeyBadRequestData(BaseModel): r"""Raw HTTP response; suitable for custom response parsing""" -class GetMetaDataByRatingKeyBadRequest(Exception): +class GetActorsLibraryBadRequest(Exception): r"""Bad Request - A parameter was not specified, or was specified incorrectly.""" - data: GetMetaDataByRatingKeyBadRequestData + data: GetActorsLibraryBadRequestData - def __init__(self, data: GetMetaDataByRatingKeyBadRequestData): + def __init__(self, data: GetActorsLibraryBadRequestData): self.data = data def __str__(self) -> str: - return utils.marshal_json(self.data, GetMetaDataByRatingKeyBadRequestData) + return utils.marshal_json(self.data, GetActorsLibraryBadRequestData) diff --git a/src/plex_api_client/models/errors/get_media_meta_data.py b/src/plex_api_client/models/errors/get_media_meta_data.py new file mode 100644 index 0000000..895afcd --- /dev/null +++ b/src/plex_api_client/models/errors/get_media_meta_data.py @@ -0,0 +1,79 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +import httpx +from plex_api_client import utils +from plex_api_client.types import BaseModel +import pydantic +from typing import List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class GetMediaMetaDataLibraryErrorsTypedDict(TypedDict): + code: NotRequired[int] + message: NotRequired[str] + status: NotRequired[int] + + +class GetMediaMetaDataLibraryErrors(BaseModel): + code: Optional[int] = None + + message: Optional[str] = None + + status: Optional[int] = None + + +class GetMediaMetaDataUnauthorizedData(BaseModel): + errors: Optional[List[GetMediaMetaDataLibraryErrors]] = None + + raw_response: Annotated[Optional[httpx.Response], pydantic.Field(exclude=True)] = ( + None + ) + r"""Raw HTTP response; suitable for custom response parsing""" + + +class GetMediaMetaDataUnauthorized(Exception): + r"""Unauthorized - Returned if the X-Plex-Token is missing from the header or query.""" + + data: GetMediaMetaDataUnauthorizedData + + def __init__(self, data: GetMediaMetaDataUnauthorizedData): + self.data = data + + def __str__(self) -> str: + return utils.marshal_json(self.data, GetMediaMetaDataUnauthorizedData) + + +class GetMediaMetaDataErrorsTypedDict(TypedDict): + code: NotRequired[int] + message: NotRequired[str] + status: NotRequired[int] + + +class GetMediaMetaDataErrors(BaseModel): + code: Optional[int] = None + + message: Optional[str] = None + + status: Optional[int] = None + + +class GetMediaMetaDataBadRequestData(BaseModel): + errors: Optional[List[GetMediaMetaDataErrors]] = None + + raw_response: Annotated[Optional[httpx.Response], pydantic.Field(exclude=True)] = ( + None + ) + r"""Raw HTTP response; suitable for custom response parsing""" + + +class GetMediaMetaDataBadRequest(Exception): + r"""Bad Request - A parameter was not specified, or was specified incorrectly.""" + + data: GetMediaMetaDataBadRequestData + + def __init__(self, data: GetMediaMetaDataBadRequestData): + self.data = data + + def __str__(self) -> str: + return utils.marshal_json(self.data, GetMediaMetaDataBadRequestData) diff --git a/src/plex_api_client/models/operations/__init__.py b/src/plex_api_client/models/operations/__init__.py index 59922cc..ad3f37e 100644 --- a/src/plex_api_client/models/operations/__init__.py +++ b/src/plex_api_client/models/operations/__init__.py @@ -69,6 +69,19 @@ from .enablepapertrail import ( EnablePaperTrailResponse, EnablePaperTrailResponseTypedDict, ) +from .get_actors_library import ( + GetActorsLibraryDirectory, + GetActorsLibraryDirectoryTypedDict, + GetActorsLibraryMediaContainer, + GetActorsLibraryMediaContainerTypedDict, + GetActorsLibraryQueryParamType, + GetActorsLibraryRequest, + GetActorsLibraryRequestTypedDict, + GetActorsLibraryResponse, + GetActorsLibraryResponseBody, + GetActorsLibraryResponseBodyTypedDict, + GetActorsLibraryResponseTypedDict, +) from .get_all_libraries import ( GetAllLibrariesDirectory, GetAllLibrariesDirectoryTypedDict, @@ -92,6 +105,7 @@ from .get_countries_library import ( GetCountriesLibraryDirectoryTypedDict, GetCountriesLibraryMediaContainer, GetCountriesLibraryMediaContainerTypedDict, + GetCountriesLibraryQueryParamType, GetCountriesLibraryRequest, GetCountriesLibraryRequestTypedDict, GetCountriesLibraryResponse, @@ -104,6 +118,7 @@ from .get_genres_library import ( GetGenresLibraryDirectoryTypedDict, GetGenresLibraryMediaContainer, GetGenresLibraryMediaContainerTypedDict, + GetGenresLibraryQueryParamType, GetGenresLibraryRequest, GetGenresLibraryRequestTypedDict, GetGenresLibraryResponse, @@ -218,6 +233,48 @@ from .get_library_items import ( IncludeGuids, Tag, ) +from .get_media_meta_data import ( + GetMediaMetaDataCountry, + GetMediaMetaDataCountryTypedDict, + GetMediaMetaDataDirector, + GetMediaMetaDataDirectorTypedDict, + GetMediaMetaDataGenre, + GetMediaMetaDataGenreTypedDict, + GetMediaMetaDataImage, + GetMediaMetaDataImageTypedDict, + GetMediaMetaDataLocation, + GetMediaMetaDataLocationTypedDict, + GetMediaMetaDataMedia, + GetMediaMetaDataMediaContainer, + GetMediaMetaDataMediaContainerTypedDict, + GetMediaMetaDataMediaTypedDict, + GetMediaMetaDataMetadata, + GetMediaMetaDataMetadataTypedDict, + GetMediaMetaDataPart, + GetMediaMetaDataPartTypedDict, + GetMediaMetaDataRequest, + GetMediaMetaDataRequestTypedDict, + GetMediaMetaDataResponse, + GetMediaMetaDataResponseBody, + GetMediaMetaDataResponseBodyTypedDict, + GetMediaMetaDataResponseTypedDict, + GetMediaMetaDataRole, + GetMediaMetaDataRoleTypedDict, + GetMediaMetaDataStream, + GetMediaMetaDataStreamTypedDict, + GetMediaMetaDataUltraBlurColors, + GetMediaMetaDataUltraBlurColorsTypedDict, + GetMediaMetaDataWriter, + GetMediaMetaDataWriterTypedDict, + Guids, + GuidsTypedDict, + Producer, + ProducerTypedDict, + Rating, + RatingTypedDict, + Similar, + SimilarTypedDict, +) from .get_media_providers import ( Action, ActionTypedDict, @@ -238,40 +295,6 @@ from .get_media_providers import ( Pivot, PivotTypedDict, ) -from .get_meta_data_by_rating_key import ( - GetMetaDataByRatingKeyCountry, - GetMetaDataByRatingKeyCountryTypedDict, - GetMetaDataByRatingKeyDirector, - GetMetaDataByRatingKeyDirectorTypedDict, - GetMetaDataByRatingKeyGenre, - GetMetaDataByRatingKeyGenreTypedDict, - GetMetaDataByRatingKeyMedia, - GetMetaDataByRatingKeyMediaContainer, - GetMetaDataByRatingKeyMediaContainerTypedDict, - GetMetaDataByRatingKeyMediaTypedDict, - GetMetaDataByRatingKeyMetadata, - GetMetaDataByRatingKeyMetadataTypedDict, - GetMetaDataByRatingKeyPart, - GetMetaDataByRatingKeyPartTypedDict, - GetMetaDataByRatingKeyRequest, - GetMetaDataByRatingKeyRequestTypedDict, - GetMetaDataByRatingKeyResponse, - GetMetaDataByRatingKeyResponseBody, - GetMetaDataByRatingKeyResponseBodyTypedDict, - GetMetaDataByRatingKeyResponseTypedDict, - GetMetaDataByRatingKeyRole, - GetMetaDataByRatingKeyRoleTypedDict, - GetMetaDataByRatingKeyStream, - GetMetaDataByRatingKeyStreamTypedDict, - GetMetaDataByRatingKeyWriter, - GetMetaDataByRatingKeyWriterTypedDict, - Guids, - GuidsTypedDict, - Producer, - ProducerTypedDict, - Ratings, - RatingsTypedDict, -) from .get_recently_added import ( Collection, CollectionTypedDict, @@ -1228,6 +1251,17 @@ __all__ = [ "GenreTypedDict", "GeoData", "GeoDataTypedDict", + "GetActorsLibraryDirectory", + "GetActorsLibraryDirectoryTypedDict", + "GetActorsLibraryMediaContainer", + "GetActorsLibraryMediaContainerTypedDict", + "GetActorsLibraryQueryParamType", + "GetActorsLibraryRequest", + "GetActorsLibraryRequestTypedDict", + "GetActorsLibraryResponse", + "GetActorsLibraryResponseBody", + "GetActorsLibraryResponseBodyTypedDict", + "GetActorsLibraryResponseTypedDict", "GetAllLibrariesDirectory", "GetAllLibrariesDirectoryTypedDict", "GetAllLibrariesLocation", @@ -1270,6 +1304,7 @@ __all__ = [ "GetCountriesLibraryDirectoryTypedDict", "GetCountriesLibraryMediaContainer", "GetCountriesLibraryMediaContainerTypedDict", + "GetCountriesLibraryQueryParamType", "GetCountriesLibraryRequest", "GetCountriesLibraryRequestTypedDict", "GetCountriesLibraryResponse", @@ -1290,6 +1325,7 @@ __all__ = [ "GetGenresLibraryDirectoryTypedDict", "GetGenresLibraryMediaContainer", "GetGenresLibraryMediaContainerTypedDict", + "GetGenresLibraryQueryParamType", "GetGenresLibraryRequest", "GetGenresLibraryRequestTypedDict", "GetGenresLibraryResponse", @@ -1440,6 +1476,38 @@ __all__ = [ "GetLibraryItemsUltraBlurColorsTypedDict", "GetLibraryItemsWriter", "GetLibraryItemsWriterTypedDict", + "GetMediaMetaDataCountry", + "GetMediaMetaDataCountryTypedDict", + "GetMediaMetaDataDirector", + "GetMediaMetaDataDirectorTypedDict", + "GetMediaMetaDataGenre", + "GetMediaMetaDataGenreTypedDict", + "GetMediaMetaDataImage", + "GetMediaMetaDataImageTypedDict", + "GetMediaMetaDataLocation", + "GetMediaMetaDataLocationTypedDict", + "GetMediaMetaDataMedia", + "GetMediaMetaDataMediaContainer", + "GetMediaMetaDataMediaContainerTypedDict", + "GetMediaMetaDataMediaTypedDict", + "GetMediaMetaDataMetadata", + "GetMediaMetaDataMetadataTypedDict", + "GetMediaMetaDataPart", + "GetMediaMetaDataPartTypedDict", + "GetMediaMetaDataRequest", + "GetMediaMetaDataRequestTypedDict", + "GetMediaMetaDataResponse", + "GetMediaMetaDataResponseBody", + "GetMediaMetaDataResponseBodyTypedDict", + "GetMediaMetaDataResponseTypedDict", + "GetMediaMetaDataRole", + "GetMediaMetaDataRoleTypedDict", + "GetMediaMetaDataStream", + "GetMediaMetaDataStreamTypedDict", + "GetMediaMetaDataUltraBlurColors", + "GetMediaMetaDataUltraBlurColorsTypedDict", + "GetMediaMetaDataWriter", + "GetMediaMetaDataWriterTypedDict", "GetMediaProvidersDirectory", "GetMediaProvidersDirectoryTypedDict", "GetMediaProvidersMediaContainer", @@ -1450,32 +1518,6 @@ __all__ = [ "GetMediaProvidersResponseBody", "GetMediaProvidersResponseBodyTypedDict", "GetMediaProvidersResponseTypedDict", - "GetMetaDataByRatingKeyCountry", - "GetMetaDataByRatingKeyCountryTypedDict", - "GetMetaDataByRatingKeyDirector", - "GetMetaDataByRatingKeyDirectorTypedDict", - "GetMetaDataByRatingKeyGenre", - "GetMetaDataByRatingKeyGenreTypedDict", - "GetMetaDataByRatingKeyMedia", - "GetMetaDataByRatingKeyMediaContainer", - "GetMetaDataByRatingKeyMediaContainerTypedDict", - "GetMetaDataByRatingKeyMediaTypedDict", - "GetMetaDataByRatingKeyMetadata", - "GetMetaDataByRatingKeyMetadataTypedDict", - "GetMetaDataByRatingKeyPart", - "GetMetaDataByRatingKeyPartTypedDict", - "GetMetaDataByRatingKeyRequest", - "GetMetaDataByRatingKeyRequestTypedDict", - "GetMetaDataByRatingKeyResponse", - "GetMetaDataByRatingKeyResponseBody", - "GetMetaDataByRatingKeyResponseBodyTypedDict", - "GetMetaDataByRatingKeyResponseTypedDict", - "GetMetaDataByRatingKeyRole", - "GetMetaDataByRatingKeyRoleTypedDict", - "GetMetaDataByRatingKeyStream", - "GetMetaDataByRatingKeyStreamTypedDict", - "GetMetaDataByRatingKeyWriter", - "GetMetaDataByRatingKeyWriterTypedDict", "GetMetadataChildrenDirectory", "GetMetadataChildrenDirectoryTypedDict", "GetMetadataChildrenMediaContainer", @@ -1990,8 +2032,8 @@ __all__ = [ "QueryParamOnlyTransient", "QueryParamSmart", "QueryParamType", - "Ratings", - "RatingsTypedDict", + "Rating", + "RatingTypedDict", "Release", "ReleaseTypedDict", "ResponseBody", @@ -2016,6 +2058,8 @@ __all__ = [ "SharedSources", "SharedSourcesTypedDict", "ShowOrdering", + "Similar", + "SimilarTypedDict", "Skip", "Smart", "Sort", diff --git a/src/plex_api_client/models/operations/get_actors_library.py b/src/plex_api_client/models/operations/get_actors_library.py new file mode 100644 index 0000000..ab727cc --- /dev/null +++ b/src/plex_api_client/models/operations/get_actors_library.py @@ -0,0 +1,205 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from enum import Enum +import httpx +from plex_api_client.types import BaseModel +from plex_api_client.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata +import pydantic +from typing import List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class GetActorsLibraryQueryParamType(int, Enum): + r"""The type of media to retrieve or filter by. + 1 = movie + 2 = show + 3 = season + 4 = episode + E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + + """ + + MOVIE = 1 + TV_SHOW = 2 + SEASON = 3 + EPISODE = 4 + AUDIO = 8 + ALBUM = 9 + TRACK = 10 + + +class GetActorsLibraryRequestTypedDict(TypedDict): + section_key: int + r"""The unique key of the Plex library. + Note: This is unique in the context of the Plex server. + + """ + type: GetActorsLibraryQueryParamType + r"""The type of media to retrieve or filter by. + 1 = movie + 2 = show + 3 = season + 4 = episode + E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + + """ + + +class GetActorsLibraryRequest(BaseModel): + section_key: Annotated[ + int, + pydantic.Field(alias="sectionKey"), + FieldMetadata(path=PathParamMetadata(style="simple", explode=False)), + ] + r"""The unique key of the Plex library. + Note: This is unique in the context of the Plex server. + + """ + + type: Annotated[ + GetActorsLibraryQueryParamType, + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] + r"""The type of media to retrieve or filter by. + 1 = movie + 2 = show + 3 = season + 4 = episode + E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + + """ + + +class GetActorsLibraryDirectoryTypedDict(TypedDict): + fast_key: str + r"""A fast lookup key for the actor relative url.""" + thumb: str + r"""URL for the thumbnail image of the actor.""" + key: str + r"""A unique key representing the actor.""" + title: str + r"""The name of the actor.""" + + +class GetActorsLibraryDirectory(BaseModel): + fast_key: Annotated[str, pydantic.Field(alias="fastKey")] + r"""A fast lookup key for the actor relative url.""" + + thumb: str + r"""URL for the thumbnail image of the actor.""" + + key: str + r"""A unique key representing the actor.""" + + title: str + r"""The name of the actor.""" + + +class GetActorsLibraryMediaContainerTypedDict(TypedDict): + size: float + allow_sync: bool + r"""Indicates whether syncing is allowed.""" + art: str + r"""URL for the background artwork of the media container.""" + identifier: str + r"""An plugin identifier for the media container.""" + media_tag_prefix: str + r"""The prefix used for media tag resource paths.""" + media_tag_version: int + r"""The version number for media tags.""" + nocache: bool + r"""Specifies whether caching is disabled.""" + thumb: str + r"""URL for the thumbnail image of the media container.""" + title1: str + r"""The primary title of the media container.""" + title2: str + r"""The secondary title of the media container.""" + view_group: str + r"""Identifier for the view group layout.""" + view_mode: str + r"""Identifier for the view mode.""" + directory: NotRequired[List[GetActorsLibraryDirectoryTypedDict]] + r"""An array of actor entries for media items.""" + + +class GetActorsLibraryMediaContainer(BaseModel): + size: float + + allow_sync: Annotated[bool, pydantic.Field(alias="allowSync")] + r"""Indicates whether syncing is allowed.""" + + art: str + r"""URL for the background artwork of the media container.""" + + identifier: str + r"""An plugin identifier for the media container.""" + + media_tag_prefix: Annotated[str, pydantic.Field(alias="mediaTagPrefix")] + r"""The prefix used for media tag resource paths.""" + + media_tag_version: Annotated[int, pydantic.Field(alias="mediaTagVersion")] + r"""The version number for media tags.""" + + nocache: bool + r"""Specifies whether caching is disabled.""" + + thumb: str + r"""URL for the thumbnail image of the media container.""" + + title1: str + r"""The primary title of the media container.""" + + title2: str + r"""The secondary title of the media container.""" + + view_group: Annotated[str, pydantic.Field(alias="viewGroup")] + r"""Identifier for the view group layout.""" + + view_mode: Annotated[str, pydantic.Field(alias="viewMode")] + r"""Identifier for the view mode.""" + + directory: Annotated[ + Optional[List[GetActorsLibraryDirectory]], pydantic.Field(alias="Directory") + ] = None + r"""An array of actor entries for media items.""" + + +class GetActorsLibraryResponseBodyTypedDict(TypedDict): + r"""Successful response containing media container data.""" + + media_container: NotRequired[GetActorsLibraryMediaContainerTypedDict] + + +class GetActorsLibraryResponseBody(BaseModel): + r"""Successful response containing media container data.""" + + media_container: Annotated[ + Optional[GetActorsLibraryMediaContainer], pydantic.Field(alias="MediaContainer") + ] = None + + +class GetActorsLibraryResponseTypedDict(TypedDict): + content_type: str + r"""HTTP response content type for this operation""" + status_code: int + r"""HTTP response status code for this operation""" + raw_response: httpx.Response + r"""Raw HTTP response; suitable for custom response parsing""" + object: NotRequired[GetActorsLibraryResponseBodyTypedDict] + r"""Successful response containing media container data.""" + + +class GetActorsLibraryResponse(BaseModel): + content_type: str + r"""HTTP response content type for this operation""" + + status_code: int + r"""HTTP response status code for this operation""" + + raw_response: httpx.Response + r"""Raw HTTP response; suitable for custom response parsing""" + + object: Optional[GetActorsLibraryResponseBody] = None + r"""Successful response containing media container data.""" diff --git a/src/plex_api_client/models/operations/get_countries_library.py b/src/plex_api_client/models/operations/get_countries_library.py index 8e8f764..8d72c44 100644 --- a/src/plex_api_client/models/operations/get_countries_library.py +++ b/src/plex_api_client/models/operations/get_countries_library.py @@ -1,20 +1,49 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations +from enum import Enum import httpx from plex_api_client.types import BaseModel -from plex_api_client.utils import FieldMetadata, PathParamMetadata +from plex_api_client.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata import pydantic from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict +class GetCountriesLibraryQueryParamType(int, Enum): + r"""The type of media to retrieve or filter by. + 1 = movie + 2 = show + 3 = season + 4 = episode + E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + + """ + + MOVIE = 1 + TV_SHOW = 2 + SEASON = 3 + EPISODE = 4 + AUDIO = 8 + ALBUM = 9 + TRACK = 10 + + class GetCountriesLibraryRequestTypedDict(TypedDict): section_key: int r"""The unique key of the Plex library. Note: This is unique in the context of the Plex server. """ + type: GetCountriesLibraryQueryParamType + r"""The type of media to retrieve or filter by. + 1 = movie + 2 = show + 3 = season + 4 = episode + E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + + """ class GetCountriesLibraryRequest(BaseModel): @@ -28,6 +57,19 @@ class GetCountriesLibraryRequest(BaseModel): """ + type: Annotated[ + GetCountriesLibraryQueryParamType, + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] + r"""The type of media to retrieve or filter by. + 1 = movie + 2 = show + 3 = season + 4 = episode + E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + + """ + class GetCountriesLibraryDirectoryTypedDict(TypedDict): fast_key: str diff --git a/src/plex_api_client/models/operations/get_genres_library.py b/src/plex_api_client/models/operations/get_genres_library.py index d926eb8..1b60b57 100644 --- a/src/plex_api_client/models/operations/get_genres_library.py +++ b/src/plex_api_client/models/operations/get_genres_library.py @@ -1,20 +1,49 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations +from enum import Enum import httpx from plex_api_client.types import BaseModel -from plex_api_client.utils import FieldMetadata, PathParamMetadata +from plex_api_client.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata import pydantic from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict +class GetGenresLibraryQueryParamType(int, Enum): + r"""The type of media to retrieve or filter by. + 1 = movie + 2 = show + 3 = season + 4 = episode + E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + + """ + + MOVIE = 1 + TV_SHOW = 2 + SEASON = 3 + EPISODE = 4 + AUDIO = 8 + ALBUM = 9 + TRACK = 10 + + class GetGenresLibraryRequestTypedDict(TypedDict): section_key: int r"""The unique key of the Plex library. Note: This is unique in the context of the Plex server. """ + type: GetGenresLibraryQueryParamType + r"""The type of media to retrieve or filter by. + 1 = movie + 2 = show + 3 = season + 4 = episode + E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + + """ class GetGenresLibraryRequest(BaseModel): @@ -28,6 +57,19 @@ class GetGenresLibraryRequest(BaseModel): """ + type: Annotated[ + GetGenresLibraryQueryParamType, + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] + r"""The type of media to retrieve or filter by. + 1 = movie + 2 = show + 3 = season + 4 = episode + E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + + """ + class GetGenresLibraryDirectoryTypedDict(TypedDict): fast_key: str diff --git a/src/plex_api_client/models/operations/get_library_items.py b/src/plex_api_client/models/operations/get_library_items.py index 9cd87d0..ccd6870 100644 --- a/src/plex_api_client/models/operations/get_library_items.py +++ b/src/plex_api_client/models/operations/get_library_items.py @@ -44,7 +44,7 @@ class IncludeGuids(int, Enum): class GetLibraryItemsQueryParamType(int, Enum): - r"""The type of media to retrieve. + r"""The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season @@ -72,6 +72,15 @@ class GetLibraryItemsQueryParamIncludeMeta(int, Enum): class GetLibraryItemsRequestTypedDict(TypedDict): tag: Tag r"""A key representing a specific tag within the section.""" + type: GetLibraryItemsQueryParamType + r"""The type of media to retrieve or filter by. + 1 = movie + 2 = show + 3 = season + 4 = episode + E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + + """ section_key: int r"""The unique key of the Plex library. Note: This is unique in the context of the Plex server. @@ -80,15 +89,6 @@ class GetLibraryItemsRequestTypedDict(TypedDict): include_guids: NotRequired[IncludeGuids] r"""Adds the Guids object to the response - """ - type: NotRequired[GetLibraryItemsQueryParamType] - r"""The type of media to retrieve. - 1 = movie - 2 = show - 3 = season - 4 = episode - E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries - """ include_meta: NotRequired[GetLibraryItemsQueryParamIncludeMeta] r"""Adds the Meta object to the response @@ -114,6 +114,19 @@ class GetLibraryItemsRequest(BaseModel): ] r"""A key representing a specific tag within the section.""" + type: Annotated[ + GetLibraryItemsQueryParamType, + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] + r"""The type of media to retrieve or filter by. + 1 = movie + 2 = show + 3 = season + 4 = episode + E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + + """ + section_key: Annotated[ int, pydantic.Field(alias="sectionKey"), @@ -133,19 +146,6 @@ class GetLibraryItemsRequest(BaseModel): """ - type: Annotated[ - Optional[GetLibraryItemsQueryParamType], - FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), - ] = None - r"""The type of media to retrieve. - 1 = movie - 2 = show - 3 = season - 4 = episode - E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries - - """ - include_meta: Annotated[ Optional[GetLibraryItemsQueryParamIncludeMeta], pydantic.Field(alias="includeMeta"), diff --git a/src/plex_api_client/models/operations/get_media_meta_data.py b/src/plex_api_client/models/operations/get_media_meta_data.py new file mode 100644 index 0000000..5837b76 --- /dev/null +++ b/src/plex_api_client/models/operations/get_media_meta_data.py @@ -0,0 +1,1242 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from datetime import date +import httpx +from plex_api_client.types import BaseModel +from plex_api_client.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata +import pydantic +from typing import List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class GetMediaMetaDataRequestTypedDict(TypedDict): + rating_key: int + r"""the id of the library item to return the children of.""" + include_concerts: NotRequired[bool] + r"""Include concerts data if set to true.""" + include_extras: NotRequired[bool] + r"""Include extra content (e.g. bonus features).""" + include_on_deck: NotRequired[bool] + r"""Include on-deck items.""" + include_popular_leaves: NotRequired[bool] + r"""Include popular leaves (episodes/chapters).""" + include_preferences: NotRequired[bool] + r"""Include preferences information.""" + include_reviews: NotRequired[bool] + r"""Include reviews for the content.""" + include_chapters: NotRequired[bool] + r"""Include chapter details.""" + include_stations: NotRequired[bool] + r"""Include station data.""" + include_external_media: NotRequired[bool] + r"""Include external media data.""" + async_augment_metadata: NotRequired[bool] + r"""Trigger asynchronous metadata augmentation.""" + async_check_files: NotRequired[bool] + r"""Trigger asynchronous file checking.""" + async_refresh_analysis: NotRequired[bool] + r"""Trigger asynchronous refresh of analysis.""" + async_refresh_local_media_agent: NotRequired[bool] + r"""Trigger asynchronous refresh of the local media agent.""" + + +class GetMediaMetaDataRequest(BaseModel): + rating_key: Annotated[ + int, + pydantic.Field(alias="ratingKey"), + FieldMetadata(path=PathParamMetadata(style="simple", explode=False)), + ] + r"""the id of the library item to return the children of.""" + + include_concerts: Annotated[ + Optional[bool], + pydantic.Field(alias="includeConcerts"), + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Include concerts data if set to true.""" + + include_extras: Annotated[ + Optional[bool], + pydantic.Field(alias="includeExtras"), + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Include extra content (e.g. bonus features).""" + + include_on_deck: Annotated[ + Optional[bool], + pydantic.Field(alias="includeOnDeck"), + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Include on-deck items.""" + + include_popular_leaves: Annotated[ + Optional[bool], + pydantic.Field(alias="includePopularLeaves"), + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Include popular leaves (episodes/chapters).""" + + include_preferences: Annotated[ + Optional[bool], + pydantic.Field(alias="includePreferences"), + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Include preferences information.""" + + include_reviews: Annotated[ + Optional[bool], + pydantic.Field(alias="includeReviews"), + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Include reviews for the content.""" + + include_chapters: Annotated[ + Optional[bool], + pydantic.Field(alias="includeChapters"), + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Include chapter details.""" + + include_stations: Annotated[ + Optional[bool], + pydantic.Field(alias="includeStations"), + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Include station data.""" + + include_external_media: Annotated[ + Optional[bool], + pydantic.Field(alias="includeExternalMedia"), + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Include external media data.""" + + async_augment_metadata: Annotated[ + Optional[bool], + pydantic.Field(alias="asyncAugmentMetadata"), + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Trigger asynchronous metadata augmentation.""" + + async_check_files: Annotated[ + Optional[bool], + pydantic.Field(alias="asyncCheckFiles"), + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Trigger asynchronous file checking.""" + + async_refresh_analysis: Annotated[ + Optional[bool], + pydantic.Field(alias="asyncRefreshAnalysis"), + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Trigger asynchronous refresh of analysis.""" + + async_refresh_local_media_agent: Annotated[ + Optional[bool], + pydantic.Field(alias="asyncRefreshLocalMediaAgent"), + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Trigger asynchronous refresh of the local media agent.""" + + +class GetMediaMetaDataStreamTypedDict(TypedDict): + id: int + r"""Unique stream identifier.""" + stream_type: int + r"""Stream type (1=video, 2=audio, 3=subtitle).""" + codec: str + r"""Codec used by the stream.""" + index: int + r"""Index of the stream.""" + bitrate: int + r"""Bitrate of the stream.""" + language: str + r"""Language of the stream.""" + language_tag: str + r"""Language tag (e.g., en).""" + language_code: str + r"""ISO language code.""" + display_title: str + r"""Display title for the stream.""" + extended_display_title: str + r"""Extended display title for the stream.""" + default: NotRequired[bool] + r"""Indicates if this stream is default.""" + dovibl_compat_id: NotRequired[int] + r"""Dolby Vision BL compatibility ID.""" + dovibl_present: NotRequired[bool] + r"""Indicates if Dolby Vision BL is present.""" + doviel_present: NotRequired[bool] + r"""Indicates if Dolby Vision EL is present.""" + dovi_level: NotRequired[int] + r"""Dolby Vision level.""" + dovi_present: NotRequired[bool] + r"""Indicates if Dolby Vision is present.""" + dovi_profile: NotRequired[int] + r"""Dolby Vision profile.""" + dovirpu_present: NotRequired[bool] + r"""Indicates if Dolby Vision RPU is present.""" + dovi_version: NotRequired[str] + r"""Dolby Vision version.""" + bit_depth: NotRequired[int] + r"""Bit depth of the video stream.""" + chroma_location: NotRequired[str] + r"""Chroma sample location.""" + chroma_subsampling: NotRequired[str] + r"""Chroma subsampling format.""" + coded_height: NotRequired[int] + r"""Coded video height.""" + coded_width: NotRequired[int] + r"""Coded video width.""" + color_primaries: NotRequired[str] + r"""Color primaries used.""" + color_range: NotRequired[str] + r"""Color range (e.g., tv).""" + color_space: NotRequired[str] + r"""Color space.""" + color_trc: NotRequired[str] + r"""Color transfer characteristics.""" + frame_rate: NotRequired[float] + r"""Frame rate of the stream.""" + height: NotRequired[int] + r"""Height of the video stream.""" + level: NotRequired[int] + r"""Video level.""" + original: NotRequired[bool] + r"""Indicates if this is the original stream.""" + has_scaling_matrix: NotRequired[bool] + profile: NotRequired[str] + r"""Video profile.""" + scan_type: NotRequired[str] + ref_frames: NotRequired[int] + r"""Number of reference frames.""" + width: NotRequired[int] + r"""Width of the video stream.""" + selected: NotRequired[bool] + r"""Indicates if this stream is selected (applicable for audio streams).""" + forced: NotRequired[bool] + channels: NotRequired[int] + r"""Number of audio channels (for audio streams).""" + audio_channel_layout: NotRequired[str] + r"""Audio channel layout.""" + sampling_rate: NotRequired[int] + r"""Sampling rate for the audio stream.""" + can_auto_sync: NotRequired[bool] + r"""Indicates if the stream can auto-sync.""" + hearing_impaired: NotRequired[bool] + r"""Indicates if the stream is for the hearing impaired.""" + dub: NotRequired[bool] + r"""Indicates if the stream is a dub.""" + title: NotRequired[str] + r"""Optional title for the stream (e.g., language variant).""" + + +class GetMediaMetaDataStream(BaseModel): + id: int + r"""Unique stream identifier.""" + + stream_type: Annotated[int, pydantic.Field(alias="streamType")] + r"""Stream type (1=video, 2=audio, 3=subtitle).""" + + codec: str + r"""Codec used by the stream.""" + + index: int + r"""Index of the stream.""" + + bitrate: int + r"""Bitrate of the stream.""" + + language: str + r"""Language of the stream.""" + + language_tag: Annotated[str, pydantic.Field(alias="languageTag")] + r"""Language tag (e.g., en).""" + + language_code: Annotated[str, pydantic.Field(alias="languageCode")] + r"""ISO language code.""" + + display_title: Annotated[str, pydantic.Field(alias="displayTitle")] + r"""Display title for the stream.""" + + extended_display_title: Annotated[str, pydantic.Field(alias="extendedDisplayTitle")] + r"""Extended display title for the stream.""" + + default: Optional[bool] = None + r"""Indicates if this stream is default.""" + + dovibl_compat_id: Annotated[ + Optional[int], pydantic.Field(alias="DOVIBLCompatID") + ] = None + r"""Dolby Vision BL compatibility ID.""" + + dovibl_present: Annotated[Optional[bool], pydantic.Field(alias="DOVIBLPresent")] = ( + None + ) + r"""Indicates if Dolby Vision BL is present.""" + + doviel_present: Annotated[Optional[bool], pydantic.Field(alias="DOVIELPresent")] = ( + None + ) + r"""Indicates if Dolby Vision EL is present.""" + + dovi_level: Annotated[Optional[int], pydantic.Field(alias="DOVILevel")] = None + r"""Dolby Vision level.""" + + dovi_present: Annotated[Optional[bool], pydantic.Field(alias="DOVIPresent")] = None + r"""Indicates if Dolby Vision is present.""" + + dovi_profile: Annotated[Optional[int], pydantic.Field(alias="DOVIProfile")] = None + r"""Dolby Vision profile.""" + + dovirpu_present: Annotated[ + Optional[bool], pydantic.Field(alias="DOVIRPUPresent") + ] = None + r"""Indicates if Dolby Vision RPU is present.""" + + dovi_version: Annotated[Optional[str], pydantic.Field(alias="DOVIVersion")] = None + r"""Dolby Vision version.""" + + bit_depth: Annotated[Optional[int], pydantic.Field(alias="bitDepth")] = None + r"""Bit depth of the video stream.""" + + chroma_location: Annotated[ + Optional[str], pydantic.Field(alias="chromaLocation") + ] = None + r"""Chroma sample location.""" + + chroma_subsampling: Annotated[ + Optional[str], pydantic.Field(alias="chromaSubsampling") + ] = None + r"""Chroma subsampling format.""" + + coded_height: Annotated[Optional[int], pydantic.Field(alias="codedHeight")] = None + r"""Coded video height.""" + + coded_width: Annotated[Optional[int], pydantic.Field(alias="codedWidth")] = None + r"""Coded video width.""" + + color_primaries: Annotated[ + Optional[str], pydantic.Field(alias="colorPrimaries") + ] = None + r"""Color primaries used.""" + + color_range: Annotated[Optional[str], pydantic.Field(alias="colorRange")] = None + r"""Color range (e.g., tv).""" + + color_space: Annotated[Optional[str], pydantic.Field(alias="colorSpace")] = None + r"""Color space.""" + + color_trc: Annotated[Optional[str], pydantic.Field(alias="colorTrc")] = None + r"""Color transfer characteristics.""" + + frame_rate: Annotated[Optional[float], pydantic.Field(alias="frameRate")] = None + r"""Frame rate of the stream.""" + + height: Optional[int] = None + r"""Height of the video stream.""" + + level: Optional[int] = None + r"""Video level.""" + + original: Optional[bool] = None + r"""Indicates if this is the original stream.""" + + has_scaling_matrix: Annotated[ + Optional[bool], pydantic.Field(alias="hasScalingMatrix") + ] = None + + profile: Optional[str] = None + r"""Video profile.""" + + scan_type: Annotated[Optional[str], pydantic.Field(alias="scanType")] = None + + ref_frames: Annotated[Optional[int], pydantic.Field(alias="refFrames")] = None + r"""Number of reference frames.""" + + width: Optional[int] = None + r"""Width of the video stream.""" + + selected: Optional[bool] = None + r"""Indicates if this stream is selected (applicable for audio streams).""" + + forced: Optional[bool] = None + + channels: Optional[int] = None + r"""Number of audio channels (for audio streams).""" + + audio_channel_layout: Annotated[ + Optional[str], pydantic.Field(alias="audioChannelLayout") + ] = None + r"""Audio channel layout.""" + + sampling_rate: Annotated[Optional[int], pydantic.Field(alias="samplingRate")] = None + r"""Sampling rate for the audio stream.""" + + can_auto_sync: Annotated[Optional[bool], pydantic.Field(alias="canAutoSync")] = None + r"""Indicates if the stream can auto-sync.""" + + hearing_impaired: Annotated[ + Optional[bool], pydantic.Field(alias="hearingImpaired") + ] = None + r"""Indicates if the stream is for the hearing impaired.""" + + dub: Optional[bool] = None + r"""Indicates if the stream is a dub.""" + + title: Optional[str] = None + r"""Optional title for the stream (e.g., language variant).""" + + +class GetMediaMetaDataPartTypedDict(TypedDict): + id: int + r"""Unique part identifier.""" + key: str + r"""Key to access this part.""" + duration: int + r"""Duration of the part in milliseconds.""" + file: str + r"""File path for the part.""" + size: int + r"""File size in bytes.""" + container: str + r"""Container format of the part.""" + video_profile: str + r"""Video profile for the part.""" + stream: List[GetMediaMetaDataStreamTypedDict] + r"""An array of streams for this part.""" + accessible: NotRequired[bool] + r"""Indicates if the part is accessible.""" + exists: NotRequired[bool] + r"""Indicates if the part exists.""" + indexes: NotRequired[str] + + +class GetMediaMetaDataPart(BaseModel): + id: int + r"""Unique part identifier.""" + + key: str + r"""Key to access this part.""" + + duration: int + r"""Duration of the part in milliseconds.""" + + file: str + r"""File path for the part.""" + + size: int + r"""File size in bytes.""" + + container: str + r"""Container format of the part.""" + + video_profile: Annotated[str, pydantic.Field(alias="videoProfile")] + r"""Video profile for the part.""" + + stream: Annotated[List[GetMediaMetaDataStream], pydantic.Field(alias="Stream")] + r"""An array of streams for this part.""" + + accessible: Optional[bool] = None + r"""Indicates if the part is accessible.""" + + exists: Optional[bool] = None + r"""Indicates if the part exists.""" + + indexes: Optional[str] = None + + +class GetMediaMetaDataMediaTypedDict(TypedDict): + id: int + r"""Unique media identifier.""" + duration: int + r"""Duration of the media in milliseconds.""" + bitrate: int + r"""Bitrate in bits per second.""" + width: int + r"""Video width in pixels.""" + height: int + r"""Video height in pixels.""" + aspect_ratio: float + r"""Aspect ratio of the video.""" + audio_channels: int + r"""Number of audio channels.""" + audio_codec: str + r"""Audio codec used.""" + video_codec: str + r"""Video codec used.""" + video_resolution: str + r"""Video resolution (e.g., 4k).""" + container: str + r"""File container type.""" + video_frame_rate: str + r"""Frame rate of the video (e.g., 24p).""" + video_profile: str + r"""Video profile (e.g., main 10).""" + has_voice_activity: bool + r"""Indicates whether voice activity is detected.""" + part: List[GetMediaMetaDataPartTypedDict] + r"""An array of parts for this media item.""" + + +class GetMediaMetaDataMedia(BaseModel): + id: int + r"""Unique media identifier.""" + + duration: int + r"""Duration of the media in milliseconds.""" + + bitrate: int + r"""Bitrate in bits per second.""" + + width: int + r"""Video width in pixels.""" + + height: int + r"""Video height in pixels.""" + + aspect_ratio: Annotated[float, pydantic.Field(alias="aspectRatio")] + r"""Aspect ratio of the video.""" + + audio_channels: Annotated[int, pydantic.Field(alias="audioChannels")] + r"""Number of audio channels.""" + + audio_codec: Annotated[str, pydantic.Field(alias="audioCodec")] + r"""Audio codec used.""" + + video_codec: Annotated[str, pydantic.Field(alias="videoCodec")] + r"""Video codec used.""" + + video_resolution: Annotated[str, pydantic.Field(alias="videoResolution")] + r"""Video resolution (e.g., 4k).""" + + container: str + r"""File container type.""" + + video_frame_rate: Annotated[str, pydantic.Field(alias="videoFrameRate")] + r"""Frame rate of the video (e.g., 24p).""" + + video_profile: Annotated[str, pydantic.Field(alias="videoProfile")] + r"""Video profile (e.g., main 10).""" + + has_voice_activity: Annotated[bool, pydantic.Field(alias="hasVoiceActivity")] + r"""Indicates whether voice activity is detected.""" + + part: Annotated[List[GetMediaMetaDataPart], pydantic.Field(alias="Part")] + r"""An array of parts for this media item.""" + + +class GetMediaMetaDataImageTypedDict(TypedDict): + alt: str + r"""Alternate text for the image.""" + type: str + r"""The type of image (e.g., coverPoster, background, clearLogo).""" + url: str + r"""The URL of the image.""" + + +class GetMediaMetaDataImage(BaseModel): + alt: str + r"""Alternate text for the image.""" + + type: str + r"""The type of image (e.g., coverPoster, background, clearLogo).""" + + url: str + r"""The URL of the image.""" + + +class GetMediaMetaDataUltraBlurColorsTypedDict(TypedDict): + top_left: str + r"""The top-left color value.""" + top_right: str + r"""The top-right color value.""" + bottom_right: str + r"""The bottom-right color value.""" + bottom_left: str + r"""The bottom-left color value.""" + + +class GetMediaMetaDataUltraBlurColors(BaseModel): + top_left: Annotated[str, pydantic.Field(alias="topLeft")] + r"""The top-left color value.""" + + top_right: Annotated[str, pydantic.Field(alias="topRight")] + r"""The top-right color value.""" + + bottom_right: Annotated[str, pydantic.Field(alias="bottomRight")] + r"""The bottom-right color value.""" + + bottom_left: Annotated[str, pydantic.Field(alias="bottomLeft")] + r"""The bottom-left color value.""" + + +class GetMediaMetaDataGenreTypedDict(TypedDict): + id: int + r"""The unique genre identifier.""" + filter_: str + r"""The filter string for the genre.""" + tag: str + r"""The genre name.""" + + +class GetMediaMetaDataGenre(BaseModel): + id: int + r"""The unique genre identifier.""" + + filter_: Annotated[str, pydantic.Field(alias="filter")] + r"""The filter string for the genre.""" + + tag: str + r"""The genre name.""" + + +class GetMediaMetaDataCountryTypedDict(TypedDict): + id: int + r"""The unique country identifier.""" + filter_: str + r"""The filter string for the country.""" + tag: str + r"""The country name.""" + + +class GetMediaMetaDataCountry(BaseModel): + id: int + r"""The unique country identifier.""" + + filter_: Annotated[str, pydantic.Field(alias="filter")] + r"""The filter string for the country.""" + + tag: str + r"""The country name.""" + + +class GuidsTypedDict(TypedDict): + id: str + r"""The GUID value.""" + + +class Guids(BaseModel): + id: str + r"""The GUID value.""" + + +class RatingTypedDict(TypedDict): + image: str + r"""The image or reference for the rating.""" + value: float + r"""The rating value.""" + type: str + r"""The type of rating (e.g., audience, critic).""" + + +class Rating(BaseModel): + image: str + r"""The image or reference for the rating.""" + + value: float + r"""The rating value.""" + + type: str + r"""The type of rating (e.g., audience, critic).""" + + +class GetMediaMetaDataRoleTypedDict(TypedDict): + id: int + r"""The unique role identifier.""" + filter_: str + r"""The filter string for the role.""" + tag: str + r"""The actor's name.""" + tag_key: str + r"""A key associated with the actor tag.""" + role: NotRequired[str] + r"""The character name or role.""" + thumb: NotRequired[str] + r"""URL for the role thumbnail image.""" + + +class GetMediaMetaDataRole(BaseModel): + id: int + r"""The unique role identifier.""" + + filter_: Annotated[str, pydantic.Field(alias="filter")] + r"""The filter string for the role.""" + + tag: str + r"""The actor's name.""" + + tag_key: Annotated[str, pydantic.Field(alias="tagKey")] + r"""A key associated with the actor tag.""" + + role: Optional[str] = None + r"""The character name or role.""" + + thumb: Optional[str] = None + r"""URL for the role thumbnail image.""" + + +class GetMediaMetaDataDirectorTypedDict(TypedDict): + id: int + r"""The unique role identifier.""" + filter_: str + r"""The filter string for the role.""" + tag: str + r"""The actor's name.""" + tag_key: str + r"""A key associated with the actor tag.""" + role: NotRequired[str] + r"""The character name or role.""" + thumb: NotRequired[str] + r"""URL for the role thumbnail image.""" + + +class GetMediaMetaDataDirector(BaseModel): + id: int + r"""The unique role identifier.""" + + filter_: Annotated[str, pydantic.Field(alias="filter")] + r"""The filter string for the role.""" + + tag: str + r"""The actor's name.""" + + tag_key: Annotated[str, pydantic.Field(alias="tagKey")] + r"""A key associated with the actor tag.""" + + role: Optional[str] = None + r"""The character name or role.""" + + thumb: Optional[str] = None + r"""URL for the role thumbnail image.""" + + +class GetMediaMetaDataWriterTypedDict(TypedDict): + id: int + r"""The unique role identifier.""" + filter_: str + r"""The filter string for the role.""" + tag: str + r"""The actor's name.""" + tag_key: str + r"""A key associated with the actor tag.""" + role: NotRequired[str] + r"""The character name or role.""" + thumb: NotRequired[str] + r"""URL for the role thumbnail image.""" + + +class GetMediaMetaDataWriter(BaseModel): + id: int + r"""The unique role identifier.""" + + filter_: Annotated[str, pydantic.Field(alias="filter")] + r"""The filter string for the role.""" + + tag: str + r"""The actor's name.""" + + tag_key: Annotated[str, pydantic.Field(alias="tagKey")] + r"""A key associated with the actor tag.""" + + role: Optional[str] = None + r"""The character name or role.""" + + thumb: Optional[str] = None + r"""URL for the role thumbnail image.""" + + +class ProducerTypedDict(TypedDict): + id: int + r"""The unique role identifier.""" + filter_: str + r"""The filter string for the role.""" + tag: str + r"""The actor's name.""" + tag_key: str + r"""A key associated with the actor tag.""" + role: NotRequired[str] + r"""The character name or role.""" + thumb: NotRequired[str] + r"""URL for the role thumbnail image.""" + + +class Producer(BaseModel): + id: int + r"""The unique role identifier.""" + + filter_: Annotated[str, pydantic.Field(alias="filter")] + r"""The filter string for the role.""" + + tag: str + r"""The actor's name.""" + + tag_key: Annotated[str, pydantic.Field(alias="tagKey")] + r"""A key associated with the actor tag.""" + + role: Optional[str] = None + r"""The character name or role.""" + + thumb: Optional[str] = None + r"""URL for the role thumbnail image.""" + + +class SimilarTypedDict(TypedDict): + id: int + r"""The unique similar item identifier.""" + filter_: str + r"""The filter string for similar items.""" + tag: str + r"""The tag or title of the similar content.""" + + +class Similar(BaseModel): + id: int + r"""The unique similar item identifier.""" + + filter_: Annotated[str, pydantic.Field(alias="filter")] + r"""The filter string for similar items.""" + + tag: str + r"""The tag or title of the similar content.""" + + +class GetMediaMetaDataLocationTypedDict(TypedDict): + path: str + r"""The file path for the location.""" + + +class GetMediaMetaDataLocation(BaseModel): + path: str + r"""The file path for the location.""" + + +class GetMediaMetaDataMetadataTypedDict(TypedDict): + rating_key: str + r"""The rating key of the metadata item.""" + key: str + r"""The API key to access metadata details.""" + guid: str + r"""The globally unique identifier for the item.""" + type: str + r"""The type of content (e.g., show, movie).""" + title: str + r"""The title of the content.""" + library_section_title: str + r"""The title of the library section.""" + library_section_id: int + r"""The ID of the library section.""" + library_section_key: str + r"""The key of the library section.""" + content_rating: str + r"""The content rating (e.g., TV-MA).""" + summary: str + r"""A summary of the content.""" + audience_rating: float + r"""The audience rating for the content.""" + year: int + r"""The release year.""" + thumb: str + r"""URL of the thumbnail image.""" + art: str + r"""URL of the art image.""" + duration: int + r"""Duration of the content in milliseconds.""" + originally_available_at: date + r"""The original release date.""" + added_at: int + r"""Unix timestamp when the item was added.""" + updated_at: int + r"""Unix timestamp when the item was last updated.""" + audience_rating_image: str + r"""The URL for the audience rating image.""" + image: List[GetMediaMetaDataImageTypedDict] + r"""An array of image objects.""" + ultra_blur_colors: GetMediaMetaDataUltraBlurColorsTypedDict + guids: List[GuidsTypedDict] + r"""An array of GUID objects.""" + rating: List[RatingTypedDict] + r"""An array of rating objects.""" + parent_rating_key: NotRequired[str] + r"""The rating key of the parent of this metadata item.""" + grandparent_rating_key: NotRequired[str] + r"""The rating key of the grandparent of this metadata item.""" + parent_guid: NotRequired[str] + r"""A GUID identifying the parent entity (e.g., season) for the item.""" + grandparent_guid: NotRequired[str] + r"""A GUID identifying the grandparent entity (e.g., show).""" + grandparent_slug: NotRequired[str] + r"""A URL-friendly identifier (slug) for the grandparent entity.""" + grandparent_key: NotRequired[str] + r"""A key identifying the grandparent metadata in the library.""" + parent_key: NotRequired[str] + r"""A key identifying the parent metadata in the library.""" + slug: NotRequired[str] + r"""A URL-friendly identifier for the item.""" + studio: NotRequired[str] + r"""The studio that produced the content.""" + original_title: NotRequired[str] + r"""The original title of the content.""" + index: NotRequired[int] + r"""The index or order of the item.""" + grandparent_title: NotRequired[str] + r"""The title of the grandparent entity (typically the show's title).""" + parent_title: NotRequired[str] + r"""The title of the parent entity (typically the season's title).""" + view_count: NotRequired[int] + r"""The number of times the item has been viewed.""" + skip_count: NotRequired[int] + r"""The number of times the item has been skipped.""" + last_viewed_at: NotRequired[int] + r"""Unix timestamp of when the item was last viewed.""" + tagline: NotRequired[str] + r"""The tagline of the content.""" + chapter_source: NotRequired[str] + primary_extra_key: NotRequired[str] + theme: NotRequired[str] + r"""URL of the theme image.""" + leaf_count: NotRequired[int] + r"""The total number of episodes (or leaves).""" + viewed_leaf_count: NotRequired[int] + r"""The number of episodes that have been viewed.""" + child_count: NotRequired[int] + r"""The number of child items.""" + parent_index: NotRequired[int] + r"""The index number of the parent entity, which could indicate its order or position.""" + parent_thumb: NotRequired[str] + r"""The URL of the parent's thumbnail image.""" + grandparent_thumb: NotRequired[str] + r"""The URL of the grandparent's thumbnail image.""" + grandparent_art: NotRequired[str] + r"""The URL of the grandparent's art image.""" + media: NotRequired[List[GetMediaMetaDataMediaTypedDict]] + genre: NotRequired[List[GetMediaMetaDataGenreTypedDict]] + r"""An array of genre tags.""" + country: NotRequired[List[GetMediaMetaDataCountryTypedDict]] + r"""An array of country tags.""" + role: NotRequired[List[GetMediaMetaDataRoleTypedDict]] + r"""An array of Actor roles.""" + director: NotRequired[List[GetMediaMetaDataDirectorTypedDict]] + r"""An array of Director roles.""" + writer: NotRequired[List[GetMediaMetaDataWriterTypedDict]] + r"""An array of Writer roles.""" + producer: NotRequired[List[ProducerTypedDict]] + r"""An array of Writer roles.""" + similar: NotRequired[List[SimilarTypedDict]] + r"""An array of similar content objects.""" + location: NotRequired[List[GetMediaMetaDataLocationTypedDict]] + r"""An array of location objects.""" + + +class GetMediaMetaDataMetadata(BaseModel): + rating_key: Annotated[str, pydantic.Field(alias="ratingKey")] + r"""The rating key of the metadata item.""" + + key: str + r"""The API key to access metadata details.""" + + guid: str + r"""The globally unique identifier for the item.""" + + type: str + r"""The type of content (e.g., show, movie).""" + + title: str + r"""The title of the content.""" + + library_section_title: Annotated[str, pydantic.Field(alias="librarySectionTitle")] + r"""The title of the library section.""" + + library_section_id: Annotated[int, pydantic.Field(alias="librarySectionID")] + r"""The ID of the library section.""" + + library_section_key: Annotated[str, pydantic.Field(alias="librarySectionKey")] + r"""The key of the library section.""" + + content_rating: Annotated[str, pydantic.Field(alias="contentRating")] + r"""The content rating (e.g., TV-MA).""" + + summary: str + r"""A summary of the content.""" + + audience_rating: Annotated[float, pydantic.Field(alias="audienceRating")] + r"""The audience rating for the content.""" + + year: int + r"""The release year.""" + + thumb: str + r"""URL of the thumbnail image.""" + + art: str + r"""URL of the art image.""" + + duration: int + r"""Duration of the content in milliseconds.""" + + originally_available_at: Annotated[ + date, pydantic.Field(alias="originallyAvailableAt") + ] + r"""The original release date.""" + + added_at: Annotated[int, pydantic.Field(alias="addedAt")] + r"""Unix timestamp when the item was added.""" + + updated_at: Annotated[int, pydantic.Field(alias="updatedAt")] + r"""Unix timestamp when the item was last updated.""" + + audience_rating_image: Annotated[str, pydantic.Field(alias="audienceRatingImage")] + r"""The URL for the audience rating image.""" + + image: Annotated[List[GetMediaMetaDataImage], pydantic.Field(alias="Image")] + r"""An array of image objects.""" + + ultra_blur_colors: Annotated[ + GetMediaMetaDataUltraBlurColors, pydantic.Field(alias="UltraBlurColors") + ] + + guids: Annotated[List[Guids], pydantic.Field(alias="Guid")] + r"""An array of GUID objects.""" + + rating: Annotated[List[Rating], pydantic.Field(alias="Rating")] + r"""An array of rating objects.""" + + parent_rating_key: Annotated[ + Optional[str], pydantic.Field(alias="parentRatingKey") + ] = None + r"""The rating key of the parent of this metadata item.""" + + grandparent_rating_key: Annotated[ + Optional[str], pydantic.Field(alias="grandparentRatingKey") + ] = None + r"""The rating key of the grandparent of this metadata item.""" + + parent_guid: Annotated[Optional[str], pydantic.Field(alias="parentGuid")] = None + r"""A GUID identifying the parent entity (e.g., season) for the item.""" + + grandparent_guid: Annotated[ + Optional[str], pydantic.Field(alias="grandparentGuid") + ] = None + r"""A GUID identifying the grandparent entity (e.g., show).""" + + grandparent_slug: Annotated[ + Optional[str], pydantic.Field(alias="grandparentSlug") + ] = None + r"""A URL-friendly identifier (slug) for the grandparent entity.""" + + grandparent_key: Annotated[ + Optional[str], pydantic.Field(alias="grandparentKey") + ] = None + r"""A key identifying the grandparent metadata in the library.""" + + parent_key: Annotated[Optional[str], pydantic.Field(alias="parentKey")] = None + r"""A key identifying the parent metadata in the library.""" + + slug: Optional[str] = None + r"""A URL-friendly identifier for the item.""" + + studio: Optional[str] = None + r"""The studio that produced the content.""" + + original_title: Annotated[Optional[str], pydantic.Field(alias="originalTitle")] = ( + None + ) + r"""The original title of the content.""" + + index: Optional[int] = None + r"""The index or order of the item.""" + + grandparent_title: Annotated[ + Optional[str], pydantic.Field(alias="grandparentTitle") + ] = None + r"""The title of the grandparent entity (typically the show's title).""" + + parent_title: Annotated[Optional[str], pydantic.Field(alias="parentTitle")] = None + r"""The title of the parent entity (typically the season's title).""" + + view_count: Annotated[Optional[int], pydantic.Field(alias="viewCount")] = None + r"""The number of times the item has been viewed.""" + + skip_count: Annotated[Optional[int], pydantic.Field(alias="skipCount")] = None + r"""The number of times the item has been skipped.""" + + last_viewed_at: Annotated[Optional[int], pydantic.Field(alias="lastViewedAt")] = ( + None + ) + r"""Unix timestamp of when the item was last viewed.""" + + tagline: Optional[str] = None + r"""The tagline of the content.""" + + chapter_source: Annotated[Optional[str], pydantic.Field(alias="chapterSource")] = ( + None + ) + + primary_extra_key: Annotated[ + Optional[str], pydantic.Field(alias="primaryExtraKey") + ] = None + + theme: Optional[str] = None + r"""URL of the theme image.""" + + leaf_count: Annotated[Optional[int], pydantic.Field(alias="leafCount")] = None + r"""The total number of episodes (or leaves).""" + + viewed_leaf_count: Annotated[ + Optional[int], pydantic.Field(alias="viewedLeafCount") + ] = None + r"""The number of episodes that have been viewed.""" + + child_count: Annotated[Optional[int], pydantic.Field(alias="childCount")] = None + r"""The number of child items.""" + + parent_index: Annotated[Optional[int], pydantic.Field(alias="parentIndex")] = None + r"""The index number of the parent entity, which could indicate its order or position.""" + + parent_thumb: Annotated[Optional[str], pydantic.Field(alias="parentThumb")] = None + r"""The URL of the parent's thumbnail image.""" + + grandparent_thumb: Annotated[ + Optional[str], pydantic.Field(alias="grandparentThumb") + ] = None + r"""The URL of the grandparent's thumbnail image.""" + + grandparent_art: Annotated[ + Optional[str], pydantic.Field(alias="grandparentArt") + ] = None + r"""The URL of the grandparent's art image.""" + + media: Annotated[ + Optional[List[GetMediaMetaDataMedia]], pydantic.Field(alias="Media") + ] = None + + genre: Annotated[ + Optional[List[GetMediaMetaDataGenre]], pydantic.Field(alias="Genre") + ] = None + r"""An array of genre tags.""" + + country: Annotated[ + Optional[List[GetMediaMetaDataCountry]], pydantic.Field(alias="Country") + ] = None + r"""An array of country tags.""" + + role: Annotated[ + Optional[List[GetMediaMetaDataRole]], pydantic.Field(alias="Role") + ] = None + r"""An array of Actor roles.""" + + director: Annotated[ + Optional[List[GetMediaMetaDataDirector]], pydantic.Field(alias="Director") + ] = None + r"""An array of Director roles.""" + + writer: Annotated[ + Optional[List[GetMediaMetaDataWriter]], pydantic.Field(alias="Writer") + ] = None + r"""An array of Writer roles.""" + + producer: Annotated[Optional[List[Producer]], pydantic.Field(alias="Producer")] = ( + None + ) + r"""An array of Writer roles.""" + + similar: Annotated[Optional[List[Similar]], pydantic.Field(alias="Similar")] = None + r"""An array of similar content objects.""" + + location: Annotated[ + Optional[List[GetMediaMetaDataLocation]], pydantic.Field(alias="Location") + ] = None + r"""An array of location objects.""" + + +class GetMediaMetaDataMediaContainerTypedDict(TypedDict): + size: float + allow_sync: bool + r"""Indicates whether syncing is allowed.""" + identifier: str + r"""An plugin identifier for the media container.""" + library_section_id: int + r"""The unique identifier for the library section.""" + library_section_title: str + r"""The title of the library section.""" + media_tag_prefix: str + r"""The prefix used for media tag resource paths.""" + media_tag_version: int + r"""The version number for media tags.""" + metadata: List[GetMediaMetaDataMetadataTypedDict] + r"""An array of metadata items.""" + library_section_uuid: NotRequired[str] + r"""The universally unique identifier for the library section.""" + + +class GetMediaMetaDataMediaContainer(BaseModel): + size: float + + allow_sync: Annotated[bool, pydantic.Field(alias="allowSync")] + r"""Indicates whether syncing is allowed.""" + + identifier: str + r"""An plugin identifier for the media container.""" + + library_section_id: Annotated[int, pydantic.Field(alias="librarySectionID")] + r"""The unique identifier for the library section.""" + + library_section_title: Annotated[str, pydantic.Field(alias="librarySectionTitle")] + r"""The title of the library section.""" + + media_tag_prefix: Annotated[str, pydantic.Field(alias="mediaTagPrefix")] + r"""The prefix used for media tag resource paths.""" + + media_tag_version: Annotated[int, pydantic.Field(alias="mediaTagVersion")] + r"""The version number for media tags.""" + + metadata: Annotated[ + List[GetMediaMetaDataMetadata], pydantic.Field(alias="Metadata") + ] + r"""An array of metadata items.""" + + library_section_uuid: Annotated[ + Optional[str], pydantic.Field(alias="librarySectionUUID") + ] = None + r"""The universally unique identifier for the library section.""" + + +class GetMediaMetaDataResponseBodyTypedDict(TypedDict): + r"""The metadata of the library item.""" + + media_container: NotRequired[GetMediaMetaDataMediaContainerTypedDict] + + +class GetMediaMetaDataResponseBody(BaseModel): + r"""The metadata of the library item.""" + + media_container: Annotated[ + Optional[GetMediaMetaDataMediaContainer], pydantic.Field(alias="MediaContainer") + ] = None + + +class GetMediaMetaDataResponseTypedDict(TypedDict): + content_type: str + r"""HTTP response content type for this operation""" + status_code: int + r"""HTTP response status code for this operation""" + raw_response: httpx.Response + r"""Raw HTTP response; suitable for custom response parsing""" + object: NotRequired[GetMediaMetaDataResponseBodyTypedDict] + r"""The metadata of the library item.""" + + +class GetMediaMetaDataResponse(BaseModel): + content_type: str + r"""HTTP response content type for this operation""" + + status_code: int + r"""HTTP response status code for this operation""" + + raw_response: httpx.Response + r"""Raw HTTP response; suitable for custom response parsing""" + + object: Optional[GetMediaMetaDataResponseBody] = None + r"""The metadata of the library item.""" diff --git a/src/plex_api_client/models/operations/get_meta_data_by_rating_key.py b/src/plex_api_client/models/operations/get_meta_data_by_rating_key.py deleted file mode 100644 index af4af57..0000000 --- a/src/plex_api_client/models/operations/get_meta_data_by_rating_key.py +++ /dev/null @@ -1,629 +0,0 @@ -"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" - -from __future__ import annotations -from datetime import date -import httpx -from plex_api_client.types import BaseModel -from plex_api_client.utils import FieldMetadata, PathParamMetadata -import pydantic -from typing import List, Optional -from typing_extensions import Annotated, NotRequired, TypedDict - - -class GetMetaDataByRatingKeyRequestTypedDict(TypedDict): - rating_key: int - r"""the id of the library item to return the children of.""" - - -class GetMetaDataByRatingKeyRequest(BaseModel): - rating_key: Annotated[ - int, - pydantic.Field(alias="ratingKey"), - FieldMetadata(path=PathParamMetadata(style="simple", explode=False)), - ] - r"""the id of the library item to return the children of.""" - - -class GetMetaDataByRatingKeyStreamTypedDict(TypedDict): - id: NotRequired[int] - stream_type: NotRequired[int] - default: NotRequired[bool] - codec: NotRequired[str] - index: NotRequired[int] - bitrate: NotRequired[int] - bit_depth: NotRequired[int] - chroma_location: NotRequired[str] - chroma_subsampling: NotRequired[str] - coded_height: NotRequired[int] - coded_width: NotRequired[int] - color_primaries: NotRequired[str] - color_range: NotRequired[str] - color_space: NotRequired[str] - color_trc: NotRequired[str] - frame_rate: NotRequired[int] - has_scaling_matrix: NotRequired[bool] - height: NotRequired[int] - level: NotRequired[int] - profile: NotRequired[str] - ref_frames: NotRequired[int] - scan_type: NotRequired[str] - stream_identifier: NotRequired[str] - width: NotRequired[int] - display_title: NotRequired[str] - extended_display_title: NotRequired[str] - selected: NotRequired[bool] - channels: NotRequired[int] - language: NotRequired[str] - language_tag: NotRequired[str] - language_code: NotRequired[str] - sampling_rate: NotRequired[int] - - -class GetMetaDataByRatingKeyStream(BaseModel): - id: Optional[int] = None - - stream_type: Annotated[Optional[int], pydantic.Field(alias="streamType")] = None - - default: Optional[bool] = None - - codec: Optional[str] = None - - index: Optional[int] = None - - bitrate: Optional[int] = None - - bit_depth: Annotated[Optional[int], pydantic.Field(alias="bitDepth")] = None - - chroma_location: Annotated[ - Optional[str], pydantic.Field(alias="chromaLocation") - ] = None - - chroma_subsampling: Annotated[ - Optional[str], pydantic.Field(alias="chromaSubsampling") - ] = None - - coded_height: Annotated[Optional[int], pydantic.Field(alias="codedHeight")] = None - - coded_width: Annotated[Optional[int], pydantic.Field(alias="codedWidth")] = None - - color_primaries: Annotated[ - Optional[str], pydantic.Field(alias="colorPrimaries") - ] = None - - color_range: Annotated[Optional[str], pydantic.Field(alias="colorRange")] = None - - color_space: Annotated[Optional[str], pydantic.Field(alias="colorSpace")] = None - - color_trc: Annotated[Optional[str], pydantic.Field(alias="colorTrc")] = None - - frame_rate: Annotated[Optional[int], pydantic.Field(alias="frameRate")] = None - - has_scaling_matrix: Annotated[ - Optional[bool], pydantic.Field(alias="hasScalingMatrix") - ] = None - - height: Optional[int] = None - - level: Optional[int] = None - - profile: Optional[str] = None - - ref_frames: Annotated[Optional[int], pydantic.Field(alias="refFrames")] = None - - scan_type: Annotated[Optional[str], pydantic.Field(alias="scanType")] = None - - stream_identifier: Annotated[ - Optional[str], pydantic.Field(alias="streamIdentifier") - ] = None - - width: Optional[int] = None - - display_title: Annotated[Optional[str], pydantic.Field(alias="displayTitle")] = None - - extended_display_title: Annotated[ - Optional[str], pydantic.Field(alias="extendedDisplayTitle") - ] = None - - selected: Optional[bool] = None - - channels: Optional[int] = None - - language: Optional[str] = None - - language_tag: Annotated[Optional[str], pydantic.Field(alias="languageTag")] = None - - language_code: Annotated[Optional[str], pydantic.Field(alias="languageCode")] = None - - sampling_rate: Annotated[Optional[int], pydantic.Field(alias="samplingRate")] = None - - -class GetMetaDataByRatingKeyPartTypedDict(TypedDict): - id: NotRequired[int] - key: NotRequired[str] - duration: NotRequired[int] - file: NotRequired[str] - size: NotRequired[int] - audio_profile: NotRequired[str] - container: NotRequired[str] - has64bit_offsets: NotRequired[bool] - optimized_for_streaming: NotRequired[bool] - video_profile: NotRequired[str] - stream: NotRequired[List[GetMetaDataByRatingKeyStreamTypedDict]] - - -class GetMetaDataByRatingKeyPart(BaseModel): - id: Optional[int] = None - - key: Optional[str] = None - - duration: Optional[int] = None - - file: Optional[str] = None - - size: Optional[int] = None - - audio_profile: Annotated[Optional[str], pydantic.Field(alias="audioProfile")] = None - - container: Optional[str] = None - - has64bit_offsets: Annotated[ - Optional[bool], pydantic.Field(alias="has64bitOffsets") - ] = None - - optimized_for_streaming: Annotated[ - Optional[bool], pydantic.Field(alias="optimizedForStreaming") - ] = None - - video_profile: Annotated[Optional[str], pydantic.Field(alias="videoProfile")] = None - - stream: Annotated[ - Optional[List[GetMetaDataByRatingKeyStream]], pydantic.Field(alias="Stream") - ] = None - - -class GetMetaDataByRatingKeyMediaTypedDict(TypedDict): - id: NotRequired[int] - duration: NotRequired[int] - bitrate: NotRequired[int] - width: NotRequired[int] - height: NotRequired[int] - aspect_ratio: NotRequired[float] - audio_channels: NotRequired[int] - audio_codec: NotRequired[str] - video_codec: NotRequired[str] - video_resolution: NotRequired[str] - container: NotRequired[str] - video_frame_rate: NotRequired[str] - optimized_for_streaming: NotRequired[int] - audio_profile: NotRequired[str] - has64bit_offsets: NotRequired[bool] - video_profile: NotRequired[str] - part: NotRequired[List[GetMetaDataByRatingKeyPartTypedDict]] - - -class GetMetaDataByRatingKeyMedia(BaseModel): - id: Optional[int] = None - - duration: Optional[int] = None - - bitrate: Optional[int] = None - - width: Optional[int] = None - - height: Optional[int] = None - - aspect_ratio: Annotated[Optional[float], pydantic.Field(alias="aspectRatio")] = None - - audio_channels: Annotated[Optional[int], pydantic.Field(alias="audioChannels")] = ( - None - ) - - audio_codec: Annotated[Optional[str], pydantic.Field(alias="audioCodec")] = None - - video_codec: Annotated[Optional[str], pydantic.Field(alias="videoCodec")] = None - - video_resolution: Annotated[ - Optional[str], pydantic.Field(alias="videoResolution") - ] = None - - container: Optional[str] = None - - video_frame_rate: Annotated[ - Optional[str], pydantic.Field(alias="videoFrameRate") - ] = None - - optimized_for_streaming: Annotated[ - Optional[int], pydantic.Field(alias="optimizedForStreaming") - ] = None - - audio_profile: Annotated[Optional[str], pydantic.Field(alias="audioProfile")] = None - - has64bit_offsets: Annotated[ - Optional[bool], pydantic.Field(alias="has64bitOffsets") - ] = None - - video_profile: Annotated[Optional[str], pydantic.Field(alias="videoProfile")] = None - - part: Annotated[ - Optional[List[GetMetaDataByRatingKeyPart]], pydantic.Field(alias="Part") - ] = None - - -class GetMetaDataByRatingKeyGenreTypedDict(TypedDict): - id: NotRequired[int] - filter_: NotRequired[str] - tag: NotRequired[str] - - -class GetMetaDataByRatingKeyGenre(BaseModel): - id: Optional[int] = None - - filter_: Annotated[Optional[str], pydantic.Field(alias="filter")] = None - - tag: Optional[str] = None - - -class GetMetaDataByRatingKeyCountryTypedDict(TypedDict): - id: NotRequired[int] - filter_: NotRequired[str] - tag: NotRequired[str] - - -class GetMetaDataByRatingKeyCountry(BaseModel): - id: Optional[int] = None - - filter_: Annotated[Optional[str], pydantic.Field(alias="filter")] = None - - tag: Optional[str] = None - - -class GuidsTypedDict(TypedDict): - id: NotRequired[str] - - -class Guids(BaseModel): - id: Optional[str] = None - - -class RatingsTypedDict(TypedDict): - image: NotRequired[str] - value: NotRequired[float] - type: NotRequired[str] - - -class Ratings(BaseModel): - image: Optional[str] = None - - value: Optional[float] = None - - type: Optional[str] = None - - -class GetMetaDataByRatingKeyDirectorTypedDict(TypedDict): - id: NotRequired[int] - filter_: NotRequired[str] - tag: NotRequired[str] - tag_key: NotRequired[str] - thumb: NotRequired[str] - - -class GetMetaDataByRatingKeyDirector(BaseModel): - id: Optional[int] = None - - filter_: Annotated[Optional[str], pydantic.Field(alias="filter")] = None - - tag: Optional[str] = None - - tag_key: Annotated[Optional[str], pydantic.Field(alias="tagKey")] = None - - thumb: Optional[str] = None - - -class GetMetaDataByRatingKeyWriterTypedDict(TypedDict): - id: NotRequired[int] - filter_: NotRequired[str] - tag: NotRequired[str] - tag_key: NotRequired[str] - thumb: NotRequired[str] - - -class GetMetaDataByRatingKeyWriter(BaseModel): - id: Optional[int] = None - - filter_: Annotated[Optional[str], pydantic.Field(alias="filter")] = None - - tag: Optional[str] = None - - tag_key: Annotated[Optional[str], pydantic.Field(alias="tagKey")] = None - - thumb: Optional[str] = None - - -class GetMetaDataByRatingKeyRoleTypedDict(TypedDict): - id: NotRequired[int] - filter_: NotRequired[str] - tag: NotRequired[str] - tag_key: NotRequired[str] - role: NotRequired[str] - thumb: NotRequired[str] - - -class GetMetaDataByRatingKeyRole(BaseModel): - id: Optional[int] = None - - filter_: Annotated[Optional[str], pydantic.Field(alias="filter")] = None - - tag: Optional[str] = None - - tag_key: Annotated[Optional[str], pydantic.Field(alias="tagKey")] = None - - role: Optional[str] = None - - thumb: Optional[str] = None - - -class ProducerTypedDict(TypedDict): - id: NotRequired[int] - filter_: NotRequired[str] - tag: NotRequired[str] - tag_key: NotRequired[str] - thumb: NotRequired[str] - - -class Producer(BaseModel): - id: Optional[int] = None - - filter_: Annotated[Optional[str], pydantic.Field(alias="filter")] = None - - tag: Optional[str] = None - - tag_key: Annotated[Optional[str], pydantic.Field(alias="tagKey")] = None - - thumb: Optional[str] = None - - -class GetMetaDataByRatingKeyMetadataTypedDict(TypedDict): - rating_key: NotRequired[str] - key: NotRequired[str] - guid: NotRequired[str] - studio: NotRequired[str] - type: NotRequired[str] - title: NotRequired[str] - library_section_title: NotRequired[str] - library_section_id: NotRequired[int] - library_section_key: NotRequired[str] - grandparent_title: NotRequired[str] - r"""The name of the album artist for the track when audio, and the name of the TV show for the episode when video.""" - parent_title: NotRequired[str] - r"""The name of the album for the track when audio, and the name of the season for the episode when TV show.""" - original_title: NotRequired[str] - r"""The orginal untranslated name of the media item when non-english.""" - index: NotRequired[int] - r"""The index starting from 0 of this media item in the MetaData array.""" - parent_index: NotRequired[int] - r"""The parent index starting from 0 of this media item in the parent MetaData array.""" - content_rating: NotRequired[str] - summary: NotRequired[str] - rating: NotRequired[float] - audience_rating: NotRequired[float] - year: NotRequired[int] - tagline: NotRequired[str] - thumb: NotRequired[str] - art: NotRequired[str] - duration: NotRequired[int] - originally_available_at: NotRequired[date] - added_at: NotRequired[int] - updated_at: NotRequired[int] - audience_rating_image: NotRequired[str] - has_premium_primary_extra: NotRequired[str] - rating_image: NotRequired[str] - media: NotRequired[List[GetMetaDataByRatingKeyMediaTypedDict]] - genre: NotRequired[List[GetMetaDataByRatingKeyGenreTypedDict]] - country: NotRequired[List[GetMetaDataByRatingKeyCountryTypedDict]] - guids: NotRequired[List[GuidsTypedDict]] - ratings: NotRequired[List[RatingsTypedDict]] - director: NotRequired[List[GetMetaDataByRatingKeyDirectorTypedDict]] - writer: NotRequired[List[GetMetaDataByRatingKeyWriterTypedDict]] - role: NotRequired[List[GetMetaDataByRatingKeyRoleTypedDict]] - producer: NotRequired[List[ProducerTypedDict]] - - -class GetMetaDataByRatingKeyMetadata(BaseModel): - rating_key: Annotated[Optional[str], pydantic.Field(alias="ratingKey")] = None - - key: Optional[str] = None - - guid: Optional[str] = None - - studio: Optional[str] = None - - type: Optional[str] = None - - title: Optional[str] = None - - library_section_title: Annotated[ - Optional[str], pydantic.Field(alias="librarySectionTitle") - ] = None - - library_section_id: Annotated[ - Optional[int], pydantic.Field(alias="librarySectionID") - ] = None - - library_section_key: Annotated[ - Optional[str], pydantic.Field(alias="librarySectionKey") - ] = None - - grandparent_title: Annotated[ - Optional[str], pydantic.Field(alias="grandparentTitle") - ] = None - r"""The name of the album artist for the track when audio, and the name of the TV show for the episode when video.""" - - parent_title: Annotated[Optional[str], pydantic.Field(alias="parentTitle")] = None - r"""The name of the album for the track when audio, and the name of the season for the episode when TV show.""" - - original_title: Annotated[Optional[str], pydantic.Field(alias="originalTitle")] = ( - None - ) - r"""The orginal untranslated name of the media item when non-english.""" - - index: Optional[int] = None - r"""The index starting from 0 of this media item in the MetaData array.""" - - parent_index: Annotated[Optional[int], pydantic.Field(alias="parentIndex")] = None - r"""The parent index starting from 0 of this media item in the parent MetaData array.""" - - content_rating: Annotated[Optional[str], pydantic.Field(alias="contentRating")] = ( - None - ) - - summary: Optional[str] = None - - rating: Optional[float] = None - - audience_rating: Annotated[ - Optional[float], pydantic.Field(alias="audienceRating") - ] = None - - year: Optional[int] = None - - tagline: Optional[str] = None - - thumb: Optional[str] = None - - art: Optional[str] = None - - duration: Optional[int] = None - - originally_available_at: Annotated[ - Optional[date], pydantic.Field(alias="originallyAvailableAt") - ] = None - - added_at: Annotated[Optional[int], pydantic.Field(alias="addedAt")] = None - - updated_at: Annotated[Optional[int], pydantic.Field(alias="updatedAt")] = None - - audience_rating_image: Annotated[ - Optional[str], pydantic.Field(alias="audienceRatingImage") - ] = None - - has_premium_primary_extra: Annotated[ - Optional[str], pydantic.Field(alias="hasPremiumPrimaryExtra") - ] = None - - rating_image: Annotated[Optional[str], pydantic.Field(alias="ratingImage")] = None - - media: Annotated[ - Optional[List[GetMetaDataByRatingKeyMedia]], pydantic.Field(alias="Media") - ] = None - - genre: Annotated[ - Optional[List[GetMetaDataByRatingKeyGenre]], pydantic.Field(alias="Genre") - ] = None - - country: Annotated[ - Optional[List[GetMetaDataByRatingKeyCountry]], pydantic.Field(alias="Country") - ] = None - - guids: Annotated[Optional[List[Guids]], pydantic.Field(alias="Guid")] = None - - ratings: Annotated[Optional[List[Ratings]], pydantic.Field(alias="Rating")] = None - - director: Annotated[ - Optional[List[GetMetaDataByRatingKeyDirector]], pydantic.Field(alias="Director") - ] = None - - writer: Annotated[ - Optional[List[GetMetaDataByRatingKeyWriter]], pydantic.Field(alias="Writer") - ] = None - - role: Annotated[ - Optional[List[GetMetaDataByRatingKeyRole]], pydantic.Field(alias="Role") - ] = None - - producer: Annotated[Optional[List[Producer]], pydantic.Field(alias="Producer")] = ( - None - ) - - -class GetMetaDataByRatingKeyMediaContainerTypedDict(TypedDict): - size: NotRequired[int] - allow_sync: NotRequired[bool] - identifier: NotRequired[str] - library_section_id: NotRequired[int] - library_section_title: NotRequired[str] - library_section_uuid: NotRequired[str] - media_tag_prefix: NotRequired[str] - media_tag_version: NotRequired[int] - metadata: NotRequired[List[GetMetaDataByRatingKeyMetadataTypedDict]] - - -class GetMetaDataByRatingKeyMediaContainer(BaseModel): - size: Optional[int] = None - - allow_sync: Annotated[Optional[bool], pydantic.Field(alias="allowSync")] = None - - identifier: Optional[str] = None - - library_section_id: Annotated[ - Optional[int], pydantic.Field(alias="librarySectionID") - ] = None - - library_section_title: Annotated[ - Optional[str], pydantic.Field(alias="librarySectionTitle") - ] = None - - library_section_uuid: Annotated[ - Optional[str], pydantic.Field(alias="librarySectionUUID") - ] = None - - media_tag_prefix: Annotated[ - Optional[str], pydantic.Field(alias="mediaTagPrefix") - ] = None - - media_tag_version: Annotated[ - Optional[int], pydantic.Field(alias="mediaTagVersion") - ] = None - - metadata: Annotated[ - Optional[List[GetMetaDataByRatingKeyMetadata]], pydantic.Field(alias="Metadata") - ] = None - - -class GetMetaDataByRatingKeyResponseBodyTypedDict(TypedDict): - r"""The metadata of the library item.""" - - media_container: NotRequired[GetMetaDataByRatingKeyMediaContainerTypedDict] - - -class GetMetaDataByRatingKeyResponseBody(BaseModel): - r"""The metadata of the library item.""" - - media_container: Annotated[ - Optional[GetMetaDataByRatingKeyMediaContainer], - pydantic.Field(alias="MediaContainer"), - ] = None - - -class GetMetaDataByRatingKeyResponseTypedDict(TypedDict): - content_type: str - r"""HTTP response content type for this operation""" - status_code: int - r"""HTTP response status code for this operation""" - raw_response: httpx.Response - r"""Raw HTTP response; suitable for custom response parsing""" - object: NotRequired[GetMetaDataByRatingKeyResponseBodyTypedDict] - r"""The metadata of the library item.""" - - -class GetMetaDataByRatingKeyResponse(BaseModel): - content_type: str - r"""HTTP response content type for this operation""" - - status_code: int - r"""HTTP response status code for this operation""" - - raw_response: httpx.Response - r"""Raw HTTP response; suitable for custom response parsing""" - - object: Optional[GetMetaDataByRatingKeyResponseBody] = None - r"""The metadata of the library item.""" diff --git a/src/plex_api_client/models/operations/get_recently_added.py b/src/plex_api_client/models/operations/get_recently_added.py index fa6761c..12c00ad 100644 --- a/src/plex_api_client/models/operations/get_recently_added.py +++ b/src/plex_api_client/models/operations/get_recently_added.py @@ -12,7 +12,7 @@ from typing_extensions import Annotated, NotRequired, TypedDict class Type(int, Enum): - r"""The type of media to retrieve. + r"""The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season @@ -41,7 +41,7 @@ class GetRecentlyAddedRequestTypedDict(TypedDict): content_directory_id: int r"""The content directory ID.""" type: Type - r"""The type of media to retrieve. + r"""The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season @@ -82,7 +82,7 @@ class GetRecentlyAddedRequest(BaseModel): type: Annotated[ Type, FieldMetadata(query=QueryParamMetadata(style="form", explode=True)) ] - r"""The type of media to retrieve. + r"""The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season diff --git a/src/plex_api_client/models/operations/get_recently_added_library.py b/src/plex_api_client/models/operations/get_recently_added_library.py index d8f50a8..b2c443b 100644 --- a/src/plex_api_client/models/operations/get_recently_added_library.py +++ b/src/plex_api_client/models/operations/get_recently_added_library.py @@ -12,7 +12,7 @@ from typing_extensions import Annotated, NotRequired, TypedDict class QueryParamType(int, Enum): - r"""The type of media to retrieve. + r"""The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season @@ -39,7 +39,7 @@ class QueryParamIncludeMeta(int, Enum): class GetRecentlyAddedLibraryRequestTypedDict(TypedDict): type: QueryParamType - r"""The type of media to retrieve. + r"""The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season @@ -74,7 +74,7 @@ class GetRecentlyAddedLibraryRequest(BaseModel): QueryParamType, FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] - r"""The type of media to retrieve. + r"""The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season diff --git a/src/plex_api_client/models/operations/get_search_library.py b/src/plex_api_client/models/operations/get_search_library.py index cb4e147..690fe17 100644 --- a/src/plex_api_client/models/operations/get_search_library.py +++ b/src/plex_api_client/models/operations/get_search_library.py @@ -11,7 +11,7 @@ from typing_extensions import Annotated, NotRequired, TypedDict class GetSearchLibraryQueryParamType(int, Enum): - r"""The type of media to retrieve. + r"""The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season @@ -36,7 +36,7 @@ class GetSearchLibraryRequestTypedDict(TypedDict): """ type: GetSearchLibraryQueryParamType - r"""The type of media to retrieve. + r"""The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season @@ -61,7 +61,7 @@ class GetSearchLibraryRequest(BaseModel): GetSearchLibraryQueryParamType, FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] - r"""The type of media to retrieve. + r"""The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season diff --git a/src/plex_api_client/models/operations/getplaylistcontents.py b/src/plex_api_client/models/operations/getplaylistcontents.py index d284b81..ee18251 100644 --- a/src/plex_api_client/models/operations/getplaylistcontents.py +++ b/src/plex_api_client/models/operations/getplaylistcontents.py @@ -12,7 +12,7 @@ from typing_extensions import Annotated, NotRequired, TypedDict class GetPlaylistContentsQueryParamType(int, Enum): - r"""The type of media to retrieve. + r"""The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season @@ -34,7 +34,7 @@ class GetPlaylistContentsRequestTypedDict(TypedDict): playlist_id: float r"""the ID of the playlist""" type: GetPlaylistContentsQueryParamType - r"""The type of media to retrieve. + r"""The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season @@ -56,7 +56,7 @@ class GetPlaylistContentsRequest(BaseModel): GetPlaylistContentsQueryParamType, FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] - r"""The type of media to retrieve. + r"""The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season diff --git a/src/plex_api_client/models/operations/gettopwatchedcontent.py b/src/plex_api_client/models/operations/gettopwatchedcontent.py index 34d9e3c..8a1a07c 100644 --- a/src/plex_api_client/models/operations/gettopwatchedcontent.py +++ b/src/plex_api_client/models/operations/gettopwatchedcontent.py @@ -12,7 +12,7 @@ from typing_extensions import Annotated, NotRequired, TypedDict class GetTopWatchedContentQueryParamType(int, Enum): - r"""The type of media to retrieve. + r"""The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season @@ -32,7 +32,7 @@ class GetTopWatchedContentQueryParamType(int, Enum): class GetTopWatchedContentRequestTypedDict(TypedDict): type: GetTopWatchedContentQueryParamType - r"""The type of media to retrieve. + r"""The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season @@ -51,7 +51,7 @@ class GetTopWatchedContentRequest(BaseModel): GetTopWatchedContentQueryParamType, FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] - r"""The type of media to retrieve. + r"""The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season diff --git a/src/plex_api_client/playlists.py b/src/plex_api_client/playlists.py index 1200fa9..9bbf65b 100644 --- a/src/plex_api_client/playlists.py +++ b/src/plex_api_client/playlists.py @@ -1139,7 +1139,7 @@ class Playlists(BaseSDK): :param playlist_id: the ID of the playlist - :param type: The type of media to retrieve. 1 = movie 2 = show 3 = season 4 = episode E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + :param type: The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season 4 = episode E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -1254,7 +1254,7 @@ class Playlists(BaseSDK): :param playlist_id: the ID of the playlist - :param type: The type of media to retrieve. 1 = movie 2 = show 3 = season 4 = episode E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + :param type: The type of media to retrieve or filter by. 1 = movie 2 = show 3 = season 4 = episode E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds