spotifywebapiPython 1.0.91__py3-none-any.whl → 1.0.92__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.

@@ -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.91" -->
12
+ <!-- build env - Package Version = "1.0.92" -->
13
13
  <!-- pdoc module.modulename = "spotifywebapipython.spotifyclient" -->
14
14
  <!-- pdoc module.is_package = "False" -->
15
15
  <!-- pdoc root_module_name = "None" -->
@@ -249,6 +249,24 @@
249
249
  <li>
250
250
  <a class="function" href="#SpotifyClient.GetPlayerNowPlaying">GetPlayerNowPlaying</a>
251
251
  </li>
252
+ <li>
253
+ <a class="function" href="#SpotifyClient.GetPlayerNowPlayingAlbumUri">GetPlayerNowPlayingAlbumUri</a>
254
+ </li>
255
+ <li>
256
+ <a class="function" href="#SpotifyClient.GetPlayerNowPlayingArtistUri">GetPlayerNowPlayingArtistUri</a>
257
+ </li>
258
+ <li>
259
+ <a class="function" href="#SpotifyClient.GetPlayerNowPlayingAudiobookUri">GetPlayerNowPlayingAudiobookUri</a>
260
+ </li>
261
+ <li>
262
+ <a class="function" href="#SpotifyClient.GetPlayerNowPlayingPlaylistUri">GetPlayerNowPlayingPlaylistUri</a>
263
+ </li>
264
+ <li>
265
+ <a class="function" href="#SpotifyClient.GetPlayerNowPlayingShowUri">GetPlayerNowPlayingShowUri</a>
266
+ </li>
267
+ <li>
268
+ <a class="function" href="#SpotifyClient.GetPlayerNowPlayingUri">GetPlayerNowPlayingUri</a>
269
+ </li>
252
270
  <li>
253
271
  <a class="function" href="#SpotifyClient.GetPlayerPlaybackState">GetPlayerPlaybackState</a>
254
272
  </li>
@@ -464,7 +482,7 @@
464
482
 
465
483
  <footer class="footertext">
466
484
  spotifywebapiPython</br>
467
- Version 1.0.91</br>
485
+ Version 1.0.92</br>
468
486
  <a href="https://developer.spotify.com/documentation/web-api" target="_blank">
469
487
  <img src="../spotifywebapipython.ico" alt="brand icon" style="width:32px; height:32px; padding:4px;"/>
470
488
  A Spotify Web Api Client
@@ -2243,7 +2261,7 @@ and the response contains error information.</li>
2243
2261
  <div class="attr function">
2244
2262
 
2245
2263
  <span class="def">def</span>
2246
- <span class="name">FollowPlaylist</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">playlistId</span><span class="p">:</span> <span class="nb">str</span>, </span><span class="param"><span class="n">public</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
2264
+ <span class="name">FollowPlaylist</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">playlistId</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">public</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
2247
2265
 
2248
2266
 
2249
2267
  </div>
@@ -2257,7 +2275,8 @@ and the response contains error information.</li>
2257
2275
 
2258
2276
  <ul>
2259
2277
  <li><strong>playlistId (str):</strong> The Spotify ID of the playlist. <br />
2260
- Example: <code>3cEYpjA9oz9GiPac4AsH4n</code></li>
2278
+ Example: <code>3cEYpjA9oz9GiPac4AsH4n</code>
2279
+ If null, the currently playing playlist uri id value is used.</li>
2261
2280
  <li><strong>public (bool):</strong> If true the playlist will be included in user's public playlists, if false it
2262
2281
  will remain private. <br />
2263
2282
  Default = True. </li>
@@ -2307,6 +2326,12 @@ and the response contains error information.</li>
2307
2326
 
2308
2327
  <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Success - playlist is now followed&#39;</span><span class="p">)</span>
2309
2328
 
2329
+ <span class="c1"># add the current user as a follower of the nowplaying playlist.</span>
2330
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Following nowplaying playlist ...&#39;</span><span class="p">)</span>
2331
+ <span class="n">spotify</span><span class="o">.</span><span class="n">FollowPlaylist</span><span class="p">()</span>
2332
+
2333
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Success - nowplaying playlist is now followed&#39;</span><span class="p">)</span>
2334
+
2310
2335
  <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
2311
2336
 
2312
2337
  <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;** Exception: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
@@ -2398,7 +2423,7 @@ and the response contains error information.</li>
2398
2423
  <div class="attr function">
2399
2424
 
2400
2425
  <span class="def">def</span>
2401
- <span class="name">GetAlbum</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">albumId</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="n">market</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/album.html#Album">spotifywebapipython.models.album.Album</a></span>:</span></span>
2426
+ <span class="name">GetAlbum</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">albumId</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">market</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/album.html#Album">spotifywebapipython.models.album.Album</a></span>:</span></span>
2402
2427
 
2403
2428
 
2404
2429
  </div>
@@ -2410,7 +2435,9 @@ and the response contains error information.</li>
2410
2435
 
2411
2436
  <ul>
2412
2437
  <li><strong>albumId (str):</strong> The Spotify ID of the album. <br />
2413
- Example: <code>6vc9OTcyd3hyzabCmsdnwE</code></li>
2438
+ Example: <code>6vc9OTcyd3hyzabCmsdnwE</code>
2439
+ If null, the currently playing album uri id value is used; a Spotify Free or Premium account
2440
+ is required to correctly read the currently playing context.</li>
2414
2441
  <li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
2415
2442
  is available in that market will be returned. If a valid user access token is specified
2416
2443
  in the request header, the country associated with the user account will take priority over
@@ -2477,6 +2504,49 @@ and the response contains error information.</li>
2477
2504
  </code></pre>
2478
2505
  </div>
2479
2506
 
