spotifywebapiPython 1.0.242__py3-none-any.whl

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 (138) hide show
  1. spotifywebapipython/__init__.py +35 -0
  2. spotifywebapipython/const.py +114 -0
  3. spotifywebapipython/docs/__init__.html +2156 -0
  4. spotifywebapipython/docs/codecopy.js +70 -0
  5. spotifywebapipython/docs/index.html +514 -0
  6. spotifywebapipython/docs/search.js +46 -0
  7. spotifywebapipython/docs/spotifywebapipython/const.html +636 -0
  8. spotifywebapipython/docs/spotifywebapipython/saappmessages.html +540 -0
  9. spotifywebapipython/docs/spotifywebapipython/sautils.html +620 -0
  10. spotifywebapipython/docs/spotifywebapipython/spotifyapierror.html +341 -0
  11. spotifywebapipython/docs/spotifywebapipython/spotifyapimessage.html +598 -0
  12. spotifywebapipython/docs/spotifywebapipython/spotifyauthtoken.html +612 -0
  13. spotifywebapipython/docs/spotifywebapipython/spotifyclient.html +16557 -0
  14. spotifywebapipython/docs/spotifywebapipython/spotifydiscovery.html +518 -0
  15. spotifywebapipython/docs/spotifywebapipython/spotifywebapiauthenticationerror.html +421 -0
  16. spotifywebapipython/docs/spotifywebapipython/spotifywebapierror.html +400 -0
  17. spotifywebapipython/docs/spotifywebapipython/spotifywebplayertoken.html +635 -0
  18. spotifywebapipython/docs/spotifywebapipython.ico +0 -0
  19. spotifywebapipython/docs/spotifywebapipython_OLD.ico +0 -0
  20. spotifywebapipython/models/__init__.py +121 -0
  21. spotifywebapipython/models/album.py +170 -0
  22. spotifywebapipython/models/albumpagesaved.py +85 -0
  23. spotifywebapipython/models/albumpagesimplified.py +88 -0
  24. spotifywebapipython/models/albumsaved.py +102 -0
  25. spotifywebapipython/models/albumsimplified.py +308 -0
  26. spotifywebapipython/models/artist.py +146 -0
  27. spotifywebapipython/models/artistinfo.py +282 -0
  28. spotifywebapipython/models/artistinfotourevent.py +127 -0
  29. spotifywebapipython/models/artistpage.py +70 -0
  30. spotifywebapipython/models/artistsimplified.py +163 -0
  31. spotifywebapipython/models/audiobook.py +87 -0
  32. spotifywebapipython/models/audiobookpagesimplified.py +88 -0
  33. spotifywebapipython/models/audiobooksimplified.py +362 -0
  34. spotifywebapipython/models/audiofeatures.py +333 -0
  35. spotifywebapipython/models/author.py +67 -0
  36. spotifywebapipython/models/category.py +168 -0
  37. spotifywebapipython/models/categorypage.py +70 -0
  38. spotifywebapipython/models/chapter.py +84 -0
  39. spotifywebapipython/models/chapterpagesimplified.py +88 -0
  40. spotifywebapipython/models/chaptersimplified.py +387 -0
  41. spotifywebapipython/models/context.py +113 -0
  42. spotifywebapipython/models/copyright.py +79 -0
  43. spotifywebapipython/models/device.py +301 -0
  44. spotifywebapipython/models/episode.py +84 -0
  45. spotifywebapipython/models/episodepagesaved.py +85 -0
  46. spotifywebapipython/models/episodepagesimplified.py +88 -0
  47. spotifywebapipython/models/episodesaved.py +99 -0
  48. spotifywebapipython/models/episodesimplified.py +370 -0
  49. spotifywebapipython/models/explicitcontent.py +80 -0
  50. spotifywebapipython/models/externalids.py +91 -0
  51. spotifywebapipython/models/externalurls.py +104 -0
  52. spotifywebapipython/models/followers.py +81 -0
  53. spotifywebapipython/models/imageobject.py +193 -0
  54. spotifywebapipython/models/imagevibrantcolors.py +182 -0
  55. spotifywebapipython/models/linkedfrom.py +165 -0
  56. spotifywebapipython/models/narrator.py +67 -0
  57. spotifywebapipython/models/owner.py +162 -0
  58. spotifywebapipython/models/pageobject.py +343 -0
  59. spotifywebapipython/models/playeractions.py +196 -0
  60. spotifywebapipython/models/playerlastplayedinfo.py +334 -0
  61. spotifywebapipython/models/playerplaystate.py +467 -0
  62. spotifywebapipython/models/playerqueueinfo.py +207 -0
  63. spotifywebapipython/models/playhistory.py +136 -0
  64. spotifywebapipython/models/playhistorypage.py +85 -0
  65. spotifywebapipython/models/playlist.py +125 -0
  66. spotifywebapipython/models/playlistpage.py +85 -0
  67. spotifywebapipython/models/playlistpagesimplified.py +107 -0
  68. spotifywebapipython/models/playlistsimplified.py +334 -0
  69. spotifywebapipython/models/playlisttrack.py +143 -0
  70. spotifywebapipython/models/playlisttracksummary.py +80 -0
  71. spotifywebapipython/models/recommendationseed.py +135 -0
  72. spotifywebapipython/models/restrictions.py +86 -0
  73. spotifywebapipython/models/resumepoint.py +79 -0
  74. spotifywebapipython/models/searchresponse.py +391 -0
  75. spotifywebapipython/models/searchresultbase.py +299 -0
  76. spotifywebapipython/models/show.py +87 -0
  77. spotifywebapipython/models/showpagesaved.py +85 -0
  78. spotifywebapipython/models/showpagesimplified.py +88 -0
  79. spotifywebapipython/models/showsaved.py +99 -0
  80. spotifywebapipython/models/showsimplified.py +320 -0
  81. spotifywebapipython/models/spotifyconnectdevice.py +321 -0
  82. spotifywebapipython/models/spotifyconnectdevices.py +441 -0
  83. spotifywebapipython/models/track.py +142 -0
  84. spotifywebapipython/models/trackpage.py +110 -0
  85. spotifywebapipython/models/trackpagesaved.py +85 -0
  86. spotifywebapipython/models/trackpagesimplified.py +88 -0
  87. spotifywebapipython/models/trackrecommendations.py +88 -0
  88. spotifywebapipython/models/tracksaved.py +99 -0
  89. spotifywebapipython/models/tracksimplified.py +398 -0
  90. spotifywebapipython/models/userprofile.py +184 -0
  91. spotifywebapipython/models/userprofilesimplified.py +206 -0
  92. spotifywebapipython/models/zeroconfdiscoveryresult.py +592 -0
  93. spotifywebapipython/models/zeroconfproperty.py +93 -0
  94. spotifywebapipython/oauthcli/__init__.py +7 -0
  95. spotifywebapipython/oauthcli/authclient.py +1229 -0
  96. spotifywebapipython/saappmessages.py +86 -0
  97. spotifywebapipython/sautils.py +285 -0
  98. spotifywebapipython/spotifyapierror.py +66 -0
  99. spotifywebapipython/spotifyapimessage.py +269 -0
  100. spotifywebapipython/spotifyauthtoken.py +264 -0
  101. spotifywebapipython/spotifyclient.py +17885 -0
  102. spotifywebapipython/spotifyconnect/__init__.py +19 -0
  103. spotifywebapipython/spotifyconnect/spotifyconnectdeviceeventargs.py +67 -0
  104. spotifywebapipython/spotifyconnect/spotifyconnectdirectorytask.py +2564 -0
  105. spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastapptask.py +467 -0
  106. spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastcontroller.py +701 -0
  107. spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastlistener.py +359 -0
  108. spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastmultizonelistener.py +212 -0
  109. spotifywebapipython/spotifyconnect/spotifyconnectzeroconfexceptions.py +20 -0
  110. spotifywebapipython/spotifyconnect/spotifyconnectzeroconflistener.py +335 -0
  111. spotifywebapipython/spotifydiscovery.py +473 -0
  112. spotifywebapipython/spotifymediatypes.py +53 -0
  113. spotifywebapipython/spotifywebapiauthenticationerror.py +122 -0
  114. spotifywebapipython/spotifywebapierror.py +106 -0
  115. spotifywebapipython/spotifywebplayertoken.py +743 -0
  116. spotifywebapipython/vibrant/__init__.py +17 -0
  117. spotifywebapipython/vibrant/generator.py +261 -0
  118. spotifywebapipython/vibrant/image.py +100 -0
  119. spotifywebapipython/vibrant/main.py +34 -0
  120. spotifywebapipython/vibrant/models.py +93 -0
  121. spotifywebapipython/vibrant/utils.py +56 -0
  122. spotifywebapipython/zeroconfapi/__init__.py +23 -0
  123. spotifywebapipython/zeroconfapi/authenticationtypes.py +38 -0
  124. spotifywebapipython/zeroconfapi/blobbuilder.py +370 -0
  125. spotifywebapipython/zeroconfapi/credentials.py +37 -0
  126. spotifywebapipython/zeroconfapi/cryptodiffiehellman.py +89 -0
  127. spotifywebapipython/zeroconfapi/helpers.py +64 -0
  128. spotifywebapipython/zeroconfapi/spotifyzeroconfapierror.py +108 -0
  129. spotifywebapipython/zeroconfapi/zeroconfconnect.py +1327 -0
  130. spotifywebapipython/zeroconfapi/zeroconfgetinfo.py +572 -0
  131. spotifywebapipython/zeroconfapi/zeroconfgetinfoalias.py +109 -0
  132. spotifywebapipython/zeroconfapi/zeroconfgetinfodrmmediaformat.py +90 -0
  133. spotifywebapipython/zeroconfapi/zeroconfresponse.py +195 -0
  134. spotifywebapipython-1.0.242.dist-info/LICENSE +22 -0
  135. spotifywebapipython-1.0.242.dist-info/METADATA +219 -0
  136. spotifywebapipython-1.0.242.dist-info/RECORD +138 -0
  137. spotifywebapipython-1.0.242.dist-info/WHEEL +5 -0
  138. spotifywebapipython-1.0.242.dist-info/top_level.txt +1 -0
