plex-api-client 0.34.3__tar.gz → 0.35.0__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.
Files changed (848) hide show
  1. plex_api_client-0.35.0/PKG-INFO +1361 -0
  2. plex_api_client-0.35.0/README-PYPI.md +1341 -0
  3. plex_api_client-0.35.0/pyproject.toml +58 -0
  4. plex_api_client-0.35.0/src/plex_api_client/_hooks/types.py +125 -0
  5. plex_api_client-0.35.0/src/plex_api_client/_version.py +15 -0
  6. plex_api_client-0.35.0/src/plex_api_client/activities.py +422 -0
  7. plex_api_client-0.35.0/src/plex_api_client/authentication.py +3827 -0
  8. plex_api_client-0.35.0/src/plex_api_client/butler.py +1035 -0
  9. plex_api_client-0.35.0/src/plex_api_client/collections.py +235 -0
  10. plex_api_client-0.35.0/src/plex_api_client/content.py +2977 -0
  11. plex_api_client-0.35.0/src/plex_api_client/devices.py +2983 -0
  12. plex_api_client-0.35.0/src/plex_api_client/download_queue.py +2059 -0
  13. plex_api_client-0.35.0/src/plex_api_client/dvrs.py +3717 -0
  14. plex_api_client-0.35.0/src/plex_api_client/epg.py +2367 -0
  15. plex_api_client-0.35.0/src/plex_api_client/events.py +732 -0
  16. plex_api_client-0.35.0/src/plex_api_client/general.py +8207 -0
  17. plex_api_client-0.35.0/src/plex_api_client/hubs.py +3633 -0
  18. plex_api_client-0.35.0/src/plex_api_client/library.py +28884 -0
  19. plex_api_client-0.35.0/src/plex_api_client/library_collections.py +697 -0
  20. plex_api_client-0.35.0/src/plex_api_client/library_playlists.py +2881 -0
  21. plex_api_client-0.35.0/src/plex_api_client/live_tv.py +1607 -0
  22. plex_api_client-0.35.0/src/plex_api_client/log.py +660 -0
  23. plex_api_client-0.35.0/src/plex_api_client/models/components/__init__.py +1366 -0
  24. plex_api_client-0.35.0/src/plex_api_client/models/components/activity.py +110 -0
  25. plex_api_client-0.35.0/src/plex_api_client/models/components/addedqueueitem.py +38 -0
  26. plex_api_client-0.35.0/src/plex_api_client/models/components/authkeysresponse.py +70 -0
  27. plex_api_client-0.35.0/src/plex_api_client/models/components/authnonceresponse.py +33 -0
  28. plex_api_client-0.35.0/src/plex_api_client/models/components/authtokenresponse.py +50 -0
  29. plex_api_client-0.35.0/src/plex_api_client/models/components/bandwidth.py +43 -0
  30. plex_api_client-0.35.0/src/plex_api_client/models/components/butlertask.py +76 -0
  31. plex_api_client-0.35.0/src/plex_api_client/models/components/channel.py +98 -0
  32. plex_api_client-0.35.0/src/plex_api_client/models/components/channelresponse.py +95 -0
  33. plex_api_client-0.35.0/src/plex_api_client/models/components/claimtokenresponse.py +33 -0
  34. plex_api_client-0.35.0/src/plex_api_client/models/components/cloudserverresponse.py +40 -0
  35. plex_api_client-0.35.0/src/plex_api_client/models/components/collection.py +109 -0
  36. plex_api_client-0.35.0/src/plex_api_client/models/components/connection.py +50 -0
  37. plex_api_client-0.35.0/src/plex_api_client/models/components/connectioninfo.py +52 -0
  38. plex_api_client-0.35.0/src/plex_api_client/models/components/decisionresult.py +98 -0
  39. plex_api_client-0.35.0/src/plex_api_client/models/components/device.py +149 -0
  40. plex_api_client-0.35.0/src/plex_api_client/models/components/devicechannel.py +76 -0
  41. plex_api_client-0.35.0/src/plex_api_client/models/components/downloadqueue.py +75 -0
  42. plex_api_client-0.35.0/src/plex_api_client/models/components/downloadqueueitem.py +125 -0
  43. plex_api_client-0.35.0/src/plex_api_client/models/components/dvr.py +51 -0
  44. plex_api_client-0.35.0/src/plex_api_client/models/components/dvrrequesthandler_slash_get_responses_200.py +142 -0
  45. plex_api_client-0.35.0/src/plex_api_client/models/components/dvrresponse.py +131 -0
  46. plex_api_client-0.35.0/src/plex_api_client/models/components/epgcountry.py +98 -0
  47. plex_api_client-0.35.0/src/plex_api_client/models/components/epglanguage.py +36 -0
  48. plex_api_client-0.35.0/src/plex_api_client/models/components/epgregion.py +40 -0
  49. plex_api_client-0.35.0/src/plex_api_client/models/components/feature.py +47 -0
  50. plex_api_client-0.35.0/src/plex_api_client/models/components/geoipresponse.py +55 -0
  51. plex_api_client-0.35.0/src/plex_api_client/models/components/get_responses_200.py +99 -0
  52. plex_api_client-0.35.0/src/plex_api_client/models/components/historyall_get_responses_200.py +105 -0
  53. plex_api_client-0.35.0/src/plex_api_client/models/components/hub.py +153 -0
  54. plex_api_client-0.35.0/src/plex_api_client/models/components/ipresponse.py +33 -0
  55. plex_api_client-0.35.0/src/plex_api_client/models/components/items.py +653 -0
  56. plex_api_client-0.35.0/src/plex_api_client/models/components/jwkregistrationrequest.py +75 -0
  57. plex_api_client-0.35.0/src/plex_api_client/models/components/legacypinresponse.py +54 -0
  58. plex_api_client-0.35.0/src/plex_api_client/models/components/level.py +33 -0
  59. plex_api_client-0.35.0/src/plex_api_client/models/components/librarysection.py +193 -0
  60. plex_api_client-0.35.0/src/plex_api_client/models/components/librarysections.py +404 -0
  61. plex_api_client-0.35.0/src/plex_api_client/models/components/lineup.py +100 -0
  62. plex_api_client-0.35.0/src/plex_api_client/models/components/managedhub.py +140 -0
  63. plex_api_client-0.35.0/src/plex_api_client/models/components/media.py +183 -0
  64. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainer.py +61 -0
  65. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithartwork.py +153 -0
  66. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithdecision.py +1775 -0
  67. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithdevice.py +96 -0
  68. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithdirectory.py +100 -0
  69. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithdirectory1.py +83 -0
  70. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithhubs.py +96 -0
  71. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithlineup.py +103 -0
  72. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithmediagraboperation.py +102 -0
  73. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithmetadata.py +102 -0
  74. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithnestedmetadata.py +758 -0
  75. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithplaylistmetadata.py +800 -0
  76. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithplayqueue.py +114 -0
  77. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithsettings.py +96 -0
  78. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithsorts.py +98 -0
  79. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithstatus.py +97 -0
  80. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithsubscription.py +100 -0
  81. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithtags.py +98 -0
  82. plex_api_client-0.35.0/src/plex_api_client/models/components/mediagrabber.py +37 -0
  83. plex_api_client-0.35.0/src/plex_api_client/models/components/mediagraboperation.py +117 -0
  84. plex_api_client-0.35.0/src/plex_api_client/models/components/mediaquery.py +94 -0
  85. plex_api_client-0.35.0/src/plex_api_client/models/components/mediatype.py +31 -0
  86. plex_api_client-0.35.0/src/plex_api_client/models/components/metadata.py +645 -0
  87. plex_api_client-0.35.0/src/plex_api_client/models/components/notificationcontainer.py +71 -0
  88. plex_api_client-0.35.0/src/plex_api_client/models/components/part.py +171 -0
  89. plex_api_client-0.35.0/src/plex_api_client/models/components/playbackhistorymetadata.py +142 -0
  90. plex_api_client-0.35.0/src/plex_api_client/models/components/playqueueresponse.py +108 -0
  91. plex_api_client-0.35.0/src/plex_api_client/models/components/playsessionstatenotification.py +86 -0
  92. plex_api_client-0.35.0/src/plex_api_client/models/components/plexdevice.py +187 -0
  93. plex_api_client-0.35.0/src/plex_api_client/models/components/plexdownloadsresponse.py +75 -0
  94. plex_api_client-0.35.0/src/plex_api_client/models/components/post_responses_200.py +155 -0
  95. plex_api_client-0.35.0/src/plex_api_client/models/components/progressresponse.py +72 -0
  96. plex_api_client-0.35.0/src/plex_api_client/models/components/provider.py +59 -0
  97. plex_api_client-0.35.0/src/plex_api_client/models/components/reachabilitynotification.py +35 -0
  98. plex_api_client-0.35.0/src/plex_api_client/models/components/release.py +115 -0
  99. plex_api_client-0.35.0/src/plex_api_client/models/components/serveraccesstokensresponse.py +74 -0
  100. plex_api_client-0.35.0/src/plex_api_client/models/components/serverconfiguration.py +332 -0
  101. plex_api_client-0.35.0/src/plex_api_client/models/components/serveruserfeaturesresponse.py +32 -0
  102. plex_api_client-0.35.0/src/plex_api_client/models/components/session.py +100 -0
  103. plex_api_client-0.35.0/src/plex_api_client/models/components/statusnotification.py +41 -0
  104. plex_api_client-0.35.0/src/plex_api_client/models/components/stream.py +552 -0
  105. plex_api_client-0.35.0/src/plex_api_client/models/components/successresponse.py +35 -0
  106. plex_api_client-0.35.0/src/plex_api_client/models/components/timelineentry.py +52 -0
  107. plex_api_client-0.35.0/src/plex_api_client/models/components/tokenexchangerequest.py +52 -0
  108. plex_api_client-0.35.0/src/plex_api_client/models/components/topuseraccount.py +43 -0
  109. plex_api_client-0.35.0/src/plex_api_client/models/components/transcodejob.py +95 -0
  110. plex_api_client-0.35.0/src/plex_api_client/models/components/ultrablurcolors.py +55 -0
  111. plex_api_client-0.35.0/src/plex_api_client/models/components/useroptoutsresponse.py +68 -0
  112. plex_api_client-0.35.0/src/plex_api_client/models/components/userplexaccount.py +572 -0
  113. plex_api_client-0.35.0/src/plex_api_client/models/components/userprofile.py +199 -0
  114. plex_api_client-0.35.0/src/plex_api_client/models/components/webhookpayload.py +188 -0
  115. plex_api_client-0.35.0/src/plex_api_client/models/errors/__init__.py +71 -0
  116. plex_api_client-0.35.0/src/plex_api_client/models/errors/badrequest.py +59 -0
  117. plex_api_client-0.35.0/src/plex_api_client/models/errors/error.py +58 -0
  118. plex_api_client-0.35.0/src/plex_api_client/models/errors/unauthorized.py +59 -0
  119. plex_api_client-0.35.0/src/plex_api_client/models/operations/__init__.py +8902 -0
  120. plex_api_client-0.35.0/src/plex_api_client/models/operations/adddevicetodvr.py +470 -0
  121. plex_api_client-0.35.0/src/plex_api_client/models/operations/adddownloadqueueitems.py +700 -0
  122. plex_api_client-0.35.0/src/plex_api_client/models/operations/addextras.py +335 -0
  123. plex_api_client-0.35.0/src/plex_api_client/models/operations/addlineup.py +345 -0
  124. plex_api_client-0.35.0/src/plex_api_client/models/operations/addplaylistitems.py +358 -0
  125. plex_api_client-0.35.0/src/plex_api_client/models/operations/addsection.py +420 -0
  126. plex_api_client-0.35.0/src/plex_api_client/models/operations/addtoplayqueue.py +368 -0
  127. plex_api_client-0.35.0/src/plex_api_client/models/operations/addtowatchlist.py +333 -0
  128. plex_api_client-0.35.0/src/plex_api_client/models/operations/adduserwebhook.py +326 -0
  129. plex_api_client-0.35.0/src/plex_api_client/models/operations/addwebhook.py +326 -0
  130. plex_api_client-0.35.0/src/plex_api_client/models/operations/analyzemetadata.py +329 -0
  131. plex_api_client-0.35.0/src/plex_api_client/models/operations/applyupdates.py +337 -0
  132. plex_api_client-0.35.0/src/plex_api_client/models/operations/autocomplete.py +405 -0
  133. plex_api_client-0.35.0/src/plex_api_client/models/operations/browsefilesystem.py +336 -0
  134. plex_api_client-0.35.0/src/plex_api_client/models/operations/browsefilesystempath.py +332 -0
  135. plex_api_client-0.35.0/src/plex_api_client/models/operations/changepassword.py +326 -0
  136. plex_api_client-0.35.0/src/plex_api_client/models/operations/checkforsystemupdates.py +321 -0
  137. plex_api_client-0.35.0/src/plex_api_client/models/operations/claimserver.py +325 -0
  138. plex_api_client-0.35.0/src/plex_api_client/models/operations/clearplaylistitems.py +334 -0
  139. plex_api_client-0.35.0/src/plex_api_client/models/operations/computechannelmap.py +480 -0
  140. plex_api_client-0.35.0/src/plex_api_client/models/operations/computesonicpath.py +332 -0
  141. plex_api_client-0.35.0/src/plex_api_client/models/operations/connectwebsocket.py +340 -0
  142. plex_api_client-0.35.0/src/plex_api_client/models/operations/createcollection.py +393 -0
  143. plex_api_client-0.35.0/src/plex_api_client/models/operations/createdownloadqueue.py +147 -0
  144. plex_api_client-0.35.0/src/plex_api_client/models/operations/createdvr.py +356 -0
  145. plex_api_client-0.35.0/src/plex_api_client/models/operations/createhomeuser.py +326 -0
  146. plex_api_client-0.35.0/src/plex_api_client/models/operations/createlegacypin.py +52 -0
  147. plex_api_client-0.35.0/src/plex_api_client/models/operations/createmarker.py +522 -0
  148. plex_api_client-0.35.0/src/plex_api_client/models/operations/createoauthpin.py +440 -0
  149. plex_api_client-0.35.0/src/plex_api_client/models/operations/createplayqueue.py +431 -0
  150. plex_api_client-0.35.0/src/plex_api_client/models/operations/createsubscription.py +515 -0
  151. plex_api_client-0.35.0/src/plex_api_client/models/operations/createtransienttoken.py +440 -0
  152. plex_api_client-0.35.0/src/plex_api_client/models/operations/deletehomeuser.py +335 -0
  153. plex_api_client-0.35.0/src/plex_api_client/models/operations/deletelineup.py +345 -0
  154. plex_api_client-0.35.0/src/plex_api_client/models/operations/deletelivetvsession.py +330 -0
  155. plex_api_client-0.35.0/src/plex_api_client/models/operations/deletemarker.py +311 -0
  156. plex_api_client-0.35.0/src/plex_api_client/models/operations/deletemediaitem.py +330 -0
  157. plex_api_client-0.35.0/src/plex_api_client/models/operations/deletemetadataitem.py +321 -0
  158. plex_api_client-0.35.0/src/plex_api_client/models/operations/deleteplaylistbyratingkey.py +330 -0
  159. plex_api_client-0.35.0/src/plex_api_client/models/operations/deleteplaylistitem.py +343 -0
  160. plex_api_client-0.35.0/src/plex_api_client/models/operations/deleteplayqueueitem.py +343 -0
  161. plex_api_client-0.35.0/src/plex_api_client/models/operations/deletesubscription.py +306 -0
  162. plex_api_client-0.35.0/src/plex_api_client/models/operations/detectads.py +304 -0
  163. plex_api_client-0.35.0/src/plex_api_client/models/operations/detectcredits.py +330 -0
  164. plex_api_client-0.35.0/src/plex_api_client/models/operations/detectintros.py +330 -0
  165. plex_api_client-0.35.0/src/plex_api_client/models/operations/detectvoiceactivity.py +330 -0
  166. plex_api_client-0.35.0/src/plex_api_client/models/operations/discoverdevices.py +105 -0
  167. plex_api_client-0.35.0/src/plex_api_client/models/operations/downloaddatabasediagnostics.py +321 -0
  168. plex_api_client-0.35.0/src/plex_api_client/models/operations/downloadlogbundle.py +318 -0
  169. plex_api_client-0.35.0/src/plex_api_client/models/operations/editlibrarysection.py +330 -0
  170. plex_api_client-0.35.0/src/plex_api_client/models/operations/editmarker.py +387 -0
  171. plex_api_client-0.35.0/src/plex_api_client/models/operations/editmetadataitem.py +326 -0
  172. plex_api_client-0.35.0/src/plex_api_client/models/operations/editsubscriptionpreferences.py +356 -0
  173. plex_api_client-0.35.0/src/plex_api_client/models/operations/emptytrash.py +330 -0
  174. plex_api_client-0.35.0/src/plex_api_client/models/operations/emptytrashpost.py +330 -0
  175. plex_api_client-0.35.0/src/plex_api_client/models/operations/emptytrashput.py +306 -0
  176. plex_api_client-0.35.0/src/plex_api_client/models/operations/exchangejwttoken.py +338 -0
  177. plex_api_client-0.35.0/src/plex_api_client/models/operations/generatethumbs.py +321 -0
  178. plex_api_client-0.35.0/src/plex_api_client/models/operations/getaccountjson.py +326 -0
  179. plex_api_client-0.35.0/src/plex_api_client/models/operations/getaccountxml.py +321 -0
  180. plex_api_client-0.35.0/src/plex_api_client/models/operations/getallhubs.py +357 -0
  181. plex_api_client-0.35.0/src/plex_api_client/models/operations/getallitemleaves.py +335 -0
  182. plex_api_client-0.35.0/src/plex_api_client/models/operations/getalllanguages.py +147 -0
  183. plex_api_client-0.35.0/src/plex_api_client/models/operations/getallsubscriptions.py +369 -0
  184. plex_api_client-0.35.0/src/plex_api_client/models/operations/getauthkeys.py +328 -0
  185. plex_api_client-0.35.0/src/plex_api_client/models/operations/getauthnonce.py +328 -0
  186. plex_api_client-0.35.0/src/plex_api_client/models/operations/getavailablegrabbers.py +429 -0
  187. plex_api_client-0.35.0/src/plex_api_client/models/operations/getavailablesorts.py +334 -0
  188. plex_api_client-0.35.0/src/plex_api_client/models/operations/getbackgroundtasks.py +147 -0
  189. plex_api_client-0.35.0/src/plex_api_client/models/operations/getbandwidthstatistics.py +364 -0
  190. plex_api_client-0.35.0/src/plex_api_client/models/operations/getbycontentrating.py +334 -0
  191. plex_api_client-0.35.0/src/plex_api_client/models/operations/getbydecade.py +334 -0
  192. plex_api_client-0.35.0/src/plex_api_client/models/operations/getbyfolder.py +334 -0
  193. plex_api_client-0.35.0/src/plex_api_client/models/operations/getbyresolution.py +334 -0
  194. plex_api_client-0.35.0/src/plex_api_client/models/operations/getbyyear.py +334 -0
  195. plex_api_client-0.35.0/src/plex_api_client/models/operations/getchannels.py +331 -0
  196. plex_api_client-0.35.0/src/plex_api_client/models/operations/getclaimtoken.py +330 -0
  197. plex_api_client-0.35.0/src/plex_api_client/models/operations/getclientresources.py +335 -0
  198. plex_api_client-0.35.0/src/plex_api_client/models/operations/getclients.py +379 -0
  199. plex_api_client-0.35.0/src/plex_api_client/models/operations/getcloudserver.py +330 -0
  200. plex_api_client-0.35.0/src/plex_api_client/models/operations/getcollections.py +385 -0
  201. plex_api_client-0.35.0/src/plex_api_client/models/operations/getcolors.py +427 -0
  202. plex_api_client-0.35.0/src/plex_api_client/models/operations/getcommon.py +395 -0
  203. plex_api_client-0.35.0/src/plex_api_client/models/operations/getcontinuewatching.py +337 -0
  204. plex_api_client-0.35.0/src/plex_api_client/models/operations/getcontinuewatchingitems.py +325 -0
  205. plex_api_client-0.35.0/src/plex_api_client/models/operations/getconversionqueue.py +325 -0
  206. plex_api_client-0.35.0/src/plex_api_client/models/operations/getcountries.py +147 -0
  207. plex_api_client-0.35.0/src/plex_api_client/models/operations/getcountryregions.py +433 -0
  208. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdashsegment.py +345 -0
  209. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdeviceschannels.py +429 -0
  210. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdiagnostics.py +325 -0
  211. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdownloadqueue.py +425 -0
  212. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdownloadqueueitems.py +437 -0
  213. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdownloadqueuemedia.py +339 -0
  214. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdvr.py +333 -0
  215. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdvrchannels.py +334 -0
  216. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdvrguide.py +334 -0
  217. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdvrrecordings.py +325 -0
  218. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdvrrecordingsbydvr.py +334 -0
  219. plex_api_client-0.35.0/src/plex_api_client/models/operations/getepgguide.py +56 -0
  220. plex_api_client-0.35.0/src/plex_api_client/models/operations/getextras.py +335 -0
  221. plex_api_client-0.35.0/src/plex_api_client/models/operations/getfeatures.py +99 -0
  222. plex_api_client-0.35.0/src/plex_api_client/models/operations/getfile.py +346 -0
  223. plex_api_client-0.35.0/src/plex_api_client/models/operations/getfirstcharacters.py +523 -0
  224. plex_api_client-0.35.0/src/plex_api_client/models/operations/getfolders.py +455 -0
  225. plex_api_client-0.35.0/src/plex_api_client/models/operations/getfriends.py +390 -0
  226. plex_api_client-0.35.0/src/plex_api_client/models/operations/getgeoip.py +326 -0
  227. plex_api_client-0.35.0/src/plex_api_client/models/operations/gethistoryitem.py +337 -0
  228. plex_api_client-0.35.0/src/plex_api_client/models/operations/gethlssegment.py +345 -0
  229. plex_api_client-0.35.0/src/plex_api_client/models/operations/gethome.py +61 -0
  230. plex_api_client-0.35.0/src/plex_api_client/models/operations/gethomerecentlyadded.py +325 -0
  231. plex_api_client-0.35.0/src/plex_api_client/models/operations/gethomeusers.py +330 -0
  232. plex_api_client-0.35.0/src/plex_api_client/models/operations/gethubitems.py +385 -0
  233. plex_api_client-0.35.0/src/plex_api_client/models/operations/getip.py +326 -0
  234. plex_api_client-0.35.0/src/plex_api_client/models/operations/getitemartwork.py +359 -0
  235. plex_api_client-0.35.0/src/plex_api_client/models/operations/getitemtree.py +332 -0
  236. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlegacyresources.py +52 -0
  237. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlegacyusers.py +52 -0
  238. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlibrarydetails.py +497 -0
  239. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlibraryitems.py +371 -0
  240. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlibrarymatches.py +490 -0
  241. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlibrarysectionhubs.py +334 -0
  242. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlibrarysectionsfallback.py +56 -0
  243. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlineup.py +346 -0
  244. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlineupchannels.py +523 -0
  245. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlocalservers.py +325 -0
  246. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmediapart.py +361 -0
  247. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadataagentdetails.py +334 -0
  248. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadataagents.py +325 -0
  249. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadatachildren.py +332 -0
  250. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadatagrandchildren.py +332 -0
  251. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadatagrandparent.py +332 -0
  252. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadatahubs.py +362 -0
  253. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadataitem.py +541 -0
  254. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadataondeck.py +332 -0
  255. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadataparent.py +332 -0
  256. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadatareviews.py +332 -0
  257. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmyplexaccount.py +52 -0
  258. plex_api_client-0.35.0/src/plex_api_client/models/operations/getnearestmetadata.py +376 -0
  259. plex_api_client-0.35.0/src/plex_api_client/models/operations/getnewestforsection.py +334 -0
  260. plex_api_client-0.35.0/src/plex_api_client/models/operations/getnotifications.py +340 -0
  261. plex_api_client-0.35.0/src/plex_api_client/models/operations/getoauthpin.py +466 -0
  262. plex_api_client-0.35.0/src/plex_api_client/models/operations/getondeckforsection.py +334 -0
  263. plex_api_client-0.35.0/src/plex_api_client/models/operations/getperson.py +334 -0
  264. plex_api_client-0.35.0/src/plex_api_client/models/operations/getplaylistgenerator.py +825 -0
  265. plex_api_client-0.35.0/src/plex_api_client/models/operations/getplaylistgeneratoritems.py +1146 -0
  266. plex_api_client-0.35.0/src/plex_api_client/models/operations/getplaylistgenerators.py +494 -0
  267. plex_api_client-0.35.0/src/plex_api_client/models/operations/getplaylistitems.py +352 -0
  268. plex_api_client-0.35.0/src/plex_api_client/models/operations/getplayqueue.py +385 -0
  269. plex_api_client-0.35.0/src/plex_api_client/models/operations/getplexdownloads.py +337 -0
  270. plex_api_client-0.35.0/src/plex_api_client/models/operations/getpostplayhubs.py +362 -0
  271. plex_api_client-0.35.0/src/plex_api_client/models/operations/getprogress.py +337 -0
  272. plex_api_client-0.35.0/src/plex_api_client/models/operations/getpromotedhubs.py +337 -0
  273. plex_api_client-0.35.0/src/plex_api_client/models/operations/getrecentlyaddedforsection.py +334 -0
  274. plex_api_client-0.35.0/src/plex_api_client/models/operations/getrecentlyaddedglobal.py +325 -0
  275. plex_api_client-0.35.0/src/plex_api_client/models/operations/getrelatedhubs.py +362 -0
  276. plex_api_client-0.35.0/src/plex_api_client/models/operations/getrelateditems.py +332 -0
  277. plex_api_client-0.35.0/src/plex_api_client/models/operations/getresourcestatistics.py +325 -0
  278. plex_api_client-0.35.0/src/plex_api_client/models/operations/getrootlibrary.py +56 -0
  279. plex_api_client-0.35.0/src/plex_api_client/models/operations/getscheduledrecordings.py +59 -0
  280. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionagents.py +334 -0
  281. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionartists.py +334 -0
  282. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionclips.py +334 -0
  283. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionedit.py +330 -0
  284. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionepisodes.py +334 -0
  285. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionfilters.py +334 -0
  286. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionhubs.py +362 -0
  287. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionimage.py +373 -0
  288. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionlabels.py +334 -0
  289. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionmovies.py +334 -0
  290. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionphotos.py +334 -0
  291. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionplaylists.py +334 -0
  292. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionpreferences.py +348 -0
  293. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsections.py +170 -0
  294. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionsettings.py +330 -0
  295. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionshows.py +334 -0
  296. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionsprefs.py +339 -0
  297. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectiontags.py +334 -0
  298. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectiontimeline.py +334 -0
  299. plex_api_client-0.35.0/src/plex_api_client/models/operations/getserveraccesstokens.py +330 -0
  300. plex_api_client-0.35.0/src/plex_api_client/models/operations/getserverdetails.py +339 -0
  301. plex_api_client-0.35.0/src/plex_api_client/models/operations/getserverinfo.py +652 -0
  302. plex_api_client-0.35.0/src/plex_api_client/models/operations/getserverresources.py +199 -0
  303. plex_api_client-0.35.0/src/plex_api_client/models/operations/getserveruserfeatures.py +330 -0
  304. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsessionplaylistindex.py +336 -0
  305. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsessions.py +99 -0
  306. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsessionsegment.py +345 -0
  307. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsonicallysimilar.py +375 -0
  308. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsourceconnectioninformation.py +432 -0
  309. plex_api_client-0.35.0/src/plex_api_client/models/operations/getstream.py +371 -0
  310. plex_api_client-0.35.0/src/plex_api_client/models/operations/getstreamlevels.py +443 -0
  311. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsubscription.py +360 -0
  312. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsubtitles.py +378 -0
  313. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsyncitem.py +334 -0
  314. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsyncitems.py +325 -0
  315. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsyncqueue.py +325 -0
  316. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsyncstatus.py +325 -0
  317. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsynctranscodequeue.py +325 -0
  318. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsystemaccounts.py +325 -0
  319. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsystemdevices.py +325 -0
  320. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsystemsettings.py +321 -0
  321. plex_api_client-0.35.0/src/plex_api_client/models/operations/gettags.py +503 -0
  322. plex_api_client-0.35.0/src/plex_api_client/models/operations/gettasks.py +118 -0
  323. plex_api_client-0.35.0/src/plex_api_client/models/operations/gettemplate.py +622 -0
  324. plex_api_client-0.35.0/src/plex_api_client/models/operations/getthumb.py +341 -0
  325. plex_api_client-0.35.0/src/plex_api_client/models/operations/gettranscodesessions.py +56 -0
  326. plex_api_client-0.35.0/src/plex_api_client/models/operations/getunwatchedforsection.py +334 -0
  327. plex_api_client-0.35.0/src/plex_api_client/models/operations/getupdatesstatus.py +175 -0
  328. plex_api_client-0.35.0/src/plex_api_client/models/operations/getuseroptouts.py +337 -0
  329. plex_api_client-0.35.0/src/plex_api_client/models/operations/getusers.py +717 -0
  330. plex_api_client-0.35.0/src/plex_api_client/models/operations/getuserserver.py +326 -0
  331. plex_api_client-0.35.0/src/plex_api_client/models/operations/getuserwebhooks.py +57 -0
  332. plex_api_client-0.35.0/src/plex_api_client/models/operations/getwatchlist.py +330 -0
  333. plex_api_client-0.35.0/src/plex_api_client/models/operations/getwebhooks.py +326 -0
  334. plex_api_client-0.35.0/src/plex_api_client/models/operations/getwebsocketnotifications.py +316 -0
  335. plex_api_client-0.35.0/src/plex_api_client/models/operations/linkoauthpin.py +91 -0
  336. plex_api_client-0.35.0/src/plex_api_client/models/operations/listactivities.py +117 -0
  337. plex_api_client-0.35.0/src/plex_api_client/models/operations/listcontent.py +810 -0
  338. plex_api_client-0.35.0/src/plex_api_client/models/operations/listdownloadqueueitems.py +428 -0
  339. plex_api_client-0.35.0/src/plex_api_client/models/operations/listdvrs.py +91 -0
  340. plex_api_client-0.35.0/src/plex_api_client/models/operations/listhubs.py +440 -0
  341. plex_api_client-0.35.0/src/plex_api_client/models/operations/listmatches.py +393 -0
  342. plex_api_client-0.35.0/src/plex_api_client/models/operations/listplaybackhistory.py +559 -0
  343. plex_api_client-0.35.0/src/plex_api_client/models/operations/listplaylists.py +366 -0
  344. plex_api_client-0.35.0/src/plex_api_client/models/operations/listproviders.py +155 -0
  345. plex_api_client-0.35.0/src/plex_api_client/models/operations/listsessions.py +829 -0
  346. plex_api_client-0.35.0/src/plex_api_client/models/operations/listsimilar.py +346 -0
  347. plex_api_client-0.35.0/src/plex_api_client/models/operations/listtopusers.py +421 -0
  348. plex_api_client-0.35.0/src/plex_api_client/models/operations/makedecision.py +695 -0
  349. plex_api_client-0.35.0/src/plex_api_client/models/operations/markplayed.py +320 -0
  350. plex_api_client-0.35.0/src/plex_api_client/models/operations/matchitem.py +336 -0
  351. plex_api_client-0.35.0/src/plex_api_client/models/operations/matchsectionitems.py +330 -0
  352. plex_api_client-0.35.0/src/plex_api_client/models/operations/mergeitems.py +321 -0
  353. plex_api_client-0.35.0/src/plex_api_client/models/operations/modifydevice.py +442 -0
  354. plex_api_client-0.35.0/src/plex_api_client/models/operations/modifyplaylistgenerator.py +499 -0
  355. plex_api_client-0.35.0/src/plex_api_client/models/operations/movehub.py +356 -0
  356. plex_api_client-0.35.0/src/plex_api_client/models/operations/moveplaylistitem.py +357 -0
  357. plex_api_client-0.35.0/src/plex_api_client/models/operations/moveplayqueueitem.py +357 -0
  358. plex_api_client-0.35.0/src/plex_api_client/models/operations/movesection.py +330 -0
  359. plex_api_client-0.35.0/src/plex_api_client/models/operations/optimizelibrary.py +321 -0
  360. plex_api_client-0.35.0/src/plex_api_client/models/operations/optimizelibrarypost.py +321 -0
  361. plex_api_client-0.35.0/src/plex_api_client/models/operations/optimizesection.py +330 -0
  362. plex_api_client-0.35.0/src/plex_api_client/models/operations/optimizesectionpost.py +330 -0
  363. plex_api_client-0.35.0/src/plex_api_client/models/operations/patchdvrsettings.py +330 -0
  364. plex_api_client-0.35.0/src/plex_api_client/models/operations/ping.py +57 -0
  365. plex_api_client-0.35.0/src/plex_api_client/models/operations/playeraudiostream.py +338 -0
  366. plex_api_client-0.35.0/src/plex_api_client/models/operations/playermute.py +331 -0
  367. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerpause.py +331 -0
  368. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerplay.py +331 -0
  369. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerplaymedia.py +359 -0
  370. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerpolltimeline.py +331 -0
  371. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerrefreshplayqueue.py +331 -0
  372. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerseek.py +340 -0
  373. plex_api_client-0.35.0/src/plex_api_client/models/operations/playersetparameters.py +374 -0
  374. plex_api_client-0.35.0/src/plex_api_client/models/operations/playersetrating.py +340 -0
  375. plex_api_client-0.35.0/src/plex_api_client/models/operations/playersetstate.py +349 -0
  376. plex_api_client-0.35.0/src/plex_api_client/models/operations/playersetstreams.py +358 -0
  377. plex_api_client-0.35.0/src/plex_api_client/models/operations/playersettextstream.py +338 -0
  378. plex_api_client-0.35.0/src/plex_api_client/models/operations/playersetviewoffset.py +340 -0
  379. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerskipby.py +340 -0
  380. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerskipto.py +340 -0
  381. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerstepback.py +331 -0
  382. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerstepforward.py +331 -0
  383. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerstop.py +331 -0
  384. plex_api_client-0.35.0/src/plex_api_client/models/operations/playersubtitlestream.py +338 -0
  385. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerunmute.py +331 -0
  386. plex_api_client-0.35.0/src/plex_api_client/models/operations/playervideostream.py +338 -0
  387. plex_api_client-0.35.0/src/plex_api_client/models/operations/playervolume.py +340 -0
  388. plex_api_client-0.35.0/src/plex_api_client/models/operations/postuserssignindata.py +1108 -0
  389. plex_api_client-0.35.0/src/plex_api_client/models/operations/processsubscriptions.py +50 -0
  390. plex_api_client-0.35.0/src/plex_api_client/models/operations/refreshitemsmetadata.py +341 -0
  391. plex_api_client-0.35.0/src/plex_api_client/models/operations/refreshreachability.py +52 -0
  392. plex_api_client-0.35.0/src/plex_api_client/models/operations/refreshsection.py +330 -0
  393. plex_api_client-0.35.0/src/plex_api_client/models/operations/refreshsectionpost.py +332 -0
  394. plex_api_client-0.35.0/src/plex_api_client/models/operations/refreshsynccontent.py +321 -0
  395. plex_api_client-0.35.0/src/plex_api_client/models/operations/refreshsynclists.py +321 -0
  396. plex_api_client-0.35.0/src/plex_api_client/models/operations/registerdevicejwk.py +338 -0
  397. plex_api_client-0.35.0/src/plex_api_client/models/operations/reloadguide.py +328 -0
  398. plex_api_client-0.35.0/src/plex_api_client/models/operations/removedevice.py +425 -0
  399. plex_api_client-0.35.0/src/plex_api_client/models/operations/removedevicefromdvr.py +471 -0
  400. plex_api_client-0.35.0/src/plex_api_client/models/operations/removefromcontinuewatching.py +328 -0
  401. plex_api_client-0.35.0/src/plex_api_client/models/operations/removefromwatchlist.py +333 -0
  402. plex_api_client-0.35.0/src/plex_api_client/models/operations/removeshare.py +335 -0
  403. plex_api_client-0.35.0/src/plex_api_client/models/operations/reordersubscription.py +348 -0
  404. plex_api_client-0.35.0/src/plex_api_client/models/operations/report.py +935 -0
  405. plex_api_client-0.35.0/src/plex_api_client/models/operations/resetplayqueue.py +334 -0
  406. plex_api_client-0.35.0/src/plex_api_client/models/operations/searchdiscover.py +378 -0
  407. plex_api_client-0.35.0/src/plex_api_client/models/operations/searchepg.py +325 -0
  408. plex_api_client-0.35.0/src/plex_api_client/models/operations/searchhubs.py +364 -0
  409. plex_api_client-0.35.0/src/plex_api_client/models/operations/searchsection.py +334 -0
  410. plex_api_client-0.35.0/src/plex_api_client/models/operations/setdevicepreferences.py +329 -0
  411. plex_api_client-0.35.0/src/plex_api_client/models/operations/setdvrpreferences.py +356 -0
  412. plex_api_client-0.35.0/src/plex_api_client/models/operations/setitemartwork.py +337 -0
  413. plex_api_client-0.35.0/src/plex_api_client/models/operations/setitempreferences.py +326 -0
  414. plex_api_client-0.35.0/src/plex_api_client/models/operations/setpreferences.py +312 -0
  415. plex_api_client-0.35.0/src/plex_api_client/models/operations/setsectionpreferences.py +327 -0
  416. plex_api_client-0.35.0/src/plex_api_client/models/operations/setstreamoffset.py +348 -0
  417. plex_api_client-0.35.0/src/plex_api_client/models/operations/shareserver.py +326 -0
  418. plex_api_client-0.35.0/src/plex_api_client/models/operations/shareserverlegacy.py +335 -0
  419. plex_api_client-0.35.0/src/plex_api_client/models/operations/signout.py +326 -0
  420. plex_api_client-0.35.0/src/plex_api_client/models/operations/splititem.py +304 -0
  421. plex_api_client-0.35.0/src/plex_api_client/models/operations/startbifgeneration.py +321 -0
  422. plex_api_client-0.35.0/src/plex_api_client/models/operations/starttask.py +358 -0
  423. plex_api_client-0.35.0/src/plex_api_client/models/operations/starttranscodesession.py +724 -0
  424. plex_api_client-0.35.0/src/plex_api_client/models/operations/stopallrefreshes.py +52 -0
  425. plex_api_client-0.35.0/src/plex_api_client/models/operations/switchhomeuser.py +333 -0
  426. plex_api_client-0.35.0/src/plex_api_client/models/operations/transcodemusic.py +321 -0
  427. plex_api_client-0.35.0/src/plex_api_client/models/operations/transcodesubtitles.py +690 -0
  428. plex_api_client-0.35.0/src/plex_api_client/models/operations/unmatch.py +304 -0
  429. plex_api_client-0.35.0/src/plex_api_client/models/operations/unmatchsectionitems.py +330 -0
  430. plex_api_client-0.35.0/src/plex_api_client/models/operations/unscrobble.py +320 -0
  431. plex_api_client-0.35.0/src/plex_api_client/models/operations/unshuffle.py +334 -0
  432. plex_api_client-0.35.0/src/plex_api_client/models/operations/updatecollectionitem.py +343 -0
  433. plex_api_client-0.35.0/src/plex_api_client/models/operations/updatedvrsettings.py +330 -0
  434. plex_api_client-0.35.0/src/plex_api_client/models/operations/updatehomeuser.py +335 -0
  435. plex_api_client-0.35.0/src/plex_api_client/models/operations/updateitemartwork.py +338 -0
  436. plex_api_client-0.35.0/src/plex_api_client/models/operations/updateitems.py +443 -0
  437. plex_api_client-0.35.0/src/plex_api_client/models/operations/updaterestricteduser.py +335 -0
  438. plex_api_client-0.35.0/src/plex_api_client/models/operations/updateshare.py +335 -0
  439. plex_api_client-0.35.0/src/plex_api_client/models/operations/updateviewstatesync.py +326 -0
  440. plex_api_client-0.35.0/src/plex_api_client/models/operations/uploadart.py +408 -0
  441. plex_api_client-0.35.0/src/plex_api_client/models/operations/uploadposter.py +409 -0
  442. plex_api_client-0.35.0/src/plex_api_client/models/operations/voicesearchhubs.py +390 -0
  443. plex_api_client-0.35.0/src/plex_api_client/models/operations/writemessage.py +353 -0
  444. plex_api_client-0.35.0/src/plex_api_client/play_queue.py +2013 -0
  445. plex_api_client-0.35.0/src/plex_api_client/playback.py +6015 -0
  446. plex_api_client-0.35.0/src/plex_api_client/playlist.py +689 -0
  447. plex_api_client-0.35.0/src/plex_api_client/playlists.py +253 -0
  448. plex_api_client-0.35.0/src/plex_api_client/plex.py +225 -0
  449. plex_api_client-0.35.0/src/plex_api_client/preferences.py +631 -0
  450. plex_api_client-0.35.0/src/plex_api_client/provider.py +1721 -0
  451. plex_api_client-0.35.0/src/plex_api_client/rate.py +228 -0
  452. plex_api_client-0.35.0/src/plex_api_client/sdk.py +471 -0
  453. plex_api_client-0.35.0/src/plex_api_client/search.py +493 -0
  454. plex_api_client-0.35.0/src/plex_api_client/status.py +1307 -0
  455. plex_api_client-0.35.0/src/plex_api_client/subscriptions.py +2145 -0
  456. plex_api_client-0.35.0/src/plex_api_client/timeline.py +897 -0
  457. plex_api_client-0.35.0/src/plex_api_client/transcoder.py +2110 -0
  458. plex_api_client-0.35.0/src/plex_api_client/types/__init__.py +24 -0
  459. plex_api_client-0.35.0/src/plex_api_client/types/base64fileinput.py +43 -0
  460. plex_api_client-0.35.0/src/plex_api_client/ultrablur.py +449 -0
  461. plex_api_client-0.35.0/src/plex_api_client/updater.py +657 -0
  462. plex_api_client-0.35.0/src/plex_api_client/users.py +4865 -0
  463. plex_api_client-0.35.0/src/plex_api_client/utils/__init__.py +177 -0
  464. plex_api_client-0.35.0/src/plex_api_client/utils/datetimes.py +37 -0
  465. plex_api_client-0.35.0/src/plex_api_client/utils/eventstreaming.py +326 -0
  466. plex_api_client-0.35.0/src/plex_api_client/utils/forms.py +239 -0
  467. plex_api_client-0.35.0/src/plex_api_client/utils/requestbodies.py +67 -0
  468. plex_api_client-0.35.0/src/plex_api_client/utils/retries.py +356 -0
  469. plex_api_client-0.35.0/src/plex_api_client/utils/serializers.py +306 -0
  470. plex_api_client-0.34.3/PKG-INFO +0 -1123
  471. plex_api_client-0.34.3/README-PYPI.md +0 -1103
  472. plex_api_client-0.34.3/pyproject.toml +0 -58
  473. plex_api_client-0.34.3/src/plex_api_client/_hooks/types.py +0 -113
  474. plex_api_client-0.34.3/src/plex_api_client/_version.py +0 -15
  475. plex_api_client-0.34.3/src/plex_api_client/activities.py +0 -391
  476. plex_api_client-0.34.3/src/plex_api_client/authentication.py +0 -501
  477. plex_api_client-0.34.3/src/plex_api_client/butler.py +0 -941
  478. plex_api_client-0.34.3/src/plex_api_client/collections.py +0 -223
  479. plex_api_client-0.34.3/src/plex_api_client/content.py +0 -2725
  480. plex_api_client-0.34.3/src/plex_api_client/devices.py +0 -2726
  481. plex_api_client-0.34.3/src/plex_api_client/download_queue.py +0 -1903
  482. plex_api_client-0.34.3/src/plex_api_client/dvrs.py +0 -2521
  483. plex_api_client-0.34.3/src/plex_api_client/epg.py +0 -1813
  484. plex_api_client-0.34.3/src/plex_api_client/events.py +0 -436
  485. plex_api_client-0.34.3/src/plex_api_client/general.py +0 -811
  486. plex_api_client-0.34.3/src/plex_api_client/hubs.py +0 -2965
  487. plex_api_client-0.34.3/src/plex_api_client/library.py +0 -16494
  488. plex_api_client-0.34.3/src/plex_api_client/library_collections.py +0 -661
  489. plex_api_client-0.34.3/src/plex_api_client/library_playlists.py +0 -2725
  490. plex_api_client-0.34.3/src/plex_api_client/live_tv.py +0 -803
  491. plex_api_client-0.34.3/src/plex_api_client/log.py +0 -621
  492. plex_api_client-0.34.3/src/plex_api_client/models/components/__init__.py +0 -885
  493. plex_api_client-0.34.3/src/plex_api_client/models/components/channel.py +0 -70
  494. plex_api_client-0.34.3/src/plex_api_client/models/components/device.py +0 -93
  495. plex_api_client-0.34.3/src/plex_api_client/models/components/dvrrequesthandler_slash_get_responses_200.py +0 -192
  496. plex_api_client-0.34.3/src/plex_api_client/models/components/get_responses_200.py +0 -246
  497. plex_api_client-0.34.3/src/plex_api_client/models/components/historyall_get_responses_200.py +0 -210
  498. plex_api_client-0.34.3/src/plex_api_client/models/components/hub.py +0 -143
  499. plex_api_client-0.34.3/src/plex_api_client/models/components/items.py +0 -569
  500. plex_api_client-0.34.3/src/plex_api_client/models/components/librarysection.py +0 -189
  501. plex_api_client-0.34.3/src/plex_api_client/models/components/librarysections.py +0 -408
  502. plex_api_client-0.34.3/src/plex_api_client/models/components/lineup.py +0 -91
  503. plex_api_client-0.34.3/src/plex_api_client/models/components/media.py +0 -175
  504. plex_api_client-0.34.3/src/plex_api_client/models/components/mediacontainer.py +0 -71
  505. plex_api_client-0.34.3/src/plex_api_client/models/components/mediacontainerwithartwork.py +0 -163
  506. plex_api_client-0.34.3/src/plex_api_client/models/components/mediacontainerwithdecision.py +0 -1516
  507. plex_api_client-0.34.3/src/plex_api_client/models/components/mediacontainerwithdevice.py +0 -190
  508. plex_api_client-0.34.3/src/plex_api_client/models/components/mediacontainerwithdirectory.py +0 -110
  509. plex_api_client-0.34.3/src/plex_api_client/models/components/mediacontainerwithhubs.py +0 -110
  510. plex_api_client-0.34.3/src/plex_api_client/models/components/mediacontainerwithlineup.py +0 -113
  511. plex_api_client-0.34.3/src/plex_api_client/models/components/mediacontainerwithmetadata.py +0 -108
  512. plex_api_client-0.34.3/src/plex_api_client/models/components/mediacontainerwithnestedmetadata.py +0 -684
  513. plex_api_client-0.34.3/src/plex_api_client/models/components/mediacontainerwithplaylistmetadata.py +0 -712
  514. plex_api_client-0.34.3/src/plex_api_client/models/components/mediacontainerwithsettings.py +0 -106
  515. plex_api_client-0.34.3/src/plex_api_client/models/components/mediacontainerwithsubscription.py +0 -110
  516. plex_api_client-0.34.3/src/plex_api_client/models/components/mediagraboperation.py +0 -119
  517. plex_api_client-0.34.3/src/plex_api_client/models/components/mediaquery.py +0 -98
  518. plex_api_client-0.34.3/src/plex_api_client/models/components/mediatype.py +0 -32
  519. plex_api_client-0.34.3/src/plex_api_client/models/components/metadata.py +0 -561
  520. plex_api_client-0.34.3/src/plex_api_client/models/components/part.py +0 -131
  521. plex_api_client-0.34.3/src/plex_api_client/models/components/plexdevice.py +0 -166
  522. plex_api_client-0.34.3/src/plex_api_client/models/components/post_responses_200.py +0 -165
  523. plex_api_client-0.34.3/src/plex_api_client/models/components/session.py +0 -55
  524. plex_api_client-0.34.3/src/plex_api_client/models/components/stream.py +0 -410
  525. plex_api_client-0.34.3/src/plex_api_client/models/components/userplexaccount.py +0 -556
  526. plex_api_client-0.34.3/src/plex_api_client/models/components/userprofile.py +0 -199
  527. plex_api_client-0.34.3/src/plex_api_client/models/errors/__init__.py +0 -126
  528. plex_api_client-0.34.3/src/plex_api_client/models/errors/get_server_resources.py +0 -66
  529. plex_api_client-0.34.3/src/plex_api_client/models/errors/get_users.py +0 -121
  530. plex_api_client-0.34.3/src/plex_api_client/models/errors/gettokendetails.py +0 -121
  531. plex_api_client-0.34.3/src/plex_api_client/models/errors/post_users_sign_in_data.py +0 -121
  532. plex_api_client-0.34.3/src/plex_api_client/models/operations/__init__.py +0 -6040
  533. plex_api_client-0.34.3/src/plex_api_client/models/operations/adddevicetodvr.py +0 -522
  534. plex_api_client-0.34.3/src/plex_api_client/models/operations/adddownloadqueueitems.py +0 -749
  535. plex_api_client-0.34.3/src/plex_api_client/models/operations/addextras.py +0 -333
  536. plex_api_client-0.34.3/src/plex_api_client/models/operations/addlineup.py +0 -522
  537. plex_api_client-0.34.3/src/plex_api_client/models/operations/addplaylistitems.py +0 -358
  538. plex_api_client-0.34.3/src/plex_api_client/models/operations/addsection.py +0 -418
  539. plex_api_client-0.34.3/src/plex_api_client/models/operations/addsubtitles.py +0 -364
  540. plex_api_client-0.34.3/src/plex_api_client/models/operations/addtoplayqueue.py +0 -368
  541. plex_api_client-0.34.3/src/plex_api_client/models/operations/analyzemetadata.py +0 -327
  542. plex_api_client-0.34.3/src/plex_api_client/models/operations/applyupdates.py +0 -318
  543. plex_api_client-0.34.3/src/plex_api_client/models/operations/autocomplete.py +0 -406
  544. plex_api_client-0.34.3/src/plex_api_client/models/operations/clearplaylistitems.py +0 -334
  545. plex_api_client-0.34.3/src/plex_api_client/models/operations/computechannelmap.py +0 -490
  546. plex_api_client-0.34.3/src/plex_api_client/models/operations/connectwebsocket.py +0 -342
  547. plex_api_client-0.34.3/src/plex_api_client/models/operations/createcollection.py +0 -399
  548. plex_api_client-0.34.3/src/plex_api_client/models/operations/createdownloadqueue.py +0 -223
  549. plex_api_client-0.34.3/src/plex_api_client/models/operations/createdvr.py +0 -356
  550. plex_api_client-0.34.3/src/plex_api_client/models/operations/createmarker.py +0 -528
  551. plex_api_client-0.34.3/src/plex_api_client/models/operations/createplayqueue.py +0 -598
  552. plex_api_client-0.34.3/src/plex_api_client/models/operations/createsubscription.py +0 -528
  553. plex_api_client-0.34.3/src/plex_api_client/models/operations/deletecollectionitem.py +0 -343
  554. plex_api_client-0.34.3/src/plex_api_client/models/operations/deletelineup.py +0 -522
  555. plex_api_client-0.34.3/src/plex_api_client/models/operations/deletemarker.py +0 -307
  556. plex_api_client-0.34.3/src/plex_api_client/models/operations/deletemediaitem.py +0 -326
  557. plex_api_client-0.34.3/src/plex_api_client/models/operations/deletemetadataitem.py +0 -319
  558. plex_api_client-0.34.3/src/plex_api_client/models/operations/deleteplaylistitem.py +0 -343
  559. plex_api_client-0.34.3/src/plex_api_client/models/operations/deleteplayqueueitem.py +0 -343
  560. plex_api_client-0.34.3/src/plex_api_client/models/operations/deletesubscription.py +0 -304
  561. plex_api_client-0.34.3/src/plex_api_client/models/operations/detectads.py +0 -302
  562. plex_api_client-0.34.3/src/plex_api_client/models/operations/detectcredits.py +0 -324
  563. plex_api_client-0.34.3/src/plex_api_client/models/operations/detectintros.py +0 -328
  564. plex_api_client-0.34.3/src/plex_api_client/models/operations/detectvoiceactivity.py +0 -328
  565. plex_api_client-0.34.3/src/plex_api_client/models/operations/discoverdevices.py +0 -56
  566. plex_api_client-0.34.3/src/plex_api_client/models/operations/editmarker.py +0 -383
  567. plex_api_client-0.34.3/src/plex_api_client/models/operations/editmetadataitem.py +0 -324
  568. plex_api_client-0.34.3/src/plex_api_client/models/operations/editsubscriptionpreferences.py +0 -352
  569. plex_api_client-0.34.3/src/plex_api_client/models/operations/emptytrash.py +0 -306
  570. plex_api_client-0.34.3/src/plex_api_client/models/operations/generatethumbs.py +0 -317
  571. plex_api_client-0.34.3/src/plex_api_client/models/operations/get_server_resources.py +0 -202
  572. plex_api_client-0.34.3/src/plex_api_client/models/operations/get_users.py +0 -717
  573. plex_api_client-0.34.3/src/plex_api_client/models/operations/getallhubs.py +0 -455
  574. plex_api_client-0.34.3/src/plex_api_client/models/operations/getallitemleaves.py +0 -333
  575. plex_api_client-0.34.3/src/plex_api_client/models/operations/getalllanguages.py +0 -184
  576. plex_api_client-0.34.3/src/plex_api_client/models/operations/getallsubscriptions.py +0 -349
  577. plex_api_client-0.34.3/src/plex_api_client/models/operations/getavailablegrabbers.py +0 -465
  578. plex_api_client-0.34.3/src/plex_api_client/models/operations/getavailablesorts.py +0 -435
  579. plex_api_client-0.34.3/src/plex_api_client/models/operations/getbackgroundtasks.py +0 -240
  580. plex_api_client-0.34.3/src/plex_api_client/models/operations/getchannels.py +0 -433
  581. plex_api_client-0.34.3/src/plex_api_client/models/operations/getcollections.py +0 -387
  582. plex_api_client-0.34.3/src/plex_api_client/models/operations/getcolors.py +0 -476
  583. plex_api_client-0.34.3/src/plex_api_client/models/operations/getcommon.py +0 -396
  584. plex_api_client-0.34.3/src/plex_api_client/models/operations/getcontinuewatching.py +0 -436
  585. plex_api_client-0.34.3/src/plex_api_client/models/operations/getcountries.py +0 -244
  586. plex_api_client-0.34.3/src/plex_api_client/models/operations/getcountryregions.py +0 -473
  587. plex_api_client-0.34.3/src/plex_api_client/models/operations/getdeviceschannels.py +0 -501
  588. plex_api_client-0.34.3/src/plex_api_client/models/operations/getdownloadqueue.py +0 -500
  589. plex_api_client-0.34.3/src/plex_api_client/models/operations/getdownloadqueueitems.py +0 -655
  590. plex_api_client-0.34.3/src/plex_api_client/models/operations/getdownloadqueuemedia.py +0 -318
  591. plex_api_client-0.34.3/src/plex_api_client/models/operations/getdvr.py +0 -510
  592. plex_api_client-0.34.3/src/plex_api_client/models/operations/getextras.py +0 -333
  593. plex_api_client-0.34.3/src/plex_api_client/models/operations/getfile.py +0 -344
  594. plex_api_client-0.34.3/src/plex_api_client/models/operations/getfirstcharacters.py +0 -534
  595. plex_api_client-0.34.3/src/plex_api_client/models/operations/getfolders.py +0 -465
  596. plex_api_client-0.34.3/src/plex_api_client/models/operations/gethistoryitem.py +0 -337
  597. plex_api_client-0.34.3/src/plex_api_client/models/operations/gethubitems.py +0 -387
  598. plex_api_client-0.34.3/src/plex_api_client/models/operations/getitemartwork.py +0 -353
  599. plex_api_client-0.34.3/src/plex_api_client/models/operations/getitemtree.py +0 -330
  600. plex_api_client-0.34.3/src/plex_api_client/models/operations/getlibrarydetails.py +0 -497
  601. plex_api_client-0.34.3/src/plex_api_client/models/operations/getlibraryitems.py +0 -373
  602. plex_api_client-0.34.3/src/plex_api_client/models/operations/getlibrarymatches.py +0 -486
  603. plex_api_client-0.34.3/src/plex_api_client/models/operations/getlineup.py +0 -318
  604. plex_api_client-0.34.3/src/plex_api_client/models/operations/getlineupchannels.py +0 -517
  605. plex_api_client-0.34.3/src/plex_api_client/models/operations/getmediapart.py +0 -340
  606. plex_api_client-0.34.3/src/plex_api_client/models/operations/getmetadatahubs.py +0 -362
  607. plex_api_client-0.34.3/src/plex_api_client/models/operations/getmetadataitem.py +0 -419
  608. plex_api_client-0.34.3/src/plex_api_client/models/operations/getnotifications.py +0 -342
  609. plex_api_client-0.34.3/src/plex_api_client/models/operations/getperson.py +0 -434
  610. plex_api_client-0.34.3/src/plex_api_client/models/operations/getplaylistgenerator.py +0 -837
  611. plex_api_client-0.34.3/src/plex_api_client/models/operations/getplaylistgeneratoritems.py +0 -1072
  612. plex_api_client-0.34.3/src/plex_api_client/models/operations/getplaylistgenerators.py +0 -507
  613. plex_api_client-0.34.3/src/plex_api_client/models/operations/getplaylistitems.py +0 -351
  614. plex_api_client-0.34.3/src/plex_api_client/models/operations/getplayqueue.py +0 -387
  615. plex_api_client-0.34.3/src/plex_api_client/models/operations/getpostplayhubs.py +0 -362
  616. plex_api_client-0.34.3/src/plex_api_client/models/operations/getpromotedhubs.py +0 -435
  617. plex_api_client-0.34.3/src/plex_api_client/models/operations/getrelatedhubs.py +0 -362
  618. plex_api_client-0.34.3/src/plex_api_client/models/operations/getrelateditems.py +0 -428
  619. plex_api_client-0.34.3/src/plex_api_client/models/operations/getscheduledrecordings.py +0 -164
  620. plex_api_client-0.34.3/src/plex_api_client/models/operations/getsectionfilters.py +0 -436
  621. plex_api_client-0.34.3/src/plex_api_client/models/operations/getsectionhubs.py +0 -460
  622. plex_api_client-0.34.3/src/plex_api_client/models/operations/getsectionimage.py +0 -375
  623. plex_api_client-0.34.3/src/plex_api_client/models/operations/getsectionpreferences.py +0 -346
  624. plex_api_client-0.34.3/src/plex_api_client/models/operations/getsections.py +0 -180
  625. plex_api_client-0.34.3/src/plex_api_client/models/operations/getsectionsprefs.py +0 -337
  626. plex_api_client-0.34.3/src/plex_api_client/models/operations/getserverinfo.py +0 -325
  627. plex_api_client-0.34.3/src/plex_api_client/models/operations/getsessionplaylistindex.py +0 -315
  628. plex_api_client-0.34.3/src/plex_api_client/models/operations/getsessions.py +0 -59
  629. plex_api_client-0.34.3/src/plex_api_client/models/operations/getsessionsegment.py +0 -324
  630. plex_api_client-0.34.3/src/plex_api_client/models/operations/getsonicallysimilar.py +0 -374
  631. plex_api_client-0.34.3/src/plex_api_client/models/operations/getsourceconnectioninformation.py +0 -522
  632. plex_api_client-0.34.3/src/plex_api_client/models/operations/getstream.py +0 -350
  633. plex_api_client-0.34.3/src/plex_api_client/models/operations/getstreamlevels.py +0 -476
  634. plex_api_client-0.34.3/src/plex_api_client/models/operations/getsubscription.py +0 -358
  635. plex_api_client-0.34.3/src/plex_api_client/models/operations/gettags.py +0 -515
  636. plex_api_client-0.34.3/src/plex_api_client/models/operations/gettasks.py +0 -182
  637. plex_api_client-0.34.3/src/plex_api_client/models/operations/gettemplate.py +0 -612
  638. plex_api_client-0.34.3/src/plex_api_client/models/operations/getthumb.py +0 -315
  639. plex_api_client-0.34.3/src/plex_api_client/models/operations/gettransienttoken.py +0 -449
  640. plex_api_client-0.34.3/src/plex_api_client/models/operations/getupdatesstatus.py +0 -258
  641. plex_api_client-0.34.3/src/plex_api_client/models/operations/listactivities.py +0 -200
  642. plex_api_client-0.34.3/src/plex_api_client/models/operations/listcontent.py +0 -452
  643. plex_api_client-0.34.3/src/plex_api_client/models/operations/listdownloadqueueitems.py +0 -642
  644. plex_api_client-0.34.3/src/plex_api_client/models/operations/listdvrs.py +0 -231
  645. plex_api_client-0.34.3/src/plex_api_client/models/operations/listhubs.py +0 -581
  646. plex_api_client-0.34.3/src/plex_api_client/models/operations/listmatches.py +0 -379
  647. plex_api_client-0.34.3/src/plex_api_client/models/operations/listplaybackhistory.py +0 -571
  648. plex_api_client-0.34.3/src/plex_api_client/models/operations/listplaylists.py +0 -356
  649. plex_api_client-0.34.3/src/plex_api_client/models/operations/listproviders.py +0 -478
  650. plex_api_client-0.34.3/src/plex_api_client/models/operations/listsessions.py +0 -755
  651. plex_api_client-0.34.3/src/plex_api_client/models/operations/listsimilar.py +0 -344
  652. plex_api_client-0.34.3/src/plex_api_client/models/operations/listsonicallysimilar.py +0 -366
  653. plex_api_client-0.34.3/src/plex_api_client/models/operations/listtopusers.py +0 -456
  654. plex_api_client-0.34.3/src/plex_api_client/models/operations/makedecision.py +0 -678
  655. plex_api_client-0.34.3/src/plex_api_client/models/operations/markplayed.py +0 -322
  656. plex_api_client-0.34.3/src/plex_api_client/models/operations/matchitem.py +0 -328
  657. plex_api_client-0.34.3/src/plex_api_client/models/operations/mergeitems.py +0 -317
  658. plex_api_client-0.34.3/src/plex_api_client/models/operations/modifydevice.py +0 -452
  659. plex_api_client-0.34.3/src/plex_api_client/models/operations/modifyplaylistgenerator.py +0 -503
  660. plex_api_client-0.34.3/src/plex_api_client/models/operations/movehub.py +0 -356
  661. plex_api_client-0.34.3/src/plex_api_client/models/operations/moveplaylistitem.py +0 -357
  662. plex_api_client-0.34.3/src/plex_api_client/models/operations/moveplayqueueitem.py +0 -357
  663. plex_api_client-0.34.3/src/plex_api_client/models/operations/post_users_sign_in_data.py +0 -1092
  664. plex_api_client-0.34.3/src/plex_api_client/models/operations/processsubscriptions.py +0 -30
  665. plex_api_client-0.34.3/src/plex_api_client/models/operations/refreshitemsmetadata.py +0 -325
  666. plex_api_client-0.34.3/src/plex_api_client/models/operations/refreshsection.py +0 -332
  667. plex_api_client-0.34.3/src/plex_api_client/models/operations/reloadguide.py +0 -309
  668. plex_api_client-0.34.3/src/plex_api_client/models/operations/removedevice.py +0 -435
  669. plex_api_client-0.34.3/src/plex_api_client/models/operations/removedevicefromdvr.py +0 -523
  670. plex_api_client-0.34.3/src/plex_api_client/models/operations/reordersubscription.py +0 -346
  671. plex_api_client-0.34.3/src/plex_api_client/models/operations/report.py +0 -929
  672. plex_api_client-0.34.3/src/plex_api_client/models/operations/resetplayqueue.py +0 -334
  673. plex_api_client-0.34.3/src/plex_api_client/models/operations/searchhubs.py +0 -452
  674. plex_api_client-0.34.3/src/plex_api_client/models/operations/setdevicepreferences.py +0 -320
  675. plex_api_client-0.34.3/src/plex_api_client/models/operations/setdvrpreferences.py +0 -528
  676. plex_api_client-0.34.3/src/plex_api_client/models/operations/setitemartwork.py +0 -331
  677. plex_api_client-0.34.3/src/plex_api_client/models/operations/setitempreferences.py +0 -322
  678. plex_api_client-0.34.3/src/plex_api_client/models/operations/setpreferences.py +0 -310
  679. plex_api_client-0.34.3/src/plex_api_client/models/operations/setsectionpreferences.py +0 -325
  680. plex_api_client-0.34.3/src/plex_api_client/models/operations/setstreamoffset.py +0 -327
  681. plex_api_client-0.34.3/src/plex_api_client/models/operations/splititem.py +0 -302
  682. plex_api_client-0.34.3/src/plex_api_client/models/operations/startbifgeneration.py +0 -317
  683. plex_api_client-0.34.3/src/plex_api_client/models/operations/starttask.py +0 -334
  684. plex_api_client-0.34.3/src/plex_api_client/models/operations/starttranscodesession.py +0 -691
  685. plex_api_client-0.34.3/src/plex_api_client/models/operations/stopallrefreshes.py +0 -52
  686. plex_api_client-0.34.3/src/plex_api_client/models/operations/transcodesubtitles.py +0 -652
  687. plex_api_client-0.34.3/src/plex_api_client/models/operations/unmatch.py +0 -302
  688. plex_api_client-0.34.3/src/plex_api_client/models/operations/unscrobble.py +0 -322
  689. plex_api_client-0.34.3/src/plex_api_client/models/operations/unshuffle.py +0 -334
  690. plex_api_client-0.34.3/src/plex_api_client/models/operations/updateitemartwork.py +0 -332
  691. plex_api_client-0.34.3/src/plex_api_client/models/operations/updateitems.py +0 -440
  692. plex_api_client-0.34.3/src/plex_api_client/models/operations/voicesearchhubs.py +0 -480
  693. plex_api_client-0.34.3/src/plex_api_client/models/operations/writemessage.py +0 -356
  694. plex_api_client-0.34.3/src/plex_api_client/play_queue.py +0 -1897
  695. plex_api_client-0.34.3/src/plex_api_client/playlist.py +0 -645
  696. plex_api_client-0.34.3/src/plex_api_client/plex.py +0 -223
  697. plex_api_client-0.34.3/src/plex_api_client/preferences.py +0 -587
  698. plex_api_client-0.34.3/src/plex_api_client/provider.py +0 -741
  699. plex_api_client-0.34.3/src/plex_api_client/rate.py +0 -216
  700. plex_api_client-0.34.3/src/plex_api_client/sdk.py +0 -436
  701. plex_api_client-0.34.3/src/plex_api_client/search.py +0 -473
  702. plex_api_client-0.34.3/src/plex_api_client/status.py +0 -1211
  703. plex_api_client-0.34.3/src/plex_api_client/subscriptions.py +0 -2021
  704. plex_api_client-0.34.3/src/plex_api_client/timeline.py +0 -627
  705. plex_api_client-0.34.3/src/plex_api_client/transcoder.py +0 -1090
  706. plex_api_client-0.34.3/src/plex_api_client/types/__init__.py +0 -21
  707. plex_api_client-0.34.3/src/plex_api_client/ultrablur.py +0 -425
  708. plex_api_client-0.34.3/src/plex_api_client/updater.py +0 -602
  709. plex_api_client-0.34.3/src/plex_api_client/users.py +0 -247
  710. plex_api_client-0.34.3/src/plex_api_client/utils/__init__.py +0 -175
  711. plex_api_client-0.34.3/src/plex_api_client/utils/datetimes.py +0 -23
  712. plex_api_client-0.34.3/src/plex_api_client/utils/eventstreaming.py +0 -309
  713. plex_api_client-0.34.3/src/plex_api_client/utils/forms.py +0 -234
  714. plex_api_client-0.34.3/src/plex_api_client/utils/requestbodies.py +0 -66
  715. plex_api_client-0.34.3/src/plex_api_client/utils/retries.py +0 -271
  716. plex_api_client-0.34.3/src/plex_api_client/utils/serializers.py +0 -225
  717. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/LICENSE.md +0 -0
  718. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/py.typed +0 -0
  719. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/__init__.py +0 -0
  720. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/_hooks/__init__.py +0 -0
  721. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/_hooks/registration.py +0 -0
  722. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/_hooks/sdkhooks.py +0 -0
  723. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/basesdk.py +0 -0
  724. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/httpclient.py +0 -0
  725. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/__init__.py +0 -0
  726. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/accepts.py +0 -0
  727. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/advancedsubtitles.py +0 -0
  728. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/allowsync.py +0 -0
  729. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/boolint.py +0 -0
  730. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/channelmapping.py +0 -0
  731. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/composite.py +0 -0
  732. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/directory.py +0 -0
  733. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/filter_.py +0 -0
  734. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/image.py +0 -0
  735. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/location.py +0 -0
  736. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/mediasubscription.py +0 -0
  737. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/mediatypestring.py +0 -0
  738. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/player.py +0 -0
  739. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/protocol.py +0 -0
  740. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/security.py +0 -0
  741. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/setting.py +0 -0
  742. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/slash_get_responses_200.py +0 -0
  743. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/sort.py +0 -0
  744. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/subtitles.py +0 -0
  745. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/tag.py +0 -0
  746. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/transcodesession.py +0 -0
  747. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/transcodetype.py +0 -0
  748. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/components/user.py +0 -0
  749. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/errors/no_response_error.py +0 -0
  750. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/errors/plexapierror.py +0 -0
  751. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/errors/responsevalidationerror.py +0 -0
  752. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/errors/sdkerror.py +0 -0
  753. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/internal/__init__.py +0 -0
  754. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/internal/globals.py +0 -0
  755. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/addcollectionitems.py +0 -0
  756. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/adddevice.py +0 -0
  757. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/addprovider.py +0 -0
  758. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/cancelactivity.py +0 -0
  759. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/cancelgrab.py +0 -0
  760. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/cancelrefresh.py +0 -0
  761. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/checkupdates.py +0 -0
  762. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/cleanbundles.py +0 -0
  763. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/clearplayqueue.py +0 -0
  764. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/createcustomhub.py +0 -0
  765. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/createplaylist.py +0 -0
  766. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deletecaches.py +0 -0
  767. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deletecollection.py +0 -0
  768. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deletecustomhub.py +0 -0
  769. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deletedvr.py +0 -0
  770. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deletehistory.py +0 -0
  771. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deleteindexes.py +0 -0
  772. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deleteintros.py +0 -0
  773. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deletelibrarysection.py +0 -0
  774. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deletemediaprovider.py +0 -0
  775. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deleteplaylist.py +0 -0
  776. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deletestream.py +0 -0
  777. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/editsection.py +0 -0
  778. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/enablepapertrail.py +0 -0
  779. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getalbums.py +0 -0
  780. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getallleaves.py +0 -0
  781. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getallpreferences.py +0 -0
  782. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getarts.py +0 -0
  783. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getaugmentationstatus.py +0 -0
  784. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getcategories.py +0 -0
  785. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getchapterimage.py +0 -0
  786. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getcluster.py +0 -0
  787. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getcollectionimage.py +0 -0
  788. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getcollectionitems.py +0 -0
  789. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getcountrieslineups.py +0 -0
  790. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getdevicedetails.py +0 -0
  791. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getidentity.py +0 -0
  792. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getimage.py +0 -0
  793. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getimagefrombif.py +0 -0
  794. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getitemdecision.py +0 -0
  795. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getlivetvsession.py +0 -0
  796. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getpartindex.py +0 -0
  797. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getplaylist.py +0 -0
  798. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getpreference.py +0 -0
  799. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getrandomartwork.py +0 -0
  800. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getsonicpath.py +0 -0
  801. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getstreamloudness.py +0 -0
  802. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/gettokendetails.py +0 -0
  803. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/ingesttransientitem.py +0 -0
  804. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/listdevices.py +0 -0
  805. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/listlineups.py +0 -0
  806. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/listmoments.py +0 -0
  807. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/listpersonmedia.py +0 -0
  808. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/movecollectionitem.py +0 -0
  809. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/optimizedatabase.py +0 -0
  810. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/refreshplaylist.py +0 -0
  811. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/refreshproviders.py +0 -0
  812. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/refreshsectionsmetadata.py +0 -0
  813. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/removedownloadqueueitems.py +0 -0
  814. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/resetsectiondefaults.py +0 -0
  815. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/restartprocessingdownloadqueueitems.py +0 -0
  816. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/scan.py +0 -0
  817. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/setchannelmap.py +0 -0
  818. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/setrating.py +0 -0
  819. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/setstreamselection.py +0 -0
  820. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/shuffle.py +0 -0
  821. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/startanalysis.py +0 -0
  822. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/starttasks.py +0 -0
  823. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/stopdvrreload.py +0 -0
  824. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/stopscan.py +0 -0
  825. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/stoptask.py +0 -0
  826. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/stoptasks.py +0 -0
  827. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/terminatesession.py +0 -0
  828. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/transcodeimage.py +0 -0
  829. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/triggerfallback.py +0 -0
  830. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/tunechannel.py +0 -0
  831. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/updatehubvisibility.py +0 -0
  832. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/updateplaylist.py +0 -0
  833. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/uploadplaylist.py +0 -0
  834. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/writelog.py +0 -0
  835. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/py.typed +0 -0
  836. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/sdkconfiguration.py +0 -0
  837. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/types/basemodel.py +0 -0
  838. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/utils/annotations.py +0 -0
  839. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/utils/dynamic_imports.py +0 -0
  840. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/utils/enums.py +0 -0
  841. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/utils/headers.py +0 -0
  842. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/utils/logger.py +0 -0
  843. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/utils/metadata.py +0 -0
  844. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/utils/queryparams.py +0 -0
  845. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/utils/security.py +0 -0
  846. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/utils/unmarshal_json_response.py +0 -0
  847. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/utils/url.py +0 -0
  848. {plex_api_client-0.34.3 → plex_api_client-0.35.0}/src/plex_api_client/utils/values.py +0 -0