2507
+ <p><summary>Sample Code - NowPlaying</summary></p>
2508
+
2509
+ <div class="pdoc-code codehilite">
2510
+ <pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
2511
+ <span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
2512
+
2513
+ <span class="k">try</span><span class="p">:</span>
2514
+
2515
+ <span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
2516
+
2517
+ <span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">&#39;your_client_id&#39;</span>
2518
+ <span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;user-read-email&#39;</span><span class="p">,</span><span class="s1">&#39;user-library-read&#39;</span><span class="p">,</span><span class="s1">&#39;user-read-currently-playing&#39;</span><span class="p">]</span>
2519
+
2520
+ <span class="c1"># create new spotify client instance.</span>
2521
+ <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>
2522
+
2523
+ <span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
2524
+ <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>
2525
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type=&quot;</span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1"> Scope=&quot;</span><span class="si">%s</span><span class="s1">&quot;&#39;</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>
2526
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName=&quot;</span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1"> EMail=&quot;</span><span class="si">%s</span><span class="s1">&quot;&#39;</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>
2527
+
2528
+ <span class="c1"># get Spotify catalog information for nowplaying album.</span>
2529
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Getting details for nowplaying Album ...</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
2530
+ <span class="n">album</span><span class="p">:</span><span class="n">Album</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetAlbum</span><span class="p">()</span>
2531
+
2532
+ <span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">album</span><span class="p">))</span>
2533
+
2534
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Artists:&#39;</span><span class="p">)</span>
2535
+ <span class="n">artist</span><span class="p">:</span><span class="n">ArtistSimplified</span>
2536
+ <span class="k">for</span> <span class="n">artist</span> <span class="ow">in</span> <span class="n">album</span><span class="o">.</span><span class="n">Artists</span><span class="p">:</span>
2537
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;- &quot;</span><span class="si">{name}</span><span class="s1">&quot; (</span><span class="si">{uri}</span><span class="s1">)&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">artist</span><span class="o">.</span><span class="n">Name</span><span class="p">,</span> <span class="n">uri</span><span class="o">=</span><span class="n">artist</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
2538
+
2539
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Tracks:&#39;</span><span class="p">)</span>
2540
+ <span class="n">track</span><span class="p">:</span><span class="n">TrackSaved</span>
2541
+ <span class="k">for</span> <span class="n">track</span> <span class="ow">in</span> <span class="n">album</span><span class="o">.</span><span class="n">Tracks</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
2542
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;- &quot;</span><span class="si">{name}</span><span class="s1">&quot; (</span><span class="si">{uri}</span><span class="s1">)&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">track</span><span class="o">.</span><span class="n">Name</span><span class="p">,</span> <span class="n">uri</span><span class="o">=</span><span class="n">track</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
2543
+
2544
+ <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
2545
+
2546
+ <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;** Exception: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
2547
+ </code></pre>
2548
+ </div>
2549
+
2480
2550
  <p></details></p>
2481
2551
  </div>
2482
2552
 
@@ -2882,7 +2952,7 @@ and the response contains error information.</li>
2882
2952
  <div class="attr function">
2883
2953
 
2884
2954
  <span class="def">def</span>
2885
- <span class="name">GetAlbumTracks</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">albumId</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="n">limit</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">20</span>,</span><span class="param"> <span class="n">offset</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>,</span><span class="param"> <span class="n">market</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">limitTotal</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/trackpagesimplified.html#TrackPageSimplified">spotifywebapipython.models.trackpagesimplified.TrackPageSimplified</a></span>:</span></span>
2955
+ <span class="name">GetAlbumTracks</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">albumId</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">limit</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">20</span>,</span><span class="param"> <span class="n">offset</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>,</span><span class="param"> <span class="n">market</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">limitTotal</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/trackpagesimplified.html#TrackPageSimplified">spotifywebapipython.models.trackpagesimplified.TrackPageSimplified</a></span>:</span></span>
2886
2956
 
2887
2957
 
2888
2958
  </div>
@@ -2896,7 +2966,9 @@ and the response contains error information.</li>
2896
2966
 
2897
2967
  <ul>
2898
2968
  <li><strong>albumId (str):</strong> The Spotify ID of the album. <br />
2899
- Example: <code>6vc9OTcyd3hyzabCmsdnwE</code></li>
2969
+ Example: <code>6vc9OTcyd3hyzabCmsdnwE</code>
2970
+ If null, the currently playing album uri id value is used; a Spotify Free or Premium account
2971
+ is required to correctly read the currently playing context.</li>
2900
2972
  <li><strong>limit (int):</strong> The maximum number of items to return in a page of items when manual paging is used. <br />
2901
2973
  Default: 20, Range: 1 to 50. <br />
2902
2974
  See the <code>limitTotal</code> argument for automatic paging option. </li>
@@ -3038,7 +3110,7 @@ and the response contains error information.</li>
3038
3110
  <div class="attr function">
3039
3111
 
3040
3112
  <span class="def">def</span>
3041
- <span class="name">GetArtist</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">artistId</span><span class="p">:</span> <span class="nb">str</span></span><span class="return-annotation">) -> <span class="n"><a href="models/artist.html#Artist">spotifywebapipython.models.artist.Artist</a></span>:</span></span>
3113
+ <span class="name">GetArtist</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">artistId</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/artist.html#Artist">spotifywebapipython.models.artist.Artist</a></span>:</span></span>
3042
3114
 
3043
3115
 
3044
3116
  </div>
@@ -3050,7 +3122,9 @@ and the response contains error information.</li>
3050
3122
 
3051
3123
  <ul>
3052
3124
  <li><strong>artistId (str):</strong> The Spotify ID of the artist. <br />
3053
- Example: <code>6APm8EjxOHSYM5B4i3vT3q</code></li>
3125
+ Example: <code>6APm8EjxOHSYM5B4i3vT3q</code>
3126
+ If null, the currently playing artist uri id value is used; a Spotify Free or Premium account
3127
+ is required to correctly read the currently playing context.</li>
3054
3128
  </ul>
3055
3129
 
3056
3130
  <h6 id="returns">Returns:</h6>
@@ -3100,6 +3174,39 @@ and the response contains error information.</li>
3100
3174
  </code></pre>
3101
3175
  </div>
3102
3176
 
3177
+ <p><summary>Sample Code - NowPlaying</summary></p>
3178
+
3179
+ <div class="pdoc-code codehilite">
3180
+ <pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
3181
+ <span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
3182
+
3183
+ <span class="k">try</span><span class="p">:</span>
3184
+
3185
+ <span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
3186
+
3187
+ <span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">&#39;your_client_id&#39;</span>
3188
+ <span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;user-read-email&#39;</span><span class="p">,</span><span class="s1">&#39;user-library-read&#39;</span><span class="p">,</span><span class="s1">&#39;user-read-currently-playing&#39;</span><span class="p">]</span>
3189
+
3190
+ <span class="c1"># create new spotify client instance.</span>
3191
+ <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>
3192
+
3193
+ <span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
3194
+ <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>
3195
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type=&quot;</span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1"> Scope=&quot;</span><span class="si">%s</span><span class="s1">&quot;&#39;</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>
3196
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName=&quot;</span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1"> EMail=&quot;</span><span class="si">%s</span><span class="s1">&quot;&#39;</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>
3197
+
3198
+ <span class="c1"># get Spotify catalog information for the nowplaying artist.</span>
3199
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Getting details for nowplaying Artist ...</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
3200
+ <span class="n">artist</span><span class="p">:</span><span class="n">Artist</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetArtist</span><span class="p">()</span>
3201
+
3202
+ <span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">artist</span><span class="p">))</span>
3203
+
3204
+ <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
3205
+
3206
+ <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;** Exception: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
3207
+ </code></pre>
3208
+ </div>
3209
+
3103
3210
  <p></details></p>
3104
3211
  </div>
3105
3212
 
@@ -3109,7 +3216,7 @@ and the response contains error information.</li>
3109
3216
  <div class="attr function">
3110
3217
 
3111
3218
  <span class="def">def</span>
