spotifywebapiPython 1.0.164__py3-none-any.whl → 1.0.166__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.
Potentially problematic release.
This version of spotifywebapiPython might be problematic. Click here for more details.
- {spotifywebapiPython-1.0.164.dist-info → spotifywebapiPython-1.0.166.dist-info}/METADATA +1 -1
- {spotifywebapiPython-1.0.164.dist-info → spotifywebapiPython-1.0.166.dist-info}/RECORD +23 -23
- spotifywebapipython/const.py +1 -1
- spotifywebapipython/docs/__init__.html +14 -2
- spotifywebapipython/docs/index.html +2 -2
- spotifywebapipython/docs/search.js +1 -1
- spotifywebapipython/docs/spotifywebapipython/const.html +3 -3
- spotifywebapipython/docs/spotifywebapipython/saappmessages.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/sautils.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/spotifyapierror.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/spotifyapimessage.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/spotifyauthtoken.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/spotifyclient.html +913 -2
- spotifywebapipython/docs/spotifywebapipython/spotifydiscovery.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/spotifywebapiauthenticationerror.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/spotifywebapierror.html +2 -2
- spotifywebapipython/docs/spotifywebapipython/spotifywebplayertoken.html +37 -2
- spotifywebapipython/oauthcli/authclient.py +21 -7
- spotifywebapipython/spotifyclient.py +118 -18
- spotifywebapipython/spotifywebplayertoken.py +19 -0
- {spotifywebapiPython-1.0.164.dist-info → spotifywebapiPython-1.0.166.dist-info}/LICENSE +0 -0
- {spotifywebapiPython-1.0.164.dist-info → spotifywebapiPython-1.0.166.dist-info}/WHEEL +0 -0
- {spotifywebapiPython-1.0.164.dist-info → spotifywebapiPython-1.0.166.dist-info}/top_level.txt +0 -0
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
</title>
|
|
10
10
|
<link rel="icon" type="image/svg+xml" href="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"/>
|
|
11
11
|
<!-- build env - Package Name = "spotifywebapiPython" -->
|
|
12
|
-
<!-- build env - Package Version = "1.0.
|
|
12
|
+
<!-- build env - Package Version = "1.0.166" -->
|
|
13
13
|
<!-- pdoc module.modulename = "spotifywebapipython.spotifydiscovery" -->
|
|
14
14
|
<!-- pdoc module.is_package = "False" -->
|
|
15
15
|
<!-- pdoc root_module_name = "None" -->
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
|
|
81
81
|
<footer class="footertext">
|
|
82
82
|
spotifywebapiPython</br>
|
|
83
|
-
Version 1.0.
|
|
83
|
+
Version 1.0.166</br>
|
|
84
84
|
<a href="https://developer.spotify.com/documentation/web-api" target="_blank">
|
|
85
85
|
<img src="../spotifywebapipython.ico" alt="brand icon" style="width:32px; height:32px; padding:4px;"/>
|
|
86
86
|
A Spotify Web Api Client
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
</title>
|
|
10
10
|
<link rel="icon" type="image/svg+xml" href="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"/>
|
|
11
11
|
<!-- build env - Package Name = "spotifywebapiPython" -->
|
|
12
|
-
<!-- build env - Package Version = "1.0.
|
|
12
|
+
<!-- build env - Package Version = "1.0.166" -->
|
|
13
13
|
<!-- pdoc module.modulename = "spotifywebapipython.spotifywebapiauthenticationerror" -->
|
|
14
14
|
<!-- pdoc module.is_package = "False" -->
|
|
15
15
|
<!-- pdoc root_module_name = "None" -->
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
|
|
75
75
|
<footer class="footertext">
|
|
76
76
|
spotifywebapiPython</br>
|
|
77
|
-
Version 1.0.
|
|
77
|
+
Version 1.0.166</br>
|
|
78
78
|
<a href="https://developer.spotify.com/documentation/web-api" target="_blank">
|
|
79
79
|
<img src="../spotifywebapipython.ico" alt="brand icon" style="width:32px; height:32px; padding:4px;"/>
|
|
80
80
|
A Spotify Web Api Client
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
</title>
|
|
10
10
|
<link rel="icon" type="image/svg+xml" href="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"/>
|
|
11
11
|
<!-- build env - Package Name = "spotifywebapiPython" -->
|
|
12
|
-
<!-- build env - Package Version = "1.0.
|
|
12
|
+
<!-- build env - Package Version = "1.0.166" -->
|
|
13
13
|
<!-- pdoc module.modulename = "spotifywebapipython.spotifywebapierror" -->
|
|
14
14
|
<!-- pdoc module.is_package = "False" -->
|
|
15
15
|
<!-- pdoc root_module_name = "None" -->
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
|
|
72
72
|
<footer class="footertext">
|
|
73
73
|
spotifywebapiPython</br>
|
|
74
|
-
Version 1.0.
|
|
74
|
+
Version 1.0.166</br>
|
|
75
75
|
<a href="https://developer.spotify.com/documentation/web-api" target="_blank">
|
|
76
76
|
<img src="../spotifywebapipython.ico" alt="brand icon" style="width:32px; height:32px; padding:4px;"/>
|
|
77
77
|
A Spotify Web Api Client
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
</title>
|
|
10
10
|
<link rel="icon" type="image/svg+xml" href="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"/>
|
|
11
11
|
<!-- build env - Package Name = "spotifywebapiPython" -->
|
|
12
|
-
<!-- build env - Package Version = "1.0.
|
|
12
|
+
<!-- build env - Package Version = "1.0.166" -->
|
|
13
13
|
<!-- pdoc module.modulename = "spotifywebapipython.spotifywebplayertoken" -->
|
|
14
14
|
<!-- pdoc module.is_package = "False" -->
|
|
15
15
|
<!-- pdoc root_module_name = "None" -->
|
|
@@ -66,6 +66,12 @@
|
|
|
66
66
|
<li>
|
|
67
67
|
<a class="variable" href="#SpotifyWebPlayerToken.ExpiresIn">ExpiresIn</a>
|
|
68
68
|
</li>
|
|
69
|
+
<li>
|
|
70
|
+
<a class="variable" href="#SpotifyWebPlayerToken.HeaderKey">HeaderKey</a>
|
|
71
|
+
</li>
|
|
72
|
+
<li>
|
|
73
|
+
<a class="variable" href="#SpotifyWebPlayerToken.HeaderValue">HeaderValue</a>
|
|
74
|
+
</li>
|
|
69
75
|
<li>
|
|
70
76
|
<a class="variable" href="#SpotifyWebPlayerToken.IsExpired">IsExpired</a>
|
|
71
77
|
</li>
|
|
@@ -83,7 +89,7 @@
|
|
|
83
89
|
|
|
84
90
|
<footer class="footertext">
|
|
85
91
|
spotifywebapiPython</br>
|
|
86
|
-
Version 1.0.
|
|
92
|
+
Version 1.0.166</br>
|
|
87
93
|
<a href="https://developer.spotify.com/documentation/web-api" target="_blank">
|
|
88
94
|
<img src="../spotifywebapipython.ico" alt="brand icon" style="width:32px; height:32px; padding:4px;"/>
|
|
89
95
|
A Spotify Web Api Client
|
|
@@ -233,6 +239,35 @@ Default is <code>tokens.json</code>.</li>
|
|
|
233
239
|
</div>
|
|
234
240
|
|
|
235
241
|
|
|
242
|
+
</div>
|
|
243
|
+
<div id="SpotifyWebPlayerToken.HeaderKey" class="classattr">
|
|
244
|
+
<div class="attr variable">
|
|
245
|
+
<span class="name">HeaderKey</span><span class="annotation">: str</span>
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
</div>
|
|
249
|
+
<a class="headerlink" href="#SpotifyWebPlayerToken.HeaderKey"></a>
|
|
250
|
+
|
|
251
|
+
<div class="docstring"><p>Returns a string containing the header key to assign the authorization token value to.
|
|
252
|
+
This will always return 'Authorization'.</p>
|
|
253
|
+
</div>
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
</div>
|
|
257
|
+
<div id="SpotifyWebPlayerToken.HeaderValue" class="classattr">
|
|
258
|
+
<div class="attr variable">
|
|
259
|
+
<span class="name">HeaderValue</span><span class="annotation">: str</span>
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
</div>
|
|
263
|
+
<a class="headerlink" href="#SpotifyWebPlayerToken.HeaderValue"></a>
|
|
264
|
+
|
|
265
|
+
<div class="docstring"><p>Returns the value portion of the authorization header, in the form of 'Bearer {token}'.</p>
|
|
266
|
+
|
|
267
|
+
<p>Example: `Bearer {token value ...}'</p>
|
|
268
|
+
</div>
|
|
269
|
+
|
|
270
|
+
|
|
236
271
|
</div>
|
|
237
272
|
<div id="SpotifyWebPlayerToken.IsExpired" class="classattr">
|
|
238
273
|
<div class="attr variable">
|
|
@@ -8,6 +8,7 @@ import os.path
|
|
|
8
8
|
import platformdirs
|
|
9
9
|
import secrets
|
|
10
10
|
import socket
|
|
11
|
+
import threading
|
|
11
12
|
import webbrowser
|
|
12
13
|
|
|
13
14
|
from oauthlib.oauth2 import InvalidGrantError, Client, WebApplicationClient, TokenExpiredError, AccessDeniedError
|
|
@@ -17,7 +18,7 @@ from wsgiref.simple_server import WSGIServer, WSGIRequestHandler, make_server as
|
|
|
17
18
|
from wsgiref.util import request_uri as WSGIRequestUri
|
|
18
19
|
|
|
19
20
|
# get smartinspect logger reference; create a new session for this module name.
|
|
20
|
-
from smartinspectpython.siauto import SIAuto, SILevel, SISession, SIMethodParmListContext
|
|
21
|
+
from smartinspectpython.siauto import SIAuto, SILevel, SISession, SIMethodParmListContext, SIColors
|
|
21
22
|
import logging
|
|
22
23
|
_logsi:SISession = SIAuto.Si.GetSession(__name__)
|
|
23
24
|
if (_logsi == None):
|
|
@@ -139,6 +140,7 @@ class AuthClient:
|
|
|
139
140
|
self._TokenStorageFile:str = tokenStorageFile
|
|
140
141
|
self._TokenStoragePath:str = os.path.join(tokenStorageDir, tokenStorageFile)
|
|
141
142
|
self._TokenUpdater:Callable = tokenUpdater
|
|
143
|
+
self._TokenUpdater_Lock = threading.Lock() # non re-entrant lock to sync access to token updates.
|
|
142
144
|
self._TokenUrl:str = tokenUrl
|
|
143
145
|
self._TokenProfileId:str = tokenProfileId
|
|
144
146
|
|
|
@@ -436,6 +438,10 @@ class AuthClient:
|
|
|
436
438
|
if tokenStorageFile is None:
|
|
437
439
|
tokenStorageFile = 'tokens.json'
|
|
438
440
|
|
|
441
|
+
# if token clientId not set, then default to shared.
|
|
442
|
+
if clientId is None:
|
|
443
|
+
clientId = 'Shared'
|
|
444
|
+
|
|
439
445
|
# if token providerId not set, then default to shared.
|
|
440
446
|
if tokenProviderId is None:
|
|
441
447
|
tokenProviderId = 'Shared'
|
|
@@ -1077,14 +1083,22 @@ class AuthClient:
|
|
|
1077
1083
|
# was a token updater supplied?
|
|
1078
1084
|
if self._TokenUpdater is not None:
|
|
1079
1085
|
|
|
1080
|
-
|
|
1081
|
-
token =
|
|
1086
|
+
# log trace message if we are waiting on another token update to complete!
|
|
1087
|
+
_logsi.LogVerbose("Preparing to set the lock for external token refresh", colorValue=SIColors.Gold)
|
|
1088
|
+
if self._TokenUpdater_Lock.locked():
|
|
1089
|
+
_logsi.LogVerbose("Waiting on a previous external token refresh to complete", colorValue=SIColors.Red)
|
|
1090
|
+
|
|
1091
|
+
# only allow one thread to update authorization token at a time.
|
|
1092
|
+
with self._TokenUpdater_Lock:
|
|
1093
|
+
|
|
1094
|
+
_logsi.LogVerbose('Calling External Token Updater to refresh the token', colorValue=SIColors.Gold)
|
|
1095
|
+
token = self._TokenUpdater()
|
|
1082
1096
|
|
|
1083
|
-
|
|
1097
|
+
_logsi.LogDictionary(SILevel.Verbose, 'External Token Updater has refreshed the token', token, colorValue=SIColors.Gold)
|
|
1084
1098
|
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1099
|
+
# if nothing returned then it's an error.
|
|
1100
|
+
if token is None:
|
|
1101
|
+
raise TokenExpiredError('External Token Updater did not return a token.')
|
|
1088
1102
|
|
|
1089
1103
|
else:
|
|
1090
1104
|
|
|
@@ -27,11 +27,10 @@ from .saappmessages import SAAppMessages
|
|
|
27
27
|
from .spotifyapierror import SpotifyApiError
|
|
28
28
|
from .spotifyapimessage import SpotifyApiMessage
|
|
29
29
|
from .spotifyauthtoken import SpotifyAuthToken
|
|
30
|
-
from .spotifydiscovery import SpotifyDiscovery
|
|
31
30
|
from .spotifywebapiauthenticationerror import SpotifyWebApiAuthenticationError
|
|
32
31
|
from .spotifywebapierror import SpotifyWebApiError
|
|
32
|
+
from .spotifywebplayertoken import SpotifyWebPlayerToken
|
|
33
33
|
from .zeroconfapi.zeroconfconnect import ZeroconfConnect, ZeroconfGetInfo, ZeroconfResponse, SpotifyZeroconfApiError
|
|
34
|
-
from .zeroconfapi.zeroconfgetinfoalias import ZeroconfGetInfoAlias
|
|
35
34
|
from .sautils import (
|
|
36
35
|
_xmlGetInnerText,
|
|
37
36
|
export,
|
|
@@ -200,6 +199,7 @@ class SpotifyClient:
|
|
|
200
199
|
self._AuthClient:AuthClient = None
|
|
201
200
|
self._ConfigurationCache:dict = {}
|
|
202
201
|
self._DefaultDeviceId:str = None
|
|
202
|
+
self._HasSpotifyWebPlayerCredentials:bool = False
|
|
203
203
|
self._IsDisposed:bool = False
|
|
204
204
|
self._Manager:PoolManager = manager
|
|
205
205
|
self._SpotifyConnectUsername:str = spotifyConnectUsername
|
|
@@ -363,6 +363,15 @@ class SpotifyClient:
|
|
|
363
363
|
self._DefaultDeviceId = value
|
|
364
364
|
|
|
365
365
|
|
|
366
|
+
@property
|
|
367
|
+
def HasSpotifyWebPlayerCredentials(self) -> bool:
|
|
368
|
+
"""
|
|
369
|
+
Returns true if Spotify Web Player credentials have been configured in the Token Cache File;
|
|
370
|
+
otherwise, False.
|
|
371
|
+
"""
|
|
372
|
+
return self._HasSpotifyWebPlayerCredentials
|
|
373
|
+
|
|
374
|
+
|
|
366
375
|
@property
|
|
367
376
|
def SpotifyConnectDirectoryEnabled(self) -> bool:
|
|
368
377
|
"""
|
|
@@ -764,6 +773,57 @@ class SpotifyClient:
|
|
|
764
773
|
msg.ResponseData = responseData
|
|
765
774
|
|
|
766
775
|
|
|
776
|
+
def _GetSpotifyWebPlayerTokenHeaderValue(
|
|
777
|
+
self,
|
|
778
|
+
scDevice:SpotifyConnectDevice=None,
|
|
779
|
+
) -> str:
|
|
780
|
+
"""
|
|
781
|
+
Retrieves a SpotifyWebPlayer token header value, if Spotify Web Player cookie credentials
|
|
782
|
+
are defined in the Token Cache File.
|
|
783
|
+
|
|
784
|
+
Args:
|
|
785
|
+
scDevice (SpotifyConnectDevice):
|
|
786
|
+
A resolved SpotifyConnectDevice object.
|
|
787
|
+
|
|
788
|
+
Returns:
|
|
789
|
+
A token header value that can be used in the request header authorization variable;
|
|
790
|
+
otherwise, None.
|
|
791
|
+
|
|
792
|
+
The value returned will be a `Bearer: token` string that can be used in a request header
|
|
793
|
+
authorization key for Spotify Web API endpoints that start playback on a devoce.
|
|
794
|
+
|
|
795
|
+
The Token Cache File is queried for a key value of "SpotifyWebPlayerCookieCredentials/Shared/YOUR_SPOTIFY_LOGIN_ID",
|
|
796
|
+
which will contain the `sp_key` and `sp_dc` values of the cookie credentials. These
|
|
797
|
+
credentials are then converted into an authorization access token which is used by
|
|
798
|
+
Spotify Web API endpoints to start playback on the specified device id.
|
|
799
|
+
"""
|
|
800
|
+
result:SpotifyWebPlayerToken = None
|
|
801
|
+
|
|
802
|
+
# are spotify web player credentials configured? if not, then don't bother!
|
|
803
|
+
if (not self._HasSpotifyWebPlayerCredentials):
|
|
804
|
+
return result
|
|
805
|
+
|
|
806
|
+
# was the device resolved? if not, then don't bother!
|
|
807
|
+
if (not isinstance(scDevice, SpotifyConnectDevice)):
|
|
808
|
+
return result
|
|
809
|
+
|
|
810
|
+
# is the device restricted or Sonos?
|
|
811
|
+
if (scDevice.IsSonos or scDevice.IsRestricted):
|
|
812
|
+
|
|
813
|
+
# get spotify web player access token info from spotify web player cookie credentials.
|
|
814
|
+
_logsi.LogVerbose("Converting Spotify Web Player cookie credentials to an access token for loginId \"%s\"" % (self._SpotifyConnectLoginId))
|
|
815
|
+
tokenWP = SpotifyWebPlayerToken(profileId=self._SpotifyConnectLoginId,
|
|
816
|
+
tokenStorageDir=self._TokenStorageDir,
|
|
817
|
+
tokenStorageFile=self._TokenStorageFile)
|
|
818
|
+
if tokenWP is not None:
|
|
819
|
+
result = tokenWP.HeaderValue
|
|
820
|
+
_logsi.LogVerbose("Playback will be started using Spotify Web Player authorization access token for device: %s" % (scDevice.Title))
|
|
821
|
+
|
|
822
|
+
# return result to caller.
|
|
823
|
+
return result
|
|
824
|
+
|
|
825
|
+
|
|
826
|
+
|
|
767
827
|
def _ResolveDeviceObject(
|
|
768
828
|
self,
|
|
769
829
|
device:str | SpotifyConnectDevice,
|
|
@@ -856,6 +916,26 @@ class SpotifyClient:
|
|
|
856
916
|
_logsi.LogVerbose("Spotify Connect LoginId not specified on class constructor; using Spotify UserProfile ID value \"%s\"" % (self._UserProfile.Id), colorValue=SIColors.Coral)
|
|
857
917
|
self._SpotifyConnectLoginId = self._UserProfile.Id
|
|
858
918
|
|
|
919
|
+
try:
|
|
920
|
+
|
|
921
|
+
# check if the Spotify Web Player cookie credentials are defined in Token cache File.
|
|
922
|
+
# Example: SpotifyWebPlayerCookieCredentials/Shared/YOUR_SPOTIFY_LOGIN_ID
|
|
923
|
+
self._HasSpotifyWebPlayerCredentials = AuthClient.HasTokenForKey(
|
|
924
|
+
clientId=None,
|
|
925
|
+
tokenProviderId='SpotifyWebPlayerCookieCredentials',
|
|
926
|
+
tokenProfileId=self._SpotifyConnectLoginId,
|
|
927
|
+
tokenStorageDir=self._TokenStorageDir,
|
|
928
|
+
tokenStorageFile=self._TokenStorageFile,
|
|
929
|
+
)
|
|
930
|
+
|
|
931
|
+
except Exception as ex:
|
|
932
|
+
|
|
933
|
+
# could not detect player credentials; assume none.
|
|
934
|
+
self._HasSpotifyWebPlayerCredentials = False
|
|
935
|
+
|
|
936
|
+
# ignore exceptions, as transfer will still work.
|
|
937
|
+
pass
|
|
938
|
+
|
|
859
939
|
# create new Spotify Connect Directory instance.
|
|
860
940
|
self._SpotifyConnectDirectory = SpotifyConnectDirectoryTask(self, self._ZeroconfClient, self._SpotifyConnectDiscoveryTimeout)
|
|
861
941
|
self._SpotifyConnectDirectory.daemon = True
|
|
@@ -1315,13 +1395,13 @@ class SpotifyClient:
|
|
|
1315
1395
|
|
|
1316
1396
|
else:
|
|
1317
1397
|
|
|
1318
|
-
# trace.
|
|
1319
|
-
_logsi.LogVerbose("Items will be added to playback queue for device: %s" % (scDevice.Title))
|
|
1320
|
-
|
|
1321
1398
|
# was the deviceId resolved?
|
|
1322
1399
|
# if not, then raise an exception as the Spotify Web API request will fail anyway.
|
|
1323
1400
|
self._CheckForDeviceNotFound(scDevice, deviceId)
|
|
1324
1401
|
|
|
1402
|
+
# trace.
|
|
1403
|
+
_logsi.LogVerbose("Items will be added to playback queue for device: %s" % (scDevice.Title))
|
|
1404
|
+
|
|
1325
1405
|
# process all uri's.
|
|
1326
1406
|
for idx in range(0, len(arrUris)):
|
|
1327
1407
|
|
|
@@ -9740,7 +9820,7 @@ class SpotifyClient:
|
|
|
9740
9820
|
# in this case, we will exit and let the calling method switch to the Sonos device and play
|
|
9741
9821
|
# using the Sonos local queue.
|
|
9742
9822
|
if (scDevice.IsSonos):
|
|
9743
|
-
|
|
9823
|
+
|
|
9744
9824
|
# check if the Spotify Desktop Application Client oauth2 token is defined.
|
|
9745
9825
|
hasToken:bool = AuthClient.HasTokenForKey(
|
|
9746
9826
|
clientId=SPOTIFY_DESKTOP_APP_CLIENT_ID,
|
|
@@ -11788,9 +11868,19 @@ class SpotifyClient:
|
|
|
11788
11868
|
# resolve the device object from the device idl activate if it's dormant.
|
|
11789
11869
|
scDevice = self._ResolveDeviceObject(deviceId, True)
|
|
11790
11870
|
|
|
11871
|
+
# are spotify web player credentials configured?
|
|
11872
|
+
# if so, then we will use them to create an authorization access token for the
|
|
11873
|
+
# Spotify Web API endpoint that starts playback on the device; this token has the
|
|
11874
|
+
# required access to control "restricted" devices (such as Sonos).
|
|
11875
|
+
accessTokenHeaderValue:str = self._GetSpotifyWebPlayerTokenHeaderValue(scDevice)
|
|
11876
|
+
|
|
11791
11877
|
# is this an active Sonos device?
|
|
11792
11878
|
# Sonos device can still be active, even if there is no active device in Spotify playstate.
|
|
11793
|
-
if
|
|
11879
|
+
# if spotify web player credentials are NOT configured, then we will transfer control to the
|
|
11880
|
+
# Sonos device local queue for playback; otherwise, we will just call the Spotify Web API
|
|
11881
|
+
# endpoint below with the elevated authorization access token to start playback under the
|
|
11882
|
+
# control of Spotify Connect.
|
|
11883
|
+
if (scDevice is not None) and (scDevice.IsSonos) and (accessTokenHeaderValue is None):
|
|
11794
11884
|
|
|
11795
11885
|
# trace.
|
|
11796
11886
|
_logsi.LogVerbose("Context will be played on Sonos local queue for device: %s" % (scDevice.Title))
|
|
@@ -11863,13 +11953,13 @@ class SpotifyClient:
|
|
|
11863
11953
|
|
|
11864
11954
|
else:
|
|
11865
11955
|
|
|
11866
|
-
# trace.
|
|
11867
|
-
_logsi.LogVerbose("Context will be played on the Spotify Connect device via Spotify Web API")
|
|
11868
|
-
|
|
11869
11956
|
# was the deviceId resolved?
|
|
11870
11957
|
# if not, then raise an exception as the Spotify Web API request will fail anyway.
|
|
11871
11958
|
self._CheckForDeviceNotFound(scDevice, deviceId)
|
|
11872
11959
|
|
|
11960
|
+
# trace.
|
|
11961
|
+
_logsi.LogVerbose("Context will be played on the Spotify Connect device via Spotify Web API")
|
|
11962
|
+
|
|
11873
11963
|
# build spotify web api request parameters.
|
|
11874
11964
|
reqData:dict = \
|
|
11875
11965
|
{
|
|
@@ -11879,7 +11969,7 @@ class SpotifyClient:
|
|
|
11879
11969
|
if (positionMS is not None) and (positionMS > 0):
|
|
11880
11970
|
reqData['position_ms'] = { 'position_ms': positionMS }
|
|
11881
11971
|
|
|
11882
|
-
# offset should only be applied if it's not
|
|
11972
|
+
# offset should only be applied if it's not zero / a uri is specified; otherwise,
|
|
11883
11973
|
# it will not shuffle correctly if shuffle is enabled.
|
|
11884
11974
|
if offsetUri is not None:
|
|
11885
11975
|
reqData['offset'] = { 'uri': offsetUri }
|
|
@@ -11893,7 +11983,7 @@ class SpotifyClient:
|
|
|
11893
11983
|
|
|
11894
11984
|
# execute spotify web api request.
|
|
11895
11985
|
msg:SpotifyApiMessage = SpotifyApiMessage(apiMethodName, '/me/player/play{url_parms}'.format(url_parms=urlParms))
|
|
11896
|
-
msg.RequestHeaders[self.AuthToken.HeaderKey] = self.AuthToken.HeaderValue
|
|
11986
|
+
msg.RequestHeaders[self.AuthToken.HeaderKey] = accessTokenHeaderValue or self.AuthToken.HeaderValue
|
|
11897
11987
|
msg.RequestJson = reqData
|
|
11898
11988
|
self.MakeRequest('PUT', msg)
|
|
11899
11989
|
|
|
@@ -12137,12 +12227,22 @@ class SpotifyClient:
|
|
|
12137
12227
|
# resolve the device object from the device id; activate if it's dormant.
|
|
12138
12228
|
scDevice = self._ResolveDeviceObject(deviceId, True)
|
|
12139
12229
|
|
|
12230
|
+
# are spotify web player credentials configured?
|
|
12231
|
+
# if so, then we will use them to create an authorization access token for the
|
|
12232
|
+
# Spotify Web API endpoint that starts playback on the device; this token has the
|
|
12233
|
+
# required access to control "restricted" devices (such as Sonos).
|
|
12234
|
+
accessTokenHeaderValue:str = self._GetSpotifyWebPlayerTokenHeaderValue(scDevice)
|
|
12235
|
+
|
|
12140
12236
|
# is this an active Sonos device?
|
|
12141
12237
|
# Sonos device can still be active, even if there is no active device in Spotify playstate.
|
|
12142
|
-
if
|
|
12238
|
+
# if spotify web player credentials are NOT configured, then we will transfer control to the
|
|
12239
|
+
# Sonos device local queue for playback; otherwise, we will just call the Spotify Web API
|
|
12240
|
+
# endpoint below with the elevated authorization access token to start playback under the
|
|
12241
|
+
# control of Spotify Connect.
|
|
12242
|
+
if (scDevice is not None) and (scDevice.IsSonos) and (accessTokenHeaderValue is None):
|
|
12143
12243
|
|
|
12144
12244
|
# trace.
|
|
12145
|
-
_logsi.LogVerbose("
|
|
12245
|
+
_logsi.LogVerbose("Tracks will be played on Sonos local queue for device: %s" % (scDevice.Title))
|
|
12146
12246
|
|
|
12147
12247
|
# get the Sonos Controller player instance.
|
|
12148
12248
|
sonosPlayer:SoCo = self.SpotifyConnectDirectory.GetSonosPlayer(scDevice)
|
|
@@ -12188,13 +12288,13 @@ class SpotifyClient:
|
|
|
12188
12288
|
|
|
12189
12289
|
else:
|
|
12190
12290
|
|
|
12191
|
-
# trace.
|
|
12192
|
-
_logsi.LogVerbose("Track list will be played on the Spotify Connect device via Spotify Web API")
|
|
12193
|
-
|
|
12194
12291
|
# was the deviceId resolved?
|
|
12195
12292
|
# if not, then raise an exception as the Spotify Web API request will fail anyway.
|
|
12196
12293
|
self._CheckForDeviceNotFound(scDevice, deviceId)
|
|
12197
12294
|
|
|
12295
|
+
# trace.
|
|
12296
|
+
_logsi.LogVerbose("Tracks will be played on the Spotify Connect device via Spotify Web API")
|
|
12297
|
+
|
|
12198
12298
|
# build spotify web api request parameters.
|
|
12199
12299
|
reqData:dict = \
|
|
12200
12300
|
{
|
|
@@ -12210,7 +12310,7 @@ class SpotifyClient:
|
|
|
12210
12310
|
|
|
12211
12311
|
# execute spotify web api request.
|
|
12212
12312
|
msg:SpotifyApiMessage = SpotifyApiMessage(apiMethodName, '/me/player/play{url_parms}'.format(url_parms=urlParms))
|
|
12213
|
-
msg.RequestHeaders[self.AuthToken.HeaderKey] = self.AuthToken.HeaderValue
|
|
12313
|
+
msg.RequestHeaders[self.AuthToken.HeaderKey] = accessTokenHeaderValue or self.AuthToken.HeaderValue
|
|
12214
12314
|
msg.RequestJson = reqData
|
|
12215
12315
|
self.MakeRequest('PUT', msg)
|
|
12216
12316
|
|
|
@@ -142,6 +142,25 @@ class SpotifyWebPlayerToken:
|
|
|
142
142
|
return self._ExpiresIn
|
|
143
143
|
|
|
144
144
|
|
|
145
|
+
@property
|
|
146
|
+
def HeaderKey(self) -> str:
|
|
147
|
+
"""
|
|
148
|
+
Returns a string containing the header key to assign the authorization token value to.
|
|
149
|
+
This will always return 'Authorization'.
|
|
150
|
+
"""
|
|
151
|
+
return 'Authorization'
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
@property
|
|
155
|
+
def HeaderValue(self) -> str:
|
|
156
|
+
"""
|
|
157
|
+
Returns the value portion of the authorization header, in the form of 'Bearer {token}'.
|
|
158
|
+
|
|
159
|
+
Example: `Bearer {token value ...}'
|
|
160
|
+
"""
|
|
161
|
+
return 'Bearer {token}'.format(token=self.AccessToken)
|
|
162
|
+
|
|
163
|
+
|
|
145
164
|
@property
|
|
146
165
|
def IsExpired(self) -> bool:
|
|
147
166
|
"""
|
|
File without changes
|
|
File without changes
|
{spotifywebapiPython-1.0.164.dist-info → spotifywebapiPython-1.0.166.dist-info}/top_level.txt
RENAMED
|
File without changes
|