spotifywebapiPython 1.0.48__py3-none-any.whl → 1.0.49__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.48.dist-info → spotifywebapiPython-1.0.49.dist-info}/METADATA +1 -1
- {spotifywebapiPython-1.0.48.dist-info → spotifywebapiPython-1.0.49.dist-info}/RECORD +24 -24
- spotifywebapipython/const.py +1 -1
- spotifywebapipython/docs/__init__.html +13 -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 +303 -3
- spotifywebapipython/docs/spotifywebapiPython/spotifydiscovery.html +15 -72
- spotifywebapipython/docs/spotifywebapiPython/spotifywebapiauthenticationerror.html +2 -2
- spotifywebapipython/docs/spotifywebapiPython/spotifywebapierror.html +2 -2
- spotifywebapipython/models/userprofile.py +24 -0
- spotifywebapipython/spotifyclient.py +497 -8
- spotifywebapipython/spotifydiscovery.py +27 -83
- spotifywebapipython/zeroconfapi/zeroconfconnect.py +10 -0
- spotifywebapipython/zeroconfapi/zeroconfgetinfo.py +21 -3
- {spotifywebapiPython-1.0.48.dist-info → spotifywebapiPython-1.0.49.dist-info}/LICENSE +0 -0
- {spotifywebapiPython-1.0.48.dist-info → spotifywebapiPython-1.0.49.dist-info}/WHEEL +0 -0
- {spotifywebapiPython-1.0.48.dist-info → spotifywebapiPython-1.0.49.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.49" -->
|
|
13
13
|
<!-- pdoc module.modulename = "spotifywebapipython.spotifyclient" -->
|
|
14
14
|
<!-- pdoc module.is_package = "False" -->
|
|
15
15
|
<!-- pdoc root_module_name = "None" -->
|
|
@@ -225,6 +225,9 @@
|
|
|
225
225
|
<li>
|
|
226
226
|
<a class="function" href="#SpotifyClient.GetPlayerDevice">GetPlayerDevice</a>
|
|
227
227
|
</li>
|
|
228
|
+
<li>
|
|
229
|
+
<a class="function" href="#SpotifyClient.PlayerActivateDevices">PlayerActivateDevices</a>
|
|
230
|
+
</li>
|
|
228
231
|
<li>
|
|
229
232
|
<a class="function" href="#SpotifyClient.PlayerConvertDeviceNameToId">PlayerConvertDeviceNameToId</a>
|
|
230
233
|
</li>
|
|
@@ -303,6 +306,9 @@
|
|
|
303
306
|
<li>
|
|
304
307
|
<a class="function" href="#SpotifyClient.GetUsersTopTracks">GetUsersTopTracks</a>
|
|
305
308
|
</li>
|
|
309
|
+
<li>
|
|
310
|
+
<a class="function" href="#SpotifyClient.IsDeviceId">IsDeviceId</a>
|
|
311
|
+
</li>
|
|
306
312
|
<li>
|
|
307
313
|
<a class="function" href="#SpotifyClient.PlayerMediaPause">PlayerMediaPause</a>
|
|
308
314
|
</li>
|
|
@@ -327,6 +333,9 @@
|
|
|
327
333
|
<li>
|
|
328
334
|
<a class="function" href="#SpotifyClient.PlayerMediaSkipPrevious">PlayerMediaSkipPrevious</a>
|
|
329
335
|
</li>
|
|
336
|
+
<li>
|
|
337
|
+
<a class="function" href="#SpotifyClient.PlayerResolveDeviceId">PlayerResolveDeviceId</a>
|
|
338
|
+
</li>
|
|
330
339
|
<li>
|
|
331
340
|
<a class="function" href="#SpotifyClient.PlayerSetRepeatMode">PlayerSetRepeatMode</a>
|
|
332
341
|
</li>
|
|
@@ -437,7 +446,7 @@
|
|
|
437
446
|
|
|
438
447
|
<footer class="footertext">
|
|
439
448
|
spotifywebapiPython</br>
|
|
440
|
-
Version 1.0.
|
|
449
|
+
Version 1.0.49</br>
|
|
441
450
|
<a href="https://developer.spotify.com/documentation/web-api" target="_blank">
|
|
442
451
|
<img src="../spotifywebapipython.ico" alt="brand icon" style="width:32px; height:32px; padding:4px;"/>
|
|
443
452
|
A Spotify Web Api Client
|
|
@@ -481,7 +490,7 @@ Spotify music service.</p>
|
|
|
481
490
|
<div id="SpotifyClient.__init__" class="classattr">
|
|
482
491
|
<div class="attr function">
|
|
483
492
|
|
|
484
|
-
<span class="name">SpotifyClient</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">manager</span><span class="p">:</span> <span class="n">urllib3</span><span class="o">.</span><span class="n">poolmanager</span><span class="o">.</span><span class="n">PoolManager</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">tokenStorageDir</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">tokenUpdater</span><span class="p">:</span> <span class="n">Callable</span> <span class="o">=</span> <span class="kc">None</span></span>)</span>
|
|
493
|
+
<span class="name">SpotifyClient</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">manager</span><span class="p">:</span> <span class="n">urllib3</span><span class="o">.</span><span class="n">poolmanager</span><span class="o">.</span><span class="n">PoolManager</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">tokenStorageDir</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">tokenUpdater</span><span class="p">:</span> <span class="n">Callable</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">zeroconfClient</span><span class="p">:</span> <span class="n">zeroconf</span><span class="o">.</span><span class="n">_core</span><span class="o">.</span><span class="n">Zeroconf</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">spotifyConnectUsername</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">spotifyConnectPassword</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">spotifyConnectDiscoveryTimeout</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mf">2.0</span></span>)</span>
|
|
485
494
|
|
|
486
495
|
|
|
487
496
|
</div>
|
|
@@ -498,8 +507,30 @@ A null value will default to the platform specific storage location: <br />
|
|
|
498
507
|
Example for Windows OS = <code>C:\ProgramData\SpotifyWebApiPython</code></li>
|
|
499
508
|
<li><strong>tokenUpdater (Callable):</strong> A method to call when a token needs to be refreshed by an external provider. <br />
|
|
500
509
|
The defined method is called with no parameters, and should return a token dictionary. <br />
|
|
510
|
+
Default is null. </li>
|
|
511
|
+
<li>zeroconfClient (Zeroconf)
|
|
512
|
+
A Zeroconf client instance that will be used to discover Spotify Connect devices,
|
|
513
|
+
or null to create a new instance of Zeroconf.
|
|
501
514
|
Default is null.</li>
|
|
515
|
+
<li><strong>spotifyConnectUsername (str):</strong> Spotify Connect user name used to login to a Spotify Connect device.
|
|
516
|
+
This MUST match the account name (or one of them) that was used to configure Spotify Connect
|
|
517
|
+
on a manufacturer device. </li>
|
|
518
|
+
<li><strong>spotifyConnectPassword (str):</strong> Spotify Connect password used to login to a Spotify Connect device.
|
|
519
|
+
This value is required if a non-null value was specified for the <code>spotifyConnectUsername</code> argument.</li>
|
|
520
|
+
<li><strong>spotifyConnectDiscoveryTimeout (float):</strong> Maximum amount of time to wait (in seconds) for the Spotify Connect discovery to complete. <br />
|
|
521
|
+
Default is 2 seconds.</li>
|
|
502
522
|
</ul>
|
|
523
|
+
|
|
524
|
+
<p>The <code>spotifyConnectUsername</code> and <code>spotifyConnectPassword</code> arguments are only used when a
|
|
525
|
+
Spotify Connect account switch is performed on a selected player device. Note that these credentials
|
|
526
|
+
are NOT used to access the Spotify Web API (the Spotify Web API token is used for that).
|
|
527
|
+
Please see the <code><a href="#SpotifyClient.PlayerResolveDeviceId">PlayerResolveDeviceId</a></code> method for more details.</p>
|
|
528
|
+
|
|
529
|
+
<p>Note that if you don't have a password setup for your Spotify account (e.g. you utilize the "Continue with Google"
|
|
530
|
+
or other non-password methods for login), then you will need to define a "device password" in order to use the
|
|
531
|
+
ZeroConf Connect service; use the <a href="https://www.spotify.com/uk/account/set-device-password/">Spotify Set Device Password</a>
|
|
532
|
+
page to define a device password. You will then use your Spotify username and the device password as your
|
|
533
|
+
Spotify Connect credentials.</p>
|
|
503
534
|
</div>
|
|
504
535
|
|
|
505
536
|
|
|
@@ -5681,6 +5712,108 @@ the spotify web api request. This results in better performance.</p>
|
|
|
5681
5712
|
</code></pre>
|
|
5682
5713
|
</div>
|
|
5683
5714
|
|
|
5715
|
+
<p></details></p>
|
|
5716
|
+
</div>
|
|
5717
|
+
|
|
5718
|
+
|
|
5719
|
+
</div>
|
|
5720
|
+
<div id="SpotifyClient.PlayerActivateDevices" class="classattr">
|
|
5721
|
+
<div class="attr function">
|
|
5722
|
+
|
|
5723
|
+
<span class="def">def</span>
|
|
5724
|
+
<span class="name">PlayerActivateDevices</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">verifyUserContext</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span>, </span><span class="param"><span class="n">delay</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mf">0.5</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
|
|
5725
|
+
|
|
5726
|
+
|
|
5727
|
+
</div>
|
|
5728
|
+
<a class="headerlink" href="#SpotifyClient.PlayerActivateDevices"></a>
|
|
5729
|
+
|
|
5730
|
+
<div class="docstring"><p>Activates all Spotify Connect player devices, and (optionally) switches the active user
|
|
5731
|
+
context to the current user context.</p>
|
|
5732
|
+
|
|
5733
|
+
<h6 id="arguments">Arguments:</h6>
|
|
5734
|
+
|
|
5735
|
+
<ul>
|
|
5736
|
+
<li><strong>verifyUserContext (bool):</strong> If True, the active user context of the resolved device is checked to ensure it
|
|
5737
|
+
matches the user context specified on the class constructor.
|
|
5738
|
+
If False, the user context will not be checked.
|
|
5739
|
+
Default is False.</li>
|
|
5740
|
+
<li><strong>delay (float):</strong> Time delay (in seconds) to wait AFTER issuing the final Connect command (if necessary).
|
|
5741
|
+
This delay will give the spotify web api time to process the device list change before
|
|
5742
|
+
another command is issued. <br />
|
|
5743
|
+
Default is 0.50; value range is 0 - 10.</li>
|
|
5744
|
+
</ul>
|
|
5745
|
+
|
|
5746
|
+
<h6 id="raises">Raises:</h6>
|
|
5747
|
+
|
|
5748
|
+
<ul>
|
|
5749
|
+
<li><strong>SpotifyWebApiError:</strong> If the Spotify Web API request was for a non-authorization service
|
|
5750
|
+
and the response contains error information.</li>
|
|
5751
|
+
<li><strong>SpotifyZeroconfApiError:</strong> If any Spotify Zeroconf API request failed. <br />
|
|
5752
|
+
If the <code>spotifyConnectUsername</code> aregument was not specified for the class contructor.</li>
|
|
5753
|
+
<li><strong>SpotifApiError:</strong> If the method fails for any other reason.</li>
|
|
5754
|
+
</ul>
|
|
5755
|
+
|
|
5756
|
+
<p>A Zeroconf discovery process is initiated to search for all Spotify Connect devices connected
|
|
5757
|
+
to the local network. A Spotify Zeroconf API <code>getInfo</code> call is then issued for each device
|
|
5758
|
+
that was found to retrieve device information. A Spotify Zeroconf API <code>addUser</code> call is also
|
|
5759
|
+
issued for each device that does not have an active user context established, OR if the currently
|
|
5760
|
+
active user context does not match the <code>SpotifyConnectUsername</code> argument specified on the class constructor.</p>
|
|
5761
|
+
|
|
5762
|
+
<p>The user context switch is bypassed if the <code>verifyUserContext</code> argument is False. If the user context
|
|
5763
|
+
is to be switched, then a Disconnect will be issued if a user context is active on the device followed
|
|
5764
|
+
by a Connect to the user context specified on the class constructor.</p>
|
|
5765
|
+
|
|
5766
|
+
<p><details>
|
|
5767
|
+
<summary>Sample Code</summary></p>
|
|
5768
|
+
|
|
5769
|
+
<div class="pdoc-code codehilite">
|
|
5770
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
5771
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
5772
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.zeroconfapi</span> <span class="kn">import</span> <span class="n">ZeroconfConnect</span><span class="p">,</span> <span class="n">ZeroconfResponse</span>
|
|
5773
|
+
|
|
5774
|
+
<span class="k">try</span><span class="p">:</span>
|
|
5775
|
+
|
|
5776
|
+
<span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
|
|
5777
|
+
|
|
5778
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
5779
|
+
<span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> \
|
|
5780
|
+
<span class="p">[</span>
|
|
5781
|
+
<span class="s1">'user-read-playback-state'</span><span class="p">,</span>
|
|
5782
|
+
<span class="s1">'user-read-email'</span><span class="p">,</span>
|
|
5783
|
+
<span class="p">]</span>
|
|
5784
|
+
|
|
5785
|
+
<span class="c1"># create new spotify client instance, passing the Spotify Connect user context and discovery timeout.</span>
|
|
5786
|
+
<span class="n">spotify</span><span class="p">:</span><span class="n">SpotifyClient</span> <span class="o">=</span> <span class="n">SpotifyClient</span><span class="p">(</span>
|
|
5787
|
+
<span class="n">spotifyConnectUsername</span><span class="o">=</span><span class="s2">"yourSpotifyConnectDeviceUsername"</span><span class="p">,</span>
|
|
5788
|
+
<span class="n">spotifyConnectPassword</span><span class="o">=</span><span class="s2">"yourSpotifyConnectDevicePassword"</span><span class="p">,</span>
|
|
5789
|
+
<span class="n">spotifyConnectDiscoveryTimeout</span><span class="o">=</span><span class="mf">1.5</span>
|
|
5790
|
+
<span class="p">)</span>
|
|
5791
|
+
|
|
5792
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
5793
|
+
<span class="n">spotify</span><span class="o">.</span><span class="n">SetAuthTokenAuthorizationCodePKCE</span><span class="p">(</span><span class="n">CLIENT_ID</span><span class="p">,</span> <span class="n">SPOTIFY_SCOPES</span><span class="p">)</span>
|
|
5794
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
5795
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
5796
|
+
|
|
5797
|
+
<span class="c1"># activate all Spotify Connect player devices on the local network</span>
|
|
5798
|
+
<span class="c1"># without switching the device user context.</span>
|
|
5799
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Activating Spotify Connect player devices'</span><span class="p">)</span>
|
|
5800
|
+
<span class="n">result</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">PlayerActivateDevices</span><span class="p">(</span><span class="n">verifyUserContext</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
|
|
5801
|
+
<span class="nb">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
|
|
5802
|
+
|
|
5803
|
+
<span class="c1"># activate all Spotify Connect player devices on the local network</span>
|
|
5804
|
+
<span class="c1"># and switch the device user context to our user context. this will</span>
|
|
5805
|
+
<span class="c1"># disconnect other users from all spotify connect player devices</span>
|
|
5806
|
+
<span class="c1"># defined to the local network.</span>
|
|
5807
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Activating Spotify Connect player devices for our user context'</span><span class="p">)</span>
|
|
5808
|
+
<span class="n">result</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">PlayerActivateDevices</span><span class="p">(</span><span class="n">verifyUserContext</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
5809
|
+
<span class="nb">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
|
|
5810
|
+
|
|
5811
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
5812
|
+
|
|
5813
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
5814
|
+
</code></pre>
|
|
5815
|
+
</div>
|
|
5816
|
+
|
|
5684
5817
|
<p></details></p>
|
|
5685
5818
|
</div>
|
|
5686
5819
|
|
|
@@ -8787,6 +8920,39 @@ and the response contains error information.</li>
|
|
|
8787
8920
|
</div>
|
|
8788
8921
|
|
|
8789
8922
|
|
|
8923
|
+
</div>
|
|
8924
|
+
<div id="SpotifyClient.IsDeviceId" class="classattr">
|
|
8925
|
+
<div class="attr function">
|
|
8926
|
+
<div class="decorator">@staticmethod</div>
|
|
8927
|
+
|
|
8928
|
+
<span class="def">def</span>
|
|
8929
|
+
<span class="name">IsDeviceId</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">value</span><span class="p">:</span> <span class="nb">str</span></span><span class="return-annotation">) -> <span class="nb">bool</span>:</span></span>
|
|
8930
|
+
|
|
8931
|
+
|
|
8932
|
+
</div>
|
|
8933
|
+
<a class="headerlink" href="#SpotifyClient.IsDeviceId"></a>
|
|
8934
|
+
|
|
8935
|
+
<div class="docstring"><p>Get the assumed device value format.</p>
|
|
8936
|
+
|
|
8937
|
+
<h6 id="arguments">Arguments:</h6>
|
|
8938
|
+
|
|
8939
|
+
<ul>
|
|
8940
|
+
<li><strong>value (str):</strong> The id or name of a Spotify Connect device.
|
|
8941
|
+
Example: <code>0d1841b0976bae2a3a310dd74c0f3df354899bc8</code> <br />
|
|
8942
|
+
Example: <code>Web Player (Chrome)</code> </li>
|
|
8943
|
+
</ul>
|
|
8944
|
+
|
|
8945
|
+
<h6 id="returns">Returns:</h6>
|
|
8946
|
+
|
|
8947
|
+
<blockquote>
|
|
8948
|
+
<p>True if the specified value is a device id format;
|
|
8949
|
+
otherwise, False to indicate it is a device name format.</p>
|
|
8950
|
+
</blockquote>
|
|
8951
|
+
|
|
8952
|
+
<p>No exceptions are raised with this method.</p>
|
|
8953
|
+
</div>
|
|
8954
|
+
|
|
8955
|
+
|
|
8790
8956
|
</div>
|
|
8791
8957
|
<div id="SpotifyClient.PlayerMediaPause" class="classattr">
|
|
8792
8958
|
<div class="attr function">
|
|
@@ -9663,6 +9829,140 @@ and the response contains error information.</li>
|
|
|
9663
9829
|
</code></pre>
|
|
9664
9830
|
</div>
|
|
9665
9831
|
|
|
9832
|
+
<p></details></p>
|
|
9833
|
+
</div>
|
|
9834
|
+
|
|
9835
|
+
|
|
9836
|
+
</div>
|
|
9837
|
+
<div id="SpotifyClient.PlayerResolveDeviceId" class="classattr">
|
|
9838
|
+
<div class="attr function">
|
|
9839
|
+
|
|
9840
|
+
<span class="def">def</span>
|
|
9841
|
+
<span class="name">PlayerResolveDeviceId</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">deviceValue</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="n">verifyUserContext</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">verifyTimeout</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mf">5.0</span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
|
|
9842
|
+
|
|
9843
|
+
|
|
9844
|
+
</div>
|
|
9845
|
+
<a class="headerlink" href="#SpotifyClient.PlayerResolveDeviceId"></a>
|
|
9846
|
+
|
|
9847
|
+
<div class="docstring"><p>Resolves a Spotify Connect device identifier from a specified device id, name, alias id,
|
|
9848
|
+
or alias name. This will ensure that the device id can be found on the network, as well
|
|
9849
|
+
as connect to the device if necessary with the current user context. </p>
|
|
9850
|
+
|
|
9851
|
+
<h6 id="arguments">Arguments:</h6>
|
|
9852
|
+
|
|
9853
|
+
<ul>
|
|
9854
|
+
<li><strong>deviceValue (str):</strong> The device id / name value to check.</li>
|
|
9855
|
+
<li><strong>verifyUserContext (bool):</strong> If True, the active user context of the resolved device is checked to ensure it
|
|
9856
|
+
matches the user context specified on the class constructor.
|
|
9857
|
+
If False, the user context will not be checked.
|
|
9858
|
+
Default is True.</li>
|
|
9859
|
+
<li><strong>verifyTimeout (float):</strong> Maximum time to wait (in seconds) for the device to become active in the Spotify
|
|
9860
|
+
Connect device list. This value is only used if a Connect command has to be
|
|
9861
|
+
issued to activate the device.
|
|
9862
|
+
Default is 5; value range is 0 - 10.</li>
|
|
9863
|
+
</ul>
|
|
9864
|
+
|
|
9865
|
+
<h6 id="returns">Returns:</h6>
|
|
9866
|
+
|
|
9867
|
+
<blockquote>
|
|
9868
|
+
<p>A device Id for the deviceValue if one could be resolved;
|
|
9869
|
+
otherwise, just the original deviceValue with the understanding that
|
|
9870
|
+
subsequent operations will probably fail since it's not in the device list. </p>
|
|
9871
|
+
</blockquote>
|
|
9872
|
+
|
|
9873
|
+
<h6 id="raises">Raises:</h6>
|
|
9874
|
+
|
|
9875
|
+
<ul>
|
|
9876
|
+
<li><strong>SpotifyWebApiError:</strong> If the Spotify Web API request was for a non-authorization service
|
|
9877
|
+
and the response contains error information.</li>
|
|
9878
|
+
<li><strong>SpotifyZeroconfApiError:</strong> If any Spotify Zeroconf API request failed.</li>
|
|
9879
|
+
<li><strong>SpotifApiError:</strong> If the method fails for any other reason.</li>
|
|
9880
|
+
</ul>
|
|
9881
|
+
|
|
9882
|
+
<p>A Zeroconf discovery process is initiated to search for all Spotify Connect devices connected
|
|
9883
|
+
to the local network. A Spotify Zeroconf API <code>getInfo</code> call is then issued for each device
|
|
9884
|
+
that was found, searching for a match on the <code>deviceValue</code> argument. Depending on the format
|
|
9885
|
+
of the <code>deviceValue</code>, the search will match on either a Device ID or RemoteName as well as any
|
|
9886
|
+
alias ID's or Names that are in use (for multi-room configurations). </p>
|
|
9887
|
+
|
|
9888
|
+
<p>The device ID value is returned if a match is found; otherwise, null is returned.</p>
|
|
9889
|
+
|
|
9890
|
+
<p>A user context switch will also be performed if a device id is resolved AND the active user of the
|
|
9891
|
+
device does not match the <code>SpotifyConnectUsername</code> argument specified on the class constructor.
|
|
9892
|
+
The user context switch is bypassed if the <code>verifyUserContext</code> argument is False, or if the
|
|
9893
|
+
<code>SpotifyConnectUsername</code> was not supplied on the class constructor. If the user context is to be
|
|
9894
|
+
switched, then a Disconnect will be issued if a user context is active on the device followed by
|
|
9895
|
+
a Connect to the user context specified on the class constructor.</p>
|
|
9896
|
+
|
|
9897
|
+
<p><details>
|
|
9898
|
+
<summary>Sample Code</summary></p>
|
|
9899
|
+
|
|
9900
|
+
<div class="pdoc-code codehilite">
|
|
9901
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
9902
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
9903
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.zeroconfapi</span> <span class="kn">import</span> <span class="n">ZeroconfConnect</span><span class="p">,</span> <span class="n">ZeroconfResponse</span>
|
|
9904
|
+
|
|
9905
|
+
<span class="k">try</span><span class="p">:</span>
|
|
9906
|
+
|
|
9907
|
+
<span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
|
|
9908
|
+
|
|
9909
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
9910
|
+
<span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> \
|
|
9911
|
+
<span class="p">[</span>
|
|
9912
|
+
<span class="s1">'user-read-playback-state'</span><span class="p">,</span>
|
|
9913
|
+
<span class="s1">'user-read-email'</span><span class="p">,</span>
|
|
9914
|
+
<span class="p">]</span>
|
|
9915
|
+
|
|
9916
|
+
<span class="c1"># create new spotify client instance, passing the Spotify Connect user context and discovery timeout.</span>
|
|
9917
|
+
<span class="n">spotify</span><span class="p">:</span><span class="n">SpotifyClient</span> <span class="o">=</span> <span class="n">SpotifyClient</span><span class="p">(</span>
|
|
9918
|
+
<span class="n">spotifyConnectUsername</span><span class="o">=</span><span class="s2">"yourSpotifyConnectDeviceUsername"</span><span class="p">,</span>
|
|
9919
|
+
<span class="n">spotifyConnectPassword</span><span class="o">=</span><span class="s2">"yourSpotifyConnectDevicePassword"</span><span class="p">,</span>
|
|
9920
|
+
<span class="n">spotifyConnectDiscoveryTimeout</span><span class="o">=</span><span class="mf">1.5</span>
|
|
9921
|
+
<span class="p">)</span>
|
|
9922
|
+
|
|
9923
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
9924
|
+
<span class="n">spotify</span><span class="o">.</span><span class="n">SetAuthTokenAuthorizationCodePKCE</span><span class="p">(</span><span class="n">CLIENT_ID</span><span class="p">,</span> <span class="n">SPOTIFY_SCOPES</span><span class="p">)</span>
|
|
9925
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
9926
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
9927
|
+
|
|
9928
|
+
<span class="c1"># resolve Spotify Connect player device by it's Id value.</span>
|
|
9929
|
+
<span class="n">deviceId</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'30fbc80e35598f3c242f2120413c943dfd9715fe'</span>
|
|
9930
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Resolving Spotify Connect player device: </span><span class="se">\n</span><span class="s1">- ID = "</span><span class="si">%s</span><span class="s1">" ...'</span> <span class="o">%</span> <span class="n">deviceId</span><span class="p">)</span>
|
|
9931
|
+
<span class="n">deviceResult</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">PlayerResolveDeviceId</span><span class="p">(</span><span class="n">deviceId</span><span class="p">)</span>
|
|
9932
|
+
|
|
9933
|
+
<span class="k">if</span> <span class="n">deviceResult</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
|
9934
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'result "</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="n">deviceResult</span><span class="p">)</span>
|
|
9935
|
+
<span class="k">else</span><span class="p">:</span>
|
|
9936
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"Device Id could not be resolved!"</span><span class="p">)</span>
|
|
9937
|
+
|
|
9938
|
+
<span class="c1"># resolve Spotify Connect player device by it's Name value.</span>
|
|
9939
|
+
<span class="n">deviceName</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'Bose-ST10-2'</span>
|
|
9940
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Resolving Spotify Connect player device: </span><span class="se">\n</span><span class="s1">- Name = "</span><span class="si">%s</span><span class="s1">" ...'</span> <span class="o">%</span> <span class="n">deviceName</span><span class="p">)</span>
|
|
9941
|
+
<span class="n">deviceResult</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">PlayerResolveDeviceId</span><span class="p">(</span><span class="n">deviceName</span><span class="p">)</span>
|
|
9942
|
+
|
|
9943
|
+
<span class="k">if</span> <span class="n">deviceResult</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
|
9944
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">' result "</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="n">deviceResult</span><span class="p">)</span>
|
|
9945
|
+
<span class="k">else</span><span class="p">:</span>
|
|
9946
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"Device Name was not found in the list of devices"</span><span class="p">)</span>
|
|
9947
|
+
|
|
9948
|
+
<span class="c1"># resolve Spotify Connect player device by it's Name value, using a Disconnected device.</span>
|
|
9949
|
+
<span class="n">zconn</span><span class="p">:</span><span class="n">ZeroconfConnect</span> <span class="o">=</span> <span class="n">ZeroconfConnect</span><span class="p">(</span><span class="s1">'192.168.1.82'</span><span class="p">,</span> <span class="mi">8200</span><span class="p">,</span> <span class="s1">'/zc'</span><span class="p">,</span> <span class="n">useSSL</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
|
|
9950
|
+
<span class="n">result</span><span class="p">:</span><span class="n">ZeroconfResponse</span> <span class="o">=</span> <span class="n">zconn</span><span class="o">.</span><span class="n">Disconnect</span><span class="p">()</span>
|
|
9951
|
+
<span class="n">deviceName</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'Bose-ST10-2'</span>
|
|
9952
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Resolving Spotify Connect player device: </span><span class="se">\n</span><span class="s1">- Name = "</span><span class="si">%s</span><span class="s1">" ...'</span> <span class="o">%</span> <span class="n">deviceName</span><span class="p">)</span>
|
|
9953
|
+
<span class="n">deviceResult</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">PlayerResolveDeviceId</span><span class="p">(</span><span class="n">deviceName</span><span class="p">)</span>
|
|
9954
|
+
|
|
9955
|
+
<span class="k">if</span> <span class="n">deviceResult</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
|
9956
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">' result "</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="n">deviceResult</span><span class="p">)</span>
|
|
9957
|
+
<span class="k">else</span><span class="p">:</span>
|
|
9958
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"Device Name was not found in the list of devices"</span><span class="p">)</span>
|
|
9959
|
+
|
|
9960
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
9961
|
+
|
|
9962
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
9963
|
+
</code></pre>
|
|
9964
|
+
</div>
|
|
9965
|
+
|
|
9666
9966
|
<p></details></p>
|
|
9667
9967
|
</div>
|
|
9668
9968
|
|