3112
- <span class="name">GetArtistAlbums</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">artistId</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="n">include_groups</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s1">&#39;album&#39;</span>,</span><span class="param"> <span class="n">limit</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">20</span>,</span><span class="param"> <span class="n">offset</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>,</span><span class="param"> <span class="n">market</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">limitTotal</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">sortResult</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span></span><span class="return-annotation">) -> <span class="n"><a href="models/albumpagesimplified.html#AlbumPageSimplified">spotifywebapipython.models.albumpagesimplified.AlbumPageSimplified</a></span>:</span></span>
3219
+ <span class="name">GetArtistAlbums</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">artistId</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">include_groups</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s1">&#39;album&#39;</span>,</span><span class="param"> <span class="n">limit</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">20</span>,</span><span class="param"> <span class="n">offset</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>,</span><span class="param"> <span class="n">market</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">limitTotal</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">sortResult</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span></span><span class="return-annotation">) -> <span class="n"><a href="models/albumpagesimplified.html#AlbumPageSimplified">spotifywebapipython.models.albumpagesimplified.AlbumPageSimplified</a></span>:</span></span>
3113
3220
 
3114
3221
 
3115
3222
  </div>
@@ -3121,7 +3228,9 @@ and the response contains error information.</li>
3121
3228
 
3122
3229
  <ul>
3123
3230
  <li><strong>artistId (str):</strong> The Spotify ID of the artist. <br />
3124
- Example: <code>6APm8EjxOHSYM5B4i3vT3q</code></li>
3231
+ Example: <code>6APm8EjxOHSYM5B4i3vT3q</code>
3232
+ If null, the currently playing artist uri id value is used; a Spotify Free or Premium account
3233
+ is required to correctly read the currently playing context.</li>
3125
3234
  <li><strong>include_groups (str):</strong> A comma-separated list of keywords that will be used to filter the response. <br />
3126
3235
  If not supplied, all album types will be returned. <br />
3127
3236
  Valid values are: <code>album</code>, <code>single</code>, <code>appears_on</code>, <code>compilation</code> <br />
@@ -3268,7 +3377,7 @@ and the response contains error information.</li>
3268
3377
  <div class="attr function">
3269
3378
 
3270
3379
  <span class="def">def</span>
3271
- <span class="name">GetArtistInfo</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">artistId</span><span class="p">:</span> <span class="nb">str</span></span><span class="return-annotation">) -> <span class="n">spotifywebapipython</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">artistinfo</span><span class="o">.</span><span class="n">ArtistInfo</span>:</span></span>
3380
+ <span class="name">GetArtistInfo</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">artistId</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n">spotifywebapipython</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">artistinfo</span><span class="o">.</span><span class="n">ArtistInfo</span>:</span></span>
3272
3381
 
3273
3382
 
3274
3383
  </div>
@@ -3281,7 +3390,9 @@ specified Spotify artist ID.</p>
3281
3390
 
3282
3391
  <ul>
3283
3392
  <li><strong>artistId (str):</strong> The Spotify ID of the artist. <br />
3284
- Example: <code>6APm8EjxOHSYM5B4i3vT3q</code></li>
3393
+ Example: <code>6APm8EjxOHSYM5B4i3vT3q</code>
3394
+ If null, the currently playing artist uri id value is used; a Spotify Free or Premium account
3395
+ is required to correctly read the currently playing context.</li>
3285
3396
  </ul>
3286
3397
 
3287
3398
  <h6 id="returns">Returns:</h6>
@@ -3339,7 +3450,7 @@ and the response contains error information.</li>
3339
3450
  <div class="attr function">
3340
3451
 
3341
3452
  <span class="def">def</span>
3342
- <span class="name">GetArtistRelatedArtists</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">artistId</span><span class="p">:</span> <span class="nb">str</span></span><span class="return-annotation">) -> <span class="nb">list</span><span class="p">[</span><span class="n"><a href="models/artist.html#Artist">spotifywebapipython.models.artist.Artist</a></span><span class="p">]</span>:</span></span>
3453
+ <span class="name">GetArtistRelatedArtists</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">artistId</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="nb">list</span><span class="p">[</span><span class="n"><a href="models/artist.html#Artist">spotifywebapipython.models.artist.Artist</a></span><span class="p">]</span>:</span></span>
3343
3454
 
3344
3455
 
3345
3456
  </div>
@@ -3352,7 +3463,9 @@ Similarity is based on analysis of the Spotify community's listening history.</p
3352
3463
 
3353
3464
  <ul>
3354
3465
  <li><strong>artistId (str):</strong> The Spotify ID of the artist. <br />
3355
- Example: <code>6APm8EjxOHSYM5B4i3vT3q</code></li>
3466
+ Example: <code>6APm8EjxOHSYM5B4i3vT3q</code>
3467
+ If null, the currently playing artist uri id value is used; a Spotify Free or Premium account
3468
+ is required to correctly read the currently playing context.</li>
3356
3469
  </ul>
3357
3470
 
3358
3471
  <h6 id="returns">Returns:</h6>
@@ -3646,7 +3759,7 @@ and the response contains error information.</li>
3646
3759
  <div class="attr function">
3647
3760
 
3648
3761
  <span class="def">def</span>
3649
- <span class="name">GetArtistTopTracks</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">artistId</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="n">market</span><span class="p">:</span> <span class="nb">str</span></span><span class="return-annotation">) -> <span class="nb">list</span><span class="p">[</span><span class="n"><a href="models/track.html#Track">spotifywebapipython.models.track.Track</a></span><span class="p">]</span>:</span></span>
3762
+ <span class="name">GetArtistTopTracks</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">artistId</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">market</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="nb">list</span><span class="p">[</span><span class="n"><a href="models/track.html#Track">spotifywebapipython.models.track.Track</a></span><span class="p">]</span>:</span></span>
3650
3763
 
3651
3764
 
3652
3765
  </div>
@@ -3658,7 +3771,9 @@ and the response contains error information.</li>
3658
3771
 
3659
3772
  <ul>
3660
3773
  <li><strong>artistId (str):</strong> The Spotify ID of the artist. <br />
3661
- Example: <code>6APm8EjxOHSYM5B4i3vT3q</code></li>
3774
+ Example: <code>6APm8EjxOHSYM5B4i3vT3q</code>
3775
+ If null, the currently playing artist uri id value is used; a Spotify Free or Premium account
3776
+ is required to correctly read the currently playing context.</li>
3662
3777
  <li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
3663
3778
  is available in that market will be returned. If a valid user access token is specified
3664
3779
  in the request header, the country associated with the user account will take priority over
@@ -3728,7 +3843,7 @@ and the response contains error information.</li>
3728
3843
  <div class="attr function">
3729
3844
 
3730
3845
  <span class="def">def</span>
3731
- <span class="name">GetAudiobook</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">audiobookId</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="n">market</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/audiobook.html#Audiobook">spotifywebapipython.models.audiobook.Audiobook</a></span>:</span></span>
3846
+ <span class="name">GetAudiobook</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">audiobookId</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">market</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/audiobook.html#Audiobook">spotifywebapipython.models.audiobook.Audiobook</a></span>:</span></span>
3732
3847
 