@@ -0,0 +1,70 @@
1
+ // add event listener to call function after window has been completely loaded.
2
+ window.addEventListener("load", codecopyAddLinkButtons, false);
3
+
4
+ // ********************************************************************
5
+ // add "Copy to Clipboard" button to all code hi-lite blocks.
6
+ // ********************************************************************
7
+ function codecopyAddLinkButtons(){
8
+
9
+ // get list of all code hilite blocks.
10
+ const codehilites = document.querySelectorAll("div.codehilite")
11
+
12
+ // add "copy" button to each element.
13
+ codehilites.forEach(div => {
14
+ const btnCopy = document.createElement("button")
15
+ btnCopy.innerHTML = "Copy to Clipboard"
16
+ btnCopy.addEventListener("click", codecopyClick)
17
+ btnCopy.style.top = "0px"
18
+ btnCopy.style.right = "0px"
19
+ div.append(btnCopy)
20
+ })
21
+ }
22
+
23
+
24
+ // ********************************************************************
25
+ // handles the button click event.
26
+ // copies the code hi-lite text to the clipboard.
27
+ // ********************************************************************
28
+ function codecopyClick(evt) {
29
+
30
+ // get the children of the parent element.
31
+ const { children } = evt.target.parentElement
32
+
33
+ // grab the second element (we append the copy button on afterwards, so the first will be the code element).
34
+ // destructure the innerText from the code block.
35
+ const { innerText } = Array.from(children)[0]
36
+
37
+ // copy all of the code to the clipboard.
38
+ copyToClipboard(innerText)
39
+
40
+ // inform the user it worked.
41
+ evt.target.innerHTML = "Code Copied to Clipboard"
42
+
43
+ // set button text back to normal after 2 seconds.
44
+ setTimeout(function() { evt.target.innerHTML = "Copy to Clipboard"; }, 2000);
45
+ }
46
+
47
+
48
+ // ********************************************************************
49
+ // copies data to the clipboard.
50
+ // ********************************************************************
51
+ const copyToClipboard = str => {
52
+ const el = document.createElement("textarea") // Create a <textarea> element
53
+ el.value = str // Set its value to the string that you want copied
54
+ el.setAttribute("readonly", "") // Make it readonly to be tamper-proof
55
+ el.style.position = "absolute"
56
+ el.style.left = "-9999px" // Move outside the screen to make it invisible
57
+ document.body.appendChild(el) // Append the <textarea> element to the HTML document
58
+ const selected =
59
+ document.getSelection().rangeCount > 0 // Check if there is any content selected previously
60
+ ? document.getSelection().getRangeAt(0) // Store selection if found
61
+ : false // Mark as false to know no selection existed before
62
+ el.select() // Select the <textarea> content
63
+ document.execCommand("copy") // Copy - only works as a result of a user action (e.g. click events)
64
+ document.body.removeChild(el) // Remove the <textarea> element
65
+ if (selected) {
66
+ // If a selection existed before copying
67
+ document.getSelection().removeAllRanges() // Unselect everything on the HTML document
68
+ document.getSelection().addRange(selected) // Restore the original selection
69
+ }
70
+ }
@@ -0,0 +1,514 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <meta name="generator" content="pdoc 14.3.0"/>
7
+ <title>spotifywebapipython &dash; Module Index</title>
8
+ <!-- build env - Package Name = "spotifywebapipython" -->
9
+ <!-- build env - Package Version = "1.0.242" -->
10
+
11
+ <style>/*! * Bootstrap Reboot v5.0.0 (https://getbootstrap.com/) * Copyright 2011-2021 The Bootstrap Authors * Copyright 2011-2021 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}</style>
12
+ <style>/*! syntax-highlighting.css */pre{line-height:125%;}span.linenos{color:inherit; background-color:transparent; padding-left:5px; padding-right:20px;}.pdoc-code .hll{background-color:#49483e}.pdoc-code{background:#272822; color:#f8f8f2}.pdoc-code .c{color:#75715e}.pdoc-code .err{color:#960050; background-color:#1e0010}.pdoc-code .esc{color:#f8f8f2}.pdoc-code .g{color:#f8f8f2}.pdoc-code .k{color:#66d9ef}.pdoc-code .l{color:#ae81ff}.pdoc-code .n{color:#ffc633}.pdoc-code .o{color:#f92672}.pdoc-code .x{color:#f8f8f2}.pdoc-code .p{color:#f8f8f2}.pdoc-code .ch{color:#75715e}.pdoc-code .cm{color:#75715e}.pdoc-code .cp{color:#75715e}.pdoc-code .cpf{color:#75715e}.pdoc-code .c1{color:#75715e}.pdoc-code .cs{color:#75715e}.pdoc-code .gd{color:#f92672}.pdoc-code .ge{color:#f8f8f2; font-style:italic}.pdoc-code .gr{color:#f8f8f2}.pdoc-code .gh{color:#f8f8f2}.pdoc-code .gi{color:#a6e22e}.pdoc-code .go{color:#66d9ef}.pdoc-code .gp{color:#f92672; font-weight:bold}.pdoc-code .gs{color:#f8f8f2; font-weight:bold}.pdoc-code .gu{color:#75715e}.pdoc-code .gt{color:#f8f8f2}.pdoc-code .kc{color:#66d9ef}.pdoc-code .kd{color:#66d9ef}.pdoc-code .kn{color:#f92672}.pdoc-code .kp{color:#66d9ef}.pdoc-code .kr{color:#66d9ef}.pdoc-code .kt{color:#66d9ef}.pdoc-code .ld{color:#e6db74}.pdoc-code .m{color:#ae81ff}.pdoc-code .s{color:#e6db74}.pdoc-code .na{color:#a6e22e}.pdoc-code .nb{color:#f8f8f2}.pdoc-code .nc{color:#a6e22e}.pdoc-code .no{color:#66d9ef}.pdoc-code .nd{color:#a6e22e}.pdoc-code .ni{color:#f8f8f2}.pdoc-code .ne{color:#a6e22e}.pdoc-code .nf{color:#a6e22e}.pdoc-code .nl{color:#f8f8f2}.pdoc-code .nn{color:#f8f8f2}.pdoc-code .nx{color:#a6e22e}.pdoc-code .py{color:#f8f8f2}.pdoc-code .nt{color:#f92672}.pdoc-code .nv{color:#f8f8f2}.pdoc-code .ow{color:#f92672}.pdoc-code .w{color:#f8f8f2}.pdoc-code .mb{color:#ae81ff}.pdoc-code .mf{color:#ae81ff}.pdoc-code .mh{color:#ae81ff}.pdoc-code .mi{color:#ae81ff}.pdoc-code .mo{color:#ae81ff}.pdoc-code .sa{color:#e6db74}.pdoc-code .sb{color:#e6db74}.pdoc-code .sc{color:#e6db74}.pdoc-code .dl{color:#e6db74}.pdoc-code .sd{color:#e6db74}.pdoc-code .s2{color:#e6db74}.pdoc-code .se{color:#ae81ff}.pdoc-code .sh{color:#e6db74}.pdoc-code .si{color:#e6db74}.pdoc-code .sx{color:#e6db74}.pdoc-code .sr{color:#e6db74}.pdoc-code .s1{color:#e6db74}.pdoc-code .ss{color:#e6db74}.pdoc-code .bp{color:#f8f8f2}.pdoc-code .fm{color:#a6e22e}.pdoc-code .vc{color:#f8f8f2}.pdoc-code .vg{color:#f8f8f2}.pdoc-code .vi{color:#f8f8f2}.pdoc-code .vm{color:#f8f8f2}</style>
13
+ <style>/*! theme.css */:root{--pdoc-background:#212529;}.pdoc{--text:#f7f7f7;--muted:#9d9d9d;--link:#58a6ff;--link-hover:#3989ff;--code:#333;--active:#555;--accent:#343434;--accent2:#555;--nav-hover:rgba(0, 0, 0, 0.1);--name:#77C1FF;--def:#0cdd0c;--annotation:#00c037;}</style>
14
+ <style>/*! layout.css */html, body{width:100%;height:100%;}html, main{scroll-behavior:smooth;}body{background-color:var(--pdoc-background);}@media (max-width:769px){#navtoggle{cursor:pointer;position:absolute;width:50px;height:40px;top:1rem;right:1rem;border-color:var(--text);color:var(--text);display:flex;opacity:0.8;z-index:999;}#navtoggle:hover{opacity:1;}#togglestate + div{display:none;}#togglestate:checked + div{display:inherit;}main, header{padding:2rem 3vw;}header + main{margin-top:-3rem;}.git-button{display:none !important;}nav input[type="search"]{max-width:77%;}nav input[type="search"]:first-child{margin-top:-6px;}nav input[type="search"]:valid ~ *{display:none !important;}}@media (min-width:770px){:root{--sidebar-width:clamp(12.5rem, 28vw, 22rem);}nav{position:fixed;overflow:auto;height:100vh;width:var(--sidebar-width);}main, header{padding:3rem 2rem 3rem calc(var(--sidebar-width) + 3rem);width:calc(54rem + var(--sidebar-width));max-width:100%;}header + main{margin-top:-4rem;}#navtoggle{display:none;}}#togglestate{position:absolute;height:0;opacity:0;}nav.pdoc{--pad:clamp(0.5rem, 2vw, 1.75rem);--indent:1.5rem;background-color:var(--accent);border-right:1px solid var(--accent2);box-shadow:0 0 20px rgba(50, 50, 50, .2) inset;padding:0 0 0 var(--pad);overflow-wrap:anywhere;scrollbar-width:thin; scrollbar-color:var(--accent2) transparent; z-index:1}nav.pdoc::-webkit-scrollbar{width:.4rem; }nav.pdoc::-webkit-scrollbar-thumb{background-color:var(--accent2); }nav.pdoc > div{padding:var(--pad) 0;}nav.pdoc .module-list-button{display:inline-flex;align-items:center;color:var(--text);border-color:var(--muted);margin-bottom:1rem;}nav.pdoc .module-list-button:hover{border-color:var(--text);}nav.pdoc input[type=search]{display:block;outline-offset:0;width:calc(100% - var(--pad));}nav.pdoc .logo{max-width:calc(100% - var(--pad));max-height:35vh;display:block;margin:0 auto 1rem;transform:translate(calc(-.5 * var(--pad)), 0);}nav.pdoc ul{list-style:none;padding-left:0;}nav.pdoc > div > ul{margin-left:calc(0px - var(--pad));}nav.pdoc li a{padding:.2rem 0 .2rem calc(var(--pad) + var(--indent));}nav.pdoc > div > ul > li > a{padding-left:var(--pad);}nav.pdoc li{transition:all 100ms;}nav.pdoc li:hover{background-color:var(--nav-hover);}nav.pdoc a, nav.pdoc a:hover{color:var(--text);}nav.pdoc a{display:block;}nav.pdoc > h2:first-of-type{margin-top:1.5rem;}nav.pdoc .class:before{content:"class ";color:var(--muted);}nav.pdoc .function:after{content:"()";color:var(--muted);}nav.pdoc footer:before{content:"";display:block;width:calc(100% - var(--pad));border-top:solid var(--accent2) 1px;margin-top:1.5rem;padding-top:.5rem;}nav.pdoc footer{font-size:small;}</style>
15
+ <style>/*! content.css */.pdoc{color:var(--text);box-sizing:border-box;line-height:1.5;background:none;}.pdoc .pdoc-button{cursor:pointer;display:inline-block;border:solid black 1px;border-radius:2px;font-size:.75rem;padding:calc(0.5em - 1px) 1em;transition:100ms all;}.pdoc .pdoc-alert{padding:1rem 1rem 1rem calc(1.5rem + 24px);border:1px solid transparent;border-radius:.25rem;background-repeat:no-repeat;background-position:1rem center;margin-bottom:1rem;}.pdoc .pdoc-alert > *:last-child{margin-bottom:0;}.pdoc .pdoc-alert-note {color:#084298;background-color:#cfe2ff;border-color:#b6d4fe;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22%23084298%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M8%2016A8%208%200%201%200%208%200a8%208%200%200%200%200%2016zm.93-9.412-1%204.705c-.07.34.029.533.304.533.194%200%20.487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703%200-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381%202.29-.287zM8%205.5a1%201%200%201%201%200-2%201%201%200%200%201%200%202z%22/%3E%3C/svg%3E");}.pdoc .pdoc-alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22%23664d03%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M8.982%201.566a1.13%201.13%200%200%200-1.96%200L.165%2013.233c-.457.778.091%201.767.98%201.767h13.713c.889%200%201.438-.99.98-1.767L8.982%201.566zM8%205c.535%200%20.954.462.9.995l-.35%203.507a.552.552%200%200%201-1.1%200L7.1%205.995A.905.905%200%200%201%208%205zm.002%206a1%201%200%201%201%200%202%201%201%200%200%201%200-2z%22/%3E%3C/svg%3E");}.pdoc .pdoc-alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22%23842029%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M5.52.359A.5.5%200%200%201%206%200h4a.5.5%200%200%201%20.474.658L8.694%206H12.5a.5.5%200%200%201%20.395.807l-7%209a.5.5%200%200%201-.873-.454L6.823%209.5H3.5a.5.5%200%200%201-.48-.641l2.5-8.5z%22/%3E%3C/svg%3E");}.pdoc .visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important;}.pdoc h1, .pdoc h2, .pdoc h3{font-weight:300;margin:.3em 0;padding:.2em 0;}.pdoc > section:not(.module-info) h1{font-size:1.5rem;font-weight:500;}.pdoc > section:not(.module-info) h2{font-size:1.4rem;font-weight:500;}.pdoc > section:not(.module-info) h3{font-size:1.3rem;font-weight:500;}.pdoc > section:not(.module-info) h4{font-size:1.2rem;}.pdoc > section:not(.module-info) h5{font-size:1.1rem;}.pdoc a{text-decoration:none;color:var(--link);}.pdoc a:hover{color:var(--link-hover);}.pdoc blockquote{margin-left:2rem;}.pdoc pre{border-top:1px solid var(--accent2);border-bottom:1px solid var(--accent2);margin-top:0;margin-bottom:1em;padding:.5rem 0 .5rem .5rem;overflow-x:auto;background-color:var(--code);}.pdoc code{color:var(--text);padding:.2em .4em;margin:0;font-size:85%;background-color:var(--accent);border-radius:6px;}.pdoc a > code{color:inherit;}.pdoc pre > code{display:inline-block;font-size:inherit;background:none;border:none;padding:0;}.pdoc > section:not(.module-info){margin-bottom:1.5rem;}.pdoc .modulename{margin-top:0;font-weight:bold;}.pdoc .modulename a{color:var(--link);transition:100ms all;}.pdoc .git-button{float:right;border:solid var(--link) 1px;}.pdoc .git-button:hover{background-color:var(--link);color:var(--pdoc-background);}.view-source-toggle-state,.view-source-toggle-state ~ .pdoc-code{display:none;}.view-source-toggle-state:checked ~ .pdoc-code{display:block;}.view-source-button{display:inline-block;float:right;font-size:.75rem;line-height:1.5rem;color:var(--muted);padding:0 .4rem 0 1.3rem;cursor:pointer;text-indent:-2px;}.view-source-button > span{visibility:hidden;}.module-info .view-source-button{float:none;display:flex;justify-content:flex-end;margin:-1.2rem .4rem -.2rem 0;}.view-source-button::before{position:absolute;content:"View Source";display:list-item;list-style-type:disclosure-closed;}.view-source-toggle-state:checked ~ .attr .view-source-button::before,.view-source-toggle-state:checked ~ .view-source-button::before{list-style-type:disclosure-open;}.pdoc .docstring{margin-bottom:1.5rem;}.pdoc section:not(.module-info) .docstring{margin-left:clamp(0rem, 5vw - 2rem, 1rem);}.pdoc .docstring .pdoc-code{margin-left:1em;margin-right:1em;}.pdoc h1:target,.pdoc h2:target,.pdoc h3:target,.pdoc h4:target,.pdoc h5:target,.pdoc h6:target,.pdoc .pdoc-code > pre > span:target{background-color:var(--active);box-shadow:-1rem 0 0 0 var(--active);}.pdoc .pdoc-code > pre > span:target{display:block;}.pdoc div:target > .attr,.pdoc section:target > .attr,.pdoc dd:target > a{background-color:var(--active);}.pdoc *{scroll-margin:2rem;}.pdoc .pdoc-code .linenos{user-select:none;}.pdoc .attr:hover{filter:contrast(0.95);}.pdoc section, .pdoc .classattr{position:relative;}.pdoc .headerlink{--width:clamp(1rem, 3vw, 2rem);position:absolute;top:0;left:calc(0rem - var(--width));transition:all 100ms ease-in-out;opacity:0;}.pdoc .headerlink::before{content:"#";display:block;text-align:center;width:var(--width);height:2.3rem;line-height:2.3rem;font-size:1.5rem;}.pdoc .attr:hover ~ .headerlink,.pdoc *:target > .headerlink,.pdoc .headerlink:hover{opacity:1;}.pdoc .attr{display:block;margin:.5rem 0 .5rem;padding:.4rem .4rem .4rem 1rem;background-color:var(--accent);overflow-x:auto;}.pdoc .classattr{margin-left:2rem;}.pdoc .name{color:var(--name);font-weight:bold;}.pdoc .def{color:var(--def);font-weight:bold;}.pdoc .signature{background-color:transparent;}.pdoc .param, .pdoc .return-annotation{white-space:pre;}.pdoc .signature.multiline .param{display:block;}.pdoc .signature.condensed .param{display:inline-block;}.pdoc .annotation{color:var(--annotation);}.pdoc .view-value-toggle-state,.pdoc .view-value-toggle-state ~ .default_value{display:none;}.pdoc .view-value-toggle-state:checked ~ .default_value{display:inherit;}.pdoc .view-value-button{font-size:.5rem;vertical-align:middle;border-style:dashed;margin-top:-0.1rem;}.pdoc .view-value-button:hover{background:white;}.pdoc .view-value-button::before{content:"show";text-align:center;width:2.2em;display:inline-block;}.pdoc .view-value-toggle-state:checked ~ .view-value-button::before{content:"hide";}.pdoc .inherited{margin-left:2rem;}.pdoc .inherited dt{font-weight:700;}.pdoc .inherited dt, .pdoc .inherited dd{display:inline;margin-left:0;margin-bottom:.5rem;}.pdoc .inherited dd:not(:last-child):after{content:", ";}.pdoc .inherited .class:before{content:"class ";}.pdoc .inherited .function a:after{content:"()";}.pdoc .search-result .docstring{overflow:auto;max-height:25vh;}.pdoc .search-result.focused > .attr{background-color:var(--active);}.pdoc .attribution{margin-top:2rem;display:block;opacity:0.5;transition:all 200ms;filter:grayscale(100%);}.pdoc .attribution:hover{opacity:1;filter:grayscale(0%);}.pdoc .attribution img{margin-left:5px;height:35px;vertical-align:middle;width:70px;transition:all 200ms;}.pdoc table{display:block;width:max-content;max-width:100%;overflow:auto;margin-bottom:1rem;}.pdoc table th{font-weight:600;}.pdoc table th, .pdoc table td{padding:6px 13px;border:1px solid var(--accent2);}</style>
16
+ <style>/*! custom.css */.deprecated{ color:#f62817; font-weight:bolder;}.warning{ color:orange; font-weight:normal;}.modulename{color:#58a6ff;}.signature .param span{color:#ffc633;}.docstring #arguments ~ ul strong{color:#ffc633;}.docstring #raises ~ ul strong{color:#f62817 !important;}#change-log ~ h6{ color:#ffc633;}details summary{ color:#58a6ff;}.footertext{ color:#58a6ff;}.pdoc .docstring .pdoc-code{ margin-left:0; margin-right:0;}div.codehilite{ background-color:var(--code); border-bottom:1px solid var(--accent2);}div.codehilite button{ color:var(--link); background:var(--pdoc-background); background-color:var(--code); border:none; box-sizing:border-box; transition:0.2s ease-out; cursor:pointer; user-select:none; padding:5px 10px; font-size:0.8em; z-index:9999; margin:2px; border-radius:0 0.15rem;}div.codehilite pre{ margin-bottom:0px;}</style>
17
+ <style>header.pdoc{display:flex;align-items:center;flex-wrap:wrap;}header.pdoc img{max-width:200px;max-height:75px;padding-right:2rem;}header.pdoc input[type=search]{outline-offset:0;font-size:1.5rem;min-width:60%;flex-grow:1;padding-left:.5rem;margin:1.75rem 0;}</style></head>
18
+ <body>
19
+ <nav class="pdoc">
20
+ <label id="navtoggle" for="togglestate" class="pdoc-button"><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke-linecap='round' stroke="currentColor" stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg></label>
21
+ <input id="togglestate" type="checkbox" aria-hidden="true" tabindex="-1">
22
+ <div> <h2>Available Modules</h2>
23
+ <ul>
24
+ <li><a href="__init__.html">
25
+ <span class="modulename">Module Overview</span>
26
+ </a></li>
27
+ <li><a href="spotifywebapipython/models/album.html">
28
+ models.album
29
+ </a></li>
30
+ <li><a href="spotifywebapipython/models/albumpagesaved.html">
31
+ models.albumpagesaved
32
+ </a></li>
33
+ <li><a href="spotifywebapipython/models/albumpagesimplified.html">
34
+ models.albumpagesimplified
35
+ </a></li>
36
+ <li><a href="spotifywebapipython/models/albumsaved.html">
37
+ models.albumsaved
38
+ </a></li>
39
+ <li><a href="spotifywebapipython/models/albumsimplified.html">
40
+ models.albumsimplified
41
+ </a></li>
42
+ <li><a href="spotifywebapipython/models/artist.html">
43
+ models.artist
44
+ </a></li>
45
+ <li><a href="spotifywebapipython/models/artistpage.html">
46
+ models.artistpage
47
+ </a></li>
48
+ <li><a href="spotifywebapipython/models/artistsimplified.html">
49
+ models.artistsimplified
50
+ </a></li>
51
+ <li><a href="spotifywebapipython/models/audiobook.html">
52
+ models.audiobook
53
+ </a></li>
54
+ <li><a href="spotifywebapipython/models/audiobookpagesimplified.html">
55
+ models.audiobookpagesimplified
56
+ </a></li>
57
+ <li><a href="spotifywebapipython/models/audiobooksimplified.html">
58
+ models.audiobooksimplified
59
+ </a></li>
60
+ <li><a href="spotifywebapipython/models/audiofeatures.html">
61
+ models.audiofeatures
62
+ </a></li>
63
+ <li><a href="spotifywebapipython/models/author.html">
64
+ models.author
65
+ </a></li>
66
+ <li><a href="spotifywebapipython/models/category.html">
67
+ models.category
68
+ </a></li>
69
+ <li><a href="spotifywebapipython/models/categorypage.html">
70
+ models.categorypage
71
+ </a></li>
72
+ <li><a href="spotifywebapipython/models/chapter.html">
73
+ models.chapter
74
+ </a></li>
75
+ <li><a href="spotifywebapipython/models/chapterpagesimplified.html">
76
+ models.chapterpagesimplified
77
+ </a></li>
78
+ <li><a href="spotifywebapipython/models/chaptersimplified.html">
79
+ models.chaptersimplified
80
+ </a></li>
81
+ <li><a href="spotifywebapipython/models/context.html">
82
+ models.context
83
+ </a></li>
84
+ <li><a href="spotifywebapipython/models/copyright.html">
85
+ models.copyright
86
+ </a></li>
87
+ <li><a href="spotifywebapipython/models/device.html">
88
+ models.device
89
+ </a></li>
90
+ <li><a href="spotifywebapipython/models/episode.html">
91
+ models.episode
92
+ </a></li>
93
+ <li><a href="spotifywebapipython/models/episodepagesaved.html">
94
+ models.episodepagesaved
95
+ </a></li>
96
+ <li><a href="spotifywebapipython/models/episodepagesimplified.html">
97
+ models.episodepagesimplified
98
+ </a></li>
99
+ <li><a href="spotifywebapipython/models/episodesaved.html">
100
+ models.episodesaved
101
+ </a></li>
102
+ <li><a href="spotifywebapipython/models/episodesimplified.html">
103
+ models.episodesimplified
104
+ </a></li>
105
+ <li><a href="spotifywebapipython/models/explicitcontent.html">
106
+ models.explicitcontent
107
+ </a></li>
108
+ <li><a href="spotifywebapipython/models/externalids.html">
109
+ models.externalids
110
+ </a></li>
111
+ <li><a href="spotifywebapipython/models/externalurls.html">
112
+ models.externalurls
113
+ </a></li>
114
+ <li><a href="spotifywebapipython/models/followers.html">
115
+ models.followers
116
+ </a></li>
117
+ <li><a href="spotifywebapipython/models/imageobject.html">
118
+ models.imageobject
119
+ </a></li>
120
+ <li><a href="spotifywebapipython/models/imagevibrantcolors.html">
121
+ models.imagevibrantcolors
122
+ </a></li>
123
+ <li><a href="spotifywebapipython/models/narrator.html">
124
+ models.narrator
125
+ </a></li>
126
+ <li><a href="spotifywebapipython/models/owner.html">
127
+ models.owner
128
+ </a></li>
129
+ <li><a href="spotifywebapipython/models/pageobject.html">
130
+ models.pageobject
131
+ </a></li>
132
+ <li><a href="spotifywebapipython/models/playeractions.html">
133
+ models.playeractions
134
+ </a></li>
135
+ <li><a href="spotifywebapipython/models/playerlastplayedinfo.html">
136
+ models.playerlastplayedinfo
137
+ </a></li>
138
+ <li><a href="spotifywebapipython/models/playerplaystate.html">
139
+ models.playerplaystate
140
+ </a></li>
141
+ <li><a href="spotifywebapipython/models/playerqueueinfo.html">
142
+ models.playerqueueinfo
143
+ </a></li>
144
+ <li><a href="spotifywebapipython/models/playhistory.html">
145
+ models.playhistory
146
+ </a></li>
147
+ <li><a href="spotifywebapipython/models/playhistorypage.html">
148
+ models.playhistorypage
149
+ </a></li>
150
+ <li><a href="spotifywebapipython/models/playlist.html">
151
+ models.playlist
152
+ </a></li>
153
+ <li><a href="spotifywebapipython/models/playlistpage.html">
154
+ models.playlistpage
155
+ </a></li>
156
+ <li><a href="spotifywebapipython/models/playlistpagesimplified.html">
157
+ models.playlistpagesimplified
158
+ </a></li>
159
+ <li><a href="spotifywebapipython/models/playlistsimplified.html">
160
+ models.playlistsimplified
161
+ </a></li>
162
+ <li><a href="spotifywebapipython/models/playlisttrack.html">
163
+ models.playlisttrack
164
+ </a></li>
165
+ <li><a href="spotifywebapipython/models/playlisttracksummary.html">
166
+ models.playlisttracksummary
167
+ </a></li>
168
+ <li><a href="spotifywebapipython/models/recommendationseed.html">
169
+ models.recommendationseed
170
+ </a></li>
171
+ <li><a href="spotifywebapipython/models/restrictions.html">
172
+ models.restrictions
173
+ </a></li>
174
+ <li><a href="spotifywebapipython/models/resumepoint.html">
175
+ models.resumepoint
176
+ </a></li>
177
+ <li><a href="spotifywebapipython/models/searchresponse.html">
178
+ models.searchresponse
179
+ </a></li>
180
+ <li><a href="spotifywebapipython/models/searchresultbase.html">
181
+ models.searchresultbase
182
+ </a></li>
183
+ <li><a href="spotifywebapipython/models/show.html">
184
+ models.show
185
+ </a></li>
186
+ <li><a href="spotifywebapipython/models/showpagesaved.html">
187
+ models.showpagesaved
188
+ </a></li>
189
+ <li><a href="spotifywebapipython/models/showpagesimplified.html">
190
+ models.showpagesimplified
191
+ </a></li>
192
+ <li><a href="spotifywebapipython/models/showsaved.html">
193
+ models.showsaved
194
+ </a></li>
195
+ <li><a href="spotifywebapipython/models/showsimplified.html">
196
+ models.showsimplified
197
+ </a></li>
198
+ <li><a href="spotifywebapipython/models/spotifyconnectdevice.html">
199
+ models.spotifyconnectdevice
200
+ </a></li>
201
+ <li><a href="spotifywebapipython/models/spotifyconnectdevices.html">
202
+ models.spotifyconnectdevices
203
+ </a></li>
204
+ <li><a href="spotifywebapipython/models/track.html">
205
+ models.track
206
+ </a></li>
207
+ <li><a href="spotifywebapipython/models/trackpage.html">
208
+ models.trackpage
209
+ </a></li>
210
+ <li><a href="spotifywebapipython/models/trackpagesaved.html">
211
+ models.trackpagesaved
212
+ </a></li>
213
+ <li><a href="spotifywebapipython/models/trackpagesimplified.html">
214
+ models.trackpagesimplified
215
+ </a></li>
216
+ <li><a href="spotifywebapipython/models/trackrecommendations.html">
217
+ models.trackrecommendations
218
+ </a></li>
219
+ <li><a href="spotifywebapipython/models/tracksaved.html">
220
+ models.tracksaved
221
+ </a></li>
222
+ <li><a href="spotifywebapipython/models/tracksimplified.html">
223
+ models.tracksimplified
224
+ </a></li>
225
+ <li><a href="spotifywebapipython/models/userprofile.html">
226
+ models.userprofile
227
+ </a></li>
228
+ <li><a href="spotifywebapipython/models/userprofilesimplified.html">
229
+ models.userprofilesimplified
230
+ </a></li>
231
+ <li><a href="spotifywebapipython/models/zeroconfdiscoveryresult.html">
232
+ models.zeroconfdiscoveryresult
233
+ </a></li>
234
+ <li><a href="spotifywebapipython/models/zeroconfproperty.html">
235
+ models.zeroconfproperty
236
+ </a></li>
237
+ <li><a href="spotifywebapipython/oauthcli/authclient.html">
238
+ oauthcli.authclient
239
+ </a></li>
240
+ <li><a href="spotifywebapipython/spotifyconnect/spotifyconnectdeviceeventargs.html">
241
+ spotifyconnect.spotifyconnectdeviceeventargs
242
+ </a></li>
243
+ <li><a href="spotifywebapipython/spotifyconnect/spotifyconnectdirectorytask.html">
244
+ spotifyconnect.spotifyconnectdirectorytask
245
+ </a></li>
246
+ <li><a href="spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastapptask.html">
247
+ spotifyconnect.spotifyconnectzeroconfcastapptask
248
+ </a></li>
249
+ <li><a href="spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastcontroller.html">
250
+ spotifyconnect.spotifyconnectzeroconfcastcontroller
251
+ </a></li>
252
+ <li><a href="spotifywebapipython/spotifyconnect/spotifyconnectzeroconfcastlistener.html">
253
+ spotifyconnect.spotifyconnectzeroconfcastlistener
254
+ </a></li>
255
+ <li><a href="spotifywebapipython/spotifyconnect/spotifyconnectzeroconfexceptions.html">
256
+ spotifyconnect.spotifyconnectzeroconfexceptions
257
+ </a></li>
258
+ <li><a href="spotifywebapipython/spotifyconnect/spotifyconnectzeroconflistener.html">
259
+ spotifyconnect.spotifyconnectzeroconflistener
260
+ </a></li>
261
+ <li><a href="spotifywebapipython/zeroconfapi/spotifyzeroconfapierror.html">
262
+ zeroconfapi.spotifyzeroconfapierror
263
+ </a></li>
264
+ <li><a href="spotifywebapipython/zeroconfapi/zeroconfconnect.html">
265
+ zeroconfapi.zeroconfconnect
266
+ </a></li>
267
+ <li><a href="spotifywebapipython/zeroconfapi/zeroconfgetinfo.html">
268
+ zeroconfapi.zeroconfgetinfo
269
+ </a></li>
270
+ <li><a href="spotifywebapipython/zeroconfapi/zeroconfgetinfoalias.html">
271
+ zeroconfapi.zeroconfgetinfoalias
272
+ </a></li>
273
+ <li><a href="spotifywebapipython/zeroconfapi/zeroconfgetinfodrmmediaformat.html">
274
+ zeroconfapi.zeroconfgetinfodrmmediaformat
275
+ </a></li>
276
+ <li><a href="spotifywebapipython/zeroconfapi/zeroconfresponse.html">
277
+ zeroconfapi.zeroconfresponse
278
+ </a></li>
279
+ <li><a href="spotifywebapipython/const.html">
280
+ const
281
+ </a></li>
282
+ <li><a href="spotifywebapipython/saappmessages.html">
283
+ saappmessages
284
+ </a></li>
285
+ <li><a href="spotifywebapipython/sautils.html">
286
+ sautils
287
+ </a></li>
288
+ <li><a href="spotifywebapipython/spotifyapierror.html">
289
+ spotifyapierror
290
+ </a></li>
291
+ <li><a href="spotifywebapipython/spotifyapimessage.html">
292
+ spotifyapimessage
293
+ </a></li>
294
+ <li><a href="spotifywebapipython/spotifyauthtoken.html">
295
+ spotifyauthtoken
296
+ </a></li>
297
+ <li><a href="spotifywebapipython/spotifyclient.html">
298
+ spotifyclient
299
+ </a></li>
300
+ <li><a href="spotifywebapipython/spotifydiscovery.html">
301
+ spotifydiscovery
302
+ </a></li>
303
+ <li><a href="spotifywebapipython/spotifywebapiauthenticationerror.html">
304
+ spotifywebapiauthenticationerror
305
+ </a></li>
306
+ <li><a href="spotifywebapipython/spotifywebapierror.html">
307
+ spotifywebapierror
308
+ </a></li>
309
+ <li><a href="spotifywebapipython/spotifywebplayertoken.html">
310
+ spotifywebplayertoken
311
+ </a></li>
312
+ </ul>
313
+ <footer class="footertext">
314
+ spotifywebapipython</br>
315
+ Version 1.0.242</br>
316
+ <a href="https://developer.spotify.com/documentation/web-api" target="_blank">
317
+ <img src="spotifywebapipython.ico" alt="brand icon" style="width:32px; height:32px; padding:4px;"/>
318
+ A Spotify Web Api Client
319
+ </a>
320
+ </footer>
321
+ </div>
322
+ </nav>
323
+ <header class="pdoc">
324
+ <h1 class="modulename">spotifywebapipython API Documentation</h1>
325
+ <a style="display:none" href="https://pdoc.dev">
326
+ <img src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20role%3D%22img%22%20aria-label%3D%22pdoc%20logo%22%20width%3D%22300%22%20height%3D%22150%22%20viewBox%3D%22-1%200%2060%2030%22%3E%3Ctitle%3Epdoc%3C/title%3E%3Cpath%20d%3D%22M29.621%2021.293c-.011-.273-.214-.475-.511-.481a.5.5%200%200%200-.489.503l-.044%201.393c-.097.551-.695%201.215-1.566%201.704-.577.428-1.306.486-2.193.182-1.426-.617-2.467-1.654-3.304-2.487l-.173-.172a3.43%203.43%200%200%200-.365-.306.49.49%200%200%200-.286-.196c-1.718-1.06-4.931-1.47-7.353.191l-.219.15c-1.707%201.187-3.413%202.131-4.328%201.03-.02-.027-.49-.685-.141-1.763.233-.721.546-2.408.772-4.076.042-.09.067-.187.046-.288.166-1.347.277-2.625.241-3.351%201.378-1.008%202.271-2.586%202.271-4.362%200-.976-.272-1.935-.788-2.774-.057-.094-.122-.18-.184-.268.033-.167.052-.339.052-.516%200-1.477-1.202-2.679-2.679-2.679-.791%200-1.496.352-1.987.9a6.3%206.3%200%200%200-1.001.029c-.492-.564-1.207-.929-2.012-.929-1.477%200-2.679%201.202-2.679%202.679A2.65%202.65%200%200%200%20.97%206.554c-.383.747-.595%201.572-.595%202.41%200%202.311%201.507%204.29%203.635%205.107-.037.699-.147%202.27-.423%203.294l-.137.461c-.622%202.042-2.515%208.257%201.727%2010.643%201.614.908%203.06%201.248%204.317%201.248%202.665%200%204.492-1.524%205.322-2.401%201.476-1.559%202.886-1.854%206.491.82%201.877%201.393%203.514%201.753%204.861%201.068%202.223-1.713%202.811-3.867%203.399-6.374.077-.846.056-1.469.054-1.537zm-4.835%204.313c-.054.305-.156.586-.242.629-.034-.007-.131-.022-.307-.157-.145-.111-.314-.478-.456-.908.221.121.432.25.675.355.115.039.219.051.33.081zm-2.251-1.238c-.05.33-.158.648-.252.694-.022.001-.125-.018-.307-.157-.217-.166-.488-.906-.639-1.573.358.344.754.693%201.198%201.036zm-3.887-2.337c-.006-.116-.018-.231-.041-.342.635.145%201.189.368%201.599.625.097.231.166.481.174.642-.03.049-.055.101-.067.158-.046.013-.128.026-.298.004-.278-.037-.901-.57-1.367-1.087zm-1.127-.497c.116.306.176.625.12.71-.019.014-.117.045-.345.016-.206-.027-.604-.332-.986-.695.41-.051.816-.056%201.211-.031zm-4.535%201.535c.209.22.379.47.358.598-.006.041-.088.138-.351.234-.144.055-.539-.063-.979-.259a11.66%2011.66%200%200%200%20.972-.573zm.983-.664c.359-.237.738-.418%201.126-.554.25.237.479.548.457.694-.006.042-.087.138-.351.235-.174.064-.694-.105-1.232-.375zm-3.381%201.794c-.022.145-.061.29-.149.401-.133.166-.358.248-.69.251h-.002c-.133%200-.306-.26-.45-.621.417.091.854.07%201.291-.031zm-2.066-8.077a4.78%204.78%200%200%201-.775-.584c.172-.115.505-.254.88-.378l-.105.962zm-.331%202.302a10.32%2010.32%200%200%201-.828-.502c.202-.143.576-.328.984-.49l-.156.992zm-.45%202.157l-.701-.403c.214-.115.536-.249.891-.376a11.57%2011.57%200%200%201-.19.779zm-.181%201.716c.064.398.194.702.298.893-.194-.051-.435-.162-.736-.398.061-.119.224-.3.438-.495zM8.87%204.141c0%20.152-.123.276-.276.276s-.275-.124-.275-.276.123-.276.276-.276.275.124.275.276zm-.735-.389a1.15%201.15%200%200%200-.314.783%201.16%201.16%200%200%200%201.162%201.162c.457%200%20.842-.27%201.032-.653.026.117.042.238.042.362a1.68%201.68%200%200%201-1.679%201.679%201.68%201.68%200%200%201-1.679-1.679c0-.843.626-1.535%201.436-1.654zM5.059%205.406A1.68%201.68%200%200%201%203.38%207.085a1.68%201.68%200%200%201-1.679-1.679c0-.037.009-.072.011-.109.21.3.541.508.935.508a1.16%201.16%200%200%200%201.162-1.162%201.14%201.14%200%200%200-.474-.912c.015%200%20.03-.005.045-.005.926.001%201.679.754%201.679%201.68zM3.198%204.141c0%20.152-.123.276-.276.276s-.275-.124-.275-.276.123-.276.276-.276.275.124.275.276zM1.375%208.964c0-.52.103-1.035.288-1.52.466.394%201.06.64%201.717.64%201.144%200%202.116-.725%202.499-1.738.383%201.012%201.355%201.738%202.499%201.738.867%200%201.631-.421%202.121-1.062.307.605.478%201.267.478%201.942%200%202.486-2.153%204.51-4.801%204.51s-4.801-2.023-4.801-4.51zm24.342%2019.349c-.985.498-2.267.168-3.813-.979-3.073-2.281-5.453-3.199-7.813-.705-1.315%201.391-4.163%203.365-8.423.97-3.174-1.786-2.239-6.266-1.261-9.479l.146-.492c.276-1.02.395-2.457.444-3.268a6.11%206.11%200%200%200%201.18.115%206.01%206.01%200%200%200%202.536-.562l-.006.175c-.802.215-1.848.612-2.021%201.25-.079.295.021.601.274.837.219.203.415.364.598.501-.667.304-1.243.698-1.311%201.179-.02.144-.022.507.393.787.213.144.395.26.564.365-1.285.521-1.361.96-1.381%201.126-.018.142-.011.496.427.746l.854.489c-.473.389-.971.914-.999%201.429-.018.278.095.532.316.713.675.556%201.231.721%201.653.721.059%200%20.104-.014.158-.02.207.707.641%201.64%201.513%201.64h.013c.8-.008%201.236-.345%201.462-.626.173-.216.268-.457.325-.692.424.195.93.374%201.372.374.151%200%20.294-.021.423-.068.732-.27.944-.704.993-1.021.009-.061.003-.119.002-.179.266.086.538.147.789.147.15%200%20.294-.021.423-.069.542-.2.797-.489.914-.754.237.147.478.258.704.288.106.014.205.021.296.021.356%200%20.595-.101.767-.229.438.435%201.094.992%201.656%201.067.106.014.205.021.296.021a1.56%201.56%200%200%200%20.323-.035c.17.575.453%201.289.866%201.605.358.273.665.362.914.362a.99.99%200%200%200%20.421-.093%201.03%201.03%200%200%200%20.245-.164c.168.428.39.846.68%201.068.358.273.665.362.913.362a.99.99%200%200%200%20.421-.093c.317-.148.512-.448.639-.762.251.157.495.257.726.257.127%200%20.25-.024.37-.071.427-.17.706-.617.841-1.314.022-.015.047-.022.068-.038.067-.051.133-.104.196-.159-.443%201.486-1.107%202.761-2.086%203.257zM8.66%209.925a.5.5%200%201%200-1%200c0%20.653-.818%201.205-1.787%201.205s-1.787-.552-1.787-1.205a.5.5%200%201%200-1%200c0%201.216%201.25%202.205%202.787%202.205s2.787-.989%202.787-2.205zm4.4%2015.965l-.208.097c-2.661%201.258-4.708%201.436-6.086.527-1.542-1.017-1.88-3.19-1.844-4.198a.4.4%200%200%200-.385-.414c-.242-.029-.406.164-.414.385-.046%201.249.367%203.686%202.202%204.896.708.467%201.547.7%202.51.7%201.248%200%202.706-.392%204.362-1.174l.185-.086a.4.4%200%200%200%20.205-.527c-.089-.204-.326-.291-.527-.206zM9.547%202.292c.093.077.205.114.317.114a.5.5%200%200%200%20.318-.886L8.817.397a.5.5%200%200%200-.703.068.5.5%200%200%200%20.069.703l1.364%201.124zm-7.661-.065c.086%200%20.173-.022.253-.068l1.523-.893a.5.5%200%200%200-.506-.863l-1.523.892a.5.5%200%200%200-.179.685c.094.158.261.247.432.247z%22%20transform%3D%22matrix%28-1%200%200%201%2058%200%29%22%20fill%3D%22%233bb300%22/%3E%3Cpath%20d%3D%22M.3%2021.86V10.18q0-.46.02-.68.04-.22.18-.5.28-.54%201.34-.54%201.06%200%201.42.28.38.26.44.78.76-1.04%202.38-1.04%201.64%200%203.1%201.54%201.46%201.54%201.46%203.58%200%202.04-1.46%203.58-1.44%201.54-3.08%201.54-1.64%200-2.38-.92v4.04q0%20.46-.04.68-.02.22-.18.5-.14.3-.5.42-.36.12-.98.12-.62%200-1-.12-.36-.12-.52-.4-.14-.28-.18-.5-.02-.22-.02-.68zm3.96-9.42q-.46.54-.46%201.18%200%20.64.46%201.18.48.52%201.2.52.74%200%201.24-.52.52-.52.52-1.18%200-.66-.48-1.18-.48-.54-1.26-.54-.76%200-1.22.54zm14.741-8.36q.16-.3.54-.42.38-.12%201-.12.64%200%201.02.12.38.12.52.42.16.3.18.54.04.22.04.68v11.94q0%20.46-.04.7-.02.22-.18.5-.3.54-1.7.54-1.38%200-1.54-.98-.84.96-2.34.96-1.8%200-3.28-1.56-1.48-1.58-1.48-3.66%200-2.1%201.48-3.68%201.5-1.58%203.28-1.58%201.48%200%202.3%201v-4.2q0-.46.02-.68.04-.24.18-.52zm-3.24%2010.86q.52.54%201.26.54.74%200%201.22-.54.5-.54.5-1.18%200-.66-.48-1.22-.46-.56-1.26-.56-.8%200-1.28.56-.48.54-.48%201.2%200%20.66.52%201.2zm7.833-1.2q0-2.4%201.68-3.96%201.68-1.56%203.84-1.56%202.16%200%203.82%201.56%201.66%201.54%201.66%203.94%200%201.66-.86%202.96-.86%201.28-2.1%201.9-1.22.6-2.54.6-1.32%200-2.56-.64-1.24-.66-2.1-1.92-.84-1.28-.84-2.88zm4.18%201.44q.64.48%201.3.48.66%200%201.32-.5.66-.5.66-1.48%200-.98-.62-1.46-.62-.48-1.34-.48-.72%200-1.34.5-.62.5-.62%201.48%200%20.96.64%201.46zm11.412-1.44q0%20.84.56%201.32.56.46%201.18.46.64%200%201.18-.36.56-.38.9-.38.6%200%201.46%201.06.46.58.46%201.04%200%20.76-1.1%201.42-1.14.8-2.8.8-1.86%200-3.58-1.34-.82-.64-1.34-1.7-.52-1.08-.52-2.36%200-1.3.52-2.34.52-1.06%201.34-1.7%201.66-1.32%203.54-1.32.76%200%201.48.22.72.2%201.06.4l.32.2q.36.24.56.38.52.4.52.92%200%20.5-.42%201.14-.72%201.1-1.38%201.1-.38%200-1.08-.44-.36-.34-1.04-.34-.66%200-1.24.48-.58.48-.58%201.34z%22%20fill%3D%22green%22/%3E%3C/svg%3E"
327
+ alt="pdoc"/>
328
+ </a>
329
+ <input type="search" placeholder="Search API Documentation..." aria-label="search box">
330
+ </header>
331
+ <main class="pdoc"></main>
332
+ <script>
333
+ function escapeHTML(html) {
334
+ return document.createElement('div').appendChild(document.createTextNode(html)).parentNode.innerHTML;
335
+ }
336
+
337
+ const originalContent = document.querySelector("main.pdoc");
338
+ let currentContent = originalContent;
339
+
340
+ function setContent(innerHTML) {
341
+ let elem;
342
+ if (innerHTML) {
343
+ elem = document.createElement("main");
344
+ elem.classList.add("pdoc");
345
+ elem.innerHTML = innerHTML;
346
+ } else {
347
+ elem = originalContent;
348
+ }
349
+ if (currentContent !== elem) {
350
+ currentContent.replaceWith(elem);
351
+ currentContent = elem;
352
+ }
353
+ }
354
+
355
+ function getSearchTerm() {
356
+ return (new URL(window.location)).searchParams.get("search");
357
+ }
358
+
359
+ const searchBox = document.querySelector(".pdoc input[type=search]");
360
+ searchBox.addEventListener("input", function () {
361
+ let url = new URL(window.location);
362
+ if (searchBox.value.trim()) {
363
+ url.hash = "";
364
+ url.searchParams.set("search", searchBox.value);
365
+ } else {
366
+ url.searchParams.delete("search");
367
+ }
368
+ history.replaceState("", "", url.toString());
369
+ onInput();
370
+ });
371
+ window.addEventListener("popstate", onInput);
372
+
373
+
374
+ let search, searchErr;
375
+
376
+ async function initialize() {
377
+ try {
378
+ search = await new Promise((resolve, reject) => {
379
+ const script = document.createElement("script");
380
+ script.type = "text/javascript";
381
+ script.async = true;
382
+ script.onload = () => resolve(window.pdocSearch);
383
+ script.onerror = (e) => reject(e);
384
+ script.src = "search.js";
385
+ document.getElementsByTagName("head")[0].appendChild(script);
386
+ });
387
+ } catch (e) {
388
+ console.error("Cannot fetch pdoc search index");
389
+ searchErr = "Cannot fetch search index.";
390
+ }
391
+ onInput();
392
+
393
+ document.querySelector("nav.pdoc").addEventListener("click", e => {
394
+ if (e.target.hash) {
395
+ searchBox.value = "";
396
+ searchBox.dispatchEvent(new Event("input"));
397
+ }
398
+ });
399
+ }
400
+
401
+ function onInput() {
402
+ setContent((() => {
403
+ const term = getSearchTerm();
404
+ if (!term) {
405
+ return null
406
+ }
407
+ if (searchErr) {
408
+ return `<h3>Error: ${searchErr}</h3>`
409
+ }
410
+ if (!search) {
411
+ return "<h3>Searching...</h3>"
412
+ }
413
+
414
+ window.scrollTo({top: 0, left: 0, behavior: 'auto'});
415
+
416
+ const results = search(term);
417
+
418
+ let html;
419
+ if (results.length === 0) {
420
+ html = `No search results for '${escapeHTML(term)}'.`
421
+ } else {
422
+ html = `<h4>${results.length} search result${results.length > 1 ? "s" : ""} for '${escapeHTML(term)}'.</h4>`;
423
+ }
424
+ for (let result of results.slice(0, 10)) {
425
+ let doc = result.doc;
426
+ let url = `${doc.modulename.replaceAll(".", "/")}.html`;
427
+ if (doc.qualname) {
428
+ url += `#${doc.qualname}`;
429
+ }
430
+
431
+ let heading;
432
+ switch (result.doc.kind) {
433
+ case "function":
434
+ if (doc.fullname.endsWith(".__init__")) {
435
+ heading = `<span class="name">${doc.fullname.replace(/\.__init__$/, "")}</span>${doc.signature}`;
436
+ } else {
437
+ heading = `<span class="def">${doc.funcdef}</span> <span class="name">${doc.fullname}</span>${doc.signature}`;
438
+ }
439
+ break;
440
+ case "class":
441
+ heading = `<span class="def">class</span> <span class="name">${doc.fullname}</span>`;
442
+ if (doc.bases)
443
+ heading += `<wbr>(<span class="base">${doc.bases}</span>)`;
444
+ heading += `:`;
445
+ break;
446
+ case "variable":
447
+ heading = `<span class="name">${doc.fullname}</span>`;
448
+ if (doc.annotation)
449
+ heading += `<span class="annotation">${doc.annotation}</span>`;
450
+ if (doc.default_value)
451
+ heading += `<span class="default_value"> = ${doc.default_value}</span>`;
452
+ break;
453
+ default:
454
+ heading = `<span class="name">${doc.fullname}</span>`;
455
+ break;
456
+ }
457
+ html += `
458
+ <section class="search-result">
459
+ <a href="${url}" class="attr ${doc.kind}">${heading}</a>
460
+ <div class="docstring">${doc.doc}</div>
461
+ </section>
462
+ `;
463
+
464
+ }
465
+ return html;
466
+ })());
467
+ }
468
+
469
+ if (getSearchTerm()) {
470
+ initialize();
471
+ searchBox.value = getSearchTerm();
472
+ onInput();
473
+ } else {
474
+ searchBox.addEventListener("focus", initialize, {once: true});
475
+ }
476
+
477
+ searchBox.addEventListener("keydown", e => {
478
+ if (["ArrowDown", "ArrowUp", "Enter"].includes(e.key)) {
479
+ let focused = currentContent.querySelector(".search-result.focused");
480
+ if (!focused) {
481
+ currentContent.querySelector(".search-result").classList.add("focused");
482
+ } else if (
483
+ e.key === "ArrowDown"
484
+ && focused.nextElementSibling
485
+ && focused.nextElementSibling.classList.contains("search-result")
486
+ ) {
487
+ focused.classList.remove("focused");
488
+ focused.nextElementSibling.classList.add("focused");
489
+ focused.nextElementSibling.scrollIntoView({
490
+ behavior: "smooth",
491
+ block: "nearest",
492
+ inline: "nearest"
493
+ });
494
+ } else if (
495
+ e.key === "ArrowUp"
496
+ && focused.previousElementSibling
497
+ && focused.previousElementSibling.classList.contains("search-result")
498
+ ) {
499
+ focused.classList.remove("focused");
500
+ focused.previousElementSibling.classList.add("focused");
501
+ focused.previousElementSibling.scrollIntoView({
502
+ behavior: "smooth",
503
+ block: "nearest",
504
+ inline: "nearest"
505
+ });
506
+ } else if (
507
+ e.key === "Enter"
508
+ ) {
509
+ focused.querySelector("a").click();
510
+ }
511
+ }
512
+ });
513
+ </script></body>
514
+ </html>