plex-api-client 0.34.2__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 (849) 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/basesdk.py +393 -0
  9. plex_api_client-0.35.0/src/plex_api_client/butler.py +1035 -0
  10. plex_api_client-0.35.0/src/plex_api_client/collections.py +235 -0
  11. plex_api_client-0.35.0/src/plex_api_client/content.py +2977 -0
  12. plex_api_client-0.35.0/src/plex_api_client/devices.py +2983 -0
  13. plex_api_client-0.35.0/src/plex_api_client/download_queue.py +2059 -0
  14. plex_api_client-0.35.0/src/plex_api_client/dvrs.py +3717 -0
  15. plex_api_client-0.35.0/src/plex_api_client/epg.py +2367 -0
  16. plex_api_client-0.35.0/src/plex_api_client/events.py +732 -0
  17. plex_api_client-0.35.0/src/plex_api_client/general.py +8207 -0
  18. plex_api_client-0.35.0/src/plex_api_client/hubs.py +3633 -0
  19. plex_api_client-0.35.0/src/plex_api_client/library.py +28884 -0
  20. plex_api_client-0.35.0/src/plex_api_client/library_collections.py +697 -0
  21. plex_api_client-0.35.0/src/plex_api_client/library_playlists.py +2881 -0
  22. plex_api_client-0.35.0/src/plex_api_client/live_tv.py +1607 -0
  23. plex_api_client-0.35.0/src/plex_api_client/log.py +660 -0
  24. plex_api_client-0.35.0/src/plex_api_client/models/components/__init__.py +1366 -0
  25. plex_api_client-0.35.0/src/plex_api_client/models/components/activity.py +110 -0
  26. plex_api_client-0.35.0/src/plex_api_client/models/components/addedqueueitem.py +38 -0
  27. plex_api_client-0.35.0/src/plex_api_client/models/components/authkeysresponse.py +70 -0
  28. plex_api_client-0.35.0/src/plex_api_client/models/components/authnonceresponse.py +33 -0
  29. plex_api_client-0.35.0/src/plex_api_client/models/components/authtokenresponse.py +50 -0
  30. plex_api_client-0.35.0/src/plex_api_client/models/components/bandwidth.py +43 -0
  31. plex_api_client-0.35.0/src/plex_api_client/models/components/butlertask.py +76 -0
  32. plex_api_client-0.35.0/src/plex_api_client/models/components/channel.py +98 -0
  33. plex_api_client-0.35.0/src/plex_api_client/models/components/channelresponse.py +95 -0
  34. plex_api_client-0.35.0/src/plex_api_client/models/components/claimtokenresponse.py +33 -0
  35. plex_api_client-0.35.0/src/plex_api_client/models/components/cloudserverresponse.py +40 -0
  36. plex_api_client-0.35.0/src/plex_api_client/models/components/collection.py +109 -0
  37. plex_api_client-0.35.0/src/plex_api_client/models/components/connection.py +50 -0
  38. plex_api_client-0.35.0/src/plex_api_client/models/components/connectioninfo.py +52 -0
  39. plex_api_client-0.35.0/src/plex_api_client/models/components/decisionresult.py +98 -0
  40. plex_api_client-0.35.0/src/plex_api_client/models/components/device.py +149 -0
  41. plex_api_client-0.35.0/src/plex_api_client/models/components/devicechannel.py +76 -0
  42. plex_api_client-0.35.0/src/plex_api_client/models/components/downloadqueue.py +75 -0
  43. plex_api_client-0.35.0/src/plex_api_client/models/components/downloadqueueitem.py +125 -0
  44. plex_api_client-0.35.0/src/plex_api_client/models/components/dvr.py +51 -0
  45. plex_api_client-0.35.0/src/plex_api_client/models/components/dvrrequesthandler_slash_get_responses_200.py +142 -0
  46. plex_api_client-0.35.0/src/plex_api_client/models/components/dvrresponse.py +131 -0
  47. plex_api_client-0.35.0/src/plex_api_client/models/components/epgcountry.py +98 -0
  48. plex_api_client-0.35.0/src/plex_api_client/models/components/epglanguage.py +36 -0
  49. plex_api_client-0.35.0/src/plex_api_client/models/components/epgregion.py +40 -0
  50. plex_api_client-0.35.0/src/plex_api_client/models/components/feature.py +47 -0
  51. plex_api_client-0.35.0/src/plex_api_client/models/components/geoipresponse.py +55 -0
  52. plex_api_client-0.35.0/src/plex_api_client/models/components/get_responses_200.py +99 -0
  53. plex_api_client-0.35.0/src/plex_api_client/models/components/historyall_get_responses_200.py +105 -0
  54. plex_api_client-0.35.0/src/plex_api_client/models/components/hub.py +153 -0
  55. plex_api_client-0.35.0/src/plex_api_client/models/components/ipresponse.py +33 -0
  56. plex_api_client-0.35.0/src/plex_api_client/models/components/items.py +653 -0
  57. plex_api_client-0.35.0/src/plex_api_client/models/components/jwkregistrationrequest.py +75 -0
  58. plex_api_client-0.35.0/src/plex_api_client/models/components/legacypinresponse.py +54 -0
  59. plex_api_client-0.35.0/src/plex_api_client/models/components/level.py +33 -0
  60. plex_api_client-0.35.0/src/plex_api_client/models/components/librarysection.py +193 -0
  61. plex_api_client-0.35.0/src/plex_api_client/models/components/librarysections.py +404 -0
  62. plex_api_client-0.35.0/src/plex_api_client/models/components/lineup.py +100 -0
  63. plex_api_client-0.35.0/src/plex_api_client/models/components/managedhub.py +140 -0
  64. plex_api_client-0.35.0/src/plex_api_client/models/components/media.py +183 -0
  65. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainer.py +61 -0
  66. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithartwork.py +153 -0
  67. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithdecision.py +1775 -0
  68. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithdevice.py +96 -0
  69. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithdirectory.py +100 -0
  70. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithdirectory1.py +83 -0
  71. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithhubs.py +96 -0
  72. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithlineup.py +103 -0
  73. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithmediagraboperation.py +102 -0
  74. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithmetadata.py +102 -0
  75. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithnestedmetadata.py +758 -0
  76. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithplaylistmetadata.py +800 -0
  77. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithplayqueue.py +114 -0
  78. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithsettings.py +96 -0
  79. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithsorts.py +98 -0
  80. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithstatus.py +97 -0
  81. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithsubscription.py +100 -0
  82. plex_api_client-0.35.0/src/plex_api_client/models/components/mediacontainerwithtags.py +98 -0
  83. plex_api_client-0.35.0/src/plex_api_client/models/components/mediagrabber.py +37 -0
  84. plex_api_client-0.35.0/src/plex_api_client/models/components/mediagraboperation.py +117 -0
  85. plex_api_client-0.35.0/src/plex_api_client/models/components/mediaquery.py +94 -0
  86. plex_api_client-0.35.0/src/plex_api_client/models/components/mediatype.py +31 -0
  87. plex_api_client-0.35.0/src/plex_api_client/models/components/metadata.py +645 -0
  88. plex_api_client-0.35.0/src/plex_api_client/models/components/notificationcontainer.py +71 -0
  89. plex_api_client-0.35.0/src/plex_api_client/models/components/part.py +171 -0
  90. plex_api_client-0.35.0/src/plex_api_client/models/components/playbackhistorymetadata.py +142 -0
  91. plex_api_client-0.35.0/src/plex_api_client/models/components/playqueueresponse.py +108 -0
  92. plex_api_client-0.35.0/src/plex_api_client/models/components/playsessionstatenotification.py +86 -0
  93. plex_api_client-0.35.0/src/plex_api_client/models/components/plexdevice.py +187 -0
  94. plex_api_client-0.35.0/src/plex_api_client/models/components/plexdownloadsresponse.py +75 -0
  95. plex_api_client-0.35.0/src/plex_api_client/models/components/post_responses_200.py +155 -0
  96. plex_api_client-0.35.0/src/plex_api_client/models/components/progressresponse.py +72 -0
  97. plex_api_client-0.35.0/src/plex_api_client/models/components/provider.py +59 -0
  98. plex_api_client-0.35.0/src/plex_api_client/models/components/reachabilitynotification.py +35 -0
  99. plex_api_client-0.35.0/src/plex_api_client/models/components/release.py +115 -0
  100. plex_api_client-0.35.0/src/plex_api_client/models/components/serveraccesstokensresponse.py +74 -0
  101. plex_api_client-0.35.0/src/plex_api_client/models/components/serverconfiguration.py +332 -0
  102. plex_api_client-0.35.0/src/plex_api_client/models/components/serveruserfeaturesresponse.py +32 -0
  103. plex_api_client-0.35.0/src/plex_api_client/models/components/session.py +100 -0
  104. plex_api_client-0.35.0/src/plex_api_client/models/components/statusnotification.py +41 -0
  105. plex_api_client-0.35.0/src/plex_api_client/models/components/stream.py +552 -0
  106. plex_api_client-0.35.0/src/plex_api_client/models/components/successresponse.py +35 -0
  107. plex_api_client-0.35.0/src/plex_api_client/models/components/timelineentry.py +52 -0
  108. plex_api_client-0.35.0/src/plex_api_client/models/components/tokenexchangerequest.py +52 -0
  109. plex_api_client-0.35.0/src/plex_api_client/models/components/topuseraccount.py +43 -0
  110. plex_api_client-0.35.0/src/plex_api_client/models/components/transcodejob.py +95 -0
  111. plex_api_client-0.35.0/src/plex_api_client/models/components/ultrablurcolors.py +55 -0
  112. plex_api_client-0.35.0/src/plex_api_client/models/components/useroptoutsresponse.py +68 -0
  113. plex_api_client-0.35.0/src/plex_api_client/models/components/userplexaccount.py +572 -0
  114. plex_api_client-0.35.0/src/plex_api_client/models/components/userprofile.py +199 -0
  115. plex_api_client-0.35.0/src/plex_api_client/models/components/webhookpayload.py +188 -0
  116. plex_api_client-0.35.0/src/plex_api_client/models/errors/__init__.py +71 -0
  117. plex_api_client-0.35.0/src/plex_api_client/models/errors/badrequest.py +59 -0
  118. plex_api_client-0.35.0/src/plex_api_client/models/errors/error.py +58 -0
  119. plex_api_client-0.35.0/src/plex_api_client/models/errors/unauthorized.py +59 -0
  120. plex_api_client-0.35.0/src/plex_api_client/models/operations/__init__.py +8902 -0
  121. plex_api_client-0.35.0/src/plex_api_client/models/operations/adddevicetodvr.py +470 -0
  122. plex_api_client-0.35.0/src/plex_api_client/models/operations/adddownloadqueueitems.py +700 -0
  123. plex_api_client-0.35.0/src/plex_api_client/models/operations/addextras.py +335 -0
  124. plex_api_client-0.35.0/src/plex_api_client/models/operations/addlineup.py +345 -0
  125. plex_api_client-0.35.0/src/plex_api_client/models/operations/addplaylistitems.py +358 -0
  126. plex_api_client-0.35.0/src/plex_api_client/models/operations/addsection.py +420 -0
  127. plex_api_client-0.35.0/src/plex_api_client/models/operations/addtoplayqueue.py +368 -0
  128. plex_api_client-0.35.0/src/plex_api_client/models/operations/addtowatchlist.py +333 -0
  129. plex_api_client-0.35.0/src/plex_api_client/models/operations/adduserwebhook.py +326 -0
  130. plex_api_client-0.35.0/src/plex_api_client/models/operations/addwebhook.py +326 -0
  131. plex_api_client-0.35.0/src/plex_api_client/models/operations/analyzemetadata.py +329 -0
  132. plex_api_client-0.35.0/src/plex_api_client/models/operations/applyupdates.py +337 -0
  133. plex_api_client-0.35.0/src/plex_api_client/models/operations/autocomplete.py +405 -0
  134. plex_api_client-0.35.0/src/plex_api_client/models/operations/browsefilesystem.py +336 -0
  135. plex_api_client-0.35.0/src/plex_api_client/models/operations/browsefilesystempath.py +332 -0
  136. plex_api_client-0.35.0/src/plex_api_client/models/operations/changepassword.py +326 -0
  137. plex_api_client-0.35.0/src/plex_api_client/models/operations/checkforsystemupdates.py +321 -0
  138. plex_api_client-0.35.0/src/plex_api_client/models/operations/claimserver.py +325 -0
  139. plex_api_client-0.35.0/src/plex_api_client/models/operations/clearplaylistitems.py +334 -0
  140. plex_api_client-0.35.0/src/plex_api_client/models/operations/computechannelmap.py +480 -0
  141. plex_api_client-0.35.0/src/plex_api_client/models/operations/computesonicpath.py +332 -0
  142. plex_api_client-0.35.0/src/plex_api_client/models/operations/connectwebsocket.py +340 -0
  143. plex_api_client-0.35.0/src/plex_api_client/models/operations/createcollection.py +393 -0
  144. plex_api_client-0.35.0/src/plex_api_client/models/operations/createdownloadqueue.py +147 -0
  145. plex_api_client-0.35.0/src/plex_api_client/models/operations/createdvr.py +356 -0
  146. plex_api_client-0.35.0/src/plex_api_client/models/operations/createhomeuser.py +326 -0
  147. plex_api_client-0.35.0/src/plex_api_client/models/operations/createlegacypin.py +52 -0
  148. plex_api_client-0.35.0/src/plex_api_client/models/operations/createmarker.py +522 -0
  149. plex_api_client-0.35.0/src/plex_api_client/models/operations/createoauthpin.py +440 -0
  150. plex_api_client-0.35.0/src/plex_api_client/models/operations/createplayqueue.py +431 -0
  151. plex_api_client-0.35.0/src/plex_api_client/models/operations/createsubscription.py +515 -0
  152. plex_api_client-0.35.0/src/plex_api_client/models/operations/createtransienttoken.py +440 -0
  153. plex_api_client-0.35.0/src/plex_api_client/models/operations/deletehomeuser.py +335 -0
  154. plex_api_client-0.35.0/src/plex_api_client/models/operations/deletelineup.py +345 -0
  155. plex_api_client-0.35.0/src/plex_api_client/models/operations/deletelivetvsession.py +330 -0
  156. plex_api_client-0.35.0/src/plex_api_client/models/operations/deletemarker.py +311 -0
  157. plex_api_client-0.35.0/src/plex_api_client/models/operations/deletemediaitem.py +330 -0
  158. plex_api_client-0.35.0/src/plex_api_client/models/operations/deletemetadataitem.py +321 -0
  159. plex_api_client-0.35.0/src/plex_api_client/models/operations/deleteplaylistbyratingkey.py +330 -0
  160. plex_api_client-0.35.0/src/plex_api_client/models/operations/deleteplaylistitem.py +343 -0
  161. plex_api_client-0.35.0/src/plex_api_client/models/operations/deleteplayqueueitem.py +343 -0
  162. plex_api_client-0.35.0/src/plex_api_client/models/operations/deletesubscription.py +306 -0
  163. plex_api_client-0.35.0/src/plex_api_client/models/operations/detectads.py +304 -0
  164. plex_api_client-0.35.0/src/plex_api_client/models/operations/detectcredits.py +330 -0
  165. plex_api_client-0.35.0/src/plex_api_client/models/operations/detectintros.py +330 -0
  166. plex_api_client-0.35.0/src/plex_api_client/models/operations/detectvoiceactivity.py +330 -0
  167. plex_api_client-0.35.0/src/plex_api_client/models/operations/discoverdevices.py +105 -0
  168. plex_api_client-0.35.0/src/plex_api_client/models/operations/downloaddatabasediagnostics.py +321 -0
  169. plex_api_client-0.35.0/src/plex_api_client/models/operations/downloadlogbundle.py +318 -0
  170. plex_api_client-0.35.0/src/plex_api_client/models/operations/editlibrarysection.py +330 -0
  171. plex_api_client-0.35.0/src/plex_api_client/models/operations/editmarker.py +387 -0
  172. plex_api_client-0.35.0/src/plex_api_client/models/operations/editmetadataitem.py +326 -0
  173. plex_api_client-0.35.0/src/plex_api_client/models/operations/editsubscriptionpreferences.py +356 -0
  174. plex_api_client-0.35.0/src/plex_api_client/models/operations/emptytrash.py +330 -0
  175. plex_api_client-0.35.0/src/plex_api_client/models/operations/emptytrashpost.py +330 -0
  176. plex_api_client-0.35.0/src/plex_api_client/models/operations/emptytrashput.py +306 -0
  177. plex_api_client-0.35.0/src/plex_api_client/models/operations/exchangejwttoken.py +338 -0
  178. plex_api_client-0.35.0/src/plex_api_client/models/operations/generatethumbs.py +321 -0
  179. plex_api_client-0.35.0/src/plex_api_client/models/operations/getaccountjson.py +326 -0
  180. plex_api_client-0.35.0/src/plex_api_client/models/operations/getaccountxml.py +321 -0
  181. plex_api_client-0.35.0/src/plex_api_client/models/operations/getallhubs.py +357 -0
  182. plex_api_client-0.35.0/src/plex_api_client/models/operations/getallitemleaves.py +335 -0
  183. plex_api_client-0.35.0/src/plex_api_client/models/operations/getalllanguages.py +147 -0
  184. plex_api_client-0.35.0/src/plex_api_client/models/operations/getallsubscriptions.py +369 -0
  185. plex_api_client-0.35.0/src/plex_api_client/models/operations/getauthkeys.py +328 -0
  186. plex_api_client-0.35.0/src/plex_api_client/models/operations/getauthnonce.py +328 -0
  187. plex_api_client-0.35.0/src/plex_api_client/models/operations/getavailablegrabbers.py +429 -0
  188. plex_api_client-0.35.0/src/plex_api_client/models/operations/getavailablesorts.py +334 -0
  189. plex_api_client-0.35.0/src/plex_api_client/models/operations/getbackgroundtasks.py +147 -0
  190. plex_api_client-0.35.0/src/plex_api_client/models/operations/getbandwidthstatistics.py +364 -0
  191. plex_api_client-0.35.0/src/plex_api_client/models/operations/getbycontentrating.py +334 -0
  192. plex_api_client-0.35.0/src/plex_api_client/models/operations/getbydecade.py +334 -0
  193. plex_api_client-0.35.0/src/plex_api_client/models/operations/getbyfolder.py +334 -0
  194. plex_api_client-0.35.0/src/plex_api_client/models/operations/getbyresolution.py +334 -0
  195. plex_api_client-0.35.0/src/plex_api_client/models/operations/getbyyear.py +334 -0
  196. plex_api_client-0.35.0/src/plex_api_client/models/operations/getchannels.py +331 -0
  197. plex_api_client-0.35.0/src/plex_api_client/models/operations/getclaimtoken.py +330 -0
  198. plex_api_client-0.35.0/src/plex_api_client/models/operations/getclientresources.py +335 -0
  199. plex_api_client-0.35.0/src/plex_api_client/models/operations/getclients.py +379 -0
  200. plex_api_client-0.35.0/src/plex_api_client/models/operations/getcloudserver.py +330 -0
  201. plex_api_client-0.35.0/src/plex_api_client/models/operations/getcollections.py +385 -0
  202. plex_api_client-0.35.0/src/plex_api_client/models/operations/getcolors.py +427 -0
  203. plex_api_client-0.35.0/src/plex_api_client/models/operations/getcommon.py +395 -0
  204. plex_api_client-0.35.0/src/plex_api_client/models/operations/getcontinuewatching.py +337 -0
  205. plex_api_client-0.35.0/src/plex_api_client/models/operations/getcontinuewatchingitems.py +325 -0
  206. plex_api_client-0.35.0/src/plex_api_client/models/operations/getconversionqueue.py +325 -0
  207. plex_api_client-0.35.0/src/plex_api_client/models/operations/getcountries.py +147 -0
  208. plex_api_client-0.35.0/src/plex_api_client/models/operations/getcountryregions.py +433 -0
  209. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdashsegment.py +345 -0
  210. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdeviceschannels.py +429 -0
  211. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdiagnostics.py +325 -0
  212. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdownloadqueue.py +425 -0
  213. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdownloadqueueitems.py +437 -0
  214. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdownloadqueuemedia.py +339 -0
  215. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdvr.py +333 -0
  216. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdvrchannels.py +334 -0
  217. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdvrguide.py +334 -0
  218. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdvrrecordings.py +325 -0
  219. plex_api_client-0.35.0/src/plex_api_client/models/operations/getdvrrecordingsbydvr.py +334 -0
  220. plex_api_client-0.35.0/src/plex_api_client/models/operations/getepgguide.py +56 -0
  221. plex_api_client-0.35.0/src/plex_api_client/models/operations/getextras.py +335 -0
  222. plex_api_client-0.35.0/src/plex_api_client/models/operations/getfeatures.py +99 -0
  223. plex_api_client-0.35.0/src/plex_api_client/models/operations/getfile.py +346 -0
  224. plex_api_client-0.35.0/src/plex_api_client/models/operations/getfirstcharacters.py +523 -0
  225. plex_api_client-0.35.0/src/plex_api_client/models/operations/getfolders.py +455 -0
  226. plex_api_client-0.35.0/src/plex_api_client/models/operations/getfriends.py +390 -0
  227. plex_api_client-0.35.0/src/plex_api_client/models/operations/getgeoip.py +326 -0
  228. plex_api_client-0.35.0/src/plex_api_client/models/operations/gethistoryitem.py +337 -0
  229. plex_api_client-0.35.0/src/plex_api_client/models/operations/gethlssegment.py +345 -0
  230. plex_api_client-0.35.0/src/plex_api_client/models/operations/gethome.py +61 -0
  231. plex_api_client-0.35.0/src/plex_api_client/models/operations/gethomerecentlyadded.py +325 -0
  232. plex_api_client-0.35.0/src/plex_api_client/models/operations/gethomeusers.py +330 -0
  233. plex_api_client-0.35.0/src/plex_api_client/models/operations/gethubitems.py +385 -0
  234. plex_api_client-0.35.0/src/plex_api_client/models/operations/getip.py +326 -0
  235. plex_api_client-0.35.0/src/plex_api_client/models/operations/getitemartwork.py +359 -0
  236. plex_api_client-0.35.0/src/plex_api_client/models/operations/getitemtree.py +332 -0
  237. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlegacyresources.py +52 -0
  238. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlegacyusers.py +52 -0
  239. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlibrarydetails.py +497 -0
  240. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlibraryitems.py +371 -0
  241. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlibrarymatches.py +490 -0
  242. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlibrarysectionhubs.py +334 -0
  243. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlibrarysectionsfallback.py +56 -0
  244. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlineup.py +346 -0
  245. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlineupchannels.py +523 -0
  246. plex_api_client-0.35.0/src/plex_api_client/models/operations/getlocalservers.py +325 -0
  247. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmediapart.py +361 -0
  248. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadataagentdetails.py +334 -0
  249. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadataagents.py +325 -0
  250. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadatachildren.py +332 -0
  251. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadatagrandchildren.py +332 -0
  252. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadatagrandparent.py +332 -0
  253. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadatahubs.py +362 -0
  254. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadataitem.py +541 -0
  255. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadataondeck.py +332 -0
  256. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadataparent.py +332 -0
  257. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmetadatareviews.py +332 -0
  258. plex_api_client-0.35.0/src/plex_api_client/models/operations/getmyplexaccount.py +52 -0
  259. plex_api_client-0.35.0/src/plex_api_client/models/operations/getnearestmetadata.py +376 -0
  260. plex_api_client-0.35.0/src/plex_api_client/models/operations/getnewestforsection.py +334 -0
  261. plex_api_client-0.35.0/src/plex_api_client/models/operations/getnotifications.py +340 -0
  262. plex_api_client-0.35.0/src/plex_api_client/models/operations/getoauthpin.py +466 -0
  263. plex_api_client-0.35.0/src/plex_api_client/models/operations/getondeckforsection.py +334 -0
  264. plex_api_client-0.35.0/src/plex_api_client/models/operations/getperson.py +334 -0
  265. plex_api_client-0.35.0/src/plex_api_client/models/operations/getplaylistgenerator.py +825 -0
  266. plex_api_client-0.35.0/src/plex_api_client/models/operations/getplaylistgeneratoritems.py +1146 -0
  267. plex_api_client-0.35.0/src/plex_api_client/models/operations/getplaylistgenerators.py +494 -0
  268. plex_api_client-0.35.0/src/plex_api_client/models/operations/getplaylistitems.py +352 -0
  269. plex_api_client-0.35.0/src/plex_api_client/models/operations/getplayqueue.py +385 -0
  270. plex_api_client-0.35.0/src/plex_api_client/models/operations/getplexdownloads.py +337 -0
  271. plex_api_client-0.35.0/src/plex_api_client/models/operations/getpostplayhubs.py +362 -0
  272. plex_api_client-0.35.0/src/plex_api_client/models/operations/getprogress.py +337 -0
  273. plex_api_client-0.35.0/src/plex_api_client/models/operations/getpromotedhubs.py +337 -0
  274. plex_api_client-0.35.0/src/plex_api_client/models/operations/getrecentlyaddedforsection.py +334 -0
  275. plex_api_client-0.35.0/src/plex_api_client/models/operations/getrecentlyaddedglobal.py +325 -0
  276. plex_api_client-0.35.0/src/plex_api_client/models/operations/getrelatedhubs.py +362 -0
  277. plex_api_client-0.35.0/src/plex_api_client/models/operations/getrelateditems.py +332 -0
  278. plex_api_client-0.35.0/src/plex_api_client/models/operations/getresourcestatistics.py +325 -0
  279. plex_api_client-0.35.0/src/plex_api_client/models/operations/getrootlibrary.py +56 -0
  280. plex_api_client-0.35.0/src/plex_api_client/models/operations/getscheduledrecordings.py +59 -0
  281. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionagents.py +334 -0
  282. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionartists.py +334 -0
  283. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionclips.py +334 -0
  284. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionedit.py +330 -0
  285. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionepisodes.py +334 -0
  286. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionfilters.py +334 -0
  287. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionhubs.py +362 -0
  288. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionimage.py +373 -0
  289. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionlabels.py +334 -0
  290. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionmovies.py +334 -0
  291. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionphotos.py +334 -0
  292. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionplaylists.py +334 -0
  293. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionpreferences.py +348 -0
  294. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsections.py +170 -0
  295. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionsettings.py +330 -0
  296. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionshows.py +334 -0
  297. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectionsprefs.py +339 -0
  298. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectiontags.py +334 -0
  299. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsectiontimeline.py +334 -0
  300. plex_api_client-0.35.0/src/plex_api_client/models/operations/getserveraccesstokens.py +330 -0
  301. plex_api_client-0.35.0/src/plex_api_client/models/operations/getserverdetails.py +339 -0
  302. plex_api_client-0.35.0/src/plex_api_client/models/operations/getserverinfo.py +652 -0
  303. plex_api_client-0.35.0/src/plex_api_client/models/operations/getserverresources.py +199 -0
  304. plex_api_client-0.35.0/src/plex_api_client/models/operations/getserveruserfeatures.py +330 -0
  305. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsessionplaylistindex.py +336 -0
  306. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsessions.py +99 -0
  307. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsessionsegment.py +345 -0
  308. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsonicallysimilar.py +375 -0
  309. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsourceconnectioninformation.py +432 -0
  310. plex_api_client-0.35.0/src/plex_api_client/models/operations/getstream.py +371 -0
  311. plex_api_client-0.35.0/src/plex_api_client/models/operations/getstreamlevels.py +443 -0
  312. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsubscription.py +360 -0
  313. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsubtitles.py +378 -0
  314. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsyncitem.py +334 -0
  315. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsyncitems.py +325 -0
  316. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsyncqueue.py +325 -0
  317. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsyncstatus.py +325 -0
  318. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsynctranscodequeue.py +325 -0
  319. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsystemaccounts.py +325 -0
  320. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsystemdevices.py +325 -0
  321. plex_api_client-0.35.0/src/plex_api_client/models/operations/getsystemsettings.py +321 -0
  322. plex_api_client-0.35.0/src/plex_api_client/models/operations/gettags.py +503 -0
  323. plex_api_client-0.35.0/src/plex_api_client/models/operations/gettasks.py +118 -0
  324. plex_api_client-0.35.0/src/plex_api_client/models/operations/gettemplate.py +622 -0
  325. plex_api_client-0.35.0/src/plex_api_client/models/operations/getthumb.py +341 -0
  326. plex_api_client-0.35.0/src/plex_api_client/models/operations/gettranscodesessions.py +56 -0
  327. plex_api_client-0.35.0/src/plex_api_client/models/operations/getunwatchedforsection.py +334 -0
  328. plex_api_client-0.35.0/src/plex_api_client/models/operations/getupdatesstatus.py +175 -0
  329. plex_api_client-0.35.0/src/plex_api_client/models/operations/getuseroptouts.py +337 -0
  330. plex_api_client-0.35.0/src/plex_api_client/models/operations/getusers.py +717 -0
  331. plex_api_client-0.35.0/src/plex_api_client/models/operations/getuserserver.py +326 -0
  332. plex_api_client-0.35.0/src/plex_api_client/models/operations/getuserwebhooks.py +57 -0
  333. plex_api_client-0.35.0/src/plex_api_client/models/operations/getwatchlist.py +330 -0
  334. plex_api_client-0.35.0/src/plex_api_client/models/operations/getwebhooks.py +326 -0
  335. plex_api_client-0.35.0/src/plex_api_client/models/operations/getwebsocketnotifications.py +316 -0
  336. plex_api_client-0.35.0/src/plex_api_client/models/operations/linkoauthpin.py +91 -0
  337. plex_api_client-0.35.0/src/plex_api_client/models/operations/listactivities.py +117 -0
  338. plex_api_client-0.35.0/src/plex_api_client/models/operations/listcontent.py +810 -0
  339. plex_api_client-0.35.0/src/plex_api_client/models/operations/listdownloadqueueitems.py +428 -0
  340. plex_api_client-0.35.0/src/plex_api_client/models/operations/listdvrs.py +91 -0
  341. plex_api_client-0.35.0/src/plex_api_client/models/operations/listhubs.py +440 -0
  342. plex_api_client-0.35.0/src/plex_api_client/models/operations/listmatches.py +393 -0
  343. plex_api_client-0.35.0/src/plex_api_client/models/operations/listplaybackhistory.py +559 -0
  344. plex_api_client-0.35.0/src/plex_api_client/models/operations/listplaylists.py +366 -0
  345. plex_api_client-0.35.0/src/plex_api_client/models/operations/listproviders.py +155 -0
  346. plex_api_client-0.35.0/src/plex_api_client/models/operations/listsessions.py +829 -0
  347. plex_api_client-0.35.0/src/plex_api_client/models/operations/listsimilar.py +346 -0
  348. plex_api_client-0.35.0/src/plex_api_client/models/operations/listtopusers.py +421 -0
  349. plex_api_client-0.35.0/src/plex_api_client/models/operations/makedecision.py +695 -0
  350. plex_api_client-0.35.0/src/plex_api_client/models/operations/markplayed.py +320 -0
  351. plex_api_client-0.35.0/src/plex_api_client/models/operations/matchitem.py +336 -0
  352. plex_api_client-0.35.0/src/plex_api_client/models/operations/matchsectionitems.py +330 -0
  353. plex_api_client-0.35.0/src/plex_api_client/models/operations/mergeitems.py +321 -0
  354. plex_api_client-0.35.0/src/plex_api_client/models/operations/modifydevice.py +442 -0
  355. plex_api_client-0.35.0/src/plex_api_client/models/operations/modifyplaylistgenerator.py +499 -0
  356. plex_api_client-0.35.0/src/plex_api_client/models/operations/movehub.py +356 -0
  357. plex_api_client-0.35.0/src/plex_api_client/models/operations/moveplaylistitem.py +357 -0
  358. plex_api_client-0.35.0/src/plex_api_client/models/operations/moveplayqueueitem.py +357 -0
  359. plex_api_client-0.35.0/src/plex_api_client/models/operations/movesection.py +330 -0
  360. plex_api_client-0.35.0/src/plex_api_client/models/operations/optimizelibrary.py +321 -0
  361. plex_api_client-0.35.0/src/plex_api_client/models/operations/optimizelibrarypost.py +321 -0
  362. plex_api_client-0.35.0/src/plex_api_client/models/operations/optimizesection.py +330 -0
  363. plex_api_client-0.35.0/src/plex_api_client/models/operations/optimizesectionpost.py +330 -0
  364. plex_api_client-0.35.0/src/plex_api_client/models/operations/patchdvrsettings.py +330 -0
  365. plex_api_client-0.35.0/src/plex_api_client/models/operations/ping.py +57 -0
  366. plex_api_client-0.35.0/src/plex_api_client/models/operations/playeraudiostream.py +338 -0
  367. plex_api_client-0.35.0/src/plex_api_client/models/operations/playermute.py +331 -0
  368. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerpause.py +331 -0
  369. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerplay.py +331 -0
  370. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerplaymedia.py +359 -0
  371. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerpolltimeline.py +331 -0
  372. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerrefreshplayqueue.py +331 -0
  373. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerseek.py +340 -0
  374. plex_api_client-0.35.0/src/plex_api_client/models/operations/playersetparameters.py +374 -0
  375. plex_api_client-0.35.0/src/plex_api_client/models/operations/playersetrating.py +340 -0
  376. plex_api_client-0.35.0/src/plex_api_client/models/operations/playersetstate.py +349 -0
  377. plex_api_client-0.35.0/src/plex_api_client/models/operations/playersetstreams.py +358 -0
  378. plex_api_client-0.35.0/src/plex_api_client/models/operations/playersettextstream.py +338 -0
  379. plex_api_client-0.35.0/src/plex_api_client/models/operations/playersetviewoffset.py +340 -0
  380. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerskipby.py +340 -0
  381. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerskipto.py +340 -0
  382. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerstepback.py +331 -0
  383. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerstepforward.py +331 -0
  384. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerstop.py +331 -0
  385. plex_api_client-0.35.0/src/plex_api_client/models/operations/playersubtitlestream.py +338 -0
  386. plex_api_client-0.35.0/src/plex_api_client/models/operations/playerunmute.py +331 -0
  387. plex_api_client-0.35.0/src/plex_api_client/models/operations/playervideostream.py +338 -0
  388. plex_api_client-0.35.0/src/plex_api_client/models/operations/playervolume.py +340 -0
  389. plex_api_client-0.35.0/src/plex_api_client/models/operations/postuserssignindata.py +1108 -0
  390. plex_api_client-0.35.0/src/plex_api_client/models/operations/processsubscriptions.py +50 -0
  391. plex_api_client-0.35.0/src/plex_api_client/models/operations/refreshitemsmetadata.py +341 -0
  392. plex_api_client-0.35.0/src/plex_api_client/models/operations/refreshreachability.py +52 -0
  393. plex_api_client-0.35.0/src/plex_api_client/models/operations/refreshsection.py +330 -0
  394. plex_api_client-0.35.0/src/plex_api_client/models/operations/refreshsectionpost.py +332 -0
  395. plex_api_client-0.35.0/src/plex_api_client/models/operations/refreshsynccontent.py +321 -0
  396. plex_api_client-0.35.0/src/plex_api_client/models/operations/refreshsynclists.py +321 -0
  397. plex_api_client-0.35.0/src/plex_api_client/models/operations/registerdevicejwk.py +338 -0
  398. plex_api_client-0.35.0/src/plex_api_client/models/operations/reloadguide.py +328 -0
  399. plex_api_client-0.35.0/src/plex_api_client/models/operations/removedevice.py +425 -0
  400. plex_api_client-0.35.0/src/plex_api_client/models/operations/removedevicefromdvr.py +471 -0
  401. plex_api_client-0.35.0/src/plex_api_client/models/operations/removefromcontinuewatching.py +328 -0
  402. plex_api_client-0.35.0/src/plex_api_client/models/operations/removefromwatchlist.py +333 -0
  403. plex_api_client-0.35.0/src/plex_api_client/models/operations/removeshare.py +335 -0
  404. plex_api_client-0.35.0/src/plex_api_client/models/operations/reordersubscription.py +348 -0
  405. plex_api_client-0.35.0/src/plex_api_client/models/operations/report.py +935 -0
  406. plex_api_client-0.35.0/src/plex_api_client/models/operations/resetplayqueue.py +334 -0
  407. plex_api_client-0.35.0/src/plex_api_client/models/operations/searchdiscover.py +378 -0
  408. plex_api_client-0.35.0/src/plex_api_client/models/operations/searchepg.py +325 -0
  409. plex_api_client-0.35.0/src/plex_api_client/models/operations/searchhubs.py +364 -0
  410. plex_api_client-0.35.0/src/plex_api_client/models/operations/searchsection.py +334 -0
  411. plex_api_client-0.35.0/src/plex_api_client/models/operations/setdevicepreferences.py +329 -0
  412. plex_api_client-0.35.0/src/plex_api_client/models/operations/setdvrpreferences.py +356 -0
  413. plex_api_client-0.35.0/src/plex_api_client/models/operations/setitemartwork.py +337 -0
  414. plex_api_client-0.35.0/src/plex_api_client/models/operations/setitempreferences.py +326 -0
  415. plex_api_client-0.35.0/src/plex_api_client/models/operations/setpreferences.py +312 -0
  416. plex_api_client-0.35.0/src/plex_api_client/models/operations/setsectionpreferences.py +327 -0
  417. plex_api_client-0.35.0/src/plex_api_client/models/operations/setstreamoffset.py +348 -0
  418. plex_api_client-0.35.0/src/plex_api_client/models/operations/shareserver.py +326 -0
  419. plex_api_client-0.35.0/src/plex_api_client/models/operations/shareserverlegacy.py +335 -0
  420. plex_api_client-0.35.0/src/plex_api_client/models/operations/signout.py +326 -0
  421. plex_api_client-0.35.0/src/plex_api_client/models/operations/splititem.py +304 -0
  422. plex_api_client-0.35.0/src/plex_api_client/models/operations/startbifgeneration.py +321 -0
  423. plex_api_client-0.35.0/src/plex_api_client/models/operations/starttask.py +358 -0
  424. plex_api_client-0.35.0/src/plex_api_client/models/operations/starttranscodesession.py +724 -0
  425. plex_api_client-0.35.0/src/plex_api_client/models/operations/stopallrefreshes.py +52 -0
  426. plex_api_client-0.35.0/src/plex_api_client/models/operations/switchhomeuser.py +333 -0
  427. plex_api_client-0.35.0/src/plex_api_client/models/operations/transcodemusic.py +321 -0
  428. plex_api_client-0.35.0/src/plex_api_client/models/operations/transcodesubtitles.py +690 -0
  429. plex_api_client-0.35.0/src/plex_api_client/models/operations/unmatch.py +304 -0
  430. plex_api_client-0.35.0/src/plex_api_client/models/operations/unmatchsectionitems.py +330 -0
  431. plex_api_client-0.35.0/src/plex_api_client/models/operations/unscrobble.py +320 -0
  432. plex_api_client-0.35.0/src/plex_api_client/models/operations/unshuffle.py +334 -0
  433. plex_api_client-0.35.0/src/plex_api_client/models/operations/updatecollectionitem.py +343 -0
  434. plex_api_client-0.35.0/src/plex_api_client/models/operations/updatedvrsettings.py +330 -0
  435. plex_api_client-0.35.0/src/plex_api_client/models/operations/updatehomeuser.py +335 -0
  436. plex_api_client-0.35.0/src/plex_api_client/models/operations/updateitemartwork.py +338 -0
  437. plex_api_client-0.35.0/src/plex_api_client/models/operations/updateitems.py +443 -0
  438. plex_api_client-0.35.0/src/plex_api_client/models/operations/updaterestricteduser.py +335 -0
  439. plex_api_client-0.35.0/src/plex_api_client/models/operations/updateshare.py +335 -0
  440. plex_api_client-0.35.0/src/plex_api_client/models/operations/updateviewstatesync.py +326 -0
  441. plex_api_client-0.35.0/src/plex_api_client/models/operations/uploadart.py +408 -0
  442. plex_api_client-0.35.0/src/plex_api_client/models/operations/uploadposter.py +409 -0
  443. plex_api_client-0.35.0/src/plex_api_client/models/operations/voicesearchhubs.py +390 -0
  444. plex_api_client-0.35.0/src/plex_api_client/models/operations/writemessage.py +353 -0
  445. plex_api_client-0.35.0/src/plex_api_client/play_queue.py +2013 -0
  446. plex_api_client-0.35.0/src/plex_api_client/playback.py +6015 -0
  447. plex_api_client-0.35.0/src/plex_api_client/playlist.py +689 -0
  448. plex_api_client-0.35.0/src/plex_api_client/playlists.py +253 -0
  449. plex_api_client-0.35.0/src/plex_api_client/plex.py +225 -0
  450. plex_api_client-0.35.0/src/plex_api_client/preferences.py +631 -0
  451. plex_api_client-0.35.0/src/plex_api_client/provider.py +1721 -0
  452. plex_api_client-0.35.0/src/plex_api_client/rate.py +228 -0
  453. plex_api_client-0.35.0/src/plex_api_client/sdk.py +471 -0
  454. plex_api_client-0.35.0/src/plex_api_client/search.py +493 -0
  455. plex_api_client-0.35.0/src/plex_api_client/status.py +1307 -0
  456. plex_api_client-0.35.0/src/plex_api_client/subscriptions.py +2145 -0
  457. plex_api_client-0.35.0/src/plex_api_client/timeline.py +897 -0
  458. plex_api_client-0.35.0/src/plex_api_client/transcoder.py +2110 -0
  459. plex_api_client-0.35.0/src/plex_api_client/types/__init__.py +24 -0
  460. plex_api_client-0.35.0/src/plex_api_client/types/base64fileinput.py +43 -0
  461. plex_api_client-0.35.0/src/plex_api_client/ultrablur.py +449 -0
  462. plex_api_client-0.35.0/src/plex_api_client/updater.py +657 -0
  463. plex_api_client-0.35.0/src/plex_api_client/users.py +4865 -0
  464. plex_api_client-0.35.0/src/plex_api_client/utils/__init__.py +177 -0
  465. plex_api_client-0.35.0/src/plex_api_client/utils/datetimes.py +37 -0
  466. plex_api_client-0.35.0/src/plex_api_client/utils/eventstreaming.py +326 -0
  467. plex_api_client-0.35.0/src/plex_api_client/utils/forms.py +239 -0
  468. plex_api_client-0.35.0/src/plex_api_client/utils/requestbodies.py +67 -0
  469. plex_api_client-0.35.0/src/plex_api_client/utils/retries.py +356 -0
  470. plex_api_client-0.35.0/src/plex_api_client/utils/serializers.py +306 -0
  471. plex_api_client-0.34.2/PKG-INFO +0 -1123
  472. plex_api_client-0.34.2/README-PYPI.md +0 -1103
  473. plex_api_client-0.34.2/pyproject.toml +0 -58
  474. plex_api_client-0.34.2/src/plex_api_client/_hooks/types.py +0 -113
  475. plex_api_client-0.34.2/src/plex_api_client/_version.py +0 -15
  476. plex_api_client-0.34.2/src/plex_api_client/activities.py +0 -391
  477. plex_api_client-0.34.2/src/plex_api_client/authentication.py +0 -501
  478. plex_api_client-0.34.2/src/plex_api_client/basesdk.py +0 -396
  479. plex_api_client-0.34.2/src/plex_api_client/butler.py +0 -941
  480. plex_api_client-0.34.2/src/plex_api_client/collections.py +0 -223
  481. plex_api_client-0.34.2/src/plex_api_client/content.py +0 -2725
  482. plex_api_client-0.34.2/src/plex_api_client/devices.py +0 -2726
  483. plex_api_client-0.34.2/src/plex_api_client/download_queue.py +0 -1903
  484. plex_api_client-0.34.2/src/plex_api_client/dvrs.py +0 -2521
  485. plex_api_client-0.34.2/src/plex_api_client/epg.py +0 -1813
  486. plex_api_client-0.34.2/src/plex_api_client/events.py +0 -436
  487. plex_api_client-0.34.2/src/plex_api_client/general.py +0 -811
  488. plex_api_client-0.34.2/src/plex_api_client/hubs.py +0 -2965
  489. plex_api_client-0.34.2/src/plex_api_client/library.py +0 -16494
  490. plex_api_client-0.34.2/src/plex_api_client/library_collections.py +0 -661
  491. plex_api_client-0.34.2/src/plex_api_client/library_playlists.py +0 -2725
  492. plex_api_client-0.34.2/src/plex_api_client/live_tv.py +0 -803
  493. plex_api_client-0.34.2/src/plex_api_client/log.py +0 -621
  494. plex_api_client-0.34.2/src/plex_api_client/models/components/__init__.py +0 -879
  495. plex_api_client-0.34.2/src/plex_api_client/models/components/channel.py +0 -70
  496. plex_api_client-0.34.2/src/plex_api_client/models/components/device.py +0 -93
  497. plex_api_client-0.34.2/src/plex_api_client/models/components/dvrrequesthandler_slash_get_responses_200.py +0 -192
  498. plex_api_client-0.34.2/src/plex_api_client/models/components/get_responses_200.py +0 -246
  499. plex_api_client-0.34.2/src/plex_api_client/models/components/historyall_get_responses_200.py +0 -210
  500. plex_api_client-0.34.2/src/plex_api_client/models/components/hub.py +0 -143
  501. plex_api_client-0.34.2/src/plex_api_client/models/components/items.py +0 -569
  502. plex_api_client-0.34.2/src/plex_api_client/models/components/librarysection.py +0 -189
  503. plex_api_client-0.34.2/src/plex_api_client/models/components/librarysections.py +0 -408
  504. plex_api_client-0.34.2/src/plex_api_client/models/components/lineup.py +0 -91
  505. plex_api_client-0.34.2/src/plex_api_client/models/components/media.py +0 -170
  506. plex_api_client-0.34.2/src/plex_api_client/models/components/mediacontainer.py +0 -71
  507. plex_api_client-0.34.2/src/plex_api_client/models/components/mediacontainerwithartwork.py +0 -163
  508. plex_api_client-0.34.2/src/plex_api_client/models/components/mediacontainerwithdecision.py +0 -1508
  509. plex_api_client-0.34.2/src/plex_api_client/models/components/mediacontainerwithdevice.py +0 -190
  510. plex_api_client-0.34.2/src/plex_api_client/models/components/mediacontainerwithdirectory.py +0 -110
  511. plex_api_client-0.34.2/src/plex_api_client/models/components/mediacontainerwithhubs.py +0 -110
  512. plex_api_client-0.34.2/src/plex_api_client/models/components/mediacontainerwithlineup.py +0 -113
  513. plex_api_client-0.34.2/src/plex_api_client/models/components/mediacontainerwithmetadata.py +0 -108
  514. plex_api_client-0.34.2/src/plex_api_client/models/components/mediacontainerwithnestedmetadata.py +0 -684
  515. plex_api_client-0.34.2/src/plex_api_client/models/components/mediacontainerwithplaylistmetadata.py +0 -712
  516. plex_api_client-0.34.2/src/plex_api_client/models/components/mediacontainerwithsettings.py +0 -106
  517. plex_api_client-0.34.2/src/plex_api_client/models/components/mediacontainerwithsubscription.py +0 -110
  518. plex_api_client-0.34.2/src/plex_api_client/models/components/mediagraboperation.py +0 -119
  519. plex_api_client-0.34.2/src/plex_api_client/models/components/mediaquery.py +0 -98
  520. plex_api_client-0.34.2/src/plex_api_client/models/components/mediatype.py +0 -32
  521. plex_api_client-0.34.2/src/plex_api_client/models/components/metadata.py +0 -561
  522. plex_api_client-0.34.2/src/plex_api_client/models/components/part.py +0 -131
  523. plex_api_client-0.34.2/src/plex_api_client/models/components/plexdevice.py +0 -166
  524. plex_api_client-0.34.2/src/plex_api_client/models/components/post_responses_200.py +0 -165
  525. plex_api_client-0.34.2/src/plex_api_client/models/components/session.py +0 -55
  526. plex_api_client-0.34.2/src/plex_api_client/models/components/stream.py +0 -410
  527. plex_api_client-0.34.2/src/plex_api_client/models/components/userplexaccount.py +0 -556
  528. plex_api_client-0.34.2/src/plex_api_client/models/components/userprofile.py +0 -199
  529. plex_api_client-0.34.2/src/plex_api_client/models/errors/__init__.py +0 -126
  530. plex_api_client-0.34.2/src/plex_api_client/models/errors/get_server_resources.py +0 -66
  531. plex_api_client-0.34.2/src/plex_api_client/models/errors/get_users.py +0 -121
  532. plex_api_client-0.34.2/src/plex_api_client/models/errors/gettokendetails.py +0 -121
  533. plex_api_client-0.34.2/src/plex_api_client/models/errors/post_users_sign_in_data.py +0 -121
  534. plex_api_client-0.34.2/src/plex_api_client/models/operations/__init__.py +0 -6040
  535. plex_api_client-0.34.2/src/plex_api_client/models/operations/adddevicetodvr.py +0 -522
  536. plex_api_client-0.34.2/src/plex_api_client/models/operations/adddownloadqueueitems.py +0 -749
  537. plex_api_client-0.34.2/src/plex_api_client/models/operations/addextras.py +0 -333
  538. plex_api_client-0.34.2/src/plex_api_client/models/operations/addlineup.py +0 -522
  539. plex_api_client-0.34.2/src/plex_api_client/models/operations/addplaylistitems.py +0 -358
  540. plex_api_client-0.34.2/src/plex_api_client/models/operations/addsection.py +0 -418
  541. plex_api_client-0.34.2/src/plex_api_client/models/operations/addsubtitles.py +0 -364
  542. plex_api_client-0.34.2/src/plex_api_client/models/operations/addtoplayqueue.py +0 -368
  543. plex_api_client-0.34.2/src/plex_api_client/models/operations/analyzemetadata.py +0 -327
  544. plex_api_client-0.34.2/src/plex_api_client/models/operations/applyupdates.py +0 -318
  545. plex_api_client-0.34.2/src/plex_api_client/models/operations/autocomplete.py +0 -406
  546. plex_api_client-0.34.2/src/plex_api_client/models/operations/clearplaylistitems.py +0 -334
  547. plex_api_client-0.34.2/src/plex_api_client/models/operations/computechannelmap.py +0 -490
  548. plex_api_client-0.34.2/src/plex_api_client/models/operations/connectwebsocket.py +0 -342
  549. plex_api_client-0.34.2/src/plex_api_client/models/operations/createcollection.py +0 -399
  550. plex_api_client-0.34.2/src/plex_api_client/models/operations/createdownloadqueue.py +0 -223
  551. plex_api_client-0.34.2/src/plex_api_client/models/operations/createdvr.py +0 -356
  552. plex_api_client-0.34.2/src/plex_api_client/models/operations/createmarker.py +0 -528
  553. plex_api_client-0.34.2/src/plex_api_client/models/operations/createplayqueue.py +0 -598
  554. plex_api_client-0.34.2/src/plex_api_client/models/operations/createsubscription.py +0 -528
  555. plex_api_client-0.34.2/src/plex_api_client/models/operations/deletecollectionitem.py +0 -343
  556. plex_api_client-0.34.2/src/plex_api_client/models/operations/deletelineup.py +0 -522
  557. plex_api_client-0.34.2/src/plex_api_client/models/operations/deletemarker.py +0 -307
  558. plex_api_client-0.34.2/src/plex_api_client/models/operations/deletemediaitem.py +0 -326
  559. plex_api_client-0.34.2/src/plex_api_client/models/operations/deletemetadataitem.py +0 -319
  560. plex_api_client-0.34.2/src/plex_api_client/models/operations/deleteplaylistitem.py +0 -343
  561. plex_api_client-0.34.2/src/plex_api_client/models/operations/deleteplayqueueitem.py +0 -343
  562. plex_api_client-0.34.2/src/plex_api_client/models/operations/deletesubscription.py +0 -304
  563. plex_api_client-0.34.2/src/plex_api_client/models/operations/detectads.py +0 -302
  564. plex_api_client-0.34.2/src/plex_api_client/models/operations/detectcredits.py +0 -324
  565. plex_api_client-0.34.2/src/plex_api_client/models/operations/detectintros.py +0 -328
  566. plex_api_client-0.34.2/src/plex_api_client/models/operations/detectvoiceactivity.py +0 -328
  567. plex_api_client-0.34.2/src/plex_api_client/models/operations/discoverdevices.py +0 -56
  568. plex_api_client-0.34.2/src/plex_api_client/models/operations/editmarker.py +0 -383
  569. plex_api_client-0.34.2/src/plex_api_client/models/operations/editmetadataitem.py +0 -324
  570. plex_api_client-0.34.2/src/plex_api_client/models/operations/editsubscriptionpreferences.py +0 -352
  571. plex_api_client-0.34.2/src/plex_api_client/models/operations/emptytrash.py +0 -306
  572. plex_api_client-0.34.2/src/plex_api_client/models/operations/generatethumbs.py +0 -317
  573. plex_api_client-0.34.2/src/plex_api_client/models/operations/get_server_resources.py +0 -202
  574. plex_api_client-0.34.2/src/plex_api_client/models/operations/get_users.py +0 -717
  575. plex_api_client-0.34.2/src/plex_api_client/models/operations/getallhubs.py +0 -455
  576. plex_api_client-0.34.2/src/plex_api_client/models/operations/getallitemleaves.py +0 -333
  577. plex_api_client-0.34.2/src/plex_api_client/models/operations/getalllanguages.py +0 -184
  578. plex_api_client-0.34.2/src/plex_api_client/models/operations/getallsubscriptions.py +0 -349
  579. plex_api_client-0.34.2/src/plex_api_client/models/operations/getavailablegrabbers.py +0 -465
  580. plex_api_client-0.34.2/src/plex_api_client/models/operations/getavailablesorts.py +0 -435
  581. plex_api_client-0.34.2/src/plex_api_client/models/operations/getbackgroundtasks.py +0 -240
  582. plex_api_client-0.34.2/src/plex_api_client/models/operations/getchannels.py +0 -433
  583. plex_api_client-0.34.2/src/plex_api_client/models/operations/getcollections.py +0 -387
  584. plex_api_client-0.34.2/src/plex_api_client/models/operations/getcolors.py +0 -476
  585. plex_api_client-0.34.2/src/plex_api_client/models/operations/getcommon.py +0 -396
  586. plex_api_client-0.34.2/src/plex_api_client/models/operations/getcontinuewatching.py +0 -436
  587. plex_api_client-0.34.2/src/plex_api_client/models/operations/getcountries.py +0 -244
  588. plex_api_client-0.34.2/src/plex_api_client/models/operations/getcountryregions.py +0 -473
  589. plex_api_client-0.34.2/src/plex_api_client/models/operations/getdeviceschannels.py +0 -501
  590. plex_api_client-0.34.2/src/plex_api_client/models/operations/getdownloadqueue.py +0 -500
  591. plex_api_client-0.34.2/src/plex_api_client/models/operations/getdownloadqueueitems.py +0 -655
  592. plex_api_client-0.34.2/src/plex_api_client/models/operations/getdownloadqueuemedia.py +0 -318
  593. plex_api_client-0.34.2/src/plex_api_client/models/operations/getdvr.py +0 -510
  594. plex_api_client-0.34.2/src/plex_api_client/models/operations/getextras.py +0 -333
  595. plex_api_client-0.34.2/src/plex_api_client/models/operations/getfile.py +0 -344
  596. plex_api_client-0.34.2/src/plex_api_client/models/operations/getfirstcharacters.py +0 -534
  597. plex_api_client-0.34.2/src/plex_api_client/models/operations/getfolders.py +0 -465
  598. plex_api_client-0.34.2/src/plex_api_client/models/operations/gethistoryitem.py +0 -337
  599. plex_api_client-0.34.2/src/plex_api_client/models/operations/gethubitems.py +0 -387
  600. plex_api_client-0.34.2/src/plex_api_client/models/operations/getitemartwork.py +0 -353
  601. plex_api_client-0.34.2/src/plex_api_client/models/operations/getitemtree.py +0 -330
  602. plex_api_client-0.34.2/src/plex_api_client/models/operations/getlibrarydetails.py +0 -497
  603. plex_api_client-0.34.2/src/plex_api_client/models/operations/getlibraryitems.py +0 -373
  604. plex_api_client-0.34.2/src/plex_api_client/models/operations/getlibrarymatches.py +0 -486
  605. plex_api_client-0.34.2/src/plex_api_client/models/operations/getlineup.py +0 -318
  606. plex_api_client-0.34.2/src/plex_api_client/models/operations/getlineupchannels.py +0 -517
  607. plex_api_client-0.34.2/src/plex_api_client/models/operations/getmediapart.py +0 -340
  608. plex_api_client-0.34.2/src/plex_api_client/models/operations/getmetadatahubs.py +0 -362
  609. plex_api_client-0.34.2/src/plex_api_client/models/operations/getmetadataitem.py +0 -419
  610. plex_api_client-0.34.2/src/plex_api_client/models/operations/getnotifications.py +0 -342
  611. plex_api_client-0.34.2/src/plex_api_client/models/operations/getperson.py +0 -434
  612. plex_api_client-0.34.2/src/plex_api_client/models/operations/getplaylistgenerator.py +0 -837
  613. plex_api_client-0.34.2/src/plex_api_client/models/operations/getplaylistgeneratoritems.py +0 -1072
  614. plex_api_client-0.34.2/src/plex_api_client/models/operations/getplaylistgenerators.py +0 -507
  615. plex_api_client-0.34.2/src/plex_api_client/models/operations/getplaylistitems.py +0 -351
  616. plex_api_client-0.34.2/src/plex_api_client/models/operations/getplayqueue.py +0 -387
  617. plex_api_client-0.34.2/src/plex_api_client/models/operations/getpostplayhubs.py +0 -362
  618. plex_api_client-0.34.2/src/plex_api_client/models/operations/getpromotedhubs.py +0 -435
  619. plex_api_client-0.34.2/src/plex_api_client/models/operations/getrelatedhubs.py +0 -362
  620. plex_api_client-0.34.2/src/plex_api_client/models/operations/getrelateditems.py +0 -428
  621. plex_api_client-0.34.2/src/plex_api_client/models/operations/getscheduledrecordings.py +0 -164
  622. plex_api_client-0.34.2/src/plex_api_client/models/operations/getsectionfilters.py +0 -436
  623. plex_api_client-0.34.2/src/plex_api_client/models/operations/getsectionhubs.py +0 -460
  624. plex_api_client-0.34.2/src/plex_api_client/models/operations/getsectionimage.py +0 -375
  625. plex_api_client-0.34.2/src/plex_api_client/models/operations/getsectionpreferences.py +0 -346
  626. plex_api_client-0.34.2/src/plex_api_client/models/operations/getsections.py +0 -180
  627. plex_api_client-0.34.2/src/plex_api_client/models/operations/getsectionsprefs.py +0 -337
  628. plex_api_client-0.34.2/src/plex_api_client/models/operations/getserverinfo.py +0 -325
  629. plex_api_client-0.34.2/src/plex_api_client/models/operations/getsessionplaylistindex.py +0 -315
  630. plex_api_client-0.34.2/src/plex_api_client/models/operations/getsessions.py +0 -59
  631. plex_api_client-0.34.2/src/plex_api_client/models/operations/getsessionsegment.py +0 -324
  632. plex_api_client-0.34.2/src/plex_api_client/models/operations/getsonicallysimilar.py +0 -374
  633. plex_api_client-0.34.2/src/plex_api_client/models/operations/getsourceconnectioninformation.py +0 -522
  634. plex_api_client-0.34.2/src/plex_api_client/models/operations/getstream.py +0 -350
  635. plex_api_client-0.34.2/src/plex_api_client/models/operations/getstreamlevels.py +0 -476
  636. plex_api_client-0.34.2/src/plex_api_client/models/operations/getsubscription.py +0 -358
  637. plex_api_client-0.34.2/src/plex_api_client/models/operations/gettags.py +0 -515
  638. plex_api_client-0.34.2/src/plex_api_client/models/operations/gettasks.py +0 -182
  639. plex_api_client-0.34.2/src/plex_api_client/models/operations/gettemplate.py +0 -612
  640. plex_api_client-0.34.2/src/plex_api_client/models/operations/getthumb.py +0 -315
  641. plex_api_client-0.34.2/src/plex_api_client/models/operations/gettransienttoken.py +0 -449
  642. plex_api_client-0.34.2/src/plex_api_client/models/operations/getupdatesstatus.py +0 -258
  643. plex_api_client-0.34.2/src/plex_api_client/models/operations/listactivities.py +0 -200
  644. plex_api_client-0.34.2/src/plex_api_client/models/operations/listcontent.py +0 -452
  645. plex_api_client-0.34.2/src/plex_api_client/models/operations/listdownloadqueueitems.py +0 -642
  646. plex_api_client-0.34.2/src/plex_api_client/models/operations/listdvrs.py +0 -231
  647. plex_api_client-0.34.2/src/plex_api_client/models/operations/listhubs.py +0 -581
  648. plex_api_client-0.34.2/src/plex_api_client/models/operations/listmatches.py +0 -379
  649. plex_api_client-0.34.2/src/plex_api_client/models/operations/listplaybackhistory.py +0 -571
  650. plex_api_client-0.34.2/src/plex_api_client/models/operations/listplaylists.py +0 -356
  651. plex_api_client-0.34.2/src/plex_api_client/models/operations/listproviders.py +0 -478
  652. plex_api_client-0.34.2/src/plex_api_client/models/operations/listsessions.py +0 -755
  653. plex_api_client-0.34.2/src/plex_api_client/models/operations/listsimilar.py +0 -344
  654. plex_api_client-0.34.2/src/plex_api_client/models/operations/listsonicallysimilar.py +0 -366
  655. plex_api_client-0.34.2/src/plex_api_client/models/operations/listtopusers.py +0 -456
  656. plex_api_client-0.34.2/src/plex_api_client/models/operations/makedecision.py +0 -678
  657. plex_api_client-0.34.2/src/plex_api_client/models/operations/markplayed.py +0 -322
  658. plex_api_client-0.34.2/src/plex_api_client/models/operations/matchitem.py +0 -328
  659. plex_api_client-0.34.2/src/plex_api_client/models/operations/mergeitems.py +0 -317
  660. plex_api_client-0.34.2/src/plex_api_client/models/operations/modifydevice.py +0 -452
  661. plex_api_client-0.34.2/src/plex_api_client/models/operations/modifyplaylistgenerator.py +0 -503
  662. plex_api_client-0.34.2/src/plex_api_client/models/operations/movehub.py +0 -356
  663. plex_api_client-0.34.2/src/plex_api_client/models/operations/moveplaylistitem.py +0 -357
  664. plex_api_client-0.34.2/src/plex_api_client/models/operations/moveplayqueueitem.py +0 -357
  665. plex_api_client-0.34.2/src/plex_api_client/models/operations/post_users_sign_in_data.py +0 -1092
  666. plex_api_client-0.34.2/src/plex_api_client/models/operations/processsubscriptions.py +0 -30
  667. plex_api_client-0.34.2/src/plex_api_client/models/operations/refreshitemsmetadata.py +0 -325
  668. plex_api_client-0.34.2/src/plex_api_client/models/operations/refreshsection.py +0 -332
  669. plex_api_client-0.34.2/src/plex_api_client/models/operations/reloadguide.py +0 -309
  670. plex_api_client-0.34.2/src/plex_api_client/models/operations/removedevice.py +0 -435
  671. plex_api_client-0.34.2/src/plex_api_client/models/operations/removedevicefromdvr.py +0 -523
  672. plex_api_client-0.34.2/src/plex_api_client/models/operations/reordersubscription.py +0 -346
  673. plex_api_client-0.34.2/src/plex_api_client/models/operations/report.py +0 -929
  674. plex_api_client-0.34.2/src/plex_api_client/models/operations/resetplayqueue.py +0 -334
  675. plex_api_client-0.34.2/src/plex_api_client/models/operations/searchhubs.py +0 -452
  676. plex_api_client-0.34.2/src/plex_api_client/models/operations/setdevicepreferences.py +0 -320
  677. plex_api_client-0.34.2/src/plex_api_client/models/operations/setdvrpreferences.py +0 -528
  678. plex_api_client-0.34.2/src/plex_api_client/models/operations/setitemartwork.py +0 -331
  679. plex_api_client-0.34.2/src/plex_api_client/models/operations/setitempreferences.py +0 -322
  680. plex_api_client-0.34.2/src/plex_api_client/models/operations/setpreferences.py +0 -310
  681. plex_api_client-0.34.2/src/plex_api_client/models/operations/setsectionpreferences.py +0 -325
  682. plex_api_client-0.34.2/src/plex_api_client/models/operations/setstreamoffset.py +0 -327
  683. plex_api_client-0.34.2/src/plex_api_client/models/operations/splititem.py +0 -302
  684. plex_api_client-0.34.2/src/plex_api_client/models/operations/startbifgeneration.py +0 -317
  685. plex_api_client-0.34.2/src/plex_api_client/models/operations/starttask.py +0 -334
  686. plex_api_client-0.34.2/src/plex_api_client/models/operations/starttranscodesession.py +0 -691
  687. plex_api_client-0.34.2/src/plex_api_client/models/operations/stopallrefreshes.py +0 -52
  688. plex_api_client-0.34.2/src/plex_api_client/models/operations/transcodesubtitles.py +0 -652
  689. plex_api_client-0.34.2/src/plex_api_client/models/operations/unmatch.py +0 -302
  690. plex_api_client-0.34.2/src/plex_api_client/models/operations/unscrobble.py +0 -322
  691. plex_api_client-0.34.2/src/plex_api_client/models/operations/unshuffle.py +0 -334
  692. plex_api_client-0.34.2/src/plex_api_client/models/operations/updateitemartwork.py +0 -332
  693. plex_api_client-0.34.2/src/plex_api_client/models/operations/updateitems.py +0 -440
  694. plex_api_client-0.34.2/src/plex_api_client/models/operations/voicesearchhubs.py +0 -480
  695. plex_api_client-0.34.2/src/plex_api_client/models/operations/writemessage.py +0 -356
  696. plex_api_client-0.34.2/src/plex_api_client/play_queue.py +0 -1897
  697. plex_api_client-0.34.2/src/plex_api_client/playlist.py +0 -645
  698. plex_api_client-0.34.2/src/plex_api_client/plex.py +0 -223
  699. plex_api_client-0.34.2/src/plex_api_client/preferences.py +0 -587
  700. plex_api_client-0.34.2/src/plex_api_client/provider.py +0 -741
  701. plex_api_client-0.34.2/src/plex_api_client/rate.py +0 -216
  702. plex_api_client-0.34.2/src/plex_api_client/sdk.py +0 -436
  703. plex_api_client-0.34.2/src/plex_api_client/search.py +0 -473
  704. plex_api_client-0.34.2/src/plex_api_client/status.py +0 -1211
  705. plex_api_client-0.34.2/src/plex_api_client/subscriptions.py +0 -2021
  706. plex_api_client-0.34.2/src/plex_api_client/timeline.py +0 -627
  707. plex_api_client-0.34.2/src/plex_api_client/transcoder.py +0 -1090
  708. plex_api_client-0.34.2/src/plex_api_client/types/__init__.py +0 -21
  709. plex_api_client-0.34.2/src/plex_api_client/ultrablur.py +0 -425
  710. plex_api_client-0.34.2/src/plex_api_client/updater.py +0 -602
  711. plex_api_client-0.34.2/src/plex_api_client/users.py +0 -247
  712. plex_api_client-0.34.2/src/plex_api_client/utils/__init__.py +0 -175
  713. plex_api_client-0.34.2/src/plex_api_client/utils/datetimes.py +0 -23
  714. plex_api_client-0.34.2/src/plex_api_client/utils/eventstreaming.py +0 -309
  715. plex_api_client-0.34.2/src/plex_api_client/utils/forms.py +0 -234
  716. plex_api_client-0.34.2/src/plex_api_client/utils/requestbodies.py +0 -66
  717. plex_api_client-0.34.2/src/plex_api_client/utils/retries.py +0 -271
  718. plex_api_client-0.34.2/src/plex_api_client/utils/serializers.py +0 -229
  719. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/LICENSE.md +0 -0
  720. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/py.typed +0 -0
  721. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/__init__.py +0 -0
  722. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/_hooks/__init__.py +0 -0
  723. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/_hooks/registration.py +0 -0
  724. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/_hooks/sdkhooks.py +0 -0
  725. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/httpclient.py +0 -0
  726. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/__init__.py +0 -0
  727. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/accepts.py +0 -0
  728. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/advancedsubtitles.py +0 -0
  729. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/allowsync.py +0 -0
  730. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/boolint.py +0 -0
  731. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/channelmapping.py +0 -0
  732. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/composite.py +0 -0
  733. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/directory.py +0 -0
  734. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/filter_.py +0 -0
  735. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/image.py +0 -0
  736. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/location.py +0 -0
  737. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/mediasubscription.py +0 -0
  738. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/mediatypestring.py +0 -0
  739. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/player.py +0 -0
  740. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/protocol.py +0 -0
  741. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/security.py +0 -0
  742. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/setting.py +0 -0
  743. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/slash_get_responses_200.py +0 -0
  744. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/sort.py +0 -0
  745. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/subtitles.py +0 -0
  746. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/tag.py +0 -0
  747. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/transcodesession.py +0 -0
  748. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/transcodetype.py +0 -0
  749. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/components/user.py +0 -0
  750. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/errors/no_response_error.py +0 -0
  751. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/errors/plexapierror.py +0 -0
  752. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/errors/responsevalidationerror.py +0 -0
  753. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/errors/sdkerror.py +0 -0
  754. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/internal/__init__.py +0 -0
  755. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/internal/globals.py +0 -0
  756. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/addcollectionitems.py +0 -0
  757. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/adddevice.py +0 -0
  758. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/addprovider.py +0 -0
  759. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/cancelactivity.py +0 -0
  760. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/cancelgrab.py +0 -0
  761. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/cancelrefresh.py +0 -0
  762. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/checkupdates.py +0 -0
  763. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/cleanbundles.py +0 -0
  764. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/clearplayqueue.py +0 -0
  765. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/createcustomhub.py +0 -0
  766. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/createplaylist.py +0 -0
  767. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deletecaches.py +0 -0
  768. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deletecollection.py +0 -0
  769. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deletecustomhub.py +0 -0
  770. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deletedvr.py +0 -0
  771. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deletehistory.py +0 -0
  772. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deleteindexes.py +0 -0
  773. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deleteintros.py +0 -0
  774. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deletelibrarysection.py +0 -0
  775. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deletemediaprovider.py +0 -0
  776. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deleteplaylist.py +0 -0
  777. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/deletestream.py +0 -0
  778. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/editsection.py +0 -0
  779. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/enablepapertrail.py +0 -0
  780. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getalbums.py +0 -0
  781. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getallleaves.py +0 -0
  782. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getallpreferences.py +0 -0
  783. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getarts.py +0 -0
  784. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getaugmentationstatus.py +0 -0
  785. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getcategories.py +0 -0
  786. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getchapterimage.py +0 -0
  787. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getcluster.py +0 -0
  788. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getcollectionimage.py +0 -0
  789. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getcollectionitems.py +0 -0
  790. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getcountrieslineups.py +0 -0
  791. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getdevicedetails.py +0 -0
  792. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getidentity.py +0 -0
  793. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getimage.py +0 -0
  794. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getimagefrombif.py +0 -0
  795. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getitemdecision.py +0 -0
  796. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getlivetvsession.py +0 -0
  797. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getpartindex.py +0 -0
  798. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getplaylist.py +0 -0
  799. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getpreference.py +0 -0
  800. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getrandomartwork.py +0 -0
  801. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getsonicpath.py +0 -0
  802. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/getstreamloudness.py +0 -0
  803. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/gettokendetails.py +0 -0
  804. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/ingesttransientitem.py +0 -0
  805. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/listdevices.py +0 -0
  806. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/listlineups.py +0 -0
  807. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/listmoments.py +0 -0
  808. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/listpersonmedia.py +0 -0
  809. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/movecollectionitem.py +0 -0
  810. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/optimizedatabase.py +0 -0
  811. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/refreshplaylist.py +0 -0
  812. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/refreshproviders.py +0 -0
  813. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/refreshsectionsmetadata.py +0 -0
  814. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/removedownloadqueueitems.py +0 -0
  815. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/resetsectiondefaults.py +0 -0
  816. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/restartprocessingdownloadqueueitems.py +0 -0
  817. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/scan.py +0 -0
  818. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/setchannelmap.py +0 -0
  819. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/setrating.py +0 -0
  820. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/setstreamselection.py +0 -0
  821. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/shuffle.py +0 -0
  822. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/startanalysis.py +0 -0
  823. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/starttasks.py +0 -0
  824. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/stopdvrreload.py +0 -0
  825. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/stopscan.py +0 -0
  826. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/stoptask.py +0 -0
  827. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/stoptasks.py +0 -0
  828. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/terminatesession.py +0 -0
  829. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/transcodeimage.py +0 -0
  830. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/triggerfallback.py +0 -0
  831. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/tunechannel.py +0 -0
  832. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/updatehubvisibility.py +0 -0
  833. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/updateplaylist.py +0 -0
  834. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/uploadplaylist.py +0 -0
  835. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/models/operations/writelog.py +0 -0
  836. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/py.typed +0 -0
  837. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/sdkconfiguration.py +0 -0
  838. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/types/basemodel.py +0 -0
  839. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/utils/annotations.py +0 -0
  840. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/utils/dynamic_imports.py +0 -0
  841. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/utils/enums.py +0 -0
  842. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/utils/headers.py +0 -0
  843. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/utils/logger.py +0 -0
  844. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/utils/metadata.py +0 -0
  845. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/utils/queryparams.py +0 -0
  846. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/utils/security.py +0 -0
  847. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/utils/unmarshal_json_response.py +0 -0
  848. {plex_api_client-0.34.2 → plex_api_client-0.35.0}/src/plex_api_client/utils/url.py +0 -0
  849. {plex_api_client-0.34.2 → 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
+