3733
3848
 
3734
3849
  </div>
@@ -3742,7 +3857,9 @@ and the response contains error information.</li>
3742
3857
 
3743
3858
  <ul>
3744
3859
  <li><strong>audiobookId (str):</strong> The Spotify ID for the audiobook.
3745
- Example: <code>74aydHJKgYz3AIq3jjBSv1</code></li>
3860
+ Example: <code>74aydHJKgYz3AIq3jjBSv1</code>
3861
+ If null, the currently playing audiobook uri id value is used; a Spotify Free or Premium account
3862
+ is required to correctly read the currently playing context.</li>
3746
3863
  <li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
3747
3864
  is available in that market will be returned. If a valid user access token is specified
3748
3865
  in the request header, the country associated with the user account will take priority over
@@ -3834,6 +3951,66 @@ and the response contains error information.</li>
3834
3951
  </code></pre>
3835
3952
  </div>
3836
3953
 
3954
+ <p><summary>Sample Code - NowPlaying</summary></p>
3955
+
3956
+ <div class="pdoc-code codehilite">
3957
+ <pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
3958
+ <span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
3959
+
3960
+ <span class="k">try</span><span class="p">:</span>
3961
+
3962
+ <span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
3963
+
3964
+ <span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">&#39;your_client_id&#39;</span>
3965
+ <span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;user-read-email&#39;</span><span class="p">,</span><span class="s1">&#39;user-library-read&#39;</span><span class="p">,</span><span class="s1">&#39;user-read-currently-playing&#39;</span><span class="p">]</span>
3966
+
3967
+ <span class="c1"># create new spotify client instance.</span>
3968
+ <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>
3969
+
3970
+ <span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
3971
+ <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>
3972
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type=&quot;</span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1"> Scope=&quot;</span><span class="si">%s</span><span class="s1">&quot;&#39;</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>
3973
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName=&quot;</span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1"> EMail=&quot;</span><span class="si">%s</span><span class="s1">&quot;&#39;</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>
3974
+
3975
+ <span class="c1"># get Spotify catalog information for the nowplaying audiobook.</span>
3976
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Getting details for nowplaying audiobook ...</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
3977
+ <span class="n">audiobook</span><span class="p">:</span><span class="n">Audiobook</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetAudiobook</span><span class="p">()</span>
3978
+
3979
+ <span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">audiobook</span><span class="p">))</span>
3980
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">)</span>
3981
+
3982
+ <span class="c1"># prepare to retrieve all chapters.</span>
3983
+ <span class="n">pageObj</span><span class="p">:</span><span class="n">ChapterPageSimplified</span> <span class="o">=</span> <span class="n">audiobook</span><span class="o">.</span><span class="n">Chapters</span>
3984
+
3985
+ <span class="c1"># handle pagination, as spotify limits us to a set # of items returned per response.</span>
3986
+ <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
3987
+
3988
+ <span class="c1"># display paging details.</span>
3989
+ <span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">pageObj</span><span class="p">))</span>
3990
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">)</span>
3991
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Chapters in this page of results:&#39;</span><span class="p">)</span>
3992
+
3993
+ <span class="c1"># display chapter details.</span>
3994
+ <span class="n">chapterSimplified</span><span class="p">:</span><span class="n">ChapterSimplified</span>
3995
+ <span class="k">for</span> <span class="n">chapterSimplified</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
3996
+
3997
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;- &quot;</span><span class="si">{name}</span><span class="s1">&quot; (</span><span class="si">{uri}</span><span class="s1">)&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">chapterSimplified</span><span class="o">.</span><span class="n">Name</span><span class="p">,</span> <span class="n">uri</span><span class="o">=</span><span class="n">chapterSimplified</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
3998
+
3999
+ <span class="c1"># anymore page results?</span>
4000
+ <span class="k">if</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Next</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
4001
+ <span class="c1"># no - all pages were processed.</span>
4002
+ <span class="k">break</span>
4003
+ <span class="k">else</span><span class="p">:</span>
4004
+ <span class="c1"># yes - retrieve the next page of results.</span>
4005
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Getting next page of </span><span class="si">%d</span><span class="s1"> items ...</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">pageObj</span><span class="o">.</span><span class="n">Limit</span><span class="p">))</span>
4006
+ <span class="n">pageObj</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetAudiobookChapters</span><span class="p">(</span><span class="n">audiobook</span><span class="o">.</span><span class="n">Id</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span><span class="n">pageObj</span><span class="o">.</span><span class="n">Offset</span> <span class="o">+</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Limit</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="n">pageObj</span><span class="o">.</span><span class="n">Limit</span><span class="p">)</span>
4007
+
4008
+ <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
4009
+
4010
+ <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;** Exception: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
4011
+ </code></pre>
4012
+ </div>
4013
+
3837
4014
  <p></details></p>
3838
4015
  </div>
3839
4016
 
@@ -3843,7 +4020,7 @@ and the response contains error information.</li>
3843
4020
  <div class="attr function">
3844
4021
 
3845
4022
  <span class="def">def</span>
3846
- <span class="name">GetAudiobookChapters</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">audiobookId</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="n">limit</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">20</span>,</span><span class="param"> <span class="n">offset</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>,</span><span class="param"> <span class="n">market</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">limitTotal</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/chapterpagesimplified.html#ChapterPageSimplified">spotifywebapipython.models.chapterpagesimplified.ChapterPageSimplified</a></span>:</span></span>
4023
+ <span class="name">GetAudiobookChapters</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">audiobookId</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">limit</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">20</span>,</span><span class="param"> <span class="n">offset</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>,</span><span class="param"> <span class="n">market</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">limitTotal</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/chapterpagesimplified.html#ChapterPageSimplified">spotifywebapipython.models.chapterpagesimplified.ChapterPageSimplified</a></span>:</span></span>
3847
4024
 
3848
4025
 
3849
4026
  </div>
@@ -3857,7 +4034,9 @@ and the response contains error information.</li>
3857
4034
 
3858
4035
  <ul>
3859
4036
  <li><strong>audiobookId (str):</strong> The Spotify ID for the audiobook.
3860
- Example: <code>74aydHJKgYz3AIq3jjBSv1</code></li>
4037
+ Example: <code>74aydHJKgYz3AIq3jjBSv1</code>
4038
+ If null, the currently playing audiobook uri id value is used; a Spotify Free or Premium account
4039
+ is required to correctly read the currently playing context.</li>
3861
4040
  <li><strong>limit (int):</strong> The maximum number of items to return in a page of items when manual paging is used. <br />
3862
4041
  Default: 20, Range: 1 to 50. <br />
3863
4042
  See the <code>limitTotal</code> argument for automatic paging option. </li>
@@ -5017,7 +5196,7 @@ and the response contains error information.</li>
5017
5196
  <div class="attr function">
5018
5197
 
5019
5198
  <span class="def">def</span>
