plex-api-client 0.19.1__tar.gz → 0.20.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/PKG-INFO +101 -123
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/README-PYPI.md +97 -119
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/pyproject.toml +5 -5
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/_version.py +1 -1
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/activities.py +13 -1
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/authentication.py +25 -15
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/basesdk.py +18 -2
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/butler.py +31 -1
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/httpclient.py +6 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/hubs.py +19 -1
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/library.py +81 -7
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/log.py +19 -1
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/media.py +31 -1
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/__init__.py +0 -20
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/get_library_items.py +15 -12
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/get_meta_data_by_rating_key.py +29 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/get_recently_added.py +14 -12
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/get_recently_added_library.py +2 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/get_search_all_libraries.py +15 -29
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/get_search_library.py +2 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/get_server_resources.py +9 -23
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/get_watch_list.py +1 -1
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getpin.py +9 -59
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getplaylistcontents.py +2 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getsessions.py +7 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/gettokenbypinid.py +3 -53
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/gettopwatchedcontent.py +2 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/post_users_sign_in_data.py +3 -53
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/playlists.py +55 -1
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/plex.py +47 -39
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/sdk.py +15 -24
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/sdkconfiguration.py +4 -5
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/search.py +19 -1
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/server.py +55 -1
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/sessions.py +25 -1
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/statistics.py +19 -1
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/updater.py +19 -1
- plex_api_client-0.20.1/src/plex_api_client/utils/annotations.py +55 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/utils/eventstreaming.py +61 -1
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/utils/forms.py +4 -10
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/utils/requestbodies.py +1 -1
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/video.py +13 -1
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/watchlist.py +7 -1
- plex_api_client-0.19.1/src/plex_api_client/models/internal/__init__.py +0 -5
- plex_api_client-0.19.1/src/plex_api_client/models/internal/globals.py +0 -58
- plex_api_client-0.19.1/src/plex_api_client/utils/annotations.py +0 -30
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/LICENSE.md +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/py.typed +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/__init__.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/_hooks/__init__.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/_hooks/registration.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/_hooks/sdkhooks.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/_hooks/types.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/components/__init__.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/components/security.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/__init__.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/addplaylistcontents.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/applyupdates.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/cancelserveractivities.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/checkforupdates.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/clearplaylistcontents.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/createplaylist.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/deletelibrary.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/deleteplaylist.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/enablepapertrail.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/get_all_libraries.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/get_banner_image.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/get_library_details.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/get_library_items.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/get_media_providers.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/get_meta_data_by_rating_key.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/get_recently_added_library.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/get_refresh_library_metadata.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/get_search_all_libraries.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/get_search_library.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/get_server_identity.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/get_server_resources.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/get_thumb_image.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/get_watch_list.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getavailableclients.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getbandwidthstatistics.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getbutlertasks.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getcompanionsdata.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getdevices.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getfilehash.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getgeodata.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getglobalhubs.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/gethomedata.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getlibraryhubs.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getmetadatachildren.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getmyplexaccount.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getondeck.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getpin.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getplaylist.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getplaylistcontents.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getplaylists.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getresizedphoto.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getresourcesstatistics.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getsearchresults.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getserveractivities.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getservercapabilities.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getserverlist.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getserverpreferences.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getsessionhistory.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getsessions.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getsourceconnectioninformation.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getstatistics.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/gettimeline.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/gettokenbypinid.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/gettokendetails.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/gettopwatchedcontent.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/gettranscodesessions.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/gettransienttoken.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getupdatestatus.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/getuserfriends.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/logline.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/logmultiline.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/markplayed.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/markunplayed.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/performsearch.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/performvoicesearch.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/post_users_sign_in_data.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/sdkerror.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/startalltasks.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/starttask.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/startuniversaltranscode.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/stopalltasks.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/stoptask.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/stoptranscodesession.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/updateplaylist.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/updateplayprogress.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/errors/uploadplaylist.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/addplaylistcontents.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/applyupdates.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/cancelserveractivities.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/checkforupdates.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/clearplaylistcontents.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/createplaylist.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/deletelibrary.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/deleteplaylist.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/enablepapertrail.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/get_all_libraries.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/get_banner_image.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/get_library_details.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/get_media_providers.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/get_refresh_library_metadata.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/get_server_identity.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/get_thumb_image.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getavailableclients.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getbandwidthstatistics.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getbutlertasks.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getcompanionsdata.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getdevices.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getfilehash.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getgeodata.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getglobalhubs.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/gethomedata.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getlibraryhubs.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getmetadatachildren.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getmyplexaccount.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getondeck.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getplaylist.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getplaylists.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getresizedphoto.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getresourcesstatistics.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getsearchresults.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getserveractivities.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getservercapabilities.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getserverlist.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getserverpreferences.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getsessionhistory.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getsourceconnectioninformation.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getstatistics.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/gettimeline.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/gettokendetails.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/gettranscodesessions.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/gettransienttoken.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getupdatestatus.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/getuserfriends.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/logline.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/logmultiline.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/markplayed.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/markunplayed.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/performsearch.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/performvoicesearch.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/startalltasks.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/starttask.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/startuniversaltranscode.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/stopalltasks.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/stoptask.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/stoptranscodesession.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/updateplaylist.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/updateplayprogress.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/models/operations/uploadplaylist.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/py.typed +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/types/__init__.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/types/basemodel.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/utils/__init__.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/utils/enums.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/utils/headers.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/utils/logger.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/utils/metadata.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/utils/queryparams.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/utils/retries.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/utils/security.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/utils/serializers.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/utils/url.py +0 -0
- {plex_api_client-0.19.1 → plex_api_client-0.20.1}/src/plex_api_client/utils/values.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: plex-api-client
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.20.1
|
|
4
4
|
Summary: Python Client SDK Generated by Speakeasy
|
|
5
5
|
Home-page: https://github.com/LukeHagar/plexpy.git
|
|
6
6
|
Author: Speakeasy
|
|
@@ -13,10 +13,10 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.12
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.13
|
|
15
15
|
Requires-Dist: eval-type-backport (>=0.2.0,<0.3.0)
|
|
16
|
-
Requires-Dist: httpx (>=0.
|
|
16
|
+
Requires-Dist: httpx (>=0.28.1,<0.29.0)
|
|
17
17
|
Requires-Dist: jsonpath-python (>=1.0.6,<2.0.0)
|
|
18
|
-
Requires-Dist: pydantic (>=2.
|
|
19
|
-
Requires-Dist: python-dateutil (
|
|
18
|
+
Requires-Dist: pydantic (>=2.10.3,<2.11.0)
|
|
19
|
+
Requires-Dist: python-dateutil (>=2.8.2,<3.0.0)
|
|
20
20
|
Requires-Dist: typing-inspect (>=0.9.0,<0.10.0)
|
|
21
21
|
Project-URL: Repository, https://github.com/LukeHagar/plexpy.git
|
|
22
22
|
Description-Content-Type: text/markdown
|
|
@@ -63,17 +63,25 @@ The following SDKs are generated from the OpenAPI Specification. They are automa
|
|
|
63
63
|
|
|
64
64
|
<!-- Start Table of Contents [toc] -->
|
|
65
65
|
## Table of Contents
|
|
66
|
+
<!-- $toc-max-depth=2 -->
|
|
67
|
+
* [plexpy](https://github.com/LukeHagar/plexpy/blob/master/#plexpy)
|
|
68
|
+
* [Plex Media Server OpenAPI Specification](https://github.com/LukeHagar/plexpy/blob/master/#plex-media-server-openapi-specification)
|
|
69
|
+
* [Documentation](https://github.com/LukeHagar/plexpy/blob/master/#documentation)
|
|
70
|
+
* [SDKs](https://github.com/LukeHagar/plexpy/blob/master/#sdks)
|
|
71
|
+
* [SDK Installation](https://github.com/LukeHagar/plexpy/blob/master/#sdk-installation)
|
|
72
|
+
* [IDE Support](https://github.com/LukeHagar/plexpy/blob/master/#ide-support)
|
|
73
|
+
* [SDK Example Usage](https://github.com/LukeHagar/plexpy/blob/master/#sdk-example-usage)
|
|
74
|
+
* [Available Resources and Operations](https://github.com/LukeHagar/plexpy/blob/master/#available-resources-and-operations)
|
|
75
|
+
* [Retries](https://github.com/LukeHagar/plexpy/blob/master/#retries)
|
|
76
|
+
* [Error Handling](https://github.com/LukeHagar/plexpy/blob/master/#error-handling)
|
|
77
|
+
* [Server Selection](https://github.com/LukeHagar/plexpy/blob/master/#server-selection)
|
|
78
|
+
* [Custom HTTP Client](https://github.com/LukeHagar/plexpy/blob/master/#custom-http-client)
|
|
79
|
+
* [Authentication](https://github.com/LukeHagar/plexpy/blob/master/#authentication)
|
|
80
|
+
* [Debugging](https://github.com/LukeHagar/plexpy/blob/master/#debugging)
|
|
81
|
+
* [Development](https://github.com/LukeHagar/plexpy/blob/master/#development)
|
|
82
|
+
* [Maturity](https://github.com/LukeHagar/plexpy/blob/master/#maturity)
|
|
83
|
+
* [Contributions](https://github.com/LukeHagar/plexpy/blob/master/#contributions)
|
|
66
84
|
|
|
67
|
-
* [SDK Installation](https://github.com/LukeHagar/plexpy/blob/master/#sdk-installation)
|
|
68
|
-
* [IDE Support](https://github.com/LukeHagar/plexpy/blob/master/#ide-support)
|
|
69
|
-
* [SDK Example Usage](https://github.com/LukeHagar/plexpy/blob/master/#sdk-example-usage)
|
|
70
|
-
* [Available Resources and Operations](https://github.com/LukeHagar/plexpy/blob/master/#available-resources-and-operations)
|
|
71
|
-
* [Retries](https://github.com/LukeHagar/plexpy/blob/master/#retries)
|
|
72
|
-
* [Error Handling](https://github.com/LukeHagar/plexpy/blob/master/#error-handling)
|
|
73
|
-
* [Server Selection](https://github.com/LukeHagar/plexpy/blob/master/#server-selection)
|
|
74
|
-
* [Custom HTTP Client](https://github.com/LukeHagar/plexpy/blob/master/#custom-http-client)
|
|
75
|
-
* [Authentication](https://github.com/LukeHagar/plexpy/blob/master/#authentication)
|
|
76
|
-
* [Debugging](https://github.com/LukeHagar/plexpy/blob/master/#debugging)
|
|
77
85
|
<!-- End Table of Contents [toc] -->
|
|
78
86
|
|
|
79
87
|
<!-- Start SDK Installation [installation] -->
|
|
@@ -117,20 +125,16 @@ Generally, the SDK will work well with most IDEs out of the box. However, when u
|
|
|
117
125
|
# Synchronous Example
|
|
118
126
|
from plex_api_client import PlexAPI
|
|
119
127
|
|
|
120
|
-
|
|
128
|
+
with PlexAPI(
|
|
121
129
|
access_token="<YOUR_API_KEY_HERE>",
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
res
|
|
130
|
-
|
|
131
|
-
if res.object is not None:
|
|
132
|
-
# handle response
|
|
133
|
-
pass
|
|
130
|
+
) as plex_api:
|
|
131
|
+
|
|
132
|
+
res = plex_api.server.get_server_capabilities()
|
|
133
|
+
|
|
134
|
+
assert res.object is not None
|
|
135
|
+
|
|
136
|
+
# Handle response
|
|
137
|
+
print(res.object)
|
|
134
138
|
```
|
|
135
139
|
|
|
136
140
|
</br>
|
|
@@ -142,18 +146,16 @@ import asyncio
|
|
|
142
146
|
from plex_api_client import PlexAPI
|
|
143
147
|
|
|
144
148
|
async def main():
|
|
145
|
-
|
|
149
|
+
async with PlexAPI(
|
|
146
150
|
access_token="<YOUR_API_KEY_HERE>",
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
# handle response
|
|
156
|
-
pass
|
|
151
|
+
) as plex_api:
|
|
152
|
+
|
|
153
|
+
res = await plex_api.server.get_server_capabilities_async()
|
|
154
|
+
|
|
155
|
+
assert res.object is not None
|
|
156
|
+
|
|
157
|
+
# Handle response
|
|
158
|
+
print(res.object)
|
|
157
159
|
|
|
158
160
|
asyncio.run(main())
|
|
159
161
|
```
|
|
@@ -300,47 +302,39 @@ Some of the endpoints in this SDK support retries. If you use the SDK without an
|
|
|
300
302
|
|
|
301
303
|
To change the default retry strategy for a single API call, simply provide a `RetryConfig` object to the call:
|
|
302
304
|
```python
|
|
303
|
-
from plex_api.utils import BackoffStrategy, RetryConfig
|
|
304
305
|
from plex_api_client import PlexAPI
|
|
306
|
+
from plex_api_client.utils import BackoffStrategy, RetryConfig
|
|
305
307
|
|
|
306
|
-
|
|
308
|
+
with PlexAPI(
|
|
307
309
|
access_token="<YOUR_API_KEY_HERE>",
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
device_nickname="Roku 3",
|
|
313
|
-
)
|
|
310
|
+
) as plex_api:
|
|
311
|
+
|
|
312
|
+
res = plex_api.server.get_server_capabilities(,
|
|
313
|
+
RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False))
|
|
314
314
|
|
|
315
|
-
res
|
|
316
|
-
RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False))
|
|
315
|
+
assert res.object is not None
|
|
317
316
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
pass
|
|
317
|
+
# Handle response
|
|
318
|
+
print(res.object)
|
|
321
319
|
|
|
322
320
|
```
|
|
323
321
|
|
|
324
322
|
If you'd like to override the default retry strategy for all operations that support retries, you can use the `retry_config` optional parameter when initializing the SDK:
|
|
325
323
|
```python
|
|
326
|
-
from plex_api.utils import BackoffStrategy, RetryConfig
|
|
327
324
|
from plex_api_client import PlexAPI
|
|
325
|
+
from plex_api_client.utils import BackoffStrategy, RetryConfig
|
|
328
326
|
|
|
329
|
-
|
|
327
|
+
with PlexAPI(
|
|
330
328
|
retry_config=RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False),
|
|
331
329
|
access_token="<YOUR_API_KEY_HERE>",
|
|
332
|
-
|
|
333
|
-
client_name="Plex for Roku",
|
|
334
|
-
client_version="2.4.1",
|
|
335
|
-
platform="Roku",
|
|
336
|
-
device_nickname="Roku 3",
|
|
337
|
-
)
|
|
330
|
+
) as plex_api:
|
|
338
331
|
|
|
339
|
-
res =
|
|
332
|
+
res = plex_api.server.get_server_capabilities()
|
|
340
333
|
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
334
|
+
assert res.object is not None
|
|
335
|
+
|
|
336
|
+
# Handle response
|
|
337
|
+
print(res.object)
|
|
344
338
|
|
|
345
339
|
```
|
|
346
340
|
<!-- End Retries [retries] -->
|
|
@@ -373,32 +367,28 @@ When custom error responses are specified for an operation, the SDK may also rai
|
|
|
373
367
|
from plex_api_client import PlexAPI
|
|
374
368
|
from plex_api_client.models import errors
|
|
375
369
|
|
|
376
|
-
|
|
370
|
+
with PlexAPI(
|
|
377
371
|
access_token="<YOUR_API_KEY_HERE>",
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
# handle
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
raise(e)
|
|
399
|
-
except errors.SDKError as e:
|
|
400
|
-
# handle exception
|
|
401
|
-
raise(e)
|
|
372
|
+
) as plex_api:
|
|
373
|
+
res = None
|
|
374
|
+
try:
|
|
375
|
+
|
|
376
|
+
res = plex_api.server.get_server_capabilities()
|
|
377
|
+
|
|
378
|
+
assert res.object is not None
|
|
379
|
+
|
|
380
|
+
# Handle response
|
|
381
|
+
print(res.object)
|
|
382
|
+
|
|
383
|
+
except errors.GetServerCapabilitiesBadRequest as e:
|
|
384
|
+
# handle e.data: errors.GetServerCapabilitiesBadRequestData
|
|
385
|
+
raise(e)
|
|
386
|
+
except errors.GetServerCapabilitiesUnauthorized as e:
|
|
387
|
+
# handle e.data: errors.GetServerCapabilitiesUnauthorizedData
|
|
388
|
+
raise(e)
|
|
389
|
+
except errors.SDKError as e:
|
|
390
|
+
# handle exception
|
|
391
|
+
raise(e)
|
|
402
392
|
```
|
|
403
393
|
<!-- End Error Handling [errors] -->
|
|
404
394
|
|
|
@@ -418,21 +408,17 @@ The default server can also be overridden globally by passing a URL to the `serv
|
|
|
418
408
|
```python
|
|
419
409
|
from plex_api_client import PlexAPI
|
|
420
410
|
|
|
421
|
-
|
|
411
|
+
with PlexAPI(
|
|
422
412
|
server_url="https://10.10.10.47:32400",
|
|
423
413
|
access_token="<YOUR_API_KEY_HERE>",
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
platform="Roku",
|
|
428
|
-
device_nickname="Roku 3",
|
|
429
|
-
)
|
|
414
|
+
) as plex_api:
|
|
415
|
+
|
|
416
|
+
res = plex_api.server.get_server_capabilities()
|
|
430
417
|
|
|
431
|
-
res
|
|
418
|
+
assert res.object is not None
|
|
432
419
|
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
pass
|
|
420
|
+
# Handle response
|
|
421
|
+
print(res.object)
|
|
436
422
|
|
|
437
423
|
```
|
|
438
424
|
|
|
@@ -442,20 +428,16 @@ The server URL can also be overridden on a per-operation basis, provided a serve
|
|
|
442
428
|
```python
|
|
443
429
|
from plex_api_client import PlexAPI
|
|
444
430
|
|
|
445
|
-
|
|
431
|
+
with PlexAPI(
|
|
446
432
|
access_token="<YOUR_API_KEY_HERE>",
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
platform="Roku",
|
|
451
|
-
device_nickname="Roku 3",
|
|
452
|
-
)
|
|
433
|
+
) as plex_api:
|
|
434
|
+
|
|
435
|
+
res = plex_api.plex.get_companions_data(server_url="https://plex.tv/api/v2")
|
|
453
436
|
|
|
454
|
-
res
|
|
437
|
+
assert res.response_bodies is not None
|
|
455
438
|
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
pass
|
|
439
|
+
# Handle response
|
|
440
|
+
print(res.response_bodies)
|
|
459
441
|
|
|
460
442
|
```
|
|
461
443
|
<!-- End Server Selection [server] -->
|
|
@@ -556,20 +538,16 @@ To authenticate with the API the `access_token` parameter must be set when initi
|
|
|
556
538
|
```python
|
|
557
539
|
from plex_api_client import PlexAPI
|
|
558
540
|
|
|
559
|
-
|
|
541
|
+
with PlexAPI(
|
|
560
542
|
access_token="<YOUR_API_KEY_HERE>",
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
res
|
|
569
|
-
|
|
570
|
-
if res.object is not None:
|
|
571
|
-
# handle response
|
|
572
|
-
pass
|
|
543
|
+
) as plex_api:
|
|
544
|
+
|
|
545
|
+
res = plex_api.server.get_server_capabilities()
|
|
546
|
+
|
|
547
|
+
assert res.object is not None
|
|
548
|
+
|
|
549
|
+
# Handle response
|
|
550
|
+
print(res.object)
|
|
573
551
|
|
|
574
552
|
```
|
|
575
553
|
<!-- End Authentication [security] -->
|
|
@@ -40,17 +40,25 @@ The following SDKs are generated from the OpenAPI Specification. They are automa
|
|
|
40
40
|
|
|
41
41
|
<!-- Start Table of Contents [toc] -->
|
|
42
42
|
## Table of Contents
|
|
43
|
+
<!-- $toc-max-depth=2 -->
|
|
44
|
+
* [plexpy](https://github.com/LukeHagar/plexpy/blob/master/#plexpy)
|
|
45
|
+
* [Plex Media Server OpenAPI Specification](https://github.com/LukeHagar/plexpy/blob/master/#plex-media-server-openapi-specification)
|
|
46
|
+
* [Documentation](https://github.com/LukeHagar/plexpy/blob/master/#documentation)
|
|
47
|
+
* [SDKs](https://github.com/LukeHagar/plexpy/blob/master/#sdks)
|
|
48
|
+
* [SDK Installation](https://github.com/LukeHagar/plexpy/blob/master/#sdk-installation)
|
|
49
|
+
* [IDE Support](https://github.com/LukeHagar/plexpy/blob/master/#ide-support)
|
|
50
|
+
* [SDK Example Usage](https://github.com/LukeHagar/plexpy/blob/master/#sdk-example-usage)
|
|
51
|
+
* [Available Resources and Operations](https://github.com/LukeHagar/plexpy/blob/master/#available-resources-and-operations)
|
|
52
|
+
* [Retries](https://github.com/LukeHagar/plexpy/blob/master/#retries)
|
|
53
|
+
* [Error Handling](https://github.com/LukeHagar/plexpy/blob/master/#error-handling)
|
|
54
|
+
* [Server Selection](https://github.com/LukeHagar/plexpy/blob/master/#server-selection)
|
|
55
|
+
* [Custom HTTP Client](https://github.com/LukeHagar/plexpy/blob/master/#custom-http-client)
|
|
56
|
+
* [Authentication](https://github.com/LukeHagar/plexpy/blob/master/#authentication)
|
|
57
|
+
* [Debugging](https://github.com/LukeHagar/plexpy/blob/master/#debugging)
|
|
58
|
+
* [Development](https://github.com/LukeHagar/plexpy/blob/master/#development)
|
|
59
|
+
* [Maturity](https://github.com/LukeHagar/plexpy/blob/master/#maturity)
|
|
60
|
+
* [Contributions](https://github.com/LukeHagar/plexpy/blob/master/#contributions)
|
|
43
61
|
|
|
44
|
-
* [SDK Installation](https://github.com/LukeHagar/plexpy/blob/master/#sdk-installation)
|
|
45
|
-
* [IDE Support](https://github.com/LukeHagar/plexpy/blob/master/#ide-support)
|
|
46
|
-
* [SDK Example Usage](https://github.com/LukeHagar/plexpy/blob/master/#sdk-example-usage)
|
|
47
|
-
* [Available Resources and Operations](https://github.com/LukeHagar/plexpy/blob/master/#available-resources-and-operations)
|
|
48
|
-
* [Retries](https://github.com/LukeHagar/plexpy/blob/master/#retries)
|
|
49
|
-
* [Error Handling](https://github.com/LukeHagar/plexpy/blob/master/#error-handling)
|
|
50
|
-
* [Server Selection](https://github.com/LukeHagar/plexpy/blob/master/#server-selection)
|
|
51
|
-
* [Custom HTTP Client](https://github.com/LukeHagar/plexpy/blob/master/#custom-http-client)
|
|
52
|
-
* [Authentication](https://github.com/LukeHagar/plexpy/blob/master/#authentication)
|
|
53
|
-
* [Debugging](https://github.com/LukeHagar/plexpy/blob/master/#debugging)
|
|
54
62
|
<!-- End Table of Contents [toc] -->
|
|
55
63
|
|
|
56
64
|
<!-- Start SDK Installation [installation] -->
|
|
@@ -94,20 +102,16 @@ Generally, the SDK will work well with most IDEs out of the box. However, when u
|
|
|
94
102
|
# Synchronous Example
|
|
95
103
|
from plex_api_client import PlexAPI
|
|
96
104
|
|
|
97
|
-
|
|
105
|
+
with PlexAPI(
|
|
98
106
|
access_token="<YOUR_API_KEY_HERE>",
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
res
|
|
107
|
-
|
|
108
|
-
if res.object is not None:
|
|
109
|
-
# handle response
|
|
110
|
-
pass
|
|
107
|
+
) as plex_api:
|
|
108
|
+
|
|
109
|
+
res = plex_api.server.get_server_capabilities()
|
|
110
|
+
|
|
111
|
+
assert res.object is not None
|
|
112
|
+
|
|
113
|
+
# Handle response
|
|
114
|
+
print(res.object)
|
|
111
115
|
```
|
|
112
116
|
|
|
113
117
|
</br>
|
|
@@ -119,18 +123,16 @@ import asyncio
|
|
|
119
123
|
from plex_api_client import PlexAPI
|
|
120
124
|
|
|
121
125
|
async def main():
|
|
122
|
-
|
|
126
|
+
async with PlexAPI(
|
|
123
127
|
access_token="<YOUR_API_KEY_HERE>",
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
# handle response
|
|
133
|
-
pass
|
|
128
|
+
) as plex_api:
|
|
129
|
+
|
|
130
|
+
res = await plex_api.server.get_server_capabilities_async()
|
|
131
|
+
|
|
132
|
+
assert res.object is not None
|
|
133
|
+
|
|
134
|
+
# Handle response
|
|
135
|
+
print(res.object)
|
|
134
136
|
|
|
135
137
|
asyncio.run(main())
|
|
136
138
|
```
|
|
@@ -277,47 +279,39 @@ Some of the endpoints in this SDK support retries. If you use the SDK without an
|
|
|
277
279
|
|
|
278
280
|
To change the default retry strategy for a single API call, simply provide a `RetryConfig` object to the call:
|
|
279
281
|
```python
|
|
280
|
-
from plex_api.utils import BackoffStrategy, RetryConfig
|
|
281
282
|
from plex_api_client import PlexAPI
|
|
283
|
+
from plex_api_client.utils import BackoffStrategy, RetryConfig
|
|
282
284
|
|
|
283
|
-
|
|
285
|
+
with PlexAPI(
|
|
284
286
|
access_token="<YOUR_API_KEY_HERE>",
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
device_nickname="Roku 3",
|
|
290
|
-
)
|
|
287
|
+
) as plex_api:
|
|
288
|
+
|
|
289
|
+
res = plex_api.server.get_server_capabilities(,
|
|
290
|
+
RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False))
|
|
291
291
|
|
|
292
|
-
res
|
|
293
|
-
RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False))
|
|
292
|
+
assert res.object is not None
|
|
294
293
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
pass
|
|
294
|
+
# Handle response
|
|
295
|
+
print(res.object)
|
|
298
296
|
|
|
299
297
|
```
|
|
300
298
|
|
|
301
299
|
If you'd like to override the default retry strategy for all operations that support retries, you can use the `retry_config` optional parameter when initializing the SDK:
|
|
302
300
|
```python
|
|
303
|
-
from plex_api.utils import BackoffStrategy, RetryConfig
|
|
304
301
|
from plex_api_client import PlexAPI
|
|
302
|
+
from plex_api_client.utils import BackoffStrategy, RetryConfig
|
|
305
303
|
|
|
306
|
-
|
|
304
|
+
with PlexAPI(
|
|
307
305
|
retry_config=RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False),
|
|
308
306
|
access_token="<YOUR_API_KEY_HERE>",
|
|
309
|
-
|
|
310
|
-
client_name="Plex for Roku",
|
|
311
|
-
client_version="2.4.1",
|
|
312
|
-
platform="Roku",
|
|
313
|
-
device_nickname="Roku 3",
|
|
314
|
-
)
|
|
307
|
+
) as plex_api:
|
|
315
308
|
|
|
316
|
-
res =
|
|
309
|
+
res = plex_api.server.get_server_capabilities()
|
|
317
310
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
311
|
+
assert res.object is not None
|
|
312
|
+
|
|
313
|
+
# Handle response
|
|
314
|
+
print(res.object)
|
|
321
315
|
|
|
322
316
|
```
|
|
323
317
|
<!-- End Retries [retries] -->
|
|
@@ -350,32 +344,28 @@ When custom error responses are specified for an operation, the SDK may also rai
|
|
|
350
344
|
from plex_api_client import PlexAPI
|
|
351
345
|
from plex_api_client.models import errors
|
|
352
346
|
|
|
353
|
-
|
|
347
|
+
with PlexAPI(
|
|
354
348
|
access_token="<YOUR_API_KEY_HERE>",
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
# handle
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
raise(e)
|
|
376
|
-
except errors.SDKError as e:
|
|
377
|
-
# handle exception
|
|
378
|
-
raise(e)
|
|
349
|
+
) as plex_api:
|
|
350
|
+
res = None
|
|
351
|
+
try:
|
|
352
|
+
|
|
353
|
+
res = plex_api.server.get_server_capabilities()
|
|
354
|
+
|
|
355
|
+
assert res.object is not None
|
|
356
|
+
|
|
357
|
+
# Handle response
|
|
358
|
+
print(res.object)
|
|
359
|
+
|
|
360
|
+
except errors.GetServerCapabilitiesBadRequest as e:
|
|
361
|
+
# handle e.data: errors.GetServerCapabilitiesBadRequestData
|
|
362
|
+
raise(e)
|
|
363
|
+
except errors.GetServerCapabilitiesUnauthorized as e:
|
|
364
|
+
# handle e.data: errors.GetServerCapabilitiesUnauthorizedData
|
|
365
|
+
raise(e)
|
|
366
|
+
except errors.SDKError as e:
|
|
367
|
+
# handle exception
|
|
368
|
+
raise(e)
|
|
379
369
|
```
|
|
380
370
|
<!-- End Error Handling [errors] -->
|
|
381
371
|
|
|
@@ -395,21 +385,17 @@ The default server can also be overridden globally by passing a URL to the `serv
|
|
|
395
385
|
```python
|
|
396
386
|
from plex_api_client import PlexAPI
|
|
397
387
|
|
|
398
|
-
|
|
388
|
+
with PlexAPI(
|
|
399
389
|
server_url="https://10.10.10.47:32400",
|
|
400
390
|
access_token="<YOUR_API_KEY_HERE>",
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
platform="Roku",
|
|
405
|
-
device_nickname="Roku 3",
|
|
406
|
-
)
|
|
391
|
+
) as plex_api:
|
|
392
|
+
|
|
393
|
+
res = plex_api.server.get_server_capabilities()
|
|
407
394
|
|
|
408
|
-
res
|
|
395
|
+
assert res.object is not None
|
|
409
396
|
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
pass
|
|
397
|
+
# Handle response
|
|
398
|
+
print(res.object)
|
|
413
399
|
|
|
414
400
|
```
|
|
415
401
|
|
|
@@ -419,20 +405,16 @@ The server URL can also be overridden on a per-operation basis, provided a serve
|
|
|
419
405
|
```python
|
|
420
406
|
from plex_api_client import PlexAPI
|
|
421
407
|
|
|
422
|
-
|
|
408
|
+
with PlexAPI(
|
|
423
409
|
access_token="<YOUR_API_KEY_HERE>",
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
platform="Roku",
|
|
428
|
-
device_nickname="Roku 3",
|
|
429
|
-
)
|
|
410
|
+
) as plex_api:
|
|
411
|
+
|
|
412
|
+
res = plex_api.plex.get_companions_data(server_url="https://plex.tv/api/v2")
|
|
430
413
|
|
|
431
|
-
res
|
|
414
|
+
assert res.response_bodies is not None
|
|
432
415
|
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
pass
|
|
416
|
+
# Handle response
|
|
417
|
+
print(res.response_bodies)
|
|
436
418
|
|
|
437
419
|
```
|
|
438
420
|
<!-- End Server Selection [server] -->
|
|
@@ -533,20 +515,16 @@ To authenticate with the API the `access_token` parameter must be set when initi
|
|
|
533
515
|
```python
|
|
534
516
|
from plex_api_client import PlexAPI
|
|
535
517
|
|
|
536
|
-
|
|
518
|
+
with PlexAPI(
|
|
537
519
|
access_token="<YOUR_API_KEY_HERE>",
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
res
|
|
546
|
-
|
|
547
|
-
if res.object is not None:
|
|
548
|
-
# handle response
|
|
549
|
-
pass
|
|
520
|
+
) as plex_api:
|
|
521
|
+
|
|
522
|
+
res = plex_api.server.get_server_capabilities()
|
|
523
|
+
|
|
524
|
+
assert res.object is not None
|
|
525
|
+
|
|
526
|
+
# Handle response
|
|
527
|
+
print(res.object)
|
|
550
528
|
|
|
551
529
|
```
|
|
552
530
|
<!-- End Authentication [security] -->
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "plex-api-client"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.20.1"
|
|
4
4
|
description = "Python Client SDK Generated by Speakeasy"
|
|
5
5
|
authors = ["Speakeasy",]
|
|
6
6
|
readme = "README-PYPI.md"
|
|
@@ -19,14 +19,14 @@ in-project = true
|
|
|
19
19
|
[tool.poetry.dependencies]
|
|
20
20
|
python = "^3.8"
|
|
21
21
|
eval-type-backport = "^0.2.0"
|
|
22
|
-
httpx = "^0.
|
|
22
|
+
httpx = "^0.28.1"
|
|
23
23
|
jsonpath-python = "^1.0.6"
|
|
24
|
-
pydantic = "~2.
|
|
25
|
-
python-dateutil = "2.8.2"
|
|
24
|
+
pydantic = "~2.10.3"
|
|
25
|
+
python-dateutil = "^2.8.2"
|
|
26
26
|
typing-inspect = "^0.9.0"
|
|
27
27
|
|
|
28
28
|
[tool.poetry.group.dev.dependencies]
|
|
29
|
-
mypy = "==1.
|
|
29
|
+
mypy = "==1.13.0"
|
|
30
30
|
pylint = "==3.2.3"
|
|
31
31
|
types-python-dateutil = "^2.9.0.20240316"
|
|
32
32
|
|