From 76f6c233ff6e27911ca66d0fc0036b6f9564ad78 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Fri, 30 May 2025 00:02:44 +0000 Subject: [PATCH] ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.554.1 --- .gitignore | 1 + .speakeasy/gen.lock | 370 +- .speakeasy/gen.yaml | 4 +- .speakeasy/workflow.lock | 6 +- README.md | 4 +- RELEASES.md | 12 +- codeSamples.yaml | 44 +- docs/sdks/authentication/README.md | 2 +- docs/sdks/butler/README.md | 4 +- docs/sdks/hubs/README.md | 4 +- docs/sdks/library/README.md | 6 +- docs/sdks/playlists/README.md | 18 +- docs/sdks/plex/README.md | 2 +- docs/sdks/search/README.md | 2 +- docs/sdks/server/README.md | 4 +- docs/sdks/watchlist/README.md | 2 +- poetry.lock | 24 +- pyproject.toml | 5 +- src/plex_api_client/_hooks/types.py | 7 + src/plex_api_client/_version.py | 6 +- src/plex_api_client/activities.py | 4 + src/plex_api_client/authentication.py | 8 + src/plex_api_client/basesdk.py | 32 +- src/plex_api_client/butler.py | 10 + src/plex_api_client/httpclient.py | 22 +- src/plex_api_client/hubs.py | 6 + src/plex_api_client/library.py | 40 + src/plex_api_client/log.py | 6 + src/plex_api_client/media.py | 10 + src/plex_api_client/models/__init__.py | 1 - .../models/components/__init__.py | 36 +- src/plex_api_client/models/errors/__init__.py | 2217 ++++++---- .../models/operations/__init__.py | 3620 +++++++++++------ src/plex_api_client/playlists.py | 18 + src/plex_api_client/plex.py | 14 + src/plex_api_client/sdk.py | 142 +- src/plex_api_client/sdkconfiguration.py | 7 - src/plex_api_client/search.py | 6 + src/plex_api_client/server.py | 18 + src/plex_api_client/sessions.py | 8 + src/plex_api_client/statistics.py | 6 + src/plex_api_client/updater.py | 6 + src/plex_api_client/users.py | 2 + src/plex_api_client/utils/__init__.py | 176 +- src/plex_api_client/video.py | 4 + src/plex_api_client/watchlist.py | 2 + 46 files changed, 4519 insertions(+), 2429 deletions(-) diff --git a/.gitignore b/.gitignore index efb7736..cd0cde6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +**/__pycache__/ **/.speakeasy/temp/ **/.speakeasy/logs/ .speakeasy/reports diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index ea4b59c..19d4490 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -3,10 +3,10 @@ id: 3eeea668-4ef4-464e-a888-bdfa023bedf5 management: docChecksum: 48621865085324b8b8eda5901f092a37 docVersion: 0.0.3 - speakeasyVersion: 1.542.3 - generationVersion: 2.597.9 - releaseVersion: 0.27.1 - configChecksum: 8c8c5814ace17a3e1bb15129c44e27eb + speakeasyVersion: 1.554.1 + generationVersion: 2.616.1 + releaseVersion: 0.28.0 + configChecksum: 8d4f200b74495e27fa0135dff491880e repoURL: https://github.com/LukeHagar/plexpy.git repoSubDirectory: . installationURL: https://github.com/LukeHagar/plexpy.git @@ -15,7 +15,7 @@ features: python: additionalDependencies: 1.0.0 constsAndDefaults: 1.0.5 - core: 5.17.1 + core: 5.19.1 defaultEnabledRetries: 0.2.0 deprecations: 3.0.2 downloadStreams: 1.0.1 @@ -27,14 +27,14 @@ features: globalSecurity: 3.0.3 globalSecurityCallbacks: 1.0.0 globalSecurityFlattening: 1.0.0 - globalServerURLs: 3.1.0 + globalServerURLs: 3.1.1 methodServerURLs: 3.1.1 nameOverrides: 3.0.1 nullables: 1.0.1 openEnums: 1.0.1 responseFormat: 1.0.1 retries: 3.0.2 - sdkHooks: 1.0.1 + sdkHooks: 1.1.0 unions: 3.0.4 uploadStreams: 1.0.0 generatedFiles: @@ -1204,16 +1204,16 @@ examples: "200": application/json: {} "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}]} + 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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getServerPreferences: speakeasy-default-get-server-preferences: responses: "200": - application/json: {"MediaContainer": {"size": 161, "Setting": [{"id": "EnableDatabaseTrace", "label": "", "summary": "", "type": "bool", "default": false, "value": false, "hidden": true, "advanced": false, "group": "", "enumValues": "1:admin only|2:everyone"}, {"id": "EnableDatabaseTrace", "label": "", "summary": "", "type": "bool", "default": false, "value": false, "hidden": true, "advanced": false, "group": "", "enumValues": "1:admin only|2:everyone"}, {"id": "EnableDatabaseTrace", "label": "", "summary": "", "type": "bool", "default": false, "value": false, "hidden": true, "advanced": false, "group": "", "enumValues": "1:admin only|2:everyone"}]}} + application/json: {"MediaContainer": {"size": 161, "Setting": [{"id": "EnableDatabaseTrace", "label": "", "summary": "", "type": "bool", "default": false, "value": false, "hidden": true, "advanced": false, "group": "", "enumValues": "1:admin only|2:everyone"}, {"id": "EnableDatabaseTrace", "label": "", "summary": "", "type": "bool", "default": false, "value": false, "hidden": true, "advanced": false, "group": "", "enumValues": "1:admin only|2:everyone"}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 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}]} getAvailableClients: @@ -1222,18 +1222,18 @@ examples: "200": application/json: {"MediaContainer": {"size": 1, "Server": [{"name": "iPad", "host": "10.10.10.102", "address": "10.10.10.102", "port": 32500, "machineIdentifier": "A2E901F8-E016-43A7-ADFB-EF8CA8A4AC05", "version": "8.17", "protocol": "plex", "product": "Plex for iOS", "deviceClass": "tablet", "protocolVersion": 2, "protocolCapabilities": "playback,playqueues,timeline,provider-playback"}, {"name": "iPad", "host": "10.10.10.102", "address": "10.10.10.102", "port": 32500, "machineIdentifier": "A2E901F8-E016-43A7-ADFB-EF8CA8A4AC05", "version": "8.17", "protocol": "plex", "product": "Plex for iOS", "deviceClass": "tablet", "protocolVersion": 2, "protocolCapabilities": "playback,playqueues,timeline,provider-playback"}, {"name": "iPad", "host": "10.10.10.102", "address": "10.10.10.102", "port": 32500, "machineIdentifier": "A2E901F8-E016-43A7-ADFB-EF8CA8A4AC05", "version": "8.17", "protocol": "plex", "product": "Plex for iOS", "deviceClass": "tablet", "protocolVersion": 2, "protocolCapabilities": "playback,playqueues,timeline,provider-playback"}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 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}]} getDevices: speakeasy-default-get-devices: responses: "200": - application/json: {"MediaContainer": {"size": 151, "identifier": "com.plexapp.system.devices", "Device": [{"id": 1, "name": "iPhone", "platform": "iOS", "createdAt": 1654131230}, {"id": 1, "name": "iPhone", "platform": "iOS", "createdAt": 1654131230}, {"id": 1, "name": "iPhone", "platform": "iOS", "createdAt": 1654131230}]}} + application/json: {"MediaContainer": {"size": 151, "identifier": "com.plexapp.system.devices", "Device": [{"id": 1, "name": "iPhone", "platform": "iOS", "createdAt": 1654131230}]}} "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}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-server-identity: speakeasy-default-get-server-identity: responses: @@ -1247,9 +1247,9 @@ examples: "200": application/json: {"MyPlex": {"authToken": "Z5v-PrNASDFpsaCi3CPK7", "username": "example.email@mail.com", "mappingState": "mapped", "signInState": "ok", "publicAddress": "140.20.68.140", "publicPort": 32400, "privateAddress": "10.10.10.47", "privatePort": 32400, "subscriptionFeatures": "federated-auth,hardware_transcoding,home,hwtranscode,item_clusters,kevin-bacon,livetv,loudness,lyrics,music-analysis,music_videos,pass,photo_autotags,photos-v5,photosV6-edit,photosV6-tv-albums,premium_music_metadata,radio,server-manager,session_bandwidth_restrictions,session_kick,shared-radio,sync,trailers,tuner-sharing,type-first,unsupportedtuners,webhooks", "subscriptionState": "Active"}} "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}]} + 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}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getResizedPhoto: speakeasy-default-get-resized-photo: parameters: @@ -1258,14 +1258,14 @@ examples: height: 165 opacity: 100 blur: 0 - minSize: 1 - upscale: 1 + minSize: 0 + upscale: 0 url: "/library/metadata/49564/thumb/1654258204" responses: "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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-media-providers: speakeasy-default-get-media-providers: parameters: @@ -1273,11 +1273,11 @@ examples: X-Plex-Token: "CV5xoxjTpFKUzBTShsaf" responses: "200": - application/json: {"MediaContainer": {"MediaProvider": [{"Feature": [{"type": "", "flavor": "global", "scrobbleKey": "/:/scrobble/new", "unscrobbleKey": "/:/unscrobble/new", "Action": [{"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}]}, {"type": "", "flavor": "global", "scrobbleKey": "/:/scrobble/new", "unscrobbleKey": "/:/unscrobble/new", "Action": [{"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}, {"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}]}, {"type": "", "flavor": "global", "scrobbleKey": "/:/scrobble/new", "unscrobbleKey": "/:/unscrobble/new", "Action": [{"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}, {"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}]}]}, {"Feature": [{"type": "", "flavor": "global", "scrobbleKey": "/:/scrobble/new", "unscrobbleKey": "/:/unscrobble/new", "Action": [{"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}]}]}]}} + application/json: {"MediaContainer": {"MediaProvider": [{"Feature": [{"type": "", "flavor": "global", "scrobbleKey": "/:/scrobble/new", "unscrobbleKey": "/:/unscrobble/new", "Action": [{"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}]}, {"type": "", "flavor": "global", "scrobbleKey": "/:/scrobble/new", "unscrobbleKey": "/:/unscrobble/new", "Action": [{"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}]}, {"type": "", "flavor": "global", "scrobbleKey": "/:/scrobble/new", "unscrobbleKey": "/:/unscrobble/new", "Action": [{"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}]}]}, {"Feature": [{"type": "", "flavor": "global", "scrobbleKey": "/:/scrobble/new", "unscrobbleKey": "/:/unscrobble/new", "Action": [{"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}]}, {"type": "", "flavor": "global", "scrobbleKey": "/:/scrobble/new", "unscrobbleKey": "/:/unscrobble/new", "Action": [{"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}]}, {"type": "", "flavor": "global", "scrobbleKey": "/:/scrobble/new", "unscrobbleKey": "/:/unscrobble/new", "Action": [{"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}]}]}, {"Feature": [{"type": "", "flavor": "global", "scrobbleKey": "/:/scrobble/new", "unscrobbleKey": "/:/unscrobble/new", "Action": [{"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}]}, {"type": "", "flavor": "global", "scrobbleKey": "/:/scrobble/new", "unscrobbleKey": "/:/unscrobble/new", "Action": [{"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}]}, {"type": "", "flavor": "global", "scrobbleKey": "/:/scrobble/new", "unscrobbleKey": "/:/unscrobble/new", "Action": [{"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}]}]}]}} "400": application/json: {"errors": [{"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}]} + 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}]} getServerList: speakeasy-default-get-server-list: responses: @@ -1286,7 +1286,7 @@ examples: "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}]} + 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}]} markPlayed: speakeasy-default-mark-played: parameters: @@ -1294,9 +1294,9 @@ examples: key: 59398 responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} markUnplayed: speakeasy-default-mark-unplayed: parameters: @@ -1316,7 +1316,7 @@ examples: state: "played" responses: "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}]} + 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-banner-image: @@ -1335,9 +1335,9 @@ examples: "200": image/jpeg: "x-file: example.file" "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}]} + application/json: {"errors": [{"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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-thumb-image: speakeasy-default-get-thumb-image: parameters: @@ -1354,9 +1354,9 @@ examples: "200": image/jpeg: "x-file: example.file" "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} getTimeline: "": parameters: @@ -1373,9 +1373,9 @@ examples: row: 1 responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} startUniversalTranscode: "": parameters: @@ -1400,16 +1400,16 @@ examples: "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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getServerActivities: speakeasy-default-get-server-activities: responses: "200": application/json: {} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 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}]} + 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}]} cancelServerActivities: "": parameters: @@ -1419,16 +1419,16 @@ examples: "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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getButlerTasks: speakeasy-default-get-butler-tasks: responses: "200": - application/json: {"ButlerTasks": {"ButlerTask": [{"name": "BackupDatabase", "interval": 3, "title": "Backup Database", "description": "Create a backup copy of the server's database in the configured backup directory"}, {"name": "BackupDatabase", "interval": 3, "title": "Backup Database", "description": "Create a backup copy of the server's database in the configured backup directory"}]}} + application/json: {"ButlerTasks": {"ButlerTask": [{"name": "BackupDatabase", "interval": 3, "title": "Backup Database", "description": "Create a backup copy of the server's database in the configured backup directory"}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 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}]} + 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}]} startAllTasks: speakeasy-default-start-all-tasks: responses: @@ -1440,27 +1440,27 @@ examples: speakeasy-default-stop-all-tasks: responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 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}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} startTask: speakeasy-default-start-task: parameters: path: - taskName: "CleanOldBundles" + taskName: "RefreshPeriodicMetadata" responses: "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}]} + application/json: {"errors": [{"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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} stopTask: speakeasy-default-stop-task: parameters: path: - taskName: "BackupDatabase" + taskName: "CleanOldCacheFiles" responses: "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}]} + application/json: {"errors": [{"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}]} getCompanionsData: @@ -1471,14 +1471,14 @@ examples: "400": application/json: {"errors": [{"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}]} + 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}]} getUserFriends: speakeasy-default-get-user-friends: responses: "200": application/json: [{"email": "username@email.com", "friendlyName": "exampleUser", "home": true, "id": 0, "restricted": false, "sharedServers": [], "sharedSources": [], "status": "accepted", "thumb": "https://plex.tv/users/7d1916e0d8f6e76b/avatar?c=1694481578", "title": "username123", "username": "username123", "uuid": "7d1916e0d8f6e76b"}] "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}]} + 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}]} getGeoData: @@ -1487,7 +1487,7 @@ examples: "200": application/json: {"code": "VI", "continent_code": "NA", "country": "United States Virgin Islands", "city": "Amsterdam", "european_union_member": true, "time_zone": "America/St_Thomas", "postal_code": "802", "in_privacy_restricted_country": true, "in_privacy_restricted_region": true, "subdivisions": "Saint Thomas", "coordinates": "18.3381, -64.8941"} "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}]} + 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}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} getHomeData: @@ -1498,7 +1498,7 @@ examples: "400": application/json: {"errors": [{"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}]} + 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-server-resources: "": parameters: @@ -1510,11 +1510,11 @@ examples: X-Plex-Client-Identifier: "3381b62b-9ab7-4e37-827b-203e9809eb58" responses: "200": - application/json: [{"name": "", "product": "Luxurious Frozen Bike", "productVersion": "", "platform": "", "platformVersion": "", "device": "Mobile", "clientIdentifier": "", "createdAt": "2019-06-24T11:38:02Z", "lastSeenAt": "2019-06-24T11:38:02Z", "provides": "", "ownerId": 575734, "sourceTitle": "", "publicAddress": "", "accessToken": "", "owned": false, "home": false, "synced": false, "relay": true, "presence": false, "httpsRequired": false, "publicAddressMatches": true, "dnsRebindingProtection": true, "natLoopbackSupported": true, "connections": []}] + application/json: [{"name": "", "product": "Modern Granite Cheese", "productVersion": "", "platform": "", "platformVersion": "", "device": "Desktop", "clientIdentifier": "", "createdAt": "2019-06-24T11:38:02Z", "lastSeenAt": "2019-06-24T11:38:02Z", "provides": "", "ownerId": 46161, "sourceTitle": "", "publicAddress": "", "accessToken": "", "owned": false, "home": true, "synced": false, "relay": true, "presence": false, "httpsRequired": true, "publicAddressMatches": false, "dnsRebindingProtection": false, "natLoopbackSupported": true, "connections": [{"protocol": "http", "address": "469 Kihn Fort", "port": 966547, "uri": "https://odd-window.com/", "local": true, "relay": true, "IPv6": false}]}] "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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} getPin: "": parameters: @@ -1530,12 +1530,12 @@ examples: "201": application/json: {"id": 308667304, "code": "7RQZ", "product": "0", "trusted": false, "qr": "https://plex.tv/api/v2/pins/qr/7RQZ", "clientIdentifier": "string", "location": {"code": "VI", "continent_code": "NA", "country": "United States Virgin Islands", "city": "Amsterdam", "european_union_member": true, "time_zone": "America/St_Thomas", "postal_code": "802", "in_privacy_restricted_country": true, "in_privacy_restricted_region": true, "subdivisions": "Saint Thomas", "coordinates": "18.3381, -64.8941"}, "expiresIn": 876, "createdAt": "2024-07-16T17:03:05Z", "expiresAt": "2024-07-16T17:18:05Z", "authToken": null, "newRegistration": null} "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}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} getTokenByPinId: "": parameters: path: - pinID: 408895 + pinID: 232248 header: X-Plex-Client-Identifier: "3381b62b-9ab7-4e37-827b-203e9809eb58" X-Plex-Product: "Plex for Roku" @@ -1551,14 +1551,14 @@ examples: "200": application/json: {"MediaContainer": {"size": 8, "allowSync": true, "identifier": "com.plexapp.plugins.library", "Hub": [{"hubKey": "/library/metadata/50768,65523,58188,57341,57302,57070", "key": "/playlists/all?type=15&sort=lastViewedAt:desc&playlistType=video,audio", "title": "Recent Playlists", "type": "playlist", "hubIdentifier": "home.playlists", "context": "hub.home.playlists", "size": 6, "more": true, "style": "shelf", "promoted": true, "Metadata": [{"ratingKey": "57070", "key": "/playlists/57070/items", "guid": "com.plexapp.agents.none://9fee6c5b-3143-4923-813e-57bd0190056c", "type": "playlist", "title": "November Movie Day", "titleSort": "Tracks", "summary": "", "smart": false, "playlistType": "video", "composite": "/playlists/57070/composite/1668787730", "icon": "playlist://image.smart", "viewCount": 2, "lastViewedAt": 1668787732, "duration": 16873000, "leafCount": 3, "addedAt": 1668779618, "updatedAt": 1668787730}, {"ratingKey": "57070", "key": "/playlists/57070/items", "guid": "com.plexapp.agents.none://9fee6c5b-3143-4923-813e-57bd0190056c", "type": "playlist", "title": "November Movie Day", "titleSort": "Tracks", "summary": "", "smart": false, "playlistType": "video", "composite": "/playlists/57070/composite/1668787730", "icon": "playlist://image.smart", "viewCount": 2, "lastViewedAt": 1668787732, "duration": 16873000, "leafCount": 3, "addedAt": 1668779618, "updatedAt": 1668787730}, {"ratingKey": "57070", "key": "/playlists/57070/items", "guid": "com.plexapp.agents.none://9fee6c5b-3143-4923-813e-57bd0190056c", "type": "playlist", "title": "November Movie Day", "titleSort": "Tracks", "summary": "", "smart": false, "playlistType": "video", "composite": "/playlists/57070/composite/1668787730", "icon": "playlist://image.smart", "viewCount": 2, "lastViewedAt": 1668787732, "duration": 16873000, "leafCount": 3, "addedAt": 1668779618, "updatedAt": 1668787730}]}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-recently-added: speakeasy-default-get-recently-added: parameters: query: - contentDirectoryID: 470161 + contentDirectoryID: 39486 sectionID: 2 type: 2 includeMeta: 1 @@ -1566,31 +1566,30 @@ examples: X-Plex-Container-Size: 50 responses: "200": - application/json: {"MediaContainer": {"size": 50, "totalSize": 50, "offset": 0, "allowSync": false, "identifier": "com.plexapp.plugins.library", "Meta": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": [{"key": "=", "title": "is"}]}, {"type": "tag", "Operator": []}, {"type": "tag", "Operator": []}]}, "Metadata": [{"addedAt": 1556281940, "art": "/library/metadata/58683/art/1703239236", "audienceRatingImage": "rottentomatoes://image.rating.upright", "audienceRating": 9.2, "chapterSource": "media", "childCount": 1, "contentRating": "PG-13", "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "duration": 11558112, "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentRatingKey": "66", "grandparentSlug": "alice-in-borderland-2020", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTitle": "Caprica", "guid": "plex://movie/5d7768ba96b655001fdc0408", "index": 1, "key": "/library/metadata/58683", "lastRatedAt": 1721813113, "lastViewedAt": 1682752242, "leafCount": 14, "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "librarySectionTitle": "Movies", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "originallyAvailableAt": "2022-12-14", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentIndex": 1, "parentKey": "/library/metadata/66", "parentRatingKey": "66", "parentSlug": "alice-in-borderland-2020", "parentStudio": "UCP", "parentTheme": "/library/metadata/66/theme/1705716261", "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTitle": "Caprica", "parentYear": 2010, "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "ratingKey": "58683", "rating": 7.6, "seasonCount": 2022, "skipCount": 1, "slug": "4-for-texas", "studio": "20th Century Studios", "subtype": "clip", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "tagline": "Return to Pandora.", "theme": "/library/metadata/1/theme/1705636920", "thumb": "/library/metadata/58683/thumb/1703239236", "titleSort": "Whale", "title": "Avatar: The Way of Water", "type": "movie", "updatedAt": 1556281940, "userRating": 10, "viewCount": 1, "viewOffset": 5222500, "viewedLeafCount": 0, "year": 2022, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"id": 259, "filter": "genre=19", "tag": "Crime"}], "Country": [{"id": 259, "tag": "United States of America", "filter": "country=19"}], "Director": [{"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}], "Writer": [{"id": 126522, "filter": "writer=126522", "tag": "Jamie P. Hanson", "tagKey": "5d77683d85719b001f3a535e"}, {"id": 126522, "filter": "writer=126522", "tag": "Jamie P. Hanson", "tagKey": "5d77683d85719b001f3a535e"}, {"id": 126522, "filter": "writer=126522", "tag": "Jamie P. Hanson", "tagKey": "5d77683d85719b001f3a535e"}], "Role": [{"id": 126522, "filter": "actor=126522", "tag": "Teller", "tagKey": "5d77683d85719b001f3a535e", "role": "Self - Judge", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Producer": [{"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Rating": [{"image": "imdb://image.rating", "value": 5.1, "type": "audience"}], "Similar": [{"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}, {"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}, {"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}], "Location": [{"path": "/TV Shows/Clarkson's Farm"}], "Guid": [{"id": "tvdb://2337"}, {"id": "tvdb://2337"}], "Collection": [{"tag": "My Awesome Collection"}, {"tag": "My Awesome Collection"}, {"tag": "My Awesome Collection"}]}, {"addedAt": 1556281940, "art": "/library/metadata/58683/art/1703239236", "audienceRatingImage": "rottentomatoes://image.rating.upright", "audienceRating": 9.2, "chapterSource": "media", "childCount": 1, "contentRating": "PG-13", "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "duration": 11558112, "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentRatingKey": "66", "grandparentSlug": "alice-in-borderland-2020", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTitle": "Caprica", "guid": "plex://movie/5d7768ba96b655001fdc0408", "index": 1, "key": "/library/metadata/58683", "lastRatedAt": 1721813113, "lastViewedAt": 1682752242, "leafCount": 14, "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "librarySectionTitle": "Movies", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "originallyAvailableAt": "2022-12-14", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentIndex": 1, "parentKey": "/library/metadata/66", "parentRatingKey": "66", "parentSlug": "alice-in-borderland-2020", "parentStudio": "UCP", "parentTheme": "/library/metadata/66/theme/1705716261", "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTitle": "Caprica", "parentYear": 2010, "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "ratingKey": "58683", "rating": 7.6, "seasonCount": 2022, "skipCount": 1, "slug": "4-for-texas", "studio": "20th Century Studios", "subtype": "clip", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "tagline": "Return to Pandora.", "theme": "/library/metadata/1/theme/1705636920", "thumb": "/library/metadata/58683/thumb/1703239236", "titleSort": "Whale", "title": "Avatar: The Way of Water", "type": "movie", "updatedAt": 1556281940, "userRating": 10, "viewCount": 1, "viewOffset": 5222500, "viewedLeafCount": 0, "year": 2022, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"id": 259, "filter": "genre=19", "tag": "Crime"}, {"id": 259, "filter": "genre=19", "tag": "Crime"}], "Country": [{"id": 259, "tag": "United States of America", "filter": "country=19"}], "Director": [{"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}], "Writer": [{"id": 126522, "filter": "writer=126522", "tag": "Jamie P. Hanson", "tagKey": "5d77683d85719b001f3a535e"}, {"id": 126522, "filter": "writer=126522", "tag": "Jamie P. Hanson", "tagKey": "5d77683d85719b001f3a535e"}], "Role": [{"id": 126522, "filter": "actor=126522", "tag": "Teller", "tagKey": "5d77683d85719b001f3a535e", "role": "Self - Judge", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Producer": [{"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Rating": [{"image": "imdb://image.rating", "value": 5.1, "type": "audience"}], "Similar": [{"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}, {"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}, {"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}], "Location": [{"path": "/TV Shows/Clarkson's Farm"}, {"path": "/TV Shows/Clarkson's Farm"}, {"path": "/TV Shows/Clarkson's Farm"}], "Guid": [{"id": "tvdb://2337"}, {"id": "tvdb://2337"}], "Collection": [{"tag": "My Awesome Collection"}, {"tag": "My Awesome Collection"}]}]}} + application/json: {"MediaContainer": {"size": 50, "totalSize": 50, "offset": 0, "allowSync": false, "identifier": "com.plexapp.plugins.library", "Meta": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": [{"key": "=", "title": "is"}, {"key": "=", "title": "is"}, {"key": "=", "title": "is"}]}]}, "Metadata": [{"addedAt": 1556281940, "art": "/library/metadata/58683/art/1703239236", "audienceRatingImage": "rottentomatoes://image.rating.upright", "audienceRating": 9.2, "chapterSource": "media", "childCount": 1, "contentRating": "PG-13", "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "duration": 11558112, "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentRatingKey": "66", "grandparentSlug": "alice-in-borderland-2020", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTitle": "Caprica", "guid": "plex://movie/5d7768ba96b655001fdc0408", "index": 1, "key": "/library/metadata/58683", "lastRatedAt": 1721813113, "lastViewedAt": 1682752242, "leafCount": 14, "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "librarySectionTitle": "Movies", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "originallyAvailableAt": "2022-12-14", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentIndex": 1, "parentKey": "/library/metadata/66", "parentRatingKey": "66", "parentSlug": "alice-in-borderland-2020", "parentStudio": "UCP", "parentTheme": "/library/metadata/66/theme/1705716261", "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTitle": "Caprica", "parentYear": 2010, "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "ratingKey": "58683", "rating": 7.6, "seasonCount": 2022, "skipCount": 1, "slug": "4-for-texas", "studio": "20th Century Studios", "subtype": "clip", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "tagline": "Return to Pandora.", "theme": "/library/metadata/1/theme/1705636920", "thumb": "/library/metadata/58683/thumb/1703239236", "titleSort": "Whale", "title": "Avatar: The Way of Water", "type": "movie", "updatedAt": 1556281940, "userRating": 10, "viewCount": 1, "viewOffset": 5222500, "viewedLeafCount": 0, "year": 2022, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"id": 259, "filter": "genre=19", "tag": "Crime"}], "Country": [{"id": 259, "tag": "United States of America", "filter": "country=19"}, {"id": 259, "tag": "United States of America", "filter": "country=19"}], "Director": [{"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}], "Writer": [{"id": 126522, "filter": "writer=126522", "tag": "Jamie P. Hanson", "tagKey": "5d77683d85719b001f3a535e"}], "Role": [{"id": 126522, "filter": "actor=126522", "tag": "Teller", "tagKey": "5d77683d85719b001f3a535e", "role": "Self - Judge", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Producer": [{"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Rating": [{"image": "imdb://image.rating", "value": 5.1, "type": "audience"}, {"image": "imdb://image.rating", "value": 5.1, "type": "audience"}], "Similar": [{"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}, {"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}], "Location": [{"path": "/TV Shows/Clarkson's Farm"}], "Guid": [{"id": "tvdb://2337"}, {"id": "tvdb://2337"}, {"id": "tvdb://2337"}], "Collection": [{"tag": "My Awesome Collection"}, {"tag": "My Awesome Collection"}]}, {"addedAt": 1556281940, "art": "/library/metadata/58683/art/1703239236", "audienceRatingImage": "rottentomatoes://image.rating.upright", "audienceRating": 9.2, "chapterSource": "media", "childCount": 1, "contentRating": "PG-13", "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "duration": 11558112, "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentRatingKey": "66", "grandparentSlug": "alice-in-borderland-2020", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTitle": "Caprica", "guid": "plex://movie/5d7768ba96b655001fdc0408", "index": 1, "key": "/library/metadata/58683", "lastRatedAt": 1721813113, "lastViewedAt": 1682752242, "leafCount": 14, "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "librarySectionTitle": "Movies", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "originallyAvailableAt": "2022-12-14", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentIndex": 1, "parentKey": "/library/metadata/66", "parentRatingKey": "66", "parentSlug": "alice-in-borderland-2020", "parentStudio": "UCP", "parentTheme": "/library/metadata/66/theme/1705716261", "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTitle": "Caprica", "parentYear": 2010, "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "ratingKey": "58683", "rating": 7.6, "seasonCount": 2022, "skipCount": 1, "slug": "4-for-texas", "studio": "20th Century Studios", "subtype": "clip", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "tagline": "Return to Pandora.", "theme": "/library/metadata/1/theme/1705636920", "thumb": "/library/metadata/58683/thumb/1703239236", "titleSort": "Whale", "title": "Avatar: The Way of Water", "type": "movie", "updatedAt": 1556281940, "userRating": 10, "viewCount": 1, "viewOffset": 5222500, "viewedLeafCount": 0, "year": 2022, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"id": 259, "filter": "genre=19", "tag": "Crime"}], "Country": [{"id": 259, "tag": "United States of America", "filter": "country=19"}, {"id": 259, "tag": "United States of America", "filter": "country=19"}], "Director": [{"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}], "Writer": [{"id": 126522, "filter": "writer=126522", "tag": "Jamie P. Hanson", "tagKey": "5d77683d85719b001f3a535e"}], "Role": [{"id": 126522, "filter": "actor=126522", "tag": "Teller", "tagKey": "5d77683d85719b001f3a535e", "role": "Self - Judge", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Producer": [{"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Rating": [{"image": "imdb://image.rating", "value": 5.1, "type": "audience"}, {"image": "imdb://image.rating", "value": 5.1, "type": "audience"}], "Similar": [{"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}, {"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}], "Location": [{"path": "/TV Shows/Clarkson's Farm"}], "Guid": [{"id": "tvdb://2337"}, {"id": "tvdb://2337"}, {"id": "tvdb://2337"}], "Collection": [{"tag": "My Awesome Collection"}, {"tag": "My Awesome Collection"}]}]}} getLibraryHubs: speakeasy-default-get-library-hubs: parameters: path: - sectionId: 6728.76 - query: {} + sectionId: 492.74 responses: "200": - application/json: {"MediaContainer": {"size": 7, "allowSync": true, "identifier": "com.plexapp.plugins.library", "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "Hub": [{"key": "/library/sections/1/all?sort=lastViewedAt:desc&unwatched=0&viewOffset=0", "title": "Recently Played Movies", "type": "movie", "hubIdentifier": "movie.recentlyviewed.1", "context": "hub.movie.recentlyviewed", "size": 6, "more": true, "style": "shelf", "hubKey": "/library/metadata/66485,66098,57249,11449,5858,14944", "Metadata": [{"ratingKey": "14944", "key": "/library/metadata/14944", "guid": "plex://movie/5d77686eeb5d26001f1eb339", "studio": "Walt Disney Animation Studios", "type": "movie", "title": "Tangled", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG", "summary": "The magically long-haired Rapunzel has spent her entire life in a tower, but now that a runaway thief has stumbled upon her, she is about to discover the world for the first time, and who she really is.", "rating": 8.9, "audienceRating": 8.7, "viewCount": 1, "lastViewedAt": 1704936047, "year": 2010, "tagline": "They're taking adventure to new lengths.", "thumb": "/library/metadata/14944/thumb/1705739847", "art": "/library/metadata/14944/art/1705739847", "duration": 6017237, "originallyAvailableAt": "2010-11-24T00:00:00Z", "addedAt": 1589412494, "updatedAt": 1705739847, "audienceRatingImage": "rottentomatoes://image.rating.upright", "primaryExtraKey": "/library/metadata/14952", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 38247, "duration": 6017237, "bitrate": 2051, "width": 1920, "height": 1080, "aspectRatio": 1.78, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 1, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}, {"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}]}, {"id": 38247, "duration": 6017237, "bitrate": 2051, "width": 1920, "height": 1080, "aspectRatio": 1.78, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 1, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}, {"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}]}], "Genre": [{"tag": "Animation"}, {"tag": "Animation"}, {"tag": "Animation"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "Nathan Greno"}, {"tag": "Nathan Greno"}], "Role": [{"tag": "Donna Murphy"}], "Writer": [{"tag": "Wilhelm Grimm"}, {"tag": "Wilhelm Grimm"}, {"tag": "Wilhelm Grimm"}], "skipCount": 1, "chapterSource": "media"}, {"ratingKey": "14944", "key": "/library/metadata/14944", "guid": "plex://movie/5d77686eeb5d26001f1eb339", "studio": "Walt Disney Animation Studios", "type": "movie", "title": "Tangled", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG", "summary": "The magically long-haired Rapunzel has spent her entire life in a tower, but now that a runaway thief has stumbled upon her, she is about to discover the world for the first time, and who she really is.", "rating": 8.9, "audienceRating": 8.7, "viewCount": 1, "lastViewedAt": 1704936047, "year": 2010, "tagline": "They're taking adventure to new lengths.", "thumb": "/library/metadata/14944/thumb/1705739847", "art": "/library/metadata/14944/art/1705739847", "duration": 6017237, "originallyAvailableAt": "2010-11-24T00:00:00Z", "addedAt": 1589412494, "updatedAt": 1705739847, "audienceRatingImage": "rottentomatoes://image.rating.upright", "primaryExtraKey": "/library/metadata/14952", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 38247, "duration": 6017237, "bitrate": 2051, "width": 1920, "height": 1080, "aspectRatio": 1.78, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 1, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}]}], "Genre": [{"tag": "Animation"}, {"tag": "Animation"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "Nathan Greno"}], "Role": [{"tag": "Donna Murphy"}, {"tag": "Donna Murphy"}, {"tag": "Donna Murphy"}], "Writer": [{"tag": "Wilhelm Grimm"}, {"tag": "Wilhelm Grimm"}, {"tag": "Wilhelm Grimm"}], "skipCount": 1, "chapterSource": "media"}, {"ratingKey": "14944", "key": "/library/metadata/14944", "guid": "plex://movie/5d77686eeb5d26001f1eb339", "studio": "Walt Disney Animation Studios", "type": "movie", "title": "Tangled", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG", "summary": "The magically long-haired Rapunzel has spent her entire life in a tower, but now that a runaway thief has stumbled upon her, she is about to discover the world for the first time, and who she really is.", "rating": 8.9, "audienceRating": 8.7, "viewCount": 1, "lastViewedAt": 1704936047, "year": 2010, "tagline": "They're taking adventure to new lengths.", "thumb": "/library/metadata/14944/thumb/1705739847", "art": "/library/metadata/14944/art/1705739847", "duration": 6017237, "originallyAvailableAt": "2010-11-24T00:00:00Z", "addedAt": 1589412494, "updatedAt": 1705739847, "audienceRatingImage": "rottentomatoes://image.rating.upright", "primaryExtraKey": "/library/metadata/14952", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 38247, "duration": 6017237, "bitrate": 2051, "width": 1920, "height": 1080, "aspectRatio": 1.78, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 1, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}, {"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}, {"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}]}], "Genre": [{"tag": "Animation"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "Nathan Greno"}, {"tag": "Nathan Greno"}, {"tag": "Nathan Greno"}], "Role": [{"tag": "Donna Murphy"}], "Writer": [{"tag": "Wilhelm Grimm"}, {"tag": "Wilhelm Grimm"}, {"tag": "Wilhelm Grimm"}], "skipCount": 1, "chapterSource": "media"}], "promoted": true, "random": true}]}} + application/json: {"MediaContainer": {"size": 7, "allowSync": true, "identifier": "com.plexapp.plugins.library", "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "Hub": [{"key": "/library/sections/1/all?sort=lastViewedAt:desc&unwatched=0&viewOffset=0", "title": "Recently Played Movies", "type": "movie", "hubIdentifier": "movie.recentlyviewed.1", "context": "hub.movie.recentlyviewed", "size": 6, "more": true, "style": "shelf", "hubKey": "/library/metadata/66485,66098,57249,11449,5858,14944", "Metadata": [{"ratingKey": "14944", "key": "/library/metadata/14944", "guid": "plex://movie/5d77686eeb5d26001f1eb339", "studio": "Walt Disney Animation Studios", "type": "movie", "title": "Tangled", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG", "summary": "The magically long-haired Rapunzel has spent her entire life in a tower, but now that a runaway thief has stumbled upon her, she is about to discover the world for the first time, and who she really is.", "rating": 8.9, "audienceRating": 8.7, "viewCount": 1, "lastViewedAt": 1704936047, "year": 2010, "tagline": "They're taking adventure to new lengths.", "thumb": "/library/metadata/14944/thumb/1705739847", "art": "/library/metadata/14944/art/1705739847", "duration": 6017237, "originallyAvailableAt": "2010-11-24T00:00:00Z", "addedAt": 1589412494, "updatedAt": 1705739847, "audienceRatingImage": "rottentomatoes://image.rating.upright", "primaryExtraKey": "/library/metadata/14952", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 38247, "duration": 6017237, "bitrate": 2051, "width": 1920, "height": 1080, "aspectRatio": 1.78, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 1, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}, {"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}]}, {"id": 38247, "duration": 6017237, "bitrate": 2051, "width": 1920, "height": 1080, "aspectRatio": 1.78, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 1, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}, {"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}]}, {"id": 38247, "duration": 6017237, "bitrate": 2051, "width": 1920, "height": 1080, "aspectRatio": 1.78, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 1, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}, {"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}]}], "Genre": [{"tag": "Animation"}, {"tag": "Animation"}, {"tag": "Animation"}], "Country": [{"tag": "United States of America"}], "Director": [{"tag": "Nathan Greno"}, {"tag": "Nathan Greno"}, {"tag": "Nathan Greno"}], "Role": [{"tag": "Donna Murphy"}, {"tag": "Donna Murphy"}], "Writer": [{"tag": "Wilhelm Grimm"}, {"tag": "Wilhelm Grimm"}, {"tag": "Wilhelm Grimm"}], "skipCount": 1, "chapterSource": "media"}], "promoted": true, "random": true}, {"key": "/library/sections/1/all?sort=lastViewedAt:desc&unwatched=0&viewOffset=0", "title": "Recently Played Movies", "type": "movie", "hubIdentifier": "movie.recentlyviewed.1", "context": "hub.movie.recentlyviewed", "size": 6, "more": true, "style": "shelf", "hubKey": "/library/metadata/66485,66098,57249,11449,5858,14944", "Metadata": [{"ratingKey": "14944", "key": "/library/metadata/14944", "guid": "plex://movie/5d77686eeb5d26001f1eb339", "studio": "Walt Disney Animation Studios", "type": "movie", "title": "Tangled", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG", "summary": "The magically long-haired Rapunzel has spent her entire life in a tower, but now that a runaway thief has stumbled upon her, she is about to discover the world for the first time, and who she really is.", "rating": 8.9, "audienceRating": 8.7, "viewCount": 1, "lastViewedAt": 1704936047, "year": 2010, "tagline": "They're taking adventure to new lengths.", "thumb": "/library/metadata/14944/thumb/1705739847", "art": "/library/metadata/14944/art/1705739847", "duration": 6017237, "originallyAvailableAt": "2010-11-24T00:00:00Z", "addedAt": 1589412494, "updatedAt": 1705739847, "audienceRatingImage": "rottentomatoes://image.rating.upright", "primaryExtraKey": "/library/metadata/14952", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 38247, "duration": 6017237, "bitrate": 2051, "width": 1920, "height": 1080, "aspectRatio": 1.78, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 1, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}, {"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}]}, {"id": 38247, "duration": 6017237, "bitrate": 2051, "width": 1920, "height": 1080, "aspectRatio": 1.78, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 1, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}, {"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}]}, {"id": 38247, "duration": 6017237, "bitrate": 2051, "width": 1920, "height": 1080, "aspectRatio": 1.78, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 1, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}, {"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}]}], "Genre": [{"tag": "Animation"}, {"tag": "Animation"}, {"tag": "Animation"}], "Country": [{"tag": "United States of America"}], "Director": [{"tag": "Nathan Greno"}, {"tag": "Nathan Greno"}, {"tag": "Nathan Greno"}], "Role": [{"tag": "Donna Murphy"}, {"tag": "Donna Murphy"}], "Writer": [{"tag": "Wilhelm Grimm"}, {"tag": "Wilhelm Grimm"}, {"tag": "Wilhelm Grimm"}], "skipCount": 1, "chapterSource": "media"}], "promoted": true, "random": true}]}} "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}]} + 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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} performSearch: speakeasy-default-perform-search: parameters: query: - query: "dylan" + query: "arnold" limit: 5 responses: "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}]} + application/json: {"errors": [{"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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} performVoiceSearch: speakeasy-default-perform-voice-search: parameters: @@ -1599,7 +1598,7 @@ examples: limit: 5 responses: "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}]} + application/json: {"errors": [{"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}]} getSearchResults: @@ -1609,11 +1608,11 @@ examples: query: "110" responses: "200": - application/json: {"MediaContainer": {"size": 26, "identifier": "com.plexapp.plugins.library", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1680021154, "Metadata": [{"librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "sourceTitle": "Hera", "ratingKey": 10398, "key": "/library/metadata/10398", "guid": "plex://movie/5d7768284de0ee001fcc8f52", "studio": "Paramount", "type": "movie", "title": "Mission: Impossible", "contentRating": "PG-13", "summary": "When Ethan Hunt the leader of a crack espionage team whose perilous operation has gone awry with no explanation discovers that a mole has penetrated the CIA he's surprised to learn that he's the No. 1 suspect. To clear his name Hunt now must ferret out the real double agent and in the process even the score.", "rating": 6.6, "audienceRating": 7.1, "year": 1996, "tagline": "Expect the impossible.", "thumb": "/library/metadata/10398/thumb/1679505055", "art": "/library/metadata/10398/art/1679505055", "duration": 6612628, "originallyAvailableAt": "1996-05-22T00:00:00Z", "addedAt": 1589234571, "updatedAt": 1679505055, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/10501", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 26610, "duration": 6612628, "bitrate": 4751, "width": 1916, "height": 796, "aspectRatio": 2.35, "audioChannels": 6, "audioCodec": "aac", "videoCodec": "hevc", "videoResolution": 1080, "container": "mkv", "videoFrameRate": "24p", "audioProfile": "lc", "videoProfile": "main 10", "Part": [{"id": 26610, "key": "/library/parts/26610/1589234571/file.mkv", "duration": 6612628, "file": "/movies/Mission Impossible (1996)/Mission Impossible (1996) Bluray-1080p.mkv", "size": 3926903851, "audioProfile": "lc", "container": "mkv", "videoProfile": "main 10"}, {"id": 26610, "key": "/library/parts/26610/1589234571/file.mkv", "duration": 6612628, "file": "/movies/Mission Impossible (1996)/Mission Impossible (1996) Bluray-1080p.mkv", "size": 3926903851, "audioProfile": "lc", "container": "mkv", "videoProfile": "main 10"}]}, {"id": 26610, "duration": 6612628, "bitrate": 4751, "width": 1916, "height": 796, "aspectRatio": 2.35, "audioChannels": 6, "audioCodec": "aac", "videoCodec": "hevc", "videoResolution": 1080, "container": "mkv", "videoFrameRate": "24p", "audioProfile": "lc", "videoProfile": "main 10", "Part": [{"id": 26610, "key": "/library/parts/26610/1589234571/file.mkv", "duration": 6612628, "file": "/movies/Mission Impossible (1996)/Mission Impossible (1996) Bluray-1080p.mkv", "size": 3926903851, "audioProfile": "lc", "container": "mkv", "videoProfile": "main 10"}]}, {"id": 26610, "duration": 6612628, "bitrate": 4751, "width": 1916, "height": 796, "aspectRatio": 2.35, "audioChannels": 6, "audioCodec": "aac", "videoCodec": "hevc", "videoResolution": 1080, "container": "mkv", "videoFrameRate": "24p", "audioProfile": "lc", "videoProfile": "main 10", "Part": [{"id": 26610, "key": "/library/parts/26610/1589234571/file.mkv", "duration": 6612628, "file": "/movies/Mission Impossible (1996)/Mission Impossible (1996) Bluray-1080p.mkv", "size": 3926903851, "audioProfile": "lc", "container": "mkv", "videoProfile": "main 10"}]}], "Genre": [{"tag": "Action"}], "Director": [{"tag": "Brian De Palma"}, {"tag": "Brian De Palma"}, {"tag": "Brian De Palma"}], "Writer": [{"tag": "David Koepp"}, {"tag": "David Koepp"}, {"tag": "David Koepp"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Role": [{"tag": "Tom Cruise"}]}], "Provider": [{"key": "/system/search", "title": "Local Network", "type": "mixed"}, {"key": "/system/search", "title": "Local Network", "type": "mixed"}, {"key": "/system/search", "title": "Local Network", "type": "mixed"}]}} + application/json: {"MediaContainer": {"size": 26, "identifier": "com.plexapp.plugins.library", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1680021154, "Metadata": [{"librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "sourceTitle": "Hera", "ratingKey": 10398, "key": "/library/metadata/10398", "guid": "plex://movie/5d7768284de0ee001fcc8f52", "studio": "Paramount", "type": "movie", "title": "Mission: Impossible", "contentRating": "PG-13", "summary": "When Ethan Hunt the leader of a crack espionage team whose perilous operation has gone awry with no explanation discovers that a mole has penetrated the CIA he's surprised to learn that he's the No. 1 suspect. To clear his name Hunt now must ferret out the real double agent and in the process even the score.", "rating": 6.6, "audienceRating": 7.1, "year": 1996, "tagline": "Expect the impossible.", "thumb": "/library/metadata/10398/thumb/1679505055", "art": "/library/metadata/10398/art/1679505055", "duration": 6612628, "originallyAvailableAt": "1996-05-22T00:00:00Z", "addedAt": 1589234571, "updatedAt": 1679505055, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/10501", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 26610, "duration": 6612628, "bitrate": 4751, "width": 1916, "height": 796, "aspectRatio": 2.35, "audioChannels": 6, "audioCodec": "aac", "videoCodec": "hevc", "videoResolution": 1080, "container": "mkv", "videoFrameRate": "24p", "audioProfile": "lc", "videoProfile": "main 10", "Part": [{"id": 26610, "key": "/library/parts/26610/1589234571/file.mkv", "duration": 6612628, "file": "/movies/Mission Impossible (1996)/Mission Impossible (1996) Bluray-1080p.mkv", "size": 3926903851, "audioProfile": "lc", "container": "mkv", "videoProfile": "main 10"}]}], "Genre": [{"tag": "Action"}, {"tag": "Action"}], "Director": [{"tag": "Brian De Palma"}], "Writer": [{"tag": "David Koepp"}, {"tag": "David Koepp"}, {"tag": "David Koepp"}], "Country": [{"tag": "United States of America"}], "Role": [{"tag": "Tom Cruise"}, {"tag": "Tom Cruise"}, {"tag": "Tom Cruise"}]}, {"librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "sourceTitle": "Hera", "ratingKey": 10398, "key": "/library/metadata/10398", "guid": "plex://movie/5d7768284de0ee001fcc8f52", "studio": "Paramount", "type": "movie", "title": "Mission: Impossible", "contentRating": "PG-13", "summary": "When Ethan Hunt the leader of a crack espionage team whose perilous operation has gone awry with no explanation discovers that a mole has penetrated the CIA he's surprised to learn that he's the No. 1 suspect. To clear his name Hunt now must ferret out the real double agent and in the process even the score.", "rating": 6.6, "audienceRating": 7.1, "year": 1996, "tagline": "Expect the impossible.", "thumb": "/library/metadata/10398/thumb/1679505055", "art": "/library/metadata/10398/art/1679505055", "duration": 6612628, "originallyAvailableAt": "1996-05-22T00:00:00Z", "addedAt": 1589234571, "updatedAt": 1679505055, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/10501", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 26610, "duration": 6612628, "bitrate": 4751, "width": 1916, "height": 796, "aspectRatio": 2.35, "audioChannels": 6, "audioCodec": "aac", "videoCodec": "hevc", "videoResolution": 1080, "container": "mkv", "videoFrameRate": "24p", "audioProfile": "lc", "videoProfile": "main 10", "Part": [{"id": 26610, "key": "/library/parts/26610/1589234571/file.mkv", "duration": 6612628, "file": "/movies/Mission Impossible (1996)/Mission Impossible (1996) Bluray-1080p.mkv", "size": 3926903851, "audioProfile": "lc", "container": "mkv", "videoProfile": "main 10"}]}], "Genre": [{"tag": "Action"}, {"tag": "Action"}], "Director": [{"tag": "Brian De Palma"}], "Writer": [{"tag": "David Koepp"}, {"tag": "David Koepp"}, {"tag": "David Koepp"}], "Country": [{"tag": "United States of America"}], "Role": [{"tag": "Tom Cruise"}, {"tag": "Tom Cruise"}, {"tag": "Tom Cruise"}]}, {"librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "sourceTitle": "Hera", "ratingKey": 10398, "key": "/library/metadata/10398", "guid": "plex://movie/5d7768284de0ee001fcc8f52", "studio": "Paramount", "type": "movie", "title": "Mission: Impossible", "contentRating": "PG-13", "summary": "When Ethan Hunt the leader of a crack espionage team whose perilous operation has gone awry with no explanation discovers that a mole has penetrated the CIA he's surprised to learn that he's the No. 1 suspect. To clear his name Hunt now must ferret out the real double agent and in the process even the score.", "rating": 6.6, "audienceRating": 7.1, "year": 1996, "tagline": "Expect the impossible.", "thumb": "/library/metadata/10398/thumb/1679505055", "art": "/library/metadata/10398/art/1679505055", "duration": 6612628, "originallyAvailableAt": "1996-05-22T00:00:00Z", "addedAt": 1589234571, "updatedAt": 1679505055, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/10501", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 26610, "duration": 6612628, "bitrate": 4751, "width": 1916, "height": 796, "aspectRatio": 2.35, "audioChannels": 6, "audioCodec": "aac", "videoCodec": "hevc", "videoResolution": 1080, "container": "mkv", "videoFrameRate": "24p", "audioProfile": "lc", "videoProfile": "main 10", "Part": [{"id": 26610, "key": "/library/parts/26610/1589234571/file.mkv", "duration": 6612628, "file": "/movies/Mission Impossible (1996)/Mission Impossible (1996) Bluray-1080p.mkv", "size": 3926903851, "audioProfile": "lc", "container": "mkv", "videoProfile": "main 10"}]}], "Genre": [{"tag": "Action"}, {"tag": "Action"}], "Director": [{"tag": "Brian De Palma"}], "Writer": [{"tag": "David Koepp"}, {"tag": "David Koepp"}, {"tag": "David Koepp"}], "Country": [{"tag": "United States of America"}], "Role": [{"tag": "Tom Cruise"}, {"tag": "Tom Cruise"}, {"tag": "Tom Cruise"}]}], "Provider": [{"key": "/system/search", "title": "Local Network", "type": "mixed"}, {"key": "/system/search", "title": "Local Network", "type": "mixed"}, {"key": "/system/search", "title": "Local Network", "type": "mixed"}]}} "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}]} + 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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getFileHash: speakeasy-default-get-file-hash: parameters: @@ -1621,9 +1620,9 @@ examples: url: "file://C:\\Image.png&type=13" responses: "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}]} + application/json: {"errors": [{"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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-recently-added-library: speakeasy-default-get-recently-added-library: parameters: @@ -1637,20 +1636,20 @@ examples: X-Plex-Container-Size: 50 responses: "200": - application/json: {"MediaContainer": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": [{"key": "=", "title": "is"}]}], "size": 50, "identifier": "com.plexapp.plugins.library", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1680021154, "Metadata": [{"librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "ratingKey": 59398, "key": "/library/metadata/59398", "guid": "plex://movie/5e161a83bea6ac004126e148", "studio": "Marvel Studios", "type": "movie", "title": "Ant-Man and the Wasp: Quantumania", "contentRating": "PG-13", "summary": "Scott Lang and Hope Van Dyne along with Hank Pym and Janet Van Dyne explore the Quantum Realm where they interact with strange creatures and embark on an adventure that goes beyond the limits of what they thought was possible.", "rating": 4.7, "audienceRating": 8.3, "year": 2023, "tagline": "Witness the beginning of a new dynasty.", "thumb": "/library/metadata/59398/thumb/1681888010", "art": "/library/metadata/59398/art/1681888010", "duration": 7474422, "originallyAvailableAt": "2023-02-15T00:00:00Z", "addedAt": 1681803215, "updatedAt": 1681888010, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/59399", "ratingImage": "rottentomatoes://image.rating.rotten", "Media": [{"id": 120345, "duration": 7474422, "bitrate": 3623, "width": 1920, "height": 804, "aspectRatio": 2.35, "audioChannels": 6, "audioCodec": "ac3", "videoCodec": "h264", "videoResolution": 1080, "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 0, "videoProfile": "high", "Part": [{"id": 120353, "key": "/library/parts/120353/1681803203/file.mp4", "duration": 7474422, "file": "/movies/Ant-Man and the Wasp Quantumania (2023)/Ant-Man.and.the.Wasp.Quantumania.2023.1080p.mp4", "size": 3395307162, "container": "mp4", "hasThumbnail": 1, "videoProfile": "high"}]}], "Genre": [{"tag": "Comedy"}], "Director": [{"tag": "Peyton Reed"}], "Writer": [{"tag": "Jeff Loveness"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}, {"tag": "United States of America"}], "Role": [{"tag": "Paul Rudd"}]}]}} + application/json: {"MediaContainer": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": [{"key": "=", "title": "is"}, {"key": "=", "title": "is"}, {"key": "=", "title": "is"}]}, {"type": "tag", "Operator": [{"key": "=", "title": "is"}, {"key": "=", "title": "is"}, {"key": "=", "title": "is"}]}], "size": 50, "identifier": "com.plexapp.plugins.library", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1680021154, "Metadata": [{"librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "ratingKey": 59398, "key": "/library/metadata/59398", "guid": "plex://movie/5e161a83bea6ac004126e148", "studio": "Marvel Studios", "type": "movie", "title": "Ant-Man and the Wasp: Quantumania", "contentRating": "PG-13", "summary": "Scott Lang and Hope Van Dyne along with Hank Pym and Janet Van Dyne explore the Quantum Realm where they interact with strange creatures and embark on an adventure that goes beyond the limits of what they thought was possible.", "rating": 4.7, "audienceRating": 8.3, "year": 2023, "tagline": "Witness the beginning of a new dynasty.", "thumb": "/library/metadata/59398/thumb/1681888010", "art": "/library/metadata/59398/art/1681888010", "duration": 7474422, "originallyAvailableAt": "2023-02-15T00:00:00Z", "addedAt": 1681803215, "updatedAt": 1681888010, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/59399", "ratingImage": "rottentomatoes://image.rating.rotten", "Media": [{"id": 120345, "duration": 7474422, "bitrate": 3623, "width": 1920, "height": 804, "aspectRatio": 2.35, "audioChannels": 6, "audioCodec": "ac3", "videoCodec": "h264", "videoResolution": 1080, "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 0, "videoProfile": "high", "Part": [{"id": 120353, "key": "/library/parts/120353/1681803203/file.mp4", "duration": 7474422, "file": "/movies/Ant-Man and the Wasp Quantumania (2023)/Ant-Man.and.the.Wasp.Quantumania.2023.1080p.mp4", "size": 3395307162, "container": "mp4", "hasThumbnail": 1, "videoProfile": "high"}]}], "Genre": [{"tag": "Comedy"}, {"tag": "Comedy"}, {"tag": "Comedy"}], "Director": [{"tag": "Peyton Reed"}, {"tag": "Peyton Reed"}], "Writer": [{"tag": "Jeff Loveness"}, {"tag": "Jeff Loveness"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Role": [{"tag": "Paul Rudd"}, {"tag": "Paul Rudd"}, {"tag": "Paul Rudd"}]}, {"librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "ratingKey": 59398, "key": "/library/metadata/59398", "guid": "plex://movie/5e161a83bea6ac004126e148", "studio": "Marvel Studios", "type": "movie", "title": "Ant-Man and the Wasp: Quantumania", "contentRating": "PG-13", "summary": "Scott Lang and Hope Van Dyne along with Hank Pym and Janet Van Dyne explore the Quantum Realm where they interact with strange creatures and embark on an adventure that goes beyond the limits of what they thought was possible.", "rating": 4.7, "audienceRating": 8.3, "year": 2023, "tagline": "Witness the beginning of a new dynasty.", "thumb": "/library/metadata/59398/thumb/1681888010", "art": "/library/metadata/59398/art/1681888010", "duration": 7474422, "originallyAvailableAt": "2023-02-15T00:00:00Z", "addedAt": 1681803215, "updatedAt": 1681888010, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/59399", "ratingImage": "rottentomatoes://image.rating.rotten", "Media": [{"id": 120345, "duration": 7474422, "bitrate": 3623, "width": 1920, "height": 804, "aspectRatio": 2.35, "audioChannels": 6, "audioCodec": "ac3", "videoCodec": "h264", "videoResolution": 1080, "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 0, "videoProfile": "high", "Part": [{"id": 120353, "key": "/library/parts/120353/1681803203/file.mp4", "duration": 7474422, "file": "/movies/Ant-Man and the Wasp Quantumania (2023)/Ant-Man.and.the.Wasp.Quantumania.2023.1080p.mp4", "size": 3395307162, "container": "mp4", "hasThumbnail": 1, "videoProfile": "high"}]}], "Genre": [{"tag": "Comedy"}, {"tag": "Comedy"}, {"tag": "Comedy"}], "Director": [{"tag": "Peyton Reed"}, {"tag": "Peyton Reed"}], "Writer": [{"tag": "Jeff Loveness"}, {"tag": "Jeff Loveness"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Role": [{"tag": "Paul Rudd"}, {"tag": "Paul Rudd"}, {"tag": "Paul Rudd"}]}, {"librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "ratingKey": 59398, "key": "/library/metadata/59398", "guid": "plex://movie/5e161a83bea6ac004126e148", "studio": "Marvel Studios", "type": "movie", "title": "Ant-Man and the Wasp: Quantumania", "contentRating": "PG-13", "summary": "Scott Lang and Hope Van Dyne along with Hank Pym and Janet Van Dyne explore the Quantum Realm where they interact with strange creatures and embark on an adventure that goes beyond the limits of what they thought was possible.", "rating": 4.7, "audienceRating": 8.3, "year": 2023, "tagline": "Witness the beginning of a new dynasty.", "thumb": "/library/metadata/59398/thumb/1681888010", "art": "/library/metadata/59398/art/1681888010", "duration": 7474422, "originallyAvailableAt": "2023-02-15T00:00:00Z", "addedAt": 1681803215, "updatedAt": 1681888010, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/59399", "ratingImage": "rottentomatoes://image.rating.rotten", "Media": [{"id": 120345, "duration": 7474422, "bitrate": 3623, "width": 1920, "height": 804, "aspectRatio": 2.35, "audioChannels": 6, "audioCodec": "ac3", "videoCodec": "h264", "videoResolution": 1080, "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 0, "videoProfile": "high", "Part": [{"id": 120353, "key": "/library/parts/120353/1681803203/file.mp4", "duration": 7474422, "file": "/movies/Ant-Man and the Wasp Quantumania (2023)/Ant-Man.and.the.Wasp.Quantumania.2023.1080p.mp4", "size": 3395307162, "container": "mp4", "hasThumbnail": 1, "videoProfile": "high"}]}], "Genre": [{"tag": "Comedy"}, {"tag": "Comedy"}, {"tag": "Comedy"}], "Director": [{"tag": "Peyton Reed"}, {"tag": "Peyton Reed"}], "Writer": [{"tag": "Jeff Loveness"}, {"tag": "Jeff Loveness"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Role": [{"tag": "Paul Rudd"}, {"tag": "Paul Rudd"}, {"tag": "Paul Rudd"}]}]}} "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}]} + 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}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-all-libraries: speakeasy-default-get-all-libraries: responses: "200": - application/json: {"MediaContainer": {"size": 50, "allowSync": false, "title1": "TV Series", "Directory": [{"allowSync": false, "art": "/:/resources/show-fanart.jpg", "composite": "/library/sections/1/composite/1743824484", "filters": true, "refreshing": true, "thumb": "/:/resources/show.png", "key": "1", "type": "movie", "title": "Movies", "agent": "tv.plex.agents.movie", "scanner": "Plex Movie", "language": "en-US", "uuid": "e69655a2-ef48-4aba-bb19-01e7d3cc34d6", "updatedAt": 1556281940, "createdAt": 1556281940, "scannedAt": 1556281940, "content": true, "directory": true, "contentChangedAt": 9173960, "hidden": 1, "Location": [{"id": 1, "path": "/Movies"}, {"id": 1, "path": "/Movies"}]}, {"allowSync": false, "art": "/:/resources/show-fanart.jpg", "composite": "/library/sections/1/composite/1743824484", "filters": true, "refreshing": true, "thumb": "/:/resources/show.png", "key": "1", "type": "movie", "title": "Movies", "agent": "tv.plex.agents.movie", "scanner": "Plex Movie", "language": "en-US", "uuid": "e69655a2-ef48-4aba-bb19-01e7d3cc34d6", "updatedAt": 1556281940, "createdAt": 1556281940, "scannedAt": 1556281940, "content": true, "directory": true, "contentChangedAt": 9173960, "hidden": 1, "Location": [{"id": 1, "path": "/Movies"}, {"id": 1, "path": "/Movies"}]}]}} + application/json: {"MediaContainer": {"size": 50, "allowSync": false, "title1": "TV Series", "Directory": [{"allowSync": false, "art": "/:/resources/show-fanart.jpg", "composite": "/library/sections/1/composite/1743824484", "filters": true, "refreshing": true, "thumb": "/:/resources/show.png", "key": "1", "type": "movie", "title": "Movies", "agent": "tv.plex.agents.movie", "scanner": "Plex Movie", "language": "en-US", "uuid": "e69655a2-ef48-4aba-bb19-01e7d3cc34d6", "updatedAt": 1556281940, "createdAt": 1556281940, "scannedAt": 1556281940, "content": true, "directory": true, "contentChangedAt": 9173960, "hidden": 1, "Location": []}, {"allowSync": false, "art": "/:/resources/show-fanart.jpg", "composite": "/library/sections/1/composite/1743824484", "filters": true, "refreshing": true, "thumb": "/:/resources/show.png", "key": "1", "type": "movie", "title": "Movies", "agent": "tv.plex.agents.movie", "scanner": "Plex Movie", "language": "en-US", "uuid": "e69655a2-ef48-4aba-bb19-01e7d3cc34d6", "updatedAt": 1556281940, "createdAt": 1556281940, "scannedAt": 1556281940, "content": true, "directory": true, "contentChangedAt": 9173960, "hidden": 1, "Location": []}]}} "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}]} + application/json: {"errors": [{"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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-library-details: speakeasy-default-get-library-details: parameters: @@ -1660,11 +1659,11 @@ examples: includeDetails: 0 responses: "200": - application/json: {"MediaContainer": {"size": 29, "allowSync": false, "art": "/:/resources/movie-fanart.jpg", "content": "secondary", "identifier": "com.plexapp.plugins.library", "librarySectionID": 1, "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1701731894, "thumb": "/:/resources/movie.png", "title1": "Movies", "viewGroup": "secondary", "viewMode": 65592, "Directory": [{"key": "search?type=1", "title": "Search...", "secondary": true, "prompt": "Search Movies", "search": true}], "Type": [{"key": "/library/sections/1/all?type=1", "type": "movie", "title": "Movies", "active": false, "Filter": [{"filter": "label", "filterType": "string", "key": "/library/sections/1/label", "title": "Labels", "type": "filter"}], "Sort": [{"default": "asc", "defaultDirection": "desc", "descKey": "random:desc", "firstCharacterKey": "/library/sections/1/firstCharacter", "key": "random", "title": "Randomly"}, {"default": "asc", "defaultDirection": "desc", "descKey": "random:desc", "firstCharacterKey": "/library/sections/1/firstCharacter", "key": "random", "title": "Randomly"}, {"default": "asc", "defaultDirection": "desc", "descKey": "random:desc", "firstCharacterKey": "/library/sections/1/firstCharacter", "key": "random", "title": "Randomly"}], "Field": [{"key": "label", "title": "Label", "type": "tag", "subType": "bitrate"}, {"key": "label", "title": "Label", "type": "tag", "subType": "bitrate"}, {"key": "label", "title": "Label", "type": "tag", "subType": "bitrate"}]}, {"key": "/library/sections/1/all?type=1", "type": "movie", "title": "Movies", "active": false, "Filter": [{"filter": "label", "filterType": "string", "key": "/library/sections/1/label", "title": "Labels", "type": "filter"}, {"filter": "label", "filterType": "string", "key": "/library/sections/1/label", "title": "Labels", "type": "filter"}, {"filter": "label", "filterType": "string", "key": "/library/sections/1/label", "title": "Labels", "type": "filter"}], "Sort": [{"default": "asc", "defaultDirection": "desc", "descKey": "random:desc", "firstCharacterKey": "/library/sections/1/firstCharacter", "key": "random", "title": "Randomly"}, {"default": "asc", "defaultDirection": "desc", "descKey": "random:desc", "firstCharacterKey": "/library/sections/1/firstCharacter", "key": "random", "title": "Randomly"}, {"default": "asc", "defaultDirection": "desc", "descKey": "random:desc", "firstCharacterKey": "/library/sections/1/firstCharacter", "key": "random", "title": "Randomly"}], "Field": [{"key": "label", "title": "Label", "type": "tag", "subType": "bitrate"}, {"key": "label", "title": "Label", "type": "tag", "subType": "bitrate"}, {"key": "label", "title": "Label", "type": "tag", "subType": "bitrate"}]}], "FieldType": [{"type": "resolution", "Operator": [{"key": "=", "title": "is"}, {"key": "=", "title": "is"}, {"key": "=", "title": "is"}]}, {"type": "resolution", "Operator": [{"key": "=", "title": "is"}]}]}} + application/json: {"MediaContainer": {"size": 29, "allowSync": false, "art": "/:/resources/movie-fanart.jpg", "content": "secondary", "identifier": "com.plexapp.plugins.library", "librarySectionID": 1, "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1701731894, "thumb": "/:/resources/movie.png", "title1": "Movies", "viewGroup": "secondary", "viewMode": 65592, "Directory": [{"key": "search?type=1", "title": "Search...", "secondary": true, "prompt": "Search Movies", "search": true}], "Type": [{"key": "/library/sections/1/all?type=1", "type": "movie", "title": "Movies", "active": false, "Filter": [{"filter": "label", "filterType": "string", "key": "/library/sections/1/label", "title": "Labels", "type": "filter"}, {"filter": "label", "filterType": "string", "key": "/library/sections/1/label", "title": "Labels", "type": "filter"}, {"filter": "label", "filterType": "string", "key": "/library/sections/1/label", "title": "Labels", "type": "filter"}], "Sort": [{"default": "asc", "defaultDirection": "desc", "descKey": "random:desc", "firstCharacterKey": "/library/sections/1/firstCharacter", "key": "random", "title": "Randomly"}], "Field": [{"key": "label", "title": "Label", "type": "tag", "subType": "bitrate"}]}, {"key": "/library/sections/1/all?type=1", "type": "movie", "title": "Movies", "active": false, "Filter": [{"filter": "label", "filterType": "string", "key": "/library/sections/1/label", "title": "Labels", "type": "filter"}, {"filter": "label", "filterType": "string", "key": "/library/sections/1/label", "title": "Labels", "type": "filter"}, {"filter": "label", "filterType": "string", "key": "/library/sections/1/label", "title": "Labels", "type": "filter"}], "Sort": [{"default": "asc", "defaultDirection": "desc", "descKey": "random:desc", "firstCharacterKey": "/library/sections/1/firstCharacter", "key": "random", "title": "Randomly"}], "Field": [{"key": "label", "title": "Label", "type": "tag", "subType": "bitrate"}]}, {"key": "/library/sections/1/all?type=1", "type": "movie", "title": "Movies", "active": false, "Filter": [{"filter": "label", "filterType": "string", "key": "/library/sections/1/label", "title": "Labels", "type": "filter"}, {"filter": "label", "filterType": "string", "key": "/library/sections/1/label", "title": "Labels", "type": "filter"}, {"filter": "label", "filterType": "string", "key": "/library/sections/1/label", "title": "Labels", "type": "filter"}], "Sort": [{"default": "asc", "defaultDirection": "desc", "descKey": "random:desc", "firstCharacterKey": "/library/sections/1/firstCharacter", "key": "random", "title": "Randomly"}], "Field": [{"key": "label", "title": "Label", "type": "tag", "subType": "bitrate"}]}], "FieldType": [{"type": "resolution", "Operator": [{"key": "=", "title": "is"}]}]}} "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}]} + 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}]} deleteLibrary: speakeasy-default-delete-library: parameters: @@ -1672,14 +1671,14 @@ examples: sectionKey: 9518 responses: "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}]} + 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}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-library-items: speakeasy-default-get-library-items: parameters: path: - tag: "edition" + tag: "newest" sectionKey: 9518 query: includeGuids: 1 @@ -1689,11 +1688,11 @@ examples: X-Plex-Container-Size: 50 responses: "200": - application/json: {"MediaContainer": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": [{"key": "=", "title": "is"}]}, {"type": "tag", "Operator": []}], "size": 70, "totalSize": 170, "offset": 0, "content": "secondary", "allowSync": true, "nocache": true, "art": "/:/resources/movie-fanart.jpg", "identifier": "com.plexapp.plugins.library", "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1701731894, "thumb": "/:/resources/movie.png", "title1": "Movies", "title2": "Recently Released", "viewGroup": "movie", "viewMode": 65592, "mixedParents": true, "Metadata": [{"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "studio": "20th Century Studios", "skipChildren": false, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "type": "movie", "title": "Avatar: The Way of Water", "slug": "4-for-texas", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "seasonCount": 2022, "tagline": "Return to Pandora.", "flattenSeasons": "1", "episodeSort": "0", "enableCreditsMarkerGeneration": "-1", "showOrdering": "absolute", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "banner": "/library/metadata/58683/banner/1703239236", "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "grandparentRatingKey": "66", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "parentSlug": "alice-in-borderland-2020", "grandparentSlug": "alice-in-borderland-2020", "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": []}], "Genre": [{"tag": "Adventure"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}, {"tag": "James Cameron"}, {"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}, {"tag": "Working NL Subs"}, {"tag": "Working NL Subs"}], "Role": [{"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}], "Location": [{"path": "/TV Shows/House"}, {"path": "/TV Shows/House"}], "Guid": [{"id": "imdb://tt13015952"}, {"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}, {"image": "themoviedb://image.rating", "value": 3, "type": "audience"}, {"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "titleSort": "Whale", "viewCount": 1, "lastViewedAt": 1682752242, "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "viewOffset": 5222500, "skipCount": 1, "index": 1, "theme": "/library/metadata/1/theme/1705636920", "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "parentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentStudio": "UCP", "parentKey": "/library/metadata/66", "parentTitle": "Caprica", "parentIndex": 1, "parentYear": 2010, "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTheme": "/library/metadata/66/theme/1705716261"}, {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "studio": "20th Century Studios", "skipChildren": false, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "type": "movie", "title": "Avatar: The Way of Water", "slug": "4-for-texas", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "seasonCount": 2022, "tagline": "Return to Pandora.", "flattenSeasons": "1", "episodeSort": "0", "enableCreditsMarkerGeneration": "-1", "showOrdering": "absolute", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "banner": "/library/metadata/58683/banner/1703239236", "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "grandparentRatingKey": "66", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "parentSlug": "alice-in-borderland-2020", "grandparentSlug": "alice-in-borderland-2020", "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}], "Genre": [{"tag": "Adventure"}, {"tag": "Adventure"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}], "Role": [{"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}], "Location": [{"path": "/TV Shows/House"}, {"path": "/TV Shows/House"}, {"path": "/TV Shows/House"}], "Guid": [{"id": "imdb://tt13015952"}, {"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}, {"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "titleSort": "Whale", "viewCount": 1, "lastViewedAt": 1682752242, "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "viewOffset": 5222500, "skipCount": 1, "index": 1, "theme": "/library/metadata/1/theme/1705636920", "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "parentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentStudio": "UCP", "parentKey": "/library/metadata/66", "parentTitle": "Caprica", "parentIndex": 1, "parentYear": 2010, "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTheme": "/library/metadata/66/theme/1705716261"}], "Meta": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "show", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": [{"key": "=", "title": "is"}, {"key": "=", "title": "is"}, {"key": "=", "title": "is"}]}, {"type": "tag", "Operator": [{"key": "=", "title": "is"}, {"key": "=", "title": "is"}, {"key": "=", "title": "is"}]}, {"type": "tag", "Operator": [{"key": "=", "title": "is"}]}]}}} + application/json: {"MediaContainer": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": []}], "size": 70, "totalSize": 170, "offset": 0, "content": "secondary", "allowSync": true, "nocache": true, "art": "/:/resources/movie-fanart.jpg", "identifier": "com.plexapp.plugins.library", "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1701731894, "thumb": "/:/resources/movie.png", "title1": "Movies", "title2": "Recently Released", "viewGroup": "movie", "viewMode": 65592, "mixedParents": true, "Metadata": [{"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "studio": "20th Century Studios", "skipChildren": false, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "type": "movie", "title": "Avatar: The Way of Water", "slug": "4-for-texas", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "seasonCount": 2022, "tagline": "Return to Pandora.", "flattenSeasons": "1", "episodeSort": "0", "enableCreditsMarkerGeneration": "-1", "showOrdering": "absolute", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "banner": "/library/metadata/58683/banner/1703239236", "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "grandparentRatingKey": "66", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "parentSlug": "alice-in-borderland-2020", "grandparentSlug": "alice-in-borderland-2020", "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}], "Genre": [{"tag": "Adventure"}, {"tag": "Adventure"}, {"tag": "Adventure"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}, {"tag": "James Cameron"}, {"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}], "Role": [{"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}], "Location": [{"path": "/TV Shows/House"}, {"path": "/TV Shows/House"}], "Guid": [{"id": "imdb://tt13015952"}, {"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "titleSort": "Whale", "viewCount": 1, "lastViewedAt": 1682752242, "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "viewOffset": 5222500, "skipCount": 1, "index": 1, "theme": "/library/metadata/1/theme/1705636920", "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "parentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentStudio": "UCP", "parentKey": "/library/metadata/66", "parentTitle": "Caprica", "parentIndex": 1, "parentYear": 2010, "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTheme": "/library/metadata/66/theme/1705716261"}, {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "studio": "20th Century Studios", "skipChildren": false, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "type": "movie", "title": "Avatar: The Way of Water", "slug": "4-for-texas", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "seasonCount": 2022, "tagline": "Return to Pandora.", "flattenSeasons": "1", "episodeSort": "0", "enableCreditsMarkerGeneration": "-1", "showOrdering": "absolute", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "banner": "/library/metadata/58683/banner/1703239236", "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "grandparentRatingKey": "66", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "parentSlug": "alice-in-borderland-2020", "grandparentSlug": "alice-in-borderland-2020", "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}], "Genre": [{"tag": "Adventure"}, {"tag": "Adventure"}, {"tag": "Adventure"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}, {"tag": "James Cameron"}, {"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}], "Role": [{"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}], "Location": [{"path": "/TV Shows/House"}, {"path": "/TV Shows/House"}], "Guid": [{"id": "imdb://tt13015952"}, {"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "titleSort": "Whale", "viewCount": 1, "lastViewedAt": 1682752242, "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "viewOffset": 5222500, "skipCount": 1, "index": 1, "theme": "/library/metadata/1/theme/1705636920", "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "parentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentStudio": "UCP", "parentKey": "/library/metadata/66", "parentTitle": "Caprica", "parentIndex": 1, "parentYear": 2010, "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTheme": "/library/metadata/66/theme/1705716261"}, {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "studio": "20th Century Studios", "skipChildren": false, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "type": "movie", "title": "Avatar: The Way of Water", "slug": "4-for-texas", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "seasonCount": 2022, "tagline": "Return to Pandora.", "flattenSeasons": "1", "episodeSort": "0", "enableCreditsMarkerGeneration": "-1", "showOrdering": "absolute", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "banner": "/library/metadata/58683/banner/1703239236", "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "grandparentRatingKey": "66", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "parentSlug": "alice-in-borderland-2020", "grandparentSlug": "alice-in-borderland-2020", "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}], "Genre": [{"tag": "Adventure"}, {"tag": "Adventure"}, {"tag": "Adventure"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}, {"tag": "James Cameron"}, {"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}], "Role": [{"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}], "Location": [{"path": "/TV Shows/House"}, {"path": "/TV Shows/House"}], "Guid": [{"id": "imdb://tt13015952"}, {"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "titleSort": "Whale", "viewCount": 1, "lastViewedAt": 1682752242, "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "viewOffset": 5222500, "skipCount": 1, "index": 1, "theme": "/library/metadata/1/theme/1705636920", "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "parentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentStudio": "UCP", "parentKey": "/library/metadata/66", "parentTitle": "Caprica", "parentIndex": 1, "parentYear": 2010, "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTheme": "/library/metadata/66/theme/1705716261"}], "Meta": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "show", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "show", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "show", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": [{"key": "=", "title": "is"}, {"key": "=", "title": "is"}, {"key": "=", "title": "is"}]}, {"type": "tag", "Operator": [{"key": "=", "title": "is"}, {"key": "=", "title": "is"}, {"key": "=", "title": "is"}]}, {"type": "tag", "Operator": [{"key": "=", "title": "is"}, {"key": "=", "title": "is"}, {"key": "=", "title": "is"}]}]}}} "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}]} + 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}]} + 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-all-media-library: speakeasy-default-get-all-media-library: parameters: @@ -1710,7 +1709,7 @@ examples: X-Plex-Container-Size: 50 responses: "200": - application/json: {"MediaContainer": {"size": 50, "totalSize": 50, "offset": 0, "allowSync": false, "art": "/:/resources/show-fanart.jpg", "content": "secondary", "identifier": "com.plexapp.plugins.library", "librarySectionID": 2, "librarySectionTitle": "TV Series", "librarySectionUUID": "e69655a2-ef48-4aba-bb19-0cc34d1e7d36", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "thumb": "/:/resources/show.png", "nocache": true, "title1": "TV Series", "title2": "By Starring Actor", "viewGroup": "secondary", "Meta": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": []}]}, "Metadata": [{"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "slug": "4-for-texas", "studio": "20th Century Studios", "type": "movie", "title": "Avatar: The Way of Water", "titleSort": "Whale", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "tagline": "Return to Pandora.", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "theme": "/library/metadata/1/theme/1705636920", "index": 1, "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "seasonCount": 2022, "duration": 11558112, "originallyAvailableAt": "2022-12-14", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "parentRatingKey": "66", "grandparentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/66", "parentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentArt": "/library/metadata/66/art/1705716261", "parentTitle": "Caprica", "parentIndex": 1, "parentThumb": "/library/metadata/66/thumb/1705716261", "ratingImage": "rottentomatoes://image.rating.ripe", "viewCount": 1, "viewOffset": 5222500, "skipCount": 1, "subtype": "clip", "lastRatedAt": 1721813113, "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "lastViewedAt": 1682752242, "userRating": 10, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"tag": "Crime"}, {"tag": "Crime"}, {"tag": "Crime"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}], "Writer": [{"tag": "Jamie P. Hanson"}, {"tag": "Jamie P. Hanson"}], "Role": [{"tag": "Teller"}], "Guid": [{"id": "tvdb://2337"}], "Collection": [{"tag": "My Awesome Collection"}, {"tag": "My Awesome Collection"}]}]}} + application/json: {"MediaContainer": {"size": 50, "totalSize": 50, "offset": 0, "allowSync": false, "art": "/:/resources/show-fanart.jpg", "content": "secondary", "identifier": "com.plexapp.plugins.library", "librarySectionID": 2, "librarySectionTitle": "TV Series", "librarySectionUUID": "e69655a2-ef48-4aba-bb19-0cc34d1e7d36", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "thumb": "/:/resources/show.png", "nocache": true, "title1": "TV Series", "title2": "By Starring Actor", "viewGroup": "secondary", "Meta": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": [{"key": "=", "title": "is"}, {"key": "=", "title": "is"}]}]}, "Metadata": [{"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "slug": "4-for-texas", "studio": "20th Century Studios", "type": "movie", "title": "Avatar: The Way of Water", "titleSort": "Whale", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "tagline": "Return to Pandora.", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "theme": "/library/metadata/1/theme/1705636920", "index": 1, "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "seasonCount": 2022, "duration": 11558112, "originallyAvailableAt": "2022-12-14", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "parentRatingKey": "66", "grandparentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/66", "parentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentArt": "/library/metadata/66/art/1705716261", "parentTitle": "Caprica", "parentIndex": 1, "parentThumb": "/library/metadata/66/thumb/1705716261", "ratingImage": "rottentomatoes://image.rating.ripe", "viewCount": 1, "viewOffset": 5222500, "skipCount": 1, "subtype": "clip", "lastRatedAt": 1721813113, "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "lastViewedAt": 1682752242, "userRating": 10, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"tag": "Crime"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}], "Writer": [{"tag": "Jamie P. Hanson"}, {"tag": "Jamie P. Hanson"}, {"tag": "Jamie P. Hanson"}], "Role": [{"tag": "Teller"}, {"tag": "Teller"}], "Guid": [{"id": "tvdb://2337"}, {"id": "tvdb://2337"}, {"id": "tvdb://2337"}], "Collection": [{"tag": "My Awesome Collection"}, {"tag": "My Awesome Collection"}, {"tag": "My Awesome Collection"}]}, {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "slug": "4-for-texas", "studio": "20th Century Studios", "type": "movie", "title": "Avatar: The Way of Water", "titleSort": "Whale", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "tagline": "Return to Pandora.", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "theme": "/library/metadata/1/theme/1705636920", "index": 1, "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "seasonCount": 2022, "duration": 11558112, "originallyAvailableAt": "2022-12-14", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "parentRatingKey": "66", "grandparentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/66", "parentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentArt": "/library/metadata/66/art/1705716261", "parentTitle": "Caprica", "parentIndex": 1, "parentThumb": "/library/metadata/66/thumb/1705716261", "ratingImage": "rottentomatoes://image.rating.ripe", "viewCount": 1, "viewOffset": 5222500, "skipCount": 1, "subtype": "clip", "lastRatedAt": 1721813113, "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "lastViewedAt": 1682752242, "userRating": 10, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"tag": "Crime"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}], "Writer": [{"tag": "Jamie P. Hanson"}, {"tag": "Jamie P. Hanson"}, {"tag": "Jamie P. Hanson"}], "Role": [{"tag": "Teller"}, {"tag": "Teller"}], "Guid": [{"id": "tvdb://2337"}, {"id": "tvdb://2337"}, {"id": "tvdb://2337"}], "Collection": [{"tag": "My Awesome Collection"}, {"tag": "My Awesome Collection"}, {"tag": "My Awesome Collection"}]}, {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "slug": "4-for-texas", "studio": "20th Century Studios", "type": "movie", "title": "Avatar: The Way of Water", "titleSort": "Whale", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "tagline": "Return to Pandora.", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "theme": "/library/metadata/1/theme/1705636920", "index": 1, "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "seasonCount": 2022, "duration": 11558112, "originallyAvailableAt": "2022-12-14", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "parentRatingKey": "66", "grandparentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/66", "parentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentArt": "/library/metadata/66/art/1705716261", "parentTitle": "Caprica", "parentIndex": 1, "parentThumb": "/library/metadata/66/thumb/1705716261", "ratingImage": "rottentomatoes://image.rating.ripe", "viewCount": 1, "viewOffset": 5222500, "skipCount": 1, "subtype": "clip", "lastRatedAt": 1721813113, "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "lastViewedAt": 1682752242, "userRating": 10, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"tag": "Crime"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}], "Writer": [{"tag": "Jamie P. Hanson"}, {"tag": "Jamie P. Hanson"}, {"tag": "Jamie P. Hanson"}], "Role": [{"tag": "Teller"}, {"tag": "Teller"}], "Guid": [{"id": "tvdb://2337"}, {"id": "tvdb://2337"}, {"id": "tvdb://2337"}], "Collection": [{"tag": "My Awesome Collection"}, {"tag": "My Awesome Collection"}, {"tag": "My Awesome Collection"}]}]}} "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": @@ -1724,7 +1723,7 @@ examples: force: 0 responses: "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}]} + application/json: {"errors": [{"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-search-library: @@ -1738,9 +1737,9 @@ examples: "200": application/json: {"MediaContainer": {"size": 2, "allowSync": false, "art": "/:/resources/show-fanart.jpg", "identifier": "com.plexapp.plugins.library", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1698860922, "nocache": true, "thumb": "/:/resources/show.png", "title1": "TV Shows", "title2": "Search for ''", "viewGroup": "season", "viewMode": 65593, "Metadata": [{"ratingKey": "2", "key": "/library/metadata/2/children", "parentRatingKey": "1", "guid": "plex://season/602e67e766dfdb002c0a1b5b", "parentGuid": "plex://show/5d9c086c7d06d9001ffd27aa", "parentStudio": "Mutant Enemy Productions", "type": "season", "title": "Season 1", "parentKey": "/library/metadata/1", "parentTitle": "Firefly", "summary": "Captain Malcolm 'Mal' Reynolds is a former galactic war veteran who is the captain of the transport ship \"Serenity\". Mal and his crew, ensign Zoe Alleyne Washburne; Zoe's husband, pilot Hoban 'Wash' Washburne; muscular mercenary Jayne Cobb; young mechanic Kaylee Frye; former Alliance medical officer Simon Tam; his disturbed teenage sister River (both on the run from the interplanetary government \"The Alliance\"); the beautiful courtesan Inara Serra; and preacher Shepherd Book do any jobs, legal or illegal, they can find as the Serenity crew travels across the outskirts of outer space.", "index": 1, "parentIndex": 1, "parentYear": 2002, "thumb": "/library/metadata/2/thumb/1705636920", "art": "/library/metadata/1/art/1705636920", "parentThumb": "/library/metadata/1/thumb/1705636920", "parentTheme": "/library/metadata/1/theme/1705636920", "addedAt": 1705636916, "updatedAt": 1705636920}]}} "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}]} + 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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-genres-library: speakeasy-default-get-genres-library: parameters: @@ -1750,7 +1749,7 @@ examples: type: 2 responses: "200": - application/json: {"MediaContainer": {"size": 50, "allowSync": false, "art": "/:/resources/show-fanart.jpg", "content": "secondary", "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", "Directory": [{"fastKey": "/library/sections/10/all?genre=89", "key": "89", "title": "Action", "type": "genre"}]}} + application/json: {"MediaContainer": {"size": 50, "allowSync": false, "art": "/:/resources/show-fanart.jpg", "content": "secondary", "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", "Directory": [{"fastKey": "/library/sections/10/all?genre=89", "key": "89", "title": "Action", "type": "genre"}, {"fastKey": "/library/sections/10/all?genre=89", "key": "89", "title": "Action", "type": "genre"}, {"fastKey": "/library/sections/10/all?genre=89", "key": "89", "title": "Action", "type": "genre"}]}} "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": @@ -1768,7 +1767,7 @@ examples: "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}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-actors-library: speakeasy-default-get-actors-library: parameters: @@ -1778,11 +1777,11 @@ examples: 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"}]}} + 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"}]}} "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}]} + 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}, {"code": 1001, "message": "User could not be authenticated", "status": 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-search-all-libraries: "": parameters: @@ -1795,11 +1794,11 @@ examples: X-Plex-Client-Identifier: "3381b62b-9ab7-4e37-827b-203e9809eb58" responses: "200": - application/json: {"MediaContainer": {"size": 9266.91, "SearchResult": [{"score": 2698.71, "Metadata": {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "studio": "20th Century Studios", "skipChildren": false, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "type": "movie", "title": "Avatar: The Way of Water", "slug": "4-for-texas", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "seasonCount": 2022, "tagline": "Return to Pandora.", "flattenSeasons": "1", "episodeSort": "0", "enableCreditsMarkerGeneration": "-1", "showOrdering": "absolute", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "banner": "/library/metadata/58683/banner/1703239236", "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "grandparentRatingKey": "66", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "parentSlug": "alice-in-borderland-2020", "grandparentSlug": "alice-in-borderland-2020", "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 0, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 0, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 0, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}], "Genre": [{"tag": "Adventure"}, {"tag": "Adventure"}, {"tag": "Adventure"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}, {"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}], "Role": [{"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}], "Location": [{"path": "/TV Shows/House"}, {"path": "/TV Shows/House"}, {"path": "/TV Shows/House"}], "Guid": [{"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "titleSort": "Whale", "viewCount": 1, "lastViewedAt": 1682752242, "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "viewOffset": 5222500, "skipCount": 1, "index": 1, "theme": "/library/metadata/1/theme/1705636920", "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "parentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentStudio": "UCP", "parentKey": "/library/metadata/66", "parentTitle": "Caprica", "parentIndex": 1, "parentYear": 2010, "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTheme": "/library/metadata/66/theme/1705716261"}}, {"score": 8744.37, "Metadata": {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "studio": "20th Century Studios", "skipChildren": false, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "type": "movie", "title": "Avatar: The Way of Water", "slug": "4-for-texas", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "seasonCount": 2022, "tagline": "Return to Pandora.", "flattenSeasons": "1", "episodeSort": "0", "enableCreditsMarkerGeneration": "-1", "showOrdering": "absolute", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "banner": "/library/metadata/58683/banner/1703239236", "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "grandparentRatingKey": "66", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "parentSlug": "alice-in-borderland-2020", "grandparentSlug": "alice-in-borderland-2020", "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 0, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 0, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 0, "has64bitOffsets": false, "Part": []}], "Genre": [{"tag": "Adventure"}, {"tag": "Adventure"}], "Country": [{"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}, {"tag": "James Cameron"}, {"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}, {"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}, {"tag": "Working NL Subs"}], "Role": [{"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}], "Location": [{"path": "/TV Shows/House"}], "Guid": [{"id": "imdb://tt13015952"}, {"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}, {"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "titleSort": "Whale", "viewCount": 1, "lastViewedAt": 1682752242, "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "viewOffset": 5222500, "skipCount": 1, "index": 1, "theme": "/library/metadata/1/theme/1705636920", "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "parentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentStudio": "UCP", "parentKey": "/library/metadata/66", "parentTitle": "Caprica", "parentIndex": 1, "parentYear": 2010, "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTheme": "/library/metadata/66/theme/1705716261"}}, {"score": 6729.16, "Metadata": {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "studio": "20th Century Studios", "skipChildren": false, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "type": "movie", "title": "Avatar: The Way of Water", "slug": "4-for-texas", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "seasonCount": 2022, "tagline": "Return to Pandora.", "flattenSeasons": "1", "episodeSort": "0", "enableCreditsMarkerGeneration": "-1", "showOrdering": "absolute", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "banner": "/library/metadata/58683/banner/1703239236", "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "grandparentRatingKey": "66", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "parentSlug": "alice-in-borderland-2020", "grandparentSlug": "alice-in-borderland-2020", "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 0, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 0, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}], "Genre": [{"tag": "Adventure"}, {"tag": "Adventure"}, {"tag": "Adventure"}], "Country": [{"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}, {"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}, {"tag": "James Cameron"}, {"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}, {"tag": "Working NL Subs"}, {"tag": "Working NL Subs"}], "Role": [{"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}], "Location": [{"path": "/TV Shows/House"}], "Guid": [{"id": "imdb://tt13015952"}, {"id": "imdb://tt13015952"}, {"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}, {"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "titleSort": "Whale", "viewCount": 1, "lastViewedAt": 1682752242, "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "viewOffset": 5222500, "skipCount": 1, "index": 1, "theme": "/library/metadata/1/theme/1705636920", "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "parentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentStudio": "UCP", "parentKey": "/library/metadata/66", "parentTitle": "Caprica", "parentIndex": 1, "parentYear": 2010, "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTheme": "/library/metadata/66/theme/1705716261"}}]}} + application/json: {"MediaContainer": {"size": 5709.89, "SearchResult": [{"score": 8967.43, "Metadata": {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "studio": "20th Century Studios", "skipChildren": false, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "type": "movie", "title": "Avatar: The Way of Water", "slug": "4-for-texas", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "seasonCount": 2022, "tagline": "Return to Pandora.", "flattenSeasons": "1", "episodeSort": "0", "enableCreditsMarkerGeneration": "-1", "showOrdering": "absolute", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "banner": "/library/metadata/58683/banner/1703239236", "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "grandparentRatingKey": "66", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "parentSlug": "alice-in-borderland-2020", "grandparentSlug": "alice-in-borderland-2020", "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}], "Genre": [{"tag": "Adventure"}, {"tag": "Adventure"}, {"tag": "Adventure"}], "Country": [{"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}, {"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}, {"tag": "James Cameron"}, {"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}, {"tag": "Working NL Subs"}], "Role": [{"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}], "Location": [{"path": "/TV Shows/House"}, {"path": "/TV Shows/House"}, {"path": "/TV Shows/House"}], "Guid": [{"id": "imdb://tt13015952"}, {"id": "imdb://tt13015952"}, {"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}, {"image": "themoviedb://image.rating", "value": 3, "type": "audience"}, {"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "titleSort": "Whale", "viewCount": 1, "lastViewedAt": 1682752242, "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "viewOffset": 5222500, "skipCount": 1, "index": 1, "theme": "/library/metadata/1/theme/1705636920", "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "parentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentStudio": "UCP", "parentKey": "/library/metadata/66", "parentTitle": "Caprica", "parentIndex": 1, "parentYear": 2010, "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTheme": "/library/metadata/66/theme/1705716261"}}]}} "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}]} + application/json: {"errors": [{"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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-media-meta-data: speakeasy-default-get-media-meta-data: parameters: @@ -1821,11 +1820,11 @@ examples: asyncRefreshLocalMediaAgent: true responses: "200": - application/json: {"MediaContainer": {"size": 50, "allowSync": false, "identifier": "com.plexapp.plugins.library", "librarySectionID": 2, "librarySectionTitle": "TV Series", "librarySectionUUID": "e69655a2-ef48-4aba-bb19-0cc34d1e7d36", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "Metadata": [{"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "slug": "4-for-texas", "studio": "20th Century Studios", "type": "movie", "title": "Avatar: The Way of Water", "titleSort": "Whale", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "tagline": "Return to Pandora.", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "theme": "/library/metadata/1/theme/1705636920", "index": 1, "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "seasonCount": 2022, "duration": 11558112, "originallyAvailableAt": "2022-12-14", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "parentRatingKey": "66", "grandparentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/66", "parentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentArt": "/library/metadata/66/art/1705716261", "parentTitle": "Caprica", "parentIndex": 1, "parentThumb": "/library/metadata/66/thumb/1705716261", "ratingImage": "rottentomatoes://image.rating.ripe", "viewCount": 1, "viewOffset": 5222500, "skipCount": 1, "subtype": "clip", "lastRatedAt": 1721813113, "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "lastViewedAt": 1682752242, "userRating": 10, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"id": 259, "tag": "Crime", "filter": "genre=19"}], "Country": [{"id": 259, "tag": "United States of America", "filter": "country=19"}, {"id": 259, "tag": "United States of America", "filter": "country=19"}], "Director": [{"id": 126522, "tag": "Danny Boyle", "filter": "director=235876", "tagKey": "5d776831151a60001f24d031", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}], "Writer": [{"id": 126522, "tag": "Jamie P. Hanson", "filter": "writer=126522", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg", "tagKey": "5d77683d85719b001f3a535e"}, {"id": 126522, "tag": "Jamie P. Hanson", "filter": "writer=126522", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg", "tagKey": "5d77683d85719b001f3a535e"}], "Producer": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Role": [{"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Guid": [{"id": "imdb://tt3032476"}, {"id": "imdb://tt3032476"}], "Rating": [{"image": "imdb://image.rating", "value": 9, "type": "audience"}], "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"}], "Chapter": [{"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}, {"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}, {"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}], "Marker": [{"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}, {"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}, {"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}], "Extras": {"size": 1}}, {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "slug": "4-for-texas", "studio": "20th Century Studios", "type": "movie", "title": "Avatar: The Way of Water", "titleSort": "Whale", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "tagline": "Return to Pandora.", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "theme": "/library/metadata/1/theme/1705636920", "index": 1, "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "seasonCount": 2022, "duration": 11558112, "originallyAvailableAt": "2022-12-14", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "parentRatingKey": "66", "grandparentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/66", "parentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentArt": "/library/metadata/66/art/1705716261", "parentTitle": "Caprica", "parentIndex": 1, "parentThumb": "/library/metadata/66/thumb/1705716261", "ratingImage": "rottentomatoes://image.rating.ripe", "viewCount": 1, "viewOffset": 5222500, "skipCount": 1, "subtype": "clip", "lastRatedAt": 1721813113, "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "lastViewedAt": 1682752242, "userRating": 10, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"id": 259, "tag": "Crime", "filter": "genre=19"}, {"id": 259, "tag": "Crime", "filter": "genre=19"}, {"id": 259, "tag": "Crime", "filter": "genre=19"}], "Country": [{"id": 259, "tag": "United States of America", "filter": "country=19"}], "Director": [{"id": 126522, "tag": "Danny Boyle", "filter": "director=235876", "tagKey": "5d776831151a60001f24d031", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}, {"id": 126522, "tag": "Danny Boyle", "filter": "director=235876", "tagKey": "5d776831151a60001f24d031", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}], "Writer": [{"id": 126522, "tag": "Jamie P. Hanson", "filter": "writer=126522", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg", "tagKey": "5d77683d85719b001f3a535e"}, {"id": 126522, "tag": "Jamie P. Hanson", "filter": "writer=126522", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg", "tagKey": "5d77683d85719b001f3a535e"}], "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"}], "Role": [{"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Guid": [{"id": "imdb://tt3032476"}], "Rating": [{"image": "imdb://image.rating", "value": 9, "type": "audience"}], "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"}, {"path": "/TV Shows/Better Call Saul"}], "Chapter": [{"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}, {"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}], "Marker": [{"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}, {"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}, {"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}], "Extras": {"size": 1}}, {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "slug": "4-for-texas", "studio": "20th Century Studios", "type": "movie", "title": "Avatar: The Way of Water", "titleSort": "Whale", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "tagline": "Return to Pandora.", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "theme": "/library/metadata/1/theme/1705636920", "index": 1, "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "seasonCount": 2022, "duration": 11558112, "originallyAvailableAt": "2022-12-14", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "parentRatingKey": "66", "grandparentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/66", "parentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentArt": "/library/metadata/66/art/1705716261", "parentTitle": "Caprica", "parentIndex": 1, "parentThumb": "/library/metadata/66/thumb/1705716261", "ratingImage": "rottentomatoes://image.rating.ripe", "viewCount": 1, "viewOffset": 5222500, "skipCount": 1, "subtype": "clip", "lastRatedAt": 1721813113, "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "lastViewedAt": 1682752242, "userRating": 10, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"id": 259, "tag": "Crime", "filter": "genre=19"}], "Country": [{"id": 259, "tag": "United States of America", "filter": "country=19"}], "Director": [{"id": 126522, "tag": "Danny Boyle", "filter": "director=235876", "tagKey": "5d776831151a60001f24d031", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}, {"id": 126522, "tag": "Danny Boyle", "filter": "director=235876", "tagKey": "5d776831151a60001f24d031", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}, {"id": 126522, "tag": "Danny Boyle", "filter": "director=235876", "tagKey": "5d776831151a60001f24d031", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}], "Writer": [{"id": 126522, "tag": "Jamie P. Hanson", "filter": "writer=126522", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg", "tagKey": "5d77683d85719b001f3a535e"}, {"id": 126522, "tag": "Jamie P. Hanson", "filter": "writer=126522", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg", "tagKey": "5d77683d85719b001f3a535e"}, {"id": 126522, "tag": "Jamie P. Hanson", "filter": "writer=126522", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg", "tagKey": "5d77683d85719b001f3a535e"}], "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"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Role": [{"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Guid": [{"id": "imdb://tt3032476"}, {"id": "imdb://tt3032476"}], "Rating": [{"image": "imdb://image.rating", "value": 9, "type": "audience"}], "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"}], "Chapter": [{"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}, {"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}, {"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}], "Marker": [{"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}], "Extras": {"size": 1}}]}} + 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": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "slug": "4-for-texas", "studio": "20th Century Studios", "type": "movie", "title": "Avatar: The Way of Water", "titleSort": "Whale", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "tagline": "Return to Pandora.", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "theme": "/library/metadata/1/theme/1705636920", "index": 1, "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "seasonCount": 2022, "duration": 11558112, "originallyAvailableAt": "2022-12-14", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "parentRatingKey": "66", "grandparentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/66", "parentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentArt": "/library/metadata/66/art/1705716261", "parentTitle": "Caprica", "parentIndex": 1, "parentThumb": "/library/metadata/66/thumb/1705716261", "ratingImage": "rottentomatoes://image.rating.ripe", "viewCount": 1, "viewOffset": 5222500, "skipCount": 1, "subtype": "clip", "lastRatedAt": 1721813113, "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "lastViewedAt": 1682752242, "userRating": 10, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"id": 259, "tag": "Crime", "filter": "genre=19"}], "Country": [{"id": 259, "tag": "United States of America", "filter": "country=19"}, {"id": 259, "tag": "United States of America", "filter": "country=19"}], "Director": [{"id": 126522, "tag": "Danny Boyle", "filter": "director=235876", "tagKey": "5d776831151a60001f24d031", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}, {"id": 126522, "tag": "Danny Boyle", "filter": "director=235876", "tagKey": "5d776831151a60001f24d031", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}], "Writer": [{"id": 126522, "tag": "Jamie P. Hanson", "filter": "writer=126522", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg", "tagKey": "5d77683d85719b001f3a535e"}], "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"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Role": [{"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Guid": [{"id": "imdb://tt3032476"}], "Rating": [{"image": "imdb://image.rating", "value": 9, "type": "audience"}, {"image": "imdb://image.rating", "value": 9, "type": "audience"}, {"image": "imdb://image.rating", "value": 9, "type": "audience"}], "Similar": [{"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}], "Location": [{"path": "/TV Shows/Better Call Saul"}, {"path": "/TV Shows/Better Call Saul"}, {"path": "/TV Shows/Better Call Saul"}], "Chapter": [{"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}, {"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}, {"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}], "Marker": [{"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}, {"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}, {"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}], "Extras": {"size": 1}}, {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "slug": "4-for-texas", "studio": "20th Century Studios", "type": "movie", "title": "Avatar: The Way of Water", "titleSort": "Whale", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "tagline": "Return to Pandora.", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "theme": "/library/metadata/1/theme/1705636920", "index": 1, "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "seasonCount": 2022, "duration": 11558112, "originallyAvailableAt": "2022-12-14", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "parentRatingKey": "66", "grandparentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/66", "parentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentArt": "/library/metadata/66/art/1705716261", "parentTitle": "Caprica", "parentIndex": 1, "parentThumb": "/library/metadata/66/thumb/1705716261", "ratingImage": "rottentomatoes://image.rating.ripe", "viewCount": 1, "viewOffset": 5222500, "skipCount": 1, "subtype": "clip", "lastRatedAt": 1721813113, "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "lastViewedAt": 1682752242, "userRating": 10, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"id": 259, "tag": "Crime", "filter": "genre=19"}], "Country": [{"id": 259, "tag": "United States of America", "filter": "country=19"}, {"id": 259, "tag": "United States of America", "filter": "country=19"}], "Director": [{"id": 126522, "tag": "Danny Boyle", "filter": "director=235876", "tagKey": "5d776831151a60001f24d031", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}, {"id": 126522, "tag": "Danny Boyle", "filter": "director=235876", "tagKey": "5d776831151a60001f24d031", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}], "Writer": [{"id": 126522, "tag": "Jamie P. Hanson", "filter": "writer=126522", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg", "tagKey": "5d77683d85719b001f3a535e"}], "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"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Role": [{"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Guid": [{"id": "imdb://tt3032476"}], "Rating": [{"image": "imdb://image.rating", "value": 9, "type": "audience"}, {"image": "imdb://image.rating", "value": 9, "type": "audience"}, {"image": "imdb://image.rating", "value": 9, "type": "audience"}], "Similar": [{"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}], "Location": [{"path": "/TV Shows/Better Call Saul"}, {"path": "/TV Shows/Better Call Saul"}, {"path": "/TV Shows/Better Call Saul"}], "Chapter": [{"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}, {"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}, {"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}], "Marker": [{"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}, {"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}, {"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}], "Extras": {"size": 1}}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-media-arts: speakeasy-default-get-media-arts: parameters: @@ -1833,7 +1832,7 @@ examples: ratingKey: 16099 responses: "200": - application/json: {"MediaContainer": {"size": 50, "mediaTagVersion": 1734362201, "mediaTagPrefix": "/system/bundle/media/flags/", "identifier": "com.plexapp.plugins.library", "Metadata": [{"key": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg"}, {"key": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg"}, {"key": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg"}]}} + application/json: {"MediaContainer": {"size": 50, "mediaTagVersion": 1734362201, "mediaTagPrefix": "/system/bundle/media/flags/", "identifier": "com.plexapp.plugins.library", "Metadata": [{"key": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg"}, {"key": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg"}]}} post-media-arts: speakeasy-default-post-media-arts: parameters: @@ -1848,7 +1847,7 @@ examples: ratingKey: 16099 responses: "200": - application/json: {"MediaContainer": {"size": 50, "mediaTagVersion": 1734362201, "mediaTagPrefix": "/system/bundle/media/flags/", "identifier": "com.plexapp.plugins.library", "Metadata": [{"key": "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=336&width=225&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FhntBJjqbv4m0Iyniqaztv9xaudI%2Ejpg"}, {"key": "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=336&width=225&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FhntBJjqbv4m0Iyniqaztv9xaudI%2Ejpg"}]}} + application/json: {"MediaContainer": {"size": 50, "mediaTagVersion": 1734362201, "mediaTagPrefix": "/system/bundle/media/flags/", "identifier": "com.plexapp.plugins.library", "Metadata": [{"key": "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=336&width=225&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FhntBJjqbv4m0Iyniqaztv9xaudI%2Ejpg"}]}} post-media-poster: speakeasy-default-post-media-poster: parameters: @@ -1860,7 +1859,7 @@ examples: include-stream: parameters: path: - ratingKey: 1539.14 + ratingKey: 2403.67 query: includeElements: "Stream" responses: @@ -1873,20 +1872,20 @@ examples: include-stream-otheritem: parameters: path: - ratingKey: 2900.64 + ratingKey: 93.73 query: includeElements: "Stream,OtherItem" responses: "200": - application/json: {"MediaContainer": {"size": 3, "allowSync": true, "art": "/library/metadata/30072/art/1705739923", "identifier": "com.plexapp.plugins.library", "key": "30072", "librarySectionID": 2, "librarySectionTitle": "TV Shows", "librarySectionUUID": "4bb2521c-8ba9-459b-aaee-8ab8bc35eabd", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1701731894, "nocache": true, "parentIndex": 1, "parentTitle": "Reacher", "parentYear": 2022, "summary": "When retired Military Police Officer Jack Reacher is arrested for a murder he did not commit, he finds himself in the middle of a deadly conspiracy full of dirty cops, shady businessmen, and scheming politicians. With nothing but his wits, he must figure out what is happening in Margrave, Georgia.", "theme": "/library/metadata/30072/theme/1705739923", "thumb": "/library/metadata/30072/thumb/1705739923", "title1": "TV Shows", "title2": "Reacher", "viewGroup": "season", "viewMode": 65593, "Directory": [{"leafCount": 16, "thumb": "/library/metadata/30072/thumb/1705739923", "viewedLeafCount": 16, "key": "/library/metadata/30072/allLeaves", "title": "All episodes"}], "Metadata": [{"ratingKey": "66488", "key": "/library/metadata/66488/children", "parentRatingKey": "30072", "guid": "plex://season/652aea6549508477c34c6000", "parentGuid": "plex://show/5d9c09190aaccd001f8f42f0", "parentStudio": "Amazon Studios", "type": "season", "title": "Season 2", "parentKey": "/library/metadata/30072", "parentTitle": "Reacher", "summary": "Based on\"Bad Luck and Trouble,\" when members of Reacher's old military unit start turning up dead, Reacher has just one thing on his mind-revenge.", "index": 2, "parentIndex": 1, "viewCount": 11, "lastViewedAt": 1705646565, "parentYear": 2022, "thumb": "/library/metadata/66488/thumb/1703065033", "art": "/library/metadata/30072/art/1705739923", "parentThumb": "/library/metadata/30072/thumb/1705739923", "parentTheme": "/library/metadata/30072/theme/1705739923", "leafCount": 8, "viewedLeafCount": 8, "addedAt": 1702602021, "updatedAt": 1703065033, "userRating": 9, "skipCount": 1, "lastRatedAt": 1703881224}]}} + application/json: {"MediaContainer": {"size": 3, "allowSync": true, "art": "/library/metadata/30072/art/1705739923", "identifier": "com.plexapp.plugins.library", "key": "30072", "librarySectionID": 2, "librarySectionTitle": "TV Shows", "librarySectionUUID": "4bb2521c-8ba9-459b-aaee-8ab8bc35eabd", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1701731894, "nocache": true, "parentIndex": 1, "parentTitle": "Reacher", "parentYear": 2022, "summary": "When retired Military Police Officer Jack Reacher is arrested for a murder he did not commit, he finds himself in the middle of a deadly conspiracy full of dirty cops, shady businessmen, and scheming politicians. With nothing but his wits, he must figure out what is happening in Margrave, Georgia.", "theme": "/library/metadata/30072/theme/1705739923", "thumb": "/library/metadata/30072/thumb/1705739923", "title1": "TV Shows", "title2": "Reacher", "viewGroup": "season", "viewMode": 65593, "Directory": [{"leafCount": 16, "thumb": "/library/metadata/30072/thumb/1705739923", "viewedLeafCount": 16, "key": "/library/metadata/30072/allLeaves", "title": "All episodes"}], "Metadata": [{"ratingKey": "66488", "key": "/library/metadata/66488/children", "parentRatingKey": "30072", "guid": "plex://season/652aea6549508477c34c6000", "parentGuid": "plex://show/5d9c09190aaccd001f8f42f0", "parentStudio": "Amazon Studios", "type": "season", "title": "Season 2", "parentKey": "/library/metadata/30072", "parentTitle": "Reacher", "summary": "Based on\"Bad Luck and Trouble,\" when members of Reacher's old military unit start turning up dead, Reacher has just one thing on his mind-revenge.", "index": 2, "parentIndex": 1, "viewCount": 11, "lastViewedAt": 1705646565, "parentYear": 2022, "thumb": "/library/metadata/66488/thumb/1703065033", "art": "/library/metadata/30072/art/1705739923", "parentThumb": "/library/metadata/30072/thumb/1705739923", "parentTheme": "/library/metadata/30072/theme/1705739923", "leafCount": 8, "viewedLeafCount": 8, "addedAt": 1702602021, "updatedAt": 1703065033, "userRating": 9, "skipCount": 1, "lastRatedAt": 1703881224}, {"ratingKey": "66488", "key": "/library/metadata/66488/children", "parentRatingKey": "30072", "guid": "plex://season/652aea6549508477c34c6000", "parentGuid": "plex://show/5d9c09190aaccd001f8f42f0", "parentStudio": "Amazon Studios", "type": "season", "title": "Season 2", "parentKey": "/library/metadata/30072", "parentTitle": "Reacher", "summary": "Based on\"Bad Luck and Trouble,\" when members of Reacher's old military unit start turning up dead, Reacher has just one thing on his mind-revenge.", "index": 2, "parentIndex": 1, "viewCount": 11, "lastViewedAt": 1705646565, "parentYear": 2022, "thumb": "/library/metadata/66488/thumb/1703065033", "art": "/library/metadata/30072/art/1705739923", "parentThumb": "/library/metadata/30072/thumb/1705739923", "parentTheme": "/library/metadata/30072/theme/1705739923", "leafCount": 8, "viewedLeafCount": 8, "addedAt": 1702602021, "updatedAt": 1703065033, "userRating": 9, "skipCount": 1, "lastRatedAt": 1703881224}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} include-stream-otheritem-anotheritem: parameters: path: - ratingKey: 8466.85 + ratingKey: 8477.42 query: includeElements: "Stream,OtherItem,AnotherItem" responses: @@ -1895,7 +1894,7 @@ examples: "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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} getTopWatchedContent: "": parameters: @@ -1904,16 +1903,16 @@ examples: type: 2 responses: "200": - application/json: {"MediaContainer": {"size": 1, "allowSync": true, "identifier": "com.plexapp.plugins.library", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1698860922, "Metadata": [{"ratingKey": "17", "key": "/library/metadata/17", "guid": "plex://movie/5d77683f6f4521001ea9dc53", "slug": "waterloo-road", "studio": "Universal Pictures", "type": "movie", "title": "Serenity", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG-13", "summary": "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.", "index": 1, "audienceRating": 9.1, "year": 2005, "tagline": "They aim to misbehave.", "thumb": "/library/metadata/17/thumb/1705637165", "art": "/library/metadata/17/art/1705637165", "duration": 141417, "originallyAvailableAt": "2005-09-29T00:00:00Z", "leafCount": 222, "viewedLeafCount": 100, "childCount": 13, "addedAt": 1705637164, "updatedAt": 1705637165, "globalViewCount": 80, "audienceRatingImage": "rottentomatoes://image.rating.upright", "Genre": [{"id": 184, "filter": "genre=184", "tag": "Thriller"}], "Country": [{"id": 116, "filter": "country=116", "tag": "United States of America"}, {"id": 116, "filter": "country=116", "tag": "United States of America"}], "Guid": [{"id": "tvdb://2337"}], "Role": [{"id": 220, "filter": "actor=220", "tag": "Dennis Keiffer", "tagKey": "5d77683554f42c001f8c4708", "role": "Bar Guy (uncredited)", "thumb": "https://metadata-static.plex.tv/6/people/648e9a7ea1d537bccfcd7615134b78ce.jpg"}, {"id": 220, "filter": "actor=220", "tag": "Dennis Keiffer", "tagKey": "5d77683554f42c001f8c4708", "role": "Bar Guy (uncredited)", "thumb": "https://metadata-static.plex.tv/6/people/648e9a7ea1d537bccfcd7615134b78ce.jpg"}], "User": [{"id": 220}, {"id": 220}, {"id": 220}]}, {"ratingKey": "17", "key": "/library/metadata/17", "guid": "plex://movie/5d77683f6f4521001ea9dc53", "slug": "waterloo-road", "studio": "Universal Pictures", "type": "movie", "title": "Serenity", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG-13", "summary": "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.", "index": 1, "audienceRating": 9.1, "year": 2005, "tagline": "They aim to misbehave.", "thumb": "/library/metadata/17/thumb/1705637165", "art": "/library/metadata/17/art/1705637165", "duration": 141417, "originallyAvailableAt": "2005-09-29T00:00:00Z", "leafCount": 222, "viewedLeafCount": 100, "childCount": 13, "addedAt": 1705637164, "updatedAt": 1705637165, "globalViewCount": 80, "audienceRatingImage": "rottentomatoes://image.rating.upright", "Genre": [{"id": 184, "filter": "genre=184", "tag": "Thriller"}], "Country": [{"id": 116, "filter": "country=116", "tag": "United States of America"}, {"id": 116, "filter": "country=116", "tag": "United States of America"}], "Guid": [{"id": "tvdb://2337"}, {"id": "tvdb://2337"}], "Role": [{"id": 220, "filter": "actor=220", "tag": "Dennis Keiffer", "tagKey": "5d77683554f42c001f8c4708", "role": "Bar Guy (uncredited)", "thumb": "https://metadata-static.plex.tv/6/people/648e9a7ea1d537bccfcd7615134b78ce.jpg"}], "User": [{"id": 220}, {"id": 220}]}]}} + application/json: {"MediaContainer": {"size": 1, "allowSync": true, "identifier": "com.plexapp.plugins.library", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1698860922, "Metadata": [{"ratingKey": "17", "key": "/library/metadata/17", "guid": "plex://movie/5d77683f6f4521001ea9dc53", "slug": "waterloo-road", "studio": "Universal Pictures", "type": "movie", "title": "Serenity", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG-13", "summary": "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.", "index": 1, "audienceRating": 9.1, "year": 2005, "tagline": "They aim to misbehave.", "thumb": "/library/metadata/17/thumb/1705637165", "art": "/library/metadata/17/art/1705637165", "duration": 141417, "originallyAvailableAt": "2005-09-29T00:00:00Z", "leafCount": 222, "viewedLeafCount": 100, "childCount": 13, "addedAt": 1705637164, "updatedAt": 1705637165, "globalViewCount": 80, "audienceRatingImage": "rottentomatoes://image.rating.upright", "Genre": [{"id": 184, "filter": "genre=184", "tag": "Thriller"}, {"id": 184, "filter": "genre=184", "tag": "Thriller"}, {"id": 184, "filter": "genre=184", "tag": "Thriller"}], "Country": [{"id": 116, "filter": "country=116", "tag": "United States of America"}, {"id": 116, "filter": "country=116", "tag": "United States of America"}], "Guid": [{"id": "tvdb://2337"}, {"id": "tvdb://2337"}, {"id": "tvdb://2337"}], "Role": [{"id": 220, "filter": "actor=220", "tag": "Dennis Keiffer", "tagKey": "5d77683554f42c001f8c4708", "role": "Bar Guy (uncredited)", "thumb": "https://metadata-static.plex.tv/6/people/648e9a7ea1d537bccfcd7615134b78ce.jpg"}, {"id": 220, "filter": "actor=220", "tag": "Dennis Keiffer", "tagKey": "5d77683554f42c001f8c4708", "role": "Bar Guy (uncredited)", "thumb": "https://metadata-static.plex.tv/6/people/648e9a7ea1d537bccfcd7615134b78ce.jpg"}, {"id": 220, "filter": "actor=220", "tag": "Dennis Keiffer", "tagKey": "5d77683554f42c001f8c4708", "role": "Bar Guy (uncredited)", "thumb": "https://metadata-static.plex.tv/6/people/648e9a7ea1d537bccfcd7615134b78ce.jpg"}], "User": [{"id": 220}, {"id": 220}, {"id": 220}]}]}} "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}]} + 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}]} + 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-watch-list: speakeasy-default-get-watch-list: parameters: path: - filter: "available" + filter: "released" query: X-Plex-Container-Start: 0 X-Plex-Container-Size: 50 @@ -1925,7 +1924,7 @@ examples: "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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} logLine: speakeasy-default-log-line: parameters: @@ -1935,16 +1934,16 @@ examples: source: "Postman" responses: "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}]} + 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}]} + 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}]} logMultiLine: speakeasy-default-log-multi-line: requestBody: text/plain: "level=4&message=Test%20message%201&source=postman\nlevel=3&message=Test%20message%202&source=postman\nlevel=1&message=Test%20message%203&source=postman" responses: "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}]} + 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}]} enablePaperTrail: @@ -1953,18 +1952,18 @@ examples: "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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} createPlaylist: speakeasy-default-create-playlist: parameters: query: title: "" - type: "photo" + type: "audio" smart: 1 - uri: "https://hoarse-testing.info/" + uri: "https://short-term-disconnection.name/" responses: "200": - application/json: {"MediaContainer": {"size": 7, "Metadata": [{"ratingKey": "96", "key": "/playlists/96/items", "guid": "com.plexapp.agents.none://a2f92937-1408-40e2-b022-63a8a9377e55", "type": "playlist", "title": "A Great Playlist", "summary": "What a great playlist", "smart": false, "playlistType": "video", "icon": "playlist://image.smart", "viewCount": 1, "lastViewedAt": 1705719589, "leafCount": 1, "addedAt": 1705719589, "updatedAt": 1705724593, "composite": "/playlists/96/composite/1705724593", "duration": 141000}, {"ratingKey": "96", "key": "/playlists/96/items", "guid": "com.plexapp.agents.none://a2f92937-1408-40e2-b022-63a8a9377e55", "type": "playlist", "title": "A Great Playlist", "summary": "What a great playlist", "smart": false, "playlistType": "video", "icon": "playlist://image.smart", "viewCount": 1, "lastViewedAt": 1705719589, "leafCount": 1, "addedAt": 1705719589, "updatedAt": 1705724593, "composite": "/playlists/96/composite/1705724593", "duration": 141000}]}} + application/json: {"MediaContainer": {"size": 7, "Metadata": [{"ratingKey": "96", "key": "/playlists/96/items", "guid": "com.plexapp.agents.none://a2f92937-1408-40e2-b022-63a8a9377e55", "type": "playlist", "title": "A Great Playlist", "summary": "What a great playlist", "smart": false, "playlistType": "video", "icon": "playlist://image.smart", "viewCount": 1, "lastViewedAt": 1705719589, "leafCount": 1, "addedAt": 1705719589, "updatedAt": 1705724593, "composite": "/playlists/96/composite/1705724593", "duration": 141000}]}} "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": @@ -1973,95 +1972,94 @@ examples: speakeasy-default-get-playlists: responses: "200": - application/json: {"MediaContainer": {"size": 4, "Metadata": [{"ratingKey": "92", "key": "/playlists/92/items", "guid": "com.plexapp.agents.none://7ca5aaef-58e8-4828-9e21-c009c97f2903", "type": "playlist", "title": "Static Playlist", "summary": "A Great Playlist", "smart": false, "playlistType": "video", "composite": "/playlists/92/composite/1705716440", "icon": "playlist://image.smart", "viewCount": 1, "lastViewedAt": 1705716298, "duration": 7328000, "leafCount": 32, "addedAt": 1705716298, "updatedAt": 1705716440}]}} + application/json: {"MediaContainer": {"size": 4, "Metadata": [{"ratingKey": "92", "key": "/playlists/92/items", "guid": "com.plexapp.agents.none://7ca5aaef-58e8-4828-9e21-c009c97f2903", "type": "playlist", "title": "Static Playlist", "summary": "A Great Playlist", "smart": false, "playlistType": "video", "composite": "/playlists/92/composite/1705716440", "icon": "playlist://image.smart", "viewCount": 1, "lastViewedAt": 1705716298, "duration": 7328000, "leafCount": 32, "addedAt": 1705716298, "updatedAt": 1705716440}, {"ratingKey": "92", "key": "/playlists/92/items", "guid": "com.plexapp.agents.none://7ca5aaef-58e8-4828-9e21-c009c97f2903", "type": "playlist", "title": "Static Playlist", "summary": "A Great Playlist", "smart": false, "playlistType": "video", "composite": "/playlists/92/composite/1705716440", "icon": "playlist://image.smart", "viewCount": 1, "lastViewedAt": 1705716298, "duration": 7328000, "leafCount": 32, "addedAt": 1705716298, "updatedAt": 1705716440}]}} "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}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getPlaylist: speakeasy-default-get-playlist: parameters: path: - playlistID: 4109.48 + playlistID: 8419.53 responses: "200": - application/json: {"MediaContainer": {"size": 1, "Metadata": [{"content": "library://x/directory/%2Flibrary%2Fsections%2F1%2Fall%3Ftype%3D1%26push%3D1%26title%3D2%26or%3D1%26title%3DSerenity%26pop%3D1", "ratingKey": "95", "key": "/playlists/95/items", "guid": "com.plexapp.agents.none://87425529-380f-44b8-a689-9a0537e7ec91", "type": "playlist", "title": "Smart Movie Playlist", "summary": "", "smart": true, "playlistType": "video", "composite": "/playlists/95/composite/1705717387", "icon": "playlist://image.smart", "duration": 282000, "leafCount": 2, "addedAt": 1705716493, "updatedAt": 1705717387}, {"content": "library://x/directory/%2Flibrary%2Fsections%2F1%2Fall%3Ftype%3D1%26push%3D1%26title%3D2%26or%3D1%26title%3DSerenity%26pop%3D1", "ratingKey": "95", "key": "/playlists/95/items", "guid": "com.plexapp.agents.none://87425529-380f-44b8-a689-9a0537e7ec91", "type": "playlist", "title": "Smart Movie Playlist", "summary": "", "smart": true, "playlistType": "video", "composite": "/playlists/95/composite/1705717387", "icon": "playlist://image.smart", "duration": 282000, "leafCount": 2, "addedAt": 1705716493, "updatedAt": 1705717387}, {"content": "library://x/directory/%2Flibrary%2Fsections%2F1%2Fall%3Ftype%3D1%26push%3D1%26title%3D2%26or%3D1%26title%3DSerenity%26pop%3D1", "ratingKey": "95", "key": "/playlists/95/items", "guid": "com.plexapp.agents.none://87425529-380f-44b8-a689-9a0537e7ec91", "type": "playlist", "title": "Smart Movie Playlist", "summary": "", "smart": true, "playlistType": "video", "composite": "/playlists/95/composite/1705717387", "icon": "playlist://image.smart", "duration": 282000, "leafCount": 2, "addedAt": 1705716493, "updatedAt": 1705717387}]}} + application/json: {"MediaContainer": {"size": 1, "Metadata": [{"content": "library://x/directory/%2Flibrary%2Fsections%2F1%2Fall%3Ftype%3D1%26push%3D1%26title%3D2%26or%3D1%26title%3DSerenity%26pop%3D1", "ratingKey": "95", "key": "/playlists/95/items", "guid": "com.plexapp.agents.none://87425529-380f-44b8-a689-9a0537e7ec91", "type": "playlist", "title": "Smart Movie Playlist", "summary": "", "smart": true, "playlistType": "video", "composite": "/playlists/95/composite/1705717387", "icon": "playlist://image.smart", "duration": 282000, "leafCount": 2, "addedAt": 1705716493, "updatedAt": 1705717387}]}} "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}]} + 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}]} deletePlaylist: speakeasy-default-delete-playlist: parameters: path: - playlistID: 216.22 + playlistID: 3432.93 responses: "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}]} + application/json: {"errors": [{"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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} updatePlaylist: speakeasy-default-update-playlist: parameters: path: - playlistID: 3915 - query: {} + playlistID: 1579.66 responses: "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}]} + application/json: {"errors": [{"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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getPlaylistContents: speakeasy-default-get-playlist-contents: parameters: path: - playlistID: 5004.46 + playlistID: 5535.42 query: type: 2 responses: "200": - application/json: {"MediaContainer": {"size": 2, "composite": "/playlists/95/composite/1705717521", "duration": 282, "leafCount": 2, "playlistType": "video", "ratingKey": "95", "smart": true, "title": "Smart Movie Playlist", "Metadata": [{"ratingKey": "17", "key": "/library/metadata/17", "guid": "plex://movie/5d77683f6f4521001ea9dc53", "studio": "Universal Pictures", "type": "movie", "title": "Serenity", "titleSort": "Amazing Spider-Man 2", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG-13", "summary": "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": 8.2, "audienceRating": 9.1, "year": 2005, "tagline": "They aim to misbehave.", "thumb": "/library/metadata/17/thumb/1705637165", "art": "/library/metadata/17/art/1705637165", "duration": 141416, "originallyAvailableAt": "2005-09-29T00:00:00Z", "addedAt": 1705637164, "updatedAt": 1705637165, "audienceRatingImage": "rottentomatoes://image.rating.upright", "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 15, "duration": 141416, "bitrate": 2273, "width": 1920, "height": 814, "aspectRatio": 2.35, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 0, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}, {"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}]}, {"id": 15, "duration": 141416, "bitrate": 2273, "width": 1920, "height": 814, "aspectRatio": 2.35, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 0, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}]}], "Genre": [{"tag": "Action"}, {"tag": "Action"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "Joss Whedon"}], "Writer": [{"tag": "Joss Whedon"}, {"tag": "Joss Whedon"}, {"tag": "Joss Whedon"}], "Role": [{"tag": "Gina Torres"}, {"tag": "Gina Torres"}]}]}} + application/json: {"MediaContainer": {"size": 2, "composite": "/playlists/95/composite/1705717521", "duration": 282, "leafCount": 2, "playlistType": "video", "ratingKey": "95", "smart": true, "title": "Smart Movie Playlist", "Metadata": [{"ratingKey": "17", "key": "/library/metadata/17", "guid": "plex://movie/5d77683f6f4521001ea9dc53", "studio": "Universal Pictures", "type": "movie", "title": "Serenity", "titleSort": "Amazing Spider-Man 2", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG-13", "summary": "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": 8.2, "audienceRating": 9.1, "year": 2005, "tagline": "They aim to misbehave.", "thumb": "/library/metadata/17/thumb/1705637165", "art": "/library/metadata/17/art/1705637165", "duration": 141416, "originallyAvailableAt": "2005-09-29T00:00:00Z", "addedAt": 1705637164, "updatedAt": 1705637165, "audienceRatingImage": "rottentomatoes://image.rating.upright", "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 15, "duration": 141416, "bitrate": 2273, "width": 1920, "height": 814, "aspectRatio": 2.35, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 0, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}, {"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}, {"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}]}, {"id": 15, "duration": 141416, "bitrate": 2273, "width": 1920, "height": 814, "aspectRatio": 2.35, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 0, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}, {"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}, {"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}]}], "Genre": [{"tag": "Action"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "Joss Whedon"}, {"tag": "Joss Whedon"}], "Writer": [{"tag": "Joss Whedon"}], "Role": [{"tag": "Gina Torres"}, {"tag": "Gina Torres"}]}, {"ratingKey": "17", "key": "/library/metadata/17", "guid": "plex://movie/5d77683f6f4521001ea9dc53", "studio": "Universal Pictures", "type": "movie", "title": "Serenity", "titleSort": "Amazing Spider-Man 2", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG-13", "summary": "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": 8.2, "audienceRating": 9.1, "year": 2005, "tagline": "They aim to misbehave.", "thumb": "/library/metadata/17/thumb/1705637165", "art": "/library/metadata/17/art/1705637165", "duration": 141416, "originallyAvailableAt": "2005-09-29T00:00:00Z", "addedAt": 1705637164, "updatedAt": 1705637165, "audienceRatingImage": "rottentomatoes://image.rating.upright", "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 15, "duration": 141416, "bitrate": 2273, "width": 1920, "height": 814, "aspectRatio": 2.35, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 0, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}, {"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}, {"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}]}, {"id": 15, "duration": 141416, "bitrate": 2273, "width": 1920, "height": 814, "aspectRatio": 2.35, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 0, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}, {"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}, {"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}]}], "Genre": [{"tag": "Action"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "Joss Whedon"}, {"tag": "Joss Whedon"}], "Writer": [{"tag": "Joss Whedon"}], "Role": [{"tag": "Gina Torres"}, {"tag": "Gina Torres"}]}, {"ratingKey": "17", "key": "/library/metadata/17", "guid": "plex://movie/5d77683f6f4521001ea9dc53", "studio": "Universal Pictures", "type": "movie", "title": "Serenity", "titleSort": "Amazing Spider-Man 2", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG-13", "summary": "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": 8.2, "audienceRating": 9.1, "year": 2005, "tagline": "They aim to misbehave.", "thumb": "/library/metadata/17/thumb/1705637165", "art": "/library/metadata/17/art/1705637165", "duration": 141416, "originallyAvailableAt": "2005-09-29T00:00:00Z", "addedAt": 1705637164, "updatedAt": 1705637165, "audienceRatingImage": "rottentomatoes://image.rating.upright", "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 15, "duration": 141416, "bitrate": 2273, "width": 1920, "height": 814, "aspectRatio": 2.35, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 0, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}, {"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}, {"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}]}, {"id": 15, "duration": 141416, "bitrate": 2273, "width": 1920, "height": 814, "aspectRatio": 2.35, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 0, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}, {"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}, {"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}]}], "Genre": [{"tag": "Action"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "Joss Whedon"}, {"tag": "Joss Whedon"}], "Writer": [{"tag": "Joss Whedon"}], "Role": [{"tag": "Gina Torres"}, {"tag": "Gina Torres"}]}]}} "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}]} + 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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} clearPlaylistContents: speakeasy-default-clear-playlist-contents: parameters: path: - playlistID: 1893.18 + playlistID: 4137.37 responses: "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}]} + 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}]} addPlaylistContents: speakeasy-default-add-playlist-contents: parameters: path: - playlistID: 8502.01 + playlistID: 7013.44 query: uri: "server://12345/com.plexapp.plugins.library/library/metadata/1" playQueueID: 123 responses: "200": - application/json: {"MediaContainer": {"size": 1, "leafCountAdded": 1, "leafCountRequested": 1, "Metadata": [{"ratingKey": "94", "key": "/playlists/94/items", "guid": "com.plexapp.agents.none://972e3047-83d6-4848-a000-261f0af26ba2", "type": "playlist", "title": "A great playlist", "summary": "One of my great playlists", "smart": false, "playlistType": "video", "composite": "/playlists/94/composite/1705800070", "duration": 423000, "leafCount": 3, "addedAt": 1705716458, "updatedAt": 1705800070}, {"ratingKey": "94", "key": "/playlists/94/items", "guid": "com.plexapp.agents.none://972e3047-83d6-4848-a000-261f0af26ba2", "type": "playlist", "title": "A great playlist", "summary": "One of my great playlists", "smart": false, "playlistType": "video", "composite": "/playlists/94/composite/1705800070", "duration": 423000, "leafCount": 3, "addedAt": 1705716458, "updatedAt": 1705800070}]}} + application/json: {"MediaContainer": {"size": 1, "leafCountAdded": 1, "leafCountRequested": 1, "Metadata": [{"ratingKey": "94", "key": "/playlists/94/items", "guid": "com.plexapp.agents.none://972e3047-83d6-4848-a000-261f0af26ba2", "type": "playlist", "title": "A great playlist", "summary": "One of my great playlists", "smart": false, "playlistType": "video", "composite": "/playlists/94/composite/1705800070", "duration": 423000, "leafCount": 3, "addedAt": 1705716458, "updatedAt": 1705800070}]}} "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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} uploadPlaylist: speakeasy-default-upload-playlist: parameters: query: path: "/home/barkley/playlist.m3u" - force: 0 + force: 1 sectionID: 1 responses: "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}]} + application/json: {"errors": [{"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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} getTransientToken: speakeasy-default-get-transient-token: parameters: @@ -2070,14 +2068,14 @@ examples: scope: "all" responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 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}]} getSourceConnectionInformation: speakeasy-default-get-source-connection-information: parameters: query: - source: "provider://provider-identifier" + source: "server://client-identifier" responses: "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}]} @@ -2087,11 +2085,11 @@ examples: speakeasy-default-get-token-details: responses: "200": - application/json: {"adsConsent": false, "adsConsentReminderAt": 1556281940, "adsConsentSetAt": 1556281940, "anonymous": false, "authToken": "CxoUzBTSV5hsxjTpFKaf", "backupCodesCreated": false, "confirmed": false, "country": "US", "email": "username@email.com", "emailOnlyAuth": false, "experimentalFeatures": false, "friendlyName": "friendlyUsername", "entitlements": ["[]"], "guest": false, "hasPassword": true, "home": false, "homeAdmin": false, "homeSize": 1, "id": 13692262, "joinedAt": 1556281940, "locale": "ja", "mailingListActive": false, "mailingListStatus": "active", "maxHomeSize": 15, "profile": {"autoSelectAudio": true, "defaultAudioLanguage": "ja", "defaultSubtitleLanguage": "en", "autoSelectSubtitle": 1, "defaultSubtitleAccessibility": 1, "defaultSubtitleForced": 1, "watchedIndicator": 1, "mediaReviewsVisibility": 1}, "protected": false, "rememberExpiresAt": 1556281940, "restricted": false, "scrobbleTypes": "", "services": [{"identifier": "metadata-dev", "endpoint": "https://epg.provider.plex.tv", "token": "DjoMtqFAGRL1uVtCyF1dKIorTbShJeqv", "secret": "", "status": "online"}], "subscription": {"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}, "subscriptionDescription": "", "subscriptions": [{"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}, {"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}, {"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}], "thumb": "https://plex.tv/users/a4f43c1ebfde43a5/avatar?c=8372075101", "title": "UsernameTitle", "twoFactorEnabled": false, "username": "Username", "uuid": "dae343c1f45beb4f", "attributionPartner": null} + application/json: {"adsConsent": true, "adsConsentReminderAt": 1556281940, "adsConsentSetAt": 1556281940, "anonymous": false, "authToken": "CxoUzBTSV5hsxjTpFKaf", "backupCodesCreated": false, "confirmed": false, "country": "US", "email": "username@email.com", "emailOnlyAuth": false, "experimentalFeatures": false, "friendlyName": "friendlyUsername", "entitlements": ["[]"], "guest": false, "hasPassword": true, "home": false, "homeAdmin": false, "homeSize": 1, "id": 13692262, "joinedAt": 1556281940, "locale": "it", "mailingListActive": false, "mailingListStatus": "active", "maxHomeSize": 15, "profile": {"autoSelectAudio": true, "defaultAudioLanguage": "ja", "defaultSubtitleLanguage": "en", "autoSelectSubtitle": 1, "defaultSubtitleAccessibility": 1, "defaultSubtitleForced": 1, "watchedIndicator": 1, "mediaReviewsVisibility": 1}, "protected": false, "rememberExpiresAt": 1556281940, "restricted": false, "scrobbleTypes": "", "services": [], "subscription": {"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}, "subscriptionDescription": "", "subscriptions": [{"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}, {"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}], "thumb": "https://plex.tv/users/a4f43c1ebfde43a5/avatar?c=8372075101", "title": "UsernameTitle", "twoFactorEnabled": false, "username": "Username", "uuid": "dae343c1f45beb4f", "attributionPartner": null} "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}]} + 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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} post-users-sign-in-data: "": parameters: @@ -2105,11 +2103,11 @@ examples: application/x-www-form-urlencoded: {"login": "username@email.com", "password": "password123", "rememberMe": false, "verificationCode": "123456"} responses: "201": - application/json: {"adsConsent": false, "adsConsentReminderAt": 1556281940, "adsConsentSetAt": 1556281940, "anonymous": false, "authToken": "CxoUzBTSV5hsxjTpFKaf", "backupCodesCreated": false, "confirmed": false, "country": "US", "email": "username@email.com", "emailOnlyAuth": false, "experimentalFeatures": false, "friendlyName": "friendlyUsername", "entitlements": ["[]"], "guest": false, "hasPassword": true, "home": false, "homeAdmin": false, "homeSize": 1, "id": 13692262, "joinedAt": 1556281940, "locale": "zh", "mailingListActive": false, "mailingListStatus": "active", "maxHomeSize": 15, "profile": {"autoSelectAudio": true, "defaultAudioLanguage": "ja", "defaultSubtitleLanguage": "en", "autoSelectSubtitle": 0, "defaultSubtitleAccessibility": 0, "defaultSubtitleForced": 0, "watchedIndicator": 0, "mediaReviewsVisibility": 0}, "protected": false, "rememberExpiresAt": 1556281940, "restricted": false, "scrobbleTypes": "", "services": [{"identifier": "metadata-dev", "endpoint": "https://epg.provider.plex.tv", "token": "DjoMtqFAGRL1uVtCyF1dKIorTbShJeqv", "secret": "", "status": "online"}, {"identifier": "metadata-dev", "endpoint": "https://epg.provider.plex.tv", "token": "DjoMtqFAGRL1uVtCyF1dKIorTbShJeqv", "secret": "", "status": "online"}, {"identifier": "metadata-dev", "endpoint": "https://epg.provider.plex.tv", "token": "DjoMtqFAGRL1uVtCyF1dKIorTbShJeqv", "secret": "", "status": "online"}], "subscription": {"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}, "subscriptionDescription": "", "subscriptions": [{"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}], "thumb": "https://plex.tv/users/a4f43c1ebfde43a5/avatar?c=8372075101", "title": "UsernameTitle", "twoFactorEnabled": false, "username": "Username", "uuid": "dae343c1f45beb4f", "attributionPartner": null, "pastSubscriptions": [{"id": "", "mode": "", "renewsAt": 1556281940, "endsAt": 1556281940, "canceled": false, "gracePeriod": false, "onHold": false, "canReactivate": false, "canUpgrade": false, "canDowngrade": false, "canConvert": false, "type": "plexpass", "transfer": "", "state": "ended", "billing": {"internalPaymentMethod": {}, "paymentMethodId": 778268}}, {"id": "", "mode": "", "renewsAt": 1556281940, "endsAt": 1556281940, "canceled": false, "gracePeriod": false, "onHold": false, "canReactivate": false, "canUpgrade": false, "canDowngrade": false, "canConvert": false, "type": "plexpass", "transfer": "", "state": "ended", "billing": {"internalPaymentMethod": {}, "paymentMethodId": 417052}}, {"id": "", "mode": "", "renewsAt": 1556281940, "endsAt": 1556281940, "canceled": false, "gracePeriod": false, "onHold": false, "canReactivate": false, "canUpgrade": false, "canDowngrade": false, "canConvert": false, "type": "plexpass", "transfer": "", "state": "ended", "billing": {"internalPaymentMethod": {}, "paymentMethodId": 860168}}], "trials": [{}, {}]} + application/json: {"adsConsent": null, "adsConsentReminderAt": 1556281940, "adsConsentSetAt": 1556281940, "anonymous": false, "authToken": "CxoUzBTSV5hsxjTpFKaf", "backupCodesCreated": false, "confirmed": false, "country": "US", "email": "username@email.com", "emailOnlyAuth": false, "experimentalFeatures": false, "friendlyName": "friendlyUsername", "entitlements": ["[]"], "guest": false, "hasPassword": true, "home": false, "homeAdmin": false, "homeSize": 1, "id": 13692262, "joinedAt": 1556281940, "locale": "ru", "mailingListActive": false, "mailingListStatus": "active", "maxHomeSize": 15, "profile": {"autoSelectAudio": true, "defaultAudioLanguage": "ja", "defaultSubtitleLanguage": "en", "autoSelectSubtitle": 1, "defaultSubtitleAccessibility": 1, "defaultSubtitleForced": 1, "watchedIndicator": 1, "mediaReviewsVisibility": 1}, "protected": false, "rememberExpiresAt": 1556281940, "restricted": false, "scrobbleTypes": "", "services": [{"identifier": "metadata-dev", "endpoint": "https://epg.provider.plex.tv", "token": "DjoMtqFAGRL1uVtCyF1dKIorTbShJeqv", "secret": "", "status": "online"}], "subscription": {"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}, "subscriptionDescription": "", "subscriptions": [{"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}], "thumb": "https://plex.tv/users/a4f43c1ebfde43a5/avatar?c=8372075101", "title": "UsernameTitle", "twoFactorEnabled": false, "username": "Username", "uuid": "dae343c1f45beb4f", "attributionPartner": null, "pastSubscriptions": [{"id": null, "mode": "", "renewsAt": 1556281940, "endsAt": 1556281940, "canceled": false, "gracePeriod": false, "onHold": false, "canReactivate": false, "canUpgrade": false, "canDowngrade": false, "canConvert": false, "type": "plexpass", "transfer": "", "state": "ended", "billing": {"internalPaymentMethod": {}, "paymentMethodId": 340820}}, {"id": null, "mode": "", "renewsAt": 1556281940, "endsAt": 1556281940, "canceled": false, "gracePeriod": false, "onHold": false, "canReactivate": false, "canUpgrade": false, "canDowngrade": false, "canConvert": false, "type": "plexpass", "transfer": "", "state": "ended", "billing": {"internalPaymentMethod": {}, "paymentMethodId": 340820}}], "trials": []} "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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getStatistics: "": parameters: @@ -2117,11 +2115,11 @@ examples: timespan: 4 responses: "200": - application/json: {"MediaContainer": {"size": 5497, "Device": [{"id": 208, "name": "Roku Express", "platform": "Roku", "clientIdentifier": "793095d235660625108ef785cc7646e9", "createdAt": 1706470556}, {"id": 208, "name": "Roku Express", "platform": "Roku", "clientIdentifier": "793095d235660625108ef785cc7646e9", "createdAt": 1706470556}], "Account": [{"id": 238960586, "key": "/accounts/238960586", "name": "Diane", "defaultAudioLanguage": "en", "autoSelectAudio": true, "defaultSubtitleLanguage": "en", "subtitleMode": 1, "thumb": "https://plex.tv/users/50d83634246da1de/avatar?c=1707110967"}], "StatisticsMedia": [{"accountID": 1, "deviceID": 13, "timespan": 4, "at": 1707141600, "metadataType": 4, "count": 1, "duration": 1555}, {"accountID": 1, "deviceID": 13, "timespan": 4, "at": 1707141600, "metadataType": 4, "count": 1, "duration": 1555}, {"accountID": 1, "deviceID": 13, "timespan": 4, "at": 1707141600, "metadataType": 4, "count": 1, "duration": 1555}]}} + application/json: {"MediaContainer": {"size": 5497, "Device": [{"id": 208, "name": "Roku Express", "platform": "Roku", "clientIdentifier": "793095d235660625108ef785cc7646e9", "createdAt": 1706470556}, {"id": 208, "name": "Roku Express", "platform": "Roku", "clientIdentifier": "793095d235660625108ef785cc7646e9", "createdAt": 1706470556}, {"id": 208, "name": "Roku Express", "platform": "Roku", "clientIdentifier": "793095d235660625108ef785cc7646e9", "createdAt": 1706470556}], "Account": [{"id": 238960586, "key": "/accounts/238960586", "name": "Diane", "defaultAudioLanguage": "en", "autoSelectAudio": true, "defaultSubtitleLanguage": "en", "subtitleMode": 1, "thumb": "https://plex.tv/users/50d83634246da1de/avatar?c=1707110967"}], "StatisticsMedia": [{"accountID": 1, "deviceID": 13, "timespan": 4, "at": 1707141600, "metadataType": 4, "count": 1, "duration": 1555}, {"accountID": 1, "deviceID": 13, "timespan": 4, "at": 1707141600, "metadataType": 4, "count": 1, "duration": 1555}, {"accountID": 1, "deviceID": 13, "timespan": 4, "at": 1707141600, "metadataType": 4, "count": 1, "duration": 1555}]}} "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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} getResourcesStatistics: "": parameters: @@ -2129,11 +2127,11 @@ examples: timespan: 4 responses: "200": - application/json: {"MediaContainer": {"size": 5497, "StatisticsResources": [{"timespan": 6, "at": 1718384427, "hostCpuUtilization": 1.276, "processCpuUtilization": 0.025, "hostMemoryUtilization": 17.026, "processMemoryUtilization": 0.493}, {"timespan": 6, "at": 1718384427, "hostCpuUtilization": 1.276, "processCpuUtilization": 0.025, "hostMemoryUtilization": 17.026, "processMemoryUtilization": 0.493}]}} + application/json: {"MediaContainer": {"size": 5497, "StatisticsResources": [{"timespan": 6, "at": 1718384427, "hostCpuUtilization": 1.276, "processCpuUtilization": 0.025, "hostMemoryUtilization": 17.026, "processMemoryUtilization": 0.493}, {"timespan": 6, "at": 1718384427, "hostCpuUtilization": 1.276, "processCpuUtilization": 0.025, "hostMemoryUtilization": 17.026, "processMemoryUtilization": 0.493}, {"timespan": 6, "at": 1718384427, "hostCpuUtilization": 1.276, "processCpuUtilization": 0.025, "hostMemoryUtilization": 17.026, "processMemoryUtilization": 0.493}]}} "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}]} + application/json: {"errors": [{"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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getBandwidthStatistics: "": parameters: @@ -2141,32 +2139,33 @@ examples: timespan: 4 responses: "200": - application/json: {"MediaContainer": {"size": 5497, "Device": [{"id": 208, "name": "Roku Express", "platform": "Roku", "clientIdentifier": "793095d235660625108ef785cc7646e9", "createdAt": 1706470556}, {"id": 208, "name": "Roku Express", "platform": "Roku", "clientIdentifier": "793095d235660625108ef785cc7646e9", "createdAt": 1706470556}, {"id": 208, "name": "Roku Express", "platform": "Roku", "clientIdentifier": "793095d235660625108ef785cc7646e9", "createdAt": 1706470556}], "Account": [{"id": 238960586, "key": "/accounts/238960586", "name": "Diane", "defaultAudioLanguage": "en", "autoSelectAudio": true, "defaultSubtitleLanguage": "en", "subtitleMode": 1, "thumb": "https://plex.tv/users/50d83634246da1de/avatar?c=1707110967"}, {"id": 238960586, "key": "/accounts/238960586", "name": "Diane", "defaultAudioLanguage": "en", "autoSelectAudio": true, "defaultSubtitleLanguage": "en", "subtitleMode": 1, "thumb": "https://plex.tv/users/50d83634246da1de/avatar?c=1707110967"}, {"id": 238960586, "key": "/accounts/238960586", "name": "Diane", "defaultAudioLanguage": "en", "autoSelectAudio": true, "defaultSubtitleLanguage": "en", "subtitleMode": 1, "thumb": "https://plex.tv/users/50d83634246da1de/avatar?c=1707110967"}], "StatisticsBandwidth": [{"accountID": 238960586, "deviceID": 208, "timespan": 6, "at": 1718387650, "lan": true, "bytes": 22}, {"accountID": 238960586, "deviceID": 208, "timespan": 6, "at": 1718387650, "lan": true, "bytes": 22}]}} + application/json: {"MediaContainer": {"size": 5497, "Device": [{"id": 208, "name": "Roku Express", "platform": "Roku", "clientIdentifier": "793095d235660625108ef785cc7646e9", "createdAt": 1706470556}], "Account": [{"id": 238960586, "key": "/accounts/238960586", "name": "Diane", "defaultAudioLanguage": "en", "autoSelectAudio": true, "defaultSubtitleLanguage": "en", "subtitleMode": 1, "thumb": "https://plex.tv/users/50d83634246da1de/avatar?c=1707110967"}], "StatisticsBandwidth": [{"accountID": 238960586, "deviceID": 208, "timespan": 6, "at": 1718387650, "lan": true, "bytes": 22}, {"accountID": 238960586, "deviceID": 208, "timespan": 6, "at": 1718387650, "lan": true, "bytes": 22}, {"accountID": 238960586, "deviceID": 208, "timespan": 6, "at": 1718387650, "lan": true, "bytes": 22}]}} "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}]} + application/json: {"errors": [{"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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} getSessions: speakeasy-default-get-sessions: responses: "200": - application/json: {"MediaContainer": {"size": 1, "Metadata": [{"addedAt": 1705543312, "art": "/library/metadata/39904/art/1705310687", "duration": 186240, "grandparentArt": "/library/metadata/39904/art/1705310687", "grandparentGuid": "plex://artist/5d07bbfd403c6402904a6480", "grandparentKey": "/library/metadata/39904", "grandparentRatingKey": "39904", "grandparentThumb": "/library/metadata/39904/thumb/1705310687", "grandparentTitle": "Green Day", "guid": "plex://track/6535834f71f22f36f71a8e8f", "index": 1, "key": "/library/metadata/67085", "librarySectionID": "3", "librarySectionKey": "/library/sections/3", "librarySectionTitle": "Music", "musicAnalysisVersion": "1", "originalTitle": "The American Dream Is Killing Me", "parentGuid": "plex://album/65394d6d472b8ab03ef47f12", "parentIndex": 1, "parentKey": "/library/metadata/67084", "parentRatingKey": "67084", "parentStudio": "Reprise Records", "parentThumb": "/library/metadata/67084/thumb/1705543314", "parentTitle": "Saviors", "parentYear": 2024, "ratingCount": 45885, "ratingKey": "67085", "sessionKey": "203", "thumb": "/library/metadata/67084/thumb/1705543314", "title": "The American Dream Is Killing Me", "titleSort": "American Dream Is Killing Me", "type": "track", "updatedAt": 1705543314, "viewOffset": 1000, "Media": [{"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}, {"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}, {"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}], "User": {"id": "1", "thumb": "https://plex.tv/users/844780fc6f8a26b5/avatar?c=1705853661", "title": "Blindkitty38"}, "Player": {"address": "10.10.10.171", "machineIdentifier": "3tsdzir85m2onc3qyr255aq1", "model": "standalone", "platform": "windows", "platformVersion": "10.0.22621", "product": "Plex for Windows", "profile": "Plex Desktop", "remotePublicAddress": "68.248.140.20", "state": "playing", "title": "DESKTOP-BL80MTD", "version": "1.85.0.4071-21128b56", "local": true, "relayed": false, "secure": true, "userID": 1}, "Session": {"id": "93h7e00ncblxncqw9lkfaoxi", "bandwidth": 1050, "location": "lan"}}, {"addedAt": 1705543312, "art": "/library/metadata/39904/art/1705310687", "duration": 186240, "grandparentArt": "/library/metadata/39904/art/1705310687", "grandparentGuid": "plex://artist/5d07bbfd403c6402904a6480", "grandparentKey": "/library/metadata/39904", "grandparentRatingKey": "39904", "grandparentThumb": "/library/metadata/39904/thumb/1705310687", "grandparentTitle": "Green Day", "guid": "plex://track/6535834f71f22f36f71a8e8f", "index": 1, "key": "/library/metadata/67085", "librarySectionID": "3", "librarySectionKey": "/library/sections/3", "librarySectionTitle": "Music", "musicAnalysisVersion": "1", "originalTitle": "The American Dream Is Killing Me", "parentGuid": "plex://album/65394d6d472b8ab03ef47f12", "parentIndex": 1, "parentKey": "/library/metadata/67084", "parentRatingKey": "67084", "parentStudio": "Reprise Records", "parentThumb": "/library/metadata/67084/thumb/1705543314", "parentTitle": "Saviors", "parentYear": 2024, "ratingCount": 45885, "ratingKey": "67085", "sessionKey": "203", "thumb": "/library/metadata/67084/thumb/1705543314", "title": "The American Dream Is Killing Me", "titleSort": "American Dream Is Killing Me", "type": "track", "updatedAt": 1705543314, "viewOffset": 1000, "Media": [{"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}, {"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}, {"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}], "User": {"id": "1", "thumb": "https://plex.tv/users/844780fc6f8a26b5/avatar?c=1705853661", "title": "Blindkitty38"}, "Player": {"address": "10.10.10.171", "machineIdentifier": "3tsdzir85m2onc3qyr255aq1", "model": "standalone", "platform": "windows", "platformVersion": "10.0.22621", "product": "Plex for Windows", "profile": "Plex Desktop", "remotePublicAddress": "68.248.140.20", "state": "playing", "title": "DESKTOP-BL80MTD", "version": "1.85.0.4071-21128b56", "local": true, "relayed": false, "secure": true, "userID": 1}, "Session": {"id": "93h7e00ncblxncqw9lkfaoxi", "bandwidth": 1050, "location": "lan"}}]}} + application/json: {"MediaContainer": {"size": 1, "Metadata": [{"addedAt": 1705543312, "art": "/library/metadata/39904/art/1705310687", "duration": 186240, "grandparentArt": "/library/metadata/39904/art/1705310687", "grandparentGuid": "plex://artist/5d07bbfd403c6402904a6480", "grandparentKey": "/library/metadata/39904", "grandparentRatingKey": "39904", "grandparentThumb": "/library/metadata/39904/thumb/1705310687", "grandparentTitle": "Green Day", "guid": "plex://track/6535834f71f22f36f71a8e8f", "index": 1, "key": "/library/metadata/67085", "librarySectionID": "3", "librarySectionKey": "/library/sections/3", "librarySectionTitle": "Music", "musicAnalysisVersion": "1", "originalTitle": "The American Dream Is Killing Me", "parentGuid": "plex://album/65394d6d472b8ab03ef47f12", "parentIndex": 1, "parentKey": "/library/metadata/67084", "parentRatingKey": "67084", "parentStudio": "Reprise Records", "parentThumb": "/library/metadata/67084/thumb/1705543314", "parentTitle": "Saviors", "parentYear": 2024, "ratingCount": 45885, "ratingKey": "67085", "sessionKey": "203", "thumb": "/library/metadata/67084/thumb/1705543314", "title": "The American Dream Is Killing Me", "titleSort": "American Dream Is Killing Me", "type": "track", "updatedAt": 1705543314, "viewOffset": 1000, "Media": [{"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}, {"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}], "User": {"id": "1", "thumb": "https://plex.tv/users/844780fc6f8a26b5/avatar?c=1705853661", "title": "Blindkitty38"}, "Player": {"address": "10.10.10.171", "machineIdentifier": "3tsdzir85m2onc3qyr255aq1", "model": "standalone", "platform": "windows", "platformVersion": "10.0.22621", "product": "Plex for Windows", "profile": "Plex Desktop", "remotePublicAddress": "68.248.140.20", "state": "playing", "title": "DESKTOP-BL80MTD", "version": "1.85.0.4071-21128b56", "local": true, "relayed": false, "secure": true, "userID": 1}, "Session": {"id": "93h7e00ncblxncqw9lkfaoxi", "bandwidth": 1050, "location": "lan"}}, {"addedAt": 1705543312, "art": "/library/metadata/39904/art/1705310687", "duration": 186240, "grandparentArt": "/library/metadata/39904/art/1705310687", "grandparentGuid": "plex://artist/5d07bbfd403c6402904a6480", "grandparentKey": "/library/metadata/39904", "grandparentRatingKey": "39904", "grandparentThumb": "/library/metadata/39904/thumb/1705310687", "grandparentTitle": "Green Day", "guid": "plex://track/6535834f71f22f36f71a8e8f", "index": 1, "key": "/library/metadata/67085", "librarySectionID": "3", "librarySectionKey": "/library/sections/3", "librarySectionTitle": "Music", "musicAnalysisVersion": "1", "originalTitle": "The American Dream Is Killing Me", "parentGuid": "plex://album/65394d6d472b8ab03ef47f12", "parentIndex": 1, "parentKey": "/library/metadata/67084", "parentRatingKey": "67084", "parentStudio": "Reprise Records", "parentThumb": "/library/metadata/67084/thumb/1705543314", "parentTitle": "Saviors", "parentYear": 2024, "ratingCount": 45885, "ratingKey": "67085", "sessionKey": "203", "thumb": "/library/metadata/67084/thumb/1705543314", "title": "The American Dream Is Killing Me", "titleSort": "American Dream Is Killing Me", "type": "track", "updatedAt": 1705543314, "viewOffset": 1000, "Media": [{"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}, {"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}], "User": {"id": "1", "thumb": "https://plex.tv/users/844780fc6f8a26b5/avatar?c=1705853661", "title": "Blindkitty38"}, "Player": {"address": "10.10.10.171", "machineIdentifier": "3tsdzir85m2onc3qyr255aq1", "model": "standalone", "platform": "windows", "platformVersion": "10.0.22621", "product": "Plex for Windows", "profile": "Plex Desktop", "remotePublicAddress": "68.248.140.20", "state": "playing", "title": "DESKTOP-BL80MTD", "version": "1.85.0.4071-21128b56", "local": true, "relayed": false, "secure": true, "userID": 1}, "Session": {"id": "93h7e00ncblxncqw9lkfaoxi", "bandwidth": 1050, "location": "lan"}}, {"addedAt": 1705543312, "art": "/library/metadata/39904/art/1705310687", "duration": 186240, "grandparentArt": "/library/metadata/39904/art/1705310687", "grandparentGuid": "plex://artist/5d07bbfd403c6402904a6480", "grandparentKey": "/library/metadata/39904", "grandparentRatingKey": "39904", "grandparentThumb": "/library/metadata/39904/thumb/1705310687", "grandparentTitle": "Green Day", "guid": "plex://track/6535834f71f22f36f71a8e8f", "index": 1, "key": "/library/metadata/67085", "librarySectionID": "3", "librarySectionKey": "/library/sections/3", "librarySectionTitle": "Music", "musicAnalysisVersion": "1", "originalTitle": "The American Dream Is Killing Me", "parentGuid": "plex://album/65394d6d472b8ab03ef47f12", "parentIndex": 1, "parentKey": "/library/metadata/67084", "parentRatingKey": "67084", "parentStudio": "Reprise Records", "parentThumb": "/library/metadata/67084/thumb/1705543314", "parentTitle": "Saviors", "parentYear": 2024, "ratingCount": 45885, "ratingKey": "67085", "sessionKey": "203", "thumb": "/library/metadata/67084/thumb/1705543314", "title": "The American Dream Is Killing Me", "titleSort": "American Dream Is Killing Me", "type": "track", "updatedAt": 1705543314, "viewOffset": 1000, "Media": [{"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}, {"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}], "User": {"id": "1", "thumb": "https://plex.tv/users/844780fc6f8a26b5/avatar?c=1705853661", "title": "Blindkitty38"}, "Player": {"address": "10.10.10.171", "machineIdentifier": "3tsdzir85m2onc3qyr255aq1", "model": "standalone", "platform": "windows", "platformVersion": "10.0.22621", "product": "Plex for Windows", "profile": "Plex Desktop", "remotePublicAddress": "68.248.140.20", "state": "playing", "title": "DESKTOP-BL80MTD", "version": "1.85.0.4071-21128b56", "local": true, "relayed": false, "secure": true, "userID": 1}, "Session": {"id": "93h7e00ncblxncqw9lkfaoxi", "bandwidth": 1050, "location": "lan"}}]}} "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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} getSessionHistory: viewed-at-descending: parameters: query: sort: "viewedAt:desc" accountId: 1 + filter: {} librarySectionID: 12 responses: "200": - application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}, {"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} + application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}, {"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}, {"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} "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}]} + application/json: {"errors": [{"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}]} viewed-at-ascending: @@ -2174,25 +2173,27 @@ examples: query: sort: "viewedAt:asc" accountId: 1 + filter: {} librarySectionID: 12 responses: "200": - application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} + application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}, {"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}, {"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} "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}]} + application/json: {"errors": [{"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}]} + 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}]} rating-descending: parameters: query: sort: "rating:desc" accountId: 1 + filter: {} librarySectionID: 12 responses: "200": - application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} + application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}, {"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}, {"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} "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}]} + application/json: {"errors": [{"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}]} rating-ascending: @@ -2200,38 +2201,41 @@ examples: query: sort: "rating:asc" accountId: 1 + filter: {} librarySectionID: 12 responses: "200": - application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} + application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}, {"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}, {"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} "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}]} + application/json: {"errors": [{"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}]} + 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}]} "": parameters: query: accountId: 1 + filter: {} librarySectionID: 12 responses: "200": - application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}, {"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} + application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}, {"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}, {"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} "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}]} + application/json: {"errors": [{"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}]} + 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}]} ViewedAt: parameters: query: accountId: 1 + filter: {} librarySectionID: 12 responses: "200": - application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}, {"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} + application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}, {"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}, {"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} "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}]} + application/json: {"errors": [{"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}]} + 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}]} getTranscodeSessions: speakeasy-default-get-transcode-sessions: responses: @@ -2248,7 +2252,7 @@ examples: sessionKey: "zz7llzqlx8w9vnrsbnwhbmep" responses: "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}]} + application/json: {"errors": [{"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}]} getUpdateStatus: @@ -2257,7 +2261,7 @@ examples: "200": application/json: {"MediaContainer": {"size": 1, "canInstall": false, "checkedAt": 1705801232, "downloadURL": "https://plex.tv/downloads/latest/5?channel=8&build=linux-x86_64&distro=redhat&X-Plex-Token=xxxxxxxxxxxxxxxxxxxx", "status": 0, "Release": [{"key": "https://plex.tv/updater/releases/5136", "version": "1.40.0.7775-456fbaf97", "added": "(PLEASE NOTE) This version makes changes to the database which will make it compatible only with server versions 1.31.2 or higher (released March 14). You will not be able to use your database on Plex Media Server versions lower than this after this update. Please also be patient when updating to this version if you have a very large database and allow the upgrade process to finish.\n(Collections) Items added to a collection from the item context menu will now lock the collection field on the items (#12793)\n(Music) Store track genres and add filtering options (#14653)\n(Music) Support ID3v2.4 null-separated tags for genres and release type (#14653)\n(View History) No longer create a view history entry for items marked as played (#10888)\n(Web) Updated to 4.118.0", "fixed": "(Agents) Changing a 'Other Videos' type library to the modern movie agent would fail (#14483)\n(Agents) It is possible that agents are not initialised during startup on rare occasions (#14654)\n(Agents) Remove the legacy OpenSubtitles agent which is no longer supported upstream (#14667)\n(Collection) Server could become unresponsive when collection membership changes (#14612)\n(DVR) Previously watched recordings could be deleted without being watched again (#13779)\n(Libraries) When performing fix match on items from certain music libraries the language would default to Arabic (#14501)\n(Library) The Content Rating not equal to None filter does not work (#14620)\n(Search) Album search results could contain all the album's tracks too (#14486)\n(Subtitles) In some circumstances, sidecar subtitles can show up for media when they're no longer available (#14674)\n(Transcoder) HW encoding would fail on devices with no rate control (#14222)\n(Transcoder) Software transcoding on Ubuntu could cause unexpected behavior (#14605)", "downloadURL": "https://plex.tv/downloads/latest/5?channel=8&build=linux-x86_64&distro=redhat&X-Plex-Token=xxxxxxxxxxxxxxxxxxxx", "state": "notify"}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 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}]} checkForUpdates: @@ -2267,9 +2271,9 @@ examples: download: 1 responses: "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}]} + 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}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} applyUpdates: "": parameters: @@ -2300,10 +2304,10 @@ examples: X-Plex-Token: "CV5xoxjTpFKUzBTShsaf" responses: "200": - application/xml: "0xa9CdebeF9E" + application/xml: "0xfD5052DbD1" "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.1 + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} +examplesVersion: 1.0.2 generatedTests: {} diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 089b30d..b9f4c9a 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -4,6 +4,7 @@ generation: maintainOpenAPIOrder: true usageSnippets: optionalPropertyRendering: withExample + sdkInitStyle: constructor useClassNamesForArrayFields: true fixes: nameResolutionDec2023: true @@ -16,7 +17,7 @@ generation: oAuth2ClientCredentialsEnabled: true oAuth2PasswordEnabled: false python: - version: 0.27.1 + version: 0.28.0 additionalDependencies: dev: {} main: {} @@ -48,6 +49,7 @@ python: outputModelSuffix: output packageName: plex-api-client projectUrls: {} + pytestFilterWarnings: [] pytestTimeout: 0 responseFormat: envelope templateVersion: v2 diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 6c7d1fb..cd3a831 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,4 +1,4 @@ -speakeasyVersion: 1.542.3 +speakeasyVersion: 1.554.1 sources: my-source: sourceNamespace: my-source @@ -12,7 +12,7 @@ sources: sourceBlobDigest: sha256:ffb5b8d288111a763e4d035c8c9e37f5c89690d146b7297493b43a71d8298e6c tags: - latest - - speakeasy-sdk-regen-1746489712 + - speakeasy-sdk-regen-1748563292 targets: plexpy: source: plexapi @@ -20,7 +20,7 @@ targets: sourceRevisionDigest: sha256:37adc934a79841fb00cfe6ed569f5b1c88534b20202ecbde64b4e84828cee22a sourceBlobDigest: sha256:ffb5b8d288111a763e4d035c8c9e37f5c89690d146b7297493b43a71d8298e6c codeSamplesNamespace: code-samples-python-plexpy - codeSamplesRevisionDigest: sha256:d44dccf82c6d957716f9fa25e845ee03044aed2df7e25e9921038315f99853f5 + codeSamplesRevisionDigest: sha256:e1e388378c142d431c28329b4d0508c172ad2258f66e0cc12dc6edeb4124194f workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README.md b/README.md index 52a20ca..b155df9 100644 --- a/README.md +++ b/README.md @@ -472,8 +472,8 @@ from plex_api_client import PlexAPI with PlexAPI( protocol="https" - ip="e0c3:bcc0:6bac:dccc:c4ec:34b1:ca98:4cb9" - port="40311" + ip="4982:bc2a:b4f8:efb5:2394:5bc3:ab4f:0e6d" + port="44765" access_token="", ) as plex_api: diff --git a/RELEASES.md b/RELEASES.md index 4240e39..363558b 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1038,4 +1038,14 @@ Based on: ### Generated - [python v0.27.1] . ### Releases -- [PyPI v0.27.1] https://pypi.org/project/plex-api-client/0.27.1 - . \ No newline at end of file +- [PyPI v0.27.1] https://pypi.org/project/plex-api-client/0.27.1 - . + +## 2025-05-30 00:01:15 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.554.1 (2.616.1) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.28.0] . +### Releases +- [PyPI v0.28.0] https://pypi.org/project/plex-api-client/0.28.0 - . \ No newline at end of file diff --git a/codeSamples.yaml b/codeSamples.yaml index 277723b..b65d084 100644 --- a/codeSamples.yaml +++ b/codeSamples.yaml @@ -238,7 +238,7 @@ actions: access_token="", ) as plex_api: - res = plex_api.butler.stop_task(task_name=operations.PathParamTaskName.BACKUP_DATABASE) + res = plex_api.butler.stop_task(task_name=operations.PathParamTaskName.CLEAN_OLD_CACHE_FILES) assert res is not None @@ -258,7 +258,7 @@ actions: access_token="", ) as plex_api: - res = plex_api.butler.start_task(task_name=operations.TaskName.CLEAN_OLD_BUNDLES) + res = plex_api.butler.start_task(task_name=operations.TaskName.REFRESH_PERIODIC_METADATA) assert res is not None @@ -410,7 +410,7 @@ actions: ) as plex_api: res = plex_api.hubs.get_recently_added(request={ - "content_directory_id": 470161, + "content_directory_id": 39486, "section_id": 2, "type": operations.Type.TV_SHOW, }) @@ -432,7 +432,7 @@ actions: access_token="", ) as plex_api: - res = plex_api.search.perform_search(query="dylan") + res = plex_api.search.perform_search(query="arnold") assert res is not None @@ -470,7 +470,7 @@ actions: access_token="", ) as plex_api: - res = plex_api.hubs.get_library_hubs(section_id=6728.76) + res = plex_api.hubs.get_library_hubs(section_id=492.74) assert res.object is not None @@ -643,7 +643,7 @@ actions: access_token="", ) as plex_api: - res = plex_api.library.get_metadata_children(rating_key=1539.14, include_elements="Stream") + res = plex_api.library.get_metadata_children(rating_key=2403.67, include_elements="Stream") assert res.object is not None @@ -811,7 +811,7 @@ actions: ) as plex_api: res = plex_api.watchlist.get_watch_list(request={ - "filter_": operations.Filter.AVAILABLE, + "filter_": operations.Filter.RELEASED, "x_plex_token": "CV5xoxjTpFKUzBTShsaf", }) @@ -954,7 +954,7 @@ actions: access_token="", ) as plex_api: - res = plex_api.library.get_refresh_library_metadata(section_key=9518, force=operations.Force.ONE) + res = plex_api.library.get_refresh_library_metadata(section_key=9518, force=operations.Force.ZERO) assert res is not None @@ -995,7 +995,7 @@ actions: ) as plex_api: res = plex_api.library.get_library_items(request={ - "tag": operations.Tag.EDITION, + "tag": operations.Tag.NEWEST, "type": operations.GetLibraryItemsQueryParamType.TV_SHOW, "section_key": 9518, }) @@ -1121,8 +1121,8 @@ actions: "height": 165, "opacity": 100, "blur": 0, - "min_size": operations.MinSize.ONE, - "upscale": operations.Upscale.ONE, + "min_size": operations.MinSize.ZERO, + "upscale": operations.Upscale.ZERO, "url": "/library/metadata/49564/thumb/1654258204", }) @@ -1165,7 +1165,7 @@ actions: with PlexAPI() as plex_api: res = plex_api.plex.get_token_by_pin_id(request={ - "pin_id": 408895, + "pin_id": 232248, "client_id": "3381b62b-9ab7-4e37-827b-203e9809eb58", "client_name": "Plex for Roku", "device_nickname": "Roku 3", @@ -1212,9 +1212,9 @@ actions: res = plex_api.playlists.create_playlist(request={ "title": "", - "type": operations.CreatePlaylistQueryParamType.PHOTO, + "type": operations.CreatePlaylistQueryParamType.AUDIO, "smart": operations.Smart.ONE, - "uri": "https://hoarse-testing.info/", + "uri": "https://short-term-disconnection.name/", }) assert res.object is not None @@ -1235,7 +1235,7 @@ actions: access_token="", ) as plex_api: - res = plex_api.playlists.upload_playlist(path="/home/barkley/playlist.m3u", force=operations.QueryParamForce.ZERO, section_id=1) + res = plex_api.playlists.upload_playlist(path="/home/barkley/playlist.m3u", force=operations.QueryParamForce.ONE, section_id=1) assert res is not None @@ -1254,7 +1254,7 @@ actions: access_token="", ) as plex_api: - res = plex_api.playlists.delete_playlist(playlist_id=216.22) + res = plex_api.playlists.delete_playlist(playlist_id=3432.93) assert res is not None @@ -1273,7 +1273,7 @@ actions: access_token="", ) as plex_api: - res = plex_api.playlists.get_playlist(playlist_id=4109.48) + res = plex_api.playlists.get_playlist(playlist_id=8419.53) assert res.object is not None @@ -1292,7 +1292,7 @@ actions: access_token="", ) as plex_api: - res = plex_api.playlists.update_playlist(playlist_id=3915) + res = plex_api.playlists.update_playlist(playlist_id=1579.66) assert res is not None @@ -1311,7 +1311,7 @@ actions: access_token="", ) as plex_api: - res = plex_api.playlists.clear_playlist_contents(playlist_id=1893.18) + res = plex_api.playlists.clear_playlist_contents(playlist_id=4137.37) assert res is not None @@ -1331,7 +1331,7 @@ actions: access_token="", ) as plex_api: - res = plex_api.playlists.get_playlist_contents(playlist_id=5004.46, type_=operations.GetPlaylistContentsQueryParamType.TV_SHOW) + res = plex_api.playlists.get_playlist_contents(playlist_id=5535.42, type_=operations.GetPlaylistContentsQueryParamType.TV_SHOW) assert res.object is not None @@ -1350,7 +1350,7 @@ actions: access_token="", ) as plex_api: - res = plex_api.playlists.add_playlist_contents(playlist_id=8502.01, uri="server://12345/com.plexapp.plugins.library/library/metadata/1", play_queue_id=123) + res = plex_api.playlists.add_playlist_contents(playlist_id=7013.44, uri="server://12345/com.plexapp.plugins.library/library/metadata/1", play_queue_id=123) assert res.object is not None @@ -1407,7 +1407,7 @@ actions: access_token="", ) as plex_api: - res = plex_api.authentication.get_source_connection_information(source="provider://provider-identifier") + res = plex_api.authentication.get_source_connection_information(source="server://client-identifier") assert res is not None diff --git a/docs/sdks/authentication/README.md b/docs/sdks/authentication/README.md index ed84a5e..d02652d 100644 --- a/docs/sdks/authentication/README.md +++ b/docs/sdks/authentication/README.md @@ -74,7 +74,7 @@ with PlexAPI( access_token="", ) as plex_api: - res = plex_api.authentication.get_source_connection_information(source="provider://provider-identifier") + res = plex_api.authentication.get_source_connection_information(source="server://client-identifier") assert res is not None diff --git a/docs/sdks/butler/README.md b/docs/sdks/butler/README.md index 2bbccbe..e68666f 100644 --- a/docs/sdks/butler/README.md +++ b/docs/sdks/butler/README.md @@ -163,7 +163,7 @@ with PlexAPI( access_token="", ) as plex_api: - res = plex_api.butler.start_task(task_name=operations.TaskName.CLEAN_OLD_BUNDLES) + res = plex_api.butler.start_task(task_name=operations.TaskName.REFRESH_PERIODIC_METADATA) assert res is not None @@ -207,7 +207,7 @@ with PlexAPI( access_token="", ) as plex_api: - res = plex_api.butler.stop_task(task_name=operations.PathParamTaskName.BACKUP_DATABASE) + res = plex_api.butler.stop_task(task_name=operations.PathParamTaskName.CLEAN_OLD_CACHE_FILES) assert res is not None diff --git a/docs/sdks/hubs/README.md b/docs/sdks/hubs/README.md index 9fe88ce..6ab69b0 100644 --- a/docs/sdks/hubs/README.md +++ b/docs/sdks/hubs/README.md @@ -72,7 +72,7 @@ with PlexAPI( ) as plex_api: res = plex_api.hubs.get_recently_added(request={ - "content_directory_id": 470161, + "content_directory_id": 39486, "section_id": 2, "type": operations.Type.TV_SHOW, }) @@ -116,7 +116,7 @@ with PlexAPI( access_token="", ) as plex_api: - res = plex_api.hubs.get_library_hubs(section_id=6728.76) + res = plex_api.hubs.get_library_hubs(section_id=492.74) assert res.object is not None diff --git a/docs/sdks/library/README.md b/docs/sdks/library/README.md index f8c8cbc..9cdf299 100644 --- a/docs/sdks/library/README.md +++ b/docs/sdks/library/README.md @@ -342,7 +342,7 @@ with PlexAPI( ) as plex_api: res = plex_api.library.get_library_items(request={ - "tag": operations.Tag.EDITION, + "tag": operations.Tag.NEWEST, "type": operations.GetLibraryItemsQueryParamType.TV_SHOW, "section_key": 9518, }) @@ -436,7 +436,7 @@ with PlexAPI( access_token="", ) as plex_api: - res = plex_api.library.get_refresh_library_metadata(section_key=9518, force=operations.Force.ONE) + res = plex_api.library.get_refresh_library_metadata(section_key=9518, force=operations.Force.ZERO) assert res is not None @@ -949,7 +949,7 @@ with PlexAPI( access_token="", ) as plex_api: - res = plex_api.library.get_metadata_children(rating_key=1539.14, include_elements="Stream") + res = plex_api.library.get_metadata_children(rating_key=2403.67, include_elements="Stream") assert res.object is not None diff --git a/docs/sdks/playlists/README.md b/docs/sdks/playlists/README.md index 955ae0e..f830cb8 100644 --- a/docs/sdks/playlists/README.md +++ b/docs/sdks/playlists/README.md @@ -41,9 +41,9 @@ with PlexAPI( res = plex_api.playlists.create_playlist(request={ "title": "", - "type": operations.CreatePlaylistQueryParamType.PHOTO, + "type": operations.CreatePlaylistQueryParamType.AUDIO, "smart": operations.Smart.ONE, - "uri": "https://hoarse-testing.info/", + "uri": "https://short-term-disconnection.name/", }) assert res.object is not None @@ -131,7 +131,7 @@ with PlexAPI( access_token="", ) as plex_api: - res = plex_api.playlists.get_playlist(playlist_id=4109.48) + res = plex_api.playlists.get_playlist(playlist_id=8419.53) assert res.object is not None @@ -174,7 +174,7 @@ with PlexAPI( access_token="", ) as plex_api: - res = plex_api.playlists.delete_playlist(playlist_id=216.22) + res = plex_api.playlists.delete_playlist(playlist_id=3432.93) assert res is not None @@ -217,7 +217,7 @@ with PlexAPI( access_token="", ) as plex_api: - res = plex_api.playlists.update_playlist(playlist_id=3915) + res = plex_api.playlists.update_playlist(playlist_id=1579.66) assert res is not None @@ -266,7 +266,7 @@ with PlexAPI( access_token="", ) as plex_api: - res = plex_api.playlists.get_playlist_contents(playlist_id=5004.46, type_=operations.GetPlaylistContentsQueryParamType.TV_SHOW) + res = plex_api.playlists.get_playlist_contents(playlist_id=5535.42, type_=operations.GetPlaylistContentsQueryParamType.TV_SHOW) assert res.object is not None @@ -310,7 +310,7 @@ with PlexAPI( access_token="", ) as plex_api: - res = plex_api.playlists.clear_playlist_contents(playlist_id=1893.18) + res = plex_api.playlists.clear_playlist_contents(playlist_id=4137.37) assert res is not None @@ -354,7 +354,7 @@ with PlexAPI( access_token="", ) as plex_api: - res = plex_api.playlists.add_playlist_contents(playlist_id=8502.01, uri="server://12345/com.plexapp.plugins.library/library/metadata/1", play_queue_id=123) + res = plex_api.playlists.add_playlist_contents(playlist_id=7013.44, uri="server://12345/com.plexapp.plugins.library/library/metadata/1", play_queue_id=123) assert res.object is not None @@ -400,7 +400,7 @@ with PlexAPI( access_token="", ) as plex_api: - res = plex_api.playlists.upload_playlist(path="/home/barkley/playlist.m3u", force=operations.QueryParamForce.ZERO, section_id=1) + res = plex_api.playlists.upload_playlist(path="/home/barkley/playlist.m3u", force=operations.QueryParamForce.ONE, section_id=1) assert res is not None diff --git a/docs/sdks/plex/README.md b/docs/sdks/plex/README.md index ede198d..7501163 100644 --- a/docs/sdks/plex/README.md +++ b/docs/sdks/plex/README.md @@ -286,7 +286,7 @@ from plex_api_client import PlexAPI with PlexAPI() as plex_api: res = plex_api.plex.get_token_by_pin_id(request={ - "pin_id": 408895, + "pin_id": 232248, "client_id": "3381b62b-9ab7-4e37-827b-203e9809eb58", "client_name": "Plex for Roku", "device_nickname": "Roku 3", diff --git a/docs/sdks/search/README.md b/docs/sdks/search/README.md index 6a240eb..dbc363c 100644 --- a/docs/sdks/search/README.md +++ b/docs/sdks/search/README.md @@ -38,7 +38,7 @@ with PlexAPI( access_token="", ) as plex_api: - res = plex_api.search.perform_search(query="dylan") + res = plex_api.search.perform_search(query="arnold") assert res is not None diff --git a/docs/sdks/server/README.md b/docs/sdks/server/README.md index 76c6cdd..3f23875 100644 --- a/docs/sdks/server/README.md +++ b/docs/sdks/server/README.md @@ -282,8 +282,8 @@ with PlexAPI( "height": 165, "opacity": 100, "blur": 0, - "min_size": operations.MinSize.ONE, - "upscale": operations.Upscale.ONE, + "min_size": operations.MinSize.ZERO, + "upscale": operations.Upscale.ZERO, "url": "/library/metadata/49564/thumb/1654258204", }) diff --git a/docs/sdks/watchlist/README.md b/docs/sdks/watchlist/README.md index 3c399a4..3b477e8 100644 --- a/docs/sdks/watchlist/README.md +++ b/docs/sdks/watchlist/README.md @@ -26,7 +26,7 @@ with PlexAPI( ) as plex_api: res = plex_api.watchlist.get_watch_list(request={ - "filter_": operations.Filter.AVAILABLE, + "filter_": operations.Filter.RELEASED, "x_plex_token": "CV5xoxjTpFKUzBTShsaf", }) diff --git a/poetry.lock b/poetry.lock index b33259b..c4ee630 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. [[package]] name = "annotated-types" @@ -109,37 +109,37 @@ test = ["pytest (>=6)"] [[package]] name = "h11" -version = "0.14.0" +version = "0.16.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" groups = ["main"] files = [ - {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, - {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, + {file = "h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86"}, + {file = "h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1"}, ] [[package]] name = "httpcore" -version = "1.0.5" +version = "1.0.9" description = "A minimal low-level HTTP client." optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5"}, - {file = "httpcore-1.0.5.tar.gz", hash = "sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61"}, + {file = "httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55"}, + {file = "httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8"}, ] [package.dependencies] certifi = "*" -h11 = ">=0.13,<0.15" +h11 = ">=0.16" [package.extras] asyncio = ["anyio (>=4.0,<5.0)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] -trio = ["trio (>=0.22.0,<0.26.0)"] +trio = ["trio (>=0.22.0,<1.0)"] [[package]] name = "httpx" @@ -519,5 +519,5 @@ typing-extensions = ">=4.12.0" [metadata] lock-version = "2.1" -python-versions = ">=3.9" -content-hash = "6354f0f1856076ab30608ac13a9b2c92427e32d83253a3a3801e1919bb853282" +python-versions = ">=3.9.2" +content-hash = "fd5d2a9148a00cbc5258586b48c24f763e191bdc12367f4e92abdbfc15e30679" diff --git a/pyproject.toml b/pyproject.toml index b8f092f..f094095 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,11 +1,12 @@ [project] name = "plex-api-client" -version = "0.27.1" +version = "0.28.0" description = "Python Client SDK Generated by Speakeasy" authors = [{ name = "Speakeasy" },] readme = "README-PYPI.md" -requires-python = ">=3.9" +requires-python = ">=3.9.2" dependencies = [ + "httpcore >=1.0.9", "httpx >=0.28.1", "pydantic >=2.11.2", ] diff --git a/src/plex_api_client/_hooks/types.py b/src/plex_api_client/_hooks/types.py index 9ad6fe5..dc5d1bf 100644 --- a/src/plex_api_client/_hooks/types.py +++ b/src/plex_api_client/_hooks/types.py @@ -3,10 +3,12 @@ from abc import ABC, abstractmethod import httpx from plex_api_client.httpclient import HttpClient +from plex_api_client.sdkconfiguration import SDKConfiguration from typing import Any, Callable, List, Optional, Tuple, Union class HookContext: + config: SDKConfiguration base_url: str operation_id: str oauth2_scopes: Optional[List[str]] = None @@ -14,11 +16,13 @@ class HookContext: def __init__( self, + config: SDKConfiguration, base_url: str, operation_id: str, oauth2_scopes: Optional[List[str]], security_source: Optional[Union[Any, Callable[[], Any]]], ): + self.config = config self.base_url = base_url self.operation_id = operation_id self.oauth2_scopes = oauth2_scopes @@ -28,6 +32,7 @@ class HookContext: class BeforeRequestContext(HookContext): def __init__(self, hook_ctx: HookContext): super().__init__( + hook_ctx.config, hook_ctx.base_url, hook_ctx.operation_id, hook_ctx.oauth2_scopes, @@ -38,6 +43,7 @@ class BeforeRequestContext(HookContext): class AfterSuccessContext(HookContext): def __init__(self, hook_ctx: HookContext): super().__init__( + hook_ctx.config, hook_ctx.base_url, hook_ctx.operation_id, hook_ctx.oauth2_scopes, @@ -48,6 +54,7 @@ class AfterSuccessContext(HookContext): class AfterErrorContext(HookContext): def __init__(self, hook_ctx: HookContext): super().__init__( + hook_ctx.config, hook_ctx.base_url, hook_ctx.operation_id, hook_ctx.oauth2_scopes, diff --git a/src/plex_api_client/_version.py b/src/plex_api_client/_version.py index 5ec03c7..35702f2 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.27.1" +__version__: str = "0.28.0" __openapi_doc_version__: str = "0.0.3" -__gen_version__: str = "2.597.9" -__user_agent__: str = "speakeasy-sdk/python 0.27.1 2.597.9 0.0.3 plex-api-client" +__gen_version__: str = "2.616.1" +__user_agent__: str = "speakeasy-sdk/python 0.28.0 2.616.1 0.0.3 plex-api-client" try: if __package__ is not None: diff --git a/src/plex_api_client/activities.py b/src/plex_api_client/activities.py index ae13c5a..a0a0251 100644 --- a/src/plex_api_client/activities.py +++ b/src/plex_api_client/activities.py @@ -71,6 +71,7 @@ class Activities(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getServerActivities", oauth2_scopes=[], @@ -175,6 +176,7 @@ class Activities(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getServerActivities", oauth2_scopes=[], @@ -286,6 +288,7 @@ class Activities(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="cancelServerActivities", oauth2_scopes=[], @@ -394,6 +397,7 @@ class Activities(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="cancelServerActivities", oauth2_scopes=[], diff --git a/src/plex_api_client/authentication.py b/src/plex_api_client/authentication.py index ec770dc..c2844c2 100644 --- a/src/plex_api_client/authentication.py +++ b/src/plex_api_client/authentication.py @@ -74,6 +74,7 @@ class Authentication(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getTransientToken", oauth2_scopes=[], @@ -186,6 +187,7 @@ class Authentication(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getTransientToken", oauth2_scopes=[], @@ -296,6 +298,7 @@ class Authentication(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getSourceConnectionInformation", oauth2_scopes=[], @@ -406,6 +409,7 @@ class Authentication(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getSourceConnectionInformation", oauth2_scopes=[], @@ -507,6 +511,7 @@ class Authentication(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getTokenDetails", oauth2_scopes=[], @@ -611,6 +616,7 @@ class Authentication(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getTokenDetails", oauth2_scopes=[], @@ -731,6 +737,7 @@ class Authentication(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="post-users-sign-in-data", oauth2_scopes=[], @@ -852,6 +859,7 @@ class Authentication(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="post-users-sign-in-data", oauth2_scopes=[], diff --git a/src/plex_api_client/basesdk.py b/src/plex_api_client/basesdk.py index d570e85..8594a89 100644 --- a/src/plex_api_client/basesdk.py +++ b/src/plex_api_client/basesdk.py @@ -219,12 +219,12 @@ class BaseSDK: client = self.sdk_configuration.client logger = self.sdk_configuration.debug_logger + hooks = self.sdk_configuration.__dict__["_hooks"] + def do(): http_res = None try: - req = self.sdk_configuration.get_hooks().before_request( - BeforeRequestContext(hook_ctx), request - ) + req = hooks.before_request(BeforeRequestContext(hook_ctx), request) logger.debug( "Request:\nMethod: %s\nURL: %s\nHeaders: %s\nBody: %s", req.method, @@ -238,9 +238,7 @@ class BaseSDK: http_res = client.send(req, stream=stream) except Exception as e: - _, e = self.sdk_configuration.get_hooks().after_error( - AfterErrorContext(hook_ctx), None, e - ) + _, e = hooks.after_error(AfterErrorContext(hook_ctx), None, e) if e is not None: logger.debug("Request Exception", exc_info=True) raise e @@ -258,7 +256,7 @@ class BaseSDK: ) if utils.match_status_codes(error_status_codes, http_res.status_code): - result, err = self.sdk_configuration.get_hooks().after_error( + result, err = hooks.after_error( AfterErrorContext(hook_ctx), http_res, None ) if err is not None: @@ -278,9 +276,7 @@ class BaseSDK: http_res = do() if not utils.match_status_codes(error_status_codes, http_res.status_code): - http_res = self.sdk_configuration.get_hooks().after_success( - AfterSuccessContext(hook_ctx), http_res - ) + http_res = hooks.after_success(AfterSuccessContext(hook_ctx), http_res) return http_res @@ -295,12 +291,12 @@ class BaseSDK: client = self.sdk_configuration.async_client logger = self.sdk_configuration.debug_logger + hooks = self.sdk_configuration.__dict__["_hooks"] + async def do(): http_res = None try: - req = self.sdk_configuration.get_hooks().before_request( - BeforeRequestContext(hook_ctx), request - ) + req = hooks.before_request(BeforeRequestContext(hook_ctx), request) logger.debug( "Request:\nMethod: %s\nURL: %s\nHeaders: %s\nBody: %s", req.method, @@ -314,9 +310,7 @@ class BaseSDK: http_res = await client.send(req, stream=stream) except Exception as e: - _, e = self.sdk_configuration.get_hooks().after_error( - AfterErrorContext(hook_ctx), None, e - ) + _, e = hooks.after_error(AfterErrorContext(hook_ctx), None, e) if e is not None: logger.debug("Request Exception", exc_info=True) raise e @@ -334,7 +328,7 @@ class BaseSDK: ) if utils.match_status_codes(error_status_codes, http_res.status_code): - result, err = self.sdk_configuration.get_hooks().after_error( + result, err = hooks.after_error( AfterErrorContext(hook_ctx), http_res, None ) if err is not None: @@ -356,8 +350,6 @@ class BaseSDK: http_res = await do() if not utils.match_status_codes(error_status_codes, http_res.status_code): - http_res = self.sdk_configuration.get_hooks().after_success( - AfterSuccessContext(hook_ctx), http_res - ) + http_res = hooks.after_success(AfterSuccessContext(hook_ctx), http_res) return http_res diff --git a/src/plex_api_client/butler.py b/src/plex_api_client/butler.py index 0363a43..2949e3f 100644 --- a/src/plex_api_client/butler.py +++ b/src/plex_api_client/butler.py @@ -63,6 +63,7 @@ class Butler(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getButlerTasks", oauth2_scopes=[], @@ -167,6 +168,7 @@ class Butler(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getButlerTasks", oauth2_scopes=[], @@ -276,6 +278,7 @@ class Butler(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="startAllTasks", oauth2_scopes=[], @@ -382,6 +385,7 @@ class Butler(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="startAllTasks", oauth2_scopes=[], @@ -484,6 +488,7 @@ class Butler(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="stopAllTasks", oauth2_scopes=[], @@ -586,6 +591,7 @@ class Butler(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="stopAllTasks", oauth2_scopes=[], @@ -699,6 +705,7 @@ class Butler(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="startTask", oauth2_scopes=[], @@ -812,6 +819,7 @@ class Butler(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="startTask", oauth2_scopes=[], @@ -921,6 +929,7 @@ class Butler(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="stopTask", oauth2_scopes=[], @@ -1030,6 +1039,7 @@ class Butler(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="stopTask", oauth2_scopes=[], diff --git a/src/plex_api_client/httpclient.py b/src/plex_api_client/httpclient.py index 1e42635..47b052c 100644 --- a/src/plex_api_client/httpclient.py +++ b/src/plex_api_client/httpclient.py @@ -2,7 +2,6 @@ # pyright: reportReturnType = false import asyncio -from concurrent.futures import ThreadPoolExecutor from typing_extensions import Protocol, runtime_checkable import httpx from typing import Any, Optional, Union @@ -116,21 +115,12 @@ def close_clients( pass if async_client is not None and not async_client_supplied: - is_async = False try: - asyncio.get_running_loop() - is_async = True + loop = asyncio.get_running_loop() + asyncio.run_coroutine_threadsafe(async_client.aclose(), loop) except RuntimeError: - pass - - try: - # If this function is called in an async loop then start another - # loop in a separate thread to close the async http client. - if is_async: - with ThreadPoolExecutor(max_workers=1) as executor: - future = executor.submit(asyncio.run, async_client.aclose()) - future.result() - else: + try: asyncio.run(async_client.aclose()) - except Exception: - pass + except RuntimeError: + # best effort + pass diff --git a/src/plex_api_client/hubs.py b/src/plex_api_client/hubs.py index d64b288..4c0ea90 100644 --- a/src/plex_api_client/hubs.py +++ b/src/plex_api_client/hubs.py @@ -73,6 +73,7 @@ class Hubs(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getGlobalHubs", oauth2_scopes=[], @@ -187,6 +188,7 @@ class Hubs(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getGlobalHubs", oauth2_scopes=[], @@ -302,6 +304,7 @@ class Hubs(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-recently-added", oauth2_scopes=[], @@ -404,6 +407,7 @@ class Hubs(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-recently-added", oauth2_scopes=[], @@ -509,6 +513,7 @@ class Hubs(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getLibraryHubs", oauth2_scopes=[], @@ -627,6 +632,7 @@ class Hubs(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getLibraryHubs", oauth2_scopes=[], diff --git a/src/plex_api_client/library.py b/src/plex_api_client/library.py index b4fe00a..3cf3ec7 100644 --- a/src/plex_api_client/library.py +++ b/src/plex_api_client/library.py @@ -74,6 +74,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getFileHash", oauth2_scopes=[], @@ -185,6 +186,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getFileHash", oauth2_scopes=[], @@ -299,6 +301,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-recently-added-library", oauth2_scopes=[], @@ -417,6 +420,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-recently-added-library", oauth2_scopes=[], @@ -528,6 +532,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-all-libraries", oauth2_scopes=[], @@ -638,6 +643,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-all-libraries", oauth2_scopes=[], @@ -793,6 +799,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-library-details", oauth2_scopes=[], @@ -948,6 +955,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-library-details", oauth2_scopes=[], @@ -1059,6 +1067,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="deleteLibrary", oauth2_scopes=[], @@ -1167,6 +1176,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="deleteLibrary", oauth2_scopes=[], @@ -1299,6 +1309,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-library-items", oauth2_scopes=[], @@ -1434,6 +1445,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-library-items", oauth2_scopes=[], @@ -1549,6 +1561,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-all-media-library", oauth2_scopes=[], @@ -1664,6 +1677,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-all-media-library", oauth2_scopes=[], @@ -1779,6 +1793,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-refresh-library-metadata", oauth2_scopes=[], @@ -1891,6 +1906,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-refresh-library-metadata", oauth2_scopes=[], @@ -2020,6 +2036,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-search-library", oauth2_scopes=[], @@ -2152,6 +2169,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-search-library", oauth2_scopes=[], @@ -2267,6 +2285,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-genres-library", oauth2_scopes=[], @@ -2382,6 +2401,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-genres-library", oauth2_scopes=[], @@ -2497,6 +2517,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-countries-library", oauth2_scopes=[], @@ -2612,6 +2633,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-countries-library", oauth2_scopes=[], @@ -2727,6 +2749,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-actors-library", oauth2_scopes=[], @@ -2842,6 +2865,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-actors-library", oauth2_scopes=[], @@ -2957,6 +2981,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-search-all-libraries", oauth2_scopes=[], @@ -3073,6 +3098,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-search-all-libraries", oauth2_scopes=[], @@ -3189,6 +3215,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-media-meta-data", oauth2_scopes=[], @@ -3304,6 +3331,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-media-meta-data", oauth2_scopes=[], @@ -3415,6 +3443,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-media-arts", oauth2_scopes=[], @@ -3513,6 +3542,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-media-arts", oauth2_scopes=[], @@ -3624,6 +3654,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="post-media-arts", oauth2_scopes=[], @@ -3732,6 +3763,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="post-media-arts", oauth2_scopes=[], @@ -3827,6 +3859,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-media-posters", oauth2_scopes=[], @@ -3925,6 +3958,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-media-posters", oauth2_scopes=[], @@ -4036,6 +4070,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="post-media-poster", oauth2_scopes=[], @@ -4144,6 +4179,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="post-media-poster", oauth2_scopes=[], @@ -4243,6 +4279,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getMetadataChildren", oauth2_scopes=[], @@ -4358,6 +4395,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getMetadataChildren", oauth2_scopes=[], @@ -4473,6 +4511,7 @@ class Library(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getTopWatchedContent", oauth2_scopes=[], @@ -4588,6 +4627,7 @@ class Library(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getTopWatchedContent", oauth2_scopes=[], diff --git a/src/plex_api_client/log.py b/src/plex_api_client/log.py index 8b99052..f49aaee 100644 --- a/src/plex_api_client/log.py +++ b/src/plex_api_client/log.py @@ -77,6 +77,7 @@ class Log(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="logLine", oauth2_scopes=[], @@ -192,6 +193,7 @@ class Log(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="logLine", oauth2_scopes=[], @@ -320,6 +322,7 @@ class Log(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="logMultiLine", oauth2_scopes=[], @@ -448,6 +451,7 @@ class Log(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="logMultiLine", oauth2_scopes=[], @@ -550,6 +554,7 @@ class Log(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="enablePaperTrail", oauth2_scopes=[], @@ -652,6 +657,7 @@ class Log(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="enablePaperTrail", oauth2_scopes=[], diff --git a/src/plex_api_client/media.py b/src/plex_api_client/media.py index c799cfb..d2ae5df 100644 --- a/src/plex_api_client/media.py +++ b/src/plex_api_client/media.py @@ -70,6 +70,7 @@ class Media(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="markPlayed", oauth2_scopes=[], @@ -178,6 +179,7 @@ class Media(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="markPlayed", oauth2_scopes=[], @@ -286,6 +288,7 @@ class Media(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="markUnplayed", oauth2_scopes=[], @@ -394,6 +397,7 @@ class Media(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="markUnplayed", oauth2_scopes=[], @@ -509,6 +513,7 @@ class Media(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="updatePlayProgress", oauth2_scopes=[], @@ -624,6 +629,7 @@ class Media(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="updatePlayProgress", oauth2_scopes=[], @@ -734,6 +740,7 @@ class Media(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-banner-image", oauth2_scopes=[], @@ -849,6 +856,7 @@ class Media(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-banner-image", oauth2_scopes=[], @@ -964,6 +972,7 @@ class Media(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-thumb-image", oauth2_scopes=[], @@ -1079,6 +1088,7 @@ class Media(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-thumb-image", oauth2_scopes=[], diff --git a/src/plex_api_client/models/__init__.py b/src/plex_api_client/models/__init__.py index cc53976..726fc5e 100644 --- a/src/plex_api_client/models/__init__.py +++ b/src/plex_api_client/models/__init__.py @@ -1,4 +1,3 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" # package - diff --git a/src/plex_api_client/models/components/__init__.py b/src/plex_api_client/models/components/__init__.py index 5566afb..0fca5ad 100644 --- a/src/plex_api_client/models/components/__init__.py +++ b/src/plex_api_client/models/components/__init__.py @@ -1,6 +1,40 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from .security import Security, SecurityTypedDict +from typing import TYPE_CHECKING +from importlib import import_module +if TYPE_CHECKING: + from .security import Security, SecurityTypedDict __all__ = ["Security", "SecurityTypedDict"] + +_dynamic_imports: dict[str, str] = { + "Security": ".security", + "SecurityTypedDict": ".security", +} + + +def __getattr__(attr_name: str) -> object: + module_name = _dynamic_imports.get(attr_name) + if module_name is None: + raise AttributeError( + f"No {attr_name} found in _dynamic_imports for module name -> {__name__} " + ) + + try: + module = import_module(module_name, __package__) + result = getattr(module, attr_name) + return result + except ImportError as e: + raise ImportError( + f"Failed to import {attr_name} from {module_name}: {e}" + ) from e + except AttributeError as e: + raise AttributeError( + f"Failed to get {attr_name} from {module_name}: {e}" + ) from e + + +def __dir__(): + lazy_attrs = list(_dynamic_imports.keys()) + return sorted(lazy_attrs) diff --git a/src/plex_api_client/models/errors/__init__.py b/src/plex_api_client/models/errors/__init__.py index c6d81e9..7c9417a 100644 --- a/src/plex_api_client/models/errors/__init__.py +++ b/src/plex_api_client/models/errors/__init__.py @@ -1,787 +1,790 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from .addplaylistcontents import ( - AddPlaylistContentsBadRequest, - AddPlaylistContentsBadRequestData, - AddPlaylistContentsErrors, - AddPlaylistContentsErrorsTypedDict, - AddPlaylistContentsPlaylistsErrors, - AddPlaylistContentsPlaylistsErrorsTypedDict, - AddPlaylistContentsUnauthorized, - AddPlaylistContentsUnauthorizedData, -) -from .applyupdates import ( - ApplyUpdatesBadRequest, - ApplyUpdatesBadRequestData, - ApplyUpdatesErrors, - ApplyUpdatesErrorsTypedDict, - ApplyUpdatesUnauthorized, - ApplyUpdatesUnauthorizedData, - ApplyUpdatesUpdaterErrors, - ApplyUpdatesUpdaterErrorsTypedDict, -) -from .cancelserveractivities import ( - CancelServerActivitiesActivitiesErrors, - CancelServerActivitiesActivitiesErrorsTypedDict, - CancelServerActivitiesBadRequest, - CancelServerActivitiesBadRequestData, - CancelServerActivitiesErrors, - CancelServerActivitiesErrorsTypedDict, - CancelServerActivitiesUnauthorized, - CancelServerActivitiesUnauthorizedData, -) -from .checkforupdates import ( - CheckForUpdatesBadRequest, - CheckForUpdatesBadRequestData, - CheckForUpdatesErrors, - CheckForUpdatesErrorsTypedDict, - CheckForUpdatesUnauthorized, - CheckForUpdatesUnauthorizedData, - CheckForUpdatesUpdaterErrors, - CheckForUpdatesUpdaterErrorsTypedDict, -) -from .clearplaylistcontents import ( - ClearPlaylistContentsBadRequest, - ClearPlaylistContentsBadRequestData, - ClearPlaylistContentsErrors, - ClearPlaylistContentsErrorsTypedDict, - ClearPlaylistContentsPlaylistsErrors, - ClearPlaylistContentsPlaylistsErrorsTypedDict, - ClearPlaylistContentsUnauthorized, - ClearPlaylistContentsUnauthorizedData, -) -from .createplaylist import ( - CreatePlaylistBadRequest, - CreatePlaylistBadRequestData, - CreatePlaylistErrors, - CreatePlaylistErrorsTypedDict, - CreatePlaylistPlaylistsErrors, - CreatePlaylistPlaylistsErrorsTypedDict, - CreatePlaylistUnauthorized, - CreatePlaylistUnauthorizedData, -) -from .deletelibrary import ( - DeleteLibraryBadRequest, - DeleteLibraryBadRequestData, - DeleteLibraryErrors, - DeleteLibraryErrorsTypedDict, - DeleteLibraryLibraryErrors, - DeleteLibraryLibraryErrorsTypedDict, - DeleteLibraryUnauthorized, - DeleteLibraryUnauthorizedData, -) -from .deleteplaylist import ( - DeletePlaylistBadRequest, - DeletePlaylistBadRequestData, - DeletePlaylistErrors, - DeletePlaylistErrorsTypedDict, - DeletePlaylistPlaylistsErrors, - DeletePlaylistPlaylistsErrorsTypedDict, - DeletePlaylistUnauthorized, - DeletePlaylistUnauthorizedData, -) -from .enablepapertrail import ( - EnablePaperTrailBadRequest, - EnablePaperTrailBadRequestData, - EnablePaperTrailErrors, - EnablePaperTrailErrorsTypedDict, - EnablePaperTrailLogErrors, - EnablePaperTrailLogErrorsTypedDict, - EnablePaperTrailUnauthorized, - EnablePaperTrailUnauthorizedData, -) -from .get_actors_library import ( - GetActorsLibraryBadRequest, - GetActorsLibraryBadRequestData, - GetActorsLibraryErrors, - GetActorsLibraryErrorsTypedDict, - GetActorsLibraryLibraryErrors, - GetActorsLibraryLibraryErrorsTypedDict, - GetActorsLibraryUnauthorized, - GetActorsLibraryUnauthorizedData, -) -from .get_all_libraries import ( - GetAllLibrariesBadRequest, - GetAllLibrariesBadRequestData, - GetAllLibrariesErrors, - GetAllLibrariesErrorsTypedDict, - GetAllLibrariesLibraryErrors, - GetAllLibrariesLibraryErrorsTypedDict, - GetAllLibrariesUnauthorized, - GetAllLibrariesUnauthorizedData, -) -from .get_all_media_library import ( - GetAllMediaLibraryBadRequest, - GetAllMediaLibraryBadRequestData, - GetAllMediaLibraryErrors, - GetAllMediaLibraryErrorsTypedDict, - GetAllMediaLibraryLibraryErrors, - GetAllMediaLibraryLibraryErrorsTypedDict, - GetAllMediaLibraryUnauthorized, - GetAllMediaLibraryUnauthorizedData, -) -from .get_banner_image import ( - GetBannerImageBadRequest, - GetBannerImageBadRequestData, - GetBannerImageErrors, - GetBannerImageErrorsTypedDict, - GetBannerImageMediaErrors, - GetBannerImageMediaErrorsTypedDict, - GetBannerImageUnauthorized, - GetBannerImageUnauthorizedData, -) -from .get_countries_library import ( - GetCountriesLibraryBadRequest, - GetCountriesLibraryBadRequestData, - GetCountriesLibraryErrors, - GetCountriesLibraryErrorsTypedDict, - GetCountriesLibraryLibraryErrors, - GetCountriesLibraryLibraryErrorsTypedDict, - GetCountriesLibraryUnauthorized, - GetCountriesLibraryUnauthorizedData, -) -from .get_genres_library import ( - GetGenresLibraryBadRequest, - GetGenresLibraryBadRequestData, - GetGenresLibraryErrors, - GetGenresLibraryErrorsTypedDict, - GetGenresLibraryLibraryErrors, - GetGenresLibraryLibraryErrorsTypedDict, - GetGenresLibraryUnauthorized, - GetGenresLibraryUnauthorizedData, -) -from .get_library_details import ( - GetLibraryDetailsBadRequest, - GetLibraryDetailsBadRequestData, - GetLibraryDetailsErrors, - GetLibraryDetailsErrorsTypedDict, - GetLibraryDetailsLibraryErrors, - GetLibraryDetailsLibraryErrorsTypedDict, - GetLibraryDetailsUnauthorized, - GetLibraryDetailsUnauthorizedData, -) -from .get_library_items import ( - GetLibraryItemsBadRequest, - GetLibraryItemsBadRequestData, - GetLibraryItemsErrors, - GetLibraryItemsErrorsTypedDict, - GetLibraryItemsLibraryErrors, - GetLibraryItemsLibraryErrorsTypedDict, - GetLibraryItemsUnauthorized, - GetLibraryItemsUnauthorizedData, -) -from .get_media_meta_data import ( - GetMediaMetaDataBadRequest, - GetMediaMetaDataBadRequestData, - GetMediaMetaDataErrors, - GetMediaMetaDataErrorsTypedDict, - GetMediaMetaDataLibraryErrors, - GetMediaMetaDataLibraryErrorsTypedDict, - GetMediaMetaDataUnauthorized, - GetMediaMetaDataUnauthorizedData, -) -from .get_media_providers import ( - GetMediaProvidersBadRequest, - GetMediaProvidersBadRequestData, - GetMediaProvidersErrors, - GetMediaProvidersErrorsTypedDict, - GetMediaProvidersServerErrors, - GetMediaProvidersServerErrorsTypedDict, - GetMediaProvidersUnauthorized, - GetMediaProvidersUnauthorizedData, -) -from .get_recently_added_library import ( - GetRecentlyAddedLibraryBadRequest, - GetRecentlyAddedLibraryBadRequestData, - GetRecentlyAddedLibraryErrors, - GetRecentlyAddedLibraryErrorsTypedDict, - GetRecentlyAddedLibraryLibraryErrors, - GetRecentlyAddedLibraryLibraryErrorsTypedDict, - GetRecentlyAddedLibraryUnauthorized, - GetRecentlyAddedLibraryUnauthorizedData, -) -from .get_refresh_library_metadata import ( - GetRefreshLibraryMetadataBadRequest, - GetRefreshLibraryMetadataBadRequestData, - GetRefreshLibraryMetadataErrors, - GetRefreshLibraryMetadataErrorsTypedDict, - GetRefreshLibraryMetadataLibraryErrors, - GetRefreshLibraryMetadataLibraryErrorsTypedDict, - GetRefreshLibraryMetadataUnauthorized, - GetRefreshLibraryMetadataUnauthorizedData, -) -from .get_search_all_libraries import ( - GetSearchAllLibrariesBadRequest, - GetSearchAllLibrariesBadRequestData, - GetSearchAllLibrariesErrors, - GetSearchAllLibrariesErrorsTypedDict, - GetSearchAllLibrariesLibraryErrors, - GetSearchAllLibrariesLibraryErrorsTypedDict, - GetSearchAllLibrariesUnauthorized, - GetSearchAllLibrariesUnauthorizedData, -) -from .get_search_library import ( - GetSearchLibraryBadRequest, - GetSearchLibraryBadRequestData, - GetSearchLibraryErrors, - GetSearchLibraryErrorsTypedDict, - GetSearchLibraryLibraryErrors, - GetSearchLibraryLibraryErrorsTypedDict, - GetSearchLibraryUnauthorized, - GetSearchLibraryUnauthorizedData, -) -from .get_server_identity import ( - GetServerIdentityRequestTimeout, - GetServerIdentityRequestTimeoutData, -) -from .get_server_resources import ( - GetServerResourcesBadRequest, - GetServerResourcesBadRequestData, - GetServerResourcesErrors, - GetServerResourcesErrorsTypedDict, - GetServerResourcesPlexErrors, - GetServerResourcesPlexErrorsTypedDict, - GetServerResourcesUnauthorized, - GetServerResourcesUnauthorizedData, -) -from .get_thumb_image import ( - GetThumbImageBadRequest, - GetThumbImageBadRequestData, - GetThumbImageErrors, - GetThumbImageErrorsTypedDict, - GetThumbImageMediaErrors, - GetThumbImageMediaErrorsTypedDict, - GetThumbImageUnauthorized, - GetThumbImageUnauthorizedData, -) -from .get_users import ( - GetUsersBadRequest, - GetUsersBadRequestData, - GetUsersErrors, - GetUsersErrorsTypedDict, - GetUsersUnauthorized, - GetUsersUnauthorizedData, - GetUsersUsersErrors, - GetUsersUsersErrorsTypedDict, -) -from .get_watch_list import ( - GetWatchListBadRequest, - GetWatchListBadRequestData, - GetWatchListErrors, - GetWatchListErrorsTypedDict, - GetWatchListUnauthorized, - GetWatchListUnauthorizedData, - GetWatchListWatchlistErrors, - GetWatchListWatchlistErrorsTypedDict, -) -from .getavailableclients import ( - GetAvailableClientsBadRequest, - GetAvailableClientsBadRequestData, - GetAvailableClientsErrors, - GetAvailableClientsErrorsTypedDict, - GetAvailableClientsServerErrors, - GetAvailableClientsServerErrorsTypedDict, - GetAvailableClientsUnauthorized, - GetAvailableClientsUnauthorizedData, -) -from .getbandwidthstatistics import ( - GetBandwidthStatisticsBadRequest, - GetBandwidthStatisticsBadRequestData, - GetBandwidthStatisticsErrors, - GetBandwidthStatisticsErrorsTypedDict, - GetBandwidthStatisticsStatisticsErrors, - GetBandwidthStatisticsStatisticsErrorsTypedDict, - GetBandwidthStatisticsUnauthorized, - GetBandwidthStatisticsUnauthorizedData, -) -from .getbutlertasks import ( - GetButlerTasksBadRequest, - GetButlerTasksBadRequestData, - GetButlerTasksButlerErrors, - GetButlerTasksButlerErrorsTypedDict, - GetButlerTasksErrors, - GetButlerTasksErrorsTypedDict, - GetButlerTasksUnauthorized, - GetButlerTasksUnauthorizedData, -) -from .getcompanionsdata import ( - GetCompanionsDataBadRequest, - GetCompanionsDataBadRequestData, - GetCompanionsDataErrors, - GetCompanionsDataErrorsTypedDict, - GetCompanionsDataPlexErrors, - GetCompanionsDataPlexErrorsTypedDict, - GetCompanionsDataUnauthorized, - GetCompanionsDataUnauthorizedData, -) -from .getdevices import ( - GetDevicesBadRequest, - GetDevicesBadRequestData, - GetDevicesErrors, - GetDevicesErrorsTypedDict, - GetDevicesServerErrors, - GetDevicesServerErrorsTypedDict, - GetDevicesUnauthorized, - GetDevicesUnauthorizedData, -) -from .getfilehash import ( - GetFileHashBadRequest, - GetFileHashBadRequestData, - GetFileHashErrors, - GetFileHashErrorsTypedDict, - GetFileHashLibraryErrors, - GetFileHashLibraryErrorsTypedDict, - GetFileHashUnauthorized, - GetFileHashUnauthorizedData, -) -from .getgeodata import ( - GetGeoDataBadRequest, - GetGeoDataBadRequestData, - GetGeoDataErrors, - GetGeoDataErrorsTypedDict, - GetGeoDataPlexErrors, - GetGeoDataPlexErrorsTypedDict, - GetGeoDataUnauthorized, - GetGeoDataUnauthorizedData, -) -from .getglobalhubs import ( - GetGlobalHubsBadRequest, - GetGlobalHubsBadRequestData, - GetGlobalHubsErrors, - GetGlobalHubsErrorsTypedDict, - GetGlobalHubsHubsErrors, - GetGlobalHubsHubsErrorsTypedDict, - GetGlobalHubsUnauthorized, - GetGlobalHubsUnauthorizedData, -) -from .gethomedata import ( - GetHomeDataBadRequest, - GetHomeDataBadRequestData, - GetHomeDataErrors, - GetHomeDataErrorsTypedDict, - GetHomeDataPlexErrors, - GetHomeDataPlexErrorsTypedDict, - GetHomeDataUnauthorized, - GetHomeDataUnauthorizedData, -) -from .getlibraryhubs import ( - GetLibraryHubsBadRequest, - GetLibraryHubsBadRequestData, - GetLibraryHubsErrors, - GetLibraryHubsErrorsTypedDict, - GetLibraryHubsHubsErrors, - GetLibraryHubsHubsErrorsTypedDict, - GetLibraryHubsUnauthorized, - GetLibraryHubsUnauthorizedData, -) -from .getmetadatachildren import ( - GetMetadataChildrenBadRequest, - GetMetadataChildrenBadRequestData, - GetMetadataChildrenErrors, - GetMetadataChildrenErrorsTypedDict, - GetMetadataChildrenLibraryErrors, - GetMetadataChildrenLibraryErrorsTypedDict, - GetMetadataChildrenUnauthorized, - GetMetadataChildrenUnauthorizedData, -) -from .getmyplexaccount import ( - GetMyPlexAccountBadRequest, - GetMyPlexAccountBadRequestData, - GetMyPlexAccountErrors, - GetMyPlexAccountErrorsTypedDict, - GetMyPlexAccountServerErrors, - GetMyPlexAccountServerErrorsTypedDict, - GetMyPlexAccountUnauthorized, - GetMyPlexAccountUnauthorizedData, -) -from .getpin import ( - GetPinBadRequest, - GetPinBadRequestData, - GetPinErrors, - GetPinErrorsTypedDict, -) -from .getplaylist import ( - GetPlaylistBadRequest, - GetPlaylistBadRequestData, - GetPlaylistErrors, - GetPlaylistErrorsTypedDict, - GetPlaylistPlaylistsErrors, - GetPlaylistPlaylistsErrorsTypedDict, - GetPlaylistUnauthorized, - GetPlaylistUnauthorizedData, -) -from .getplaylistcontents import ( - GetPlaylistContentsBadRequest, - GetPlaylistContentsBadRequestData, - GetPlaylistContentsErrors, - GetPlaylistContentsErrorsTypedDict, - GetPlaylistContentsPlaylistsErrors, - GetPlaylistContentsPlaylistsErrorsTypedDict, - GetPlaylistContentsUnauthorized, - GetPlaylistContentsUnauthorizedData, -) -from .getplaylists import ( - GetPlaylistsBadRequest, - GetPlaylistsBadRequestData, - GetPlaylistsErrors, - GetPlaylistsErrorsTypedDict, - GetPlaylistsPlaylistsErrors, - GetPlaylistsPlaylistsErrorsTypedDict, - GetPlaylistsUnauthorized, - GetPlaylistsUnauthorizedData, -) -from .getresizedphoto import ( - GetResizedPhotoBadRequest, - GetResizedPhotoBadRequestData, - GetResizedPhotoErrors, - GetResizedPhotoErrorsTypedDict, - GetResizedPhotoServerErrors, - GetResizedPhotoServerErrorsTypedDict, - GetResizedPhotoUnauthorized, - GetResizedPhotoUnauthorizedData, -) -from .getresourcesstatistics import ( - GetResourcesStatisticsBadRequest, - GetResourcesStatisticsBadRequestData, - GetResourcesStatisticsErrors, - GetResourcesStatisticsErrorsTypedDict, - GetResourcesStatisticsStatisticsErrors, - GetResourcesStatisticsStatisticsErrorsTypedDict, - GetResourcesStatisticsUnauthorized, - GetResourcesStatisticsUnauthorizedData, -) -from .getsearchresults import ( - GetSearchResultsBadRequest, - GetSearchResultsBadRequestData, - GetSearchResultsErrors, - GetSearchResultsErrorsTypedDict, - GetSearchResultsSearchErrors, - GetSearchResultsSearchErrorsTypedDict, - GetSearchResultsUnauthorized, - GetSearchResultsUnauthorizedData, -) -from .getserveractivities import ( - GetServerActivitiesActivitiesErrors, - GetServerActivitiesActivitiesErrorsTypedDict, - GetServerActivitiesBadRequest, - GetServerActivitiesBadRequestData, - GetServerActivitiesErrors, - GetServerActivitiesErrorsTypedDict, - GetServerActivitiesUnauthorized, - GetServerActivitiesUnauthorizedData, -) -from .getservercapabilities import ( - Errors, - ErrorsTypedDict, - GetServerCapabilitiesBadRequest, - GetServerCapabilitiesBadRequestData, - GetServerCapabilitiesErrors, - GetServerCapabilitiesErrorsTypedDict, - GetServerCapabilitiesUnauthorized, - GetServerCapabilitiesUnauthorizedData, -) -from .getserverlist import ( - GetServerListBadRequest, - GetServerListBadRequestData, - GetServerListErrors, - GetServerListErrorsTypedDict, - GetServerListServerErrors, - GetServerListServerErrorsTypedDict, - GetServerListUnauthorized, - GetServerListUnauthorizedData, -) -from .getserverpreferences import ( - GetServerPreferencesBadRequest, - GetServerPreferencesBadRequestData, - GetServerPreferencesErrors, - GetServerPreferencesErrorsTypedDict, - GetServerPreferencesServerErrors, - GetServerPreferencesServerErrorsTypedDict, - GetServerPreferencesUnauthorized, - GetServerPreferencesUnauthorizedData, -) -from .getsessionhistory import ( - GetSessionHistoryBadRequest, - GetSessionHistoryBadRequestData, - GetSessionHistoryErrors, - GetSessionHistoryErrorsTypedDict, - GetSessionHistorySessionsErrors, - GetSessionHistorySessionsErrorsTypedDict, - GetSessionHistoryUnauthorized, - GetSessionHistoryUnauthorizedData, -) -from .getsessions import ( - GetSessionsBadRequest, - GetSessionsBadRequestData, - GetSessionsErrors, - GetSessionsErrorsTypedDict, - GetSessionsSessionsErrors, - GetSessionsSessionsErrorsTypedDict, - GetSessionsUnauthorized, - GetSessionsUnauthorizedData, -) -from .getsourceconnectioninformation import ( - GetSourceConnectionInformationAuthenticationErrors, - GetSourceConnectionInformationAuthenticationErrorsTypedDict, - GetSourceConnectionInformationBadRequest, - GetSourceConnectionInformationBadRequestData, - GetSourceConnectionInformationErrors, - GetSourceConnectionInformationErrorsTypedDict, - GetSourceConnectionInformationUnauthorized, - GetSourceConnectionInformationUnauthorizedData, -) -from .getstatistics import ( - GetStatisticsBadRequest, - GetStatisticsBadRequestData, - GetStatisticsErrors, - GetStatisticsErrorsTypedDict, - GetStatisticsStatisticsErrors, - GetStatisticsStatisticsErrorsTypedDict, - GetStatisticsUnauthorized, - GetStatisticsUnauthorizedData, -) -from .gettimeline import ( - GetTimelineBadRequest, - GetTimelineBadRequestData, - GetTimelineErrors, - GetTimelineErrorsTypedDict, - GetTimelineUnauthorized, - GetTimelineUnauthorizedData, - GetTimelineVideoErrors, - GetTimelineVideoErrorsTypedDict, -) -from .gettokenbypinid import ( - GetTokenByPinIDBadRequest, - GetTokenByPinIDBadRequestData, - GetTokenByPinIDErrors, - GetTokenByPinIDErrorsTypedDict, - GetTokenByPinIDPlexErrors, - GetTokenByPinIDPlexErrorsTypedDict, - GetTokenByPinIDResponseBody, - GetTokenByPinIDResponseBodyData, -) -from .gettokendetails import ( - GetTokenDetailsAuthenticationErrors, - GetTokenDetailsAuthenticationErrorsTypedDict, - GetTokenDetailsBadRequest, - GetTokenDetailsBadRequestData, - GetTokenDetailsErrors, - GetTokenDetailsErrorsTypedDict, - GetTokenDetailsUnauthorized, - GetTokenDetailsUnauthorizedData, -) -from .gettopwatchedcontent import ( - GetTopWatchedContentBadRequest, - GetTopWatchedContentBadRequestData, - GetTopWatchedContentErrors, - GetTopWatchedContentErrorsTypedDict, - GetTopWatchedContentLibraryErrors, - GetTopWatchedContentLibraryErrorsTypedDict, - GetTopWatchedContentUnauthorized, - GetTopWatchedContentUnauthorizedData, -) -from .gettranscodesessions import ( - GetTranscodeSessionsBadRequest, - GetTranscodeSessionsBadRequestData, - GetTranscodeSessionsErrors, - GetTranscodeSessionsErrorsTypedDict, - GetTranscodeSessionsSessionsErrors, - GetTranscodeSessionsSessionsErrorsTypedDict, - GetTranscodeSessionsUnauthorized, - GetTranscodeSessionsUnauthorizedData, -) -from .gettransienttoken import ( - GetTransientTokenAuthenticationErrors, - GetTransientTokenAuthenticationErrorsTypedDict, - GetTransientTokenBadRequest, - GetTransientTokenBadRequestData, - GetTransientTokenErrors, - GetTransientTokenErrorsTypedDict, - GetTransientTokenUnauthorized, - GetTransientTokenUnauthorizedData, -) -from .getupdatestatus import ( - GetUpdateStatusBadRequest, - GetUpdateStatusBadRequestData, - GetUpdateStatusErrors, - GetUpdateStatusErrorsTypedDict, - GetUpdateStatusUnauthorized, - GetUpdateStatusUnauthorizedData, - GetUpdateStatusUpdaterErrors, - GetUpdateStatusUpdaterErrorsTypedDict, -) -from .getuserfriends import ( - GetUserFriendsBadRequest, - GetUserFriendsBadRequestData, - GetUserFriendsErrors, - GetUserFriendsErrorsTypedDict, - GetUserFriendsPlexErrors, - GetUserFriendsPlexErrorsTypedDict, - GetUserFriendsUnauthorized, - GetUserFriendsUnauthorizedData, -) -from .logline import ( - LogLineBadRequest, - LogLineBadRequestData, - LogLineErrors, - LogLineErrorsTypedDict, - LogLineLogErrors, - LogLineLogErrorsTypedDict, - LogLineUnauthorized, - LogLineUnauthorizedData, -) -from .logmultiline import ( - LogMultiLineBadRequest, - LogMultiLineBadRequestData, - LogMultiLineErrors, - LogMultiLineErrorsTypedDict, - LogMultiLineLogErrors, - LogMultiLineLogErrorsTypedDict, - LogMultiLineUnauthorized, - LogMultiLineUnauthorizedData, -) -from .markplayed import ( - MarkPlayedBadRequest, - MarkPlayedBadRequestData, - MarkPlayedErrors, - MarkPlayedErrorsTypedDict, - MarkPlayedMediaErrors, - MarkPlayedMediaErrorsTypedDict, - MarkPlayedUnauthorized, - MarkPlayedUnauthorizedData, -) -from .markunplayed import ( - MarkUnplayedBadRequest, - MarkUnplayedBadRequestData, - MarkUnplayedErrors, - MarkUnplayedErrorsTypedDict, - MarkUnplayedMediaErrors, - MarkUnplayedMediaErrorsTypedDict, - MarkUnplayedUnauthorized, - MarkUnplayedUnauthorizedData, -) -from .performsearch import ( - PerformSearchBadRequest, - PerformSearchBadRequestData, - PerformSearchErrors, - PerformSearchErrorsTypedDict, - PerformSearchSearchErrors, - PerformSearchSearchErrorsTypedDict, - PerformSearchUnauthorized, - PerformSearchUnauthorizedData, -) -from .performvoicesearch import ( - PerformVoiceSearchBadRequest, - PerformVoiceSearchBadRequestData, - PerformVoiceSearchErrors, - PerformVoiceSearchErrorsTypedDict, - PerformVoiceSearchSearchErrors, - PerformVoiceSearchSearchErrorsTypedDict, - PerformVoiceSearchUnauthorized, - PerformVoiceSearchUnauthorizedData, -) -from .post_users_sign_in_data import ( - PostUsersSignInDataAuthenticationErrors, - PostUsersSignInDataAuthenticationErrorsTypedDict, - PostUsersSignInDataBadRequest, - PostUsersSignInDataBadRequestData, - PostUsersSignInDataErrors, - PostUsersSignInDataErrorsTypedDict, - PostUsersSignInDataUnauthorized, - PostUsersSignInDataUnauthorizedData, -) -from .sdkerror import SDKError -from .startalltasks import ( - StartAllTasksBadRequest, - StartAllTasksBadRequestData, - StartAllTasksButlerErrors, - StartAllTasksButlerErrorsTypedDict, - StartAllTasksErrors, - StartAllTasksErrorsTypedDict, - StartAllTasksUnauthorized, - StartAllTasksUnauthorizedData, -) -from .starttask import ( - StartTaskBadRequest, - StartTaskBadRequestData, - StartTaskButlerErrors, - StartTaskButlerErrorsTypedDict, - StartTaskErrors, - StartTaskErrorsTypedDict, - StartTaskUnauthorized, - StartTaskUnauthorizedData, -) -from .startuniversaltranscode import ( - StartUniversalTranscodeBadRequest, - StartUniversalTranscodeBadRequestData, - StartUniversalTranscodeErrors, - StartUniversalTranscodeErrorsTypedDict, - StartUniversalTranscodeUnauthorized, - StartUniversalTranscodeUnauthorizedData, - StartUniversalTranscodeVideoErrors, - StartUniversalTranscodeVideoErrorsTypedDict, -) -from .stopalltasks import ( - StopAllTasksBadRequest, - StopAllTasksBadRequestData, - StopAllTasksButlerErrors, - StopAllTasksButlerErrorsTypedDict, - StopAllTasksErrors, - StopAllTasksErrorsTypedDict, - StopAllTasksUnauthorized, - StopAllTasksUnauthorizedData, -) -from .stoptask import ( - StopTaskBadRequest, - StopTaskBadRequestData, - StopTaskButlerErrors, - StopTaskButlerErrorsTypedDict, - StopTaskErrors, - StopTaskErrorsTypedDict, - StopTaskUnauthorized, - StopTaskUnauthorizedData, -) -from .stoptranscodesession import ( - StopTranscodeSessionBadRequest, - StopTranscodeSessionBadRequestData, - StopTranscodeSessionErrors, - StopTranscodeSessionErrorsTypedDict, - StopTranscodeSessionSessionsErrors, - StopTranscodeSessionSessionsErrorsTypedDict, - StopTranscodeSessionUnauthorized, - StopTranscodeSessionUnauthorizedData, -) -from .updateplaylist import ( - UpdatePlaylistBadRequest, - UpdatePlaylistBadRequestData, - UpdatePlaylistErrors, - UpdatePlaylistErrorsTypedDict, - UpdatePlaylistPlaylistsErrors, - UpdatePlaylistPlaylistsErrorsTypedDict, - UpdatePlaylistUnauthorized, - UpdatePlaylistUnauthorizedData, -) -from .updateplayprogress import ( - UpdatePlayProgressBadRequest, - UpdatePlayProgressBadRequestData, - UpdatePlayProgressErrors, - UpdatePlayProgressErrorsTypedDict, - UpdatePlayProgressMediaErrors, - UpdatePlayProgressMediaErrorsTypedDict, - UpdatePlayProgressUnauthorized, - UpdatePlayProgressUnauthorizedData, -) -from .uploadplaylist import ( - UploadPlaylistBadRequest, - UploadPlaylistBadRequestData, - UploadPlaylistErrors, - UploadPlaylistErrorsTypedDict, - UploadPlaylistPlaylistsErrors, - UploadPlaylistPlaylistsErrorsTypedDict, - UploadPlaylistUnauthorized, - UploadPlaylistUnauthorizedData, -) +from typing import TYPE_CHECKING +from importlib import import_module +if TYPE_CHECKING: + from .addplaylistcontents import ( + AddPlaylistContentsBadRequest, + AddPlaylistContentsBadRequestData, + AddPlaylistContentsErrors, + AddPlaylistContentsErrorsTypedDict, + AddPlaylistContentsPlaylistsErrors, + AddPlaylistContentsPlaylistsErrorsTypedDict, + AddPlaylistContentsUnauthorized, + AddPlaylistContentsUnauthorizedData, + ) + from .applyupdates import ( + ApplyUpdatesBadRequest, + ApplyUpdatesBadRequestData, + ApplyUpdatesErrors, + ApplyUpdatesErrorsTypedDict, + ApplyUpdatesUnauthorized, + ApplyUpdatesUnauthorizedData, + ApplyUpdatesUpdaterErrors, + ApplyUpdatesUpdaterErrorsTypedDict, + ) + from .cancelserveractivities import ( + CancelServerActivitiesActivitiesErrors, + CancelServerActivitiesActivitiesErrorsTypedDict, + CancelServerActivitiesBadRequest, + CancelServerActivitiesBadRequestData, + CancelServerActivitiesErrors, + CancelServerActivitiesErrorsTypedDict, + CancelServerActivitiesUnauthorized, + CancelServerActivitiesUnauthorizedData, + ) + from .checkforupdates import ( + CheckForUpdatesBadRequest, + CheckForUpdatesBadRequestData, + CheckForUpdatesErrors, + CheckForUpdatesErrorsTypedDict, + CheckForUpdatesUnauthorized, + CheckForUpdatesUnauthorizedData, + CheckForUpdatesUpdaterErrors, + CheckForUpdatesUpdaterErrorsTypedDict, + ) + from .clearplaylistcontents import ( + ClearPlaylistContentsBadRequest, + ClearPlaylistContentsBadRequestData, + ClearPlaylistContentsErrors, + ClearPlaylistContentsErrorsTypedDict, + ClearPlaylistContentsPlaylistsErrors, + ClearPlaylistContentsPlaylistsErrorsTypedDict, + ClearPlaylistContentsUnauthorized, + ClearPlaylistContentsUnauthorizedData, + ) + from .createplaylist import ( + CreatePlaylistBadRequest, + CreatePlaylistBadRequestData, + CreatePlaylistErrors, + CreatePlaylistErrorsTypedDict, + CreatePlaylistPlaylistsErrors, + CreatePlaylistPlaylistsErrorsTypedDict, + CreatePlaylistUnauthorized, + CreatePlaylistUnauthorizedData, + ) + from .deletelibrary import ( + DeleteLibraryBadRequest, + DeleteLibraryBadRequestData, + DeleteLibraryErrors, + DeleteLibraryErrorsTypedDict, + DeleteLibraryLibraryErrors, + DeleteLibraryLibraryErrorsTypedDict, + DeleteLibraryUnauthorized, + DeleteLibraryUnauthorizedData, + ) + from .deleteplaylist import ( + DeletePlaylistBadRequest, + DeletePlaylistBadRequestData, + DeletePlaylistErrors, + DeletePlaylistErrorsTypedDict, + DeletePlaylistPlaylistsErrors, + DeletePlaylistPlaylistsErrorsTypedDict, + DeletePlaylistUnauthorized, + DeletePlaylistUnauthorizedData, + ) + from .enablepapertrail import ( + EnablePaperTrailBadRequest, + EnablePaperTrailBadRequestData, + EnablePaperTrailErrors, + EnablePaperTrailErrorsTypedDict, + EnablePaperTrailLogErrors, + EnablePaperTrailLogErrorsTypedDict, + EnablePaperTrailUnauthorized, + EnablePaperTrailUnauthorizedData, + ) + from .get_actors_library import ( + GetActorsLibraryBadRequest, + GetActorsLibraryBadRequestData, + GetActorsLibraryErrors, + GetActorsLibraryErrorsTypedDict, + GetActorsLibraryLibraryErrors, + GetActorsLibraryLibraryErrorsTypedDict, + GetActorsLibraryUnauthorized, + GetActorsLibraryUnauthorizedData, + ) + from .get_all_libraries import ( + GetAllLibrariesBadRequest, + GetAllLibrariesBadRequestData, + GetAllLibrariesErrors, + GetAllLibrariesErrorsTypedDict, + GetAllLibrariesLibraryErrors, + GetAllLibrariesLibraryErrorsTypedDict, + GetAllLibrariesUnauthorized, + GetAllLibrariesUnauthorizedData, + ) + from .get_all_media_library import ( + GetAllMediaLibraryBadRequest, + GetAllMediaLibraryBadRequestData, + GetAllMediaLibraryErrors, + GetAllMediaLibraryErrorsTypedDict, + GetAllMediaLibraryLibraryErrors, + GetAllMediaLibraryLibraryErrorsTypedDict, + GetAllMediaLibraryUnauthorized, + GetAllMediaLibraryUnauthorizedData, + ) + from .get_banner_image import ( + GetBannerImageBadRequest, + GetBannerImageBadRequestData, + GetBannerImageErrors, + GetBannerImageErrorsTypedDict, + GetBannerImageMediaErrors, + GetBannerImageMediaErrorsTypedDict, + GetBannerImageUnauthorized, + GetBannerImageUnauthorizedData, + ) + from .get_countries_library import ( + GetCountriesLibraryBadRequest, + GetCountriesLibraryBadRequestData, + GetCountriesLibraryErrors, + GetCountriesLibraryErrorsTypedDict, + GetCountriesLibraryLibraryErrors, + GetCountriesLibraryLibraryErrorsTypedDict, + GetCountriesLibraryUnauthorized, + GetCountriesLibraryUnauthorizedData, + ) + from .get_genres_library import ( + GetGenresLibraryBadRequest, + GetGenresLibraryBadRequestData, + GetGenresLibraryErrors, + GetGenresLibraryErrorsTypedDict, + GetGenresLibraryLibraryErrors, + GetGenresLibraryLibraryErrorsTypedDict, + GetGenresLibraryUnauthorized, + GetGenresLibraryUnauthorizedData, + ) + from .get_library_details import ( + GetLibraryDetailsBadRequest, + GetLibraryDetailsBadRequestData, + GetLibraryDetailsErrors, + GetLibraryDetailsErrorsTypedDict, + GetLibraryDetailsLibraryErrors, + GetLibraryDetailsLibraryErrorsTypedDict, + GetLibraryDetailsUnauthorized, + GetLibraryDetailsUnauthorizedData, + ) + from .get_library_items import ( + GetLibraryItemsBadRequest, + GetLibraryItemsBadRequestData, + GetLibraryItemsErrors, + GetLibraryItemsErrorsTypedDict, + GetLibraryItemsLibraryErrors, + GetLibraryItemsLibraryErrorsTypedDict, + GetLibraryItemsUnauthorized, + GetLibraryItemsUnauthorizedData, + ) + from .get_media_meta_data import ( + GetMediaMetaDataBadRequest, + GetMediaMetaDataBadRequestData, + GetMediaMetaDataErrors, + GetMediaMetaDataErrorsTypedDict, + GetMediaMetaDataLibraryErrors, + GetMediaMetaDataLibraryErrorsTypedDict, + GetMediaMetaDataUnauthorized, + GetMediaMetaDataUnauthorizedData, + ) + from .get_media_providers import ( + GetMediaProvidersBadRequest, + GetMediaProvidersBadRequestData, + GetMediaProvidersErrors, + GetMediaProvidersErrorsTypedDict, + GetMediaProvidersServerErrors, + GetMediaProvidersServerErrorsTypedDict, + GetMediaProvidersUnauthorized, + GetMediaProvidersUnauthorizedData, + ) + from .get_recently_added_library import ( + GetRecentlyAddedLibraryBadRequest, + GetRecentlyAddedLibraryBadRequestData, + GetRecentlyAddedLibraryErrors, + GetRecentlyAddedLibraryErrorsTypedDict, + GetRecentlyAddedLibraryLibraryErrors, + GetRecentlyAddedLibraryLibraryErrorsTypedDict, + GetRecentlyAddedLibraryUnauthorized, + GetRecentlyAddedLibraryUnauthorizedData, + ) + from .get_refresh_library_metadata import ( + GetRefreshLibraryMetadataBadRequest, + GetRefreshLibraryMetadataBadRequestData, + GetRefreshLibraryMetadataErrors, + GetRefreshLibraryMetadataErrorsTypedDict, + GetRefreshLibraryMetadataLibraryErrors, + GetRefreshLibraryMetadataLibraryErrorsTypedDict, + GetRefreshLibraryMetadataUnauthorized, + GetRefreshLibraryMetadataUnauthorizedData, + ) + from .get_search_all_libraries import ( + GetSearchAllLibrariesBadRequest, + GetSearchAllLibrariesBadRequestData, + GetSearchAllLibrariesErrors, + GetSearchAllLibrariesErrorsTypedDict, + GetSearchAllLibrariesLibraryErrors, + GetSearchAllLibrariesLibraryErrorsTypedDict, + GetSearchAllLibrariesUnauthorized, + GetSearchAllLibrariesUnauthorizedData, + ) + from .get_search_library import ( + GetSearchLibraryBadRequest, + GetSearchLibraryBadRequestData, + GetSearchLibraryErrors, + GetSearchLibraryErrorsTypedDict, + GetSearchLibraryLibraryErrors, + GetSearchLibraryLibraryErrorsTypedDict, + GetSearchLibraryUnauthorized, + GetSearchLibraryUnauthorizedData, + ) + from .get_server_identity import ( + GetServerIdentityRequestTimeout, + GetServerIdentityRequestTimeoutData, + ) + from .get_server_resources import ( + GetServerResourcesBadRequest, + GetServerResourcesBadRequestData, + GetServerResourcesErrors, + GetServerResourcesErrorsTypedDict, + GetServerResourcesPlexErrors, + GetServerResourcesPlexErrorsTypedDict, + GetServerResourcesUnauthorized, + GetServerResourcesUnauthorizedData, + ) + from .get_thumb_image import ( + GetThumbImageBadRequest, + GetThumbImageBadRequestData, + GetThumbImageErrors, + GetThumbImageErrorsTypedDict, + GetThumbImageMediaErrors, + GetThumbImageMediaErrorsTypedDict, + GetThumbImageUnauthorized, + GetThumbImageUnauthorizedData, + ) + from .get_users import ( + GetUsersBadRequest, + GetUsersBadRequestData, + GetUsersErrors, + GetUsersErrorsTypedDict, + GetUsersUnauthorized, + GetUsersUnauthorizedData, + GetUsersUsersErrors, + GetUsersUsersErrorsTypedDict, + ) + from .get_watch_list import ( + GetWatchListBadRequest, + GetWatchListBadRequestData, + GetWatchListErrors, + GetWatchListErrorsTypedDict, + GetWatchListUnauthorized, + GetWatchListUnauthorizedData, + GetWatchListWatchlistErrors, + GetWatchListWatchlistErrorsTypedDict, + ) + from .getavailableclients import ( + GetAvailableClientsBadRequest, + GetAvailableClientsBadRequestData, + GetAvailableClientsErrors, + GetAvailableClientsErrorsTypedDict, + GetAvailableClientsServerErrors, + GetAvailableClientsServerErrorsTypedDict, + GetAvailableClientsUnauthorized, + GetAvailableClientsUnauthorizedData, + ) + from .getbandwidthstatistics import ( + GetBandwidthStatisticsBadRequest, + GetBandwidthStatisticsBadRequestData, + GetBandwidthStatisticsErrors, + GetBandwidthStatisticsErrorsTypedDict, + GetBandwidthStatisticsStatisticsErrors, + GetBandwidthStatisticsStatisticsErrorsTypedDict, + GetBandwidthStatisticsUnauthorized, + GetBandwidthStatisticsUnauthorizedData, + ) + from .getbutlertasks import ( + GetButlerTasksBadRequest, + GetButlerTasksBadRequestData, + GetButlerTasksButlerErrors, + GetButlerTasksButlerErrorsTypedDict, + GetButlerTasksErrors, + GetButlerTasksErrorsTypedDict, + GetButlerTasksUnauthorized, + GetButlerTasksUnauthorizedData, + ) + from .getcompanionsdata import ( + GetCompanionsDataBadRequest, + GetCompanionsDataBadRequestData, + GetCompanionsDataErrors, + GetCompanionsDataErrorsTypedDict, + GetCompanionsDataPlexErrors, + GetCompanionsDataPlexErrorsTypedDict, + GetCompanionsDataUnauthorized, + GetCompanionsDataUnauthorizedData, + ) + from .getdevices import ( + GetDevicesBadRequest, + GetDevicesBadRequestData, + GetDevicesErrors, + GetDevicesErrorsTypedDict, + GetDevicesServerErrors, + GetDevicesServerErrorsTypedDict, + GetDevicesUnauthorized, + GetDevicesUnauthorizedData, + ) + from .getfilehash import ( + GetFileHashBadRequest, + GetFileHashBadRequestData, + GetFileHashErrors, + GetFileHashErrorsTypedDict, + GetFileHashLibraryErrors, + GetFileHashLibraryErrorsTypedDict, + GetFileHashUnauthorized, + GetFileHashUnauthorizedData, + ) + from .getgeodata import ( + GetGeoDataBadRequest, + GetGeoDataBadRequestData, + GetGeoDataErrors, + GetGeoDataErrorsTypedDict, + GetGeoDataPlexErrors, + GetGeoDataPlexErrorsTypedDict, + GetGeoDataUnauthorized, + GetGeoDataUnauthorizedData, + ) + from .getglobalhubs import ( + GetGlobalHubsBadRequest, + GetGlobalHubsBadRequestData, + GetGlobalHubsErrors, + GetGlobalHubsErrorsTypedDict, + GetGlobalHubsHubsErrors, + GetGlobalHubsHubsErrorsTypedDict, + GetGlobalHubsUnauthorized, + GetGlobalHubsUnauthorizedData, + ) + from .gethomedata import ( + GetHomeDataBadRequest, + GetHomeDataBadRequestData, + GetHomeDataErrors, + GetHomeDataErrorsTypedDict, + GetHomeDataPlexErrors, + GetHomeDataPlexErrorsTypedDict, + GetHomeDataUnauthorized, + GetHomeDataUnauthorizedData, + ) + from .getlibraryhubs import ( + GetLibraryHubsBadRequest, + GetLibraryHubsBadRequestData, + GetLibraryHubsErrors, + GetLibraryHubsErrorsTypedDict, + GetLibraryHubsHubsErrors, + GetLibraryHubsHubsErrorsTypedDict, + GetLibraryHubsUnauthorized, + GetLibraryHubsUnauthorizedData, + ) + from .getmetadatachildren import ( + GetMetadataChildrenBadRequest, + GetMetadataChildrenBadRequestData, + GetMetadataChildrenErrors, + GetMetadataChildrenErrorsTypedDict, + GetMetadataChildrenLibraryErrors, + GetMetadataChildrenLibraryErrorsTypedDict, + GetMetadataChildrenUnauthorized, + GetMetadataChildrenUnauthorizedData, + ) + from .getmyplexaccount import ( + GetMyPlexAccountBadRequest, + GetMyPlexAccountBadRequestData, + GetMyPlexAccountErrors, + GetMyPlexAccountErrorsTypedDict, + GetMyPlexAccountServerErrors, + GetMyPlexAccountServerErrorsTypedDict, + GetMyPlexAccountUnauthorized, + GetMyPlexAccountUnauthorizedData, + ) + from .getpin import ( + GetPinBadRequest, + GetPinBadRequestData, + GetPinErrors, + GetPinErrorsTypedDict, + ) + from .getplaylist import ( + GetPlaylistBadRequest, + GetPlaylistBadRequestData, + GetPlaylistErrors, + GetPlaylistErrorsTypedDict, + GetPlaylistPlaylistsErrors, + GetPlaylistPlaylistsErrorsTypedDict, + GetPlaylistUnauthorized, + GetPlaylistUnauthorizedData, + ) + from .getplaylistcontents import ( + GetPlaylistContentsBadRequest, + GetPlaylistContentsBadRequestData, + GetPlaylistContentsErrors, + GetPlaylistContentsErrorsTypedDict, + GetPlaylistContentsPlaylistsErrors, + GetPlaylistContentsPlaylistsErrorsTypedDict, + GetPlaylistContentsUnauthorized, + GetPlaylistContentsUnauthorizedData, + ) + from .getplaylists import ( + GetPlaylistsBadRequest, + GetPlaylistsBadRequestData, + GetPlaylistsErrors, + GetPlaylistsErrorsTypedDict, + GetPlaylistsPlaylistsErrors, + GetPlaylistsPlaylistsErrorsTypedDict, + GetPlaylistsUnauthorized, + GetPlaylistsUnauthorizedData, + ) + from .getresizedphoto import ( + GetResizedPhotoBadRequest, + GetResizedPhotoBadRequestData, + GetResizedPhotoErrors, + GetResizedPhotoErrorsTypedDict, + GetResizedPhotoServerErrors, + GetResizedPhotoServerErrorsTypedDict, + GetResizedPhotoUnauthorized, + GetResizedPhotoUnauthorizedData, + ) + from .getresourcesstatistics import ( + GetResourcesStatisticsBadRequest, + GetResourcesStatisticsBadRequestData, + GetResourcesStatisticsErrors, + GetResourcesStatisticsErrorsTypedDict, + GetResourcesStatisticsStatisticsErrors, + GetResourcesStatisticsStatisticsErrorsTypedDict, + GetResourcesStatisticsUnauthorized, + GetResourcesStatisticsUnauthorizedData, + ) + from .getsearchresults import ( + GetSearchResultsBadRequest, + GetSearchResultsBadRequestData, + GetSearchResultsErrors, + GetSearchResultsErrorsTypedDict, + GetSearchResultsSearchErrors, + GetSearchResultsSearchErrorsTypedDict, + GetSearchResultsUnauthorized, + GetSearchResultsUnauthorizedData, + ) + from .getserveractivities import ( + GetServerActivitiesActivitiesErrors, + GetServerActivitiesActivitiesErrorsTypedDict, + GetServerActivitiesBadRequest, + GetServerActivitiesBadRequestData, + GetServerActivitiesErrors, + GetServerActivitiesErrorsTypedDict, + GetServerActivitiesUnauthorized, + GetServerActivitiesUnauthorizedData, + ) + from .getservercapabilities import ( + Errors, + ErrorsTypedDict, + GetServerCapabilitiesBadRequest, + GetServerCapabilitiesBadRequestData, + GetServerCapabilitiesErrors, + GetServerCapabilitiesErrorsTypedDict, + GetServerCapabilitiesUnauthorized, + GetServerCapabilitiesUnauthorizedData, + ) + from .getserverlist import ( + GetServerListBadRequest, + GetServerListBadRequestData, + GetServerListErrors, + GetServerListErrorsTypedDict, + GetServerListServerErrors, + GetServerListServerErrorsTypedDict, + GetServerListUnauthorized, + GetServerListUnauthorizedData, + ) + from .getserverpreferences import ( + GetServerPreferencesBadRequest, + GetServerPreferencesBadRequestData, + GetServerPreferencesErrors, + GetServerPreferencesErrorsTypedDict, + GetServerPreferencesServerErrors, + GetServerPreferencesServerErrorsTypedDict, + GetServerPreferencesUnauthorized, + GetServerPreferencesUnauthorizedData, + ) + from .getsessionhistory import ( + GetSessionHistoryBadRequest, + GetSessionHistoryBadRequestData, + GetSessionHistoryErrors, + GetSessionHistoryErrorsTypedDict, + GetSessionHistorySessionsErrors, + GetSessionHistorySessionsErrorsTypedDict, + GetSessionHistoryUnauthorized, + GetSessionHistoryUnauthorizedData, + ) + from .getsessions import ( + GetSessionsBadRequest, + GetSessionsBadRequestData, + GetSessionsErrors, + GetSessionsErrorsTypedDict, + GetSessionsSessionsErrors, + GetSessionsSessionsErrorsTypedDict, + GetSessionsUnauthorized, + GetSessionsUnauthorizedData, + ) + from .getsourceconnectioninformation import ( + GetSourceConnectionInformationAuthenticationErrors, + GetSourceConnectionInformationAuthenticationErrorsTypedDict, + GetSourceConnectionInformationBadRequest, + GetSourceConnectionInformationBadRequestData, + GetSourceConnectionInformationErrors, + GetSourceConnectionInformationErrorsTypedDict, + GetSourceConnectionInformationUnauthorized, + GetSourceConnectionInformationUnauthorizedData, + ) + from .getstatistics import ( + GetStatisticsBadRequest, + GetStatisticsBadRequestData, + GetStatisticsErrors, + GetStatisticsErrorsTypedDict, + GetStatisticsStatisticsErrors, + GetStatisticsStatisticsErrorsTypedDict, + GetStatisticsUnauthorized, + GetStatisticsUnauthorizedData, + ) + from .gettimeline import ( + GetTimelineBadRequest, + GetTimelineBadRequestData, + GetTimelineErrors, + GetTimelineErrorsTypedDict, + GetTimelineUnauthorized, + GetTimelineUnauthorizedData, + GetTimelineVideoErrors, + GetTimelineVideoErrorsTypedDict, + ) + from .gettokenbypinid import ( + GetTokenByPinIDBadRequest, + GetTokenByPinIDBadRequestData, + GetTokenByPinIDErrors, + GetTokenByPinIDErrorsTypedDict, + GetTokenByPinIDPlexErrors, + GetTokenByPinIDPlexErrorsTypedDict, + GetTokenByPinIDResponseBody, + GetTokenByPinIDResponseBodyData, + ) + from .gettokendetails import ( + GetTokenDetailsAuthenticationErrors, + GetTokenDetailsAuthenticationErrorsTypedDict, + GetTokenDetailsBadRequest, + GetTokenDetailsBadRequestData, + GetTokenDetailsErrors, + GetTokenDetailsErrorsTypedDict, + GetTokenDetailsUnauthorized, + GetTokenDetailsUnauthorizedData, + ) + from .gettopwatchedcontent import ( + GetTopWatchedContentBadRequest, + GetTopWatchedContentBadRequestData, + GetTopWatchedContentErrors, + GetTopWatchedContentErrorsTypedDict, + GetTopWatchedContentLibraryErrors, + GetTopWatchedContentLibraryErrorsTypedDict, + GetTopWatchedContentUnauthorized, + GetTopWatchedContentUnauthorizedData, + ) + from .gettranscodesessions import ( + GetTranscodeSessionsBadRequest, + GetTranscodeSessionsBadRequestData, + GetTranscodeSessionsErrors, + GetTranscodeSessionsErrorsTypedDict, + GetTranscodeSessionsSessionsErrors, + GetTranscodeSessionsSessionsErrorsTypedDict, + GetTranscodeSessionsUnauthorized, + GetTranscodeSessionsUnauthorizedData, + ) + from .gettransienttoken import ( + GetTransientTokenAuthenticationErrors, + GetTransientTokenAuthenticationErrorsTypedDict, + GetTransientTokenBadRequest, + GetTransientTokenBadRequestData, + GetTransientTokenErrors, + GetTransientTokenErrorsTypedDict, + GetTransientTokenUnauthorized, + GetTransientTokenUnauthorizedData, + ) + from .getupdatestatus import ( + GetUpdateStatusBadRequest, + GetUpdateStatusBadRequestData, + GetUpdateStatusErrors, + GetUpdateStatusErrorsTypedDict, + GetUpdateStatusUnauthorized, + GetUpdateStatusUnauthorizedData, + GetUpdateStatusUpdaterErrors, + GetUpdateStatusUpdaterErrorsTypedDict, + ) + from .getuserfriends import ( + GetUserFriendsBadRequest, + GetUserFriendsBadRequestData, + GetUserFriendsErrors, + GetUserFriendsErrorsTypedDict, + GetUserFriendsPlexErrors, + GetUserFriendsPlexErrorsTypedDict, + GetUserFriendsUnauthorized, + GetUserFriendsUnauthorizedData, + ) + from .logline import ( + LogLineBadRequest, + LogLineBadRequestData, + LogLineErrors, + LogLineErrorsTypedDict, + LogLineLogErrors, + LogLineLogErrorsTypedDict, + LogLineUnauthorized, + LogLineUnauthorizedData, + ) + from .logmultiline import ( + LogMultiLineBadRequest, + LogMultiLineBadRequestData, + LogMultiLineErrors, + LogMultiLineErrorsTypedDict, + LogMultiLineLogErrors, + LogMultiLineLogErrorsTypedDict, + LogMultiLineUnauthorized, + LogMultiLineUnauthorizedData, + ) + from .markplayed import ( + MarkPlayedBadRequest, + MarkPlayedBadRequestData, + MarkPlayedErrors, + MarkPlayedErrorsTypedDict, + MarkPlayedMediaErrors, + MarkPlayedMediaErrorsTypedDict, + MarkPlayedUnauthorized, + MarkPlayedUnauthorizedData, + ) + from .markunplayed import ( + MarkUnplayedBadRequest, + MarkUnplayedBadRequestData, + MarkUnplayedErrors, + MarkUnplayedErrorsTypedDict, + MarkUnplayedMediaErrors, + MarkUnplayedMediaErrorsTypedDict, + MarkUnplayedUnauthorized, + MarkUnplayedUnauthorizedData, + ) + from .performsearch import ( + PerformSearchBadRequest, + PerformSearchBadRequestData, + PerformSearchErrors, + PerformSearchErrorsTypedDict, + PerformSearchSearchErrors, + PerformSearchSearchErrorsTypedDict, + PerformSearchUnauthorized, + PerformSearchUnauthorizedData, + ) + from .performvoicesearch import ( + PerformVoiceSearchBadRequest, + PerformVoiceSearchBadRequestData, + PerformVoiceSearchErrors, + PerformVoiceSearchErrorsTypedDict, + PerformVoiceSearchSearchErrors, + PerformVoiceSearchSearchErrorsTypedDict, + PerformVoiceSearchUnauthorized, + PerformVoiceSearchUnauthorizedData, + ) + from .post_users_sign_in_data import ( + PostUsersSignInDataAuthenticationErrors, + PostUsersSignInDataAuthenticationErrorsTypedDict, + PostUsersSignInDataBadRequest, + PostUsersSignInDataBadRequestData, + PostUsersSignInDataErrors, + PostUsersSignInDataErrorsTypedDict, + PostUsersSignInDataUnauthorized, + PostUsersSignInDataUnauthorizedData, + ) + from .sdkerror import SDKError + from .startalltasks import ( + StartAllTasksBadRequest, + StartAllTasksBadRequestData, + StartAllTasksButlerErrors, + StartAllTasksButlerErrorsTypedDict, + StartAllTasksErrors, + StartAllTasksErrorsTypedDict, + StartAllTasksUnauthorized, + StartAllTasksUnauthorizedData, + ) + from .starttask import ( + StartTaskBadRequest, + StartTaskBadRequestData, + StartTaskButlerErrors, + StartTaskButlerErrorsTypedDict, + StartTaskErrors, + StartTaskErrorsTypedDict, + StartTaskUnauthorized, + StartTaskUnauthorizedData, + ) + from .startuniversaltranscode import ( + StartUniversalTranscodeBadRequest, + StartUniversalTranscodeBadRequestData, + StartUniversalTranscodeErrors, + StartUniversalTranscodeErrorsTypedDict, + StartUniversalTranscodeUnauthorized, + StartUniversalTranscodeUnauthorizedData, + StartUniversalTranscodeVideoErrors, + StartUniversalTranscodeVideoErrorsTypedDict, + ) + from .stopalltasks import ( + StopAllTasksBadRequest, + StopAllTasksBadRequestData, + StopAllTasksButlerErrors, + StopAllTasksButlerErrorsTypedDict, + StopAllTasksErrors, + StopAllTasksErrorsTypedDict, + StopAllTasksUnauthorized, + StopAllTasksUnauthorizedData, + ) + from .stoptask import ( + StopTaskBadRequest, + StopTaskBadRequestData, + StopTaskButlerErrors, + StopTaskButlerErrorsTypedDict, + StopTaskErrors, + StopTaskErrorsTypedDict, + StopTaskUnauthorized, + StopTaskUnauthorizedData, + ) + from .stoptranscodesession import ( + StopTranscodeSessionBadRequest, + StopTranscodeSessionBadRequestData, + StopTranscodeSessionErrors, + StopTranscodeSessionErrorsTypedDict, + StopTranscodeSessionSessionsErrors, + StopTranscodeSessionSessionsErrorsTypedDict, + StopTranscodeSessionUnauthorized, + StopTranscodeSessionUnauthorizedData, + ) + from .updateplaylist import ( + UpdatePlaylistBadRequest, + UpdatePlaylistBadRequestData, + UpdatePlaylistErrors, + UpdatePlaylistErrorsTypedDict, + UpdatePlaylistPlaylistsErrors, + UpdatePlaylistPlaylistsErrorsTypedDict, + UpdatePlaylistUnauthorized, + UpdatePlaylistUnauthorizedData, + ) + from .updateplayprogress import ( + UpdatePlayProgressBadRequest, + UpdatePlayProgressBadRequestData, + UpdatePlayProgressErrors, + UpdatePlayProgressErrorsTypedDict, + UpdatePlayProgressMediaErrors, + UpdatePlayProgressMediaErrorsTypedDict, + UpdatePlayProgressUnauthorized, + UpdatePlayProgressUnauthorizedData, + ) + from .uploadplaylist import ( + UploadPlaylistBadRequest, + UploadPlaylistBadRequestData, + UploadPlaylistErrors, + UploadPlaylistErrorsTypedDict, + UploadPlaylistPlaylistsErrors, + UploadPlaylistPlaylistsErrorsTypedDict, + UploadPlaylistUnauthorized, + UploadPlaylistUnauthorizedData, + ) __all__ = [ "AddPlaylistContentsBadRequest", @@ -1408,3 +1411,655 @@ __all__ = [ "UploadPlaylistUnauthorized", "UploadPlaylistUnauthorizedData", ] + +_dynamic_imports: dict[str, str] = { + "AddPlaylistContentsBadRequest": ".addplaylistcontents", + "AddPlaylistContentsBadRequestData": ".addplaylistcontents", + "AddPlaylistContentsErrors": ".addplaylistcontents", + "AddPlaylistContentsErrorsTypedDict": ".addplaylistcontents", + "AddPlaylistContentsPlaylistsErrors": ".addplaylistcontents", + "AddPlaylistContentsPlaylistsErrorsTypedDict": ".addplaylistcontents", + "AddPlaylistContentsUnauthorized": ".addplaylistcontents", + "AddPlaylistContentsUnauthorizedData": ".addplaylistcontents", + "ApplyUpdatesBadRequest": ".applyupdates", + "ApplyUpdatesBadRequestData": ".applyupdates", + "ApplyUpdatesErrors": ".applyupdates", + "ApplyUpdatesErrorsTypedDict": ".applyupdates", + "ApplyUpdatesUnauthorized": ".applyupdates", + "ApplyUpdatesUnauthorizedData": ".applyupdates", + "ApplyUpdatesUpdaterErrors": ".applyupdates", + "ApplyUpdatesUpdaterErrorsTypedDict": ".applyupdates", + "CancelServerActivitiesActivitiesErrors": ".cancelserveractivities", + "CancelServerActivitiesActivitiesErrorsTypedDict": ".cancelserveractivities", + "CancelServerActivitiesBadRequest": ".cancelserveractivities", + "CancelServerActivitiesBadRequestData": ".cancelserveractivities", + "CancelServerActivitiesErrors": ".cancelserveractivities", + "CancelServerActivitiesErrorsTypedDict": ".cancelserveractivities", + "CancelServerActivitiesUnauthorized": ".cancelserveractivities", + "CancelServerActivitiesUnauthorizedData": ".cancelserveractivities", + "CheckForUpdatesBadRequest": ".checkforupdates", + "CheckForUpdatesBadRequestData": ".checkforupdates", + "CheckForUpdatesErrors": ".checkforupdates", + "CheckForUpdatesErrorsTypedDict": ".checkforupdates", + "CheckForUpdatesUnauthorized": ".checkforupdates", + "CheckForUpdatesUnauthorizedData": ".checkforupdates", + "CheckForUpdatesUpdaterErrors": ".checkforupdates", + "CheckForUpdatesUpdaterErrorsTypedDict": ".checkforupdates", + "ClearPlaylistContentsBadRequest": ".clearplaylistcontents", + "ClearPlaylistContentsBadRequestData": ".clearplaylistcontents", + "ClearPlaylistContentsErrors": ".clearplaylistcontents", + "ClearPlaylistContentsErrorsTypedDict": ".clearplaylistcontents", + "ClearPlaylistContentsPlaylistsErrors": ".clearplaylistcontents", + "ClearPlaylistContentsPlaylistsErrorsTypedDict": ".clearplaylistcontents", + "ClearPlaylistContentsUnauthorized": ".clearplaylistcontents", + "ClearPlaylistContentsUnauthorizedData": ".clearplaylistcontents", + "CreatePlaylistBadRequest": ".createplaylist", + "CreatePlaylistBadRequestData": ".createplaylist", + "CreatePlaylistErrors": ".createplaylist", + "CreatePlaylistErrorsTypedDict": ".createplaylist", + "CreatePlaylistPlaylistsErrors": ".createplaylist", + "CreatePlaylistPlaylistsErrorsTypedDict": ".createplaylist", + "CreatePlaylistUnauthorized": ".createplaylist", + "CreatePlaylistUnauthorizedData": ".createplaylist", + "DeleteLibraryBadRequest": ".deletelibrary", + "DeleteLibraryBadRequestData": ".deletelibrary", + "DeleteLibraryErrors": ".deletelibrary", + "DeleteLibraryErrorsTypedDict": ".deletelibrary", + "DeleteLibraryLibraryErrors": ".deletelibrary", + "DeleteLibraryLibraryErrorsTypedDict": ".deletelibrary", + "DeleteLibraryUnauthorized": ".deletelibrary", + "DeleteLibraryUnauthorizedData": ".deletelibrary", + "DeletePlaylistBadRequest": ".deleteplaylist", + "DeletePlaylistBadRequestData": ".deleteplaylist", + "DeletePlaylistErrors": ".deleteplaylist", + "DeletePlaylistErrorsTypedDict": ".deleteplaylist", + "DeletePlaylistPlaylistsErrors": ".deleteplaylist", + "DeletePlaylistPlaylistsErrorsTypedDict": ".deleteplaylist", + "DeletePlaylistUnauthorized": ".deleteplaylist", + "DeletePlaylistUnauthorizedData": ".deleteplaylist", + "EnablePaperTrailBadRequest": ".enablepapertrail", + "EnablePaperTrailBadRequestData": ".enablepapertrail", + "EnablePaperTrailErrors": ".enablepapertrail", + "EnablePaperTrailErrorsTypedDict": ".enablepapertrail", + "EnablePaperTrailLogErrors": ".enablepapertrail", + "EnablePaperTrailLogErrorsTypedDict": ".enablepapertrail", + "EnablePaperTrailUnauthorized": ".enablepapertrail", + "EnablePaperTrailUnauthorizedData": ".enablepapertrail", + "GetActorsLibraryBadRequest": ".get_actors_library", + "GetActorsLibraryBadRequestData": ".get_actors_library", + "GetActorsLibraryErrors": ".get_actors_library", + "GetActorsLibraryErrorsTypedDict": ".get_actors_library", + "GetActorsLibraryLibraryErrors": ".get_actors_library", + "GetActorsLibraryLibraryErrorsTypedDict": ".get_actors_library", + "GetActorsLibraryUnauthorized": ".get_actors_library", + "GetActorsLibraryUnauthorizedData": ".get_actors_library", + "GetAllLibrariesBadRequest": ".get_all_libraries", + "GetAllLibrariesBadRequestData": ".get_all_libraries", + "GetAllLibrariesErrors": ".get_all_libraries", + "GetAllLibrariesErrorsTypedDict": ".get_all_libraries", + "GetAllLibrariesLibraryErrors": ".get_all_libraries", + "GetAllLibrariesLibraryErrorsTypedDict": ".get_all_libraries", + "GetAllLibrariesUnauthorized": ".get_all_libraries", + "GetAllLibrariesUnauthorizedData": ".get_all_libraries", + "GetAllMediaLibraryBadRequest": ".get_all_media_library", + "GetAllMediaLibraryBadRequestData": ".get_all_media_library", + "GetAllMediaLibraryErrors": ".get_all_media_library", + "GetAllMediaLibraryErrorsTypedDict": ".get_all_media_library", + "GetAllMediaLibraryLibraryErrors": ".get_all_media_library", + "GetAllMediaLibraryLibraryErrorsTypedDict": ".get_all_media_library", + "GetAllMediaLibraryUnauthorized": ".get_all_media_library", + "GetAllMediaLibraryUnauthorizedData": ".get_all_media_library", + "GetBannerImageBadRequest": ".get_banner_image", + "GetBannerImageBadRequestData": ".get_banner_image", + "GetBannerImageErrors": ".get_banner_image", + "GetBannerImageErrorsTypedDict": ".get_banner_image", + "GetBannerImageMediaErrors": ".get_banner_image", + "GetBannerImageMediaErrorsTypedDict": ".get_banner_image", + "GetBannerImageUnauthorized": ".get_banner_image", + "GetBannerImageUnauthorizedData": ".get_banner_image", + "GetCountriesLibraryBadRequest": ".get_countries_library", + "GetCountriesLibraryBadRequestData": ".get_countries_library", + "GetCountriesLibraryErrors": ".get_countries_library", + "GetCountriesLibraryErrorsTypedDict": ".get_countries_library", + "GetCountriesLibraryLibraryErrors": ".get_countries_library", + "GetCountriesLibraryLibraryErrorsTypedDict": ".get_countries_library", + "GetCountriesLibraryUnauthorized": ".get_countries_library", + "GetCountriesLibraryUnauthorizedData": ".get_countries_library", + "GetGenresLibraryBadRequest": ".get_genres_library", + "GetGenresLibraryBadRequestData": ".get_genres_library", + "GetGenresLibraryErrors": ".get_genres_library", + "GetGenresLibraryErrorsTypedDict": ".get_genres_library", + "GetGenresLibraryLibraryErrors": ".get_genres_library", + "GetGenresLibraryLibraryErrorsTypedDict": ".get_genres_library", + "GetGenresLibraryUnauthorized": ".get_genres_library", + "GetGenresLibraryUnauthorizedData": ".get_genres_library", + "GetLibraryDetailsBadRequest": ".get_library_details", + "GetLibraryDetailsBadRequestData": ".get_library_details", + "GetLibraryDetailsErrors": ".get_library_details", + "GetLibraryDetailsErrorsTypedDict": ".get_library_details", + "GetLibraryDetailsLibraryErrors": ".get_library_details", + "GetLibraryDetailsLibraryErrorsTypedDict": ".get_library_details", + "GetLibraryDetailsUnauthorized": ".get_library_details", + "GetLibraryDetailsUnauthorizedData": ".get_library_details", + "GetLibraryItemsBadRequest": ".get_library_items", + "GetLibraryItemsBadRequestData": ".get_library_items", + "GetLibraryItemsErrors": ".get_library_items", + "GetLibraryItemsErrorsTypedDict": ".get_library_items", + "GetLibraryItemsLibraryErrors": ".get_library_items", + "GetLibraryItemsLibraryErrorsTypedDict": ".get_library_items", + "GetLibraryItemsUnauthorized": ".get_library_items", + "GetLibraryItemsUnauthorizedData": ".get_library_items", + "GetMediaMetaDataBadRequest": ".get_media_meta_data", + "GetMediaMetaDataBadRequestData": ".get_media_meta_data", + "GetMediaMetaDataErrors": ".get_media_meta_data", + "GetMediaMetaDataErrorsTypedDict": ".get_media_meta_data", + "GetMediaMetaDataLibraryErrors": ".get_media_meta_data", + "GetMediaMetaDataLibraryErrorsTypedDict": ".get_media_meta_data", + "GetMediaMetaDataUnauthorized": ".get_media_meta_data", + "GetMediaMetaDataUnauthorizedData": ".get_media_meta_data", + "GetMediaProvidersBadRequest": ".get_media_providers", + "GetMediaProvidersBadRequestData": ".get_media_providers", + "GetMediaProvidersErrors": ".get_media_providers", + "GetMediaProvidersErrorsTypedDict": ".get_media_providers", + "GetMediaProvidersServerErrors": ".get_media_providers", + "GetMediaProvidersServerErrorsTypedDict": ".get_media_providers", + "GetMediaProvidersUnauthorized": ".get_media_providers", + "GetMediaProvidersUnauthorizedData": ".get_media_providers", + "GetRecentlyAddedLibraryBadRequest": ".get_recently_added_library", + "GetRecentlyAddedLibraryBadRequestData": ".get_recently_added_library", + "GetRecentlyAddedLibraryErrors": ".get_recently_added_library", + "GetRecentlyAddedLibraryErrorsTypedDict": ".get_recently_added_library", + "GetRecentlyAddedLibraryLibraryErrors": ".get_recently_added_library", + "GetRecentlyAddedLibraryLibraryErrorsTypedDict": ".get_recently_added_library", + "GetRecentlyAddedLibraryUnauthorized": ".get_recently_added_library", + "GetRecentlyAddedLibraryUnauthorizedData": ".get_recently_added_library", + "GetRefreshLibraryMetadataBadRequest": ".get_refresh_library_metadata", + "GetRefreshLibraryMetadataBadRequestData": ".get_refresh_library_metadata", + "GetRefreshLibraryMetadataErrors": ".get_refresh_library_metadata", + "GetRefreshLibraryMetadataErrorsTypedDict": ".get_refresh_library_metadata", + "GetRefreshLibraryMetadataLibraryErrors": ".get_refresh_library_metadata", + "GetRefreshLibraryMetadataLibraryErrorsTypedDict": ".get_refresh_library_metadata", + "GetRefreshLibraryMetadataUnauthorized": ".get_refresh_library_metadata", + "GetRefreshLibraryMetadataUnauthorizedData": ".get_refresh_library_metadata", + "GetSearchAllLibrariesBadRequest": ".get_search_all_libraries", + "GetSearchAllLibrariesBadRequestData": ".get_search_all_libraries", + "GetSearchAllLibrariesErrors": ".get_search_all_libraries", + "GetSearchAllLibrariesErrorsTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesLibraryErrors": ".get_search_all_libraries", + "GetSearchAllLibrariesLibraryErrorsTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesUnauthorized": ".get_search_all_libraries", + "GetSearchAllLibrariesUnauthorizedData": ".get_search_all_libraries", + "GetSearchLibraryBadRequest": ".get_search_library", + "GetSearchLibraryBadRequestData": ".get_search_library", + "GetSearchLibraryErrors": ".get_search_library", + "GetSearchLibraryErrorsTypedDict": ".get_search_library", + "GetSearchLibraryLibraryErrors": ".get_search_library", + "GetSearchLibraryLibraryErrorsTypedDict": ".get_search_library", + "GetSearchLibraryUnauthorized": ".get_search_library", + "GetSearchLibraryUnauthorizedData": ".get_search_library", + "GetServerIdentityRequestTimeout": ".get_server_identity", + "GetServerIdentityRequestTimeoutData": ".get_server_identity", + "GetServerResourcesBadRequest": ".get_server_resources", + "GetServerResourcesBadRequestData": ".get_server_resources", + "GetServerResourcesErrors": ".get_server_resources", + "GetServerResourcesErrorsTypedDict": ".get_server_resources", + "GetServerResourcesPlexErrors": ".get_server_resources", + "GetServerResourcesPlexErrorsTypedDict": ".get_server_resources", + "GetServerResourcesUnauthorized": ".get_server_resources", + "GetServerResourcesUnauthorizedData": ".get_server_resources", + "GetThumbImageBadRequest": ".get_thumb_image", + "GetThumbImageBadRequestData": ".get_thumb_image", + "GetThumbImageErrors": ".get_thumb_image", + "GetThumbImageErrorsTypedDict": ".get_thumb_image", + "GetThumbImageMediaErrors": ".get_thumb_image", + "GetThumbImageMediaErrorsTypedDict": ".get_thumb_image", + "GetThumbImageUnauthorized": ".get_thumb_image", + "GetThumbImageUnauthorizedData": ".get_thumb_image", + "GetUsersBadRequest": ".get_users", + "GetUsersBadRequestData": ".get_users", + "GetUsersErrors": ".get_users", + "GetUsersErrorsTypedDict": ".get_users", + "GetUsersUnauthorized": ".get_users", + "GetUsersUnauthorizedData": ".get_users", + "GetUsersUsersErrors": ".get_users", + "GetUsersUsersErrorsTypedDict": ".get_users", + "GetWatchListBadRequest": ".get_watch_list", + "GetWatchListBadRequestData": ".get_watch_list", + "GetWatchListErrors": ".get_watch_list", + "GetWatchListErrorsTypedDict": ".get_watch_list", + "GetWatchListUnauthorized": ".get_watch_list", + "GetWatchListUnauthorizedData": ".get_watch_list", + "GetWatchListWatchlistErrors": ".get_watch_list", + "GetWatchListWatchlistErrorsTypedDict": ".get_watch_list", + "GetAvailableClientsBadRequest": ".getavailableclients", + "GetAvailableClientsBadRequestData": ".getavailableclients", + "GetAvailableClientsErrors": ".getavailableclients", + "GetAvailableClientsErrorsTypedDict": ".getavailableclients", + "GetAvailableClientsServerErrors": ".getavailableclients", + "GetAvailableClientsServerErrorsTypedDict": ".getavailableclients", + "GetAvailableClientsUnauthorized": ".getavailableclients", + "GetAvailableClientsUnauthorizedData": ".getavailableclients", + "GetBandwidthStatisticsBadRequest": ".getbandwidthstatistics", + "GetBandwidthStatisticsBadRequestData": ".getbandwidthstatistics", + "GetBandwidthStatisticsErrors": ".getbandwidthstatistics", + "GetBandwidthStatisticsErrorsTypedDict": ".getbandwidthstatistics", + "GetBandwidthStatisticsStatisticsErrors": ".getbandwidthstatistics", + "GetBandwidthStatisticsStatisticsErrorsTypedDict": ".getbandwidthstatistics", + "GetBandwidthStatisticsUnauthorized": ".getbandwidthstatistics", + "GetBandwidthStatisticsUnauthorizedData": ".getbandwidthstatistics", + "GetButlerTasksBadRequest": ".getbutlertasks", + "GetButlerTasksBadRequestData": ".getbutlertasks", + "GetButlerTasksButlerErrors": ".getbutlertasks", + "GetButlerTasksButlerErrorsTypedDict": ".getbutlertasks", + "GetButlerTasksErrors": ".getbutlertasks", + "GetButlerTasksErrorsTypedDict": ".getbutlertasks", + "GetButlerTasksUnauthorized": ".getbutlertasks", + "GetButlerTasksUnauthorizedData": ".getbutlertasks", + "GetCompanionsDataBadRequest": ".getcompanionsdata", + "GetCompanionsDataBadRequestData": ".getcompanionsdata", + "GetCompanionsDataErrors": ".getcompanionsdata", + "GetCompanionsDataErrorsTypedDict": ".getcompanionsdata", + "GetCompanionsDataPlexErrors": ".getcompanionsdata", + "GetCompanionsDataPlexErrorsTypedDict": ".getcompanionsdata", + "GetCompanionsDataUnauthorized": ".getcompanionsdata", + "GetCompanionsDataUnauthorizedData": ".getcompanionsdata", + "GetDevicesBadRequest": ".getdevices", + "GetDevicesBadRequestData": ".getdevices", + "GetDevicesErrors": ".getdevices", + "GetDevicesErrorsTypedDict": ".getdevices", + "GetDevicesServerErrors": ".getdevices", + "GetDevicesServerErrorsTypedDict": ".getdevices", + "GetDevicesUnauthorized": ".getdevices", + "GetDevicesUnauthorizedData": ".getdevices", + "GetFileHashBadRequest": ".getfilehash", + "GetFileHashBadRequestData": ".getfilehash", + "GetFileHashErrors": ".getfilehash", + "GetFileHashErrorsTypedDict": ".getfilehash", + "GetFileHashLibraryErrors": ".getfilehash", + "GetFileHashLibraryErrorsTypedDict": ".getfilehash", + "GetFileHashUnauthorized": ".getfilehash", + "GetFileHashUnauthorizedData": ".getfilehash", + "GetGeoDataBadRequest": ".getgeodata", + "GetGeoDataBadRequestData": ".getgeodata", + "GetGeoDataErrors": ".getgeodata", + "GetGeoDataErrorsTypedDict": ".getgeodata", + "GetGeoDataPlexErrors": ".getgeodata", + "GetGeoDataPlexErrorsTypedDict": ".getgeodata", + "GetGeoDataUnauthorized": ".getgeodata", + "GetGeoDataUnauthorizedData": ".getgeodata", + "GetGlobalHubsBadRequest": ".getglobalhubs", + "GetGlobalHubsBadRequestData": ".getglobalhubs", + "GetGlobalHubsErrors": ".getglobalhubs", + "GetGlobalHubsErrorsTypedDict": ".getglobalhubs", + "GetGlobalHubsHubsErrors": ".getglobalhubs", + "GetGlobalHubsHubsErrorsTypedDict": ".getglobalhubs", + "GetGlobalHubsUnauthorized": ".getglobalhubs", + "GetGlobalHubsUnauthorizedData": ".getglobalhubs", + "GetHomeDataBadRequest": ".gethomedata", + "GetHomeDataBadRequestData": ".gethomedata", + "GetHomeDataErrors": ".gethomedata", + "GetHomeDataErrorsTypedDict": ".gethomedata", + "GetHomeDataPlexErrors": ".gethomedata", + "GetHomeDataPlexErrorsTypedDict": ".gethomedata", + "GetHomeDataUnauthorized": ".gethomedata", + "GetHomeDataUnauthorizedData": ".gethomedata", + "GetLibraryHubsBadRequest": ".getlibraryhubs", + "GetLibraryHubsBadRequestData": ".getlibraryhubs", + "GetLibraryHubsErrors": ".getlibraryhubs", + "GetLibraryHubsErrorsTypedDict": ".getlibraryhubs", + "GetLibraryHubsHubsErrors": ".getlibraryhubs", + "GetLibraryHubsHubsErrorsTypedDict": ".getlibraryhubs", + "GetLibraryHubsUnauthorized": ".getlibraryhubs", + "GetLibraryHubsUnauthorizedData": ".getlibraryhubs", + "GetMetadataChildrenBadRequest": ".getmetadatachildren", + "GetMetadataChildrenBadRequestData": ".getmetadatachildren", + "GetMetadataChildrenErrors": ".getmetadatachildren", + "GetMetadataChildrenErrorsTypedDict": ".getmetadatachildren", + "GetMetadataChildrenLibraryErrors": ".getmetadatachildren", + "GetMetadataChildrenLibraryErrorsTypedDict": ".getmetadatachildren", + "GetMetadataChildrenUnauthorized": ".getmetadatachildren", + "GetMetadataChildrenUnauthorizedData": ".getmetadatachildren", + "GetMyPlexAccountBadRequest": ".getmyplexaccount", + "GetMyPlexAccountBadRequestData": ".getmyplexaccount", + "GetMyPlexAccountErrors": ".getmyplexaccount", + "GetMyPlexAccountErrorsTypedDict": ".getmyplexaccount", + "GetMyPlexAccountServerErrors": ".getmyplexaccount", + "GetMyPlexAccountServerErrorsTypedDict": ".getmyplexaccount", + "GetMyPlexAccountUnauthorized": ".getmyplexaccount", + "GetMyPlexAccountUnauthorizedData": ".getmyplexaccount", + "GetPinBadRequest": ".getpin", + "GetPinBadRequestData": ".getpin", + "GetPinErrors": ".getpin", + "GetPinErrorsTypedDict": ".getpin", + "GetPlaylistBadRequest": ".getplaylist", + "GetPlaylistBadRequestData": ".getplaylist", + "GetPlaylistErrors": ".getplaylist", + "GetPlaylistErrorsTypedDict": ".getplaylist", + "GetPlaylistPlaylistsErrors": ".getplaylist", + "GetPlaylistPlaylistsErrorsTypedDict": ".getplaylist", + "GetPlaylistUnauthorized": ".getplaylist", + "GetPlaylistUnauthorizedData": ".getplaylist", + "GetPlaylistContentsBadRequest": ".getplaylistcontents", + "GetPlaylistContentsBadRequestData": ".getplaylistcontents", + "GetPlaylistContentsErrors": ".getplaylistcontents", + "GetPlaylistContentsErrorsTypedDict": ".getplaylistcontents", + "GetPlaylistContentsPlaylistsErrors": ".getplaylistcontents", + "GetPlaylistContentsPlaylistsErrorsTypedDict": ".getplaylistcontents", + "GetPlaylistContentsUnauthorized": ".getplaylistcontents", + "GetPlaylistContentsUnauthorizedData": ".getplaylistcontents", + "GetPlaylistsBadRequest": ".getplaylists", + "GetPlaylistsBadRequestData": ".getplaylists", + "GetPlaylistsErrors": ".getplaylists", + "GetPlaylistsErrorsTypedDict": ".getplaylists", + "GetPlaylistsPlaylistsErrors": ".getplaylists", + "GetPlaylistsPlaylistsErrorsTypedDict": ".getplaylists", + "GetPlaylistsUnauthorized": ".getplaylists", + "GetPlaylistsUnauthorizedData": ".getplaylists", + "GetResizedPhotoBadRequest": ".getresizedphoto", + "GetResizedPhotoBadRequestData": ".getresizedphoto", + "GetResizedPhotoErrors": ".getresizedphoto", + "GetResizedPhotoErrorsTypedDict": ".getresizedphoto", + "GetResizedPhotoServerErrors": ".getresizedphoto", + "GetResizedPhotoServerErrorsTypedDict": ".getresizedphoto", + "GetResizedPhotoUnauthorized": ".getresizedphoto", + "GetResizedPhotoUnauthorizedData": ".getresizedphoto", + "GetResourcesStatisticsBadRequest": ".getresourcesstatistics", + "GetResourcesStatisticsBadRequestData": ".getresourcesstatistics", + "GetResourcesStatisticsErrors": ".getresourcesstatistics", + "GetResourcesStatisticsErrorsTypedDict": ".getresourcesstatistics", + "GetResourcesStatisticsStatisticsErrors": ".getresourcesstatistics", + "GetResourcesStatisticsStatisticsErrorsTypedDict": ".getresourcesstatistics", + "GetResourcesStatisticsUnauthorized": ".getresourcesstatistics", + "GetResourcesStatisticsUnauthorizedData": ".getresourcesstatistics", + "GetSearchResultsBadRequest": ".getsearchresults", + "GetSearchResultsBadRequestData": ".getsearchresults", + "GetSearchResultsErrors": ".getsearchresults", + "GetSearchResultsErrorsTypedDict": ".getsearchresults", + "GetSearchResultsSearchErrors": ".getsearchresults", + "GetSearchResultsSearchErrorsTypedDict": ".getsearchresults", + "GetSearchResultsUnauthorized": ".getsearchresults", + "GetSearchResultsUnauthorizedData": ".getsearchresults", + "GetServerActivitiesActivitiesErrors": ".getserveractivities", + "GetServerActivitiesActivitiesErrorsTypedDict": ".getserveractivities", + "GetServerActivitiesBadRequest": ".getserveractivities", + "GetServerActivitiesBadRequestData": ".getserveractivities", + "GetServerActivitiesErrors": ".getserveractivities", + "GetServerActivitiesErrorsTypedDict": ".getserveractivities", + "GetServerActivitiesUnauthorized": ".getserveractivities", + "GetServerActivitiesUnauthorizedData": ".getserveractivities", + "Errors": ".getservercapabilities", + "ErrorsTypedDict": ".getservercapabilities", + "GetServerCapabilitiesBadRequest": ".getservercapabilities", + "GetServerCapabilitiesBadRequestData": ".getservercapabilities", + "GetServerCapabilitiesErrors": ".getservercapabilities", + "GetServerCapabilitiesErrorsTypedDict": ".getservercapabilities", + "GetServerCapabilitiesUnauthorized": ".getservercapabilities", + "GetServerCapabilitiesUnauthorizedData": ".getservercapabilities", + "GetServerListBadRequest": ".getserverlist", + "GetServerListBadRequestData": ".getserverlist", + "GetServerListErrors": ".getserverlist", + "GetServerListErrorsTypedDict": ".getserverlist", + "GetServerListServerErrors": ".getserverlist", + "GetServerListServerErrorsTypedDict": ".getserverlist", + "GetServerListUnauthorized": ".getserverlist", + "GetServerListUnauthorizedData": ".getserverlist", + "GetServerPreferencesBadRequest": ".getserverpreferences", + "GetServerPreferencesBadRequestData": ".getserverpreferences", + "GetServerPreferencesErrors": ".getserverpreferences", + "GetServerPreferencesErrorsTypedDict": ".getserverpreferences", + "GetServerPreferencesServerErrors": ".getserverpreferences", + "GetServerPreferencesServerErrorsTypedDict": ".getserverpreferences", + "GetServerPreferencesUnauthorized": ".getserverpreferences", + "GetServerPreferencesUnauthorizedData": ".getserverpreferences", + "GetSessionHistoryBadRequest": ".getsessionhistory", + "GetSessionHistoryBadRequestData": ".getsessionhistory", + "GetSessionHistoryErrors": ".getsessionhistory", + "GetSessionHistoryErrorsTypedDict": ".getsessionhistory", + "GetSessionHistorySessionsErrors": ".getsessionhistory", + "GetSessionHistorySessionsErrorsTypedDict": ".getsessionhistory", + "GetSessionHistoryUnauthorized": ".getsessionhistory", + "GetSessionHistoryUnauthorizedData": ".getsessionhistory", + "GetSessionsBadRequest": ".getsessions", + "GetSessionsBadRequestData": ".getsessions", + "GetSessionsErrors": ".getsessions", + "GetSessionsErrorsTypedDict": ".getsessions", + "GetSessionsSessionsErrors": ".getsessions", + "GetSessionsSessionsErrorsTypedDict": ".getsessions", + "GetSessionsUnauthorized": ".getsessions", + "GetSessionsUnauthorizedData": ".getsessions", + "GetSourceConnectionInformationAuthenticationErrors": ".getsourceconnectioninformation", + "GetSourceConnectionInformationAuthenticationErrorsTypedDict": ".getsourceconnectioninformation", + "GetSourceConnectionInformationBadRequest": ".getsourceconnectioninformation", + "GetSourceConnectionInformationBadRequestData": ".getsourceconnectioninformation", + "GetSourceConnectionInformationErrors": ".getsourceconnectioninformation", + "GetSourceConnectionInformationErrorsTypedDict": ".getsourceconnectioninformation", + "GetSourceConnectionInformationUnauthorized": ".getsourceconnectioninformation", + "GetSourceConnectionInformationUnauthorizedData": ".getsourceconnectioninformation", + "GetStatisticsBadRequest": ".getstatistics", + "GetStatisticsBadRequestData": ".getstatistics", + "GetStatisticsErrors": ".getstatistics", + "GetStatisticsErrorsTypedDict": ".getstatistics", + "GetStatisticsStatisticsErrors": ".getstatistics", + "GetStatisticsStatisticsErrorsTypedDict": ".getstatistics", + "GetStatisticsUnauthorized": ".getstatistics", + "GetStatisticsUnauthorizedData": ".getstatistics", + "GetTimelineBadRequest": ".gettimeline", + "GetTimelineBadRequestData": ".gettimeline", + "GetTimelineErrors": ".gettimeline", + "GetTimelineErrorsTypedDict": ".gettimeline", + "GetTimelineUnauthorized": ".gettimeline", + "GetTimelineUnauthorizedData": ".gettimeline", + "GetTimelineVideoErrors": ".gettimeline", + "GetTimelineVideoErrorsTypedDict": ".gettimeline", + "GetTokenByPinIDBadRequest": ".gettokenbypinid", + "GetTokenByPinIDBadRequestData": ".gettokenbypinid", + "GetTokenByPinIDErrors": ".gettokenbypinid", + "GetTokenByPinIDErrorsTypedDict": ".gettokenbypinid", + "GetTokenByPinIDPlexErrors": ".gettokenbypinid", + "GetTokenByPinIDPlexErrorsTypedDict": ".gettokenbypinid", + "GetTokenByPinIDResponseBody": ".gettokenbypinid", + "GetTokenByPinIDResponseBodyData": ".gettokenbypinid", + "GetTokenDetailsAuthenticationErrors": ".gettokendetails", + "GetTokenDetailsAuthenticationErrorsTypedDict": ".gettokendetails", + "GetTokenDetailsBadRequest": ".gettokendetails", + "GetTokenDetailsBadRequestData": ".gettokendetails", + "GetTokenDetailsErrors": ".gettokendetails", + "GetTokenDetailsErrorsTypedDict": ".gettokendetails", + "GetTokenDetailsUnauthorized": ".gettokendetails", + "GetTokenDetailsUnauthorizedData": ".gettokendetails", + "GetTopWatchedContentBadRequest": ".gettopwatchedcontent", + "GetTopWatchedContentBadRequestData": ".gettopwatchedcontent", + "GetTopWatchedContentErrors": ".gettopwatchedcontent", + "GetTopWatchedContentErrorsTypedDict": ".gettopwatchedcontent", + "GetTopWatchedContentLibraryErrors": ".gettopwatchedcontent", + "GetTopWatchedContentLibraryErrorsTypedDict": ".gettopwatchedcontent", + "GetTopWatchedContentUnauthorized": ".gettopwatchedcontent", + "GetTopWatchedContentUnauthorizedData": ".gettopwatchedcontent", + "GetTranscodeSessionsBadRequest": ".gettranscodesessions", + "GetTranscodeSessionsBadRequestData": ".gettranscodesessions", + "GetTranscodeSessionsErrors": ".gettranscodesessions", + "GetTranscodeSessionsErrorsTypedDict": ".gettranscodesessions", + "GetTranscodeSessionsSessionsErrors": ".gettranscodesessions", + "GetTranscodeSessionsSessionsErrorsTypedDict": ".gettranscodesessions", + "GetTranscodeSessionsUnauthorized": ".gettranscodesessions", + "GetTranscodeSessionsUnauthorizedData": ".gettranscodesessions", + "GetTransientTokenAuthenticationErrors": ".gettransienttoken", + "GetTransientTokenAuthenticationErrorsTypedDict": ".gettransienttoken", + "GetTransientTokenBadRequest": ".gettransienttoken", + "GetTransientTokenBadRequestData": ".gettransienttoken", + "GetTransientTokenErrors": ".gettransienttoken", + "GetTransientTokenErrorsTypedDict": ".gettransienttoken", + "GetTransientTokenUnauthorized": ".gettransienttoken", + "GetTransientTokenUnauthorizedData": ".gettransienttoken", + "GetUpdateStatusBadRequest": ".getupdatestatus", + "GetUpdateStatusBadRequestData": ".getupdatestatus", + "GetUpdateStatusErrors": ".getupdatestatus", + "GetUpdateStatusErrorsTypedDict": ".getupdatestatus", + "GetUpdateStatusUnauthorized": ".getupdatestatus", + "GetUpdateStatusUnauthorizedData": ".getupdatestatus", + "GetUpdateStatusUpdaterErrors": ".getupdatestatus", + "GetUpdateStatusUpdaterErrorsTypedDict": ".getupdatestatus", + "GetUserFriendsBadRequest": ".getuserfriends", + "GetUserFriendsBadRequestData": ".getuserfriends", + "GetUserFriendsErrors": ".getuserfriends", + "GetUserFriendsErrorsTypedDict": ".getuserfriends", + "GetUserFriendsPlexErrors": ".getuserfriends", + "GetUserFriendsPlexErrorsTypedDict": ".getuserfriends", + "GetUserFriendsUnauthorized": ".getuserfriends", + "GetUserFriendsUnauthorizedData": ".getuserfriends", + "LogLineBadRequest": ".logline", + "LogLineBadRequestData": ".logline", + "LogLineErrors": ".logline", + "LogLineErrorsTypedDict": ".logline", + "LogLineLogErrors": ".logline", + "LogLineLogErrorsTypedDict": ".logline", + "LogLineUnauthorized": ".logline", + "LogLineUnauthorizedData": ".logline", + "LogMultiLineBadRequest": ".logmultiline", + "LogMultiLineBadRequestData": ".logmultiline", + "LogMultiLineErrors": ".logmultiline", + "LogMultiLineErrorsTypedDict": ".logmultiline", + "LogMultiLineLogErrors": ".logmultiline", + "LogMultiLineLogErrorsTypedDict": ".logmultiline", + "LogMultiLineUnauthorized": ".logmultiline", + "LogMultiLineUnauthorizedData": ".logmultiline", + "MarkPlayedBadRequest": ".markplayed", + "MarkPlayedBadRequestData": ".markplayed", + "MarkPlayedErrors": ".markplayed", + "MarkPlayedErrorsTypedDict": ".markplayed", + "MarkPlayedMediaErrors": ".markplayed", + "MarkPlayedMediaErrorsTypedDict": ".markplayed", + "MarkPlayedUnauthorized": ".markplayed", + "MarkPlayedUnauthorizedData": ".markplayed", + "MarkUnplayedBadRequest": ".markunplayed", + "MarkUnplayedBadRequestData": ".markunplayed", + "MarkUnplayedErrors": ".markunplayed", + "MarkUnplayedErrorsTypedDict": ".markunplayed", + "MarkUnplayedMediaErrors": ".markunplayed", + "MarkUnplayedMediaErrorsTypedDict": ".markunplayed", + "MarkUnplayedUnauthorized": ".markunplayed", + "MarkUnplayedUnauthorizedData": ".markunplayed", + "PerformSearchBadRequest": ".performsearch", + "PerformSearchBadRequestData": ".performsearch", + "PerformSearchErrors": ".performsearch", + "PerformSearchErrorsTypedDict": ".performsearch", + "PerformSearchSearchErrors": ".performsearch", + "PerformSearchSearchErrorsTypedDict": ".performsearch", + "PerformSearchUnauthorized": ".performsearch", + "PerformSearchUnauthorizedData": ".performsearch", + "PerformVoiceSearchBadRequest": ".performvoicesearch", + "PerformVoiceSearchBadRequestData": ".performvoicesearch", + "PerformVoiceSearchErrors": ".performvoicesearch", + "PerformVoiceSearchErrorsTypedDict": ".performvoicesearch", + "PerformVoiceSearchSearchErrors": ".performvoicesearch", + "PerformVoiceSearchSearchErrorsTypedDict": ".performvoicesearch", + "PerformVoiceSearchUnauthorized": ".performvoicesearch", + "PerformVoiceSearchUnauthorizedData": ".performvoicesearch", + "PostUsersSignInDataAuthenticationErrors": ".post_users_sign_in_data", + "PostUsersSignInDataAuthenticationErrorsTypedDict": ".post_users_sign_in_data", + "PostUsersSignInDataBadRequest": ".post_users_sign_in_data", + "PostUsersSignInDataBadRequestData": ".post_users_sign_in_data", + "PostUsersSignInDataErrors": ".post_users_sign_in_data", + "PostUsersSignInDataErrorsTypedDict": ".post_users_sign_in_data", + "PostUsersSignInDataUnauthorized": ".post_users_sign_in_data", + "PostUsersSignInDataUnauthorizedData": ".post_users_sign_in_data", + "SDKError": ".sdkerror", + "StartAllTasksBadRequest": ".startalltasks", + "StartAllTasksBadRequestData": ".startalltasks", + "StartAllTasksButlerErrors": ".startalltasks", + "StartAllTasksButlerErrorsTypedDict": ".startalltasks", + "StartAllTasksErrors": ".startalltasks", + "StartAllTasksErrorsTypedDict": ".startalltasks", + "StartAllTasksUnauthorized": ".startalltasks", + "StartAllTasksUnauthorizedData": ".startalltasks", + "StartTaskBadRequest": ".starttask", + "StartTaskBadRequestData": ".starttask", + "StartTaskButlerErrors": ".starttask", + "StartTaskButlerErrorsTypedDict": ".starttask", + "StartTaskErrors": ".starttask", + "StartTaskErrorsTypedDict": ".starttask", + "StartTaskUnauthorized": ".starttask", + "StartTaskUnauthorizedData": ".starttask", + "StartUniversalTranscodeBadRequest": ".startuniversaltranscode", + "StartUniversalTranscodeBadRequestData": ".startuniversaltranscode", + "StartUniversalTranscodeErrors": ".startuniversaltranscode", + "StartUniversalTranscodeErrorsTypedDict": ".startuniversaltranscode", + "StartUniversalTranscodeUnauthorized": ".startuniversaltranscode", + "StartUniversalTranscodeUnauthorizedData": ".startuniversaltranscode", + "StartUniversalTranscodeVideoErrors": ".startuniversaltranscode", + "StartUniversalTranscodeVideoErrorsTypedDict": ".startuniversaltranscode", + "StopAllTasksBadRequest": ".stopalltasks", + "StopAllTasksBadRequestData": ".stopalltasks", + "StopAllTasksButlerErrors": ".stopalltasks", + "StopAllTasksButlerErrorsTypedDict": ".stopalltasks", + "StopAllTasksErrors": ".stopalltasks", + "StopAllTasksErrorsTypedDict": ".stopalltasks", + "StopAllTasksUnauthorized": ".stopalltasks", + "StopAllTasksUnauthorizedData": ".stopalltasks", + "StopTaskBadRequest": ".stoptask", + "StopTaskBadRequestData": ".stoptask", + "StopTaskButlerErrors": ".stoptask", + "StopTaskButlerErrorsTypedDict": ".stoptask", + "StopTaskErrors": ".stoptask", + "StopTaskErrorsTypedDict": ".stoptask", + "StopTaskUnauthorized": ".stoptask", + "StopTaskUnauthorizedData": ".stoptask", + "StopTranscodeSessionBadRequest": ".stoptranscodesession", + "StopTranscodeSessionBadRequestData": ".stoptranscodesession", + "StopTranscodeSessionErrors": ".stoptranscodesession", + "StopTranscodeSessionErrorsTypedDict": ".stoptranscodesession", + "StopTranscodeSessionSessionsErrors": ".stoptranscodesession", + "StopTranscodeSessionSessionsErrorsTypedDict": ".stoptranscodesession", + "StopTranscodeSessionUnauthorized": ".stoptranscodesession", + "StopTranscodeSessionUnauthorizedData": ".stoptranscodesession", + "UpdatePlaylistBadRequest": ".updateplaylist", + "UpdatePlaylistBadRequestData": ".updateplaylist", + "UpdatePlaylistErrors": ".updateplaylist", + "UpdatePlaylistErrorsTypedDict": ".updateplaylist", + "UpdatePlaylistPlaylistsErrors": ".updateplaylist", + "UpdatePlaylistPlaylistsErrorsTypedDict": ".updateplaylist", + "UpdatePlaylistUnauthorized": ".updateplaylist", + "UpdatePlaylistUnauthorizedData": ".updateplaylist", + "UpdatePlayProgressBadRequest": ".updateplayprogress", + "UpdatePlayProgressBadRequestData": ".updateplayprogress", + "UpdatePlayProgressErrors": ".updateplayprogress", + "UpdatePlayProgressErrorsTypedDict": ".updateplayprogress", + "UpdatePlayProgressMediaErrors": ".updateplayprogress", + "UpdatePlayProgressMediaErrorsTypedDict": ".updateplayprogress", + "UpdatePlayProgressUnauthorized": ".updateplayprogress", + "UpdatePlayProgressUnauthorizedData": ".updateplayprogress", + "UploadPlaylistBadRequest": ".uploadplaylist", + "UploadPlaylistBadRequestData": ".uploadplaylist", + "UploadPlaylistErrors": ".uploadplaylist", + "UploadPlaylistErrorsTypedDict": ".uploadplaylist", + "UploadPlaylistPlaylistsErrors": ".uploadplaylist", + "UploadPlaylistPlaylistsErrorsTypedDict": ".uploadplaylist", + "UploadPlaylistUnauthorized": ".uploadplaylist", + "UploadPlaylistUnauthorizedData": ".uploadplaylist", +} + + +def __getattr__(attr_name: str) -> object: + module_name = _dynamic_imports.get(attr_name) + if module_name is None: + raise AttributeError( + f"No {attr_name} found in _dynamic_imports for module name -> {__name__} " + ) + + try: + module = import_module(module_name, __package__) + result = getattr(module, attr_name) + return result + except ImportError as e: + raise ImportError( + f"Failed to import {attr_name} from {module_name}: {e}" + ) from e + except AttributeError as e: + raise AttributeError( + f"Failed to get {attr_name} from {module_name}: {e}" + ) from e + + +def __dir__(): + lazy_attrs = list(_dynamic_imports.keys()) + return sorted(lazy_attrs) diff --git a/src/plex_api_client/models/operations/__init__.py b/src/plex_api_client/models/operations/__init__.py index 9327578..986841b 100644 --- a/src/plex_api_client/models/operations/__init__.py +++ b/src/plex_api_client/models/operations/__init__.py @@ -1,1255 +1,1258 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from .addplaylistcontents import ( - AddPlaylistContentsMediaContainer, - AddPlaylistContentsMediaContainerTypedDict, - AddPlaylistContentsMetadata, - AddPlaylistContentsMetadataTypedDict, - AddPlaylistContentsRequest, - AddPlaylistContentsRequestTypedDict, - AddPlaylistContentsResponse, - AddPlaylistContentsResponseBody, - AddPlaylistContentsResponseBodyTypedDict, - AddPlaylistContentsResponseTypedDict, -) -from .applyupdates import ( - ApplyUpdatesRequest, - ApplyUpdatesRequestTypedDict, - ApplyUpdatesResponse, - ApplyUpdatesResponseTypedDict, - Skip, - Tonight, -) -from .cancelserveractivities import ( - CancelServerActivitiesRequest, - CancelServerActivitiesRequestTypedDict, - CancelServerActivitiesResponse, - CancelServerActivitiesResponseTypedDict, -) -from .checkforupdates import ( - CheckForUpdatesRequest, - CheckForUpdatesRequestTypedDict, - CheckForUpdatesResponse, - CheckForUpdatesResponseTypedDict, - Download, -) -from .clearplaylistcontents import ( - ClearPlaylistContentsRequest, - ClearPlaylistContentsRequestTypedDict, - ClearPlaylistContentsResponse, - ClearPlaylistContentsResponseTypedDict, -) -from .createplaylist import ( - CreatePlaylistMediaContainer, - CreatePlaylistMediaContainerTypedDict, - CreatePlaylistMetadata, - CreatePlaylistMetadataTypedDict, - CreatePlaylistQueryParamType, - CreatePlaylistRequest, - CreatePlaylistRequestTypedDict, - CreatePlaylistResponse, - CreatePlaylistResponseBody, - CreatePlaylistResponseBodyTypedDict, - CreatePlaylistResponseTypedDict, - Smart, -) -from .deletelibrary import ( - DeleteLibraryRequest, - DeleteLibraryRequestTypedDict, - DeleteLibraryResponse, - DeleteLibraryResponseTypedDict, -) -from .deleteplaylist import ( - DeletePlaylistRequest, - DeletePlaylistRequestTypedDict, - DeletePlaylistResponse, - DeletePlaylistResponseTypedDict, -) -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, - GetAllLibrariesLocation, - GetAllLibrariesLocationTypedDict, - GetAllLibrariesMediaContainer, - GetAllLibrariesMediaContainerTypedDict, - GetAllLibrariesResponse, - GetAllLibrariesResponseBody, - GetAllLibrariesResponseBodyTypedDict, - GetAllLibrariesResponseTypedDict, - GetAllLibrariesType, - Hidden, -) -from .get_all_media_library import ( - GetAllMediaLibraryActiveDirection, - GetAllMediaLibraryCollection, - GetAllMediaLibraryCollectionTypedDict, - GetAllMediaLibraryCountry, - GetAllMediaLibraryCountryTypedDict, - GetAllMediaLibraryDefaultDirection, - GetAllMediaLibraryDirector, - GetAllMediaLibraryDirectorTypedDict, - GetAllMediaLibraryField, - GetAllMediaLibraryFieldType, - GetAllMediaLibraryFieldTypeTypedDict, - GetAllMediaLibraryFieldTypedDict, - GetAllMediaLibraryFilter, - GetAllMediaLibraryFilterTypedDict, - GetAllMediaLibraryGenre, - GetAllMediaLibraryGenreTypedDict, - GetAllMediaLibraryGuids, - GetAllMediaLibraryGuidsTypedDict, - GetAllMediaLibraryHasThumbnail, - GetAllMediaLibraryImage, - GetAllMediaLibraryImageTypedDict, - GetAllMediaLibraryLibraryOptimizedForStreaming, - GetAllMediaLibraryLibraryOptimizedForStreamingTypedDict, - GetAllMediaLibraryLibraryResponseType, - GetAllMediaLibraryLibraryType, - GetAllMediaLibraryMedia, - GetAllMediaLibraryMediaContainer, - GetAllMediaLibraryMediaContainerTypedDict, - GetAllMediaLibraryMediaTypedDict, - GetAllMediaLibraryMeta, - GetAllMediaLibraryMetaTypedDict, - GetAllMediaLibraryMetadata, - GetAllMediaLibraryMetadataTypedDict, - GetAllMediaLibraryOperator, - GetAllMediaLibraryOperatorTypedDict, - GetAllMediaLibraryOptimizedForStreaming, - GetAllMediaLibraryOptimizedForStreaming1, - GetAllMediaLibraryOptimizedForStreamingTypedDict, - GetAllMediaLibraryPart, - GetAllMediaLibraryPartTypedDict, - GetAllMediaLibraryQueryParamIncludeMeta, - GetAllMediaLibraryQueryParamType, - GetAllMediaLibraryRequest, - GetAllMediaLibraryRequestTypedDict, - GetAllMediaLibraryResponse, - GetAllMediaLibraryResponseBody, - GetAllMediaLibraryResponseBodyTypedDict, - GetAllMediaLibraryResponseTypedDict, - GetAllMediaLibraryRole, - GetAllMediaLibraryRoleTypedDict, - GetAllMediaLibrarySort, - GetAllMediaLibrarySortTypedDict, - GetAllMediaLibraryStream, - GetAllMediaLibraryStreamType, - GetAllMediaLibraryStreamTypedDict, - GetAllMediaLibraryType, - GetAllMediaLibraryTypeTypedDict, - GetAllMediaLibraryUltraBlurColors, - GetAllMediaLibraryUltraBlurColorsTypedDict, - GetAllMediaLibraryWriter, - GetAllMediaLibraryWriterTypedDict, - IncludeAdvanced, - OptimizedForStreaming1, - QueryParamIncludeCollections, - QueryParamIncludeExternalMedia, - QueryParamIncludeGuids, -) -from .get_banner_image import ( - GetBannerImageRequest, - GetBannerImageRequestTypedDict, - GetBannerImageResponse, - GetBannerImageResponseTypedDict, -) -from .get_countries_library import ( - GetCountriesLibraryDirectory, - GetCountriesLibraryDirectoryTypedDict, - GetCountriesLibraryMediaContainer, - GetCountriesLibraryMediaContainerTypedDict, - GetCountriesLibraryQueryParamType, - GetCountriesLibraryRequest, - GetCountriesLibraryRequestTypedDict, - GetCountriesLibraryResponse, - GetCountriesLibraryResponseBody, - GetCountriesLibraryResponseBodyTypedDict, - GetCountriesLibraryResponseTypedDict, -) -from .get_genres_library import ( - GetGenresLibraryDirectory, - GetGenresLibraryDirectoryTypedDict, - GetGenresLibraryMediaContainer, - GetGenresLibraryMediaContainerTypedDict, - GetGenresLibraryQueryParamType, - GetGenresLibraryRequest, - GetGenresLibraryRequestTypedDict, - GetGenresLibraryResponse, - GetGenresLibraryResponseBody, - GetGenresLibraryResponseBodyTypedDict, - GetGenresLibraryResponseTypedDict, -) -from .get_library_details import ( - GetLibraryDetailsDirectory, - GetLibraryDetailsDirectoryTypedDict, - GetLibraryDetailsField, - GetLibraryDetailsFieldType, - GetLibraryDetailsFieldTypeTypedDict, - GetLibraryDetailsFieldTypedDict, - GetLibraryDetailsFilter, - GetLibraryDetailsFilterTypedDict, - GetLibraryDetailsMediaContainer, - GetLibraryDetailsMediaContainerTypedDict, - GetLibraryDetailsOperator, - GetLibraryDetailsOperatorTypedDict, - GetLibraryDetailsRequest, - GetLibraryDetailsRequestTypedDict, - GetLibraryDetailsResponse, - GetLibraryDetailsResponseBody, - GetLibraryDetailsResponseBodyTypedDict, - GetLibraryDetailsResponseTypedDict, - GetLibraryDetailsSort, - GetLibraryDetailsSortTypedDict, - GetLibraryDetailsType, - GetLibraryDetailsTypeTypedDict, - IncludeDetails, -) -from .get_library_items import ( - EnableCreditsMarkerGeneration, - EpisodeSort, - FlattenSeasons, - GetLibraryItemsActiveDirection, - GetLibraryItemsCollection, - GetLibraryItemsCollectionTypedDict, - GetLibraryItemsCountry, - GetLibraryItemsCountryTypedDict, - GetLibraryItemsDefaultDirection, - GetLibraryItemsDirector, - GetLibraryItemsDirectorTypedDict, - GetLibraryItemsField, - GetLibraryItemsFieldType, - GetLibraryItemsFieldTypeTypedDict, - GetLibraryItemsFieldTypedDict, - GetLibraryItemsFilter, - GetLibraryItemsFilterTypedDict, - GetLibraryItemsGenre, - GetLibraryItemsGenreTypedDict, - GetLibraryItemsHasThumbnail, - GetLibraryItemsImage, - GetLibraryItemsImageTypedDict, - GetLibraryItemsLibraryActiveDirection, - GetLibraryItemsLibraryDefaultDirection, - GetLibraryItemsLibraryField, - GetLibraryItemsLibraryFieldType, - GetLibraryItemsLibraryFieldTypeTypedDict, - GetLibraryItemsLibraryFieldTypedDict, - GetLibraryItemsLibraryFilter, - GetLibraryItemsLibraryFilterTypedDict, - GetLibraryItemsLibraryOperator, - GetLibraryItemsLibraryOperatorTypedDict, - GetLibraryItemsLibraryResponse200Type, - GetLibraryItemsLibraryResponseType, - GetLibraryItemsLibraryResponseTypeTypedDict, - GetLibraryItemsLibrarySort, - GetLibraryItemsLibrarySortTypedDict, - GetLibraryItemsLibraryType, - GetLibraryItemsLocation, - GetLibraryItemsLocationTypedDict, - GetLibraryItemsMedia, - GetLibraryItemsMediaContainer, - GetLibraryItemsMediaContainerTypedDict, - GetLibraryItemsMediaTypedDict, - GetLibraryItemsMeta, - GetLibraryItemsMetaTypedDict, - GetLibraryItemsMetadata, - GetLibraryItemsMetadataTypedDict, - GetLibraryItemsOperator, - GetLibraryItemsOperatorTypedDict, - GetLibraryItemsOptimizedForStreaming, - GetLibraryItemsPart, - GetLibraryItemsPartTypedDict, - GetLibraryItemsQueryParamIncludeMeta, - GetLibraryItemsQueryParamType, - GetLibraryItemsRequest, - GetLibraryItemsRequestTypedDict, - GetLibraryItemsResponse, - GetLibraryItemsResponseBody, - GetLibraryItemsResponseBodyTypedDict, - GetLibraryItemsResponseTypedDict, - GetLibraryItemsRole, - GetLibraryItemsRoleTypedDict, - GetLibraryItemsSort, - GetLibraryItemsSortTypedDict, - GetLibraryItemsStream, - GetLibraryItemsStreamTypedDict, - GetLibraryItemsType, - GetLibraryItemsTypeTypedDict, - GetLibraryItemsUltraBlurColors, - GetLibraryItemsUltraBlurColorsTypedDict, - GetLibraryItemsWriter, - GetLibraryItemsWriterTypedDict, - IncludeGuids, - MediaGUID, - MediaGUIDTypedDict, - MetaDataRating, - MetaDataRatingTypedDict, - ShowOrdering, - Tag, -) -from .get_media_arts import ( - GetMediaArtsMediaContainer, - GetMediaArtsMediaContainerTypedDict, - GetMediaArtsMetadata, - GetMediaArtsMetadataTypedDict, - GetMediaArtsRequest, - GetMediaArtsRequestTypedDict, - GetMediaArtsResponse, - GetMediaArtsResponseBody, - GetMediaArtsResponseBodyTypedDict, - GetMediaArtsResponseTypedDict, -) -from .get_media_meta_data import ( - Attributes, - AttributesTypedDict, - Chapter, - ChapterTypedDict, - Extras, - ExtrasTypedDict, - GetMediaMetaDataCountry, - GetMediaMetaDataCountryTypedDict, - GetMediaMetaDataDirector, - GetMediaMetaDataDirectorTypedDict, - GetMediaMetaDataGenre, - GetMediaMetaDataGenreTypedDict, - GetMediaMetaDataGuids, - GetMediaMetaDataGuidsTypedDict, - GetMediaMetaDataHasThumbnail, - GetMediaMetaDataImage, - GetMediaMetaDataImageTypedDict, - GetMediaMetaDataLibraryOptimizedForStreaming, - GetMediaMetaDataLibraryOptimizedForStreamingTypedDict, - GetMediaMetaDataLibraryType, - GetMediaMetaDataLocation, - GetMediaMetaDataLocationTypedDict, - GetMediaMetaDataMedia, - GetMediaMetaDataMediaContainer, - GetMediaMetaDataMediaContainerTypedDict, - GetMediaMetaDataMediaTypedDict, - GetMediaMetaDataMetadata, - GetMediaMetaDataMetadataTypedDict, - GetMediaMetaDataOptimizedForStreaming, - GetMediaMetaDataOptimizedForStreaming1, - GetMediaMetaDataOptimizedForStreamingLibrary1, - GetMediaMetaDataOptimizedForStreamingTypedDict, - GetMediaMetaDataPart, - GetMediaMetaDataPartTypedDict, - GetMediaMetaDataProducer, - GetMediaMetaDataProducerTypedDict, - GetMediaMetaDataRequest, - GetMediaMetaDataRequestTypedDict, - GetMediaMetaDataResponse, - GetMediaMetaDataResponseBody, - GetMediaMetaDataResponseBodyTypedDict, - GetMediaMetaDataResponseTypedDict, - GetMediaMetaDataRole, - GetMediaMetaDataRoleTypedDict, - GetMediaMetaDataSimilar, - GetMediaMetaDataSimilarTypedDict, - GetMediaMetaDataStream, - GetMediaMetaDataStreamType, - GetMediaMetaDataStreamTypedDict, - GetMediaMetaDataType, - GetMediaMetaDataUltraBlurColors, - GetMediaMetaDataUltraBlurColorsTypedDict, - GetMediaMetaDataWriter, - GetMediaMetaDataWriterTypedDict, - Marker, - MarkerTypedDict, - Ratings, - RatingsTypedDict, -) -from .get_media_posters import ( - GetMediaPostersMediaContainer, - GetMediaPostersMediaContainerTypedDict, - GetMediaPostersMetadata, - GetMediaPostersMetadataTypedDict, - GetMediaPostersRequest, - GetMediaPostersRequestTypedDict, - GetMediaPostersResponse, - GetMediaPostersResponseBody, - GetMediaPostersResponseBodyTypedDict, - GetMediaPostersResponseTypedDict, -) -from .get_media_providers import ( - Action, - ActionTypedDict, - Feature, - FeatureTypedDict, - GetMediaProvidersDirectory, - GetMediaProvidersDirectoryTypedDict, - GetMediaProvidersMediaContainer, - GetMediaProvidersMediaContainerTypedDict, - GetMediaProvidersRequest, - GetMediaProvidersRequestTypedDict, - GetMediaProvidersResponse, - GetMediaProvidersResponseBody, - GetMediaProvidersResponseBodyTypedDict, - GetMediaProvidersResponseTypedDict, - MediaProvider, - MediaProviderTypedDict, - Pivot, - PivotTypedDict, -) -from .get_recently_added import ( - Collection, - CollectionTypedDict, - Country, - CountryTypedDict, - Director, - DirectorTypedDict, - Genre, - GenreTypedDict, - GetRecentlyAddedActiveDirection, - GetRecentlyAddedDefaultDirection, - GetRecentlyAddedField, - GetRecentlyAddedFieldType, - GetRecentlyAddedFieldTypeTypedDict, - GetRecentlyAddedFieldTypedDict, - GetRecentlyAddedFilter, - GetRecentlyAddedFilterTypedDict, - GetRecentlyAddedHubsResponseType, - GetRecentlyAddedHubsType, - GetRecentlyAddedImage, - GetRecentlyAddedImageTypedDict, - GetRecentlyAddedMediaContainer, - GetRecentlyAddedMediaContainerTypedDict, - GetRecentlyAddedMetadata, - GetRecentlyAddedMetadataTypedDict, - GetRecentlyAddedOperator, - GetRecentlyAddedOperatorTypedDict, - GetRecentlyAddedOptimizedForStreaming, - GetRecentlyAddedOptimizedForStreaming1, - GetRecentlyAddedOptimizedForStreamingTypedDict, - GetRecentlyAddedRequest, - GetRecentlyAddedRequestTypedDict, - GetRecentlyAddedResponse, - GetRecentlyAddedResponseBody, - GetRecentlyAddedResponseBodyTypedDict, - GetRecentlyAddedResponseTypedDict, - GetRecentlyAddedSort, - GetRecentlyAddedSortTypedDict, - GetRecentlyAddedType, - GetRecentlyAddedTypeTypedDict, - Guids, - GuidsTypedDict, - HasThumbnail, - IncludeMeta, - Location, - LocationTypedDict, - Media, - MediaTypedDict, - Meta, - MetaTypedDict, - One, - OptimizedForStreaming, - OptimizedForStreamingTypedDict, - Part, - PartTypedDict, - Producer, - ProducerTypedDict, - Rating, - RatingTypedDict, - Role, - RoleTypedDict, - Similar, - SimilarTypedDict, - Stream, - StreamType, - StreamTypedDict, - Type, - UltraBlurColors, - UltraBlurColorsTypedDict, - Writer, - WriterTypedDict, -) -from .get_recently_added_library import ( - ActiveDirection, - DefaultDirection, - FieldT, - FieldTTypedDict, - FieldType, - FieldTypeTypedDict, - GetRecentlyAddedLibraryCountry, - GetRecentlyAddedLibraryCountryTypedDict, - GetRecentlyAddedLibraryDirector, - GetRecentlyAddedLibraryDirectorTypedDict, - GetRecentlyAddedLibraryFilter, - GetRecentlyAddedLibraryFilterTypedDict, - GetRecentlyAddedLibraryGenre, - GetRecentlyAddedLibraryGenreTypedDict, - GetRecentlyAddedLibraryMedia, - GetRecentlyAddedLibraryMediaContainer, - GetRecentlyAddedLibraryMediaContainerTypedDict, - GetRecentlyAddedLibraryMediaTypedDict, - GetRecentlyAddedLibraryMetadata, - GetRecentlyAddedLibraryMetadataTypedDict, - GetRecentlyAddedLibraryPart, - GetRecentlyAddedLibraryPartTypedDict, - GetRecentlyAddedLibraryRequest, - GetRecentlyAddedLibraryRequestTypedDict, - GetRecentlyAddedLibraryResponse, - GetRecentlyAddedLibraryResponseBody, - GetRecentlyAddedLibraryResponseBodyTypedDict, - GetRecentlyAddedLibraryResponseTypedDict, - GetRecentlyAddedLibraryRole, - GetRecentlyAddedLibraryRoleTypedDict, - GetRecentlyAddedLibraryType, - GetRecentlyAddedLibraryTypeTypedDict, - GetRecentlyAddedLibraryWriter, - GetRecentlyAddedLibraryWriterTypedDict, - Operator, - OperatorTypedDict, - QueryParamIncludeMeta, - QueryParamType, - Sort, - SortTypedDict, -) -from .get_refresh_library_metadata import ( - Force, - GetRefreshLibraryMetadataRequest, - GetRefreshLibraryMetadataRequestTypedDict, - GetRefreshLibraryMetadataResponse, - GetRefreshLibraryMetadataResponseTypedDict, -) -from .get_search_all_libraries import ( - GetSearchAllLibrariesCollection, - GetSearchAllLibrariesCollectionTypedDict, - GetSearchAllLibrariesCountry, - GetSearchAllLibrariesCountryTypedDict, - GetSearchAllLibrariesDirector, - GetSearchAllLibrariesDirectorTypedDict, - GetSearchAllLibrariesEnableCreditsMarkerGeneration, - GetSearchAllLibrariesEpisodeSort, - GetSearchAllLibrariesFlattenSeasons, - GetSearchAllLibrariesGenre, - GetSearchAllLibrariesGenreTypedDict, - GetSearchAllLibrariesHasThumbnail, - GetSearchAllLibrariesImage, - GetSearchAllLibrariesImageTypedDict, - GetSearchAllLibrariesLibraryType, - GetSearchAllLibrariesLocation, - GetSearchAllLibrariesLocationTypedDict, - GetSearchAllLibrariesMedia, - GetSearchAllLibrariesMediaContainer, - GetSearchAllLibrariesMediaContainerTypedDict, - GetSearchAllLibrariesMediaGUID, - GetSearchAllLibrariesMediaGUIDTypedDict, - GetSearchAllLibrariesMediaTypedDict, - GetSearchAllLibrariesMetaDataRating, - GetSearchAllLibrariesMetaDataRatingTypedDict, - GetSearchAllLibrariesMetadata, - GetSearchAllLibrariesMetadataTypedDict, - GetSearchAllLibrariesOptimizedForStreaming, - GetSearchAllLibrariesPart, - GetSearchAllLibrariesPartTypedDict, - GetSearchAllLibrariesQueryParamIncludeCollections, - GetSearchAllLibrariesQueryParamIncludeExternalMedia, - GetSearchAllLibrariesRequest, - GetSearchAllLibrariesRequestTypedDict, - GetSearchAllLibrariesResponse, - GetSearchAllLibrariesResponseBody, - GetSearchAllLibrariesResponseBodyTypedDict, - GetSearchAllLibrariesResponseTypedDict, - GetSearchAllLibrariesRole, - GetSearchAllLibrariesRoleTypedDict, - GetSearchAllLibrariesShowOrdering, - GetSearchAllLibrariesStream, - GetSearchAllLibrariesStreamTypedDict, - GetSearchAllLibrariesType, - GetSearchAllLibrariesUltraBlurColors, - GetSearchAllLibrariesUltraBlurColorsTypedDict, - GetSearchAllLibrariesWriter, - GetSearchAllLibrariesWriterTypedDict, - SearchResult, - SearchResultTypedDict, - SearchTypes, -) -from .get_search_library import ( - GetSearchLibraryMediaContainer, - GetSearchLibraryMediaContainerTypedDict, - GetSearchLibraryMetadata, - GetSearchLibraryMetadataTypedDict, - GetSearchLibraryQueryParamType, - GetSearchLibraryRequest, - GetSearchLibraryRequestTypedDict, - GetSearchLibraryResponse, - GetSearchLibraryResponseBody, - GetSearchLibraryResponseBodyTypedDict, - GetSearchLibraryResponseTypedDict, -) -from .get_server_identity import ( - GetServerIdentityMediaContainer, - GetServerIdentityMediaContainerTypedDict, - GetServerIdentityResponse, - GetServerIdentityResponseBody, - GetServerIdentityResponseBodyTypedDict, - GetServerIdentityResponseTypedDict, -) -from .get_server_resources import ( - Connections, - ConnectionsTypedDict, - GET_SERVER_RESOURCES_SERVERS, - GetServerResourcesRequest, - GetServerResourcesRequestTypedDict, - GetServerResourcesResponse, - GetServerResourcesResponseTypedDict, - IncludeHTTPS, - IncludeIPv6, - IncludeRelay, - PlexDevice, - PlexDeviceTypedDict, - Protocol, -) -from .get_thumb_image import ( - GetThumbImageRequest, - GetThumbImageRequestTypedDict, - GetThumbImageResponse, - GetThumbImageResponseTypedDict, -) -from .get_users import ( - AllLibraries, - AllowCameraUpload, - AllowChannels, - AllowSubtitleAdmin, - AllowSync, - AllowTuners, - GET_USERS_SERVERS, - GetUsersMediaContainer, - GetUsersMediaContainerTypedDict, - GetUsersRequest, - GetUsersRequestTypedDict, - GetUsersResponse, - GetUsersResponseBody, - GetUsersResponseBodyTypedDict, - GetUsersResponseTypedDict, - GetUsersServer, - GetUsersServerTypedDict, - Home, - Owned, - Pending, - Protected, - Restricted, - User, - UserTypedDict, -) -from .get_watch_list import ( - Filter, - GET_WATCH_LIST_SERVERS, - GetWatchListRequest, - GetWatchListRequestTypedDict, - GetWatchListResponse, - GetWatchListResponseBody, - GetWatchListResponseBodyTypedDict, - GetWatchListResponseTypedDict, - Image, - ImageTypedDict, - IncludeCollections, - IncludeExternalMedia, - Libtype, - Metadata, - MetadataTypedDict, -) -from .getavailableclients import ( - GetAvailableClientsMediaContainer, - GetAvailableClientsMediaContainerTypedDict, - GetAvailableClientsResponse, - GetAvailableClientsResponseBody, - GetAvailableClientsResponseBodyTypedDict, - GetAvailableClientsResponseTypedDict, - Server, - ServerTypedDict, -) -from .getbandwidthstatistics import ( - GetBandwidthStatisticsAccount, - GetBandwidthStatisticsAccountTypedDict, - GetBandwidthStatisticsDevice, - GetBandwidthStatisticsDeviceTypedDict, - GetBandwidthStatisticsMediaContainer, - GetBandwidthStatisticsMediaContainerTypedDict, - GetBandwidthStatisticsRequest, - GetBandwidthStatisticsRequestTypedDict, - GetBandwidthStatisticsResponse, - GetBandwidthStatisticsResponseBody, - GetBandwidthStatisticsResponseBodyTypedDict, - GetBandwidthStatisticsResponseTypedDict, - StatisticsBandwidth, - StatisticsBandwidthTypedDict, -) -from .getbutlertasks import ( - ButlerTask, - ButlerTaskTypedDict, - ButlerTasks, - ButlerTasksTypedDict, - GetButlerTasksResponse, - GetButlerTasksResponseBody, - GetButlerTasksResponseBodyTypedDict, - GetButlerTasksResponseTypedDict, -) -from .getcompanionsdata import ( - GET_COMPANIONS_DATA_SERVERS, - GetCompanionsDataResponse, - GetCompanionsDataResponseTypedDict, - ResponseBody, - ResponseBodyTypedDict, -) -from .getdevices import ( - Device, - DeviceTypedDict, - GetDevicesMediaContainer, - GetDevicesMediaContainerTypedDict, - GetDevicesResponse, - GetDevicesResponseBody, - GetDevicesResponseBodyTypedDict, - GetDevicesResponseTypedDict, -) -from .getfilehash import ( - GetFileHashRequest, - GetFileHashRequestTypedDict, - GetFileHashResponse, - GetFileHashResponseTypedDict, -) -from .getgeodata import ( - GET_GEO_DATA_SERVERS, - GetGeoDataGeoData, - GetGeoDataGeoDataTypedDict, - GetGeoDataResponse, - GetGeoDataResponseTypedDict, -) -from .getglobalhubs import ( - GetGlobalHubsMediaContainer, - GetGlobalHubsMediaContainerTypedDict, - GetGlobalHubsMetadata, - GetGlobalHubsMetadataTypedDict, - GetGlobalHubsRequest, - GetGlobalHubsRequestTypedDict, - GetGlobalHubsResponse, - GetGlobalHubsResponseBody, - GetGlobalHubsResponseBodyTypedDict, - GetGlobalHubsResponseTypedDict, - Hub, - HubTypedDict, - OnlyTransient, -) -from .gethomedata import ( - GetHomeDataResponse, - GetHomeDataResponseBody, - GetHomeDataResponseBodyTypedDict, - GetHomeDataResponseTypedDict, -) -from .getlibraryhubs import ( - GetLibraryHubsCountry, - GetLibraryHubsCountryTypedDict, - GetLibraryHubsDirector, - GetLibraryHubsDirectorTypedDict, - GetLibraryHubsGenre, - GetLibraryHubsGenreTypedDict, - GetLibraryHubsHub, - GetLibraryHubsHubTypedDict, - GetLibraryHubsMedia, - GetLibraryHubsMediaContainer, - GetLibraryHubsMediaContainerTypedDict, - GetLibraryHubsMediaTypedDict, - GetLibraryHubsMetadata, - GetLibraryHubsMetadataTypedDict, - GetLibraryHubsPart, - GetLibraryHubsPartTypedDict, - GetLibraryHubsRequest, - GetLibraryHubsRequestTypedDict, - GetLibraryHubsResponse, - GetLibraryHubsResponseBody, - GetLibraryHubsResponseBodyTypedDict, - GetLibraryHubsResponseTypedDict, - GetLibraryHubsRole, - GetLibraryHubsRoleTypedDict, - GetLibraryHubsWriter, - GetLibraryHubsWriterTypedDict, - QueryParamOnlyTransient, -) -from .getmetadatachildren import ( - GetMetadataChildrenDirectory, - GetMetadataChildrenDirectoryTypedDict, - GetMetadataChildrenMediaContainer, - GetMetadataChildrenMediaContainerTypedDict, - GetMetadataChildrenMetadata, - GetMetadataChildrenMetadataTypedDict, - GetMetadataChildrenRequest, - GetMetadataChildrenRequestTypedDict, - GetMetadataChildrenResponse, - GetMetadataChildrenResponseBody, - GetMetadataChildrenResponseBodyTypedDict, - GetMetadataChildrenResponseTypedDict, -) -from .getmyplexaccount import ( - GetMyPlexAccountResponse, - GetMyPlexAccountResponseBody, - GetMyPlexAccountResponseBodyTypedDict, - GetMyPlexAccountResponseTypedDict, - MyPlex, - MyPlexTypedDict, -) -from .getpin import ( - GET_PIN_SERVERS, - GeoData, - GeoDataTypedDict, - GetPinAuthPinContainer, - GetPinAuthPinContainerTypedDict, - GetPinRequest, - GetPinRequestTypedDict, - GetPinResponse, - GetPinResponseTypedDict, -) -from .getplaylist import ( - GetPlaylistMediaContainer, - GetPlaylistMediaContainerTypedDict, - GetPlaylistMetadata, - GetPlaylistMetadataTypedDict, - GetPlaylistRequest, - GetPlaylistRequestTypedDict, - GetPlaylistResponse, - GetPlaylistResponseBody, - GetPlaylistResponseBodyTypedDict, - GetPlaylistResponseTypedDict, -) -from .getplaylistcontents import ( - GetPlaylistContentsCountry, - GetPlaylistContentsCountryTypedDict, - GetPlaylistContentsDirector, - GetPlaylistContentsDirectorTypedDict, - GetPlaylistContentsGenre, - GetPlaylistContentsGenreTypedDict, - GetPlaylistContentsMedia, - GetPlaylistContentsMediaContainer, - GetPlaylistContentsMediaContainerTypedDict, - GetPlaylistContentsMediaTypedDict, - GetPlaylistContentsMetadata, - GetPlaylistContentsMetadataTypedDict, - GetPlaylistContentsPart, - GetPlaylistContentsPartTypedDict, - GetPlaylistContentsQueryParamType, - GetPlaylistContentsRequest, - GetPlaylistContentsRequestTypedDict, - GetPlaylistContentsResponse, - GetPlaylistContentsResponseBody, - GetPlaylistContentsResponseBodyTypedDict, - GetPlaylistContentsResponseTypedDict, - GetPlaylistContentsRole, - GetPlaylistContentsRoleTypedDict, - GetPlaylistContentsWriter, - GetPlaylistContentsWriterTypedDict, -) -from .getplaylists import ( - GetPlaylistsMediaContainer, - GetPlaylistsMediaContainerTypedDict, - GetPlaylistsMetadata, - GetPlaylistsMetadataTypedDict, - GetPlaylistsRequest, - GetPlaylistsRequestTypedDict, - GetPlaylistsResponse, - GetPlaylistsResponseBody, - GetPlaylistsResponseBodyTypedDict, - GetPlaylistsResponseTypedDict, - PlaylistType, - QueryParamSmart, -) -from .getresizedphoto import ( - GetResizedPhotoRequest, - GetResizedPhotoRequestTypedDict, - GetResizedPhotoResponse, - GetResizedPhotoResponseTypedDict, - MinSize, - Upscale, -) -from .getresourcesstatistics import ( - GetResourcesStatisticsMediaContainer, - GetResourcesStatisticsMediaContainerTypedDict, - GetResourcesStatisticsRequest, - GetResourcesStatisticsRequestTypedDict, - GetResourcesStatisticsResponse, - GetResourcesStatisticsResponseBody, - GetResourcesStatisticsResponseBodyTypedDict, - GetResourcesStatisticsResponseTypedDict, - StatisticsResources, - StatisticsResourcesTypedDict, -) -from .getsearchresults import ( - GetSearchResultsCountry, - GetSearchResultsCountryTypedDict, - GetSearchResultsDirector, - GetSearchResultsDirectorTypedDict, - GetSearchResultsGenre, - GetSearchResultsGenreTypedDict, - GetSearchResultsMedia, - GetSearchResultsMediaContainer, - GetSearchResultsMediaContainerTypedDict, - GetSearchResultsMediaTypedDict, - GetSearchResultsMetadata, - GetSearchResultsMetadataTypedDict, - GetSearchResultsPart, - GetSearchResultsPartTypedDict, - GetSearchResultsRequest, - GetSearchResultsRequestTypedDict, - GetSearchResultsResponse, - GetSearchResultsResponseBody, - GetSearchResultsResponseBodyTypedDict, - GetSearchResultsResponseTypedDict, - GetSearchResultsRole, - GetSearchResultsRoleTypedDict, - GetSearchResultsWriter, - GetSearchResultsWriterTypedDict, - Provider, - ProviderTypedDict, -) -from .getserveractivities import ( - Activity, - ActivityTypedDict, - Context, - ContextTypedDict, - GetServerActivitiesMediaContainer, - GetServerActivitiesMediaContainerTypedDict, - GetServerActivitiesResponse, - GetServerActivitiesResponseBody, - GetServerActivitiesResponseBodyTypedDict, - GetServerActivitiesResponseTypedDict, -) -from .getservercapabilities import ( - Directory, - DirectoryTypedDict, - GetServerCapabilitiesResponse, - GetServerCapabilitiesResponseBody, - GetServerCapabilitiesResponseBodyTypedDict, - GetServerCapabilitiesResponseTypedDict, - MediaContainer, - MediaContainerTypedDict, -) -from .getserverlist import ( - GetServerListMediaContainer, - GetServerListMediaContainerTypedDict, - GetServerListResponse, - GetServerListResponseBody, - GetServerListResponseBodyTypedDict, - GetServerListResponseTypedDict, - GetServerListServer, - GetServerListServerTypedDict, -) -from .getserverpreferences import ( - GetServerPreferencesMediaContainer, - GetServerPreferencesMediaContainerTypedDict, - GetServerPreferencesResponse, - GetServerPreferencesResponseBody, - GetServerPreferencesResponseBodyTypedDict, - GetServerPreferencesResponseTypedDict, - Setting, - SettingTypedDict, -) -from .getsessionhistory import ( - GetSessionHistoryMediaContainer, - GetSessionHistoryMediaContainerTypedDict, - GetSessionHistoryMetadata, - GetSessionHistoryMetadataTypedDict, - GetSessionHistoryRequest, - GetSessionHistoryRequestTypedDict, - GetSessionHistoryResponse, - GetSessionHistoryResponseBody, - GetSessionHistoryResponseBodyTypedDict, - GetSessionHistoryResponseTypedDict, - QueryParamFilter, - QueryParamFilterTypedDict, -) -from .getsessions import ( - GetSessionsMedia, - GetSessionsMediaContainer, - GetSessionsMediaContainerTypedDict, - GetSessionsMediaTypedDict, - GetSessionsMetadata, - GetSessionsMetadataTypedDict, - GetSessionsPart, - GetSessionsPartTypedDict, - GetSessionsResponse, - GetSessionsResponseBody, - GetSessionsResponseBodyTypedDict, - GetSessionsResponseTypedDict, - GetSessionsStream, - GetSessionsStreamTypedDict, - GetSessionsUser, - GetSessionsUserTypedDict, - Player, - PlayerTypedDict, - Session, - SessionTypedDict, -) -from .getsourceconnectioninformation import ( - GetSourceConnectionInformationRequest, - GetSourceConnectionInformationRequestTypedDict, - GetSourceConnectionInformationResponse, - GetSourceConnectionInformationResponseTypedDict, -) -from .getstatistics import ( - Account, - AccountTypedDict, - GetStatisticsDevice, - GetStatisticsDeviceTypedDict, - GetStatisticsMediaContainer, - GetStatisticsMediaContainerTypedDict, - GetStatisticsRequest, - GetStatisticsRequestTypedDict, - GetStatisticsResponse, - GetStatisticsResponseBody, - GetStatisticsResponseBodyTypedDict, - GetStatisticsResponseTypedDict, - StatisticsMedia, - StatisticsMediaTypedDict, -) -from .gettimeline import ( - GetTimelineRequest, - GetTimelineRequestTypedDict, - GetTimelineResponse, - GetTimelineResponseTypedDict, - State, -) -from .gettokenbypinid import ( - GET_TOKEN_BY_PIN_ID_SERVERS, - GetTokenByPinIDAuthPinContainer, - GetTokenByPinIDAuthPinContainerTypedDict, - GetTokenByPinIDGeoData, - GetTokenByPinIDGeoDataTypedDict, - GetTokenByPinIDRequest, - GetTokenByPinIDRequestTypedDict, - GetTokenByPinIDResponse, - GetTokenByPinIDResponseTypedDict, -) -from .gettokendetails import ( - AutoSelectSubtitle, - DefaultSubtitleAccessibility, - DefaultSubtitleForced, - GET_TOKEN_DETAILS_SERVERS, - GetTokenDetailsAuthenticationResponseStatus, - GetTokenDetailsAuthenticationStatus, - GetTokenDetailsResponse, - GetTokenDetailsResponseTypedDict, - GetTokenDetailsStatus, - GetTokenDetailsSubscription, - GetTokenDetailsSubscriptionTypedDict, - GetTokenDetailsUserPlexAccount, - GetTokenDetailsUserPlexAccountTypedDict, - MailingListStatus, - MediaReviewsVisibility, - Services, - ServicesTypedDict, - Subscription, - SubscriptionTypedDict, - UserProfile, - UserProfileTypedDict, - WatchedIndicator, -) -from .gettopwatchedcontent import ( - GetTopWatchedContentCountry, - GetTopWatchedContentCountryTypedDict, - GetTopWatchedContentGenre, - GetTopWatchedContentGenreTypedDict, - GetTopWatchedContentGuids, - GetTopWatchedContentGuidsTypedDict, - GetTopWatchedContentMediaContainer, - GetTopWatchedContentMediaContainerTypedDict, - GetTopWatchedContentMetadata, - GetTopWatchedContentMetadataTypedDict, - GetTopWatchedContentQueryParamType, - GetTopWatchedContentRequest, - GetTopWatchedContentRequestTypedDict, - GetTopWatchedContentResponse, - GetTopWatchedContentResponseBody, - GetTopWatchedContentResponseBodyTypedDict, - GetTopWatchedContentResponseTypedDict, - GetTopWatchedContentRole, - GetTopWatchedContentRoleTypedDict, - GetTopWatchedContentUser, - GetTopWatchedContentUserTypedDict, -) -from .gettranscodesessions import ( - GetTranscodeSessionsMediaContainer, - GetTranscodeSessionsMediaContainerTypedDict, - GetTranscodeSessionsResponse, - GetTranscodeSessionsResponseBody, - GetTranscodeSessionsResponseBodyTypedDict, - GetTranscodeSessionsResponseTypedDict, - TranscodeSession, - TranscodeSessionTypedDict, -) -from .gettransienttoken import ( - GetTransientTokenQueryParamType, - GetTransientTokenRequest, - GetTransientTokenRequestTypedDict, - GetTransientTokenResponse, - GetTransientTokenResponseTypedDict, - Scope, -) -from .getupdatestatus import ( - GetUpdateStatusMediaContainer, - GetUpdateStatusMediaContainerTypedDict, - GetUpdateStatusResponse, - GetUpdateStatusResponseBody, - GetUpdateStatusResponseBodyTypedDict, - GetUpdateStatusResponseTypedDict, - Release, - ReleaseTypedDict, -) -from .getuserfriends import ( - Friend, - FriendTypedDict, - GET_USER_FRIENDS_SERVERS, - GetUserFriendsResponse, - GetUserFriendsResponseTypedDict, - SharedServers, - SharedServersTypedDict, - SharedSources, - SharedSourcesTypedDict, - Status, -) -from .logline import ( - Level, - LogLineRequest, - LogLineRequestTypedDict, - LogLineResponse, - LogLineResponseTypedDict, -) -from .logmultiline import LogMultiLineResponse, LogMultiLineResponseTypedDict -from .markplayed import ( - MarkPlayedRequest, - MarkPlayedRequestTypedDict, - MarkPlayedResponse, - MarkPlayedResponseTypedDict, -) -from .markunplayed import ( - MarkUnplayedRequest, - MarkUnplayedRequestTypedDict, - MarkUnplayedResponse, - MarkUnplayedResponseTypedDict, -) -from .performsearch import ( - PerformSearchRequest, - PerformSearchRequestTypedDict, - PerformSearchResponse, - PerformSearchResponseTypedDict, -) -from .performvoicesearch import ( - PerformVoiceSearchRequest, - PerformVoiceSearchRequestTypedDict, - PerformVoiceSearchResponse, - PerformVoiceSearchResponseTypedDict, -) -from .post_media_arts import ( - PostMediaArtsRequest, - PostMediaArtsRequestTypedDict, - PostMediaArtsResponse, - PostMediaArtsResponseTypedDict, -) -from .post_media_poster import ( - PostMediaPosterRequest, - PostMediaPosterRequestTypedDict, - PostMediaPosterResponse, - PostMediaPosterResponseTypedDict, -) -from .post_users_sign_in_data import ( - Billing, - BillingTypedDict, - InternalPaymentMethod, - InternalPaymentMethodTypedDict, - POST_USERS_SIGN_IN_DATA_SERVERS, - PastSubscription, - PastSubscriptionTypedDict, - PostUsersSignInDataAuthenticationResponseStatus, - PostUsersSignInDataAuthenticationStatus, - PostUsersSignInDataAuthenticationSubscription, - PostUsersSignInDataAuthenticationSubscriptionTypedDict, - PostUsersSignInDataAutoSelectSubtitle, - PostUsersSignInDataDefaultSubtitleAccessibility, - PostUsersSignInDataDefaultSubtitleForced, - PostUsersSignInDataMailingListStatus, - PostUsersSignInDataMediaReviewsVisibility, - PostUsersSignInDataRequest, - PostUsersSignInDataRequestBody, - PostUsersSignInDataRequestBodyTypedDict, - PostUsersSignInDataRequestTypedDict, - PostUsersSignInDataResponse, - PostUsersSignInDataResponseTypedDict, - PostUsersSignInDataServices, - PostUsersSignInDataServicesTypedDict, - PostUsersSignInDataState, - PostUsersSignInDataStatus, - PostUsersSignInDataSubscription, - PostUsersSignInDataSubscriptionTypedDict, - PostUsersSignInDataUserPlexAccount, - PostUsersSignInDataUserPlexAccountTypedDict, - PostUsersSignInDataUserProfile, - PostUsersSignInDataUserProfileTypedDict, - PostUsersSignInDataWatchedIndicator, - Trials, - TrialsTypedDict, -) -from .startalltasks import StartAllTasksResponse, StartAllTasksResponseTypedDict -from .starttask import ( - StartTaskRequest, - StartTaskRequestTypedDict, - StartTaskResponse, - StartTaskResponseTypedDict, - TaskName, -) -from .startuniversaltranscode import ( - StartUniversalTranscodeRequest, - StartUniversalTranscodeRequestTypedDict, - StartUniversalTranscodeResponse, - StartUniversalTranscodeResponseTypedDict, -) -from .stopalltasks import StopAllTasksResponse, StopAllTasksResponseTypedDict -from .stoptask import ( - PathParamTaskName, - StopTaskRequest, - StopTaskRequestTypedDict, - StopTaskResponse, - StopTaskResponseTypedDict, -) -from .stoptranscodesession import ( - StopTranscodeSessionRequest, - StopTranscodeSessionRequestTypedDict, - StopTranscodeSessionResponse, - StopTranscodeSessionResponseTypedDict, -) -from .updateplaylist import ( - UpdatePlaylistRequest, - UpdatePlaylistRequestTypedDict, - UpdatePlaylistResponse, - UpdatePlaylistResponseTypedDict, -) -from .updateplayprogress import ( - UpdatePlayProgressRequest, - UpdatePlayProgressRequestTypedDict, - UpdatePlayProgressResponse, - UpdatePlayProgressResponseTypedDict, -) -from .uploadplaylist import ( - QueryParamForce, - UploadPlaylistRequest, - UploadPlaylistRequestTypedDict, - UploadPlaylistResponse, - UploadPlaylistResponseTypedDict, -) +from typing import TYPE_CHECKING +from importlib import import_module +if TYPE_CHECKING: + from .addplaylistcontents import ( + AddPlaylistContentsMediaContainer, + AddPlaylistContentsMediaContainerTypedDict, + AddPlaylistContentsMetadata, + AddPlaylistContentsMetadataTypedDict, + AddPlaylistContentsRequest, + AddPlaylistContentsRequestTypedDict, + AddPlaylistContentsResponse, + AddPlaylistContentsResponseBody, + AddPlaylistContentsResponseBodyTypedDict, + AddPlaylistContentsResponseTypedDict, + ) + from .applyupdates import ( + ApplyUpdatesRequest, + ApplyUpdatesRequestTypedDict, + ApplyUpdatesResponse, + ApplyUpdatesResponseTypedDict, + Skip, + Tonight, + ) + from .cancelserveractivities import ( + CancelServerActivitiesRequest, + CancelServerActivitiesRequestTypedDict, + CancelServerActivitiesResponse, + CancelServerActivitiesResponseTypedDict, + ) + from .checkforupdates import ( + CheckForUpdatesRequest, + CheckForUpdatesRequestTypedDict, + CheckForUpdatesResponse, + CheckForUpdatesResponseTypedDict, + Download, + ) + from .clearplaylistcontents import ( + ClearPlaylistContentsRequest, + ClearPlaylistContentsRequestTypedDict, + ClearPlaylistContentsResponse, + ClearPlaylistContentsResponseTypedDict, + ) + from .createplaylist import ( + CreatePlaylistMediaContainer, + CreatePlaylistMediaContainerTypedDict, + CreatePlaylistMetadata, + CreatePlaylistMetadataTypedDict, + CreatePlaylistQueryParamType, + CreatePlaylistRequest, + CreatePlaylistRequestTypedDict, + CreatePlaylistResponse, + CreatePlaylistResponseBody, + CreatePlaylistResponseBodyTypedDict, + CreatePlaylistResponseTypedDict, + Smart, + ) + from .deletelibrary import ( + DeleteLibraryRequest, + DeleteLibraryRequestTypedDict, + DeleteLibraryResponse, + DeleteLibraryResponseTypedDict, + ) + from .deleteplaylist import ( + DeletePlaylistRequest, + DeletePlaylistRequestTypedDict, + DeletePlaylistResponse, + DeletePlaylistResponseTypedDict, + ) + 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, + GetAllLibrariesLocation, + GetAllLibrariesLocationTypedDict, + GetAllLibrariesMediaContainer, + GetAllLibrariesMediaContainerTypedDict, + GetAllLibrariesResponse, + GetAllLibrariesResponseBody, + GetAllLibrariesResponseBodyTypedDict, + GetAllLibrariesResponseTypedDict, + GetAllLibrariesType, + Hidden, + ) + from .get_all_media_library import ( + GetAllMediaLibraryActiveDirection, + GetAllMediaLibraryCollection, + GetAllMediaLibraryCollectionTypedDict, + GetAllMediaLibraryCountry, + GetAllMediaLibraryCountryTypedDict, + GetAllMediaLibraryDefaultDirection, + GetAllMediaLibraryDirector, + GetAllMediaLibraryDirectorTypedDict, + GetAllMediaLibraryField, + GetAllMediaLibraryFieldType, + GetAllMediaLibraryFieldTypeTypedDict, + GetAllMediaLibraryFieldTypedDict, + GetAllMediaLibraryFilter, + GetAllMediaLibraryFilterTypedDict, + GetAllMediaLibraryGenre, + GetAllMediaLibraryGenreTypedDict, + GetAllMediaLibraryGuids, + GetAllMediaLibraryGuidsTypedDict, + GetAllMediaLibraryHasThumbnail, + GetAllMediaLibraryImage, + GetAllMediaLibraryImageTypedDict, + GetAllMediaLibraryLibraryOptimizedForStreaming, + GetAllMediaLibraryLibraryOptimizedForStreamingTypedDict, + GetAllMediaLibraryLibraryResponseType, + GetAllMediaLibraryLibraryType, + GetAllMediaLibraryMedia, + GetAllMediaLibraryMediaContainer, + GetAllMediaLibraryMediaContainerTypedDict, + GetAllMediaLibraryMediaTypedDict, + GetAllMediaLibraryMeta, + GetAllMediaLibraryMetaTypedDict, + GetAllMediaLibraryMetadata, + GetAllMediaLibraryMetadataTypedDict, + GetAllMediaLibraryOperator, + GetAllMediaLibraryOperatorTypedDict, + GetAllMediaLibraryOptimizedForStreaming, + GetAllMediaLibraryOptimizedForStreaming1, + GetAllMediaLibraryOptimizedForStreamingTypedDict, + GetAllMediaLibraryPart, + GetAllMediaLibraryPartTypedDict, + GetAllMediaLibraryQueryParamIncludeMeta, + GetAllMediaLibraryQueryParamType, + GetAllMediaLibraryRequest, + GetAllMediaLibraryRequestTypedDict, + GetAllMediaLibraryResponse, + GetAllMediaLibraryResponseBody, + GetAllMediaLibraryResponseBodyTypedDict, + GetAllMediaLibraryResponseTypedDict, + GetAllMediaLibraryRole, + GetAllMediaLibraryRoleTypedDict, + GetAllMediaLibrarySort, + GetAllMediaLibrarySortTypedDict, + GetAllMediaLibraryStream, + GetAllMediaLibraryStreamType, + GetAllMediaLibraryStreamTypedDict, + GetAllMediaLibraryType, + GetAllMediaLibraryTypeTypedDict, + GetAllMediaLibraryUltraBlurColors, + GetAllMediaLibraryUltraBlurColorsTypedDict, + GetAllMediaLibraryWriter, + GetAllMediaLibraryWriterTypedDict, + IncludeAdvanced, + OptimizedForStreaming1, + QueryParamIncludeCollections, + QueryParamIncludeExternalMedia, + QueryParamIncludeGuids, + ) + from .get_banner_image import ( + GetBannerImageRequest, + GetBannerImageRequestTypedDict, + GetBannerImageResponse, + GetBannerImageResponseTypedDict, + ) + from .get_countries_library import ( + GetCountriesLibraryDirectory, + GetCountriesLibraryDirectoryTypedDict, + GetCountriesLibraryMediaContainer, + GetCountriesLibraryMediaContainerTypedDict, + GetCountriesLibraryQueryParamType, + GetCountriesLibraryRequest, + GetCountriesLibraryRequestTypedDict, + GetCountriesLibraryResponse, + GetCountriesLibraryResponseBody, + GetCountriesLibraryResponseBodyTypedDict, + GetCountriesLibraryResponseTypedDict, + ) + from .get_genres_library import ( + GetGenresLibraryDirectory, + GetGenresLibraryDirectoryTypedDict, + GetGenresLibraryMediaContainer, + GetGenresLibraryMediaContainerTypedDict, + GetGenresLibraryQueryParamType, + GetGenresLibraryRequest, + GetGenresLibraryRequestTypedDict, + GetGenresLibraryResponse, + GetGenresLibraryResponseBody, + GetGenresLibraryResponseBodyTypedDict, + GetGenresLibraryResponseTypedDict, + ) + from .get_library_details import ( + GetLibraryDetailsDirectory, + GetLibraryDetailsDirectoryTypedDict, + GetLibraryDetailsField, + GetLibraryDetailsFieldType, + GetLibraryDetailsFieldTypeTypedDict, + GetLibraryDetailsFieldTypedDict, + GetLibraryDetailsFilter, + GetLibraryDetailsFilterTypedDict, + GetLibraryDetailsMediaContainer, + GetLibraryDetailsMediaContainerTypedDict, + GetLibraryDetailsOperator, + GetLibraryDetailsOperatorTypedDict, + GetLibraryDetailsRequest, + GetLibraryDetailsRequestTypedDict, + GetLibraryDetailsResponse, + GetLibraryDetailsResponseBody, + GetLibraryDetailsResponseBodyTypedDict, + GetLibraryDetailsResponseTypedDict, + GetLibraryDetailsSort, + GetLibraryDetailsSortTypedDict, + GetLibraryDetailsType, + GetLibraryDetailsTypeTypedDict, + IncludeDetails, + ) + from .get_library_items import ( + EnableCreditsMarkerGeneration, + EpisodeSort, + FlattenSeasons, + GetLibraryItemsActiveDirection, + GetLibraryItemsCollection, + GetLibraryItemsCollectionTypedDict, + GetLibraryItemsCountry, + GetLibraryItemsCountryTypedDict, + GetLibraryItemsDefaultDirection, + GetLibraryItemsDirector, + GetLibraryItemsDirectorTypedDict, + GetLibraryItemsField, + GetLibraryItemsFieldType, + GetLibraryItemsFieldTypeTypedDict, + GetLibraryItemsFieldTypedDict, + GetLibraryItemsFilter, + GetLibraryItemsFilterTypedDict, + GetLibraryItemsGenre, + GetLibraryItemsGenreTypedDict, + GetLibraryItemsHasThumbnail, + GetLibraryItemsImage, + GetLibraryItemsImageTypedDict, + GetLibraryItemsLibraryActiveDirection, + GetLibraryItemsLibraryDefaultDirection, + GetLibraryItemsLibraryField, + GetLibraryItemsLibraryFieldType, + GetLibraryItemsLibraryFieldTypeTypedDict, + GetLibraryItemsLibraryFieldTypedDict, + GetLibraryItemsLibraryFilter, + GetLibraryItemsLibraryFilterTypedDict, + GetLibraryItemsLibraryOperator, + GetLibraryItemsLibraryOperatorTypedDict, + GetLibraryItemsLibraryResponse200Type, + GetLibraryItemsLibraryResponseType, + GetLibraryItemsLibraryResponseTypeTypedDict, + GetLibraryItemsLibrarySort, + GetLibraryItemsLibrarySortTypedDict, + GetLibraryItemsLibraryType, + GetLibraryItemsLocation, + GetLibraryItemsLocationTypedDict, + GetLibraryItemsMedia, + GetLibraryItemsMediaContainer, + GetLibraryItemsMediaContainerTypedDict, + GetLibraryItemsMediaTypedDict, + GetLibraryItemsMeta, + GetLibraryItemsMetaTypedDict, + GetLibraryItemsMetadata, + GetLibraryItemsMetadataTypedDict, + GetLibraryItemsOperator, + GetLibraryItemsOperatorTypedDict, + GetLibraryItemsOptimizedForStreaming, + GetLibraryItemsPart, + GetLibraryItemsPartTypedDict, + GetLibraryItemsQueryParamIncludeMeta, + GetLibraryItemsQueryParamType, + GetLibraryItemsRequest, + GetLibraryItemsRequestTypedDict, + GetLibraryItemsResponse, + GetLibraryItemsResponseBody, + GetLibraryItemsResponseBodyTypedDict, + GetLibraryItemsResponseTypedDict, + GetLibraryItemsRole, + GetLibraryItemsRoleTypedDict, + GetLibraryItemsSort, + GetLibraryItemsSortTypedDict, + GetLibraryItemsStream, + GetLibraryItemsStreamTypedDict, + GetLibraryItemsType, + GetLibraryItemsTypeTypedDict, + GetLibraryItemsUltraBlurColors, + GetLibraryItemsUltraBlurColorsTypedDict, + GetLibraryItemsWriter, + GetLibraryItemsWriterTypedDict, + IncludeGuids, + MediaGUID, + MediaGUIDTypedDict, + MetaDataRating, + MetaDataRatingTypedDict, + ShowOrdering, + Tag, + ) + from .get_media_arts import ( + GetMediaArtsMediaContainer, + GetMediaArtsMediaContainerTypedDict, + GetMediaArtsMetadata, + GetMediaArtsMetadataTypedDict, + GetMediaArtsRequest, + GetMediaArtsRequestTypedDict, + GetMediaArtsResponse, + GetMediaArtsResponseBody, + GetMediaArtsResponseBodyTypedDict, + GetMediaArtsResponseTypedDict, + ) + from .get_media_meta_data import ( + Attributes, + AttributesTypedDict, + Chapter, + ChapterTypedDict, + Extras, + ExtrasTypedDict, + GetMediaMetaDataCountry, + GetMediaMetaDataCountryTypedDict, + GetMediaMetaDataDirector, + GetMediaMetaDataDirectorTypedDict, + GetMediaMetaDataGenre, + GetMediaMetaDataGenreTypedDict, + GetMediaMetaDataGuids, + GetMediaMetaDataGuidsTypedDict, + GetMediaMetaDataHasThumbnail, + GetMediaMetaDataImage, + GetMediaMetaDataImageTypedDict, + GetMediaMetaDataLibraryOptimizedForStreaming, + GetMediaMetaDataLibraryOptimizedForStreamingTypedDict, + GetMediaMetaDataLibraryType, + GetMediaMetaDataLocation, + GetMediaMetaDataLocationTypedDict, + GetMediaMetaDataMedia, + GetMediaMetaDataMediaContainer, + GetMediaMetaDataMediaContainerTypedDict, + GetMediaMetaDataMediaTypedDict, + GetMediaMetaDataMetadata, + GetMediaMetaDataMetadataTypedDict, + GetMediaMetaDataOptimizedForStreaming, + GetMediaMetaDataOptimizedForStreaming1, + GetMediaMetaDataOptimizedForStreamingLibrary1, + GetMediaMetaDataOptimizedForStreamingTypedDict, + GetMediaMetaDataPart, + GetMediaMetaDataPartTypedDict, + GetMediaMetaDataProducer, + GetMediaMetaDataProducerTypedDict, + GetMediaMetaDataRequest, + GetMediaMetaDataRequestTypedDict, + GetMediaMetaDataResponse, + GetMediaMetaDataResponseBody, + GetMediaMetaDataResponseBodyTypedDict, + GetMediaMetaDataResponseTypedDict, + GetMediaMetaDataRole, + GetMediaMetaDataRoleTypedDict, + GetMediaMetaDataSimilar, + GetMediaMetaDataSimilarTypedDict, + GetMediaMetaDataStream, + GetMediaMetaDataStreamType, + GetMediaMetaDataStreamTypedDict, + GetMediaMetaDataType, + GetMediaMetaDataUltraBlurColors, + GetMediaMetaDataUltraBlurColorsTypedDict, + GetMediaMetaDataWriter, + GetMediaMetaDataWriterTypedDict, + Marker, + MarkerTypedDict, + Ratings, + RatingsTypedDict, + ) + from .get_media_posters import ( + GetMediaPostersMediaContainer, + GetMediaPostersMediaContainerTypedDict, + GetMediaPostersMetadata, + GetMediaPostersMetadataTypedDict, + GetMediaPostersRequest, + GetMediaPostersRequestTypedDict, + GetMediaPostersResponse, + GetMediaPostersResponseBody, + GetMediaPostersResponseBodyTypedDict, + GetMediaPostersResponseTypedDict, + ) + from .get_media_providers import ( + Action, + ActionTypedDict, + Feature, + FeatureTypedDict, + GetMediaProvidersDirectory, + GetMediaProvidersDirectoryTypedDict, + GetMediaProvidersMediaContainer, + GetMediaProvidersMediaContainerTypedDict, + GetMediaProvidersRequest, + GetMediaProvidersRequestTypedDict, + GetMediaProvidersResponse, + GetMediaProvidersResponseBody, + GetMediaProvidersResponseBodyTypedDict, + GetMediaProvidersResponseTypedDict, + MediaProvider, + MediaProviderTypedDict, + Pivot, + PivotTypedDict, + ) + from .get_recently_added import ( + Collection, + CollectionTypedDict, + Country, + CountryTypedDict, + Director, + DirectorTypedDict, + Genre, + GenreTypedDict, + GetRecentlyAddedActiveDirection, + GetRecentlyAddedDefaultDirection, + GetRecentlyAddedField, + GetRecentlyAddedFieldType, + GetRecentlyAddedFieldTypeTypedDict, + GetRecentlyAddedFieldTypedDict, + GetRecentlyAddedFilter, + GetRecentlyAddedFilterTypedDict, + GetRecentlyAddedHubsResponseType, + GetRecentlyAddedHubsType, + GetRecentlyAddedImage, + GetRecentlyAddedImageTypedDict, + GetRecentlyAddedMediaContainer, + GetRecentlyAddedMediaContainerTypedDict, + GetRecentlyAddedMetadata, + GetRecentlyAddedMetadataTypedDict, + GetRecentlyAddedOperator, + GetRecentlyAddedOperatorTypedDict, + GetRecentlyAddedOptimizedForStreaming, + GetRecentlyAddedOptimizedForStreaming1, + GetRecentlyAddedOptimizedForStreamingTypedDict, + GetRecentlyAddedRequest, + GetRecentlyAddedRequestTypedDict, + GetRecentlyAddedResponse, + GetRecentlyAddedResponseBody, + GetRecentlyAddedResponseBodyTypedDict, + GetRecentlyAddedResponseTypedDict, + GetRecentlyAddedSort, + GetRecentlyAddedSortTypedDict, + GetRecentlyAddedType, + GetRecentlyAddedTypeTypedDict, + Guids, + GuidsTypedDict, + HasThumbnail, + IncludeMeta, + Location, + LocationTypedDict, + Media, + MediaTypedDict, + Meta, + MetaTypedDict, + One, + OptimizedForStreaming, + OptimizedForStreamingTypedDict, + Part, + PartTypedDict, + Producer, + ProducerTypedDict, + Rating, + RatingTypedDict, + Role, + RoleTypedDict, + Similar, + SimilarTypedDict, + Stream, + StreamType, + StreamTypedDict, + Type, + UltraBlurColors, + UltraBlurColorsTypedDict, + Writer, + WriterTypedDict, + ) + from .get_recently_added_library import ( + ActiveDirection, + DefaultDirection, + FieldT, + FieldTTypedDict, + FieldType, + FieldTypeTypedDict, + GetRecentlyAddedLibraryCountry, + GetRecentlyAddedLibraryCountryTypedDict, + GetRecentlyAddedLibraryDirector, + GetRecentlyAddedLibraryDirectorTypedDict, + GetRecentlyAddedLibraryFilter, + GetRecentlyAddedLibraryFilterTypedDict, + GetRecentlyAddedLibraryGenre, + GetRecentlyAddedLibraryGenreTypedDict, + GetRecentlyAddedLibraryMedia, + GetRecentlyAddedLibraryMediaContainer, + GetRecentlyAddedLibraryMediaContainerTypedDict, + GetRecentlyAddedLibraryMediaTypedDict, + GetRecentlyAddedLibraryMetadata, + GetRecentlyAddedLibraryMetadataTypedDict, + GetRecentlyAddedLibraryPart, + GetRecentlyAddedLibraryPartTypedDict, + GetRecentlyAddedLibraryRequest, + GetRecentlyAddedLibraryRequestTypedDict, + GetRecentlyAddedLibraryResponse, + GetRecentlyAddedLibraryResponseBody, + GetRecentlyAddedLibraryResponseBodyTypedDict, + GetRecentlyAddedLibraryResponseTypedDict, + GetRecentlyAddedLibraryRole, + GetRecentlyAddedLibraryRoleTypedDict, + GetRecentlyAddedLibraryType, + GetRecentlyAddedLibraryTypeTypedDict, + GetRecentlyAddedLibraryWriter, + GetRecentlyAddedLibraryWriterTypedDict, + Operator, + OperatorTypedDict, + QueryParamIncludeMeta, + QueryParamType, + Sort, + SortTypedDict, + ) + from .get_refresh_library_metadata import ( + Force, + GetRefreshLibraryMetadataRequest, + GetRefreshLibraryMetadataRequestTypedDict, + GetRefreshLibraryMetadataResponse, + GetRefreshLibraryMetadataResponseTypedDict, + ) + from .get_search_all_libraries import ( + GetSearchAllLibrariesCollection, + GetSearchAllLibrariesCollectionTypedDict, + GetSearchAllLibrariesCountry, + GetSearchAllLibrariesCountryTypedDict, + GetSearchAllLibrariesDirector, + GetSearchAllLibrariesDirectorTypedDict, + GetSearchAllLibrariesEnableCreditsMarkerGeneration, + GetSearchAllLibrariesEpisodeSort, + GetSearchAllLibrariesFlattenSeasons, + GetSearchAllLibrariesGenre, + GetSearchAllLibrariesGenreTypedDict, + GetSearchAllLibrariesHasThumbnail, + GetSearchAllLibrariesImage, + GetSearchAllLibrariesImageTypedDict, + GetSearchAllLibrariesLibraryType, + GetSearchAllLibrariesLocation, + GetSearchAllLibrariesLocationTypedDict, + GetSearchAllLibrariesMedia, + GetSearchAllLibrariesMediaContainer, + GetSearchAllLibrariesMediaContainerTypedDict, + GetSearchAllLibrariesMediaGUID, + GetSearchAllLibrariesMediaGUIDTypedDict, + GetSearchAllLibrariesMediaTypedDict, + GetSearchAllLibrariesMetaDataRating, + GetSearchAllLibrariesMetaDataRatingTypedDict, + GetSearchAllLibrariesMetadata, + GetSearchAllLibrariesMetadataTypedDict, + GetSearchAllLibrariesOptimizedForStreaming, + GetSearchAllLibrariesPart, + GetSearchAllLibrariesPartTypedDict, + GetSearchAllLibrariesQueryParamIncludeCollections, + GetSearchAllLibrariesQueryParamIncludeExternalMedia, + GetSearchAllLibrariesRequest, + GetSearchAllLibrariesRequestTypedDict, + GetSearchAllLibrariesResponse, + GetSearchAllLibrariesResponseBody, + GetSearchAllLibrariesResponseBodyTypedDict, + GetSearchAllLibrariesResponseTypedDict, + GetSearchAllLibrariesRole, + GetSearchAllLibrariesRoleTypedDict, + GetSearchAllLibrariesShowOrdering, + GetSearchAllLibrariesStream, + GetSearchAllLibrariesStreamTypedDict, + GetSearchAllLibrariesType, + GetSearchAllLibrariesUltraBlurColors, + GetSearchAllLibrariesUltraBlurColorsTypedDict, + GetSearchAllLibrariesWriter, + GetSearchAllLibrariesWriterTypedDict, + SearchResult, + SearchResultTypedDict, + SearchTypes, + ) + from .get_search_library import ( + GetSearchLibraryMediaContainer, + GetSearchLibraryMediaContainerTypedDict, + GetSearchLibraryMetadata, + GetSearchLibraryMetadataTypedDict, + GetSearchLibraryQueryParamType, + GetSearchLibraryRequest, + GetSearchLibraryRequestTypedDict, + GetSearchLibraryResponse, + GetSearchLibraryResponseBody, + GetSearchLibraryResponseBodyTypedDict, + GetSearchLibraryResponseTypedDict, + ) + from .get_server_identity import ( + GetServerIdentityMediaContainer, + GetServerIdentityMediaContainerTypedDict, + GetServerIdentityResponse, + GetServerIdentityResponseBody, + GetServerIdentityResponseBodyTypedDict, + GetServerIdentityResponseTypedDict, + ) + from .get_server_resources import ( + Connections, + ConnectionsTypedDict, + GET_SERVER_RESOURCES_SERVERS, + GetServerResourcesRequest, + GetServerResourcesRequestTypedDict, + GetServerResourcesResponse, + GetServerResourcesResponseTypedDict, + IncludeHTTPS, + IncludeIPv6, + IncludeRelay, + PlexDevice, + PlexDeviceTypedDict, + Protocol, + ) + from .get_thumb_image import ( + GetThumbImageRequest, + GetThumbImageRequestTypedDict, + GetThumbImageResponse, + GetThumbImageResponseTypedDict, + ) + from .get_users import ( + AllLibraries, + AllowCameraUpload, + AllowChannels, + AllowSubtitleAdmin, + AllowSync, + AllowTuners, + GET_USERS_SERVERS, + GetUsersMediaContainer, + GetUsersMediaContainerTypedDict, + GetUsersRequest, + GetUsersRequestTypedDict, + GetUsersResponse, + GetUsersResponseBody, + GetUsersResponseBodyTypedDict, + GetUsersResponseTypedDict, + GetUsersServer, + GetUsersServerTypedDict, + Home, + Owned, + Pending, + Protected, + Restricted, + User, + UserTypedDict, + ) + from .get_watch_list import ( + Filter, + GET_WATCH_LIST_SERVERS, + GetWatchListRequest, + GetWatchListRequestTypedDict, + GetWatchListResponse, + GetWatchListResponseBody, + GetWatchListResponseBodyTypedDict, + GetWatchListResponseTypedDict, + Image, + ImageTypedDict, + IncludeCollections, + IncludeExternalMedia, + Libtype, + Metadata, + MetadataTypedDict, + ) + from .getavailableclients import ( + GetAvailableClientsMediaContainer, + GetAvailableClientsMediaContainerTypedDict, + GetAvailableClientsResponse, + GetAvailableClientsResponseBody, + GetAvailableClientsResponseBodyTypedDict, + GetAvailableClientsResponseTypedDict, + Server, + ServerTypedDict, + ) + from .getbandwidthstatistics import ( + GetBandwidthStatisticsAccount, + GetBandwidthStatisticsAccountTypedDict, + GetBandwidthStatisticsDevice, + GetBandwidthStatisticsDeviceTypedDict, + GetBandwidthStatisticsMediaContainer, + GetBandwidthStatisticsMediaContainerTypedDict, + GetBandwidthStatisticsRequest, + GetBandwidthStatisticsRequestTypedDict, + GetBandwidthStatisticsResponse, + GetBandwidthStatisticsResponseBody, + GetBandwidthStatisticsResponseBodyTypedDict, + GetBandwidthStatisticsResponseTypedDict, + StatisticsBandwidth, + StatisticsBandwidthTypedDict, + ) + from .getbutlertasks import ( + ButlerTask, + ButlerTaskTypedDict, + ButlerTasks, + ButlerTasksTypedDict, + GetButlerTasksResponse, + GetButlerTasksResponseBody, + GetButlerTasksResponseBodyTypedDict, + GetButlerTasksResponseTypedDict, + ) + from .getcompanionsdata import ( + GET_COMPANIONS_DATA_SERVERS, + GetCompanionsDataResponse, + GetCompanionsDataResponseTypedDict, + ResponseBody, + ResponseBodyTypedDict, + ) + from .getdevices import ( + Device, + DeviceTypedDict, + GetDevicesMediaContainer, + GetDevicesMediaContainerTypedDict, + GetDevicesResponse, + GetDevicesResponseBody, + GetDevicesResponseBodyTypedDict, + GetDevicesResponseTypedDict, + ) + from .getfilehash import ( + GetFileHashRequest, + GetFileHashRequestTypedDict, + GetFileHashResponse, + GetFileHashResponseTypedDict, + ) + from .getgeodata import ( + GET_GEO_DATA_SERVERS, + GetGeoDataGeoData, + GetGeoDataGeoDataTypedDict, + GetGeoDataResponse, + GetGeoDataResponseTypedDict, + ) + from .getglobalhubs import ( + GetGlobalHubsMediaContainer, + GetGlobalHubsMediaContainerTypedDict, + GetGlobalHubsMetadata, + GetGlobalHubsMetadataTypedDict, + GetGlobalHubsRequest, + GetGlobalHubsRequestTypedDict, + GetGlobalHubsResponse, + GetGlobalHubsResponseBody, + GetGlobalHubsResponseBodyTypedDict, + GetGlobalHubsResponseTypedDict, + Hub, + HubTypedDict, + OnlyTransient, + ) + from .gethomedata import ( + GetHomeDataResponse, + GetHomeDataResponseBody, + GetHomeDataResponseBodyTypedDict, + GetHomeDataResponseTypedDict, + ) + from .getlibraryhubs import ( + GetLibraryHubsCountry, + GetLibraryHubsCountryTypedDict, + GetLibraryHubsDirector, + GetLibraryHubsDirectorTypedDict, + GetLibraryHubsGenre, + GetLibraryHubsGenreTypedDict, + GetLibraryHubsHub, + GetLibraryHubsHubTypedDict, + GetLibraryHubsMedia, + GetLibraryHubsMediaContainer, + GetLibraryHubsMediaContainerTypedDict, + GetLibraryHubsMediaTypedDict, + GetLibraryHubsMetadata, + GetLibraryHubsMetadataTypedDict, + GetLibraryHubsPart, + GetLibraryHubsPartTypedDict, + GetLibraryHubsRequest, + GetLibraryHubsRequestTypedDict, + GetLibraryHubsResponse, + GetLibraryHubsResponseBody, + GetLibraryHubsResponseBodyTypedDict, + GetLibraryHubsResponseTypedDict, + GetLibraryHubsRole, + GetLibraryHubsRoleTypedDict, + GetLibraryHubsWriter, + GetLibraryHubsWriterTypedDict, + QueryParamOnlyTransient, + ) + from .getmetadatachildren import ( + GetMetadataChildrenDirectory, + GetMetadataChildrenDirectoryTypedDict, + GetMetadataChildrenMediaContainer, + GetMetadataChildrenMediaContainerTypedDict, + GetMetadataChildrenMetadata, + GetMetadataChildrenMetadataTypedDict, + GetMetadataChildrenRequest, + GetMetadataChildrenRequestTypedDict, + GetMetadataChildrenResponse, + GetMetadataChildrenResponseBody, + GetMetadataChildrenResponseBodyTypedDict, + GetMetadataChildrenResponseTypedDict, + ) + from .getmyplexaccount import ( + GetMyPlexAccountResponse, + GetMyPlexAccountResponseBody, + GetMyPlexAccountResponseBodyTypedDict, + GetMyPlexAccountResponseTypedDict, + MyPlex, + MyPlexTypedDict, + ) + from .getpin import ( + GET_PIN_SERVERS, + GeoData, + GeoDataTypedDict, + GetPinAuthPinContainer, + GetPinAuthPinContainerTypedDict, + GetPinRequest, + GetPinRequestTypedDict, + GetPinResponse, + GetPinResponseTypedDict, + ) + from .getplaylist import ( + GetPlaylistMediaContainer, + GetPlaylistMediaContainerTypedDict, + GetPlaylistMetadata, + GetPlaylistMetadataTypedDict, + GetPlaylistRequest, + GetPlaylistRequestTypedDict, + GetPlaylistResponse, + GetPlaylistResponseBody, + GetPlaylistResponseBodyTypedDict, + GetPlaylistResponseTypedDict, + ) + from .getplaylistcontents import ( + GetPlaylistContentsCountry, + GetPlaylistContentsCountryTypedDict, + GetPlaylistContentsDirector, + GetPlaylistContentsDirectorTypedDict, + GetPlaylistContentsGenre, + GetPlaylistContentsGenreTypedDict, + GetPlaylistContentsMedia, + GetPlaylistContentsMediaContainer, + GetPlaylistContentsMediaContainerTypedDict, + GetPlaylistContentsMediaTypedDict, + GetPlaylistContentsMetadata, + GetPlaylistContentsMetadataTypedDict, + GetPlaylistContentsPart, + GetPlaylistContentsPartTypedDict, + GetPlaylistContentsQueryParamType, + GetPlaylistContentsRequest, + GetPlaylistContentsRequestTypedDict, + GetPlaylistContentsResponse, + GetPlaylistContentsResponseBody, + GetPlaylistContentsResponseBodyTypedDict, + GetPlaylistContentsResponseTypedDict, + GetPlaylistContentsRole, + GetPlaylistContentsRoleTypedDict, + GetPlaylistContentsWriter, + GetPlaylistContentsWriterTypedDict, + ) + from .getplaylists import ( + GetPlaylistsMediaContainer, + GetPlaylistsMediaContainerTypedDict, + GetPlaylistsMetadata, + GetPlaylistsMetadataTypedDict, + GetPlaylistsRequest, + GetPlaylistsRequestTypedDict, + GetPlaylistsResponse, + GetPlaylistsResponseBody, + GetPlaylistsResponseBodyTypedDict, + GetPlaylistsResponseTypedDict, + PlaylistType, + QueryParamSmart, + ) + from .getresizedphoto import ( + GetResizedPhotoRequest, + GetResizedPhotoRequestTypedDict, + GetResizedPhotoResponse, + GetResizedPhotoResponseTypedDict, + MinSize, + Upscale, + ) + from .getresourcesstatistics import ( + GetResourcesStatisticsMediaContainer, + GetResourcesStatisticsMediaContainerTypedDict, + GetResourcesStatisticsRequest, + GetResourcesStatisticsRequestTypedDict, + GetResourcesStatisticsResponse, + GetResourcesStatisticsResponseBody, + GetResourcesStatisticsResponseBodyTypedDict, + GetResourcesStatisticsResponseTypedDict, + StatisticsResources, + StatisticsResourcesTypedDict, + ) + from .getsearchresults import ( + GetSearchResultsCountry, + GetSearchResultsCountryTypedDict, + GetSearchResultsDirector, + GetSearchResultsDirectorTypedDict, + GetSearchResultsGenre, + GetSearchResultsGenreTypedDict, + GetSearchResultsMedia, + GetSearchResultsMediaContainer, + GetSearchResultsMediaContainerTypedDict, + GetSearchResultsMediaTypedDict, + GetSearchResultsMetadata, + GetSearchResultsMetadataTypedDict, + GetSearchResultsPart, + GetSearchResultsPartTypedDict, + GetSearchResultsRequest, + GetSearchResultsRequestTypedDict, + GetSearchResultsResponse, + GetSearchResultsResponseBody, + GetSearchResultsResponseBodyTypedDict, + GetSearchResultsResponseTypedDict, + GetSearchResultsRole, + GetSearchResultsRoleTypedDict, + GetSearchResultsWriter, + GetSearchResultsWriterTypedDict, + Provider, + ProviderTypedDict, + ) + from .getserveractivities import ( + Activity, + ActivityTypedDict, + Context, + ContextTypedDict, + GetServerActivitiesMediaContainer, + GetServerActivitiesMediaContainerTypedDict, + GetServerActivitiesResponse, + GetServerActivitiesResponseBody, + GetServerActivitiesResponseBodyTypedDict, + GetServerActivitiesResponseTypedDict, + ) + from .getservercapabilities import ( + Directory, + DirectoryTypedDict, + GetServerCapabilitiesResponse, + GetServerCapabilitiesResponseBody, + GetServerCapabilitiesResponseBodyTypedDict, + GetServerCapabilitiesResponseTypedDict, + MediaContainer, + MediaContainerTypedDict, + ) + from .getserverlist import ( + GetServerListMediaContainer, + GetServerListMediaContainerTypedDict, + GetServerListResponse, + GetServerListResponseBody, + GetServerListResponseBodyTypedDict, + GetServerListResponseTypedDict, + GetServerListServer, + GetServerListServerTypedDict, + ) + from .getserverpreferences import ( + GetServerPreferencesMediaContainer, + GetServerPreferencesMediaContainerTypedDict, + GetServerPreferencesResponse, + GetServerPreferencesResponseBody, + GetServerPreferencesResponseBodyTypedDict, + GetServerPreferencesResponseTypedDict, + Setting, + SettingTypedDict, + ) + from .getsessionhistory import ( + GetSessionHistoryMediaContainer, + GetSessionHistoryMediaContainerTypedDict, + GetSessionHistoryMetadata, + GetSessionHistoryMetadataTypedDict, + GetSessionHistoryRequest, + GetSessionHistoryRequestTypedDict, + GetSessionHistoryResponse, + GetSessionHistoryResponseBody, + GetSessionHistoryResponseBodyTypedDict, + GetSessionHistoryResponseTypedDict, + QueryParamFilter, + QueryParamFilterTypedDict, + ) + from .getsessions import ( + GetSessionsMedia, + GetSessionsMediaContainer, + GetSessionsMediaContainerTypedDict, + GetSessionsMediaTypedDict, + GetSessionsMetadata, + GetSessionsMetadataTypedDict, + GetSessionsPart, + GetSessionsPartTypedDict, + GetSessionsResponse, + GetSessionsResponseBody, + GetSessionsResponseBodyTypedDict, + GetSessionsResponseTypedDict, + GetSessionsStream, + GetSessionsStreamTypedDict, + GetSessionsUser, + GetSessionsUserTypedDict, + Player, + PlayerTypedDict, + Session, + SessionTypedDict, + ) + from .getsourceconnectioninformation import ( + GetSourceConnectionInformationRequest, + GetSourceConnectionInformationRequestTypedDict, + GetSourceConnectionInformationResponse, + GetSourceConnectionInformationResponseTypedDict, + ) + from .getstatistics import ( + Account, + AccountTypedDict, + GetStatisticsDevice, + GetStatisticsDeviceTypedDict, + GetStatisticsMediaContainer, + GetStatisticsMediaContainerTypedDict, + GetStatisticsRequest, + GetStatisticsRequestTypedDict, + GetStatisticsResponse, + GetStatisticsResponseBody, + GetStatisticsResponseBodyTypedDict, + GetStatisticsResponseTypedDict, + StatisticsMedia, + StatisticsMediaTypedDict, + ) + from .gettimeline import ( + GetTimelineRequest, + GetTimelineRequestTypedDict, + GetTimelineResponse, + GetTimelineResponseTypedDict, + State, + ) + from .gettokenbypinid import ( + GET_TOKEN_BY_PIN_ID_SERVERS, + GetTokenByPinIDAuthPinContainer, + GetTokenByPinIDAuthPinContainerTypedDict, + GetTokenByPinIDGeoData, + GetTokenByPinIDGeoDataTypedDict, + GetTokenByPinIDRequest, + GetTokenByPinIDRequestTypedDict, + GetTokenByPinIDResponse, + GetTokenByPinIDResponseTypedDict, + ) + from .gettokendetails import ( + AutoSelectSubtitle, + DefaultSubtitleAccessibility, + DefaultSubtitleForced, + GET_TOKEN_DETAILS_SERVERS, + GetTokenDetailsAuthenticationResponseStatus, + GetTokenDetailsAuthenticationStatus, + GetTokenDetailsResponse, + GetTokenDetailsResponseTypedDict, + GetTokenDetailsStatus, + GetTokenDetailsSubscription, + GetTokenDetailsSubscriptionTypedDict, + GetTokenDetailsUserPlexAccount, + GetTokenDetailsUserPlexAccountTypedDict, + MailingListStatus, + MediaReviewsVisibility, + Services, + ServicesTypedDict, + Subscription, + SubscriptionTypedDict, + UserProfile, + UserProfileTypedDict, + WatchedIndicator, + ) + from .gettopwatchedcontent import ( + GetTopWatchedContentCountry, + GetTopWatchedContentCountryTypedDict, + GetTopWatchedContentGenre, + GetTopWatchedContentGenreTypedDict, + GetTopWatchedContentGuids, + GetTopWatchedContentGuidsTypedDict, + GetTopWatchedContentMediaContainer, + GetTopWatchedContentMediaContainerTypedDict, + GetTopWatchedContentMetadata, + GetTopWatchedContentMetadataTypedDict, + GetTopWatchedContentQueryParamType, + GetTopWatchedContentRequest, + GetTopWatchedContentRequestTypedDict, + GetTopWatchedContentResponse, + GetTopWatchedContentResponseBody, + GetTopWatchedContentResponseBodyTypedDict, + GetTopWatchedContentResponseTypedDict, + GetTopWatchedContentRole, + GetTopWatchedContentRoleTypedDict, + GetTopWatchedContentUser, + GetTopWatchedContentUserTypedDict, + ) + from .gettranscodesessions import ( + GetTranscodeSessionsMediaContainer, + GetTranscodeSessionsMediaContainerTypedDict, + GetTranscodeSessionsResponse, + GetTranscodeSessionsResponseBody, + GetTranscodeSessionsResponseBodyTypedDict, + GetTranscodeSessionsResponseTypedDict, + TranscodeSession, + TranscodeSessionTypedDict, + ) + from .gettransienttoken import ( + GetTransientTokenQueryParamType, + GetTransientTokenRequest, + GetTransientTokenRequestTypedDict, + GetTransientTokenResponse, + GetTransientTokenResponseTypedDict, + Scope, + ) + from .getupdatestatus import ( + GetUpdateStatusMediaContainer, + GetUpdateStatusMediaContainerTypedDict, + GetUpdateStatusResponse, + GetUpdateStatusResponseBody, + GetUpdateStatusResponseBodyTypedDict, + GetUpdateStatusResponseTypedDict, + Release, + ReleaseTypedDict, + ) + from .getuserfriends import ( + Friend, + FriendTypedDict, + GET_USER_FRIENDS_SERVERS, + GetUserFriendsResponse, + GetUserFriendsResponseTypedDict, + SharedServers, + SharedServersTypedDict, + SharedSources, + SharedSourcesTypedDict, + Status, + ) + from .logline import ( + Level, + LogLineRequest, + LogLineRequestTypedDict, + LogLineResponse, + LogLineResponseTypedDict, + ) + from .logmultiline import LogMultiLineResponse, LogMultiLineResponseTypedDict + from .markplayed import ( + MarkPlayedRequest, + MarkPlayedRequestTypedDict, + MarkPlayedResponse, + MarkPlayedResponseTypedDict, + ) + from .markunplayed import ( + MarkUnplayedRequest, + MarkUnplayedRequestTypedDict, + MarkUnplayedResponse, + MarkUnplayedResponseTypedDict, + ) + from .performsearch import ( + PerformSearchRequest, + PerformSearchRequestTypedDict, + PerformSearchResponse, + PerformSearchResponseTypedDict, + ) + from .performvoicesearch import ( + PerformVoiceSearchRequest, + PerformVoiceSearchRequestTypedDict, + PerformVoiceSearchResponse, + PerformVoiceSearchResponseTypedDict, + ) + from .post_media_arts import ( + PostMediaArtsRequest, + PostMediaArtsRequestTypedDict, + PostMediaArtsResponse, + PostMediaArtsResponseTypedDict, + ) + from .post_media_poster import ( + PostMediaPosterRequest, + PostMediaPosterRequestTypedDict, + PostMediaPosterResponse, + PostMediaPosterResponseTypedDict, + ) + from .post_users_sign_in_data import ( + Billing, + BillingTypedDict, + InternalPaymentMethod, + InternalPaymentMethodTypedDict, + POST_USERS_SIGN_IN_DATA_SERVERS, + PastSubscription, + PastSubscriptionTypedDict, + PostUsersSignInDataAuthenticationResponseStatus, + PostUsersSignInDataAuthenticationStatus, + PostUsersSignInDataAuthenticationSubscription, + PostUsersSignInDataAuthenticationSubscriptionTypedDict, + PostUsersSignInDataAutoSelectSubtitle, + PostUsersSignInDataDefaultSubtitleAccessibility, + PostUsersSignInDataDefaultSubtitleForced, + PostUsersSignInDataMailingListStatus, + PostUsersSignInDataMediaReviewsVisibility, + PostUsersSignInDataRequest, + PostUsersSignInDataRequestBody, + PostUsersSignInDataRequestBodyTypedDict, + PostUsersSignInDataRequestTypedDict, + PostUsersSignInDataResponse, + PostUsersSignInDataResponseTypedDict, + PostUsersSignInDataServices, + PostUsersSignInDataServicesTypedDict, + PostUsersSignInDataState, + PostUsersSignInDataStatus, + PostUsersSignInDataSubscription, + PostUsersSignInDataSubscriptionTypedDict, + PostUsersSignInDataUserPlexAccount, + PostUsersSignInDataUserPlexAccountTypedDict, + PostUsersSignInDataUserProfile, + PostUsersSignInDataUserProfileTypedDict, + PostUsersSignInDataWatchedIndicator, + Trials, + TrialsTypedDict, + ) + from .startalltasks import StartAllTasksResponse, StartAllTasksResponseTypedDict + from .starttask import ( + StartTaskRequest, + StartTaskRequestTypedDict, + StartTaskResponse, + StartTaskResponseTypedDict, + TaskName, + ) + from .startuniversaltranscode import ( + StartUniversalTranscodeRequest, + StartUniversalTranscodeRequestTypedDict, + StartUniversalTranscodeResponse, + StartUniversalTranscodeResponseTypedDict, + ) + from .stopalltasks import StopAllTasksResponse, StopAllTasksResponseTypedDict + from .stoptask import ( + PathParamTaskName, + StopTaskRequest, + StopTaskRequestTypedDict, + StopTaskResponse, + StopTaskResponseTypedDict, + ) + from .stoptranscodesession import ( + StopTranscodeSessionRequest, + StopTranscodeSessionRequestTypedDict, + StopTranscodeSessionResponse, + StopTranscodeSessionResponseTypedDict, + ) + from .updateplaylist import ( + UpdatePlaylistRequest, + UpdatePlaylistRequestTypedDict, + UpdatePlaylistResponse, + UpdatePlaylistResponseTypedDict, + ) + from .updateplayprogress import ( + UpdatePlayProgressRequest, + UpdatePlayProgressRequestTypedDict, + UpdatePlayProgressResponse, + UpdatePlayProgressResponseTypedDict, + ) + from .uploadplaylist import ( + QueryParamForce, + UploadPlaylistRequest, + UploadPlaylistRequestTypedDict, + UploadPlaylistResponse, + UploadPlaylistResponseTypedDict, + ) __all__ = [ "Account", @@ -2343,3 +2346,1122 @@ __all__ = [ "Writer", "WriterTypedDict", ] + +_dynamic_imports: dict[str, str] = { + "AddPlaylistContentsMediaContainer": ".addplaylistcontents", + "AddPlaylistContentsMediaContainerTypedDict": ".addplaylistcontents", + "AddPlaylistContentsMetadata": ".addplaylistcontents", + "AddPlaylistContentsMetadataTypedDict": ".addplaylistcontents", + "AddPlaylistContentsRequest": ".addplaylistcontents", + "AddPlaylistContentsRequestTypedDict": ".addplaylistcontents", + "AddPlaylistContentsResponse": ".addplaylistcontents", + "AddPlaylistContentsResponseBody": ".addplaylistcontents", + "AddPlaylistContentsResponseBodyTypedDict": ".addplaylistcontents", + "AddPlaylistContentsResponseTypedDict": ".addplaylistcontents", + "ApplyUpdatesRequest": ".applyupdates", + "ApplyUpdatesRequestTypedDict": ".applyupdates", + "ApplyUpdatesResponse": ".applyupdates", + "ApplyUpdatesResponseTypedDict": ".applyupdates", + "Skip": ".applyupdates", + "Tonight": ".applyupdates", + "CancelServerActivitiesRequest": ".cancelserveractivities", + "CancelServerActivitiesRequestTypedDict": ".cancelserveractivities", + "CancelServerActivitiesResponse": ".cancelserveractivities", + "CancelServerActivitiesResponseTypedDict": ".cancelserveractivities", + "CheckForUpdatesRequest": ".checkforupdates", + "CheckForUpdatesRequestTypedDict": ".checkforupdates", + "CheckForUpdatesResponse": ".checkforupdates", + "CheckForUpdatesResponseTypedDict": ".checkforupdates", + "Download": ".checkforupdates", + "ClearPlaylistContentsRequest": ".clearplaylistcontents", + "ClearPlaylistContentsRequestTypedDict": ".clearplaylistcontents", + "ClearPlaylistContentsResponse": ".clearplaylistcontents", + "ClearPlaylistContentsResponseTypedDict": ".clearplaylistcontents", + "CreatePlaylistMediaContainer": ".createplaylist", + "CreatePlaylistMediaContainerTypedDict": ".createplaylist", + "CreatePlaylistMetadata": ".createplaylist", + "CreatePlaylistMetadataTypedDict": ".createplaylist", + "CreatePlaylistQueryParamType": ".createplaylist", + "CreatePlaylistRequest": ".createplaylist", + "CreatePlaylistRequestTypedDict": ".createplaylist", + "CreatePlaylistResponse": ".createplaylist", + "CreatePlaylistResponseBody": ".createplaylist", + "CreatePlaylistResponseBodyTypedDict": ".createplaylist", + "CreatePlaylistResponseTypedDict": ".createplaylist", + "Smart": ".createplaylist", + "DeleteLibraryRequest": ".deletelibrary", + "DeleteLibraryRequestTypedDict": ".deletelibrary", + "DeleteLibraryResponse": ".deletelibrary", + "DeleteLibraryResponseTypedDict": ".deletelibrary", + "DeletePlaylistRequest": ".deleteplaylist", + "DeletePlaylistRequestTypedDict": ".deleteplaylist", + "DeletePlaylistResponse": ".deleteplaylist", + "DeletePlaylistResponseTypedDict": ".deleteplaylist", + "EnablePaperTrailResponse": ".enablepapertrail", + "EnablePaperTrailResponseTypedDict": ".enablepapertrail", + "GetActorsLibraryDirectory": ".get_actors_library", + "GetActorsLibraryDirectoryTypedDict": ".get_actors_library", + "GetActorsLibraryMediaContainer": ".get_actors_library", + "GetActorsLibraryMediaContainerTypedDict": ".get_actors_library", + "GetActorsLibraryQueryParamType": ".get_actors_library", + "GetActorsLibraryRequest": ".get_actors_library", + "GetActorsLibraryRequestTypedDict": ".get_actors_library", + "GetActorsLibraryResponse": ".get_actors_library", + "GetActorsLibraryResponseBody": ".get_actors_library", + "GetActorsLibraryResponseBodyTypedDict": ".get_actors_library", + "GetActorsLibraryResponseTypedDict": ".get_actors_library", + "GetAllLibrariesDirectory": ".get_all_libraries", + "GetAllLibrariesDirectoryTypedDict": ".get_all_libraries", + "GetAllLibrariesLocation": ".get_all_libraries", + "GetAllLibrariesLocationTypedDict": ".get_all_libraries", + "GetAllLibrariesMediaContainer": ".get_all_libraries", + "GetAllLibrariesMediaContainerTypedDict": ".get_all_libraries", + "GetAllLibrariesResponse": ".get_all_libraries", + "GetAllLibrariesResponseBody": ".get_all_libraries", + "GetAllLibrariesResponseBodyTypedDict": ".get_all_libraries", + "GetAllLibrariesResponseTypedDict": ".get_all_libraries", + "GetAllLibrariesType": ".get_all_libraries", + "Hidden": ".get_all_libraries", + "GetAllMediaLibraryActiveDirection": ".get_all_media_library", + "GetAllMediaLibraryCollection": ".get_all_media_library", + "GetAllMediaLibraryCollectionTypedDict": ".get_all_media_library", + "GetAllMediaLibraryCountry": ".get_all_media_library", + "GetAllMediaLibraryCountryTypedDict": ".get_all_media_library", + "GetAllMediaLibraryDefaultDirection": ".get_all_media_library", + "GetAllMediaLibraryDirector": ".get_all_media_library", + "GetAllMediaLibraryDirectorTypedDict": ".get_all_media_library", + "GetAllMediaLibraryField": ".get_all_media_library", + "GetAllMediaLibraryFieldType": ".get_all_media_library", + "GetAllMediaLibraryFieldTypeTypedDict": ".get_all_media_library", + "GetAllMediaLibraryFieldTypedDict": ".get_all_media_library", + "GetAllMediaLibraryFilter": ".get_all_media_library", + "GetAllMediaLibraryFilterTypedDict": ".get_all_media_library", + "GetAllMediaLibraryGenre": ".get_all_media_library", + "GetAllMediaLibraryGenreTypedDict": ".get_all_media_library", + "GetAllMediaLibraryGuids": ".get_all_media_library", + "GetAllMediaLibraryGuidsTypedDict": ".get_all_media_library", + "GetAllMediaLibraryHasThumbnail": ".get_all_media_library", + "GetAllMediaLibraryImage": ".get_all_media_library", + "GetAllMediaLibraryImageTypedDict": ".get_all_media_library", + "GetAllMediaLibraryLibraryOptimizedForStreaming": ".get_all_media_library", + "GetAllMediaLibraryLibraryOptimizedForStreamingTypedDict": ".get_all_media_library", + "GetAllMediaLibraryLibraryResponseType": ".get_all_media_library", + "GetAllMediaLibraryLibraryType": ".get_all_media_library", + "GetAllMediaLibraryMedia": ".get_all_media_library", + "GetAllMediaLibraryMediaContainer": ".get_all_media_library", + "GetAllMediaLibraryMediaContainerTypedDict": ".get_all_media_library", + "GetAllMediaLibraryMediaTypedDict": ".get_all_media_library", + "GetAllMediaLibraryMeta": ".get_all_media_library", + "GetAllMediaLibraryMetaTypedDict": ".get_all_media_library", + "GetAllMediaLibraryMetadata": ".get_all_media_library", + "GetAllMediaLibraryMetadataTypedDict": ".get_all_media_library", + "GetAllMediaLibraryOperator": ".get_all_media_library", + "GetAllMediaLibraryOperatorTypedDict": ".get_all_media_library", + "GetAllMediaLibraryOptimizedForStreaming": ".get_all_media_library", + "GetAllMediaLibraryOptimizedForStreaming1": ".get_all_media_library", + "GetAllMediaLibraryOptimizedForStreamingTypedDict": ".get_all_media_library", + "GetAllMediaLibraryPart": ".get_all_media_library", + "GetAllMediaLibraryPartTypedDict": ".get_all_media_library", + "GetAllMediaLibraryQueryParamIncludeMeta": ".get_all_media_library", + "GetAllMediaLibraryQueryParamType": ".get_all_media_library", + "GetAllMediaLibraryRequest": ".get_all_media_library", + "GetAllMediaLibraryRequestTypedDict": ".get_all_media_library", + "GetAllMediaLibraryResponse": ".get_all_media_library", + "GetAllMediaLibraryResponseBody": ".get_all_media_library", + "GetAllMediaLibraryResponseBodyTypedDict": ".get_all_media_library", + "GetAllMediaLibraryResponseTypedDict": ".get_all_media_library", + "GetAllMediaLibraryRole": ".get_all_media_library", + "GetAllMediaLibraryRoleTypedDict": ".get_all_media_library", + "GetAllMediaLibrarySort": ".get_all_media_library", + "GetAllMediaLibrarySortTypedDict": ".get_all_media_library", + "GetAllMediaLibraryStream": ".get_all_media_library", + "GetAllMediaLibraryStreamType": ".get_all_media_library", + "GetAllMediaLibraryStreamTypedDict": ".get_all_media_library", + "GetAllMediaLibraryType": ".get_all_media_library", + "GetAllMediaLibraryTypeTypedDict": ".get_all_media_library", + "GetAllMediaLibraryUltraBlurColors": ".get_all_media_library", + "GetAllMediaLibraryUltraBlurColorsTypedDict": ".get_all_media_library", + "GetAllMediaLibraryWriter": ".get_all_media_library", + "GetAllMediaLibraryWriterTypedDict": ".get_all_media_library", + "IncludeAdvanced": ".get_all_media_library", + "OptimizedForStreaming1": ".get_all_media_library", + "QueryParamIncludeCollections": ".get_all_media_library", + "QueryParamIncludeExternalMedia": ".get_all_media_library", + "QueryParamIncludeGuids": ".get_all_media_library", + "GetBannerImageRequest": ".get_banner_image", + "GetBannerImageRequestTypedDict": ".get_banner_image", + "GetBannerImageResponse": ".get_banner_image", + "GetBannerImageResponseTypedDict": ".get_banner_image", + "GetCountriesLibraryDirectory": ".get_countries_library", + "GetCountriesLibraryDirectoryTypedDict": ".get_countries_library", + "GetCountriesLibraryMediaContainer": ".get_countries_library", + "GetCountriesLibraryMediaContainerTypedDict": ".get_countries_library", + "GetCountriesLibraryQueryParamType": ".get_countries_library", + "GetCountriesLibraryRequest": ".get_countries_library", + "GetCountriesLibraryRequestTypedDict": ".get_countries_library", + "GetCountriesLibraryResponse": ".get_countries_library", + "GetCountriesLibraryResponseBody": ".get_countries_library", + "GetCountriesLibraryResponseBodyTypedDict": ".get_countries_library", + "GetCountriesLibraryResponseTypedDict": ".get_countries_library", + "GetGenresLibraryDirectory": ".get_genres_library", + "GetGenresLibraryDirectoryTypedDict": ".get_genres_library", + "GetGenresLibraryMediaContainer": ".get_genres_library", + "GetGenresLibraryMediaContainerTypedDict": ".get_genres_library", + "GetGenresLibraryQueryParamType": ".get_genres_library", + "GetGenresLibraryRequest": ".get_genres_library", + "GetGenresLibraryRequestTypedDict": ".get_genres_library", + "GetGenresLibraryResponse": ".get_genres_library", + "GetGenresLibraryResponseBody": ".get_genres_library", + "GetGenresLibraryResponseBodyTypedDict": ".get_genres_library", + "GetGenresLibraryResponseTypedDict": ".get_genres_library", + "GetLibraryDetailsDirectory": ".get_library_details", + "GetLibraryDetailsDirectoryTypedDict": ".get_library_details", + "GetLibraryDetailsField": ".get_library_details", + "GetLibraryDetailsFieldType": ".get_library_details", + "GetLibraryDetailsFieldTypeTypedDict": ".get_library_details", + "GetLibraryDetailsFieldTypedDict": ".get_library_details", + "GetLibraryDetailsFilter": ".get_library_details", + "GetLibraryDetailsFilterTypedDict": ".get_library_details", + "GetLibraryDetailsMediaContainer": ".get_library_details", + "GetLibraryDetailsMediaContainerTypedDict": ".get_library_details", + "GetLibraryDetailsOperator": ".get_library_details", + "GetLibraryDetailsOperatorTypedDict": ".get_library_details", + "GetLibraryDetailsRequest": ".get_library_details", + "GetLibraryDetailsRequestTypedDict": ".get_library_details", + "GetLibraryDetailsResponse": ".get_library_details", + "GetLibraryDetailsResponseBody": ".get_library_details", + "GetLibraryDetailsResponseBodyTypedDict": ".get_library_details", + "GetLibraryDetailsResponseTypedDict": ".get_library_details", + "GetLibraryDetailsSort": ".get_library_details", + "GetLibraryDetailsSortTypedDict": ".get_library_details", + "GetLibraryDetailsType": ".get_library_details", + "GetLibraryDetailsTypeTypedDict": ".get_library_details", + "IncludeDetails": ".get_library_details", + "EnableCreditsMarkerGeneration": ".get_library_items", + "EpisodeSort": ".get_library_items", + "FlattenSeasons": ".get_library_items", + "GetLibraryItemsActiveDirection": ".get_library_items", + "GetLibraryItemsCollection": ".get_library_items", + "GetLibraryItemsCollectionTypedDict": ".get_library_items", + "GetLibraryItemsCountry": ".get_library_items", + "GetLibraryItemsCountryTypedDict": ".get_library_items", + "GetLibraryItemsDefaultDirection": ".get_library_items", + "GetLibraryItemsDirector": ".get_library_items", + "GetLibraryItemsDirectorTypedDict": ".get_library_items", + "GetLibraryItemsField": ".get_library_items", + "GetLibraryItemsFieldType": ".get_library_items", + "GetLibraryItemsFieldTypeTypedDict": ".get_library_items", + "GetLibraryItemsFieldTypedDict": ".get_library_items", + "GetLibraryItemsFilter": ".get_library_items", + "GetLibraryItemsFilterTypedDict": ".get_library_items", + "GetLibraryItemsGenre": ".get_library_items", + "GetLibraryItemsGenreTypedDict": ".get_library_items", + "GetLibraryItemsHasThumbnail": ".get_library_items", + "GetLibraryItemsImage": ".get_library_items", + "GetLibraryItemsImageTypedDict": ".get_library_items", + "GetLibraryItemsLibraryActiveDirection": ".get_library_items", + "GetLibraryItemsLibraryDefaultDirection": ".get_library_items", + "GetLibraryItemsLibraryField": ".get_library_items", + "GetLibraryItemsLibraryFieldType": ".get_library_items", + "GetLibraryItemsLibraryFieldTypeTypedDict": ".get_library_items", + "GetLibraryItemsLibraryFieldTypedDict": ".get_library_items", + "GetLibraryItemsLibraryFilter": ".get_library_items", + "GetLibraryItemsLibraryFilterTypedDict": ".get_library_items", + "GetLibraryItemsLibraryOperator": ".get_library_items", + "GetLibraryItemsLibraryOperatorTypedDict": ".get_library_items", + "GetLibraryItemsLibraryResponse200Type": ".get_library_items", + "GetLibraryItemsLibraryResponseType": ".get_library_items", + "GetLibraryItemsLibraryResponseTypeTypedDict": ".get_library_items", + "GetLibraryItemsLibrarySort": ".get_library_items", + "GetLibraryItemsLibrarySortTypedDict": ".get_library_items", + "GetLibraryItemsLibraryType": ".get_library_items", + "GetLibraryItemsLocation": ".get_library_items", + "GetLibraryItemsLocationTypedDict": ".get_library_items", + "GetLibraryItemsMedia": ".get_library_items", + "GetLibraryItemsMediaContainer": ".get_library_items", + "GetLibraryItemsMediaContainerTypedDict": ".get_library_items", + "GetLibraryItemsMediaTypedDict": ".get_library_items", + "GetLibraryItemsMeta": ".get_library_items", + "GetLibraryItemsMetaTypedDict": ".get_library_items", + "GetLibraryItemsMetadata": ".get_library_items", + "GetLibraryItemsMetadataTypedDict": ".get_library_items", + "GetLibraryItemsOperator": ".get_library_items", + "GetLibraryItemsOperatorTypedDict": ".get_library_items", + "GetLibraryItemsOptimizedForStreaming": ".get_library_items", + "GetLibraryItemsPart": ".get_library_items", + "GetLibraryItemsPartTypedDict": ".get_library_items", + "GetLibraryItemsQueryParamIncludeMeta": ".get_library_items", + "GetLibraryItemsQueryParamType": ".get_library_items", + "GetLibraryItemsRequest": ".get_library_items", + "GetLibraryItemsRequestTypedDict": ".get_library_items", + "GetLibraryItemsResponse": ".get_library_items", + "GetLibraryItemsResponseBody": ".get_library_items", + "GetLibraryItemsResponseBodyTypedDict": ".get_library_items", + "GetLibraryItemsResponseTypedDict": ".get_library_items", + "GetLibraryItemsRole": ".get_library_items", + "GetLibraryItemsRoleTypedDict": ".get_library_items", + "GetLibraryItemsSort": ".get_library_items", + "GetLibraryItemsSortTypedDict": ".get_library_items", + "GetLibraryItemsStream": ".get_library_items", + "GetLibraryItemsStreamTypedDict": ".get_library_items", + "GetLibraryItemsType": ".get_library_items", + "GetLibraryItemsTypeTypedDict": ".get_library_items", + "GetLibraryItemsUltraBlurColors": ".get_library_items", + "GetLibraryItemsUltraBlurColorsTypedDict": ".get_library_items", + "GetLibraryItemsWriter": ".get_library_items", + "GetLibraryItemsWriterTypedDict": ".get_library_items", + "IncludeGuids": ".get_library_items", + "MediaGUID": ".get_library_items", + "MediaGUIDTypedDict": ".get_library_items", + "MetaDataRating": ".get_library_items", + "MetaDataRatingTypedDict": ".get_library_items", + "ShowOrdering": ".get_library_items", + "Tag": ".get_library_items", + "GetMediaArtsMediaContainer": ".get_media_arts", + "GetMediaArtsMediaContainerTypedDict": ".get_media_arts", + "GetMediaArtsMetadata": ".get_media_arts", + "GetMediaArtsMetadataTypedDict": ".get_media_arts", + "GetMediaArtsRequest": ".get_media_arts", + "GetMediaArtsRequestTypedDict": ".get_media_arts", + "GetMediaArtsResponse": ".get_media_arts", + "GetMediaArtsResponseBody": ".get_media_arts", + "GetMediaArtsResponseBodyTypedDict": ".get_media_arts", + "GetMediaArtsResponseTypedDict": ".get_media_arts", + "Attributes": ".get_media_meta_data", + "AttributesTypedDict": ".get_media_meta_data", + "Chapter": ".get_media_meta_data", + "ChapterTypedDict": ".get_media_meta_data", + "Extras": ".get_media_meta_data", + "ExtrasTypedDict": ".get_media_meta_data", + "GetMediaMetaDataCountry": ".get_media_meta_data", + "GetMediaMetaDataCountryTypedDict": ".get_media_meta_data", + "GetMediaMetaDataDirector": ".get_media_meta_data", + "GetMediaMetaDataDirectorTypedDict": ".get_media_meta_data", + "GetMediaMetaDataGenre": ".get_media_meta_data", + "GetMediaMetaDataGenreTypedDict": ".get_media_meta_data", + "GetMediaMetaDataGuids": ".get_media_meta_data", + "GetMediaMetaDataGuidsTypedDict": ".get_media_meta_data", + "GetMediaMetaDataHasThumbnail": ".get_media_meta_data", + "GetMediaMetaDataImage": ".get_media_meta_data", + "GetMediaMetaDataImageTypedDict": ".get_media_meta_data", + "GetMediaMetaDataLibraryOptimizedForStreaming": ".get_media_meta_data", + "GetMediaMetaDataLibraryOptimizedForStreamingTypedDict": ".get_media_meta_data", + "GetMediaMetaDataLibraryType": ".get_media_meta_data", + "GetMediaMetaDataLocation": ".get_media_meta_data", + "GetMediaMetaDataLocationTypedDict": ".get_media_meta_data", + "GetMediaMetaDataMedia": ".get_media_meta_data", + "GetMediaMetaDataMediaContainer": ".get_media_meta_data", + "GetMediaMetaDataMediaContainerTypedDict": ".get_media_meta_data", + "GetMediaMetaDataMediaTypedDict": ".get_media_meta_data", + "GetMediaMetaDataMetadata": ".get_media_meta_data", + "GetMediaMetaDataMetadataTypedDict": ".get_media_meta_data", + "GetMediaMetaDataOptimizedForStreaming": ".get_media_meta_data", + "GetMediaMetaDataOptimizedForStreaming1": ".get_media_meta_data", + "GetMediaMetaDataOptimizedForStreamingLibrary1": ".get_media_meta_data", + "GetMediaMetaDataOptimizedForStreamingTypedDict": ".get_media_meta_data", + "GetMediaMetaDataPart": ".get_media_meta_data", + "GetMediaMetaDataPartTypedDict": ".get_media_meta_data", + "GetMediaMetaDataProducer": ".get_media_meta_data", + "GetMediaMetaDataProducerTypedDict": ".get_media_meta_data", + "GetMediaMetaDataRequest": ".get_media_meta_data", + "GetMediaMetaDataRequestTypedDict": ".get_media_meta_data", + "GetMediaMetaDataResponse": ".get_media_meta_data", + "GetMediaMetaDataResponseBody": ".get_media_meta_data", + "GetMediaMetaDataResponseBodyTypedDict": ".get_media_meta_data", + "GetMediaMetaDataResponseTypedDict": ".get_media_meta_data", + "GetMediaMetaDataRole": ".get_media_meta_data", + "GetMediaMetaDataRoleTypedDict": ".get_media_meta_data", + "GetMediaMetaDataSimilar": ".get_media_meta_data", + "GetMediaMetaDataSimilarTypedDict": ".get_media_meta_data", + "GetMediaMetaDataStream": ".get_media_meta_data", + "GetMediaMetaDataStreamType": ".get_media_meta_data", + "GetMediaMetaDataStreamTypedDict": ".get_media_meta_data", + "GetMediaMetaDataType": ".get_media_meta_data", + "GetMediaMetaDataUltraBlurColors": ".get_media_meta_data", + "GetMediaMetaDataUltraBlurColorsTypedDict": ".get_media_meta_data", + "GetMediaMetaDataWriter": ".get_media_meta_data", + "GetMediaMetaDataWriterTypedDict": ".get_media_meta_data", + "Marker": ".get_media_meta_data", + "MarkerTypedDict": ".get_media_meta_data", + "Ratings": ".get_media_meta_data", + "RatingsTypedDict": ".get_media_meta_data", + "GetMediaPostersMediaContainer": ".get_media_posters", + "GetMediaPostersMediaContainerTypedDict": ".get_media_posters", + "GetMediaPostersMetadata": ".get_media_posters", + "GetMediaPostersMetadataTypedDict": ".get_media_posters", + "GetMediaPostersRequest": ".get_media_posters", + "GetMediaPostersRequestTypedDict": ".get_media_posters", + "GetMediaPostersResponse": ".get_media_posters", + "GetMediaPostersResponseBody": ".get_media_posters", + "GetMediaPostersResponseBodyTypedDict": ".get_media_posters", + "GetMediaPostersResponseTypedDict": ".get_media_posters", + "Action": ".get_media_providers", + "ActionTypedDict": ".get_media_providers", + "Feature": ".get_media_providers", + "FeatureTypedDict": ".get_media_providers", + "GetMediaProvidersDirectory": ".get_media_providers", + "GetMediaProvidersDirectoryTypedDict": ".get_media_providers", + "GetMediaProvidersMediaContainer": ".get_media_providers", + "GetMediaProvidersMediaContainerTypedDict": ".get_media_providers", + "GetMediaProvidersRequest": ".get_media_providers", + "GetMediaProvidersRequestTypedDict": ".get_media_providers", + "GetMediaProvidersResponse": ".get_media_providers", + "GetMediaProvidersResponseBody": ".get_media_providers", + "GetMediaProvidersResponseBodyTypedDict": ".get_media_providers", + "GetMediaProvidersResponseTypedDict": ".get_media_providers", + "MediaProvider": ".get_media_providers", + "MediaProviderTypedDict": ".get_media_providers", + "Pivot": ".get_media_providers", + "PivotTypedDict": ".get_media_providers", + "Collection": ".get_recently_added", + "CollectionTypedDict": ".get_recently_added", + "Country": ".get_recently_added", + "CountryTypedDict": ".get_recently_added", + "Director": ".get_recently_added", + "DirectorTypedDict": ".get_recently_added", + "Genre": ".get_recently_added", + "GenreTypedDict": ".get_recently_added", + "GetRecentlyAddedActiveDirection": ".get_recently_added", + "GetRecentlyAddedDefaultDirection": ".get_recently_added", + "GetRecentlyAddedField": ".get_recently_added", + "GetRecentlyAddedFieldType": ".get_recently_added", + "GetRecentlyAddedFieldTypeTypedDict": ".get_recently_added", + "GetRecentlyAddedFieldTypedDict": ".get_recently_added", + "GetRecentlyAddedFilter": ".get_recently_added", + "GetRecentlyAddedFilterTypedDict": ".get_recently_added", + "GetRecentlyAddedHubsResponseType": ".get_recently_added", + "GetRecentlyAddedHubsType": ".get_recently_added", + "GetRecentlyAddedImage": ".get_recently_added", + "GetRecentlyAddedImageTypedDict": ".get_recently_added", + "GetRecentlyAddedMediaContainer": ".get_recently_added", + "GetRecentlyAddedMediaContainerTypedDict": ".get_recently_added", + "GetRecentlyAddedMetadata": ".get_recently_added", + "GetRecentlyAddedMetadataTypedDict": ".get_recently_added", + "GetRecentlyAddedOperator": ".get_recently_added", + "GetRecentlyAddedOperatorTypedDict": ".get_recently_added", + "GetRecentlyAddedOptimizedForStreaming": ".get_recently_added", + "GetRecentlyAddedOptimizedForStreaming1": ".get_recently_added", + "GetRecentlyAddedOptimizedForStreamingTypedDict": ".get_recently_added", + "GetRecentlyAddedRequest": ".get_recently_added", + "GetRecentlyAddedRequestTypedDict": ".get_recently_added", + "GetRecentlyAddedResponse": ".get_recently_added", + "GetRecentlyAddedResponseBody": ".get_recently_added", + "GetRecentlyAddedResponseBodyTypedDict": ".get_recently_added", + "GetRecentlyAddedResponseTypedDict": ".get_recently_added", + "GetRecentlyAddedSort": ".get_recently_added", + "GetRecentlyAddedSortTypedDict": ".get_recently_added", + "GetRecentlyAddedType": ".get_recently_added", + "GetRecentlyAddedTypeTypedDict": ".get_recently_added", + "Guids": ".get_recently_added", + "GuidsTypedDict": ".get_recently_added", + "HasThumbnail": ".get_recently_added", + "IncludeMeta": ".get_recently_added", + "Location": ".get_recently_added", + "LocationTypedDict": ".get_recently_added", + "Media": ".get_recently_added", + "MediaTypedDict": ".get_recently_added", + "Meta": ".get_recently_added", + "MetaTypedDict": ".get_recently_added", + "One": ".get_recently_added", + "OptimizedForStreaming": ".get_recently_added", + "OptimizedForStreamingTypedDict": ".get_recently_added", + "Part": ".get_recently_added", + "PartTypedDict": ".get_recently_added", + "Producer": ".get_recently_added", + "ProducerTypedDict": ".get_recently_added", + "Rating": ".get_recently_added", + "RatingTypedDict": ".get_recently_added", + "Role": ".get_recently_added", + "RoleTypedDict": ".get_recently_added", + "Similar": ".get_recently_added", + "SimilarTypedDict": ".get_recently_added", + "Stream": ".get_recently_added", + "StreamType": ".get_recently_added", + "StreamTypedDict": ".get_recently_added", + "Type": ".get_recently_added", + "UltraBlurColors": ".get_recently_added", + "UltraBlurColorsTypedDict": ".get_recently_added", + "Writer": ".get_recently_added", + "WriterTypedDict": ".get_recently_added", + "ActiveDirection": ".get_recently_added_library", + "DefaultDirection": ".get_recently_added_library", + "FieldT": ".get_recently_added_library", + "FieldTTypedDict": ".get_recently_added_library", + "FieldType": ".get_recently_added_library", + "FieldTypeTypedDict": ".get_recently_added_library", + "GetRecentlyAddedLibraryCountry": ".get_recently_added_library", + "GetRecentlyAddedLibraryCountryTypedDict": ".get_recently_added_library", + "GetRecentlyAddedLibraryDirector": ".get_recently_added_library", + "GetRecentlyAddedLibraryDirectorTypedDict": ".get_recently_added_library", + "GetRecentlyAddedLibraryFilter": ".get_recently_added_library", + "GetRecentlyAddedLibraryFilterTypedDict": ".get_recently_added_library", + "GetRecentlyAddedLibraryGenre": ".get_recently_added_library", + "GetRecentlyAddedLibraryGenreTypedDict": ".get_recently_added_library", + "GetRecentlyAddedLibraryMedia": ".get_recently_added_library", + "GetRecentlyAddedLibraryMediaContainer": ".get_recently_added_library", + "GetRecentlyAddedLibraryMediaContainerTypedDict": ".get_recently_added_library", + "GetRecentlyAddedLibraryMediaTypedDict": ".get_recently_added_library", + "GetRecentlyAddedLibraryMetadata": ".get_recently_added_library", + "GetRecentlyAddedLibraryMetadataTypedDict": ".get_recently_added_library", + "GetRecentlyAddedLibraryPart": ".get_recently_added_library", + "GetRecentlyAddedLibraryPartTypedDict": ".get_recently_added_library", + "GetRecentlyAddedLibraryRequest": ".get_recently_added_library", + "GetRecentlyAddedLibraryRequestTypedDict": ".get_recently_added_library", + "GetRecentlyAddedLibraryResponse": ".get_recently_added_library", + "GetRecentlyAddedLibraryResponseBody": ".get_recently_added_library", + "GetRecentlyAddedLibraryResponseBodyTypedDict": ".get_recently_added_library", + "GetRecentlyAddedLibraryResponseTypedDict": ".get_recently_added_library", + "GetRecentlyAddedLibraryRole": ".get_recently_added_library", + "GetRecentlyAddedLibraryRoleTypedDict": ".get_recently_added_library", + "GetRecentlyAddedLibraryType": ".get_recently_added_library", + "GetRecentlyAddedLibraryTypeTypedDict": ".get_recently_added_library", + "GetRecentlyAddedLibraryWriter": ".get_recently_added_library", + "GetRecentlyAddedLibraryWriterTypedDict": ".get_recently_added_library", + "Operator": ".get_recently_added_library", + "OperatorTypedDict": ".get_recently_added_library", + "QueryParamIncludeMeta": ".get_recently_added_library", + "QueryParamType": ".get_recently_added_library", + "Sort": ".get_recently_added_library", + "SortTypedDict": ".get_recently_added_library", + "Force": ".get_refresh_library_metadata", + "GetRefreshLibraryMetadataRequest": ".get_refresh_library_metadata", + "GetRefreshLibraryMetadataRequestTypedDict": ".get_refresh_library_metadata", + "GetRefreshLibraryMetadataResponse": ".get_refresh_library_metadata", + "GetRefreshLibraryMetadataResponseTypedDict": ".get_refresh_library_metadata", + "GetSearchAllLibrariesCollection": ".get_search_all_libraries", + "GetSearchAllLibrariesCollectionTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesCountry": ".get_search_all_libraries", + "GetSearchAllLibrariesCountryTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesDirector": ".get_search_all_libraries", + "GetSearchAllLibrariesDirectorTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesEnableCreditsMarkerGeneration": ".get_search_all_libraries", + "GetSearchAllLibrariesEpisodeSort": ".get_search_all_libraries", + "GetSearchAllLibrariesFlattenSeasons": ".get_search_all_libraries", + "GetSearchAllLibrariesGenre": ".get_search_all_libraries", + "GetSearchAllLibrariesGenreTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesHasThumbnail": ".get_search_all_libraries", + "GetSearchAllLibrariesImage": ".get_search_all_libraries", + "GetSearchAllLibrariesImageTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesLibraryType": ".get_search_all_libraries", + "GetSearchAllLibrariesLocation": ".get_search_all_libraries", + "GetSearchAllLibrariesLocationTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesMedia": ".get_search_all_libraries", + "GetSearchAllLibrariesMediaContainer": ".get_search_all_libraries", + "GetSearchAllLibrariesMediaContainerTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesMediaGUID": ".get_search_all_libraries", + "GetSearchAllLibrariesMediaGUIDTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesMediaTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesMetaDataRating": ".get_search_all_libraries", + "GetSearchAllLibrariesMetaDataRatingTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesMetadata": ".get_search_all_libraries", + "GetSearchAllLibrariesMetadataTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesOptimizedForStreaming": ".get_search_all_libraries", + "GetSearchAllLibrariesPart": ".get_search_all_libraries", + "GetSearchAllLibrariesPartTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesQueryParamIncludeCollections": ".get_search_all_libraries", + "GetSearchAllLibrariesQueryParamIncludeExternalMedia": ".get_search_all_libraries", + "GetSearchAllLibrariesRequest": ".get_search_all_libraries", + "GetSearchAllLibrariesRequestTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesResponse": ".get_search_all_libraries", + "GetSearchAllLibrariesResponseBody": ".get_search_all_libraries", + "GetSearchAllLibrariesResponseBodyTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesResponseTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesRole": ".get_search_all_libraries", + "GetSearchAllLibrariesRoleTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesShowOrdering": ".get_search_all_libraries", + "GetSearchAllLibrariesStream": ".get_search_all_libraries", + "GetSearchAllLibrariesStreamTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesType": ".get_search_all_libraries", + "GetSearchAllLibrariesUltraBlurColors": ".get_search_all_libraries", + "GetSearchAllLibrariesUltraBlurColorsTypedDict": ".get_search_all_libraries", + "GetSearchAllLibrariesWriter": ".get_search_all_libraries", + "GetSearchAllLibrariesWriterTypedDict": ".get_search_all_libraries", + "SearchResult": ".get_search_all_libraries", + "SearchResultTypedDict": ".get_search_all_libraries", + "SearchTypes": ".get_search_all_libraries", + "GetSearchLibraryMediaContainer": ".get_search_library", + "GetSearchLibraryMediaContainerTypedDict": ".get_search_library", + "GetSearchLibraryMetadata": ".get_search_library", + "GetSearchLibraryMetadataTypedDict": ".get_search_library", + "GetSearchLibraryQueryParamType": ".get_search_library", + "GetSearchLibraryRequest": ".get_search_library", + "GetSearchLibraryRequestTypedDict": ".get_search_library", + "GetSearchLibraryResponse": ".get_search_library", + "GetSearchLibraryResponseBody": ".get_search_library", + "GetSearchLibraryResponseBodyTypedDict": ".get_search_library", + "GetSearchLibraryResponseTypedDict": ".get_search_library", + "GetServerIdentityMediaContainer": ".get_server_identity", + "GetServerIdentityMediaContainerTypedDict": ".get_server_identity", + "GetServerIdentityResponse": ".get_server_identity", + "GetServerIdentityResponseBody": ".get_server_identity", + "GetServerIdentityResponseBodyTypedDict": ".get_server_identity", + "GetServerIdentityResponseTypedDict": ".get_server_identity", + "Connections": ".get_server_resources", + "ConnectionsTypedDict": ".get_server_resources", + "GET_SERVER_RESOURCES_SERVERS": ".get_server_resources", + "GetServerResourcesRequest": ".get_server_resources", + "GetServerResourcesRequestTypedDict": ".get_server_resources", + "GetServerResourcesResponse": ".get_server_resources", + "GetServerResourcesResponseTypedDict": ".get_server_resources", + "IncludeHTTPS": ".get_server_resources", + "IncludeIPv6": ".get_server_resources", + "IncludeRelay": ".get_server_resources", + "PlexDevice": ".get_server_resources", + "PlexDeviceTypedDict": ".get_server_resources", + "Protocol": ".get_server_resources", + "GetThumbImageRequest": ".get_thumb_image", + "GetThumbImageRequestTypedDict": ".get_thumb_image", + "GetThumbImageResponse": ".get_thumb_image", + "GetThumbImageResponseTypedDict": ".get_thumb_image", + "AllLibraries": ".get_users", + "AllowCameraUpload": ".get_users", + "AllowChannels": ".get_users", + "AllowSubtitleAdmin": ".get_users", + "AllowSync": ".get_users", + "AllowTuners": ".get_users", + "GET_USERS_SERVERS": ".get_users", + "GetUsersMediaContainer": ".get_users", + "GetUsersMediaContainerTypedDict": ".get_users", + "GetUsersRequest": ".get_users", + "GetUsersRequestTypedDict": ".get_users", + "GetUsersResponse": ".get_users", + "GetUsersResponseBody": ".get_users", + "GetUsersResponseBodyTypedDict": ".get_users", + "GetUsersResponseTypedDict": ".get_users", + "GetUsersServer": ".get_users", + "GetUsersServerTypedDict": ".get_users", + "Home": ".get_users", + "Owned": ".get_users", + "Pending": ".get_users", + "Protected": ".get_users", + "Restricted": ".get_users", + "User": ".get_users", + "UserTypedDict": ".get_users", + "Filter": ".get_watch_list", + "GET_WATCH_LIST_SERVERS": ".get_watch_list", + "GetWatchListRequest": ".get_watch_list", + "GetWatchListRequestTypedDict": ".get_watch_list", + "GetWatchListResponse": ".get_watch_list", + "GetWatchListResponseBody": ".get_watch_list", + "GetWatchListResponseBodyTypedDict": ".get_watch_list", + "GetWatchListResponseTypedDict": ".get_watch_list", + "Image": ".get_watch_list", + "ImageTypedDict": ".get_watch_list", + "IncludeCollections": ".get_watch_list", + "IncludeExternalMedia": ".get_watch_list", + "Libtype": ".get_watch_list", + "Metadata": ".get_watch_list", + "MetadataTypedDict": ".get_watch_list", + "GetAvailableClientsMediaContainer": ".getavailableclients", + "GetAvailableClientsMediaContainerTypedDict": ".getavailableclients", + "GetAvailableClientsResponse": ".getavailableclients", + "GetAvailableClientsResponseBody": ".getavailableclients", + "GetAvailableClientsResponseBodyTypedDict": ".getavailableclients", + "GetAvailableClientsResponseTypedDict": ".getavailableclients", + "Server": ".getavailableclients", + "ServerTypedDict": ".getavailableclients", + "GetBandwidthStatisticsAccount": ".getbandwidthstatistics", + "GetBandwidthStatisticsAccountTypedDict": ".getbandwidthstatistics", + "GetBandwidthStatisticsDevice": ".getbandwidthstatistics", + "GetBandwidthStatisticsDeviceTypedDict": ".getbandwidthstatistics", + "GetBandwidthStatisticsMediaContainer": ".getbandwidthstatistics", + "GetBandwidthStatisticsMediaContainerTypedDict": ".getbandwidthstatistics", + "GetBandwidthStatisticsRequest": ".getbandwidthstatistics", + "GetBandwidthStatisticsRequestTypedDict": ".getbandwidthstatistics", + "GetBandwidthStatisticsResponse": ".getbandwidthstatistics", + "GetBandwidthStatisticsResponseBody": ".getbandwidthstatistics", + "GetBandwidthStatisticsResponseBodyTypedDict": ".getbandwidthstatistics", + "GetBandwidthStatisticsResponseTypedDict": ".getbandwidthstatistics", + "StatisticsBandwidth": ".getbandwidthstatistics", + "StatisticsBandwidthTypedDict": ".getbandwidthstatistics", + "ButlerTask": ".getbutlertasks", + "ButlerTaskTypedDict": ".getbutlertasks", + "ButlerTasks": ".getbutlertasks", + "ButlerTasksTypedDict": ".getbutlertasks", + "GetButlerTasksResponse": ".getbutlertasks", + "GetButlerTasksResponseBody": ".getbutlertasks", + "GetButlerTasksResponseBodyTypedDict": ".getbutlertasks", + "GetButlerTasksResponseTypedDict": ".getbutlertasks", + "GET_COMPANIONS_DATA_SERVERS": ".getcompanionsdata", + "GetCompanionsDataResponse": ".getcompanionsdata", + "GetCompanionsDataResponseTypedDict": ".getcompanionsdata", + "ResponseBody": ".getcompanionsdata", + "ResponseBodyTypedDict": ".getcompanionsdata", + "Device": ".getdevices", + "DeviceTypedDict": ".getdevices", + "GetDevicesMediaContainer": ".getdevices", + "GetDevicesMediaContainerTypedDict": ".getdevices", + "GetDevicesResponse": ".getdevices", + "GetDevicesResponseBody": ".getdevices", + "GetDevicesResponseBodyTypedDict": ".getdevices", + "GetDevicesResponseTypedDict": ".getdevices", + "GetFileHashRequest": ".getfilehash", + "GetFileHashRequestTypedDict": ".getfilehash", + "GetFileHashResponse": ".getfilehash", + "GetFileHashResponseTypedDict": ".getfilehash", + "GET_GEO_DATA_SERVERS": ".getgeodata", + "GetGeoDataGeoData": ".getgeodata", + "GetGeoDataGeoDataTypedDict": ".getgeodata", + "GetGeoDataResponse": ".getgeodata", + "GetGeoDataResponseTypedDict": ".getgeodata", + "GetGlobalHubsMediaContainer": ".getglobalhubs", + "GetGlobalHubsMediaContainerTypedDict": ".getglobalhubs", + "GetGlobalHubsMetadata": ".getglobalhubs", + "GetGlobalHubsMetadataTypedDict": ".getglobalhubs", + "GetGlobalHubsRequest": ".getglobalhubs", + "GetGlobalHubsRequestTypedDict": ".getglobalhubs", + "GetGlobalHubsResponse": ".getglobalhubs", + "GetGlobalHubsResponseBody": ".getglobalhubs", + "GetGlobalHubsResponseBodyTypedDict": ".getglobalhubs", + "GetGlobalHubsResponseTypedDict": ".getglobalhubs", + "Hub": ".getglobalhubs", + "HubTypedDict": ".getglobalhubs", + "OnlyTransient": ".getglobalhubs", + "GetHomeDataResponse": ".gethomedata", + "GetHomeDataResponseBody": ".gethomedata", + "GetHomeDataResponseBodyTypedDict": ".gethomedata", + "GetHomeDataResponseTypedDict": ".gethomedata", + "GetLibraryHubsCountry": ".getlibraryhubs", + "GetLibraryHubsCountryTypedDict": ".getlibraryhubs", + "GetLibraryHubsDirector": ".getlibraryhubs", + "GetLibraryHubsDirectorTypedDict": ".getlibraryhubs", + "GetLibraryHubsGenre": ".getlibraryhubs", + "GetLibraryHubsGenreTypedDict": ".getlibraryhubs", + "GetLibraryHubsHub": ".getlibraryhubs", + "GetLibraryHubsHubTypedDict": ".getlibraryhubs", + "GetLibraryHubsMedia": ".getlibraryhubs", + "GetLibraryHubsMediaContainer": ".getlibraryhubs", + "GetLibraryHubsMediaContainerTypedDict": ".getlibraryhubs", + "GetLibraryHubsMediaTypedDict": ".getlibraryhubs", + "GetLibraryHubsMetadata": ".getlibraryhubs", + "GetLibraryHubsMetadataTypedDict": ".getlibraryhubs", + "GetLibraryHubsPart": ".getlibraryhubs", + "GetLibraryHubsPartTypedDict": ".getlibraryhubs", + "GetLibraryHubsRequest": ".getlibraryhubs", + "GetLibraryHubsRequestTypedDict": ".getlibraryhubs", + "GetLibraryHubsResponse": ".getlibraryhubs", + "GetLibraryHubsResponseBody": ".getlibraryhubs", + "GetLibraryHubsResponseBodyTypedDict": ".getlibraryhubs", + "GetLibraryHubsResponseTypedDict": ".getlibraryhubs", + "GetLibraryHubsRole": ".getlibraryhubs", + "GetLibraryHubsRoleTypedDict": ".getlibraryhubs", + "GetLibraryHubsWriter": ".getlibraryhubs", + "GetLibraryHubsWriterTypedDict": ".getlibraryhubs", + "QueryParamOnlyTransient": ".getlibraryhubs", + "GetMetadataChildrenDirectory": ".getmetadatachildren", + "GetMetadataChildrenDirectoryTypedDict": ".getmetadatachildren", + "GetMetadataChildrenMediaContainer": ".getmetadatachildren", + "GetMetadataChildrenMediaContainerTypedDict": ".getmetadatachildren", + "GetMetadataChildrenMetadata": ".getmetadatachildren", + "GetMetadataChildrenMetadataTypedDict": ".getmetadatachildren", + "GetMetadataChildrenRequest": ".getmetadatachildren", + "GetMetadataChildrenRequestTypedDict": ".getmetadatachildren", + "GetMetadataChildrenResponse": ".getmetadatachildren", + "GetMetadataChildrenResponseBody": ".getmetadatachildren", + "GetMetadataChildrenResponseBodyTypedDict": ".getmetadatachildren", + "GetMetadataChildrenResponseTypedDict": ".getmetadatachildren", + "GetMyPlexAccountResponse": ".getmyplexaccount", + "GetMyPlexAccountResponseBody": ".getmyplexaccount", + "GetMyPlexAccountResponseBodyTypedDict": ".getmyplexaccount", + "GetMyPlexAccountResponseTypedDict": ".getmyplexaccount", + "MyPlex": ".getmyplexaccount", + "MyPlexTypedDict": ".getmyplexaccount", + "GET_PIN_SERVERS": ".getpin", + "GeoData": ".getpin", + "GeoDataTypedDict": ".getpin", + "GetPinAuthPinContainer": ".getpin", + "GetPinAuthPinContainerTypedDict": ".getpin", + "GetPinRequest": ".getpin", + "GetPinRequestTypedDict": ".getpin", + "GetPinResponse": ".getpin", + "GetPinResponseTypedDict": ".getpin", + "GetPlaylistMediaContainer": ".getplaylist", + "GetPlaylistMediaContainerTypedDict": ".getplaylist", + "GetPlaylistMetadata": ".getplaylist", + "GetPlaylistMetadataTypedDict": ".getplaylist", + "GetPlaylistRequest": ".getplaylist", + "GetPlaylistRequestTypedDict": ".getplaylist", + "GetPlaylistResponse": ".getplaylist", + "GetPlaylistResponseBody": ".getplaylist", + "GetPlaylistResponseBodyTypedDict": ".getplaylist", + "GetPlaylistResponseTypedDict": ".getplaylist", + "GetPlaylistContentsCountry": ".getplaylistcontents", + "GetPlaylistContentsCountryTypedDict": ".getplaylistcontents", + "GetPlaylistContentsDirector": ".getplaylistcontents", + "GetPlaylistContentsDirectorTypedDict": ".getplaylistcontents", + "GetPlaylistContentsGenre": ".getplaylistcontents", + "GetPlaylistContentsGenreTypedDict": ".getplaylistcontents", + "GetPlaylistContentsMedia": ".getplaylistcontents", + "GetPlaylistContentsMediaContainer": ".getplaylistcontents", + "GetPlaylistContentsMediaContainerTypedDict": ".getplaylistcontents", + "GetPlaylistContentsMediaTypedDict": ".getplaylistcontents", + "GetPlaylistContentsMetadata": ".getplaylistcontents", + "GetPlaylistContentsMetadataTypedDict": ".getplaylistcontents", + "GetPlaylistContentsPart": ".getplaylistcontents", + "GetPlaylistContentsPartTypedDict": ".getplaylistcontents", + "GetPlaylistContentsQueryParamType": ".getplaylistcontents", + "GetPlaylistContentsRequest": ".getplaylistcontents", + "GetPlaylistContentsRequestTypedDict": ".getplaylistcontents", + "GetPlaylistContentsResponse": ".getplaylistcontents", + "GetPlaylistContentsResponseBody": ".getplaylistcontents", + "GetPlaylistContentsResponseBodyTypedDict": ".getplaylistcontents", + "GetPlaylistContentsResponseTypedDict": ".getplaylistcontents", + "GetPlaylistContentsRole": ".getplaylistcontents", + "GetPlaylistContentsRoleTypedDict": ".getplaylistcontents", + "GetPlaylistContentsWriter": ".getplaylistcontents", + "GetPlaylistContentsWriterTypedDict": ".getplaylistcontents", + "GetPlaylistsMediaContainer": ".getplaylists", + "GetPlaylistsMediaContainerTypedDict": ".getplaylists", + "GetPlaylistsMetadata": ".getplaylists", + "GetPlaylistsMetadataTypedDict": ".getplaylists", + "GetPlaylistsRequest": ".getplaylists", + "GetPlaylistsRequestTypedDict": ".getplaylists", + "GetPlaylistsResponse": ".getplaylists", + "GetPlaylistsResponseBody": ".getplaylists", + "GetPlaylistsResponseBodyTypedDict": ".getplaylists", + "GetPlaylistsResponseTypedDict": ".getplaylists", + "PlaylistType": ".getplaylists", + "QueryParamSmart": ".getplaylists", + "GetResizedPhotoRequest": ".getresizedphoto", + "GetResizedPhotoRequestTypedDict": ".getresizedphoto", + "GetResizedPhotoResponse": ".getresizedphoto", + "GetResizedPhotoResponseTypedDict": ".getresizedphoto", + "MinSize": ".getresizedphoto", + "Upscale": ".getresizedphoto", + "GetResourcesStatisticsMediaContainer": ".getresourcesstatistics", + "GetResourcesStatisticsMediaContainerTypedDict": ".getresourcesstatistics", + "GetResourcesStatisticsRequest": ".getresourcesstatistics", + "GetResourcesStatisticsRequestTypedDict": ".getresourcesstatistics", + "GetResourcesStatisticsResponse": ".getresourcesstatistics", + "GetResourcesStatisticsResponseBody": ".getresourcesstatistics", + "GetResourcesStatisticsResponseBodyTypedDict": ".getresourcesstatistics", + "GetResourcesStatisticsResponseTypedDict": ".getresourcesstatistics", + "StatisticsResources": ".getresourcesstatistics", + "StatisticsResourcesTypedDict": ".getresourcesstatistics", + "GetSearchResultsCountry": ".getsearchresults", + "GetSearchResultsCountryTypedDict": ".getsearchresults", + "GetSearchResultsDirector": ".getsearchresults", + "GetSearchResultsDirectorTypedDict": ".getsearchresults", + "GetSearchResultsGenre": ".getsearchresults", + "GetSearchResultsGenreTypedDict": ".getsearchresults", + "GetSearchResultsMedia": ".getsearchresults", + "GetSearchResultsMediaContainer": ".getsearchresults", + "GetSearchResultsMediaContainerTypedDict": ".getsearchresults", + "GetSearchResultsMediaTypedDict": ".getsearchresults", + "GetSearchResultsMetadata": ".getsearchresults", + "GetSearchResultsMetadataTypedDict": ".getsearchresults", + "GetSearchResultsPart": ".getsearchresults", + "GetSearchResultsPartTypedDict": ".getsearchresults", + "GetSearchResultsRequest": ".getsearchresults", + "GetSearchResultsRequestTypedDict": ".getsearchresults", + "GetSearchResultsResponse": ".getsearchresults", + "GetSearchResultsResponseBody": ".getsearchresults", + "GetSearchResultsResponseBodyTypedDict": ".getsearchresults", + "GetSearchResultsResponseTypedDict": ".getsearchresults", + "GetSearchResultsRole": ".getsearchresults", + "GetSearchResultsRoleTypedDict": ".getsearchresults", + "GetSearchResultsWriter": ".getsearchresults", + "GetSearchResultsWriterTypedDict": ".getsearchresults", + "Provider": ".getsearchresults", + "ProviderTypedDict": ".getsearchresults", + "Activity": ".getserveractivities", + "ActivityTypedDict": ".getserveractivities", + "Context": ".getserveractivities", + "ContextTypedDict": ".getserveractivities", + "GetServerActivitiesMediaContainer": ".getserveractivities", + "GetServerActivitiesMediaContainerTypedDict": ".getserveractivities", + "GetServerActivitiesResponse": ".getserveractivities", + "GetServerActivitiesResponseBody": ".getserveractivities", + "GetServerActivitiesResponseBodyTypedDict": ".getserveractivities", + "GetServerActivitiesResponseTypedDict": ".getserveractivities", + "Directory": ".getservercapabilities", + "DirectoryTypedDict": ".getservercapabilities", + "GetServerCapabilitiesResponse": ".getservercapabilities", + "GetServerCapabilitiesResponseBody": ".getservercapabilities", + "GetServerCapabilitiesResponseBodyTypedDict": ".getservercapabilities", + "GetServerCapabilitiesResponseTypedDict": ".getservercapabilities", + "MediaContainer": ".getservercapabilities", + "MediaContainerTypedDict": ".getservercapabilities", + "GetServerListMediaContainer": ".getserverlist", + "GetServerListMediaContainerTypedDict": ".getserverlist", + "GetServerListResponse": ".getserverlist", + "GetServerListResponseBody": ".getserverlist", + "GetServerListResponseBodyTypedDict": ".getserverlist", + "GetServerListResponseTypedDict": ".getserverlist", + "GetServerListServer": ".getserverlist", + "GetServerListServerTypedDict": ".getserverlist", + "GetServerPreferencesMediaContainer": ".getserverpreferences", + "GetServerPreferencesMediaContainerTypedDict": ".getserverpreferences", + "GetServerPreferencesResponse": ".getserverpreferences", + "GetServerPreferencesResponseBody": ".getserverpreferences", + "GetServerPreferencesResponseBodyTypedDict": ".getserverpreferences", + "GetServerPreferencesResponseTypedDict": ".getserverpreferences", + "Setting": ".getserverpreferences", + "SettingTypedDict": ".getserverpreferences", + "GetSessionHistoryMediaContainer": ".getsessionhistory", + "GetSessionHistoryMediaContainerTypedDict": ".getsessionhistory", + "GetSessionHistoryMetadata": ".getsessionhistory", + "GetSessionHistoryMetadataTypedDict": ".getsessionhistory", + "GetSessionHistoryRequest": ".getsessionhistory", + "GetSessionHistoryRequestTypedDict": ".getsessionhistory", + "GetSessionHistoryResponse": ".getsessionhistory", + "GetSessionHistoryResponseBody": ".getsessionhistory", + "GetSessionHistoryResponseBodyTypedDict": ".getsessionhistory", + "GetSessionHistoryResponseTypedDict": ".getsessionhistory", + "QueryParamFilter": ".getsessionhistory", + "QueryParamFilterTypedDict": ".getsessionhistory", + "GetSessionsMedia": ".getsessions", + "GetSessionsMediaContainer": ".getsessions", + "GetSessionsMediaContainerTypedDict": ".getsessions", + "GetSessionsMediaTypedDict": ".getsessions", + "GetSessionsMetadata": ".getsessions", + "GetSessionsMetadataTypedDict": ".getsessions", + "GetSessionsPart": ".getsessions", + "GetSessionsPartTypedDict": ".getsessions", + "GetSessionsResponse": ".getsessions", + "GetSessionsResponseBody": ".getsessions", + "GetSessionsResponseBodyTypedDict": ".getsessions", + "GetSessionsResponseTypedDict": ".getsessions", + "GetSessionsStream": ".getsessions", + "GetSessionsStreamTypedDict": ".getsessions", + "GetSessionsUser": ".getsessions", + "GetSessionsUserTypedDict": ".getsessions", + "Player": ".getsessions", + "PlayerTypedDict": ".getsessions", + "Session": ".getsessions", + "SessionTypedDict": ".getsessions", + "GetSourceConnectionInformationRequest": ".getsourceconnectioninformation", + "GetSourceConnectionInformationRequestTypedDict": ".getsourceconnectioninformation", + "GetSourceConnectionInformationResponse": ".getsourceconnectioninformation", + "GetSourceConnectionInformationResponseTypedDict": ".getsourceconnectioninformation", + "Account": ".getstatistics", + "AccountTypedDict": ".getstatistics", + "GetStatisticsDevice": ".getstatistics", + "GetStatisticsDeviceTypedDict": ".getstatistics", + "GetStatisticsMediaContainer": ".getstatistics", + "GetStatisticsMediaContainerTypedDict": ".getstatistics", + "GetStatisticsRequest": ".getstatistics", + "GetStatisticsRequestTypedDict": ".getstatistics", + "GetStatisticsResponse": ".getstatistics", + "GetStatisticsResponseBody": ".getstatistics", + "GetStatisticsResponseBodyTypedDict": ".getstatistics", + "GetStatisticsResponseTypedDict": ".getstatistics", + "StatisticsMedia": ".getstatistics", + "StatisticsMediaTypedDict": ".getstatistics", + "GetTimelineRequest": ".gettimeline", + "GetTimelineRequestTypedDict": ".gettimeline", + "GetTimelineResponse": ".gettimeline", + "GetTimelineResponseTypedDict": ".gettimeline", + "State": ".gettimeline", + "GET_TOKEN_BY_PIN_ID_SERVERS": ".gettokenbypinid", + "GetTokenByPinIDAuthPinContainer": ".gettokenbypinid", + "GetTokenByPinIDAuthPinContainerTypedDict": ".gettokenbypinid", + "GetTokenByPinIDGeoData": ".gettokenbypinid", + "GetTokenByPinIDGeoDataTypedDict": ".gettokenbypinid", + "GetTokenByPinIDRequest": ".gettokenbypinid", + "GetTokenByPinIDRequestTypedDict": ".gettokenbypinid", + "GetTokenByPinIDResponse": ".gettokenbypinid", + "GetTokenByPinIDResponseTypedDict": ".gettokenbypinid", + "AutoSelectSubtitle": ".gettokendetails", + "DefaultSubtitleAccessibility": ".gettokendetails", + "DefaultSubtitleForced": ".gettokendetails", + "GET_TOKEN_DETAILS_SERVERS": ".gettokendetails", + "GetTokenDetailsAuthenticationResponseStatus": ".gettokendetails", + "GetTokenDetailsAuthenticationStatus": ".gettokendetails", + "GetTokenDetailsResponse": ".gettokendetails", + "GetTokenDetailsResponseTypedDict": ".gettokendetails", + "GetTokenDetailsStatus": ".gettokendetails", + "GetTokenDetailsSubscription": ".gettokendetails", + "GetTokenDetailsSubscriptionTypedDict": ".gettokendetails", + "GetTokenDetailsUserPlexAccount": ".gettokendetails", + "GetTokenDetailsUserPlexAccountTypedDict": ".gettokendetails", + "MailingListStatus": ".gettokendetails", + "MediaReviewsVisibility": ".gettokendetails", + "Services": ".gettokendetails", + "ServicesTypedDict": ".gettokendetails", + "Subscription": ".gettokendetails", + "SubscriptionTypedDict": ".gettokendetails", + "UserProfile": ".gettokendetails", + "UserProfileTypedDict": ".gettokendetails", + "WatchedIndicator": ".gettokendetails", + "GetTopWatchedContentCountry": ".gettopwatchedcontent", + "GetTopWatchedContentCountryTypedDict": ".gettopwatchedcontent", + "GetTopWatchedContentGenre": ".gettopwatchedcontent", + "GetTopWatchedContentGenreTypedDict": ".gettopwatchedcontent", + "GetTopWatchedContentGuids": ".gettopwatchedcontent", + "GetTopWatchedContentGuidsTypedDict": ".gettopwatchedcontent", + "GetTopWatchedContentMediaContainer": ".gettopwatchedcontent", + "GetTopWatchedContentMediaContainerTypedDict": ".gettopwatchedcontent", + "GetTopWatchedContentMetadata": ".gettopwatchedcontent", + "GetTopWatchedContentMetadataTypedDict": ".gettopwatchedcontent", + "GetTopWatchedContentQueryParamType": ".gettopwatchedcontent", + "GetTopWatchedContentRequest": ".gettopwatchedcontent", + "GetTopWatchedContentRequestTypedDict": ".gettopwatchedcontent", + "GetTopWatchedContentResponse": ".gettopwatchedcontent", + "GetTopWatchedContentResponseBody": ".gettopwatchedcontent", + "GetTopWatchedContentResponseBodyTypedDict": ".gettopwatchedcontent", + "GetTopWatchedContentResponseTypedDict": ".gettopwatchedcontent", + "GetTopWatchedContentRole": ".gettopwatchedcontent", + "GetTopWatchedContentRoleTypedDict": ".gettopwatchedcontent", + "GetTopWatchedContentUser": ".gettopwatchedcontent", + "GetTopWatchedContentUserTypedDict": ".gettopwatchedcontent", + "GetTranscodeSessionsMediaContainer": ".gettranscodesessions", + "GetTranscodeSessionsMediaContainerTypedDict": ".gettranscodesessions", + "GetTranscodeSessionsResponse": ".gettranscodesessions", + "GetTranscodeSessionsResponseBody": ".gettranscodesessions", + "GetTranscodeSessionsResponseBodyTypedDict": ".gettranscodesessions", + "GetTranscodeSessionsResponseTypedDict": ".gettranscodesessions", + "TranscodeSession": ".gettranscodesessions", + "TranscodeSessionTypedDict": ".gettranscodesessions", + "GetTransientTokenQueryParamType": ".gettransienttoken", + "GetTransientTokenRequest": ".gettransienttoken", + "GetTransientTokenRequestTypedDict": ".gettransienttoken", + "GetTransientTokenResponse": ".gettransienttoken", + "GetTransientTokenResponseTypedDict": ".gettransienttoken", + "Scope": ".gettransienttoken", + "GetUpdateStatusMediaContainer": ".getupdatestatus", + "GetUpdateStatusMediaContainerTypedDict": ".getupdatestatus", + "GetUpdateStatusResponse": ".getupdatestatus", + "GetUpdateStatusResponseBody": ".getupdatestatus", + "GetUpdateStatusResponseBodyTypedDict": ".getupdatestatus", + "GetUpdateStatusResponseTypedDict": ".getupdatestatus", + "Release": ".getupdatestatus", + "ReleaseTypedDict": ".getupdatestatus", + "Friend": ".getuserfriends", + "FriendTypedDict": ".getuserfriends", + "GET_USER_FRIENDS_SERVERS": ".getuserfriends", + "GetUserFriendsResponse": ".getuserfriends", + "GetUserFriendsResponseTypedDict": ".getuserfriends", + "SharedServers": ".getuserfriends", + "SharedServersTypedDict": ".getuserfriends", + "SharedSources": ".getuserfriends", + "SharedSourcesTypedDict": ".getuserfriends", + "Status": ".getuserfriends", + "Level": ".logline", + "LogLineRequest": ".logline", + "LogLineRequestTypedDict": ".logline", + "LogLineResponse": ".logline", + "LogLineResponseTypedDict": ".logline", + "LogMultiLineResponse": ".logmultiline", + "LogMultiLineResponseTypedDict": ".logmultiline", + "MarkPlayedRequest": ".markplayed", + "MarkPlayedRequestTypedDict": ".markplayed", + "MarkPlayedResponse": ".markplayed", + "MarkPlayedResponseTypedDict": ".markplayed", + "MarkUnplayedRequest": ".markunplayed", + "MarkUnplayedRequestTypedDict": ".markunplayed", + "MarkUnplayedResponse": ".markunplayed", + "MarkUnplayedResponseTypedDict": ".markunplayed", + "PerformSearchRequest": ".performsearch", + "PerformSearchRequestTypedDict": ".performsearch", + "PerformSearchResponse": ".performsearch", + "PerformSearchResponseTypedDict": ".performsearch", + "PerformVoiceSearchRequest": ".performvoicesearch", + "PerformVoiceSearchRequestTypedDict": ".performvoicesearch", + "PerformVoiceSearchResponse": ".performvoicesearch", + "PerformVoiceSearchResponseTypedDict": ".performvoicesearch", + "PostMediaArtsRequest": ".post_media_arts", + "PostMediaArtsRequestTypedDict": ".post_media_arts", + "PostMediaArtsResponse": ".post_media_arts", + "PostMediaArtsResponseTypedDict": ".post_media_arts", + "PostMediaPosterRequest": ".post_media_poster", + "PostMediaPosterRequestTypedDict": ".post_media_poster", + "PostMediaPosterResponse": ".post_media_poster", + "PostMediaPosterResponseTypedDict": ".post_media_poster", + "Billing": ".post_users_sign_in_data", + "BillingTypedDict": ".post_users_sign_in_data", + "InternalPaymentMethod": ".post_users_sign_in_data", + "InternalPaymentMethodTypedDict": ".post_users_sign_in_data", + "POST_USERS_SIGN_IN_DATA_SERVERS": ".post_users_sign_in_data", + "PastSubscription": ".post_users_sign_in_data", + "PastSubscriptionTypedDict": ".post_users_sign_in_data", + "PostUsersSignInDataAuthenticationResponseStatus": ".post_users_sign_in_data", + "PostUsersSignInDataAuthenticationStatus": ".post_users_sign_in_data", + "PostUsersSignInDataAuthenticationSubscription": ".post_users_sign_in_data", + "PostUsersSignInDataAuthenticationSubscriptionTypedDict": ".post_users_sign_in_data", + "PostUsersSignInDataAutoSelectSubtitle": ".post_users_sign_in_data", + "PostUsersSignInDataDefaultSubtitleAccessibility": ".post_users_sign_in_data", + "PostUsersSignInDataDefaultSubtitleForced": ".post_users_sign_in_data", + "PostUsersSignInDataMailingListStatus": ".post_users_sign_in_data", + "PostUsersSignInDataMediaReviewsVisibility": ".post_users_sign_in_data", + "PostUsersSignInDataRequest": ".post_users_sign_in_data", + "PostUsersSignInDataRequestBody": ".post_users_sign_in_data", + "PostUsersSignInDataRequestBodyTypedDict": ".post_users_sign_in_data", + "PostUsersSignInDataRequestTypedDict": ".post_users_sign_in_data", + "PostUsersSignInDataResponse": ".post_users_sign_in_data", + "PostUsersSignInDataResponseTypedDict": ".post_users_sign_in_data", + "PostUsersSignInDataServices": ".post_users_sign_in_data", + "PostUsersSignInDataServicesTypedDict": ".post_users_sign_in_data", + "PostUsersSignInDataState": ".post_users_sign_in_data", + "PostUsersSignInDataStatus": ".post_users_sign_in_data", + "PostUsersSignInDataSubscription": ".post_users_sign_in_data", + "PostUsersSignInDataSubscriptionTypedDict": ".post_users_sign_in_data", + "PostUsersSignInDataUserPlexAccount": ".post_users_sign_in_data", + "PostUsersSignInDataUserPlexAccountTypedDict": ".post_users_sign_in_data", + "PostUsersSignInDataUserProfile": ".post_users_sign_in_data", + "PostUsersSignInDataUserProfileTypedDict": ".post_users_sign_in_data", + "PostUsersSignInDataWatchedIndicator": ".post_users_sign_in_data", + "Trials": ".post_users_sign_in_data", + "TrialsTypedDict": ".post_users_sign_in_data", + "StartAllTasksResponse": ".startalltasks", + "StartAllTasksResponseTypedDict": ".startalltasks", + "StartTaskRequest": ".starttask", + "StartTaskRequestTypedDict": ".starttask", + "StartTaskResponse": ".starttask", + "StartTaskResponseTypedDict": ".starttask", + "TaskName": ".starttask", + "StartUniversalTranscodeRequest": ".startuniversaltranscode", + "StartUniversalTranscodeRequestTypedDict": ".startuniversaltranscode", + "StartUniversalTranscodeResponse": ".startuniversaltranscode", + "StartUniversalTranscodeResponseTypedDict": ".startuniversaltranscode", + "StopAllTasksResponse": ".stopalltasks", + "StopAllTasksResponseTypedDict": ".stopalltasks", + "PathParamTaskName": ".stoptask", + "StopTaskRequest": ".stoptask", + "StopTaskRequestTypedDict": ".stoptask", + "StopTaskResponse": ".stoptask", + "StopTaskResponseTypedDict": ".stoptask", + "StopTranscodeSessionRequest": ".stoptranscodesession", + "StopTranscodeSessionRequestTypedDict": ".stoptranscodesession", + "StopTranscodeSessionResponse": ".stoptranscodesession", + "StopTranscodeSessionResponseTypedDict": ".stoptranscodesession", + "UpdatePlaylistRequest": ".updateplaylist", + "UpdatePlaylistRequestTypedDict": ".updateplaylist", + "UpdatePlaylistResponse": ".updateplaylist", + "UpdatePlaylistResponseTypedDict": ".updateplaylist", + "UpdatePlayProgressRequest": ".updateplayprogress", + "UpdatePlayProgressRequestTypedDict": ".updateplayprogress", + "UpdatePlayProgressResponse": ".updateplayprogress", + "UpdatePlayProgressResponseTypedDict": ".updateplayprogress", + "QueryParamForce": ".uploadplaylist", + "UploadPlaylistRequest": ".uploadplaylist", + "UploadPlaylistRequestTypedDict": ".uploadplaylist", + "UploadPlaylistResponse": ".uploadplaylist", + "UploadPlaylistResponseTypedDict": ".uploadplaylist", +} + + +def __getattr__(attr_name: str) -> object: + module_name = _dynamic_imports.get(attr_name) + if module_name is None: + raise AttributeError( + f"No {attr_name} found in _dynamic_imports for module name -> {__name__} " + ) + + try: + module = import_module(module_name, __package__) + result = getattr(module, attr_name) + return result + except ImportError as e: + raise ImportError( + f"Failed to import {attr_name} from {module_name}: {e}" + ) from e + except AttributeError as e: + raise AttributeError( + f"Failed to get {attr_name} from {module_name}: {e}" + ) from e + + +def __dir__(): + lazy_attrs = list(_dynamic_imports.keys()) + return sorted(lazy_attrs) diff --git a/src/plex_api_client/playlists.py b/src/plex_api_client/playlists.py index c2b1332..99090ea 100644 --- a/src/plex_api_client/playlists.py +++ b/src/plex_api_client/playlists.py @@ -80,6 +80,7 @@ class Playlists(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="createPlaylist", oauth2_scopes=[], @@ -196,6 +197,7 @@ class Playlists(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="createPlaylist", oauth2_scopes=[], @@ -310,6 +312,7 @@ class Playlists(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getPlaylists", oauth2_scopes=[], @@ -424,6 +427,7 @@ class Playlists(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getPlaylists", oauth2_scopes=[], @@ -537,6 +541,7 @@ class Playlists(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getPlaylist", oauth2_scopes=[], @@ -650,6 +655,7 @@ class Playlists(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getPlaylist", oauth2_scopes=[], @@ -762,6 +768,7 @@ class Playlists(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="deletePlaylist", oauth2_scopes=[], @@ -871,6 +878,7 @@ class Playlists(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="deletePlaylist", oauth2_scopes=[], @@ -986,6 +994,7 @@ class Playlists(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="updatePlaylist", oauth2_scopes=[], @@ -1101,6 +1110,7 @@ class Playlists(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="updatePlaylist", oauth2_scopes=[], @@ -1216,6 +1226,7 @@ class Playlists(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getPlaylistContents", oauth2_scopes=[], @@ -1334,6 +1345,7 @@ class Playlists(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getPlaylistContents", oauth2_scopes=[], @@ -1446,6 +1458,7 @@ class Playlists(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="clearPlaylistContents", oauth2_scopes=[], @@ -1555,6 +1568,7 @@ class Playlists(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="clearPlaylistContents", oauth2_scopes=[], @@ -1671,6 +1685,7 @@ class Playlists(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="addPlaylistContents", oauth2_scopes=[], @@ -1790,6 +1805,7 @@ class Playlists(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="addPlaylistContents", oauth2_scopes=[], @@ -1908,6 +1924,7 @@ class Playlists(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="uploadPlaylist", oauth2_scopes=[], @@ -2023,6 +2040,7 @@ class Playlists(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="uploadPlaylist", oauth2_scopes=[], diff --git a/src/plex_api_client/plex.py b/src/plex_api_client/plex.py index 243d02f..26e0e00 100644 --- a/src/plex_api_client/plex.py +++ b/src/plex_api_client/plex.py @@ -63,6 +63,7 @@ class Plex(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getCompanionsData", oauth2_scopes=[], @@ -167,6 +168,7 @@ class Plex(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getCompanionsData", oauth2_scopes=[], @@ -271,6 +273,7 @@ class Plex(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getUserFriends", oauth2_scopes=[], @@ -375,6 +378,7 @@ class Plex(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getUserFriends", oauth2_scopes=[], @@ -478,6 +482,7 @@ class Plex(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getGeoData", oauth2_scopes=[], @@ -581,6 +586,7 @@ class Plex(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getGeoData", oauth2_scopes=[], @@ -685,6 +691,7 @@ class Plex(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getHomeData", oauth2_scopes=[], @@ -789,6 +796,7 @@ class Plex(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getHomeData", oauth2_scopes=[], @@ -915,6 +923,7 @@ class Plex(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-server-resources", oauth2_scopes=[], @@ -1041,6 +1050,7 @@ class Plex(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-server-resources", oauth2_scopes=[], @@ -1151,6 +1161,7 @@ class Plex(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getPin", oauth2_scopes=[], @@ -1255,6 +1266,7 @@ class Plex(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getPin", oauth2_scopes=[], @@ -1362,6 +1374,7 @@ class Plex(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getTokenByPinId", oauth2_scopes=[], @@ -1475,6 +1488,7 @@ class Plex(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getTokenByPinId", oauth2_scopes=[], diff --git a/src/plex_api_client/sdk.py b/src/plex_api_client/sdk.py index 7b3af95..373f5c8 100644 --- a/src/plex_api_client/sdk.py +++ b/src/plex_api_client/sdk.py @@ -6,30 +6,33 @@ from .sdkconfiguration import SDKConfiguration, ServerProtocol from .utils.logger import Logger, get_default_logger from .utils.retries import RetryConfig import httpx +import importlib from plex_api_client import utils from plex_api_client._hooks import SDKHooks -from plex_api_client.activities import Activities -from plex_api_client.authentication import Authentication -from plex_api_client.butler import Butler -from plex_api_client.hubs import Hubs -from plex_api_client.library import Library -from plex_api_client.log import Log -from plex_api_client.media import Media from plex_api_client.models import components -from plex_api_client.playlists import Playlists -from plex_api_client.plex import Plex -from plex_api_client.search import Search -from plex_api_client.server import Server -from plex_api_client.sessions import Sessions -from plex_api_client.statistics import Statistics from plex_api_client.types import OptionalNullable, UNSET -from plex_api_client.updater import Updater -from plex_api_client.users import Users -from plex_api_client.video import Video -from plex_api_client.watchlist import Watchlist -from typing import Any, Callable, Dict, List, Optional, Union, cast +from typing import Any, Callable, Dict, List, Optional, TYPE_CHECKING, Union, cast import weakref +if TYPE_CHECKING: + from plex_api_client.activities import Activities + from plex_api_client.authentication import Authentication + from plex_api_client.butler import Butler + from plex_api_client.hubs import Hubs + from plex_api_client.library import Library + from plex_api_client.log import Log + from plex_api_client.media import Media + from plex_api_client.playlists import Playlists + from plex_api_client.plex import Plex + from plex_api_client.search import Search + from plex_api_client.server import Server + from plex_api_client.sessions import Sessions + from plex_api_client.statistics import Statistics + from plex_api_client.updater import Updater + from plex_api_client.users import Users + from plex_api_client.video import Video + from plex_api_client.watchlist import Watchlist + class PlexAPI(BaseSDK): r"""Plex-API: An Open API Spec for interacting with Plex.tv and Plex Media Server @@ -61,19 +64,19 @@ class PlexAPI(BaseSDK): """ - server: Server + server: "Server" r"""Operations against the Plex Media Server System. """ - media: Media + media: "Media" r"""API Calls interacting with Plex Media Server Media """ - video: Video + video: "Video" r"""API Calls that perform operations with Plex Media Server Videos """ - activities: Activities + activities: "Activities" r"""Activities are awesome. They provide a way to monitor and control asynchronous operations on the server. In order to receive real-time updates for activities, a client would normally subscribe via either EventSource or Websocket endpoints. Activities are associated with HTTP replies via a special `X-Plex-Activity` header which contains the UUID of the activity. Activities are optional cancellable. If cancellable, they may be cancelled via the `DELETE` endpoint. Other details: @@ -83,59 +86,78 @@ class PlexAPI(BaseSDK): - The may contain a `Response` object which attributes which represent the result of the asynchronous operation. """ - butler: Butler + butler: "Butler" r"""Butler is the task manager of the Plex Media Server Ecosystem. """ - plex: Plex + plex: "Plex" r"""API Calls that perform operations directly against https://Plex.tv """ - hubs: Hubs + hubs: "Hubs" r"""Hubs are a structured two-dimensional container for media, generally represented by multiple horizontal rows. """ - search: Search + search: "Search" r"""API Calls that perform search operations with Plex Media Server """ - library: Library + library: "Library" r"""API Calls interacting with Plex Media Server Libraries """ - watchlist: Watchlist + watchlist: "Watchlist" r"""API Calls that perform operations with Plex Media Server Watchlists """ - log: Log + log: "Log" r"""Submit logs to the Log Handler for Plex Media Server """ - playlists: Playlists + playlists: "Playlists" r"""Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as \"all albums from 2017\"). They can be organized in (optionally nesting) folders. Retrieving a playlist, or its items, will trigger a refresh of its metadata. This may cause the duration and number of items to change. """ - authentication: Authentication + authentication: "Authentication" r"""API Calls regarding authentication for Plex Media Server """ - statistics: Statistics + statistics: "Statistics" r"""API Calls that perform operations with Plex Media Server Statistics """ - sessions: Sessions + sessions: "Sessions" r"""API Calls that perform search operations with Plex Media Server Sessions """ - updater: Updater + updater: "Updater" r"""This describes the API for searching and applying updates to the Plex Media Server. Updates to the status can be observed via the Event API. """ - users: Users + users: "Users" + _sub_sdk_map = { + "server": ("plex_api_client.server", "Server"), + "media": ("plex_api_client.media", "Media"), + "video": ("plex_api_client.video", "Video"), + "activities": ("plex_api_client.activities", "Activities"), + "butler": ("plex_api_client.butler", "Butler"), + "plex": ("plex_api_client.plex", "Plex"), + "hubs": ("plex_api_client.hubs", "Hubs"), + "search": ("plex_api_client.search", "Search"), + "library": ("plex_api_client.library", "Library"), + "watchlist": ("plex_api_client.watchlist", "Watchlist"), + "log": ("plex_api_client.log", "Log"), + "playlists": ("plex_api_client.playlists", "Playlists"), + "authentication": ("plex_api_client.authentication", "Authentication"), + "statistics": ("plex_api_client.statistics", "Statistics"), + "sessions": ("plex_api_client.sessions", "Sessions"), + "updater": ("plex_api_client.updater", "Updater"), + "users": ("plex_api_client.users", "Users"), + } def __init__( self, @@ -226,6 +248,9 @@ class PlexAPI(BaseSDK): hooks = SDKHooks() + # pylint: disable=protected-access + self.sdk_configuration.__dict__["_hooks"] = hooks + current_server_url, *_ = self.sdk_configuration.get_server_details() server_url, self.sdk_configuration.client = hooks.sdk_init( current_server_url, client @@ -233,9 +258,6 @@ class PlexAPI(BaseSDK): if current_server_url != server_url: self.sdk_configuration.server_url = server_url - # pylint: disable=protected-access - self.sdk_configuration.__dict__["_hooks"] = hooks - weakref.finalize( self, close_clients, @@ -246,26 +268,32 @@ class PlexAPI(BaseSDK): self.sdk_configuration.async_client_supplied, ) - self._init_sdks() + def __getattr__(self, name: str): + if name in self._sub_sdk_map: + module_path, class_name = self._sub_sdk_map[name] + try: + module = importlib.import_module(module_path) + klass = getattr(module, class_name) + instance = klass(self.sdk_configuration) + setattr(self, name, instance) + return instance + except ImportError as e: + raise AttributeError( + f"Failed to import module {module_path} for attribute {name}: {e}" + ) from e + except AttributeError as e: + raise AttributeError( + f"Failed to find class {class_name} in module {module_path} for attribute {name}: {e}" + ) from e - def _init_sdks(self): - self.server = Server(self.sdk_configuration) - self.media = Media(self.sdk_configuration) - self.video = Video(self.sdk_configuration) - self.activities = Activities(self.sdk_configuration) - self.butler = Butler(self.sdk_configuration) - self.plex = Plex(self.sdk_configuration) - self.hubs = Hubs(self.sdk_configuration) - self.search = Search(self.sdk_configuration) - self.library = Library(self.sdk_configuration) - self.watchlist = Watchlist(self.sdk_configuration) - self.log = Log(self.sdk_configuration) - self.playlists = Playlists(self.sdk_configuration) - self.authentication = Authentication(self.sdk_configuration) - self.statistics = Statistics(self.sdk_configuration) - self.sessions = Sessions(self.sdk_configuration) - self.updater = Updater(self.sdk_configuration) - self.users = Users(self.sdk_configuration) + raise AttributeError( + f"'{type(self).__name__}' object has no attribute '{name}'" + ) + + def __dir__(self): + default_attrs = list(super().__dir__()) + lazy_attrs = list(self._sub_sdk_map.keys()) + return sorted(list(set(default_attrs + lazy_attrs))) def __enter__(self): return self diff --git a/src/plex_api_client/sdkconfiguration.py b/src/plex_api_client/sdkconfiguration.py index ab5aad5..d78b791 100644 --- a/src/plex_api_client/sdkconfiguration.py +++ b/src/plex_api_client/sdkconfiguration.py @@ -1,6 +1,5 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from ._hooks import SDKHooks from ._version import ( __gen_version__, __openapi_doc_version__, @@ -52,9 +51,6 @@ class SDKConfiguration: retry_config: OptionalNullable[RetryConfig] = Field(default_factory=lambda: UNSET) timeout_ms: Optional[int] = None - def __post_init__(self): - self._hooks = SDKHooks() - def get_server_details(self) -> Tuple[str, Dict[str, str]]: if self.server_url is not None and self.server_url: return remove_suffix(self.server_url, "/"), {} @@ -62,6 +58,3 @@ class SDKConfiguration: self.server_idx = 0 return SERVERS[self.server_idx], self.server_defaults[self.server_idx] - - def get_hooks(self) -> SDKHooks: - return self._hooks diff --git a/src/plex_api_client/search.py b/src/plex_api_client/search.py index 3b3a9a7..503472e 100644 --- a/src/plex_api_client/search.py +++ b/src/plex_api_client/search.py @@ -88,6 +88,7 @@ class Search(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="performSearch", oauth2_scopes=[], @@ -214,6 +215,7 @@ class Search(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="performSearch", oauth2_scopes=[], @@ -332,6 +334,7 @@ class Search(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="performVoiceSearch", oauth2_scopes=[], @@ -450,6 +453,7 @@ class Search(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="performVoiceSearch", oauth2_scopes=[], @@ -558,6 +562,7 @@ class Search(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getSearchResults", oauth2_scopes=[], @@ -669,6 +674,7 @@ class Search(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getSearchResults", oauth2_scopes=[], diff --git a/src/plex_api_client/server.py b/src/plex_api_client/server.py index 369cde9..3b31431 100644 --- a/src/plex_api_client/server.py +++ b/src/plex_api_client/server.py @@ -63,6 +63,7 @@ class Server(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getServerCapabilities", oauth2_scopes=[], @@ -168,6 +169,7 @@ class Server(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getServerCapabilities", oauth2_scopes=[], @@ -273,6 +275,7 @@ class Server(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getServerPreferences", oauth2_scopes=[], @@ -377,6 +380,7 @@ class Server(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getServerPreferences", oauth2_scopes=[], @@ -481,6 +485,7 @@ class Server(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getAvailableClients", oauth2_scopes=[], @@ -585,6 +590,7 @@ class Server(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getAvailableClients", oauth2_scopes=[], @@ -689,6 +695,7 @@ class Server(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getDevices", oauth2_scopes=[], @@ -793,6 +800,7 @@ class Server(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getDevices", oauth2_scopes=[], @@ -896,6 +904,7 @@ class Server(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-server-identity", oauth2_scopes=[], @@ -993,6 +1002,7 @@ class Server(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-server-identity", oauth2_scopes=[], @@ -1091,6 +1101,7 @@ class Server(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getMyPlexAccount", oauth2_scopes=[], @@ -1195,6 +1206,7 @@ class Server(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getMyPlexAccount", oauth2_scopes=[], @@ -1310,6 +1322,7 @@ class Server(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getResizedPhoto", oauth2_scopes=[], @@ -1422,6 +1435,7 @@ class Server(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getResizedPhoto", oauth2_scopes=[], @@ -1530,6 +1544,7 @@ class Server(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-media-providers", oauth2_scopes=[], @@ -1641,6 +1656,7 @@ class Server(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-media-providers", oauth2_scopes=[], @@ -1745,6 +1761,7 @@ class Server(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getServerList", oauth2_scopes=[], @@ -1849,6 +1866,7 @@ class Server(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getServerList", oauth2_scopes=[], diff --git a/src/plex_api_client/sessions.py b/src/plex_api_client/sessions.py index 3897cc1..f6bbddf 100644 --- a/src/plex_api_client/sessions.py +++ b/src/plex_api_client/sessions.py @@ -63,6 +63,7 @@ class Sessions(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getSessions", oauth2_scopes=[], @@ -167,6 +168,7 @@ class Sessions(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getSessions", oauth2_scopes=[], @@ -291,6 +293,7 @@ class Sessions(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getSessionHistory", oauth2_scopes=[], @@ -415,6 +418,7 @@ class Sessions(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getSessionHistory", oauth2_scopes=[], @@ -519,6 +523,7 @@ class Sessions(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getTranscodeSessions", oauth2_scopes=[], @@ -623,6 +628,7 @@ class Sessions(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getTranscodeSessions", oauth2_scopes=[], @@ -734,6 +740,7 @@ class Sessions(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="stopTranscodeSession", oauth2_scopes=[], @@ -842,6 +849,7 @@ class Sessions(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="stopTranscodeSession", oauth2_scopes=[], diff --git a/src/plex_api_client/statistics.py b/src/plex_api_client/statistics.py index 3b0d37a..1066d12 100644 --- a/src/plex_api_client/statistics.py +++ b/src/plex_api_client/statistics.py @@ -70,6 +70,7 @@ class Statistics(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getStatistics", oauth2_scopes=[], @@ -181,6 +182,7 @@ class Statistics(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getStatistics", oauth2_scopes=[], @@ -292,6 +294,7 @@ class Statistics(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getResourcesStatistics", oauth2_scopes=[], @@ -404,6 +407,7 @@ class Statistics(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getResourcesStatistics", oauth2_scopes=[], @@ -516,6 +520,7 @@ class Statistics(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getBandwidthStatistics", oauth2_scopes=[], @@ -628,6 +633,7 @@ class Statistics(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getBandwidthStatistics", oauth2_scopes=[], diff --git a/src/plex_api_client/updater.py b/src/plex_api_client/updater.py index 9bddff1..55e4884 100644 --- a/src/plex_api_client/updater.py +++ b/src/plex_api_client/updater.py @@ -66,6 +66,7 @@ class Updater(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getUpdateStatus", oauth2_scopes=[], @@ -170,6 +171,7 @@ class Updater(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getUpdateStatus", oauth2_scopes=[], @@ -281,6 +283,7 @@ class Updater(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="checkForUpdates", oauth2_scopes=[], @@ -389,6 +392,7 @@ class Updater(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="checkForUpdates", oauth2_scopes=[], @@ -501,6 +505,7 @@ class Updater(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="applyUpdates", oauth2_scopes=[], @@ -613,6 +618,7 @@ class Updater(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="applyUpdates", oauth2_scopes=[], diff --git a/src/plex_api_client/users.py b/src/plex_api_client/users.py index e9c4d2e..edd8089 100644 --- a/src/plex_api_client/users.py +++ b/src/plex_api_client/users.py @@ -67,6 +67,7 @@ class Users(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-users", oauth2_scopes=[], @@ -176,6 +177,7 @@ class Users(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-users", oauth2_scopes=[], diff --git a/src/plex_api_client/utils/__init__.py b/src/plex_api_client/utils/__init__.py index f2950ee..dd4aa4b 100644 --- a/src/plex_api_client/utils/__init__.py +++ b/src/plex_api_client/utils/__init__.py @@ -1,51 +1,55 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from .annotations import get_discriminator -from .datetimes import parse_datetime -from .enums import OpenEnumMeta -from .headers import get_headers, get_response_headers -from .metadata import ( - FieldMetadata, - find_metadata, - FormMetadata, - HeaderMetadata, - MultipartFormMetadata, - PathParamMetadata, - QueryParamMetadata, - RequestMetadata, - SecurityMetadata, -) -from .queryparams import get_query_params -from .retries import BackoffStrategy, Retries, retry, retry_async, RetryConfig -from .requestbodies import serialize_request_body, SerializedRequestBody -from .security import get_security -from .serializers import ( - get_pydantic_model, - marshal_json, - unmarshal, - unmarshal_json, - serialize_decimal, - serialize_float, - serialize_int, - stream_to_text, - stream_to_text_async, - stream_to_bytes, - stream_to_bytes_async, - validate_const, - validate_decimal, - validate_float, - validate_int, - validate_open_enum, -) -from .url import generate_url, template_url, remove_suffix -from .values import ( - get_global_from_env, - match_content_type, - match_status_codes, - match_response, - cast_partial, -) -from .logger import Logger, get_body_content, get_default_logger +from typing import TYPE_CHECKING +from importlib import import_module + +if TYPE_CHECKING: + from .annotations import get_discriminator + from .datetimes import parse_datetime + from .enums import OpenEnumMeta + from .headers import get_headers, get_response_headers + from .metadata import ( + FieldMetadata, + find_metadata, + FormMetadata, + HeaderMetadata, + MultipartFormMetadata, + PathParamMetadata, + QueryParamMetadata, + RequestMetadata, + SecurityMetadata, + ) + from .queryparams import get_query_params + from .retries import BackoffStrategy, Retries, retry, retry_async, RetryConfig + from .requestbodies import serialize_request_body, SerializedRequestBody + from .security import get_security + from .serializers import ( + get_pydantic_model, + marshal_json, + unmarshal, + unmarshal_json, + serialize_decimal, + serialize_float, + serialize_int, + stream_to_text, + stream_to_text_async, + stream_to_bytes, + stream_to_bytes_async, + validate_const, + validate_decimal, + validate_float, + validate_int, + validate_open_enum, + ) + from .url import generate_url, template_url, remove_suffix + from .values import ( + get_global_from_env, + match_content_type, + match_status_codes, + match_response, + cast_partial, + ) + from .logger import Logger, get_body_content, get_default_logger __all__ = [ "BackoffStrategy", @@ -56,6 +60,7 @@ __all__ = [ "get_body_content", "get_default_logger", "get_discriminator", + "parse_datetime", "get_global_from_env", "get_headers", "get_pydantic_model", @@ -98,3 +103,82 @@ __all__ = [ "validate_open_enum", "cast_partial", ] + +_dynamic_imports: dict[str, str] = { + "BackoffStrategy": ".retries", + "FieldMetadata": ".metadata", + "find_metadata": ".metadata", + "FormMetadata": ".metadata", + "generate_url": ".url", + "get_body_content": ".logger", + "get_default_logger": ".logger", + "get_discriminator": ".annotations", + "parse_datetime": ".datetimes", + "get_global_from_env": ".values", + "get_headers": ".headers", + "get_pydantic_model": ".serializers", + "get_query_params": ".queryparams", + "get_response_headers": ".headers", + "get_security": ".security", + "HeaderMetadata": ".metadata", + "Logger": ".logger", + "marshal_json": ".serializers", + "match_content_type": ".values", + "match_status_codes": ".values", + "match_response": ".values", + "MultipartFormMetadata": ".metadata", + "OpenEnumMeta": ".enums", + "PathParamMetadata": ".metadata", + "QueryParamMetadata": ".metadata", + "remove_suffix": ".url", + "Retries": ".retries", + "retry": ".retries", + "retry_async": ".retries", + "RetryConfig": ".retries", + "RequestMetadata": ".metadata", + "SecurityMetadata": ".metadata", + "serialize_decimal": ".serializers", + "serialize_float": ".serializers", + "serialize_int": ".serializers", + "serialize_request_body": ".requestbodies", + "SerializedRequestBody": ".requestbodies", + "stream_to_text": ".serializers", + "stream_to_text_async": ".serializers", + "stream_to_bytes": ".serializers", + "stream_to_bytes_async": ".serializers", + "template_url": ".url", + "unmarshal": ".serializers", + "unmarshal_json": ".serializers", + "validate_decimal": ".serializers", + "validate_const": ".serializers", + "validate_float": ".serializers", + "validate_int": ".serializers", + "validate_open_enum": ".serializers", + "cast_partial": ".values", +} + + +def __getattr__(attr_name: str) -> object: + module_name = _dynamic_imports.get(attr_name) + if module_name is None: + raise AttributeError( + f"no {attr_name} found in _dynamic_imports, module name -> {__name__} " + ) + + try: + module = import_module(module_name, __package__) + result = getattr(module, attr_name) + return result + except ImportError as e: + raise ImportError( + f"Failed to import {attr_name} from {module_name}: {e}" + ) from e + except AttributeError as e: + raise AttributeError( + f"Failed to get {attr_name} from {module_name}: {e}" + ) from e + + +def __dir__(): + lazy_attrs = list(_dynamic_imports.keys()) + return sorted(lazy_attrs) diff --git a/src/plex_api_client/video.py b/src/plex_api_client/video.py index 3a38e4e..3d4473e 100644 --- a/src/plex_api_client/video.py +++ b/src/plex_api_client/video.py @@ -72,6 +72,7 @@ class Video(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getTimeline", oauth2_scopes=[], @@ -182,6 +183,7 @@ class Video(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getTimeline", oauth2_scopes=[], @@ -295,6 +297,7 @@ class Video(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="startUniversalTranscode", oauth2_scopes=[], @@ -408,6 +411,7 @@ class Video(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="startUniversalTranscode", oauth2_scopes=[], diff --git a/src/plex_api_client/watchlist.py b/src/plex_api_client/watchlist.py index aec1932..1320709 100644 --- a/src/plex_api_client/watchlist.py +++ b/src/plex_api_client/watchlist.py @@ -72,6 +72,7 @@ class Watchlist(BaseSDK): http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-watch-list", oauth2_scopes=[], @@ -185,6 +186,7 @@ class Watchlist(BaseSDK): http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="get-watch-list", oauth2_scopes=[],