5020
- <span class="name">GetEpisode</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">episodeId</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="n">market</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/episode.html#Episode">spotifywebapipython.models.episode.Episode</a></span>:</span></span>
5199
+ <span class="name">GetEpisode</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">episodeId</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">market</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/episode.html#Episode">spotifywebapipython.models.episode.Episode</a></span>:</span></span>
5021
5200
 
5022
5201
 
5023
5202
  </div>
@@ -5031,7 +5210,9 @@ and the response contains error information.</li>
5031
5210
 
5032
5211
  <ul>
5033
5212
  <li><strong>episodeId (str):</strong> The Spotify ID for the episode.
5034
- Example: <code>512ojhOuo1ktJprKbVcKyQ</code></li>
5213
+ Example: <code>512ojhOuo1ktJprKbVcKyQ</code>
5214
+ If null, the currently playing episode uri id value is used; a Spotify Free or Premium account
5215
+ is required to correctly read the currently playing context.</li>
5035
5216
  <li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
5036
5217
  is available in that market will be returned. If a valid user access token is specified
5037
5218
  in the request header, the country associated with the user account will take priority over
@@ -6317,6 +6498,152 @@ and the response contains error information.</li>
6317
6498
  </div>
6318
6499
 
6319
6500
 
6501
+ </div>
6502
+ <div id="SpotifyClient.GetPlayerNowPlayingAlbumUri" class="classattr">
6503
+ <div class="attr function">
6504
+
6505
+ <span class="def">def</span>
6506
+ <span class="name">GetPlayerNowPlayingAlbumUri</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
6507
+
6508
+
6509
+ </div>
6510
+ <a class="headerlink" href="#SpotifyClient.GetPlayerNowPlayingAlbumUri"></a>
6511
+
6512
+ <div class="docstring"><p>Returns the album uri value of the currently playing media if something is
6513
+ playing; otherwise, null is returned.</p>
6514
+
6515
+ <h6 id="raises">Raises:</h6>
6516
+
6517
+ <ul>
6518
+ <li><strong>SpotifyApiError:</strong> If current user does not have a Spotify free or premium level account. <br />
6519
+ If nowplaying context does not contain an album reference.</li>
6520
+ </ul>
6521
+ </div>
6522
+
6523
+
6524
+ </div>
6525
+ <div id="SpotifyClient.GetPlayerNowPlayingArtistUri" class="classattr">
6526
+ <div class="attr function">
6527
+
6528
+ <span class="def">def</span>
6529
+ <span class="name">GetPlayerNowPlayingArtistUri</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
6530
+
6531
+
6532
+ </div>
6533
+ <a class="headerlink" href="#SpotifyClient.GetPlayerNowPlayingArtistUri"></a>
6534
+
6535
+ <div class="docstring"><p>Returns the artist uri value of the currently playing media if something is
6536
+ playing; otherwise, null is returned.</p>
6537
+
6538
+ <h6 id="raises">Raises:</h6>
6539
+
6540
+ <ul>
6541
+ <li><strong>SpotifyApiError:</strong> If current user does not have a Spotify free or premium level account. <br />
6542
+ If nowplaying context does not contain an artist reference.</li>
6543
+ </ul>
6544
+ </div>
6545
+
6546
+
6547
+ </div>
6548
+ <div id="SpotifyClient.GetPlayerNowPlayingAudiobookUri" class="classattr">
6549
+ <div class="attr function">
6550
+
6551
+ <span class="def">def</span>
6552
+ <span class="name">GetPlayerNowPlayingAudiobookUri</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
6553
+
6554
+
6555
+ </div>
6556
+ <a class="headerlink" href="#SpotifyClient.GetPlayerNowPlayingAudiobookUri"></a>
6557
+
6558
+ <div class="docstring"><p>Returns the audiobook uri value of the currently playing media if something is
6559
+ playing; otherwise, null is returned.</p>
6560
+
6561
+ <h6 id="raises">Raises:</h6>
6562
+
6563
+ <ul>
6564
+ <li><strong>SpotifyApiError:</strong> If current user does not have a Spotify free or premium level account. <br />
6565
+ If nowplaying context is not a audiobook chapter.</li>
6566
+ </ul>
6567
+ </div>
6568
+
6569
+
6570
+ </div>
6571
+ <div id="SpotifyClient.GetPlayerNowPlayingPlaylistUri" class="classattr">
6572
+ <div class="attr function">
6573
+
6574
+ <span class="def">def</span>
6575
+ <span class="name">GetPlayerNowPlayingPlaylistUri</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
6576
+
6577
+
6578
+ </div>
6579
+ <a class="headerlink" href="#SpotifyClient.GetPlayerNowPlayingPlaylistUri"></a>
6580
+
6581
+ <div class="docstring"><p>Returns the playlist uri value of the currently playing media if something is
6582
+ playing; otherwise, null is returned.</p>
6583
+
6584
+ <h6 id="raises">Raises:</h6>
6585
+
6586
+ <ul>
6587
+ <li><strong>SpotifyApiError:</strong> If current user does not have a Spotify free or premium level account. <br />
6588
+ If nowplaying context is not a playlist.</li>
6589
+ </ul>
6590
+ </div>
6591
+
6592
+
6593
+ </div>
6594
+ <div id="SpotifyClient.GetPlayerNowPlayingShowUri" class="classattr">
6595
+ <div class="attr function">
6596
+
6597
+ <span class="def">def</span>
6598
+ <span class="name">GetPlayerNowPlayingShowUri</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
6599
+
6600
+
6601
+ </div>
6602
+ <a class="headerlink" href="#SpotifyClient.GetPlayerNowPlayingShowUri"></a>
6603
+
6604
+ <div class="docstring"><p>Returns the show uri value of the currently playing media if something is
6605
+ playing; otherwise, null is returned.</p>
6606
+
6607
+ <h6 id="raises">Raises:</h6>
6608
+
6609
+ <ul>
6610
+ <li><strong>SpotifyApiError:</strong> If current user does not have a Spotify free or premium level account. <br />
6611
+ If nowplaying context is not a show episode.</li>
6612
+ </ul>
6613
+ </div>
6614
+
6615
+
6616
+ </div>
6617
+ <div id="SpotifyClient.GetPlayerNowPlayingUri" class="classattr">
6618
+ <div class="attr function">
6619
+
6620
+ <span class="def">def</span>
6621
+ <span class="name">GetPlayerNowPlayingUri</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">additionalTypes</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
6622
+
6623
+
6624
+ </div>
6625
+ <a class="headerlink" href="#SpotifyClient.GetPlayerNowPlayingUri"></a>
6626
+
6627
+ <div class="docstring"><p>Returns the uri value of the currently playing media type if something is
6628
+ playing; otherwise, null is returned.</p>
6629
+
6630
+ <h6 id="arguments">Arguments:</h6>
6631
+
6632
+ <ul>
6633
+ <li><strong>additionalTypes (str):</strong> An item type that your client supports besides the default track type. <br />
6634
+ Valid types are: <code>track</code> and <code>episode</code>. <br />
6635
+ Specify <code>episode</code> to get podcast track information. </li>
6636
+ </ul>
6637
+
6638
+ <h6 id="raises">Raises:</h6>
6639
+
6640
+ <ul>
6641
+ <li><strong>SpotifyApiError:</strong> If current user does not have a Spotify free or premium level account. <br />
6642
+ If nowplaying item is not of the specified <code>additionalType</code>.</li>
6643
+ </ul>
6644
+ </div>
6645
+
6646
+
6320
6647
  </div>