@@ -0,0 +1,1361 @@
1
+ Metadata-Version: 2.4
2
+ Name: plex-api-client
3
+ Version: 0.35.0
4
+ Summary: Python Client SDK Generated by Speakeasy
5
+ License-File: LICENSE.md
6
+ Author: Speakeasy
7
+ Requires-Python: >=3.10
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.10
10
+ Classifier: Programming Language :: Python :: 3.11
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Classifier: Programming Language :: Python :: 3.13
13
+ Classifier: Programming Language :: Python :: 3.14
14
+ Requires-Dist: httpcore (>=1.0.9)
15
+ Requires-Dist: httpx (>=0.28.1)
16
+ Requires-Dist: pydantic (>=2.11.2,<2.13)
17
+ Project-URL: Repository, https://github.com/LukasParke/plexpy.git
18
+ Description-Content-Type: text/markdown
19
+
20
+ # plexpy
21
+
22
+ <div align="left">
23
+ <a href="https://speakeasyapi.dev/"><img src="https://custom-icon-badges.demolab.com/badge/-Built%20By%20Speakeasy-212015?style=for-the-badge&logoColor=FBE331&logo=speakeasy&labelColor=545454" /></a>
24
+ <a href="https://opensource.org/licenses/MIT">
25
+ <img src="https://img.shields.io/badge/License-MIT-blue.svg" style="width: 100px; height: 28px;" />
26
+ </a>
27
+ </div>
28
+
29
+ <!-- Start Summary [summary] -->
30
+ ## Summary
31
+
32
+ Plex Media Server: OpenAPI specification for the Plex Media Server (PMS) API and the plex.tv cloud API.
33
+
34
+ ## Base URLs
35
+
36
+ - **PMS (local server)**: `http(s)://{host}:{port}` — Most endpoints in this spec target the local PMS.
37
+ - **plex.tv v2**: `https://plex.tv/api/v2` — Authentication, account, and social endpoints.
38
+ - **plex.tv v1 (legacy)**: `https://plex.tv/api` — Legacy XML endpoints (friends, home users, claims).
39
+ - **Cloud providers**: `https://discover.provider.plex.tv`, `https://metadata.provider.plex.tv`, etc.
40
+
41
+ Endpoints that target plex.tv or cloud providers declare an override `servers` array.
42
+
43
+ ## Authentication
44
+
45
+ - **X-Plex-Token**: Pass via the `X-Plex-Token` header on every request. It may also be passed as a query parameter (`?X-Plex-Token=...`) on all endpoints.
46
+ - **X-Plex-Client-Identifier**: Mandatory for OAuth PIN flow (`/pins`) and JWT device registration. Must be a unique, persistent identifier for the client application.
47
+ - **OAuth PIN Flow**: `POST /pins` → user visits `https://plex.tv/link` → `GET /pins/{pinId}` → obtain `authToken`.
48
+
49
+ ## Response Formats
50
+
51
+ - **PMS endpoints**: Return XML by default. Send `Accept: application/json` to receive JSON.
52
+ - **plex.tv v2**: Returns JSON by default.
53
+ - **Legacy v1 endpoints** (`/pins.xml`, `/api/resources`, `/api/users/`): Return XML only.
54
+
55
+ ## Rate Limiting
56
+
57
+ plex.tv auth endpoints (PIN creation, sign-in) enforce rate limits. Clients should implement exponential backoff and reuse tokens rather than re-authenticating on every request.
58
+ <!-- End Summary [summary] -->
59
+
60
+ <!-- Start Table of Contents [toc] -->
61
+ ## Table of Contents
62
+ <!-- $toc-max-depth=2 -->
63
+ * [plexpy](https://github.com/LukasParke/plexpy/blob/master/./#plexpy)
64
+ * [Base URLs](https://github.com/LukasParke/plexpy/blob/master/./#base-urls)
65
+ * [Authentication](https://github.com/LukasParke/plexpy/blob/master/./#authentication)
66
+ * [Response Formats](https://github.com/LukasParke/plexpy/blob/master/./#response-formats)
67
+ * [Rate Limiting](https://github.com/LukasParke/plexpy/blob/master/./#rate-limiting)
68
+ * [SDK Installation](https://github.com/LukasParke/plexpy/blob/master/./#sdk-installation)
69
+ * [IDE Support](https://github.com/LukasParke/plexpy/blob/master/./#ide-support)
70
+ * [SDK Example Usage](https://github.com/LukasParke/plexpy/blob/master/./#sdk-example-usage)
71
+ * [Available Resources and Operations](https://github.com/LukasParke/plexpy/blob/master/./#available-resources-and-operations)
72
+ * [File uploads](https://github.com/LukasParke/plexpy/blob/master/./#file-uploads)
73
+ * [Retries](https://github.com/LukasParke/plexpy/blob/master/./#retries)
74
+ * [Error Handling](https://github.com/LukasParke/plexpy/blob/master/./#error-handling)
75
+ * [Server Selection](https://github.com/LukasParke/plexpy/blob/master/./#server-selection)
76
+ * [Custom HTTP Client](https://github.com/LukasParke/plexpy/blob/master/./#custom-http-client)
77
+ * [Authentication](https://github.com/LukasParke/plexpy/blob/master/./#authentication-1)
78
+ * [Resource Management](https://github.com/LukasParke/plexpy/blob/master/./#resource-management)
79
+ * [Debugging](https://github.com/LukasParke/plexpy/blob/master/./#debugging)
80
+ * [Development](https://github.com/LukasParke/plexpy/blob/master/./#development)
81
+ * [Maturity](https://github.com/LukasParke/plexpy/blob/master/./#maturity)
82
+ * [Contributions](https://github.com/LukasParke/plexpy/blob/master/./#contributions)
83
+
84
+ <!-- End Table of Contents [toc] -->
85
+
86
+ <!-- Start SDK Installation [installation] -->
87
+ ## SDK Installation
88
+
89
+ > [!NOTE]
90
+ > **Python version upgrade policy**
91
+ >
92
+ > Once a Python version reaches its [official end of life date](https://devguide.python.org/versions/), a 3-month grace period is provided for users to upgrade. Following this grace period, the minimum python version supported in the SDK will be updated.
93
+
94
+ The SDK can be installed with *uv*, *pip*, or *poetry* package managers.
95
+
96
+ ### uv
97
+
98
+ *uv* is a fast Python package installer and resolver, designed as a drop-in replacement for pip and pip-tools. It's recommended for its speed and modern Python tooling capabilities.
99
+
100
+ ```bash
101
+ uv add plex-api-client
102
+ ```
103
+
104
+ ### PIP
105
+
106
+ *PIP* is the default package installer for Python, enabling easy installation and management of packages from PyPI via the command line.
107
+
108
+ ```bash
109
+ pip install plex-api-client
110
+ ```
111
+
112
+ ### Poetry
113
+
114
+ *Poetry* is a modern tool that simplifies dependency management and package publishing by using a single `pyproject.toml` file to handle project metadata and dependencies.
115
+
116
+ ```bash
117
+ poetry add plex-api-client
118
+ ```
119
+
120
+ ### Shell and script usage with `uv`
121
+
122
+ You can use this SDK in a Python shell with [uv](https://docs.astral.sh/uv/) and the `uvx` command that comes with it like so:
123
+
124
+ ```shell
125
+ uvx --from plex-api-client python
126
+ ```
127
+
128
+ It's also possible to write a standalone Python script without needing to set up a whole project like so:
129
+
130
+ ```python
131
+ #!/usr/bin/env -S uv run --script
132
+ # /// script
133
+ # requires-python = ">=3.10"
134
+ # dependencies = [
135
+ # "plex-api-client",
136
+ # ]
137
+ # ///
138
+
139
+ from plex_api_client import PlexAPI
140
+
141
+ sdk = PlexAPI(
142
+ # SDK arguments
143
+ )
144
+
145
+ # Rest of script here...
146
+ ```
147
+
148
+ Once that is saved to a file, you can run it with `uv run script.py` where
149
+ `script.py` can be replaced with the actual file name.
150
+ <!-- End SDK Installation [installation] -->
151
+
152
+ <!-- Start IDE Support [idesupport] -->
153
+ ## IDE Support
154
+
155
+ ### PyCharm
156
+
157
+ Generally, the SDK will work well with most IDEs out of the box. However, when using PyCharm, you can enjoy much better integration with Pydantic by installing an additional plugin.
158
+
159
+ - [PyCharm Pydantic Plugin](https://docs.pydantic.dev/latest/integrations/pycharm/)
160
+ <!-- End IDE Support [idesupport] -->
161
+
162
+ <!-- Start SDK Example Usage [usage] -->
163
+ ## SDK Example Usage
164
+
165
+ ### Example
166
+
167
+ ```python
168
+ # Synchronous Example
169
+ from plex_api_client import PlexAPI
170
+ from plex_api_client.models import components, operations
171
+
172
+
173
+ with PlexAPI(
174
+ accepts=components.Accepts.APPLICATION_XML,
175
+ client_identifier="abc123",
176
+ product="Plex for Roku",
177
+ version="2.4.1",
178
+ platform="Roku",
179
+ platform_version="4.3 build 1057",
180
+ device="Roku 3",
181
+ model="4200X",
182
+ device_vendor="Roku",
183
+ device_name="Living Room TV",
184
+ marketplace="googlePlay",
185
+ token="<YOUR_API_KEY_HERE>",
186
+ ) as plex_api:
187
+
188
+ res = plex_api.transcoder.start_transcode_session(request=operations.StartTranscodeSessionRequest(
189
+ transcode_type=components.TranscodeType.MUSIC,
190
+ advanced_subtitles=components.AdvancedSubtitles.BURN,
191
+ extension=operations.Extension.MPD,
192
+ audio_boost=50,
193
+ audio_channel_count=5,
194
+ auto_adjust_quality=components.BoolInt.TRUE,
195
+ auto_adjust_subtitle=components.BoolInt.TRUE,
196
+ direct_play=components.BoolInt.TRUE,
197
+ direct_stream=components.BoolInt.TRUE,
198
+ direct_stream_audio=components.BoolInt.TRUE,
199
+ disable_resolution_rotation=components.BoolInt.TRUE,
200
+ has_mde=components.BoolInt.TRUE,
201
+ location=operations.StartTranscodeSessionQueryParamLocation.WAN,
202
+ media_buffer_size=102400,
203
+ media_index=0,
204
+ music_bitrate=5000,
205
+ offset=90.5,
206
+ part_index=0,
207
+ path="/library/metadata/151671",
208
+ peak_bitrate=12000,
209
+ photo_resolution="1080x1080",
210
+ protocol=operations.StartTranscodeSessionQueryParamProtocol.DASH,
211
+ seconds_per_segment=5,
212
+ subtitle_size=50,
213
+ subtitles=operations.StartTranscodeSessionQueryParamSubtitles.BURN,
214
+ video_resolution="1080x1080",
215
+ copyts=components.BoolInt.TRUE,
216
+ video_bitrate=12000,
217
+ video_quality=50,
218
+ x_plex_client_profile_extra="add-limitation(scope=videoCodec&scopeName=*&type=upperBound&name=video.frameRate&value=60&replace=true)+append-transcode-target-codec(type=videoProfile&context=streaming&videoCodec=h264%2Chevc&audioCodec=aac&protocol=dash)",
219
+ x_plex_client_profile_name="generic",
220
+ ))
221
+
222
+ assert res.two_hundred_application_vnd_apple_mpegurl_binary_response is not None
223
+
224
+ # Handle response
225
+ print(res.two_hundred_application_vnd_apple_mpegurl_binary_response)
226
+ ```
227
+
228
+ </br>
229
+
230
+ The same SDK client can also be used to make asynchronous requests by importing asyncio.
231
+
232
+ ```python
233
+ # Asynchronous Example
234
+ import asyncio
235
+ from plex_api_client import PlexAPI
236
+ from plex_api_client.models import components, operations
237
+
238
+ async def main():
239
+
240
+ async with PlexAPI(
241
+ accepts=components.Accepts.APPLICATION_XML,
242
+ client_identifier="abc123",
243
+ product="Plex for Roku",
244
+ version="2.4.1",
245
+ platform="Roku",
246
+ platform_version="4.3 build 1057",
247
+ device="Roku 3",
248
+ model="4200X",
249
+ device_vendor="Roku",
250
+ device_name="Living Room TV",
251
+ marketplace="googlePlay",
252
+ token="<YOUR_API_KEY_HERE>",
253
+ ) as plex_api:
254
+
255
+ res = await plex_api.transcoder.start_transcode_session_async(request=operations.StartTranscodeSessionRequest(
256
+ transcode_type=components.TranscodeType.MUSIC,
257
+ advanced_subtitles=components.AdvancedSubtitles.BURN,
258
+ extension=operations.Extension.MPD,
259
+ audio_boost=50,
260
+ audio_channel_count=5,
261
+ auto_adjust_quality=components.BoolInt.TRUE,
262
+ auto_adjust_subtitle=components.BoolInt.TRUE,
263
+ direct_play=components.BoolInt.TRUE,
264
+ direct_stream=components.BoolInt.TRUE,
265
+ direct_stream_audio=components.BoolInt.TRUE,
266
+ disable_resolution_rotation=components.BoolInt.TRUE,
267
+ has_mde=components.BoolInt.TRUE,
268
+ location=operations.StartTranscodeSessionQueryParamLocation.WAN,
269
+ media_buffer_size=102400,
270
+ media_index=0,
271
+ music_bitrate=5000,
272
+ offset=90.5,
273
+ part_index=0,
274
+ path="/library/metadata/151671",
275
+ peak_bitrate=12000,
276
+ photo_resolution="1080x1080",
277
+ protocol=operations.StartTranscodeSessionQueryParamProtocol.DASH,
278
+ seconds_per_segment=5,
279
+ subtitle_size=50,
280
+ subtitles=operations.StartTranscodeSessionQueryParamSubtitles.BURN,
281
+ video_resolution="1080x1080",
282
+ copyts=components.BoolInt.TRUE,
283
+ video_bitrate=12000,
284
+ video_quality=50,
285
+ x_plex_client_profile_extra="add-limitation(scope=videoCodec&scopeName=*&type=upperBound&name=video.frameRate&value=60&replace=true)+append-transcode-target-codec(type=videoProfile&context=streaming&videoCodec=h264%2Chevc&audioCodec=aac&protocol=dash)",
286
+ x_plex_client_profile_name="generic",
287
+ ))
288
+
289
+ assert res.two_hundred_application_vnd_apple_mpegurl_binary_response is not None
290
+
291
+ # Handle response
292
+ print(res.two_hundred_application_vnd_apple_mpegurl_binary_response)
293
+
294
+ asyncio.run(main())
295
+ ```
296
+ <!-- End SDK Example Usage [usage] -->
297
+
298
+ <!-- Start Available Resources and Operations [operations] -->
299
+ ## Available Resources and Operations
300
+
301
+ <details open>
302
+ <summary>Available methods</summary>
303
+
304
+ ### [Activities](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/activities/README.md)
305
+
306
+ * [list_activities](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/activities/README.md#list_activities) - Get all activities
307
+ * [cancel_activity](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/activities/README.md#cancel_activity) - Cancel a running activity
308
+
309
+ ### [Authentication](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/authentication/README.md)
310
+
311
+ * [register_device_jwk](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/authentication/README.md#register_device_jwk) - Register Device JWK
312
+ * [get_auth_keys](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/authentication/README.md#get_auth_keys) - Get Auth Keys
313
+ * [get_auth_nonce](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/authentication/README.md#get_auth_nonce) - Get Auth Nonce
314
+ * [exchange_jwt_token](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/authentication/README.md#exchange_jwt_token) - Exchange JWT Token
315
+ * [get_claim_token](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/authentication/README.md#get_claim_token) - Get Claim Token
316
+ * [get_features](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/authentication/README.md#get_features) - Get Features
317
+ * [ping](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/authentication/README.md#ping) - Ping the server
318
+ * [create_o_auth_pin](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/authentication/README.md#create_o_auth_pin) - Create OAuth PIN
319
+ * [create_legacy_pin](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/authentication/README.md#create_legacy_pin) - Create Legacy PIN
320
+ * [link_o_auth_pin](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/authentication/README.md#link_o_auth_pin) - Link OAuth PIN
321
+ * [get_server_access_tokens](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/authentication/README.md#get_server_access_tokens) - Get Server Access Tokens
322
+ * [get_token_details](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/authentication/README.md#get_token_details) - Get Token Details
323
+ * [change_password](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/authentication/README.md#change_password) - Change Password
324
+ * [post_users_sign_in_data](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/authentication/README.md#post_users_sign_in_data) - Get User Sign In Data
325
+ * [sign_out](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/authentication/README.md#sign_out) - Sign Out
326
+ * [switch_home_user](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/authentication/README.md#switch_home_user) - Switch Home User
327
+ * [get_o_auth_pin](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/authentication/README.md#get_o_auth_pin) - Get OAuth PIN Status
328
+
329
+ ### [Butler](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/butler/README.md)
330
+
331
+ * [stop_tasks](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/butler/README.md#stop_tasks) - Stop all Butler tasks
332
+ * [get_tasks](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/butler/README.md#get_tasks) - Get all Butler tasks
333
+ * [start_tasks](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/butler/README.md#start_tasks) - Start all Butler tasks
334
+ * [stop_task](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/butler/README.md#stop_task) - Stop a single Butler task
335
+ * [start_task](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/butler/README.md#start_task) - Start a single Butler task
336
+
337
+ ### [Collections](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/collections/README.md)
338
+
339
+ * [create_collection](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/collections/README.md#create_collection) - Create collection
340
+
341
+ ### [Content](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/content/README.md)
342
+
343
+ * [get_collection_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/content/README.md#get_collection_items) - Get items in a collection
344
+ * [get_metadata_item](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/content/README.md#get_metadata_item) - Get a metadata item
345
+ * [get_albums](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/content/README.md#get_albums) - Set section albums
346
+ * [list_content](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/content/README.md#list_content) - Get items in the section
347
+ * [get_all_leaves](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/content/README.md#get_all_leaves) - Set section leaves
348
+ * [get_arts](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/content/README.md#get_arts) - Set section artwork
349
+ * [get_categories](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/content/README.md#get_categories) - Set section categories
350
+ * [get_cluster](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/content/README.md#get_cluster) - Set section clusters
351
+ * [get_sonic_path](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/content/README.md#get_sonic_path) - Similar tracks to transition from one to another
352
+ * [get_folders](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/content/README.md#get_folders) - Get all folder locations
353
+ * [list_moments](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/content/README.md#list_moments) - Set section moments
354
+ * [get_sonically_similar](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/content/README.md#get_sonically_similar) - The nearest audio tracks
355
+ * [get_collection_image](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/content/README.md#get_collection_image) - Get a collection's image
356
+
357
+ ### [Devices](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/devices/README.md)
358
+
359
+ * [get_available_grabbers](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/devices/README.md#get_available_grabbers) - Get available grabbers
360
+ * [list_devices](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/devices/README.md#list_devices) - Get all devices
361
+ * [add_device](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/devices/README.md#add_device) - Add a device
362
+ * [discover_devices](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/devices/README.md#discover_devices) - Tell grabbers to discover devices
363
+ * [remove_device](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/devices/README.md#remove_device) - Remove a device
364
+ * [get_device_details](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/devices/README.md#get_device_details) - Get device details
365
+ * [modify_device](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/devices/README.md#modify_device) - Enable or disable a device
366
+ * [set_channelmap](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/devices/README.md#set_channelmap) - Set a device's channel mapping
367
+ * [get_devices_channels](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/devices/README.md#get_devices_channels) - Get a device's channels
368
+ * [set_device_preferences](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/devices/README.md#set_device_preferences) - Set device preferences
369
+ * [stop_scan](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/devices/README.md#stop_scan) - Tell a device to stop scanning for channels
370
+ * [scan](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/devices/README.md#scan) - Tell a device to scan for channels
371
+ * [get_thumb](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/devices/README.md#get_thumb) - Get device thumb
372
+
373
+ ### [DownloadQueue](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/downloadqueue/README.md)
374
+
375
+ * [create_download_queue](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/downloadqueue/README.md#create_download_queue) - Create download queue
376
+ * [get_download_queue](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/downloadqueue/README.md#get_download_queue) - Get a download queue
377
+ * [add_download_queue_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/downloadqueue/README.md#add_download_queue_items) - Add to download queue
378
+ * [list_download_queue_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/downloadqueue/README.md#list_download_queue_items) - Get download queue items
379
+ * [get_item_decision](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/downloadqueue/README.md#get_item_decision) - Grab download queue item decision
380
+ * [get_download_queue_media](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/downloadqueue/README.md#get_download_queue_media) - Grab download queue media
381
+ * [remove_download_queue_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/downloadqueue/README.md#remove_download_queue_items) - Delete download queue items
382
+ * [get_download_queue_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/downloadqueue/README.md#get_download_queue_items) - Get download queue items
383
+ * [restart_processing_download_queue_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/downloadqueue/README.md#restart_processing_download_queue_items) - Restart processing of items from the decision
384
+
385
+ ### [DVRs](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/dvrs/README.md)
386
+
387
+ * [list_dv_rs](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/dvrs/README.md#list_dv_rs) - Get DVRs
388
+ * [create_dvr](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/dvrs/README.md#create_dvr) - Create a DVR
389
+ * [delete_dvr](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/dvrs/README.md#delete_dvr) - Delete a single DVR
390
+ * [get_dvr](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/dvrs/README.md#get_dvr) - Get a single DVR
391
+ * [patch_dvr_settings](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/dvrs/README.md#patch_dvr_settings) - Update DVR Settings
392
+ * [update_dvr_settings](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/dvrs/README.md#update_dvr_settings) - Update DVR Settings
393
+ * [get_dvr_channels](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/dvrs/README.md#get_dvr_channels) - Get DVR Channels
394
+ * [get_dvr_guide](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/dvrs/README.md#get_dvr_guide) - Get DVR Guide
395
+ * [delete_lineup](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/dvrs/README.md#delete_lineup) - Delete a DVR Lineup
396
+ * [add_lineup](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/dvrs/README.md#add_lineup) - Add a DVR Lineup
397
+ * [set_dvr_preferences](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/dvrs/README.md#set_dvr_preferences) - Set DVR preferences
398
+ * [stop_dvr_reload](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/dvrs/README.md#stop_dvr_reload) - Tell a DVR to stop reloading program guide
399
+ * [reload_guide](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/dvrs/README.md#reload_guide) - Tell a DVR to reload program guide
400
+ * [tune_channel](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/dvrs/README.md#tune_channel) - Tune a channel on a DVR
401
+ * [remove_device_from_dvr](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/dvrs/README.md#remove_device_from_dvr) - Remove a device from an existing DVR
402
+ * [add_device_to_dvr](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/dvrs/README.md#add_device_to_dvr) - Add a device to an existing DVR
403
+
404
+ ### [Epg](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/epg/README.md)
405
+
406
+ * [compute_channel_map](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/epg/README.md#compute_channel_map) - Compute the best channel map
407
+ * [get_channels](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/epg/README.md#get_channels) - Get channels for a lineup
408
+ * [get_countries](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/epg/README.md#get_countries) - Get all countries
409
+ * [get_epg_guide](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/epg/README.md#get_epg_guide) - Get EPG Guide
410
+ * [get_all_languages](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/epg/README.md#get_all_languages) - Get all languages
411
+ * [get_lineup](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/epg/README.md#get_lineup) - Compute the best lineup
412
+ * [get_lineup_channels](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/epg/README.md#get_lineup_channels) - Get the channels for multiple lineups
413
+ * [search_epg](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/epg/README.md#search_epg) - Search EPG
414
+ * [get_countries_lineups](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/epg/README.md#get_countries_lineups) - Get lineups for a country via postal code
415
+ * [get_country_regions](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/epg/README.md#get_country_regions) - Get regions for a country
416
+ * [list_lineups](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/epg/README.md#list_lineups) - Get lineups for a region
417
+
418
+ ### [Events](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/events/README.md)
419
+
420
+ * [get_notifications](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/events/README.md#get_notifications) - Connect to Eventsource
421
+ * [connect_web_socket](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/events/README.md#connect_web_socket) - Connect to WebSocket
422
+ * [get_websocket_notifications](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/events/README.md#get_websocket_notifications) - Get WebSocket Notifications
423
+
424
+ ### [General](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md)
425
+
426
+ * [get_server_info](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_server_info) - Get PMS info
427
+ * [get_system_accounts](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_system_accounts) - Get System Accounts
428
+ * [get_user_webhooks](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_user_webhooks) - User Webhooks
429
+ * [add_user_webhook](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#add_user_webhook) - Add User Webhook
430
+ * [get_clients](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_clients) - Get Clients
431
+ * [get_cloud_server](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_cloud_server) - Get Cloud Server
432
+ * [get_system_devices](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_system_devices) - Get System Devices
433
+ * [get_diagnostics](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_diagnostics) - Get Diagnostics
434
+ * [download_database_diagnostics](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#download_database_diagnostics) - Download Database Diagnostics
435
+ * [download_log_bundle](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#download_log_bundle) - Download Log Bundle
436
+ * [get_geo_ip](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_geo_ip) - Get GeoIP
437
+ * [get_identity](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_identity) - Get PMS identity
438
+ * [get_ip](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_ip) - Get IP
439
+ * [claim_server](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#claim_server) - Claim Server
440
+ * [refresh_reachability](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#refresh_reachability) - Refresh Reachability
441
+ * [get_source_connection_information](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_source_connection_information) - Get Source Connection Information
442
+ * [create_transient_token](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#create_transient_token) - Get Transient Tokens
443
+ * [get_local_servers](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_local_servers) - Get Local Servers
444
+ * [browse_filesystem](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#browse_filesystem) - Browse Filesystem
445
+ * [get_bandwidth_statistics](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_bandwidth_statistics) - Get Bandwidth Statistics
446
+ * [get_resource_statistics](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_resource_statistics) - Get Resource Statistics
447
+ * [get_sync_status](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_sync_status) - Get Sync Status
448
+ * [get_sync_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_sync_items) - Get Sync Items
449
+ * [get_sync_queue](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_sync_queue) - Get Sync Queue
450
+ * [refresh_sync_content](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#refresh_sync_content) - Refresh Sync Content
451
+ * [refresh_sync_lists](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#refresh_sync_lists) - Refresh Sync Lists
452
+ * [get_sync_transcode_queue](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_sync_transcode_queue) - Get Sync Transcode Queue
453
+ * [get_metadata_agents](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_metadata_agents) - Get Metadata Agents
454
+ * [get_system_settings](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_system_settings) - Get System Settings
455
+ * [check_for_system_updates](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#check_for_system_updates) - Check for System Updates
456
+ * [get_webhooks](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_webhooks) - Get Webhooks
457
+ * [add_webhook](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#add_webhook) - Add Webhook
458
+ * [get_plex_downloads](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_plex_downloads) - Get Plex Downloads
459
+ * [browse_filesystem_path](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#browse_filesystem_path) - Browse Filesystem Path
460
+ * [get_sync_item](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_sync_item) - Get Sync Item
461
+ * [get_metadata_agent_details](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/general/README.md#get_metadata_agent_details) - Get Metadata Agent Details
462
+
463
+ ### [Hubs](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/hubs/README.md)
464
+
465
+ * [get_all_hubs](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/hubs/README.md#get_all_hubs) - Get global hubs
466
+ * [get_continue_watching](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/hubs/README.md#get_continue_watching) - Get the continue watching hub
467
+ * [get_continue_watching_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/hubs/README.md#get_continue_watching_items) - Get Continue Watching Items
468
+ * [get_home_recently_added](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/hubs/README.md#get_home_recently_added) - Get home hubs Recently Added
469
+ * [get_hub_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/hubs/README.md#get_hub_items) - Get a hub's items
470
+ * [get_promoted_hubs](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/hubs/README.md#get_promoted_hubs) - Get the hubs which are promoted
471
+ * [get_metadata_hubs](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/hubs/README.md#get_metadata_hubs) - Get hubs for section by metadata item
472
+ * [get_postplay_hubs](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/hubs/README.md#get_postplay_hubs) - Get postplay hubs
473
+ * [get_related_hubs](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/hubs/README.md#get_related_hubs) - Get related hubs
474
+ * [get_section_hubs](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/hubs/README.md#get_section_hubs) - Get section hubs
475
+ * [reset_section_defaults](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/hubs/README.md#reset_section_defaults) - Reset hubs to defaults
476
+ * [list_hubs](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/hubs/README.md#list_hubs) - Get hubs
477
+ * [create_custom_hub](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/hubs/README.md#create_custom_hub) - Create a custom hub
478
+ * [move_hub](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/hubs/README.md#move_hub) - Move Hub
479
+ * [delete_custom_hub](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/hubs/README.md#delete_custom_hub) - Delete a custom hub
480
+ * [update_hub_visibility](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/hubs/README.md#update_hub_visibility) - Change hub visibility
481
+
482
+ ### [Library](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md)
483
+
484
+ * [get_root_library](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_root_library) - Get Root Library
485
+ * [get_library_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_library_items) - Get all items in library
486
+ * [delete_caches](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#delete_caches) - Delete library caches
487
+ * [clean_bundles](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#clean_bundles) - Clean bundles
488
+ * [ingest_transient_item](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#ingest_transient_item) - Ingest a transient item
489
+ * [get_library_matches](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_library_matches) - Get library matches
490
+ * [optimize_library](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#optimize_library) - Get Optimize Library
491
+ * [optimize_library_post](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#optimize_library_post) - Optimize Library
492
+ * [optimize_database](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#optimize_database) - Optimize the Database
493
+ * [get_random_artwork](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_random_artwork) - Get random artwork
494
+ * [get_recently_added_global](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_recently_added_global) - Get Global Recently Added
495
+ * [get_library_sections_fallback](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_library_sections_fallback) - Get Library Sections (Fallback)
496
+ * [get_sections](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_sections) - Get library sections (main Media Provider Only)
497
+ * [add_section](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#add_section) - Add a library section
498
+ * [stop_all_refreshes](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#stop_all_refreshes) - Stop refresh
499
+ * [get_sections_prefs](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_sections_prefs) - Get section prefs
500
+ * [refresh_sections_metadata](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#refresh_sections_metadata) - Refresh all sections
501
+ * [get_tags](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_tags) - Get all library tags of a type
502
+ * [upload_art](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#upload_art) - Upload media art Art
503
+ * [get_metadata_children](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_metadata_children) - Get Metadata Children
504
+ * [compute_sonic_path](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#compute_sonic_path) - Compute Sonic Path
505
+ * [get_metadata_grandchildren](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_metadata_grandchildren) - Get Metadata Grandchildren
506
+ * [get_metadata_grandparent](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_metadata_grandparent) - Get Metadata Grandparent
507
+ * [get_nearest_metadata](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_nearest_metadata) - Get Nearest Metadata
508
+ * [get_metadata_on_deck](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_metadata_on_deck) - Get Metadata On Deck
509
+ * [get_metadata_parent](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_metadata_parent) - Get Metadata Parent
510
+ * [upload_poster](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#upload_poster) - Upload media art Poster
511
+ * [get_metadata_reviews](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_metadata_reviews) - Get Metadata Reviews
512
+ * [delete_metadata_item](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#delete_metadata_item) - Delete a metadata item
513
+ * [edit_metadata_item](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#edit_metadata_item) - Edit a metadata item
514
+ * [detect_ads](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#detect_ads) - Ad-detect an item
515
+ * [get_all_item_leaves](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_all_item_leaves) - Get the leaves of an item
516
+ * [analyze_metadata](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#analyze_metadata) - Analyze an item
517
+ * [generate_thumbs](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#generate_thumbs) - Generate thumbs of chapters for an item
518
+ * [detect_credits](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#detect_credits) - Credit detect a metadata item
519
+ * [get_extras](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_extras) - Get an item's extras
520
+ * [add_extras](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#add_extras) - Add to an item's extras
521
+ * [get_file](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_file) - Get a file from a metadata or media bundle
522
+ * [start_bif_generation](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#start_bif_generation) - Start BIF generation of an item
523
+ * [detect_intros](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#detect_intros) - Intro detect an item
524
+ * [create_marker](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#create_marker) - Create a marker
525
+ * [match_item](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#match_item) - Match a metadata item
526
+ * [list_matches](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#list_matches) - Get metadata matches for an item
527
+ * [merge_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#merge_items) - Merge a metadata item
528
+ * [set_item_preferences](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#set_item_preferences) - Set metadata preferences
529
+ * [refresh_items_metadata](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#refresh_items_metadata) - Refresh a metadata item
530
+ * [get_related_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_related_items) - Get related items
531
+ * [list_similar](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#list_similar) - Get similar items
532
+ * [split_item](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#split_item) - Split a metadata item
533
+ * [get_subtitles](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_subtitles) - Get subtitles
534
+ * [get_item_tree](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_item_tree) - Get metadata items as a tree
535
+ * [unmatch](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#unmatch) - Unmatch a metadata item
536
+ * [list_top_users](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#list_top_users) - Get metadata top users
537
+ * [detect_voice_activity](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#detect_voice_activity) - Detect voice activity
538
+ * [get_augmentation_status](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_augmentation_status) - Get augmentation status
539
+ * [set_stream_selection](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#set_stream_selection) - Set stream selection
540
+ * [get_person](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_person) - Get person details
541
+ * [list_person_media](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#list_person_media) - Get media for a person
542
+ * [delete_library_section](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#delete_library_section) - Delete a library section
543
+ * [get_library_details](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_library_details) - Get a library section by id
544
+ * [edit_section](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#edit_section) - Edit a library section
545
+ * [get_section_agents](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_section_agents) - Get Section Agents
546
+ * [update_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#update_items) - Set the fields of the filtered items
547
+ * [start_analysis](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#start_analysis) - Analyze a section
548
+ * [get_section_artists](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_section_artists) - Get Section Artists
549
+ * [autocomplete](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#autocomplete) - Get autocompletions for search
550
+ * [get_by_content_rating](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_by_content_rating) - Get By Content Rating
551
+ * [get_by_decade](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_by_decade) - Get By Decade
552
+ * [get_by_folder](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_by_folder) - Get By Folder
553
+ * [get_by_resolution](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_by_resolution) - Get By Resolution
554
+ * [get_by_year](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_by_year) - Get By Year
555
+ * [get_section_clips](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_section_clips) - Get Section Clips
556
+ * [get_collections](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_collections) - Get collections in a section
557
+ * [get_common](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_common) - Get common fields for items
558
+ * [get_section_edit](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_section_edit) - Edit Section
559
+ * [edit_library_section](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#edit_library_section) - Edit Section
560
+ * [empty_trash](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#empty_trash) - Get Empty Trash
561
+ * [empty_trash_post](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#empty_trash_post) - Empty Trash
562
+ * [empty_trash_put](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#empty_trash_put) - Empty section trash
563
+ * [get_section_episodes](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_section_episodes) - Get Section Episodes
564
+ * [get_section_filters](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_section_filters) - Get section filters
565
+ * [get_first_characters](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_first_characters) - Get list of first characters
566
+ * [get_library_section_hubs](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_library_section_hubs) - Get Section Hubs
567
+ * [delete_indexes](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#delete_indexes) - Delete section indexes
568
+ * [delete_intros](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#delete_intros) - Delete section intro markers
569
+ * [get_section_labels](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_section_labels) - Get Section Labels
570
+ * [match_section_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#match_section_items) - Match Section Items
571
+ * [move_section](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#move_section) - Move Section
572
+ * [get_section_movies](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_section_movies) - Get Section Movies
573
+ * [get_newest_for_section](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_newest_for_section) - Get Newest for Section
574
+ * [get_on_deck_for_section](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_on_deck_for_section) - Get On Deck for Section
575
+ * [optimize_section](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#optimize_section) - Get Optimize Section
576
+ * [optimize_section_post](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#optimize_section_post) - Optimize Section
577
+ * [get_section_photos](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_section_photos) - Get Section Photos
578
+ * [get_section_playlists](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_section_playlists) - Get Section Playlists
579
+ * [get_section_preferences](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_section_preferences) - Get section prefs
580
+ * [set_section_preferences](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#set_section_preferences) - Set section prefs
581
+ * [get_recently_added_for_section](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_recently_added_for_section) - Get Recently Added for Section
582
+ * [cancel_refresh](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#cancel_refresh) - Cancel section refresh
583
+ * [refresh_section](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#refresh_section) - Get Refresh Section
584
+ * [refresh_section_post](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#refresh_section_post) - Refresh Section
585
+ * [search_section](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#search_section) - Search Section
586
+ * [get_section_settings](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_section_settings) - Get Section Settings
587
+ * [get_section_shows](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_section_shows) - Get Section Shows
588
+ * [get_available_sorts](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_available_sorts) - Get a section sorts
589
+ * [get_section_tags](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_section_tags) - Get Section Tags
590
+ * [get_section_timeline](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_section_timeline) - Get Section Timeline
591
+ * [unmatch_section_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#unmatch_section_items) - Unmatch Section Items
592
+ * [get_unwatched_for_section](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_unwatched_for_section) - Get Unwatched for Section
593
+ * [get_stream_levels](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_stream_levels) - Get loudness about a stream in json
594
+ * [get_stream_loudness](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_stream_loudness) - Get loudness about a stream
595
+ * [get_chapter_image](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_chapter_image) - Get a chapter image
596
+ * [set_item_artwork](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#set_item_artwork) - Set an item's artwork, theme, etc
597
+ * [update_item_artwork](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#update_item_artwork) - Set an item's artwork, theme, etc
598
+ * [delete_marker](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#delete_marker) - Delete a marker
599
+ * [edit_marker](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#edit_marker) - Edit a marker
600
+ * [delete_media_item](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#delete_media_item) - Delete a media item
601
+ * [get_part_index](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_part_index) - Get BIF index for a part
602
+ * [delete_collection](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#delete_collection) - Delete a collection
603
+ * [get_section_image](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_section_image) - Get a section composite image
604
+ * [delete_stream](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#delete_stream) - Delete a stream
605
+ * [get_stream](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_stream) - Get a stream
606
+ * [set_stream_offset](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#set_stream_offset) - Set a stream offset
607
+ * [get_item_artwork](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_item_artwork) - Get an item's artwork, theme, etc
608
+ * [get_media_part](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_media_part) - Get a media part
609
+ * [get_image_from_bif](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/library/README.md#get_image_from_bif) - Get an image from part BIF
610
+
611
+ ### [LibraryCollections](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/librarycollections/README.md)
612
+
613
+ * [add_collection_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/librarycollections/README.md#add_collection_items) - Add items to a collection
614
+ * [update_collection_item](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/librarycollections/README.md#update_collection_item) - Update an item in a collection
615
+ * [move_collection_item](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/librarycollections/README.md#move_collection_item) - Reorder an item in the collection
616
+
617
+ ### [LibraryPlaylists](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/libraryplaylists/README.md)
618
+
619
+ * [create_playlist](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/libraryplaylists/README.md#create_playlist) - Create a Playlist
620
+ * [upload_playlist](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/libraryplaylists/README.md#upload_playlist) - Upload media art
621
+ * [delete_playlist](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/libraryplaylists/README.md#delete_playlist) - Delete a Playlist
622
+ * [update_playlist](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/libraryplaylists/README.md#update_playlist) - Editing a Playlist
623
+ * [get_playlist_generators](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/libraryplaylists/README.md#get_playlist_generators) - Get a playlist's generators
624
+ * [clear_playlist_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/libraryplaylists/README.md#clear_playlist_items) - Clearing a playlist
625
+ * [add_playlist_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/libraryplaylists/README.md#add_playlist_items) - Adding to a Playlist
626
+ * [delete_playlist_item](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/libraryplaylists/README.md#delete_playlist_item) - Delete a Generator
627
+ * [get_playlist_generator](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/libraryplaylists/README.md#get_playlist_generator) - Get a playlist generator
628
+ * [modify_playlist_generator](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/libraryplaylists/README.md#modify_playlist_generator) - Modify a Generator
629
+ * [get_playlist_generator_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/libraryplaylists/README.md#get_playlist_generator_items) - Get a playlist generator's items
630
+ * [move_playlist_item](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/libraryplaylists/README.md#move_playlist_item) - Moving items in a playlist
631
+ * [refresh_playlist](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/libraryplaylists/README.md#refresh_playlist) - Reprocess a generator
632
+
633
+ ### [LiveTV](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/livetv/README.md)
634
+
635
+ * [get_dvr_recordings](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/livetv/README.md#get_dvr_recordings) - Get DVR Recordings
636
+ * [get_sessions](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/livetv/README.md#get_sessions) - Get all sessions
637
+ * [get_dvr_recordings_by_dvr](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/livetv/README.md#get_dvr_recordings_by_dvr) - Get DVR Recordings by DVR
638
+ * [delete_live_tv_session](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/livetv/README.md#delete_live_tv_session) - Delete Live TV Session
639
+ * [get_live_tv_session](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/livetv/README.md#get_live_tv_session) - Get a single session
640
+ * [get_session_playlist_index](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/livetv/README.md#get_session_playlist_index) - Get a session playlist index
641
+ * [get_session_segment](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/livetv/README.md#get_session_segment) - Get a single session segment
642
+
643
+ ### [Log](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/log/README.md)
644
+
645
+ * [write_log](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/log/README.md#write_log) - Logging a multi-line message to the Plex Media Server log
646
+ * [write_message](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/log/README.md#write_message) - Logging a single-line message to the Plex Media Server log
647
+ * [enable_papertrail](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/log/README.md#enable_papertrail) - Enabling Papertrail
648
+
649
+ ### [PlayQueue](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playqueue/README.md)
650
+
651
+ * [create_play_queue](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playqueue/README.md#create_play_queue) - Create a play queue
652
+ * [get_play_queue](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playqueue/README.md#get_play_queue) - Retrieve a play queue
653
+ * [add_to_play_queue](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playqueue/README.md#add_to_play_queue) - Add a generator or playlist to a play queue
654
+ * [clear_play_queue](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playqueue/README.md#clear_play_queue) - Clear a play queue
655
+ * [reset_play_queue](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playqueue/README.md#reset_play_queue) - Reset a play queue
656
+ * [shuffle](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playqueue/README.md#shuffle) - Shuffle a play queue
657
+ * [unshuffle](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playqueue/README.md#unshuffle) - Unshuffle a play queue
658
+ * [delete_play_queue_item](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playqueue/README.md#delete_play_queue_item) - Delete an item from a play queue
659
+ * [move_play_queue_item](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playqueue/README.md#move_play_queue_item) - Move an item in a play queue
660
+
661
+ ### [Playback](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md)
662
+
663
+ * [get_progress](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#get_progress) - Get Progress
664
+ * [remove_from_continue_watching](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#remove_from_continue_watching) - Remove From Continue Watching
665
+ * [player_audio_stream](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_audio_stream) - Player Audio Stream
666
+ * [player_mute](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_mute) - Player Mute
667
+ * [player_pause](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_pause) - Player Pause
668
+ * [player_play](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_play) - Player Play
669
+ * [player_play_media](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_play_media) - Player Play Media
670
+ * [player_refreshplayqueue](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_refreshplayqueue) - Player Refresh Play Queue
671
+ * [player_seek](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_seek) - Player Seek
672
+ * [player_set_parameters](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_set_parameters) - Player Set Parameters
673
+ * [player_set_rating](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_set_rating) - Player Set Rating
674
+ * [player_set_state](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_set_state) - Player Set State
675
+ * [player_set_streams](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_set_streams) - Player Set Streams
676
+ * [player_set_text_stream](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_set_text_stream) - Player Set Text Stream
677
+ * [player_set_view_offset](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_set_view_offset) - Player Set View Offset
678
+ * [player_skip_by](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_skip_by) - Player Skip By
679
+ * [player_skip_to](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_skip_to) - Player Skip To
680
+ * [player_stepback](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_stepback) - Player Step Back
681
+ * [player_stepforward](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_stepforward) - Player Step Forward
682
+ * [player_stop](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_stop) - Player Stop
683
+ * [player_subtitle_stream](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_subtitle_stream) - Player Subtitle Stream
684
+ * [player_unmute](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_unmute) - Player Unmute
685
+ * [player_video_stream](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_video_stream) - Player Video Stream
686
+ * [player_volume](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_volume) - Player Volume
687
+ * [get_client_resources](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#get_client_resources) - Get Client Resources
688
+ * [player_poll_timeline](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playback/README.md#player_poll_timeline) - Player Poll Timeline
689
+
690
+ ### [Playlist](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playlist/README.md)
691
+
692
+ * [list_playlists](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playlist/README.md#list_playlists) - List playlists
693
+ * [get_playlist](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playlist/README.md#get_playlist) - Retrieve Playlist
694
+ * [get_playlist_items](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playlist/README.md#get_playlist_items) - Retrieve Playlist Contents
695
+
696
+ ### [Playlists](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playlists/README.md)
697
+
698
+ * [delete_playlist_by_rating_key](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/playlists/README.md#delete_playlist_by_rating_key) - Delete Playlist
699
+
700
+ ### [Plex](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/plex/README.md)
701
+
702
+ * [get_server_resources](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/plex/README.md#get_server_resources) - Get Server Resources
703
+
704
+ ### [Preferences](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/preferences/README.md)
705
+
706
+ * [get_all_preferences](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/preferences/README.md#get_all_preferences) - Get all preferences
707
+ * [set_preferences](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/preferences/README.md#set_preferences) - Set preferences
708
+ * [get_preference](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/preferences/README.md#get_preference) - Get a preferences
709
+
710
+ ### [Provider](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/provider/README.md)
711
+
712
+ * [add_to_watchlist](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/provider/README.md#add_to_watchlist) - Add to Watchlist
713
+ * [remove_from_watchlist](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/provider/README.md#remove_from_watchlist) - Remove from Watchlist
714
+ * [search_discover](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/provider/README.md#search_discover) - Search Discover
715
+ * [get_watchlist](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/provider/README.md#get_watchlist) - Get Watchlist
716
+ * [list_providers](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/provider/README.md#list_providers) - Get the list of available media providers
717
+ * [add_provider](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/provider/README.md#add_provider) - Add a media provider
718
+ * [refresh_providers](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/provider/README.md#refresh_providers) - Refresh media providers
719
+ * [delete_media_provider](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/provider/README.md#delete_media_provider) - Delete a media provider
720
+
721
+ ### [Rate](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/rate/README.md)
722
+
723
+ * [set_rating](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/rate/README.md#set_rating) - Rate an item
724
+
725
+ ### [Search](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/search/README.md)
726
+
727
+ * [search_hubs](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/search/README.md#search_hubs) - Search Hub
728
+ * [voice_search_hubs](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/search/README.md#voice_search_hubs) - Voice Search Hub
729
+
730
+ ### [Status](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/status/README.md)
731
+
732
+ * [list_sessions](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/status/README.md#list_sessions) - List Sessions
733
+ * [get_background_tasks](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/status/README.md#get_background_tasks) - Get background tasks
734
+ * [list_playback_history](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/status/README.md#list_playback_history) - List Playback History
735
+ * [terminate_session](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/status/README.md#terminate_session) - Terminate a session
736
+ * [delete_history](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/status/README.md#delete_history) - Delete Single History Item
737
+ * [get_history_item](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/status/README.md#get_history_item) - Get Single History Item
738
+
739
+ ### [Subscriptions](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/subscriptions/README.md)
740
+
741
+ * [get_all_subscriptions](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/subscriptions/README.md#get_all_subscriptions) - Get all subscriptions
742
+ * [create_subscription](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/subscriptions/README.md#create_subscription) - Create a subscription
743
+ * [process_subscriptions](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/subscriptions/README.md#process_subscriptions) - Process all subscriptions
744
+ * [get_scheduled_recordings](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/subscriptions/README.md#get_scheduled_recordings) - Get all scheduled recordings
745
+ * [get_template](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/subscriptions/README.md#get_template) - Get the subscription template
746
+ * [cancel_grab](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/subscriptions/README.md#cancel_grab) - Cancel an existing grab
747
+ * [delete_subscription](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/subscriptions/README.md#delete_subscription) - Delete a subscription
748
+ * [get_subscription](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/subscriptions/README.md#get_subscription) - Get a single subscription
749
+ * [edit_subscription_preferences](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/subscriptions/README.md#edit_subscription_preferences) - Edit a subscription
750
+ * [reorder_subscription](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/subscriptions/README.md#reorder_subscription) - Re-order a subscription
751
+
752
+ ### [Timeline](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/timeline/README.md)
753
+
754
+ * [mark_played](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/timeline/README.md#mark_played) - Mark an item as played
755
+ * [report](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/timeline/README.md#report) - Report media timeline
756
+ * [unscrobble](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/timeline/README.md#unscrobble) - Mark an item as unplayed
757
+ * [get_conversion_queue](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/timeline/README.md#get_conversion_queue) - Get Conversion Queue
758
+
759
+ ### [Transcoder](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/transcoder/README.md)
760
+
761
+ * [transcode_music](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/transcoder/README.md#transcode_music) - Transcode Music
762
+ * [transcode_image](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/transcoder/README.md#transcode_image) - Transcode an image
763
+ * [get_transcode_sessions](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/transcoder/README.md#get_transcode_sessions) - Get Transcode Sessions
764
+ * [make_decision](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/transcoder/README.md#make_decision) - Make a decision on media playback
765
+ * [trigger_fallback](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/transcoder/README.md#trigger_fallback) - Manually trigger a transcoder fallback
766
+ * [transcode_subtitles](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/transcoder/README.md#transcode_subtitles) - Transcode subtitles
767
+ * [start_transcode_session](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/transcoder/README.md#start_transcode_session) - Start A Transcoding Session
768
+ * [get_dash_segment](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/transcoder/README.md#get_dash_segment) - Get DASH Segment
769
+ * [get_hls_segment](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/transcoder/README.md#get_hls_segment) - Get HLS Segment
770
+
771
+ ### [UltraBlur](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/ultrablur/README.md)
772
+
773
+ * [get_colors](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/ultrablur/README.md#get_colors) - Get UltraBlur Colors
774
+ * [get_image](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/ultrablur/README.md#get_image) - Get UltraBlur Image
775
+
776
+ ### [Updater](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/updater/README.md)
777
+
778
+ * [apply_updates](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/updater/README.md#apply_updates) - Applying updates
779
+ * [check_updates](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/updater/README.md#check_updates) - Checking for updates
780
+ * [get_updates_status](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/updater/README.md#get_updates_status) - Querying status of updates
781
+
782
+ ### [Users](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md)
783
+
784
+ * [get_legacy_resources](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#get_legacy_resources) - Get Legacy Resources
785
+ * [get_legacy_users](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#get_legacy_users) - Get Legacy Users
786
+ * [get_friends](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#get_friends) - Get Friends
787
+ * [get_home](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#get_home) - Get home hubs
788
+ * [get_home_users](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#get_home_users) - Get home hubs Users
789
+ * [create_home_user](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#create_home_user) - Create Home User
790
+ * [get_my_plex_account](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#get_my_plex_account) - Get MyPlex Account
791
+ * [get_user_server](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#get_user_server) - Get User Server Association
792
+ * [get_server_user_features](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#get_server_user_features) - Get Server User Features
793
+ * [share_server](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#share_server) - Share Server
794
+ * [update_view_state_sync](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#update_view_state_sync) - Update View State Sync
795
+ * [get_users](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#get_users) - Get list of all connected users
796
+ * [get_account_xml](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#get_account_xml) - Get Account (XML)
797
+ * [get_account_json](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#get_account_json) - Get Account (JSON)
798
+ * [delete_home_user](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#delete_home_user) - Delete Home User
799
+ * [update_home_user](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#update_home_user) - Update Home User
800
+ * [update_restricted_user](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#update_restricted_user) - Update Restricted User
801
+ * [get_server_details](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#get_server_details) - Get Server Details
802
+ * [share_server_legacy](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#share_server_legacy) - Share Server (Legacy v1)
803
+ * [remove_share](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#remove_share) - Remove Share
804
+ * [update_share](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#update_share) - Update Share
805
+ * [get_user_opt_outs](https://github.com/LukasParke/plexpy/blob/master/./docs/sdks/users/README.md#get_user_opt_outs) - Get User Opt-Outs
806
+
807
+ </details>
808
+ <!-- End Available Resources and Operations [operations] -->
809
+
810
+ <!-- Start File uploads [file-upload] -->
811
+ ## File uploads
812
+
813
+ Certain SDK methods accept file objects as part of a request body or multi-part request. It is possible and typically recommended to upload files as a stream rather than reading the entire contents into memory. This avoids excessive memory consumption and potentially crashing with out-of-memory errors when working with very large files. The following example demonstrates how to attach a file stream to a request.
814
+
815
+ > [!TIP]
816
+ >
817
+ > For endpoints that handle file uploads bytes arrays can also be used. However, using streams is recommended for large files.
818
+ >
819
+
820
+ ```python
821
+ from plex_api_client import PlexAPI
822
+ from plex_api_client.models import components
823
+
824
+
825
+ with PlexAPI(
826
+ accepts=components.Accepts.APPLICATION_XML,
827
+ client_identifier="abc123",
828
+ product="Plex for Roku",
829
+ version="2.4.1",
830
+ platform="Roku",
831
+ platform_version="4.3 build 1057",
832
+ device="Roku 3",
833
+ model="4200X",
834
+ device_vendor="Roku",
835
+ device_name="Living Room TV",
836
+ marketplace="googlePlay",
837
+ token="<YOUR_API_KEY_HERE>",
838
+ ) as plex_api:
839
+
840
+ res = plex_api.library.upload_art(request={
841
+ "id": 996758,
842
+ "request_body": {
843
+ "file": {
844
+ "file_name": "example.file",
845
+ "content": open("example.file", "rb"),
846
+ },
847
+ },
848
+ })
849
+
850
+ assert res.success_response is not None
851
+
852
+ # Handle response
853
+ print(res.success_response)
854
+
855
+ ```
856
+ <!-- End File uploads [file-upload] -->
857
+
858
+ <!-- Start Retries [retries] -->
859
+ ## Retries
860
+
861
+ Some of the endpoints in this SDK support retries. If you use the SDK without any configuration, it will fall back to the default retry strategy provided by the API. However, the default retry strategy can be overridden on a per-operation basis, or across the entire SDK.
862
+
863
+ To change the default retry strategy for a single API call, simply provide a `RetryConfig` object to the call:
864
+ ```python
865
+ from plex_api_client import PlexAPI
866
+ from plex_api_client.models import components
867
+ from plex_api_client.utils import BackoffStrategy, RetryConfig
868
+
869
+
870
+ with PlexAPI(
871
+ accepts=components.Accepts.APPLICATION_XML,
872
+ client_identifier="abc123",
873
+ product="Plex for Roku",
874
+ version="2.4.1",
875
+ platform="Roku",
876
+ platform_version="4.3 build 1057",
877
+ device="Roku 3",
878
+ model="4200X",
879
+ device_vendor="Roku",
880
+ device_name="Living Room TV",
881
+ marketplace="googlePlay",
882
+ token="<YOUR_API_KEY_HERE>",
883
+ ) as plex_api:
884
+
885
+ res = plex_api.general.get_server_info(request={},
886
+ RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False))
887
+
888
+ assert res.object is not None
889
+
890
+ # Handle response
891
+ print(res.object)
892
+
893
+ ```
894
+
895
+ 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:
896
+ ```python
897
+ from plex_api_client import PlexAPI
898
+ from plex_api_client.models import components
899
+ from plex_api_client.utils import BackoffStrategy, RetryConfig
900
+
901
+
902
+ with PlexAPI(
903
+ retry_config=RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False),
904
+ accepts=components.Accepts.APPLICATION_XML,
905
+ client_identifier="abc123",
906
+ product="Plex for Roku",
907
+ version="2.4.1",
908
+ platform="Roku",
909
+ platform_version="4.3 build 1057",
910
+ device="Roku 3",
911
+ model="4200X",
912
+ device_vendor="Roku",
913
+ device_name="Living Room TV",
914
+ marketplace="googlePlay",
915
+ token="<YOUR_API_KEY_HERE>",
916
+ ) as plex_api:
917
+
918
+ res = plex_api.general.get_server_info(request={})
919
+
920
+ assert res.object is not None
921
+
922
+ # Handle response
923
+ print(res.object)
924
+
925
+ ```
926
+ <!-- End Retries [retries] -->
927
+
928
+ <!-- Start Error Handling [errors] -->
929
+ ## Error Handling
930
+
931
+ [`PlexAPIError`](https://github.com/LukasParke/plexpy/blob/master/././src/plex_api_client/models/errors/plexapierror.py) is the base class for all HTTP error responses. It has the following properties:
932
+
933
+ | Property | Type | Description |
934
+ | ------------------ | ---------------- | --------------------------------------------------------------------------------------- |
935
+ | `err.message` | `str` | Error message |
936
+ | `err.status_code` | `int` | HTTP response status code eg `404` |
937
+ | `err.headers` | `httpx.Headers` | HTTP response headers |
938
+ | `err.body` | `str` | HTTP body. Can be empty string if no body is returned. |
939
+ | `err.raw_response` | `httpx.Response` | Raw HTTP response |
940
+ | `err.data` | | Optional. Some errors may contain structured data. [See Error Classes](https://github.com/LukasParke/plexpy/blob/master/./#error-classes). |
941
+
942
+ ### Example
943
+ ```python
944
+ from plex_api_client import PlexAPI
945
+ from plex_api_client.models import components, errors
946
+
947
+
948
+ with PlexAPI(
949
+ accepts=components.Accepts.APPLICATION_XML,
950
+ client_identifier="abc123",
951
+ product="Plex for Roku",
952
+ version="2.4.1",
953
+ platform="Roku",
954
+ platform_version="4.3 build 1057",
955
+ device="Roku 3",
956
+ model="4200X",
957
+ device_vendor="Roku",
958
+ device_name="Living Room TV",
959
+ marketplace="googlePlay",
960
+ token="<YOUR_API_KEY_HERE>",
961
+ ) as plex_api:
962
+ res = None
963
+ try:
964
+
965
+ res = plex_api.general.get_server_info(request={})
966
+
967
+ assert res.object is not None
968
+
969
+ # Handle response
970
+ print(res.object)
971
+
972
+
973
+ except errors.PlexAPIError as e:
974
+ # The base class for HTTP error responses
975
+ print(e.message)
976
+ print(e.status_code)
977
+ print(e.body)
978
+ print(e.headers)
979
+ print(e.raw_response)
980
+
981
+ # Depending on the method different errors may be thrown
982
+ if isinstance(e, errors.Error):
983
+ print(e.data.errors) # Optional[List[errors.Errors]]
984
+ ```
985
+
986
+ ### Error Classes
987
+ **Primary error:**
988
+ * [`PlexAPIError`](https://github.com/LukasParke/plexpy/blob/master/././src/plex_api_client/models/errors/plexapierror.py): The base class for HTTP error responses.
989
+
990
+ <details><summary>Less common errors (8)</summary>
991
+
992
+ <br />
993
+
994
+ **Network errors:**
995
+ * [`httpx.RequestError`](https://www.python-httpx.org/exceptions/#httpx.RequestError): Base class for request errors.
996
+ * [`httpx.ConnectError`](https://www.python-httpx.org/exceptions/#httpx.ConnectError): HTTP client was unable to make a request to a server.
997
+ * [`httpx.TimeoutException`](https://www.python-httpx.org/exceptions/#httpx.TimeoutException): HTTP request timed out.
998
+
999
+
1000
+ **Inherit from [`PlexAPIError`](https://github.com/LukasParke/plexpy/blob/master/././src/plex_api_client/models/errors/plexapierror.py)**:
1001
+ * [`Error`](https://github.com/LukasParke/plexpy/blob/master/././src/plex_api_client/models/errors/error.py): Unauthorized. Status code `401`. Applicable to 276 of 404 methods.*
1002
+ * [`Unauthorized`](https://github.com/LukasParke/plexpy/blob/master/././src/plex_api_client/models/errors/unauthorized.py): Unauthorized - Returned if the X-Plex-Token is missing from the header or query. Status code `401`. Applicable to 4 of 404 methods.*
1003
+ * [`BadRequest`](https://github.com/LukasParke/plexpy/blob/master/././src/plex_api_client/models/errors/badrequest.py): Bad Request - A parameter was not specified, or was specified incorrectly. Status code `400`. Applicable to 3 of 404 methods.*
1004
+ * [`ResponseValidationError`](https://github.com/LukasParke/plexpy/blob/master/././src/plex_api_client/models/errors/responsevalidationerror.py): Type mismatch between the response data and the expected Pydantic model. Provides access to the Pydantic validation error via the `cause` attribute.
1005
+
1006
+ </details>
1007
+
1008
+ \* Check [the method documentation](https://github.com/LukasParke/plexpy/blob/master/./#available-resources-and-operations) to see if the error is applicable.
1009
+ <!-- End Error Handling [errors] -->
1010
+
1011
+ <!-- Start Server Selection [server] -->
1012
+ ## Server Selection
1013
+
1014
+ ### Select Server by Index
1015
+
1016
+ You can override the default server globally by passing a server index to the `server_idx: int` optional parameter when initializing the SDK client instance. The selected server will then be used as the default on the operations that use it. This table lists the indexes associated with the available servers:
1017
+
1018
+ | # | Server | Variables | Description |
1019
+ | --- | ---------------------------------------------------------- | -------------------------------------------- | ----------- |
1020
+ | 0 | `https://{IP-description}.{identifier}.plex.direct:{port}` | `identifier`<br/>`IP-description`<br/>`port` | |
1021
+ | 1 | `{protocol}://{host}:{port}` | `host`<br/>`port`<br/>`protocol` | |
1022
+ | 2 | `https://{full_server_url}` | `full_server_url` | |
1023
+
1024
+ If the selected server has variables, you may override its default values through the additional parameters made available in the SDK constructor:
1025
+
1026
+ | Variable | Parameter | Default | Description |
1027
+ | ----------------- | ---------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
1028
+ | `identifier` | `identifier: str` | `"0123456789abcdef0123456789abcdef"` | The unique identifier of this particular PMS |
1029
+ | `IP-description` | `ip_description: str` | `"1-2-3-4"` | A `-` separated string of the IPv4 or IPv6 address components |
1030
+ | `port` | `port: str` | `"32400"` | The Port number configured on the PMS. Typically (`32400`). <br/>If using a reverse proxy, this would be the port number configured on the proxy. |
1031
+ | `host` | `host: str` | `"localhost"` | The Host of the PMS.<br/>If using on a local network, this is the internal IP address of the server hosting the PMS.<br/>If using on an external network, this is the external IP address for your network, and requires port forwarding.<br/>If using a reverse proxy, this would be the external DNS domain for your network, and requires the proxy handle port forwarding. |
1032
+ | `protocol` | `protocol: str` | `"http"` | The network protocol to use. Typically (`http` or `https`) |
1033
+ | `full_server_url` | `full_server_url: str` | `"http://localhost:32400"` | The full manual URL to access the PMS |
1034
+
1035
+ #### Example
1036
+
1037
+ ```python
1038
+ from plex_api_client import PlexAPI
1039
+ from plex_api_client.models import components
1040
+
1041
+
1042
+ with PlexAPI(
1043
+ server_idx=0,
1044
+ identifier="0123456789abcdef0123456789abcdef",
1045
+ ip_description="1-2-3-4",
1046
+ port="32400",
1047
+ accepts=components.Accepts.APPLICATION_XML,
1048
+ client_identifier="abc123",
1049
+ product="Plex for Roku",
1050
+ version="2.4.1",
1051
+ platform="Roku",
1052
+ platform_version="4.3 build 1057",
1053
+ device="Roku 3",
1054
+ model="4200X",
1055
+ device_vendor="Roku",
1056
+ device_name="Living Room TV",
1057
+ marketplace="googlePlay",
1058
+ token="<YOUR_API_KEY_HERE>",
1059
+ ) as plex_api:
1060
+
1061
+ res = plex_api.general.get_server_info(request={})
1062
+
1063
+ assert res.object is not None
1064
+
1065
+ # Handle response
1066
+ print(res.object)
1067
+
1068
+ ```
1069
+
1070
+ ### Override Server URL Per-Client
1071
+
1072
+ The default server can also be overridden globally by passing a URL to the `server_url: str` optional parameter when initializing the SDK client instance. For example:
1073
+ ```python
1074
+ from plex_api_client import PlexAPI
1075
+ from plex_api_client.models import components
1076
+
1077
+
1078
+ with PlexAPI(
1079
+ server_url="https://http://localhost:32400",
1080
+ accepts=components.Accepts.APPLICATION_XML,
1081
+ client_identifier="abc123",
1082
+ product="Plex for Roku",
1083
+ version="2.4.1",
1084
+ platform="Roku",
1085
+ platform_version="4.3 build 1057",
1086
+ device="Roku 3",
1087
+ model="4200X",
1088
+ device_vendor="Roku",
1089
+ device_name="Living Room TV",
1090
+ marketplace="googlePlay",
1091
+ token="<YOUR_API_KEY_HERE>",
1092
+ ) as plex_api:
1093
+
1094
+ res = plex_api.general.get_server_info(request={})
1095
+
1096
+ assert res.object is not None
1097
+
1098
+ # Handle response
1099
+ print(res.object)
1100
+
1101
+ ```
1102
+
1103
+ ### Override Server URL Per-Operation
1104
+
1105
+ The server URL can also be overridden on a per-operation basis, provided a server list was specified for the operation. For example:
1106
+ ```python
1107
+ from plex_api_client import PlexAPI
1108
+
1109
+
1110
+ with PlexAPI(
1111
+ token="<YOUR_API_KEY_HERE>",
1112
+ ) as plex_api:
1113
+
1114
+ res = plex_api.general.get_user_webhooks(server_url="https://plex.tv/api/v2")
1115
+
1116
+ assert res.webhook_payload is not None
1117
+
1118
+ # Handle response
1119
+ print(res.webhook_payload)
1120
+
1121
+ ```
1122
+ <!-- End Server Selection [server] -->
1123
+
1124
+ <!-- Start Custom HTTP Client [http-client] -->
1125
+ ## Custom HTTP Client
1126
+
1127
+ The Python SDK makes API calls using the [httpx](https://www.python-httpx.org/) HTTP library. In order to provide a convenient way to configure timeouts, cookies, proxies, custom headers, and other low-level configuration, you can initialize the SDK client with your own HTTP client instance.
1128
+ Depending on whether you are using the sync or async version of the SDK, you can pass an instance of `HttpClient` or `AsyncHttpClient` respectively, which are Protocol's ensuring that the client has the necessary methods to make API calls.
1129
+ This allows you to wrap the client with your own custom logic, such as adding custom headers, logging, or error handling, or you can just pass an instance of `httpx.Client` or `httpx.AsyncClient` directly.
1130
+
1131
+ For example, you could specify a header for every request that this sdk makes as follows:
1132
+ ```python
1133
+ from plex_api_client import PlexAPI
1134
+ import httpx
1135
+
1136
+ http_client = httpx.Client(headers={"x-custom-header": "someValue"})
1137
+ s = PlexAPI(client=http_client)
1138
+ ```
1139
+
1140
+ or you could wrap the client with your own custom logic:
1141
+ ```python
1142
+ from plex_api_client import PlexAPI
1143
+ from plex_api_client.httpclient import AsyncHttpClient
1144
+ import httpx
1145
+
1146
+ class CustomClient(AsyncHttpClient):
1147
+ client: AsyncHttpClient
1148
+
1149
+ def __init__(self, client: AsyncHttpClient):
1150
+ self.client = client
1151
+
1152
+ async def send(
1153
+ self,
1154
+ request: httpx.Request,
1155
+ *,
1156
+ stream: bool = False,
1157
+ auth: Union[
1158
+ httpx._types.AuthTypes, httpx._client.UseClientDefault, None
1159
+ ] = httpx.USE_CLIENT_DEFAULT,
1160
+ follow_redirects: Union[
1161
+ bool, httpx._client.UseClientDefault
1162
+ ] = httpx.USE_CLIENT_DEFAULT,
1163
+ ) -> httpx.Response:
1164
+ request.headers["Client-Level-Header"] = "added by client"
1165
+
1166
+ return await self.client.send(
1167
+ request, stream=stream, auth=auth, follow_redirects=follow_redirects
1168
+ )
1169
+
1170
+ def build_request(
1171
+ self,
1172
+ method: str,
1173
+ url: httpx._types.URLTypes,
1174
+ *,
1175
+ content: Optional[httpx._types.RequestContent] = None,
1176
+ data: Optional[httpx._types.RequestData] = None,
1177
+ files: Optional[httpx._types.RequestFiles] = None,
1178
+ json: Optional[Any] = None,
1179
+ params: Optional[httpx._types.QueryParamTypes] = None,
1180
+ headers: Optional[httpx._types.HeaderTypes] = None,
1181
+ cookies: Optional[httpx._types.CookieTypes] = None,
1182
+ timeout: Union[
1183
+ httpx._types.TimeoutTypes, httpx._client.UseClientDefault
1184
+ ] = httpx.USE_CLIENT_DEFAULT,
1185
+ extensions: Optional[httpx._types.RequestExtensions] = None,
1186
+ ) -> httpx.Request:
1187
+ return self.client.build_request(
1188
+ method,
1189
+ url,
1190
+ content=content,
1191
+ data=data,
1192
+ files=files,
1193
+ json=json,
1194
+ params=params,
1195
+ headers=headers,
1196
+ cookies=cookies,
1197
+ timeout=timeout,
1198
+ extensions=extensions,
1199
+ )
1200
+
1201
+ s = PlexAPI(async_client=CustomClient(httpx.AsyncClient()))
1202
+ ```
1203
+ <!-- End Custom HTTP Client [http-client] -->
1204
+
1205
+ <!-- Start Authentication [security] -->
1206
+ ## Authentication
1207
+
1208
+ ### Per-Client Security Schemes
1209
+
1210
+ This SDK supports the following security scheme globally:
1211
+
1212
+ | Name | Type | Scheme |
1213
+ | ------- | ------ | ------- |
1214
+ | `token` | apiKey | API key |
1215
+
1216
+ To authenticate with the API the `token` parameter must be set when initializing the SDK client instance. For example:
1217
+ ```python
1218
+ from plex_api_client import PlexAPI
1219
+ from plex_api_client.models import components
1220
+
1221
+
1222
+ with PlexAPI(
1223
+ token="<YOUR_API_KEY_HERE>",
1224
+ accepts=components.Accepts.APPLICATION_XML,
1225
+ client_identifier="abc123",
1226
+ product="Plex for Roku",
1227
+ version="2.4.1",
1228
+ platform="Roku",
1229
+ platform_version="4.3 build 1057",
1230
+ device="Roku 3",
1231
+ model="4200X",
1232
+ device_vendor="Roku",
1233
+ device_name="Living Room TV",
1234
+ marketplace="googlePlay",
1235
+ ) as plex_api:
1236
+
1237
+ res = plex_api.general.get_server_info(request={})
1238
+
1239
+ assert res.object is not None
1240
+
1241
+ # Handle response
1242
+ print(res.object)
1243
+
1244
+ ```
1245
+
1246
+ ### Per-Operation Security Schemes
1247
+
1248
+ Some operations in this SDK require the security scheme to be specified at the request level. For example:
1249
+ ```python
1250
+ from plex_api_client import PlexAPI
1251
+ from plex_api_client.models import components, operations
1252
+
1253
+
1254
+ with PlexAPI(
1255
+ accepts=components.Accepts.APPLICATION_XML,
1256
+ client_identifier="abc123",
1257
+ product="Plex for Roku",
1258
+ version="2.4.1",
1259
+ platform="Roku",
1260
+ platform_version="4.3 build 1057",
1261
+ device="Roku 3",
1262
+ model="4200X",
1263
+ device_vendor="Roku",
1264
+ device_name="Living Room TV",
1265
+ marketplace="googlePlay",
1266
+ ) as plex_api:
1267
+
1268
+ res = plex_api.authentication.create_o_auth_pin(security=operations.CreateOAuthPinSecurity(
1269
+ client_identifier="<YOUR_API_KEY_HERE>",
1270
+ ), request={})
1271
+
1272
+ assert res.object is not None
1273
+
1274
+ # Handle response
1275
+ print(res.object)
1276
+
1277
+ ```
1278
+ <!-- End Authentication [security] -->
1279
+
1280
+ <!-- Start Resource Management [resource-management] -->
1281
+ ## Resource Management
1282
+
1283
+ The `PlexAPI` class implements the context manager protocol and registers a finalizer function to close the underlying sync and async HTTPX clients it uses under the hood. This will close HTTP connections, release memory and free up other resources held by the SDK. In short-lived Python programs and notebooks that make a few SDK method calls, resource management may not be a concern. However, in longer-lived programs, it is beneficial to create a single SDK instance via a [context manager][context-manager] and reuse it across the application.
1284
+
1285
+ [context-manager]: https://docs.python.org/3/reference/datamodel.html#context-managers
1286
+
1287
+ ```python
1288
+ from plex_api_client import PlexAPI
1289
+ from plex_api_client.models import components
1290
+ def main():
1291
+
1292
+ with PlexAPI(
1293
+ accepts=components.Accepts.APPLICATION_XML,
1294
+ client_identifier="abc123",
1295
+ product="Plex for Roku",
1296
+ version="2.4.1",
1297
+ platform="Roku",
1298
+ platform_version="4.3 build 1057",
1299
+ device="Roku 3",
1300
+ model="4200X",
1301
+ device_vendor="Roku",
1302
+ device_name="Living Room TV",
1303
+ marketplace="googlePlay",
1304
+ token="<YOUR_API_KEY_HERE>",
1305
+ ) as plex_api:
1306
+ # Rest of application here...
1307
+
1308
+
1309
+ # Or when using async:
1310
+ async def amain():
1311
+
1312
+ async with PlexAPI(
1313
+ accepts=components.Accepts.APPLICATION_XML,
1314
+ client_identifier="abc123",
1315
+ product="Plex for Roku",
1316
+ version="2.4.1",
1317
+ platform="Roku",
1318
+ platform_version="4.3 build 1057",
1319
+ device="Roku 3",
1320
+ model="4200X",
1321
+ device_vendor="Roku",
1322
+ device_name="Living Room TV",
1323
+ marketplace="googlePlay",
1324
+ token="<YOUR_API_KEY_HERE>",
1325
+ ) as plex_api:
1326
+ # Rest of application here...
1327
+ ```
1328
+ <!-- End Resource Management [resource-management] -->
1329
+
1330
+ <!-- Start Debugging [debug] -->
1331
+ ## Debugging
1332
+
1333
+ You can setup your SDK to emit debug logs for SDK requests and responses.
1334
+
1335
+ You can pass your own logger class directly into your SDK.
1336
+ ```python
1337
+ from plex_api_client import PlexAPI
1338
+ import logging
1339
+
1340
+ logging.basicConfig(level=logging.DEBUG)
1341
+ s = PlexAPI(debug_logger=logging.getLogger("plex_api_client"))
1342
+ ```
1343
+ <!-- End Debugging [debug] -->
1344
+
1345
+ <!-- Placeholder for Future Speakeasy SDK Sections -->
1346
+
1347
+ # Development
1348
+
1349
+ ## Maturity
1350
+
1351
+ This SDK is in beta, and there may be breaking changes between versions without a major version update. Therefore, we recommend pinning usage
1352
+ to a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally
1353
+ looking for the latest version.
1354
+
1355
+ ## Contributions
1356
+
1357
+ While we value open-source contributions to this SDK, this library is generated programmatically.
1358
+ Feel free to open a PR or a Github issue as a proof of concept and we'll do our best to include it in a future release!
1359
+
1360
+ ### SDK Created by [Speakeasy](https://docs.speakeasyapi.dev/docs/using-speakeasy/client-sdks)
1361
+