6321
6648
  <div id="SpotifyClient.GetPlayerPlaybackState" class="classattr">
6322
6649
  <div class="attr function">
@@ -6693,7 +7020,7 @@ and the response contains error information.</li>
6693
7020
  <div class="attr function">
6694
7021
 
6695
7022
  <span class="def">def</span>
6696
- <span class="name">GetPlaylist</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">playlistId</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="n">market</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">fields</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">additionalTypes</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/playlist.html#Playlist">spotifywebapipython.models.playlist.Playlist</a></span>:</span></span>
7023
+ <span class="name">GetPlaylist</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">playlistId</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">market</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">fields</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">additionalTypes</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/playlist.html#Playlist">spotifywebapipython.models.playlist.Playlist</a></span>:</span></span>
6697
7024
 
6698
7025
 
6699
7026
  </div>
@@ -6705,7 +7032,8 @@ and the response contains error information.</li>
6705
7032
 
6706
7033
  <ul>
6707
7034
  <li><strong>playlistId (str):</strong> The Spotify ID of the playlist. <br />
6708
- Example: <code>5v5ETK9WFXAnGQ3MRubKuE</code></li>
7035
+ Example: <code>5v5ETK9WFXAnGQ3MRubKuE</code>
7036
+ If null, the currently playing playlist uri id value is used.</li>
6709
7037
  <li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
6710
7038
  is available in that market will be returned. If a valid user access token is specified
6711
7039
  in the request header, the country associated with the user account will take priority over
@@ -6788,6 +7116,47 @@ and the response contains error information.</li>
6788
7116
  </code></pre>
6789
7117
  </div>
6790
7118
 
7119
+ <p><summary>Sample Code - NowPlaying</summary></p>
7120
+
7121
+ <div class="pdoc-code codehilite">
7122
+ <pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
7123
+ <span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
7124
+
7125
+ <span class="k">try</span><span class="p">:</span>
7126
+
7127
+ <span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
7128
+
7129
+ <span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">&#39;your_client_id&#39;</span>
7130
+ <span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;user-read-email&#39;</span><span class="p">,</span><span class="s1">&#39;user-library-read&#39;</span><span class="p">,</span><span class="s1">&#39;user-read-currently-playing&#39;</span><span class="p">]</span>
7131
+
7132
+ <span class="c1"># create new spotify client instance.</span>
7133
+ <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>
7134
+
7135
+ <span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
7136
+ <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>
7137
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type=&quot;</span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1"> Scope=&quot;</span><span class="si">%s</span><span class="s1">&quot;&#39;</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>
7138
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName=&quot;</span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1"> EMail=&quot;</span><span class="si">%s</span><span class="s1">&quot;&#39;</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>
7139
+
7140
+ <span class="c1"># get the nowplaying playlist owned by a Spotify user.</span>
7141
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Getting details for nowplaying playlist ...</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
7142
+ <span class="n">playlist</span><span class="p">:</span><span class="n">Playlist</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetPlaylist</span><span class="p">()</span>
7143
+
7144
+ <span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">playlist</span><span class="p">))</span>
7145
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">)</span>
7146
+
7147
+ <span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">playlist</span><span class="o">.</span><span class="n">Tracks</span><span class="p">))</span>
7148
+
7149
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Tracks:&#39;</span><span class="p">)</span>
7150
+ <span class="n">playlistTrack</span><span class="p">:</span><span class="n">PlaylistTrack</span>
7151
+ <span class="k">for</span> <span class="n">playlistTrack</span> <span class="ow">in</span> <span class="n">playlist</span><span class="o">.</span><span class="n">Tracks</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
7152
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;- &quot;</span><span class="si">{name}</span><span class="s1">&quot; (</span><span class="si">{uri}</span><span class="s1">)&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">playlistTrack</span><span class="o">.</span><span class="n">Track</span><span class="o">.</span><span class="n">Name</span><span class="p">,</span> <span class="n">uri</span><span class="o">=</span><span class="n">playlistTrack</span><span class="o">.</span><span class="n">Track</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
7153
+
7154
+ <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
7155
+
7156
+ <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;** Exception: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
7157
+ </code></pre>
7158
+ </div>
7159
+
6791
7160
  <p></details></p>
6792
7161
  </div>
6793
7162
 
@@ -6868,7 +7237,7 @@ and the response contains error information.</li>
6868
7237
  <div class="attr function">
6869
7238
 
6870
7239
  <span class="def">def</span>
6871
- <span class="name">GetPlaylistItems</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">playlistId</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="n">limit</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">50</span>,</span><span class="param"> <span class="n">offset</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>,</span><span class="param"> <span class="n">market</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">fields</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">additionalTypes</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">limitTotal</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/playlistpage.html#PlaylistPage">spotifywebapipython.models.playlistpage.PlaylistPage</a></span>:</span></span>
7240
+ <span class="name">GetPlaylistItems</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">playlistId</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">limit</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">50</span>,</span><span class="param"> <span class="n">offset</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>,</span><span class="param"> <span class="n">market</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">fields</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">additionalTypes</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">limitTotal</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/playlistpage.html#PlaylistPage">spotifywebapipython.models.playlistpage.PlaylistPage</a></span>:</span></span>
6872
7241
 
6873
7242
 
6874
7243
  </div>
@@ -6882,7 +7251,8 @@ and the response contains error information.</li>
6882
7251
 
6883
7252
  <ul>
6884
7253
  <li><strong>playlistId (str):</strong> The Spotify ID of the playlist. <br />
6885
- Example: <code>5v5ETK9WFXAnGQ3MRubKuE</code></li>
7254
+ Example: <code>5v5ETK9WFXAnGQ3MRubKuE</code>
7255
+ If null, the currently playing playlist uri id value is used.</li>
6886
7256
  <li><strong>limit (int):</strong> The maximum number of items to return in a page of items when manual paging is used. <br />
6887
7257
  Default: 50, Range: 1 to 50. <br />
6888
7258
  See the <code>limitTotal</code> argument for automatic paging option. </li>
@@ -7379,7 +7749,7 @@ and the response contains error information.</li>
7379
7749
  <div class="attr function">
7380
7750
 
7381
7751
  <span class="def">def</span>
7382
- <span class="name">GetShow</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">showId</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="n">market</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/show.html#Show">spotifywebapipython.models.show.Show</a></span>:</span></span>
7752
+ <span class="name">GetShow</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">showId</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">market</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/show.html#Show">spotifywebapipython.models.show.Show</a></span>:</span></span>
7383
7753
 
7384
7754
 
7385
7755
  </div>
@@ -7391,7 +7761,9 @@ and the response contains error information.</li>
7391
7761
 
7392
7762
  <ul>
7393
7763
  <li><strong>showId (str):</strong> The Spotify ID for the show.
7394
- Example: <code>5CfCWKI5pZ28U0uOzXkDHe</code></li>
7764
+ Example: <code>5CfCWKI5pZ28U0uOzXkDHe</code>
7765
+ If null, the currently playing show uri id value is used; a Spotify Free or Premium account
7766
+ is required to correctly read the currently playing context.</li>
7395
7767
  <li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
7396
7768
  is available in that market will be returned. If a valid user access token is specified
7397
7769
  in the request header, the country associated with the user account will take priority over
@@ -7483,6 +7855,66 @@ and the response contains error information.</li>
7483
7855
  </code></pre>
7484
7856
  </div>
7485
7857
 
7858
+ <p><summary>Sample Code - NowPlaying</summary></p>
7859
+
7860
+ <div class="pdoc-code codehilite">
7861
+ <pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
7862
+ <span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
7863
+
7864
+ <span class="k">try</span><span class="p">:</span>
7865
+
7866
+ <span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
7867
+
7868
+ <span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">&#39;your_client_id&#39;</span>
7869
+ <span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;user-read-email&#39;</span><span class="p">,</span><span class="s1">&#39;user-library-read&#39;</span><span class="p">,</span><span class="s1">&#39;user-read-currently-playing&#39;</span><span class="p">]</span>
7870
+
7871
+ <span class="c1"># create new spotify client instance.</span>
7872
+ <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>
7873
+
7874
+ <span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
7875
+ <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>
7876
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type=&quot;</span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1"> Scope=&quot;</span><span class="si">%s</span><span class="s1">&quot;&#39;</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>
7877
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName=&quot;</span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1"> EMail=&quot;</span><span class="si">%s</span><span class="s1">&quot;&#39;</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>
7878
+
7879
+ <span class="c1"># get Spotify catalog information for the nowplaying show.</span>
7880
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Getting details for nowplaying show ...</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
7881
+ <span class="n">show</span><span class="p">:</span><span class="n">Show</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetShow</span><span class="p">()</span>
7882
+
7883
+ <span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">show</span><span class="p">))</span>
7884
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">)</span>
7885
+
7886
+ <span class="c1"># prepare to retrieve all episodes.</span>
7887
+ <span class="n">pageObj</span><span class="p">:</span><span class="n">EpisodePageSimplified</span> <span class="o">=</span> <span class="n">show</span><span class="o">.</span><span class="n">Episodes</span>
7888
+
7889
+ <span class="c1"># handle pagination, as spotify limits us to a set # of items returned per response.</span>
7890
+ <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
7891
+
7892
+ <span class="c1"># display paging details.</span>
7893
+ <span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">pageObj</span><span class="p">))</span>
7894
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">)</span>
7895
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Episodes in this page of results:&#39;</span><span class="p">)</span>
7896
+
7897
+ <span class="c1"># display episode details.</span>
7898
+ <span class="n">episodeSimplified</span><span class="p">:</span><span class="n">EpisodeSimplified</span>
7899
+ <span class="k">for</span> <span class="n">episodeSimplified</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
7900
+
7901
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;- &quot;</span><span class="si">{name}</span><span class="s1">&quot; (</span><span class="si">{uri}</span><span class="s1">)&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">episodeSimplified</span><span class="o">.</span><span class="n">Name</span><span class="p">,</span> <span class="n">uri</span><span class="o">=</span><span class="n">episodeSimplified</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
7902
+
7903
+ <span class="c1"># anymore page results?</span>
7904
+ <span class="k">if</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Next</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
7905
+ <span class="c1"># no - all pages were processed.</span>
7906
+ <span class="k">break</span>
7907
+ <span class="k">else</span><span class="p">:</span>
7908
+ <span class="c1"># yes - retrieve the next page of results.</span>
7909
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Getting next page of </span><span class="si">%d</span><span class="s1"> items ...</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">pageObj</span><span class="o">.</span><span class="n">Limit</span><span class="p">))</span>
7910
+ <span class="n">pageObj</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetShowEpisodes</span><span class="p">(</span><span class="n">show</span><span class="o">.</span><span class="n">Id</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span><span class="n">pageObj</span><span class="o">.</span><span class="n">Offset</span> <span class="o">+</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Limit</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="n">pageObj</span><span class="o">.</span><span class="n">Limit</span><span class="p">)</span>
7911
+
7912
+ <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
7913
+
7914
+ <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;** Exception: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
7915
+ </code></pre>
7916
+ </div>
7917
+
7486
7918
  <p></details></p>
7487
7919
  </div>
7488
7920
 
@@ -7492,7 +7924,7 @@ and the response contains error information.</li>
7492
7924
  <div class="attr function">
7493
7925
 
7494
7926
  <span class="def">def</span>
7495
- <span class="name">GetShowEpisodes</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">showId</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="n">limit</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">20</span>,</span><span class="param"> <span class="n">offset</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>,</span><span class="param"> <span class="n">market</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">limitTotal</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/episodepagesimplified.html#EpisodePageSimplified">spotifywebapipython.models.episodepagesimplified.EpisodePageSimplified</a></span>:</span></span>
7927
+ <span class="name">GetShowEpisodes</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">showId</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">limit</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">20</span>,</span><span class="param"> <span class="n">offset</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>,</span><span class="param"> <span class="n">market</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">limitTotal</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/episodepagesimplified.html#EpisodePageSimplified">spotifywebapipython.models.episodepagesimplified.EpisodePageSimplified</a></span>:</span></span>
7496
7928
 
7497
7929
 
7498
7930
  </div>
@@ -7506,7 +7938,9 @@ and the response contains error information.</li>
7506
7938
 
7507
7939
  <ul>
7508
7940
  <li><strong>showId (str):</strong> The Spotify ID for the show.
7509
- Example: <code>6kAsbP8pxwaU2kPibKTuHE</code></li>
7941
+ Example: <code>6kAsbP8pxwaU2kPibKTuHE</code>
7942
+ If null, the currently playing show uri id value is used; a Spotify Free or Premium account
7943
+ is required to correctly read the currently playing context.</li>
7510
7944
  <li><strong>limit (int):</strong> The maximum number of items to return in a page of items when manual paging is used. <br />
7511
7945
  Default: 20, Range: 1 to 50. <br />
7512
7946
  See the <code>limitTotal</code> argument for automatic paging option. </li>
@@ -8190,7 +8624,7 @@ the spotify web api request. This results in better performance.</p>
8190
8624
  <div class="attr function">
8191
8625
 
8192
8626
  <span class="def">def</span>
8193
- <span class="name">GetTrack</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">trackId</span><span class="p">:</span> <span class="nb">str</span></span><span class="return-annotation">) -> <span class="n"><a href="models/track.html#Track">spotifywebapipython.models.track.Track</a></span>:</span></span>
8627
+ <span class="name">GetTrack</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">trackId</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/track.html#Track">spotifywebapipython.models.track.Track</a></span>:</span></span>
8194
8628
 
8195
8629
 
8196
8630
  </div>
@@ -8202,7 +8636,9 @@ the spotify web api request. This results in better performance.</p>
8202
8636
 
8203
8637
  <ul>
8204
8638
  <li><strong>trackId (str):</strong> The Spotify ID of the track. <br />
8205
- Example: <code>1kWUud3vY5ij5r62zxpTRy</code></li>
8639
+ Example: <code>1kWUud3vY5ij5r62zxpTRy</code>
8640
+ If null, the currently playing track uri id value is used; a Spotify Free or Premium account
8641
+ is required to correctly read the currently playing context.</li>
8206
8642
  </ul>
8207
8643
 
8208
8644
  <h6 id="returns">Returns:</h6>
@@ -8260,6 +8696,47 @@ and the response contains error information.</li>
8260
8696
  </code></pre>
8261
8697
  </div>
8262
8698
 
8699
+ <p><summary>Sample Code - NowPlaying</summary></p>
8700
+
8701
+ <div class="pdoc-code codehilite">
8702
+ <pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
8703
+ <span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
8704
+
8705
+ <span class="k">try</span><span class="p">:</span>
8706
+
8707
+ <span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
8708
+
8709
+ <span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">&#39;your_client_id&#39;</span>
8710
+ <span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;user-read-email&#39;</span><span class="p">,</span><span class="s1">&#39;user-library-read&#39;</span><span class="p">,</span><span class="s1">&#39;user-read-currently-playing&#39;</span><span class="p">]</span>
8711
+
8712
+ <span class="c1"># create new spotify client instance.</span>
8713
+ <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>
8714
+
8715
+ <span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
8716
+ <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>
8717
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type=&quot;</span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1"> Scope=&quot;</span><span class="si">%s</span><span class="s1">&quot;&#39;</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>
8718
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName=&quot;</span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1"> EMail=&quot;</span><span class="si">%s</span><span class="s1">&quot;&#39;</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>
8719
+
8720
+ <span class="c1"># get Spotify catalog information for the nowplaying track.</span>
8721
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Getting details for the nowplaying track ...</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
8722
+ <span class="n">track</span><span class="p">:</span><span class="n">Track</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetTrack</span><span class="p">()</span>
8723
+
8724
+ <span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">track</span><span class="p">))</span>
8725
+
8726
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Artists:&#39;</span><span class="p">)</span>
8727
+ <span class="n">artist</span><span class="p">:</span><span class="n">ArtistSimplified</span>
8728
+ <span class="k">for</span> <span class="n">artist</span> <span class="ow">in</span> <span class="n">track</span><span class="o">.</span><span class="n">Artists</span><span class="p">:</span>
8729
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;- &quot;</span><span class="si">{name}</span><span class="s1">&quot; (</span><span class="si">{uri}</span><span class="s1">)&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">artist</span><span class="o">.</span><span class="n">Name</span><span class="p">,</span> <span class="n">uri</span><span class="o">=</span><span class="n">artist</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
8730
+
8731
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">)</span>
8732
+ <span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">track</span><span class="o">.</span><span class="n">Album</span><span class="p">))</span>
8733
+
8734
+ <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
8735
+
8736
+ <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;** Exception: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
8737
+ </code></pre>
8738
+ </div>
8739
+
8263
8740
  <p></details></p>
8264
8741
  </div>
8265
8742
 
@@ -8269,7 +8746,7 @@ and the response contains error information.</li>
8269
8746
  <div class="attr function">
8270
8747
 
8271
8748
  <span class="def">def</span>
8272
- <span class="name">GetTrackAudioFeatures</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">trackId</span><span class="p">:</span> <span class="nb">str</span></span><span class="return-annotation">) -> <span class="n"><a href="models/audiofeatures.html#AudioFeatures">spotifywebapipython.models.audiofeatures.AudioFeatures</a></span>:</span></span>
8749
+ <span class="name">GetTrackAudioFeatures</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">trackId</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="models/audiofeatures.html#AudioFeatures">spotifywebapipython.models.audiofeatures.AudioFeatures</a></span>:</span></span>
8273
8750
 
8274
8751
 
8275
8752
  </div>
@@ -8281,7 +8758,9 @@ and the response contains error information.</li>
8281
8758
 
8282
8759
  <ul>
8283
8760
  <li><strong>trackId (str):</strong> The Spotify ID of the track. <br />
8284
- Example: <code>1kWUud3vY5ij5r62zxpTRy</code></li>
8761
+ Example: <code>1kWUud3vY5ij5r62zxpTRy</code>
8762
+ If null, the currently playing track uri id value is used; a Spotify Free or Premium account
8763
+ is required to correctly read the currently playing context.</li>
8285
8764
  </ul>
8286
8765
 
8287
8766
  <h6 id="returns">Returns:</h6>
@@ -13874,7 +14353,7 @@ and the response contains error information.</li>
13874
14353
  <div class="attr function">
13875
14354
 
13876
14355
  <span class="def">def</span>
13877
- <span class="name">UnfollowPlaylist</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">playlistId</span><span class="p">:</span> <span class="nb">str</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
14356
+ <span class="name">UnfollowPlaylist</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">playlistId</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
13878
14357
 
13879
14358
 
13880
14359
  </div>
@@ -13888,7 +14367,8 @@ and the response contains error information.</li>
13888
14367
 
13889
14368
  <ul>
13890
14369
  <li><strong>playlistId (str):</strong> The Spotify ID of the playlist. <br />
13891
- Example: <code>3cEYpjA9oz9GiPac4AsH4n</code></li>
14370
+ Example: <code>3cEYpjA9oz9GiPac4AsH4n</code>
14371
+ If null, the currently playing playlist uri id value is used.</li>
13892
14372
  </ul>
13893
14373
 
13894
14374
  <h6 id="raises">Raises:</h6>
@@ -13935,6 +14415,12 @@ and the response contains error information.</li>
13935
14415
 
13936
14416
  <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Success - playlist is now unfollowed&#39;</span><span class="p">)</span>
13937
14417
 
14418
+ <span class="c1"># remove the current user as a follower of the nowplaying playlist.</span>
14419
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Unfollowing nowplaying playlist ...&#39;</span><span class="p">)</span>
14420
+ <span class="n">spotify</span><span class="o">.</span><span class="n">UnfollowPlaylist</span><span class="p">()</span>
14421
+
14422
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Success - nowplaying playlist is now unfollowed&#39;</span><span class="p">)</span>
14423
+
13938
14424
  <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
13939
14425
 
13940
14426
  <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;** Exception: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>