spotifywebapiPython 1.0.26__py3-none-any.whl → 1.0.28__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of spotifywebapiPython might be problematic. Click here for more details.
- {spotifywebapiPython-1.0.26.dist-info → spotifywebapiPython-1.0.28.dist-info}/METADATA +1 -1
- {spotifywebapiPython-1.0.26.dist-info → spotifywebapiPython-1.0.28.dist-info}/RECORD +24 -24
- spotifywebapipython/const.py +26 -2
- spotifywebapipython/docs/__init__.html +27 -3
- spotifywebapipython/docs/index.html +2 -2
- spotifywebapipython/docs/search.js +1 -1
- spotifywebapipython/docs/spotifywebapiPython/const.html +75 -3
- spotifywebapipython/docs/spotifywebapiPython/saappmessages.html +4 -4
- spotifywebapipython/docs/spotifywebapiPython/sautils.html +2 -2
- spotifywebapipython/docs/spotifywebapiPython/spotifyapierror.html +2 -2
- spotifywebapipython/docs/spotifywebapiPython/spotifyapimessage.html +2 -2
- spotifywebapipython/docs/spotifywebapiPython/spotifyauthtoken.html +2 -2
- spotifywebapipython/docs/spotifywebapiPython/spotifyclient.html +2113 -331
- spotifywebapipython/docs/spotifywebapiPython/spotifydiscovery.html +2 -2
- spotifywebapipython/docs/spotifywebapiPython/spotifywebapiauthenticationerror.html +2 -2
- spotifywebapipython/docs/spotifywebapiPython/spotifywebapierror.html +2 -2
- spotifywebapipython/models/category.py +11 -0
- spotifywebapipython/models/pageobject.py +77 -4
- spotifywebapipython/models/searchresponse.py +86 -50
- spotifywebapipython/saappmessages.py +3 -3
- spotifywebapipython/spotifyclient.py +2938 -364
- {spotifywebapiPython-1.0.26.dist-info → spotifywebapiPython-1.0.28.dist-info}/LICENSE +0 -0
- {spotifywebapiPython-1.0.26.dist-info → spotifywebapiPython-1.0.28.dist-info}/WHEEL +0 -0
- {spotifywebapiPython-1.0.26.dist-info → spotifywebapiPython-1.0.28.dist-info}/top_level.txt +0 -0
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
</title>
|
|
10
10
|
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20role%3D%22img%22%20aria-label%3D%22pdoc%20logo%22%20width%3D%22300%22%20height%3D%22150%22%20viewBox%3D%22-1%200%2060%2030%22%3E%3Ctitle%3Epdoc%3C/title%3E%3Cpath%20d%3D%22M29.621%2021.293c-.011-.273-.214-.475-.511-.481a.5.5%200%200%200-.489.503l-.044%201.393c-.097.551-.695%201.215-1.566%201.704-.577.428-1.306.486-2.193.182-1.426-.617-2.467-1.654-3.304-2.487l-.173-.172a3.43%203.43%200%200%200-.365-.306.49.49%200%200%200-.286-.196c-1.718-1.06-4.931-1.47-7.353.191l-.219.15c-1.707%201.187-3.413%202.131-4.328%201.03-.02-.027-.49-.685-.141-1.763.233-.721.546-2.408.772-4.076.042-.09.067-.187.046-.288.166-1.347.277-2.625.241-3.351%201.378-1.008%202.271-2.586%202.271-4.362%200-.976-.272-1.935-.788-2.774-.057-.094-.122-.18-.184-.268.033-.167.052-.339.052-.516%200-1.477-1.202-2.679-2.679-2.679-.791%200-1.496.352-1.987.9a6.3%206.3%200%200%200-1.001.029c-.492-.564-1.207-.929-2.012-.929-1.477%200-2.679%201.202-2.679%202.679A2.65%202.65%200%200%200%20.97%206.554c-.383.747-.595%201.572-.595%202.41%200%202.311%201.507%204.29%203.635%205.107-.037.699-.147%202.27-.423%203.294l-.137.461c-.622%202.042-2.515%208.257%201.727%2010.643%201.614.908%203.06%201.248%204.317%201.248%202.665%200%204.492-1.524%205.322-2.401%201.476-1.559%202.886-1.854%206.491.82%201.877%201.393%203.514%201.753%204.861%201.068%202.223-1.713%202.811-3.867%203.399-6.374.077-.846.056-1.469.054-1.537zm-4.835%204.313c-.054.305-.156.586-.242.629-.034-.007-.131-.022-.307-.157-.145-.111-.314-.478-.456-.908.221.121.432.25.675.355.115.039.219.051.33.081zm-2.251-1.238c-.05.33-.158.648-.252.694-.022.001-.125-.018-.307-.157-.217-.166-.488-.906-.639-1.573.358.344.754.693%201.198%201.036zm-3.887-2.337c-.006-.116-.018-.231-.041-.342.635.145%201.189.368%201.599.625.097.231.166.481.174.642-.03.049-.055.101-.067.158-.046.013-.128.026-.298.004-.278-.037-.901-.57-1.367-1.087zm-1.127-.497c.116.306.176.625.12.71-.019.014-.117.045-.345.016-.206-.027-.604-.332-.986-.695.41-.051.816-.056%201.211-.031zm-4.535%201.535c.209.22.379.47.358.598-.006.041-.088.138-.351.234-.144.055-.539-.063-.979-.259a11.66%2011.66%200%200%200%20.972-.573zm.983-.664c.359-.237.738-.418%201.126-.554.25.237.479.548.457.694-.006.042-.087.138-.351.235-.174.064-.694-.105-1.232-.375zm-3.381%201.794c-.022.145-.061.29-.149.401-.133.166-.358.248-.69.251h-.002c-.133%200-.306-.26-.45-.621.417.091.854.07%201.291-.031zm-2.066-8.077a4.78%204.78%200%200%201-.775-.584c.172-.115.505-.254.88-.378l-.105.962zm-.331%202.302a10.32%2010.32%200%200%201-.828-.502c.202-.143.576-.328.984-.49l-.156.992zm-.45%202.157l-.701-.403c.214-.115.536-.249.891-.376a11.57%2011.57%200%200%201-.19.779zm-.181%201.716c.064.398.194.702.298.893-.194-.051-.435-.162-.736-.398.061-.119.224-.3.438-.495zM8.87%204.141c0%20.152-.123.276-.276.276s-.275-.124-.275-.276.123-.276.276-.276.275.124.275.276zm-.735-.389a1.15%201.15%200%200%200-.314.783%201.16%201.16%200%200%200%201.162%201.162c.457%200%20.842-.27%201.032-.653.026.117.042.238.042.362a1.68%201.68%200%200%201-1.679%201.679%201.68%201.68%200%200%201-1.679-1.679c0-.843.626-1.535%201.436-1.654zM5.059%205.406A1.68%201.68%200%200%201%203.38%207.085a1.68%201.68%200%200%201-1.679-1.679c0-.037.009-.072.011-.109.21.3.541.508.935.508a1.16%201.16%200%200%200%201.162-1.162%201.14%201.14%200%200%200-.474-.912c.015%200%20.03-.005.045-.005.926.001%201.679.754%201.679%201.68zM3.198%204.141c0%20.152-.123.276-.276.276s-.275-.124-.275-.276.123-.276.276-.276.275.124.275.276zM1.375%208.964c0-.52.103-1.035.288-1.52.466.394%201.06.64%201.717.64%201.144%200%202.116-.725%202.499-1.738.383%201.012%201.355%201.738%202.499%201.738.867%200%201.631-.421%202.121-1.062.307.605.478%201.267.478%201.942%200%202.486-2.153%204.51-4.801%204.51s-4.801-2.023-4.801-4.51zm24.342%2019.349c-.985.498-2.267.168-3.813-.979-3.073-2.281-5.453-3.199-7.813-.705-1.315%201.391-4.163%203.365-8.423.97-3.174-1.786-2.239-6.266-1.261-9.479l.146-.492c.276-1.02.395-2.457.444-3.268a6.11%206.11%200%200%200%201.18.115%206.01%206.01%200%200%200%202.536-.562l-.006.175c-.802.215-1.848.612-2.021%201.25-.079.295.021.601.274.837.219.203.415.364.598.501-.667.304-1.243.698-1.311%201.179-.02.144-.022.507.393.787.213.144.395.26.564.365-1.285.521-1.361.96-1.381%201.126-.018.142-.011.496.427.746l.854.489c-.473.389-.971.914-.999%201.429-.018.278.095.532.316.713.675.556%201.231.721%201.653.721.059%200%20.104-.014.158-.02.207.707.641%201.64%201.513%201.64h.013c.8-.008%201.236-.345%201.462-.626.173-.216.268-.457.325-.692.424.195.93.374%201.372.374.151%200%20.294-.021.423-.068.732-.27.944-.704.993-1.021.009-.061.003-.119.002-.179.266.086.538.147.789.147.15%200%20.294-.021.423-.069.542-.2.797-.489.914-.754.237.147.478.258.704.288.106.014.205.021.296.021.356%200%20.595-.101.767-.229.438.435%201.094.992%201.656%201.067.106.014.205.021.296.021a1.56%201.56%200%200%200%20.323-.035c.17.575.453%201.289.866%201.605.358.273.665.362.914.362a.99.99%200%200%200%20.421-.093%201.03%201.03%200%200%200%20.245-.164c.168.428.39.846.68%201.068.358.273.665.362.913.362a.99.99%200%200%200%20.421-.093c.317-.148.512-.448.639-.762.251.157.495.257.726.257.127%200%20.25-.024.37-.071.427-.17.706-.617.841-1.314.022-.015.047-.022.068-.038.067-.051.133-.104.196-.159-.443%201.486-1.107%202.761-2.086%203.257zM8.66%209.925a.5.5%200%201%200-1%200c0%20.653-.818%201.205-1.787%201.205s-1.787-.552-1.787-1.205a.5.5%200%201%200-1%200c0%201.216%201.25%202.205%202.787%202.205s2.787-.989%202.787-2.205zm4.4%2015.965l-.208.097c-2.661%201.258-4.708%201.436-6.086.527-1.542-1.017-1.88-3.19-1.844-4.198a.4.4%200%200%200-.385-.414c-.242-.029-.406.164-.414.385-.046%201.249.367%203.686%202.202%204.896.708.467%201.547.7%202.51.7%201.248%200%202.706-.392%204.362-1.174l.185-.086a.4.4%200%200%200%20.205-.527c-.089-.204-.326-.291-.527-.206zM9.547%202.292c.093.077.205.114.317.114a.5.5%200%200%200%20.318-.886L8.817.397a.5.5%200%200%200-.703.068.5.5%200%200%200%20.069.703l1.364%201.124zm-7.661-.065c.086%200%20.173-.022.253-.068l1.523-.893a.5.5%200%200%200-.506-.863l-1.523.892a.5.5%200%200%200-.179.685c.094.158.261.247.432.247z%22%20transform%3D%22matrix%28-1%200%200%201%2058%200%29%22%20fill%3D%22%233bb300%22/%3E%3Cpath%20d%3D%22M.3%2021.86V10.18q0-.46.02-.68.04-.22.18-.5.28-.54%201.34-.54%201.06%200%201.42.28.38.26.44.78.76-1.04%202.38-1.04%201.64%200%203.1%201.54%201.46%201.54%201.46%203.58%200%202.04-1.46%203.58-1.44%201.54-3.08%201.54-1.64%200-2.38-.92v4.04q0%20.46-.04.68-.02.22-.18.5-.14.3-.5.42-.36.12-.98.12-.62%200-1-.12-.36-.12-.52-.4-.14-.28-.18-.5-.02-.22-.02-.68zm3.96-9.42q-.46.54-.46%201.18%200%20.64.46%201.18.48.52%201.2.52.74%200%201.24-.52.52-.52.52-1.18%200-.66-.48-1.18-.48-.54-1.26-.54-.76%200-1.22.54zm14.741-8.36q.16-.3.54-.42.38-.12%201-.12.64%200%201.02.12.38.12.52.42.16.3.18.54.04.22.04.68v11.94q0%20.46-.04.7-.02.22-.18.5-.3.54-1.7.54-1.38%200-1.54-.98-.84.96-2.34.96-1.8%200-3.28-1.56-1.48-1.58-1.48-3.66%200-2.1%201.48-3.68%201.5-1.58%203.28-1.58%201.48%200%202.3%201v-4.2q0-.46.02-.68.04-.24.18-.52zm-3.24%2010.86q.52.54%201.26.54.74%200%201.22-.54.5-.54.5-1.18%200-.66-.48-1.22-.46-.56-1.26-.56-.8%200-1.28.56-.48.54-.48%201.2%200%20.66.52%201.2zm7.833-1.2q0-2.4%201.68-3.96%201.68-1.56%203.84-1.56%202.16%200%203.82%201.56%201.66%201.54%201.66%203.94%200%201.66-.86%202.96-.86%201.28-2.1%201.9-1.22.6-2.54.6-1.32%200-2.56-.64-1.24-.66-2.1-1.92-.84-1.28-.84-2.88zm4.18%201.44q.64.48%201.3.48.66%200%201.32-.5.66-.5.66-1.48%200-.98-.62-1.46-.62-.48-1.34-.48-.72%200-1.34.5-.62.5-.62%201.48%200%20.96.64%201.46zm11.412-1.44q0%20.84.56%201.32.56.46%201.18.46.64%200%201.18-.36.56-.38.9-.38.6%200%201.46%201.06.46.58.46%201.04%200%20.76-1.1%201.42-1.14.8-2.8.8-1.86%200-3.58-1.34-.82-.64-1.34-1.7-.52-1.08-.52-2.36%200-1.3.52-2.34.52-1.06%201.34-1.7%201.66-1.32%203.54-1.32.76%200%201.48.22.72.2%201.06.4l.32.2q.36.24.56.38.52.4.52.92%200%20.5-.42%201.14-.72%201.1-1.38%201.1-.38%200-1.08-.44-.36-.34-1.04-.34-.66%200-1.24.48-.58.48-.58%201.34z%22%20fill%3D%22green%22/%3E%3C/svg%3E"/>
|
|
11
11
|
<!-- build env - Package Name = "spotifywebapiPython" -->
|
|
12
|
-
<!-- build env - Package Version = "1.0.
|
|
12
|
+
<!-- build env - Package Version = "1.0.28" -->
|
|
13
13
|
<!-- pdoc module.modulename = "spotifywebapipython.spotifyclient" -->
|
|
14
14
|
<!-- pdoc module.is_package = "False" -->
|
|
15
15
|
<!-- pdoc root_module_name = "None" -->
|
|
@@ -184,10 +184,10 @@
|
|
|
184
184
|
<a class="function" href="#SpotifyClient.GetBrowseCategory">GetBrowseCategory</a>
|
|
185
185
|
</li>
|
|
186
186
|
<li>
|
|
187
|
-
<a class="function" href="#SpotifyClient.
|
|
187
|
+
<a class="function" href="#SpotifyClient.GetBrowseCategorys">GetBrowseCategorys</a>
|
|
188
188
|
</li>
|
|
189
189
|
<li>
|
|
190
|
-
<a class="function" href="#SpotifyClient.
|
|
190
|
+
<a class="function" href="#SpotifyClient.GetBrowseCategorysList">GetBrowseCategorysList</a>
|
|
191
191
|
</li>
|
|
192
192
|
<li>
|
|
193
193
|
<a class="function" href="#SpotifyClient.GetCategoryPlaylists">GetCategoryPlaylists</a>
|
|
@@ -373,7 +373,25 @@
|
|
|
373
373
|
<a class="function" href="#SpotifyClient.SaveTrackFavorites">SaveTrackFavorites</a>
|
|
374
374
|
</li>
|
|
375
375
|
<li>
|
|
376
|
-
<a class="function" href="#SpotifyClient.
|
|
376
|
+
<a class="function" href="#SpotifyClient.SearchAlbums">SearchAlbums</a>
|
|
377
|
+
</li>
|
|
378
|
+
<li>
|
|
379
|
+
<a class="function" href="#SpotifyClient.SearchArtists">SearchArtists</a>
|
|
380
|
+
</li>
|
|
381
|
+
<li>
|
|
382
|
+
<a class="function" href="#SpotifyClient.SearchAudiobooks">SearchAudiobooks</a>
|
|
383
|
+
</li>
|
|
384
|
+
<li>
|
|
385
|
+
<a class="function" href="#SpotifyClient.SearchEpisodes">SearchEpisodes</a>
|
|
386
|
+
</li>
|
|
387
|
+
<li>
|
|
388
|
+
<a class="function" href="#SpotifyClient.SearchPlaylists">SearchPlaylists</a>
|
|
389
|
+
</li>
|
|
390
|
+
<li>
|
|
391
|
+
<a class="function" href="#SpotifyClient.SearchShows">SearchShows</a>
|
|
392
|
+
</li>
|
|
393
|
+
<li>
|
|
394
|
+
<a class="function" href="#SpotifyClient.SearchTracks">SearchTracks</a>
|
|
377
395
|
</li>
|
|
378
396
|
<li>
|
|
379
397
|
<a class="function" href="#SpotifyClient.SetAuthTokenAuthorizationCode">SetAuthTokenAuthorizationCode</a>
|
|
@@ -407,7 +425,7 @@
|
|
|
407
425
|
|
|
408
426
|
<footer class="footertext">
|
|
409
427
|
spotifywebapiPython</br>
|
|
410
|
-
Version 1.0.
|
|
428
|
+
Version 1.0.28</br>
|
|
411
429
|
<a href="https://developer.spotify.com/documentation/web-api" target="_blank">
|
|
412
430
|
<img src="../spotifywebapipython.ico" alt="brand icon" style="width:32px; height:32px; padding:4px;"/>
|
|
413
431
|
A Spotify Web Api Client
|
|
@@ -2257,7 +2275,7 @@ and the response contains error information.</li>
|
|
|
2257
2275
|
<div class="attr function">
|
|
2258
2276
|
|
|
2259
2277
|
<span class="def">def</span>
|
|
2260
|
-
<span class="name">GetAlbumFavorites</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</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="return-annotation">) -> <span class="n"><a href="models/albumpagesaved.html#AlbumPageSaved">spotifywebapipython.models.albumpagesaved.AlbumPageSaved</a></span>:</span></span>
|
|
2278
|
+
<span class="name">GetAlbumFavorites</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</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/albumpagesaved.html#AlbumPageSaved">spotifywebapipython.models.albumpagesaved.AlbumPageSaved</a></span>:</span></span>
|
|
2261
2279
|
|
|
2262
2280
|
|
|
2263
2281
|
</div>
|
|
@@ -2270,9 +2288,9 @@ and the response contains error information.</li>
|
|
|
2270
2288
|
<h6 id="arguments">Arguments:</h6>
|
|
2271
2289
|
|
|
2272
2290
|
<ul>
|
|
2273
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
2291
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
2274
2292
|
Default: 20, Range: 1 to 50. </li>
|
|
2275
|
-
<li><strong>offset (int):</strong> The index of the first item to return. <br />
|
|
2293
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
2276
2294
|
Use with limit to get the next set of items. <br />
|
|
2277
2295
|
Default: 0 (the first item). </li>
|
|
2278
2296
|
<li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
|
|
@@ -2282,6 +2300,11 @@ this parameter. <br />
|
|
|
2282
2300
|
Note: If neither market or user country are provided, the content is considered unavailable for the client. <br />
|
|
2283
2301
|
Users can view the country that is associated with their account in the account settings. <br />
|
|
2284
2302
|
Example: <code>ES</code></li>
|
|
2303
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
2304
|
+
If specified, this argument overrides the limit and offset argument values
|
|
2305
|
+
and paging is automatically used to retrieve all available items up to the
|
|
2306
|
+
maximum number specified. <br />
|
|
2307
|
+
Default: None (disabled)</li>
|
|
2285
2308
|
</ul>
|
|
2286
2309
|
|
|
2287
2310
|
<h6 id="returns">Returns:</h6>
|
|
@@ -2299,7 +2322,7 @@ and the response contains error information.</li>
|
|
|
2299
2322
|
</ul>
|
|
2300
2323
|
|
|
2301
2324
|
<p><details>
|
|
2302
|
-
<summary>Sample Code</summary></p>
|
|
2325
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
2303
2326
|
|
|
2304
2327
|
<div class="pdoc-code codehilite">
|
|
2305
2328
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -2329,7 +2352,7 @@ and the response contains error information.</li>
|
|
|
2329
2352
|
|
|
2330
2353
|
<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>
|
|
2331
2354
|
<span class="nb">print</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span>
|
|
2332
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">'
|
|
2355
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'Items in this page of results:'</span><span class="p">)</span>
|
|
2333
2356
|
|
|
2334
2357
|
<span class="c1"># display album details.</span>
|
|
2335
2358
|
<span class="n">albumSaved</span><span class="p">:</span><span class="n">AlbumSaved</span>
|
|
@@ -2352,6 +2375,48 @@ and the response contains error information.</li>
|
|
|
2352
2375
|
</code></pre>
|
|
2353
2376
|
</div>
|
|
2354
2377
|
|
|
2378
|
+
<p></details>
|
|
2379
|
+
<details>
|
|
2380
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
2381
|
+
|
|
2382
|
+
<div class="pdoc-code codehilite">
|
|
2383
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
2384
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
2385
|
+
|
|
2386
|
+
<span class="k">try</span><span class="p">:</span>
|
|
2387
|
+
|
|
2388
|
+
<span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
|
|
2389
|
+
|
|
2390
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
2391
|
+
<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">'user-read-email'</span><span class="p">,</span><span class="s1">'user-library-read'</span><span class="p">]</span>
|
|
2392
|
+
|
|
2393
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
2394
|
+
<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>
|
|
2395
|
+
|
|
2396
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
2397
|
+
<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>
|
|
2398
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
2399
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
2400
|
+
|
|
2401
|
+
<span class="c1"># get a complete list of the albums saved in the current Spotify user's 'Your Library'.</span>
|
|
2402
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting ALL saved albums for current user ...</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span>
|
|
2403
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">AlbumPageSaved</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetAlbumFavorites</span><span class="p">(</span><span class="n">limitTotal</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
|
|
2404
|
+
|
|
2405
|
+
<span class="c1"># display results.</span>
|
|
2406
|
+
<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>
|
|
2407
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Albums in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
2408
|
+
|
|
2409
|
+
<span class="c1"># display album details.</span>
|
|
2410
|
+
<span class="n">albumSaved</span><span class="p">:</span><span class="n">AlbumSaved</span>
|
|
2411
|
+
<span class="k">for</span> <span class="n">albumSaved</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
2412
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">albumSaved</span><span class="o">.</span><span class="n">Album</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">albumSaved</span><span class="o">.</span><span class="n">Album</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
2413
|
+
|
|
2414
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
2415
|
+
|
|
2416
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
2417
|
+
</code></pre>
|
|
2418
|
+
</div>
|
|
2419
|
+
|
|
2355
2420
|
<p></details></p>
|
|
2356
2421
|
</div>
|
|
2357
2422
|
|
|
@@ -2361,7 +2426,7 @@ and the response contains error information.</li>
|
|
|
2361
2426
|
<div class="attr function">
|
|
2362
2427
|
|
|
2363
2428
|
<span class="def">def</span>
|
|
2364
|
-
<span class="name">GetAlbumNewReleases</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</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">country</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/albumpagesimplified.html#AlbumPageSimplified">spotifywebapipython.models.albumpagesimplified.AlbumPageSimplified</a></span>:</span></span>
|
|
2429
|
+
<span class="name">GetAlbumNewReleases</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</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">country</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/albumpagesimplified.html#AlbumPageSimplified">spotifywebapipython.models.albumpagesimplified.AlbumPageSimplified</a></span>:</span></span>
|
|
2365
2430
|
|
|
2366
2431
|
|
|
2367
2432
|
</div>
|
|
@@ -2373,15 +2438,20 @@ Spotify player's "Browse" tab).</p>
|
|
|
2373
2438
|
<h6 id="arguments">Arguments:</h6>
|
|
2374
2439
|
|
|
2375
2440
|
<ul>
|
|
2376
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
2441
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
2377
2442
|
Default: 20, Range: 1 to 50. </li>
|
|
2378
|
-
<li><strong>offset (int):</strong> The index of the first item to return. <br />
|
|
2443
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
2379
2444
|
Use with limit to get the next set of items. <br />
|
|
2380
2445
|
Default: 0 (the first item). </li>
|
|
2381
2446
|
<li><strong>country (str):</strong> A country in the form of an ISO 3166-1 alpha-2 country code. <br />
|
|
2382
2447
|
Provide this parameter if you want the list of returned items to be relevant to a
|
|
2383
2448
|
particular country. If omitted, the returned items will be relevant to all countries. <br />
|
|
2384
2449
|
Example: <code>SE</code></li>
|
|
2450
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
2451
|
+
If specified, this argument overrides the limit and offset argument values
|
|
2452
|
+
and paging is automatically used to retrieve all available items up to the
|
|
2453
|
+
maximum number specified. <br />
|
|
2454
|
+
Default: None (disabled)</li>
|
|
2385
2455
|
</ul>
|
|
2386
2456
|
|
|
2387
2457
|
<h6 id="returns">Returns:</h6>
|
|
@@ -2399,7 +2469,7 @@ and the response contains error information.</li>
|
|
|
2399
2469
|
</ul>
|
|
2400
2470
|
|
|
2401
2471
|
<p><details>
|
|
2402
|
-
<summary>Sample Code</summary></p>
|
|
2472
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
2403
2473
|
|
|
2404
2474
|
<div class="pdoc-code codehilite">
|
|
2405
2475
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -2451,6 +2521,46 @@ and the response contains error information.</li>
|
|
|
2451
2521
|
</code></pre>
|
|
2452
2522
|
</div>
|
|
2453
2523
|
|
|
2524
|
+
<p></details>
|
|
2525
|
+
<details>
|
|
2526
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
2527
|
+
|
|
2528
|
+
<div class="pdoc-code codehilite">
|
|
2529
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
2530
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
2531
|
+
|
|
2532
|
+
<span class="k">try</span><span class="p">:</span>
|
|
2533
|
+
|
|
2534
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
2535
|
+
<span class="n">CLIENT_SECRET</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_secret'</span>
|
|
2536
|
+
|
|
2537
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
2538
|
+
<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>
|
|
2539
|
+
|
|
2540
|
+
<span class="c1"># generate a spotify client credentials access token (no scope, public data use only).</span>
|
|
2541
|
+
<span class="n">spotify</span><span class="o">.</span><span class="n">SetAuthTokenClientCredentials</span><span class="p">(</span><span class="n">CLIENT_ID</span><span class="p">,</span> <span class="n">CLIENT_SECRET</span><span class="p">)</span>
|
|
2542
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
2543
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
2544
|
+
|
|
2545
|
+
<span class="c1"># get a list of new album releases featured in Spotify.</span>
|
|
2546
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting list of ALL new album releases featured in Spotify ...</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span>
|
|
2547
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">AlbumPageSimplified</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetAlbumNewReleases</span><span class="p">(</span><span class="n">limitTotal</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
|
|
2548
|
+
|
|
2549
|
+
<span class="c1"># display results.</span>
|
|
2550
|
+
<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>
|
|
2551
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Albums in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
2552
|
+
|
|
2553
|
+
<span class="c1"># display album details.</span>
|
|
2554
|
+
<span class="n">albumSimplified</span><span class="p">:</span><span class="n">AlbumSimplified</span>
|
|
2555
|
+
<span class="k">for</span> <span class="n">albumSimplified</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
2556
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">albumSimplified</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">albumSimplified</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
2557
|
+
|
|
2558
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
2559
|
+
|
|
2560
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
2561
|
+
</code></pre>
|
|
2562
|
+
</div>
|
|
2563
|
+
|
|
2454
2564
|
<p></details></p>
|
|
2455
2565
|
</div>
|
|
2456
2566
|
|
|
@@ -2553,7 +2663,7 @@ and the response contains error information.</li>
|
|
|
2553
2663
|
<div class="attr function">
|
|
2554
2664
|
|
|
2555
2665
|
<span class="def">def</span>
|
|
2556
|
-
<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="return-annotation">) -> <span class="n"><a href="models/trackpagesimplified.html#TrackPageSimplified">spotifywebapipython.models.trackpagesimplified.TrackPageSimplified</a></span>:</span></span>
|
|
2666
|
+
<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>
|
|
2557
2667
|
|
|
2558
2668
|
|
|
2559
2669
|
</div>
|
|
@@ -2568,7 +2678,7 @@ and the response contains error information.</li>
|
|
|
2568
2678
|
<ul>
|
|
2569
2679
|
<li><strong>albumId (str):</strong> The Spotify ID of the album. <br />
|
|
2570
2680
|
Example: <code>6vc9OTcyd3hyzabCmsdnwE</code></li>
|
|
2571
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
2681
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
2572
2682
|
Default: 20, Range: 1 to 50. </li>
|
|
2573
2683
|
<li><strong>offset (int):</strong> The index of the first item to return; use with limit to get the next set of items. <br />
|
|
2574
2684
|
Default: 0 (the first item). </li>
|
|
@@ -2579,6 +2689,11 @@ this parameter. <br />
|
|
|
2579
2689
|
Note: If neither market or user country are provided, the content is considered unavailable for the client. <br />
|
|
2580
2690
|
Users can view the country that is associated with their account in the account settings. <br />
|
|
2581
2691
|
Example: <code>ES</code></li>
|
|
2692
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
2693
|
+
If specified, this argument overrides the limit and offset argument values
|
|
2694
|
+
and paging is automatically used to retrieve all available items up to the
|
|
2695
|
+
maximum number specified. <br />
|
|
2696
|
+
Default: None (disabled)</li>
|
|
2582
2697
|
</ul>
|
|
2583
2698
|
|
|
2584
2699
|
<h6 id="returns">Returns:</h6>
|
|
@@ -2596,7 +2711,7 @@ and the response contains error information.</li>
|
|
|
2596
2711
|
</ul>
|
|
2597
2712
|
|
|
2598
2713
|
<p><details>
|
|
2599
|
-
<summary>Sample Code</summary></p>
|
|
2714
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
2600
2715
|
|
|
2601
2716
|
<div class="pdoc-code codehilite">
|
|
2602
2717
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -2653,6 +2768,47 @@ and the response contains error information.</li>
|
|
|
2653
2768
|
</code></pre>
|
|
2654
2769
|
</div>
|
|
2655
2770
|
|
|
2771
|
+
<p></details>
|
|
2772
|
+
<details>
|
|
2773
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
2774
|
+
|
|
2775
|
+
<div class="pdoc-code codehilite">
|
|
2776
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
2777
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
2778
|
+
|
|
2779
|
+
<span class="k">try</span><span class="p">:</span>
|
|
2780
|
+
|
|
2781
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
2782
|
+
<span class="n">CLIENT_SECRET</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_secret'</span>
|
|
2783
|
+
|
|
2784
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
2785
|
+
<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>
|
|
2786
|
+
|
|
2787
|
+
<span class="c1"># generate a spotify client credentials access token (no scope, public data use only).</span>
|
|
2788
|
+
<span class="n">spotify</span><span class="o">.</span><span class="n">SetAuthTokenClientCredentials</span><span class="p">(</span><span class="n">CLIENT_ID</span><span class="p">,</span> <span class="n">CLIENT_SECRET</span><span class="p">)</span>
|
|
2789
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
2790
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
2791
|
+
|
|
2792
|
+
<span class="c1"># get Spotify catalog information about an album's tracks.</span>
|
|
2793
|
+
<span class="n">albumId</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'6vc9OTcyd3hyzabCmsdnwE'</span>
|
|
2794
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting list of ALL tracks for album id "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">albumId</span><span class="p">)</span>
|
|
2795
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">TrackPageSimplified</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetAlbumTracks</span><span class="p">(</span><span class="n">albumId</span><span class="p">,</span> <span class="n">limitTotal</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
|
|
2796
|
+
|
|
2797
|
+
<span class="c1"># display paging details.</span>
|
|
2798
|
+
<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>
|
|
2799
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Tracks in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
2800
|
+
|
|
2801
|
+
<span class="c1"># display track details.</span>
|
|
2802
|
+
<span class="n">trackSimplified</span><span class="p">:</span><span class="n">TrackPageSimplified</span>
|
|
2803
|
+
<span class="k">for</span> <span class="n">trackSimplified</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
2804
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">trackSimplified</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">trackSimplified</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
2805
|
+
|
|
2806
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
2807
|
+
|
|
2808
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
2809
|
+
</code></pre>
|
|
2810
|
+
</div>
|
|
2811
|
+
|
|
2656
2812
|
<p></details></p>
|
|
2657
2813
|
</div>
|
|
2658
2814
|
|
|
@@ -2674,7 +2830,7 @@ and the response contains error information.</li>
|
|
|
2674
2830
|
|
|
2675
2831
|
<ul>
|
|
2676
2832
|
<li><strong>artistId (str):</strong> The Spotify ID of the artist. <br />
|
|
2677
|
-
Example: <code>
|
|
2833
|
+
Example: <code>6APm8EjxOHSYM5B4i3vT3q</code></li>
|
|
2678
2834
|
</ul>
|
|
2679
2835
|
|
|
2680
2836
|
<h6 id="returns">Returns:</h6>
|
|
@@ -2733,7 +2889,7 @@ and the response contains error information.</li>
|
|
|
2733
2889
|
<div class="attr function">
|
|
2734
2890
|
|
|
2735
2891
|
<span class="def">def</span>
|
|
2736
|
-
<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">'album'</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
|
|
2892
|
+
<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">'album'</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/albumpagesimplified.html#AlbumPageSimplified">spotifywebapipython.models.albumpagesimplified.AlbumPageSimplified</a></span>:</span></span>
|
|
2737
2893
|
|
|
2738
2894
|
|
|
2739
2895
|
</div>
|
|
@@ -2745,12 +2901,12 @@ and the response contains error information.</li>
|
|
|
2745
2901
|
|
|
2746
2902
|
<ul>
|
|
2747
2903
|
<li><strong>artistId (str):</strong> The Spotify ID of the artist. <br />
|
|
2748
|
-
Example: <code>
|
|
2904
|
+
Example: <code>6APm8EjxOHSYM5B4i3vT3q</code></li>
|
|
2749
2905
|
<li><strong>include_groups (str):</strong> A comma-separated list of keywords that will be used to filter the response. <br />
|
|
2750
2906
|
If not supplied, all album types will be returned. <br />
|
|
2751
2907
|
Valid values are: <code>album</code>, <code>single</code>, <code>appears_on</code>, <code>compilation</code> <br />
|
|
2752
2908
|
Example: <code>single,appears_on</code></li>
|
|
2753
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
2909
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
2754
2910
|
Default: 20, Range: 1 to 50. </li>
|
|
2755
2911
|
<li><strong>offset (int):</strong> The index of the first item to return; use with limit to get the next set of items. <br />
|
|
2756
2912
|
Default: 0 (the first item). </li>
|
|
@@ -2761,12 +2917,17 @@ the user account will take priority over this parameter.
|
|
|
2761
2917
|
Note: If neither market or user country are provided, the content is considered unavailable for the client.
|
|
2762
2918
|
Users can view the country that is associated with their account in the account settings. <br />
|
|
2763
2919
|
Example: <code>ES</code></li>
|
|
2920
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
2921
|
+
If specified, this argument overrides the limit and offset argument values
|
|
2922
|
+
and paging is automatically used to retrieve all available items up to the
|
|
2923
|
+
maximum number specified. <br />
|
|
2924
|
+
Default: None (disabled)</li>
|
|
2764
2925
|
</ul>
|
|
2765
2926
|
|
|
2766
2927
|
<h6 id="returns">Returns:</h6>
|
|
2767
2928
|
|
|
2768
2929
|
<blockquote>
|
|
2769
|
-
<p>
|
|
2930
|
+
<p>An <code>AlbumPageSimplified</code> object of matching results.</p>
|
|
2770
2931
|
</blockquote>
|
|
2771
2932
|
|
|
2772
2933
|
<h6 id="raises">Raises:</h6>
|
|
@@ -2778,7 +2939,7 @@ and the response contains error information.</li>
|
|
|
2778
2939
|
</ul>
|
|
2779
2940
|
|
|
2780
2941
|
<p><details>
|
|
2781
|
-
<summary>Sample Code</summary></p>
|
|
2942
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
2782
2943
|
|
|
2783
2944
|
<div class="pdoc-code codehilite">
|
|
2784
2945
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -2832,6 +2993,48 @@ and the response contains error information.</li>
|
|
|
2832
2993
|
</code></pre>
|
|
2833
2994
|
</div>
|
|
2834
2995
|
|
|
2996
|
+
<p></details>
|
|
2997
|
+
<details>
|
|
2998
|
+
<summary>Sample Code - auto Paging</summary></p>
|
|
2999
|
+
|
|
3000
|
+
<div class="pdoc-code codehilite">
|
|
3001
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
3002
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
3003
|
+
|
|
3004
|
+
<span class="k">try</span><span class="p">:</span>
|
|
3005
|
+
|
|
3006
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
3007
|
+
<span class="n">CLIENT_SECRET</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_secret'</span>
|
|
3008
|
+
|
|
3009
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
3010
|
+
<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>
|
|
3011
|
+
|
|
3012
|
+
<span class="c1"># generate a spotify client credentials access token (no scope, public data use only).</span>
|
|
3013
|
+
<span class="n">spotify</span><span class="o">.</span><span class="n">SetAuthTokenClientCredentials</span><span class="p">(</span><span class="n">CLIENT_ID</span><span class="p">,</span> <span class="n">CLIENT_SECRET</span><span class="p">)</span>
|
|
3014
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
3015
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
3016
|
+
|
|
3017
|
+
<span class="c1"># get Spotify catalog information about an artist's albums.</span>
|
|
3018
|
+
<span class="n">artistId</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'6APm8EjxOHSYM5B4i3vT3q'</span>
|
|
3019
|
+
<span class="n">includeGroups</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'album,single,appears_on,compilation'</span>
|
|
3020
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting ALL albums for artist id "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">artistId</span><span class="p">)</span>
|
|
3021
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">AlbumPageSimplified</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetArtistAlbums</span><span class="p">(</span><span class="n">artistId</span><span class="p">,</span> <span class="n">includeGroups</span><span class="p">,</span> <span class="n">limitTotal</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
|
|
3022
|
+
|
|
3023
|
+
<span class="c1"># display results.</span>
|
|
3024
|
+
<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>
|
|
3025
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Albums in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
3026
|
+
|
|
3027
|
+
<span class="c1"># display album details.</span>
|
|
3028
|
+
<span class="n">albumSimplified</span><span class="p">:</span><span class="n">AlbumSimplified</span>
|
|
3029
|
+
<span class="k">for</span> <span class="n">albumSimplified</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
3030
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">albumSimplified</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">albumSimplified</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
3031
|
+
|
|
3032
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
3033
|
+
|
|
3034
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
3035
|
+
</code></pre>
|
|
3036
|
+
</div>
|
|
3037
|
+
|
|
2835
3038
|
<p></details></p>
|
|
2836
3039
|
</div>
|
|
2837
3040
|
|
|
@@ -2854,7 +3057,7 @@ Similarity is based on analysis of the Spotify community's listening history.</p
|
|
|
2854
3057
|
|
|
2855
3058
|
<ul>
|
|
2856
3059
|
<li><strong>artistId (str):</strong> The Spotify ID of the artist. <br />
|
|
2857
|
-
Example: <code>
|
|
3060
|
+
Example: <code>6APm8EjxOHSYM5B4i3vT3q</code></li>
|
|
2858
3061
|
</ul>
|
|
2859
3062
|
|
|
2860
3063
|
<h6 id="returns">Returns:</h6>
|
|
@@ -2993,7 +3196,7 @@ and the response contains error information.</li>
|
|
|
2993
3196
|
<div class="attr function">
|
|
2994
3197
|
|
|
2995
3198
|
<span class="def">def</span>
|
|
2996
|
-
<span class="name">GetArtistsFollowed</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">after</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="return-annotation">) -> <span class="n"><a href="models/artistpage.html#ArtistPage">spotifywebapipython.models.artistpage.ArtistPage</a></span>:</span></span>
|
|
3199
|
+
<span class="name">GetArtistsFollowed</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">after</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">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/artistpage.html#ArtistPage">spotifywebapipython.models.artistpage.ArtistPage</a></span>:</span></span>
|
|
2997
3200
|
|
|
2998
3201
|
|
|
2999
3202
|
</div>
|
|
@@ -3006,9 +3209,14 @@ and the response contains error information.</li>
|
|
|
3006
3209
|
<ul>
|
|
3007
3210
|
<li><strong>after (str):</strong> The last artist ID retrieved from the previous request, or null for
|
|
3008
3211
|
the first request. <br />
|
|
3009
|
-
Example: <code>
|
|
3010
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
3212
|
+
Example: <code>6APm8EjxOHSYM5B4i3vT3q</code> </li>
|
|
3213
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
3011
3214
|
Default: 20, Range: 1 to 50. </li>
|
|
3215
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
3216
|
+
If specified, this argument overrides the limit and offset argument values
|
|
3217
|
+
and paging is automatically used to retrieve all available items up to the
|
|
3218
|
+
maximum number specified. <br />
|
|
3219
|
+
Default: None (disabled)</li>
|
|
3012
3220
|
</ul>
|
|
3013
3221
|
|
|
3014
3222
|
<h6 id="returns">Returns:</h6>
|
|
@@ -3026,7 +3234,7 @@ and the response contains error information.</li>
|
|
|
3026
3234
|
</ul>
|
|
3027
3235
|
|
|
3028
3236
|
<p><details>
|
|
3029
|
-
<summary>Sample Code</summary></p>
|
|
3237
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
3030
3238
|
|
|
3031
3239
|
<div class="pdoc-code codehilite">
|
|
3032
3240
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -3063,7 +3271,7 @@ and the response contains error information.</li>
|
|
|
3063
3271
|
<span class="nb">print</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span>
|
|
3064
3272
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'Artists in this page of results:'</span><span class="p">)</span>
|
|
3065
3273
|
|
|
3066
|
-
<span class="c1"># display
|
|
3274
|
+
<span class="c1"># display artist details.</span>
|
|
3067
3275
|
<span class="n">artist</span><span class="p">:</span><span class="n">Artist</span>
|
|
3068
3276
|
<span class="k">for</span> <span class="n">artist</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
3069
3277
|
|
|
@@ -3084,6 +3292,52 @@ and the response contains error information.</li>
|
|
|
3084
3292
|
</code></pre>
|
|
3085
3293
|
</div>
|
|
3086
3294
|
|
|
3295
|
+
<p></details>
|
|
3296
|
+
<details>
|
|
3297
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
3298
|
+
|
|
3299
|
+
<div class="pdoc-code codehilite">
|
|
3300
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
3301
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
3302
|
+
|
|
3303
|
+
<span class="k">try</span><span class="p">:</span>
|
|
3304
|
+
|
|
3305
|
+
<span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
|
|
3306
|
+
|
|
3307
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
3308
|
+
<span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> \
|
|
3309
|
+
<span class="p">[</span>
|
|
3310
|
+
<span class="s1">'user-follow-read'</span><span class="p">,</span>
|
|
3311
|
+
<span class="s1">'user-read-email'</span><span class="p">,</span>
|
|
3312
|
+
<span class="p">]</span>
|
|
3313
|
+
|
|
3314
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
3315
|
+
<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>
|
|
3316
|
+
|
|
3317
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
3318
|
+
<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>
|
|
3319
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
3320
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
3321
|
+
|
|
3322
|
+
<span class="c1"># get the current user's followed artists.</span>
|
|
3323
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting ALL of the current users followed artists ...</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span>
|
|
3324
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">ArtistPage</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetArtistsFollowed</span><span class="p">(</span><span class="n">limitTotal</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
|
|
3325
|
+
|
|
3326
|
+
<span class="c1"># display results.</span>
|
|
3327
|
+
<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>
|
|
3328
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Artists in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
3329
|
+
|
|
3330
|
+
<span class="c1"># display artist details.</span>
|
|
3331
|
+
<span class="n">artist</span><span class="p">:</span><span class="n">Artist</span>
|
|
3332
|
+
<span class="k">for</span> <span class="n">artist</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
3333
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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>
|
|
3334
|
+
|
|
3335
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
3336
|
+
|
|
3337
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
3338
|
+
</code></pre>
|
|
3339
|
+
</div>
|
|
3340
|
+
|
|
3087
3341
|
<p></details></p>
|
|
3088
3342
|
</div>
|
|
3089
3343
|
|
|
@@ -3105,7 +3359,7 @@ and the response contains error information.</li>
|
|
|
3105
3359
|
|
|
3106
3360
|
<ul>
|
|
3107
3361
|
<li><strong>artistId (str):</strong> The Spotify ID of the artist. <br />
|
|
3108
|
-
Example: <code>
|
|
3362
|
+
Example: <code>6APm8EjxOHSYM5B4i3vT3q</code></li>
|
|
3109
3363
|
<li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
|
|
3110
3364
|
is available in that market will be returned. If a valid user access token is specified
|
|
3111
3365
|
in the request header, the country associated with the user account will take priority over
|
|
@@ -3290,7 +3544,7 @@ and the response contains error information.</li>
|
|
|
3290
3544
|
<div class="attr function">
|
|
3291
3545
|
|
|
3292
3546
|
<span class="def">def</span>
|
|
3293
|
-
<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="return-annotation">) -> <span class="n"><a href="models/chapterpagesimplified.html#ChapterPageSimplified">spotifywebapipython.models.chapterpagesimplified.ChapterPageSimplified</a></span>:</span></span>
|
|
3547
|
+
<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>
|
|
3294
3548
|
|
|
3295
3549
|
|
|
3296
3550
|
</div>
|
|
@@ -3305,7 +3559,7 @@ and the response contains error information.</li>
|
|
|
3305
3559
|
<ul>
|
|
3306
3560
|
<li><strong>audiobookId (str):</strong> The Spotify ID for the audiobook.
|
|
3307
3561
|
Example: <code>74aydHJKgYz3AIq3jjBSv1</code></li>
|
|
3308
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
3562
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
3309
3563
|
Default: 20, Range: 1 to 50. </li>
|
|
3310
3564
|
<li><strong>offset (int):</strong> The index of the first item to return; use with limit to get the next set of items. <br />
|
|
3311
3565
|
Default: 0 (the first item). </li>
|
|
@@ -3316,6 +3570,11 @@ this parameter. <br />
|
|
|
3316
3570
|
Note: If neither market or user country are provided, the content is considered unavailable for the client. <br />
|
|
3317
3571
|
Users can view the country that is associated with their account in the account settings. <br />
|
|
3318
3572
|
Example: <code>ES</code></li>
|
|
3573
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
3574
|
+
If specified, this argument overrides the limit and offset argument values
|
|
3575
|
+
and paging is automatically used to retrieve all available items up to the
|
|
3576
|
+
maximum number specified. <br />
|
|
3577
|
+
Default: None (disabled)</li>
|
|
3319
3578
|
</ul>
|
|
3320
3579
|
|
|
3321
3580
|
<h6 id="returns">Returns:</h6>
|
|
@@ -3333,7 +3592,7 @@ and the response contains error information.</li>
|
|
|
3333
3592
|
</ul>
|
|
3334
3593
|
|
|
3335
3594
|
<p><details>
|
|
3336
|
-
<summary>Sample Code</summary></p>
|
|
3595
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
3337
3596
|
|
|
3338
3597
|
<div class="pdoc-code codehilite">
|
|
3339
3598
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -3401,6 +3660,58 @@ and the response contains error information.</li>
|
|
|
3401
3660
|
</code></pre>
|
|
3402
3661
|
</div>
|
|
3403
3662
|
|
|
3663
|
+
<p></details>
|
|
3664
|
+
<details>
|
|
3665
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
3666
|
+
|
|
3667
|
+
<div class="pdoc-code codehilite">
|
|
3668
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
3669
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
3670
|
+
|
|
3671
|
+
<span class="k">try</span><span class="p">:</span>
|
|
3672
|
+
|
|
3673
|
+
<span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
|
|
3674
|
+
|
|
3675
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
3676
|
+
<span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> \
|
|
3677
|
+
<span class="p">[</span>
|
|
3678
|
+
<span class="s1">'playlist-modify-private'</span><span class="p">,</span>
|
|
3679
|
+
<span class="s1">'playlist-modify-public'</span><span class="p">,</span>
|
|
3680
|
+
<span class="s1">'ugc-image-upload'</span><span class="p">,</span>
|
|
3681
|
+
<span class="s1">'user-library-modify'</span><span class="p">,</span>
|
|
3682
|
+
<span class="s1">'user-library-read'</span><span class="p">,</span>
|
|
3683
|
+
<span class="s1">'user-read-email'</span><span class="p">,</span>
|
|
3684
|
+
<span class="s1">'user-read-playback-position'</span><span class="p">,</span>
|
|
3685
|
+
<span class="p">]</span>
|
|
3686
|
+
|
|
3687
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
3688
|
+
<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>
|
|
3689
|
+
|
|
3690
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
3691
|
+
<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>
|
|
3692
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
3693
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
3694
|
+
|
|
3695
|
+
<span class="c1"># get Spotify catalog information about a audiobook's chapters.</span>
|
|
3696
|
+
<span class="n">audiobookId</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'7iHfbu1YPACw6oZPAFJtqe'</span> <span class="c1"># <- Dune - Author=Frank Herbert</span>
|
|
3697
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting list of ALL chapters for audiobook id "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">audiobookId</span><span class="p">)</span>
|
|
3698
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">ChapterPageSimplified</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">audiobookId</span><span class="p">,</span> <span class="n">limitTotal</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
|
|
3699
|
+
|
|
3700
|
+
<span class="c1"># display paging details.</span>
|
|
3701
|
+
<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>
|
|
3702
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Chapters in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
3703
|
+
|
|
3704
|
+
<span class="c1"># display chapter details.</span>
|
|
3705
|
+
<span class="n">chapterSimplified</span><span class="p">:</span><span class="n">ChapterPageSimplified</span>
|
|
3706
|
+
<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>
|
|
3707
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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>
|
|
3708
|
+
|
|
3709
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
3710
|
+
|
|
3711
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
3712
|
+
</code></pre>
|
|
3713
|
+
</div>
|
|
3714
|
+
|
|
3404
3715
|
<p></details></p>
|
|
3405
3716
|
</div>
|
|
3406
3717
|
|
|
@@ -3410,7 +3721,7 @@ and the response contains error information.</li>
|
|
|
3410
3721
|
<div class="attr function">
|
|
3411
3722
|
|
|
3412
3723
|
<span class="def">def</span>
|
|
3413
|
-
<span class="name">GetAudiobookFavorites</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</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="return-annotation">) -> <span class="n"><a href="models/audiobookpagesimplified.html#AudiobookPageSimplified">spotifywebapipython.models.audiobookpagesimplified.AudiobookPageSimplified</a></span>:</span></span>
|
|
3724
|
+
<span class="name">GetAudiobookFavorites</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</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">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/audiobookpagesimplified.html#AudiobookPageSimplified">spotifywebapipython.models.audiobookpagesimplified.AudiobookPageSimplified</a></span>:</span></span>
|
|
3414
3725
|
|
|
3415
3726
|
|
|
3416
3727
|
</div>
|
|
@@ -3423,11 +3734,16 @@ and the response contains error information.</li>
|
|
|
3423
3734
|
<h6 id="arguments">Arguments:</h6>
|
|
3424
3735
|
|
|
3425
3736
|
<ul>
|
|
3426
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
3737
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
3427
3738
|
Default: 20, Range: 1 to 50. </li>
|
|
3428
|
-
<li><strong>offset (int):</strong> The index of the first item to return. <br />
|
|
3739
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
3429
3740
|
Use with limit to get the next set of items. <br />
|
|
3430
3741
|
Default: 0 (the first item). </li>
|
|
3742
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
3743
|
+
If specified, this argument overrides the limit and offset argument values
|
|
3744
|
+
and paging is automatically used to retrieve all available items up to the
|
|
3745
|
+
maximum number specified. <br />
|
|
3746
|
+
Default: None (disabled)</li>
|
|
3431
3747
|
</ul>
|
|
3432
3748
|
|
|
3433
3749
|
<h6 id="returns">Returns:</h6>
|
|
@@ -3445,7 +3761,7 @@ and the response contains error information.</li>
|
|
|
3445
3761
|
</ul>
|
|
3446
3762
|
|
|
3447
3763
|
<p><details>
|
|
3448
|
-
<summary>Sample Code</summary></p>
|
|
3764
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
3449
3765
|
|
|
3450
3766
|
<div class="pdoc-code codehilite">
|
|
3451
3767
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -3503,6 +3819,43 @@ and the response contains error information.</li>
|
|
|
3503
3819
|
</code></pre>
|
|
3504
3820
|
</div>
|
|
3505
3821
|
|
|
3822
|
+
<p></details>
|
|
3823
|
+
<details>
|
|
3824
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
3825
|
+
|
|
3826
|
+
<div class="pdoc-code codehilite">
|
|
3827
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
3828
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
3829
|
+
|
|
3830
|
+
<span class="k">try</span><span class="p">:</span>
|
|
3831
|
+
|
|
3832
|
+
<span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
|
|
3833
|
+
|
|
3834
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
3835
|
+
<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">'user-read-email'</span><span class="p">,</span><span class="s1">'user-library-read'</span><span class="p">]</span>
|
|
3836
|
+
|
|
3837
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
3838
|
+
<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>
|
|
3839
|
+
|
|
3840
|
+
<span class="c1"># get a list of the audiobooks saved in the current Spotify user's 'Your Library'.</span>
|
|
3841
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting ALL saved audiobooks for current user ...</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span>
|
|
3842
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">AudiobookPageSimplified</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetAudiobookFavorites</span><span class="p">(</span><span class="n">limitTotal</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
|
|
3843
|
+
|
|
3844
|
+
<span class="c1"># display paging details.</span>
|
|
3845
|
+
<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>
|
|
3846
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Audiobooks in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
3847
|
+
|
|
3848
|
+
<span class="c1"># display audiobook details.</span>
|
|
3849
|
+
<span class="n">audiobook</span><span class="p">:</span><span class="n">AudiobookSimplified</span>
|
|
3850
|
+
<span class="k">for</span> <span class="n">audiobook</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
3851
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">audiobook</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">audiobook</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
3852
|
+
|
|
3853
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
3854
|
+
|
|
3855
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
3856
|
+
</code></pre>
|
|
3857
|
+
</div>
|
|
3858
|
+
|
|
3506
3859
|
<p></details></p>
|
|
3507
3860
|
</div>
|
|
3508
3861
|
|
|
@@ -3701,24 +4054,24 @@ the spotify web api request. This results in better performance.</p>
|
|
|
3701
4054
|
|
|
3702
4055
|
|
|
3703
4056
|
</div>
|
|
3704
|
-
<div id="SpotifyClient.
|
|
4057
|
+
<div id="SpotifyClient.GetBrowseCategorys" class="classattr">
|
|
3705
4058
|
<div class="attr function">
|
|
3706
4059
|
|
|
3707
4060
|
<span class="def">def</span>
|
|
3708
|
-
<span class="name">
|
|
4061
|
+
<span class="name">GetBrowseCategorys</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</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">country</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">locale</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/categorypage.html#CategoryPage">spotifywebapipython.models.categorypage.CategoryPage</a></span>:</span></span>
|
|
3709
4062
|
|
|
3710
4063
|
|
|
3711
4064
|
</div>
|
|
3712
|
-
<a class="headerlink" href="#SpotifyClient.
|
|
4065
|
+
<a class="headerlink" href="#SpotifyClient.GetBrowseCategorys"></a>
|
|
3713
4066
|
|
|
3714
4067
|
<div class="docstring"><p>Get a page of categories used to tag items in Spotify.</p>
|
|
3715
4068
|
|
|
3716
4069
|
<h6 id="arguments">Arguments:</h6>
|
|
3717
4070
|
|
|
3718
4071
|
<ul>
|
|
3719
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
3720
|
-
Default:
|
|
3721
|
-
<li><strong>offset (int):</strong> The index of the first item to return. <br />
|
|
4072
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
4073
|
+
Default: 20, Range: 1 to 50. </li>
|
|
4074
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
3722
4075
|
Use with limit to get the next set of items. <br />
|
|
3723
4076
|
Default: 0 (the first item). </li>
|
|
3724
4077
|
<li><strong>country (str):</strong> A country: an ISO 3166-1 alpha-2 country code. <br />
|
|
@@ -3734,6 +4087,11 @@ be returned in the Spotify default language (American English). The locale param
|
|
|
3734
4087
|
the country parameter, may give odd results if not carefully matched. For example country=<code>SE</code> and
|
|
3735
4088
|
locale=<code>de_DE</code> will return a list of categories relevant to Sweden but as German language strings. <br />
|
|
3736
4089
|
Example: <code>sv_SE</code> </li>
|
|
4090
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
4091
|
+
If specified, this argument overrides the limit and offset argument values
|
|
4092
|
+
and paging is automatically used to retrieve all available items up to the
|
|
4093
|
+
maximum number specified. <br />
|
|
4094
|
+
Default: None (disabled)</li>
|
|
3737
4095
|
</ul>
|
|
3738
4096
|
|
|
3739
4097
|
<h6 id="returns">Returns:</h6>
|
|
@@ -3751,7 +4109,7 @@ and the response contains error information.</li>
|
|
|
3751
4109
|
</ul>
|
|
3752
4110
|
|
|
3753
4111
|
<p><details>
|
|
3754
|
-
<summary>Sample Code</summary></p>
|
|
4112
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
3755
4113
|
|
|
3756
4114
|
<div class="pdoc-code codehilite">
|
|
3757
4115
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -3771,8 +4129,8 @@ and the response contains error information.</li>
|
|
|
3771
4129
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
3772
4130
|
|
|
3773
4131
|
<span class="c1"># get a list of categories used to tag items in Spotify.</span>
|
|
3774
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting
|
|
3775
|
-
<span class="n">pageObj</span><span class="p">:</span><span class="n">CategoryPage</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">
|
|
4132
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting browse categories ...</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span>
|
|
4133
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">CategoryPage</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetBrowseCategorys</span><span class="p">(</span><span class="n">limit</span><span class="o">=</span><span class="mi">50</span><span class="p">)</span>
|
|
3776
4134
|
|
|
3777
4135
|
<span class="c1"># handle pagination, as spotify limits us to a set # of items returned per response.</span>
|
|
3778
4136
|
<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
|
|
@@ -3799,7 +4157,7 @@ and the response contains error information.</li>
|
|
|
3799
4157
|
<span class="k">else</span><span class="p">:</span>
|
|
3800
4158
|
<span class="c1"># yes - retrieve the next page of results.</span>
|
|
3801
4159
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</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">'</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>
|
|
3802
|
-
<span class="n">pageObj</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">
|
|
4160
|
+
<span class="n">pageObj</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetBrowseCategorys</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>
|
|
3803
4161
|
|
|
3804
4162
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
3805
4163
|
|
|
@@ -3807,20 +4165,60 @@ and the response contains error information.</li>
|
|
|
3807
4165
|
</code></pre>
|
|
3808
4166
|
</div>
|
|
3809
4167
|
|
|
3810
|
-
<p></details
|
|
3811
|
-
|
|
4168
|
+
<p></details>
|
|
4169
|
+
<details>
|
|
4170
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
3812
4171
|
|
|
4172
|
+
<div class="pdoc-code codehilite">
|
|
4173
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
4174
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
3813
4175
|
|
|
3814
|
-
|
|
3815
|
-
|
|
3816
|
-
|
|
4176
|
+
<span class="k">try</span><span class="p">:</span>
|
|
4177
|
+
|
|
4178
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
4179
|
+
<span class="n">CLIENT_SECRET</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_secret'</span>
|
|
4180
|
+
|
|
4181
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
4182
|
+
<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>
|
|
4183
|
+
|
|
4184
|
+
<span class="c1"># generate a spotify client credentials access token (no scope, public data use only).</span>
|
|
4185
|
+
<span class="n">spotify</span><span class="o">.</span><span class="n">SetAuthTokenClientCredentials</span><span class="p">(</span><span class="n">CLIENT_ID</span><span class="p">,</span> <span class="n">CLIENT_SECRET</span><span class="p">)</span>
|
|
4186
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
4187
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
4188
|
+
|
|
4189
|
+
<span class="c1"># get a list of categories used to tag items in Spotify.</span>
|
|
4190
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting ALL browse categories ...</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span>
|
|
4191
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">CategoryPage</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetBrowseCategorys</span><span class="p">(</span><span class="n">limitTotal</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
|
|
4192
|
+
|
|
4193
|
+
<span class="c1"># display paging details.</span>
|
|
4194
|
+
<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>
|
|
4195
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Categories in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
4196
|
+
|
|
4197
|
+
<span class="c1"># display category details.</span>
|
|
4198
|
+
<span class="n">category</span><span class="p">:</span><span class="n">Category</span>
|
|
4199
|
+
<span class="k">for</span> <span class="n">category</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
4200
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">category</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">category</span><span class="o">.</span><span class="n">Id</span><span class="p">))</span>
|
|
4201
|
+
|
|
4202
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
4203
|
+
|
|
4204
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
4205
|
+
</code></pre>
|
|
4206
|
+
</div>
|
|
4207
|
+
|
|
4208
|
+
<p></details></p>
|
|
4209
|
+
</div>
|
|
4210
|
+
|
|
4211
|
+
|
|
4212
|
+
</div>
|
|
4213
|
+
<div id="SpotifyClient.GetBrowseCategorysList" class="classattr">
|
|
4214
|
+
<div class="attr function">
|
|
3817
4215
|
|
|
3818
4216
|
<span class="def">def</span>
|
|
3819
|
-
<span class="name">
|
|
4217
|
+
<span class="name">GetBrowseCategorysList</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">country</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">locale</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">refresh</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="nb">list</span><span class="p">[</span><span class="n"><a href="models/category.html#Category">spotifywebapipython.models.category.Category</a></span><span class="p">]</span>:</span></span>
|
|
3820
4218
|
|
|
3821
4219
|
|
|
3822
4220
|
</div>
|
|
3823
|
-
<a class="headerlink" href="#SpotifyClient.
|
|
4221
|
+
<a class="headerlink" href="#SpotifyClient.GetBrowseCategorysList"></a>
|
|
3824
4222
|
|
|
3825
4223
|
<div class="docstring"><p>Get a sorted list of ALL categories used to tag items in Spotify.</p>
|
|
3826
4224
|
|
|
@@ -3883,23 +4281,22 @@ the spotify web api request. This results in better performance.</p>
|
|
|
3883
4281
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
3884
4282
|
|
|
3885
4283
|
<span class="c1"># get a sorted list of all categories used to tag items in Spotify.</span>
|
|
3886
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting all browse categories ...'</span><span class="p">)</span>
|
|
3887
|
-
<span class="n">categories</span><span class="p">:</span><span class="nb">list</span><span class="p">[</span><span class="n">Category</span><span class="p">]</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">
|
|
4284
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting list of all browse categories ...'</span><span class="p">)</span>
|
|
4285
|
+
<span class="n">categories</span><span class="p">:</span><span class="nb">list</span><span class="p">[</span><span class="n">Category</span><span class="p">]</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetBrowseCategorysList</span><span class="p">()</span>
|
|
3888
4286
|
|
|
3889
4287
|
<span class="c1"># display category details.</span>
|
|
3890
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">All Browse Categories (sorted by name):'</span><span class="p">)</span>
|
|
4288
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">All Browse Categories (sorted by name - </span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="nb">len</span><span class="p">(</span><span class="n">categories</span><span class="p">))</span>
|
|
3891
4289
|
<span class="n">category</span><span class="p">:</span><span class="n">Category</span>
|
|
3892
4290
|
<span class="k">for</span> <span class="n">category</span> <span class="ow">in</span> <span class="n">categories</span><span class="p">:</span>
|
|
3893
|
-
|
|
3894
4291
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">category</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">category</span><span class="o">.</span><span class="n">Id</span><span class="p">))</span>
|
|
3895
4292
|
|
|
3896
4293
|
<span class="c1"># get cached configuration, refreshing from device if needed.</span>
|
|
3897
|
-
<span class="n">categories</span><span class="p">:</span><span class="nb">list</span><span class="p">[</span><span class="n">Category</span><span class="p">]</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">
|
|
4294
|
+
<span class="n">categories</span><span class="p">:</span><span class="nb">list</span><span class="p">[</span><span class="n">Category</span><span class="p">]</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetBrowseCategorysList</span><span class="p">(</span><span class="n">refresh</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
|
|
3898
4295
|
<span class="nb">print</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">Cached configuration (count): </span><span class="si">%d</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">len</span><span class="p">(</span><span class="n">categories</span><span class="p">))</span>
|
|
3899
4296
|
|
|
3900
4297
|
<span class="c1"># get cached configuration directly from the configuration manager dictionary.</span>
|
|
3901
|
-
<span class="k">if</span> <span class="s2">"
|
|
3902
|
-
<span class="n">categories</span><span class="p">:</span><span class="nb">list</span><span class="p">[</span><span class="n">Category</span><span class="p">]</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">ConfigurationCache</span><span class="p">[</span><span class="s2">"
|
|
4298
|
+
<span class="k">if</span> <span class="s2">"GetBrowseCategorysList"</span> <span class="ow">in</span> <span class="n">spotify</span><span class="o">.</span><span class="n">ConfigurationCache</span><span class="p">:</span>
|
|
4299
|
+
<span class="n">categories</span><span class="p">:</span><span class="nb">list</span><span class="p">[</span><span class="n">Category</span><span class="p">]</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">ConfigurationCache</span><span class="p">[</span><span class="s2">"GetBrowseCategorysList"</span><span class="p">]</span>
|
|
3903
4300
|
<span class="nb">print</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">Cached configuration direct access (count): </span><span class="si">%d</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">len</span><span class="p">(</span><span class="n">categories</span><span class="p">))</span>
|
|
3904
4301
|
|
|
3905
4302
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
@@ -3917,7 +4314,7 @@ the spotify web api request. This results in better performance.</p>
|
|
|
3917
4314
|
<div class="attr function">
|
|
3918
4315
|
|
|
3919
4316
|
<span class="def">def</span>
|
|
3920
|
-
<span class="name">GetCategoryPlaylists</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">categoryId</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">country</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">Tuple</span><span class="p">[</span><span class="n"><a href="models/playlistpagesimplified.html#PlaylistPageSimplified">spotifywebapipython.models.playlistpagesimplified.PlaylistPageSimplified</a></span><span class="p">,</span> <span class="nb">str</span><span class="p">]</span>:</span></span>
|
|
4317
|
+
<span class="name">GetCategoryPlaylists</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">categoryId</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">country</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">Tuple</span><span class="p">[</span><span class="n"><a href="models/playlistpagesimplified.html#PlaylistPageSimplified">spotifywebapipython.models.playlistpagesimplified.PlaylistPageSimplified</a></span><span class="p">,</span> <span class="nb">str</span><span class="p">]</span>:</span></span>
|
|
3921
4318
|
|
|
3922
4319
|
|
|
3923
4320
|
</div>
|
|
@@ -3930,15 +4327,20 @@ the spotify web api request. This results in better performance.</p>
|
|
|
3930
4327
|
<ul>
|
|
3931
4328
|
<li><strong>categoryId (str):</strong> The Spotify category ID for the category. <br />
|
|
3932
4329
|
Example: <code>dinner</code></li>
|
|
3933
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
4330
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
3934
4331
|
Default: 20, Range: 1 to 50. </li>
|
|
3935
|
-
<li><strong>offset (int):</strong> The index of the first item to return. <br />
|
|
4332
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
3936
4333
|
Use with limit to get the next set of items. <br />
|
|
3937
4334
|
Default: 0 (the first item). </li>
|
|
3938
4335
|
<li><strong>country (str):</strong> A country: an ISO 3166-1 alpha-2 country code. <br />
|
|
3939
4336
|
Provide this parameter if you want the list of returned items to be relevant to a
|
|
3940
4337
|
particular country. If omitted, the returned items will be relevant to all countries. <br />
|
|
3941
4338
|
Example: <code>SE</code></li>
|
|
4339
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
4340
|
+
If specified, this argument overrides the limit and offset argument values
|
|
4341
|
+
and paging is automatically used to retrieve all available items up to the
|
|
4342
|
+
maximum number specified. <br />
|
|
4343
|
+
Default: None (disabled)</li>
|
|
3942
4344
|
</ul>
|
|
3943
4345
|
|
|
3944
4346
|
<h6 id="returns">Returns:</h6>
|
|
@@ -3961,7 +4363,7 @@ and the response contains error information.</li>
|
|
|
3961
4363
|
</ul>
|
|
3962
4364
|
|
|
3963
4365
|
<p><details>
|
|
3964
|
-
<summary>Sample Code</summary></p>
|
|
4366
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
3965
4367
|
|
|
3966
4368
|
<div class="pdoc-code codehilite">
|
|
3967
4369
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -4020,6 +4422,49 @@ and the response contains error information.</li>
|
|
|
4020
4422
|
</code></pre>
|
|
4021
4423
|
</div>
|
|
4022
4424
|
|
|
4425
|
+
<p></details>
|
|
4426
|
+
<details>
|
|
4427
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
4428
|
+
|
|
4429
|
+
<div class="pdoc-code codehilite">
|
|
4430
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
4431
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
4432
|
+
|
|
4433
|
+
<span class="k">try</span><span class="p">:</span>
|
|
4434
|
+
|
|
4435
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
4436
|
+
<span class="n">CLIENT_SECRET</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_secret'</span>
|
|
4437
|
+
|
|
4438
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
4439
|
+
<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>
|
|
4440
|
+
|
|
4441
|
+
<span class="c1"># generate a spotify client credentials access token (no scope, public data use only).</span>
|
|
4442
|
+
<span class="n">spotify</span><span class="o">.</span><span class="n">SetAuthTokenClientCredentials</span><span class="p">(</span><span class="n">CLIENT_ID</span><span class="p">,</span> <span class="n">CLIENT_SECRET</span><span class="p">)</span>
|
|
4443
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
4444
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
4445
|
+
|
|
4446
|
+
<span class="c1"># get a list of Spotify playlists tagged with a particular category.</span>
|
|
4447
|
+
<span class="n">categoryId</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'toplists'</span> <span class="c1"># 'pop'</span>
|
|
4448
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting ALL playlists for category "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">categoryId</span><span class="p">)</span>
|
|
4449
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">PlaylistPageSimplified</span>
|
|
4450
|
+
<span class="n">pageObj</span><span class="p">,</span> <span class="n">message</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetCategoryPlaylists</span><span class="p">(</span><span class="n">categoryId</span><span class="p">,</span> <span class="n">limitTotal</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
|
|
4451
|
+
|
|
4452
|
+
<span class="c1"># display results.</span>
|
|
4453
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'Playlist Results Type: "</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">message</span><span class="p">))</span>
|
|
4454
|
+
<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>
|
|
4455
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Playlists in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
4456
|
+
|
|
4457
|
+
<span class="c1"># display playlist details.</span>
|
|
4458
|
+
<span class="n">playlist</span><span class="p">:</span><span class="n">PlaylistSimplified</span>
|
|
4459
|
+
<span class="k">for</span> <span class="n">playlist</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
4460
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">playlist</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">playlist</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
4461
|
+
|
|
4462
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
4463
|
+
|
|
4464
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
4465
|
+
</code></pre>
|
|
4466
|
+
</div>
|
|
4467
|
+
|
|
4023
4468
|
<p></details></p>
|
|
4024
4469
|
</div>
|
|
4025
4470
|
|
|
@@ -4310,7 +4755,7 @@ and the response contains error information.</li>
|
|
|
4310
4755
|
<div class="attr function">
|
|
4311
4756
|
|
|
4312
4757
|
<span class="def">def</span>
|
|
4313
|
-
<span class="name">GetEpisodeFavorites</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</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="return-annotation">) -> <span class="n"><a href="models/episodepagesaved.html#EpisodePageSaved">spotifywebapipython.models.episodepagesaved.EpisodePageSaved</a></span>:</span></span>
|
|
4758
|
+
<span class="name">GetEpisodeFavorites</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</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">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/episodepagesaved.html#EpisodePageSaved">spotifywebapipython.models.episodepagesaved.EpisodePageSaved</a></span>:</span></span>
|
|
4314
4759
|
|
|
4315
4760
|
|
|
4316
4761
|
</div>
|
|
@@ -4323,11 +4768,16 @@ and the response contains error information.</li>
|
|
|
4323
4768
|
<h6 id="arguments">Arguments:</h6>
|
|
4324
4769
|
|
|
4325
4770
|
<ul>
|
|
4326
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
4771
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
4327
4772
|
Default: 20, Range: 1 to 50. </li>
|
|
4328
|
-
<li><strong>offset (int):</strong> The index of the first item to return. <br />
|
|
4773
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
4329
4774
|
Use with limit to get the next set of items. <br />
|
|
4330
4775
|
Default: 0 (the first item). </li>
|
|
4776
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
4777
|
+
If specified, this argument overrides the limit and offset argument values
|
|
4778
|
+
and paging is automatically used to retrieve all available items up to the
|
|
4779
|
+
maximum number specified. <br />
|
|
4780
|
+
Default: None (disabled)</li>
|
|
4331
4781
|
</ul>
|
|
4332
4782
|
|
|
4333
4783
|
<h6 id="returns">Returns:</h6>
|
|
@@ -4345,7 +4795,7 @@ and the response contains error information.</li>
|
|
|
4345
4795
|
</ul>
|
|
4346
4796
|
|
|
4347
4797
|
<p><details>
|
|
4348
|
-
<summary>Sample Code</summary></p>
|
|
4798
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
4349
4799
|
|
|
4350
4800
|
<div class="pdoc-code codehilite">
|
|
4351
4801
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -4412,6 +4862,57 @@ and the response contains error information.</li>
|
|
|
4412
4862
|
</code></pre>
|
|
4413
4863
|
</div>
|
|
4414
4864
|
|
|
4865
|
+
<p></details>
|
|
4866
|
+
<details>
|
|
4867
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
4868
|
+
|
|
4869
|
+
<div class="pdoc-code codehilite">
|
|
4870
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
4871
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
4872
|
+
|
|
4873
|
+
<span class="k">try</span><span class="p">:</span>
|
|
4874
|
+
|
|
4875
|
+
<span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
|
|
4876
|
+
|
|
4877
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
4878
|
+
<span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> \
|
|
4879
|
+
<span class="p">[</span>
|
|
4880
|
+
<span class="s1">'playlist-modify-private'</span><span class="p">,</span>
|
|
4881
|
+
<span class="s1">'playlist-modify-public'</span><span class="p">,</span>
|
|
4882
|
+
<span class="s1">'ugc-image-upload'</span><span class="p">,</span>
|
|
4883
|
+
<span class="s1">'user-library-modify'</span><span class="p">,</span>
|
|
4884
|
+
<span class="s1">'user-library-read'</span><span class="p">,</span>
|
|
4885
|
+
<span class="s1">'user-read-email'</span><span class="p">,</span>
|
|
4886
|
+
<span class="s1">'user-read-playback-position'</span><span class="p">,</span>
|
|
4887
|
+
<span class="p">]</span>
|
|
4888
|
+
|
|
4889
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
4890
|
+
<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>
|
|
4891
|
+
|
|
4892
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
4893
|
+
<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>
|
|
4894
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
4895
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
4896
|
+
|
|
4897
|
+
<span class="c1"># get a list of the episodes saved in the current Spotify user's 'Your Library'.</span>
|
|
4898
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting ALL saved episodes for current user ...</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span>
|
|
4899
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">EpisodePageSaved</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetEpisodeFavorites</span><span class="p">(</span><span class="n">limitTotal</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
|
|
4900
|
+
|
|
4901
|
+
<span class="c1"># display paging details.</span>
|
|
4902
|
+
<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>
|
|
4903
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Episodes in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
4904
|
+
|
|
4905
|
+
<span class="c1"># display episode details.</span>
|
|
4906
|
+
<span class="n">episodeSaved</span><span class="p">:</span><span class="n">EpisodeSaved</span>
|
|
4907
|
+
<span class="k">for</span> <span class="n">episodeSaved</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
4908
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">episodeSaved</span><span class="o">.</span><span class="n">Episode</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">episodeSaved</span><span class="o">.</span><span class="n">Episode</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
4909
|
+
|
|
4910
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
4911
|
+
|
|
4912
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
4913
|
+
</code></pre>
|
|
4914
|
+
</div>
|
|
4915
|
+
|
|
4415
4916
|
<p></details></p>
|
|
4416
4917
|
</div>
|
|
4417
4918
|
|
|
@@ -4523,7 +5024,7 @@ and the response contains error information.</li>
|
|
|
4523
5024
|
<div class="attr function">
|
|
4524
5025
|
|
|
4525
5026
|
<span class="def">def</span>
|
|
4526
|
-
<span class="name">GetFeaturedPlaylists</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</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">country</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">locale</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">timestamp</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">Tuple</span><span class="p">[</span><span class="n"><a href="models/playlistpagesimplified.html#PlaylistPageSimplified">spotifywebapipython.models.playlistpagesimplified.PlaylistPageSimplified</a></span><span class="p">,</span> <span class="nb">str</span><span class="p">]</span>:</span></span>
|
|
5027
|
+
<span class="name">GetFeaturedPlaylists</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</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">country</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">locale</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">timestamp</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">Tuple</span><span class="p">[</span><span class="n"><a href="models/playlistpagesimplified.html#PlaylistPageSimplified">spotifywebapipython.models.playlistpagesimplified.PlaylistPageSimplified</a></span><span class="p">,</span> <span class="nb">str</span><span class="p">]</span>:</span></span>
|
|
4527
5028
|
|
|
4528
5029
|
|
|
4529
5030
|
</div>
|
|
@@ -4534,9 +5035,9 @@ and the response contains error information.</li>
|
|
|
4534
5035
|
<h6 id="arguments">Arguments:</h6>
|
|
4535
5036
|
|
|
4536
5037
|
<ul>
|
|
4537
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
5038
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
4538
5039
|
Default: 20, Range: 1 to 50. </li>
|
|
4539
|
-
<li><strong>offset (int):</strong> The index of the first item to return. <br />
|
|
5040
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
4540
5041
|
Use with limit to get the next set of items. <br />
|
|
4541
5042
|
Default: 0 (the first item). </li>
|
|
4542
5043
|
<li><strong>country (str):</strong> A country: an ISO 3166-1 alpha-2 country code. <br />
|
|
@@ -4559,6 +5060,11 @@ Example: <code>2023-10-23T09:00:00</code> for a user whose local time is 9AM.
|
|
|
4559
5060
|
If there were no featured playlists (or there is no data) at the specified time, the response will
|
|
4560
5061
|
revert to the current UTC time.
|
|
4561
5062
|
Example: <code>2023-10-23T09:00:00</code></li>
|
|
5063
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
5064
|
+
If specified, this argument overrides the limit and offset argument values
|
|
5065
|
+
and paging is automatically used to retrieve all available items up to the
|
|
5066
|
+
maximum number specified. <br />
|
|
5067
|
+
Default: None (disabled)</li>
|
|
4562
5068
|
</ul>
|
|
4563
5069
|
|
|
4564
5070
|
<h6 id="returns">Returns:</h6>
|
|
@@ -4581,7 +5087,7 @@ and the response contains error information.</li>
|
|
|
4581
5087
|
</ul>
|
|
4582
5088
|
|
|
4583
5089
|
<p><details>
|
|
4584
|
-
<summary>Sample Code</summary></p>
|
|
5090
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
4585
5091
|
|
|
4586
5092
|
<div class="pdoc-code codehilite">
|
|
4587
5093
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -4639,6 +5145,48 @@ and the response contains error information.</li>
|
|
|
4639
5145
|
</code></pre>
|
|
4640
5146
|
</div>
|
|
4641
5147
|
|
|
5148
|
+
<p></details>
|
|
5149
|
+
<details>
|
|
5150
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
5151
|
+
|
|
5152
|
+
<div class="pdoc-code codehilite">
|
|
5153
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
5154
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
5155
|
+
|
|
5156
|
+
<span class="k">try</span><span class="p">:</span>
|
|
5157
|
+
|
|
5158
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
5159
|
+
<span class="n">CLIENT_SECRET</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_secret'</span>
|
|
5160
|
+
|
|
5161
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
5162
|
+
<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>
|
|
5163
|
+
|
|
5164
|
+
<span class="c1"># generate a spotify client credentials access token (no scope, public data use only).</span>
|
|
5165
|
+
<span class="n">spotify</span><span class="o">.</span><span class="n">SetAuthTokenClientCredentials</span><span class="p">(</span><span class="n">CLIENT_ID</span><span class="p">,</span> <span class="n">CLIENT_SECRET</span><span class="p">)</span>
|
|
5166
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
5167
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
5168
|
+
|
|
5169
|
+
<span class="c1"># get a list of Spotify featured playlists.</span>
|
|
5170
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting ALL Spotify featured playlists ...</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span>
|
|
5171
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">PlaylistPageSimplified</span>
|
|
5172
|
+
<span class="n">pageObj</span><span class="p">,</span> <span class="n">message</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetFeaturedPlaylists</span><span class="p">(</span><span class="n">limitTotal</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
|
|
5173
|
+
|
|
5174
|
+
<span class="c1"># display paging details.</span>
|
|
5175
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'Playlist Results Type: "</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">message</span><span class="p">))</span>
|
|
5176
|
+
<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>
|
|
5177
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Playlists in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
5178
|
+
|
|
5179
|
+
<span class="c1"># display playlist details.</span>
|
|
5180
|
+
<span class="n">playlist</span><span class="p">:</span><span class="n">PlaylistSimplified</span>
|
|
5181
|
+
<span class="k">for</span> <span class="n">playlist</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
5182
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">playlist</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">playlist</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
5183
|
+
|
|
5184
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
5185
|
+
|
|
5186
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
5187
|
+
</code></pre>
|
|
5188
|
+
</div>
|
|
5189
|
+
|
|
4642
5190
|
<p></details></p>
|
|
4643
5191
|
</div>
|
|
4644
5192
|
|
|
@@ -5346,7 +5894,7 @@ Note: Currently doesn't support podcast episodes.</p>
|
|
|
5346
5894
|
<h6 id="arguments">Arguments:</h6>
|
|
5347
5895
|
|
|
5348
5896
|
<ul>
|
|
5349
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
5897
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
5350
5898
|
Default: <code>20</code>, Range: <code>1</code> to <code>50</code>. </li>
|
|
5351
5899
|
<li><strong>after (int):</strong> Returns all items after (but not including) this cursor position, which is
|
|
5352
5900
|
a Unix timestamp in milliseconds. <br />
|
|
@@ -5363,6 +5911,9 @@ Default: <code>0</code> (the first item). </li>
|
|
|
5363
5911
|
<p>The <code>after</code> and <code>before</code> arguments are based upon local time (not UTC time). Recently
|
|
5364
5912
|
played item history uses a local timestamp, and NOT a UTC timestamp.</p>
|
|
5365
5913
|
|
|
5914
|
+
<p>If both <code>after</code> and <code>before</code> arguments are null (or zero), then an <code>after</code> value
|
|
5915
|
+
is generated that will retrieve recently played tracks for the past 24 hours.</p>
|
|
5916
|
+
|
|
5366
5917
|
<h6 id="returns">Returns:</h6>
|
|
5367
5918
|
|
|
5368
5919
|
<blockquote>
|
|
@@ -5689,7 +6240,7 @@ and the response contains error information.</li>
|
|
|
5689
6240
|
<div class="attr function">
|
|
5690
6241
|
|
|
5691
6242
|
<span class="def">def</span>
|
|
5692
|
-
<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="return-annotation">) -> <span class="n"><a href="models/playlistpage.html#PlaylistPage">spotifywebapipython.models.playlistpage.PlaylistPage</a></span>:</span></span>
|
|
6243
|
+
<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>
|
|
5693
6244
|
|
|
5694
6245
|
|
|
5695
6246
|
</div>
|
|
@@ -5704,9 +6255,9 @@ and the response contains error information.</li>
|
|
|
5704
6255
|
<ul>
|
|
5705
6256
|
<li><strong>playlistId (str):</strong> The Spotify ID of the playlist. <br />
|
|
5706
6257
|
Example: <code>5v5ETK9WFXAnGQ3MRubKuE</code></li>
|
|
5707
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
6258
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
5708
6259
|
Default: 50, Range: 1 to 50. </li>
|
|
5709
|
-
<li><strong>offset (int):</strong> The index of the first item to return. <br />
|
|
6260
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
5710
6261
|
Use with limit to get the next set of items. <br />
|
|
5711
6262
|
Default: 0 (the first item). </li>
|
|
5712
6263
|
<li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
|
|
@@ -5734,6 +6285,11 @@ Valid types are: track and episode. <br />
|
|
|
5734
6285
|
Note: This parameter was introduced to allow existing clients to maintain their current behaviour
|
|
5735
6286
|
and might be deprecated in the future. In addition to providing this parameter, make sure that your
|
|
5736
6287
|
client properly handles cases of new types in the future by checking against the type field of each object. </li>
|
|
6288
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
6289
|
+
If specified, this argument overrides the limit and offset argument values
|
|
6290
|
+
and paging is automatically used to retrieve all available items up to the
|
|
6291
|
+
maximum number specified. <br />
|
|
6292
|
+
Default: None (disabled)</li>
|
|
5737
6293
|
</ul>
|
|
5738
6294
|
|
|
5739
6295
|
<h6 id="returns">Returns:</h6>
|
|
@@ -5751,7 +6307,7 @@ and the response contains error information.</li>
|
|
|
5751
6307
|
</ul>
|
|
5752
6308
|
|
|
5753
6309
|
<p><details>
|
|
5754
|
-
<summary>Sample Code</summary></p>
|
|
6310
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
5755
6311
|
|
|
5756
6312
|
<div class="pdoc-code codehilite">
|
|
5757
6313
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -5812,6 +6368,49 @@ and the response contains error information.</li>
|
|
|
5812
6368
|
</code></pre>
|
|
5813
6369
|
</div>
|
|
5814
6370
|
|
|
6371
|
+
<p></details>
|
|
6372
|
+
<details>
|
|
6373
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
6374
|
+
|
|
6375
|
+
<div class="pdoc-code codehilite">
|
|
6376
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
6377
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
6378
|
+
|
|
6379
|
+
<span class="k">try</span><span class="p">:</span>
|
|
6380
|
+
|
|
6381
|
+
<span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
|
|
6382
|
+
|
|
6383
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
6384
|
+
<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">'user-read-email'</span><span class="p">,</span><span class="s1">'user-library-read'</span><span class="p">]</span>
|
|
6385
|
+
|
|
6386
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
6387
|
+
<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>
|
|
6388
|
+
|
|
6389
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
6390
|
+
<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>
|
|
6391
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
6392
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
6393
|
+
|
|
6394
|
+
<span class="c1"># get full details of the items of a playlist owned by a Spotify user.</span>
|
|
6395
|
+
<span class="n">playlistId</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'5v5ETK9WFXAnGQ3MRubKuE'</span>
|
|
6396
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting ALL item details for playlist "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">playlistId</span><span class="p">)</span>
|
|
6397
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">PlaylistPage</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetPlaylistItems</span><span class="p">(</span><span class="n">playlistId</span><span class="p">,</span> <span class="n">limitTotal</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
|
|
6398
|
+
|
|
6399
|
+
<span class="c1"># display paging details.</span>
|
|
6400
|
+
<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>
|
|
6401
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Track Item results: (</span><span class="si">%d</span><span class="s1"> items)'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
6402
|
+
|
|
6403
|
+
<span class="c1"># display track details.</span>
|
|
6404
|
+
<span class="n">playlistTrack</span><span class="p">:</span><span class="n">PlaylistTrack</span>
|
|
6405
|
+
<span class="k">for</span> <span class="n">playlistTrack</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
6406
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">), added on </span><span class="si">{added}</span><span class="s1"> '</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> <span class="n">added</span><span class="o">=</span><span class="n">playlistTrack</span><span class="o">.</span><span class="n">AddedAt</span><span class="p">))</span>
|
|
6407
|
+
|
|
6408
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
6409
|
+
|
|
6410
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
6411
|
+
</code></pre>
|
|
6412
|
+
</div>
|
|
6413
|
+
|
|
5815
6414
|
<p></details></p>
|
|
5816
6415
|
</div>
|
|
5817
6416
|
|
|
@@ -5821,7 +6420,7 @@ and the response contains error information.</li>
|
|
|
5821
6420
|
<div class="attr function">
|
|
5822
6421
|
|
|
5823
6422
|
<span class="def">def</span>
|
|
5824
|
-
<span class="name">GetPlaylistFavorites</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</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="return-annotation">) -> <span class="n"><a href="models/playlistpagesimplified.html#PlaylistPageSimplified">spotifywebapipython.models.playlistpagesimplified.PlaylistPageSimplified</a></span>:</span></span>
|
|
6423
|
+
<span class="name">GetPlaylistFavorites</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</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">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/playlistpagesimplified.html#PlaylistPageSimplified">spotifywebapipython.models.playlistpagesimplified.PlaylistPageSimplified</a></span>:</span></span>
|
|
5825
6424
|
|
|
5826
6425
|
|
|
5827
6426
|
</div>
|
|
@@ -5834,11 +6433,16 @@ and the response contains error information.</li>
|
|
|
5834
6433
|
<h6 id="arguments">Arguments:</h6>
|
|
5835
6434
|
|
|
5836
6435
|
<ul>
|
|
5837
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
6436
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
5838
6437
|
Default: 20, Range: 1 to 50. </li>
|
|
5839
|
-
<li><strong>offset (int):</strong> The index of the first item to return. <br />
|
|
6438
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
5840
6439
|
Use with limit to get the next set of items. <br />
|
|
5841
6440
|
Default: 0 (the first item). </li>
|
|
6441
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
6442
|
+
If specified, this argument overrides the limit and offset argument values
|
|
6443
|
+
and paging is automatically used to retrieve all available items up to the
|
|
6444
|
+
maximum number specified. <br />
|
|
6445
|
+
Default: None (disabled)</li>
|
|
5842
6446
|
</ul>
|
|
5843
6447
|
|
|
5844
6448
|
<h6 id="returns">Returns:</h6>
|
|
@@ -5856,7 +6460,7 @@ and the response contains error information.</li>
|
|
|
5856
6460
|
</ul>
|
|
5857
6461
|
|
|
5858
6462
|
<p><details>
|
|
5859
|
-
<summary>Sample Code</summary></p>
|
|
6463
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
5860
6464
|
|
|
5861
6465
|
<div class="pdoc-code codehilite">
|
|
5862
6466
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -5917,6 +6521,55 @@ and the response contains error information.</li>
|
|
|
5917
6521
|
</code></pre>
|
|
5918
6522
|
</div>
|
|
5919
6523
|
|
|
6524
|
+
<p></details>
|
|
6525
|
+
<details>
|
|
6526
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
6527
|
+
|
|
6528
|
+
<div class="pdoc-code codehilite">
|
|
6529
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
6530
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
6531
|
+
|
|
6532
|
+
<span class="k">try</span><span class="p">:</span>
|
|
6533
|
+
|
|
6534
|
+
<span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
|
|
6535
|
+
|
|
6536
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
6537
|
+
<span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> \
|
|
6538
|
+
<span class="p">[</span>
|
|
6539
|
+
<span class="s1">'user-read-email'</span><span class="p">,</span>
|
|
6540
|
+
<span class="s1">'user-library-read'</span><span class="p">,</span>
|
|
6541
|
+
<span class="s1">'user-library-modify'</span><span class="p">,</span>
|
|
6542
|
+
<span class="s1">'playlist-modify-private'</span><span class="p">,</span>
|
|
6543
|
+
<span class="s1">'playlist-modify-public'</span>
|
|
6544
|
+
<span class="p">]</span>
|
|
6545
|
+
|
|
6546
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
6547
|
+
<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>
|
|
6548
|
+
|
|
6549
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
6550
|
+
<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>
|
|
6551
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
6552
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
6553
|
+
|
|
6554
|
+
<span class="c1"># get a list of the playlists owned or followed by the current Spotify user.</span>
|
|
6555
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting ALL playlists for current user ...</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span>
|
|
6556
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">PlaylistPageSimplified</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetPlaylistFavorites</span><span class="p">(</span><span class="n">limitTotal</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
|
|
6557
|
+
|
|
6558
|
+
<span class="c1"># display paging details.</span>
|
|
6559
|
+
<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>
|
|
6560
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Playlists in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
6561
|
+
|
|
6562
|
+
<span class="c1"># display playlist details.</span>
|
|
6563
|
+
<span class="n">playlist</span><span class="p">:</span><span class="n">PlaylistSimplified</span>
|
|
6564
|
+
<span class="k">for</span> <span class="n">playlist</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
6565
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">playlist</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">playlist</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
6566
|
+
|
|
6567
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
6568
|
+
|
|
6569
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
6570
|
+
</code></pre>
|
|
6571
|
+
</div>
|
|
6572
|
+
|
|
5920
6573
|
<p></details></p>
|
|
5921
6574
|
</div>
|
|
5922
6575
|
|
|
@@ -5926,7 +6579,7 @@ and the response contains error information.</li>
|
|
|
5926
6579
|
<div class="attr function">
|
|
5927
6580
|
|
|
5928
6581
|
<span class="def">def</span>
|
|
5929
|
-
<span class="name">GetPlaylistsForUser</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">userId</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="return-annotation">) -> <span class="n"><a href="models/playlistpagesimplified.html#PlaylistPageSimplified">spotifywebapipython.models.playlistpagesimplified.PlaylistPageSimplified</a></span>:</span></span>
|
|
6582
|
+
<span class="name">GetPlaylistsForUser</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">userId</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">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/playlistpagesimplified.html#PlaylistPageSimplified">spotifywebapipython.models.playlistpagesimplified.PlaylistPageSimplified</a></span>:</span></span>
|
|
5930
6583
|
|
|
5931
6584
|
|
|
5932
6585
|
</div>
|
|
@@ -5941,11 +6594,16 @@ and the response contains error information.</li>
|
|
|
5941
6594
|
<ul>
|
|
5942
6595
|
<li><strong>userId (str):</strong> The user's Spotify user ID. <br />
|
|
5943
6596
|
Example: <code>smedjan</code></li>
|
|
5944
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
6597
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
5945
6598
|
Default: 20, Range: 1 to 50. </li>
|
|
5946
|
-
<li><strong>offset (int):</strong> The index of the first item to return. <br />
|
|
6599
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
5947
6600
|
Use with limit to get the next set of items. <br />
|
|
5948
6601
|
Default: 0 (the first item). </li>
|
|
6602
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
6603
|
+
If specified, this argument overrides the limit and offset argument values
|
|
6604
|
+
and paging is automatically used to retrieve all available items up to the
|
|
6605
|
+
maximum number specified. <br />
|
|
6606
|
+
Default: None (disabled)</li>
|
|
5949
6607
|
</ul>
|
|
5950
6608
|
|
|
5951
6609
|
<h6 id="returns">Returns:</h6>
|
|
@@ -5963,7 +6621,7 @@ and the response contains error information.</li>
|
|
|
5963
6621
|
</ul>
|
|
5964
6622
|
|
|
5965
6623
|
<p><details>
|
|
5966
|
-
<summary>Sample Code</summary></p>
|
|
6624
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
5967
6625
|
|
|
5968
6626
|
<div class="pdoc-code codehilite">
|
|
5969
6627
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -6025,6 +6683,56 @@ and the response contains error information.</li>
|
|
|
6025
6683
|
</code></pre>
|
|
6026
6684
|
</div>
|
|
6027
6685
|
|
|
6686
|
+
<p></details>
|
|
6687
|
+
<details>
|
|
6688
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
6689
|
+
|
|
6690
|
+
<div class="pdoc-code codehilite">
|
|
6691
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
6692
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
6693
|
+
|
|
6694
|
+
<span class="k">try</span><span class="p">:</span>
|
|
6695
|
+
|
|
6696
|
+
<span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
|
|
6697
|
+
|
|
6698
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
6699
|
+
<span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> \
|
|
6700
|
+
<span class="p">[</span>
|
|
6701
|
+
<span class="s1">'user-read-email'</span><span class="p">,</span>
|
|
6702
|
+
<span class="s1">'user-library-read'</span><span class="p">,</span>
|
|
6703
|
+
<span class="s1">'user-library-modify'</span><span class="p">,</span>
|
|
6704
|
+
<span class="s1">'playlist-modify-private'</span><span class="p">,</span>
|
|
6705
|
+
<span class="s1">'playlist-modify-public'</span>
|
|
6706
|
+
<span class="p">]</span>
|
|
6707
|
+
|
|
6708
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
6709
|
+
<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>
|
|
6710
|
+
|
|
6711
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
6712
|
+
<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>
|
|
6713
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
6714
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
6715
|
+
|
|
6716
|
+
<span class="c1"># get a list of the playlists owned or followed by a Spotify user.</span>
|
|
6717
|
+
<span class="n">userId</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'smedjan'</span>
|
|
6718
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting ALL playlists for user "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">userId</span><span class="p">)</span>
|
|
6719
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">PlaylistPageSimplified</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetPlaylistsForUser</span><span class="p">(</span><span class="n">userId</span><span class="p">,</span> <span class="n">limitTotal</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
|
|
6720
|
+
|
|
6721
|
+
<span class="c1"># display paging details.</span>
|
|
6722
|
+
<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>
|
|
6723
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Playlists in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
6724
|
+
|
|
6725
|
+
<span class="c1"># display playlist details.</span>
|
|
6726
|
+
<span class="n">playlist</span><span class="p">:</span><span class="n">PlaylistSimplified</span>
|
|
6727
|
+
<span class="k">for</span> <span class="n">playlist</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
6728
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">playlist</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">playlist</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
6729
|
+
|
|
6730
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
6731
|
+
|
|
6732
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
6733
|
+
</code></pre>
|
|
6734
|
+
</div>
|
|
6735
|
+
|
|
6028
6736
|
<p></details></p>
|
|
6029
6737
|
</div>
|
|
6030
6738
|
|
|
@@ -6147,7 +6855,7 @@ and the response contains error information.</li>
|
|
|
6147
6855
|
<div class="attr function">
|
|
6148
6856
|
|
|
6149
6857
|
<span class="def">def</span>
|
|
6150
|
-
<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="return-annotation">) -> <span class="n"><a href="models/episodepagesimplified.html#EpisodePageSimplified">spotifywebapipython.models.episodepagesimplified.EpisodePageSimplified</a></span>:</span></span>
|
|
6858
|
+
<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>
|
|
6151
6859
|
|
|
6152
6860
|
|
|
6153
6861
|
</div>
|
|
@@ -6162,7 +6870,7 @@ and the response contains error information.</li>
|
|
|
6162
6870
|
<ul>
|
|
6163
6871
|
<li><strong>showId (str):</strong> The Spotify ID for the show.
|
|
6164
6872
|
Example: <code>38bS44xjbVVZ3No3ByF1dJ</code></li>
|
|
6165
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
6873
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
6166
6874
|
Default: 20, Range: 1 to 50. </li>
|
|
6167
6875
|
<li><strong>offset (int):</strong> The index of the first item to return; use with limit to get the next set of items. <br />
|
|
6168
6876
|
Default: 0 (the first item). </li>
|
|
@@ -6173,6 +6881,11 @@ this parameter. <br />
|
|
|
6173
6881
|
Note: If neither market or user country are provided, the content is considered unavailable for the client. <br />
|
|
6174
6882
|
Users can view the country that is associated with their account in the account settings. <br />
|
|
6175
6883
|
Example: <code>ES</code></li>
|
|
6884
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
6885
|
+
If specified, this argument overrides the limit and offset argument values
|
|
6886
|
+
and paging is automatically used to retrieve all available items up to the
|
|
6887
|
+
maximum number specified. <br />
|
|
6888
|
+
Default: None (disabled)</li>
|
|
6176
6889
|
</ul>
|
|
6177
6890
|
|
|
6178
6891
|
<h6 id="returns">Returns:</h6>
|
|
@@ -6190,7 +6903,7 @@ and the response contains error information.</li>
|
|
|
6190
6903
|
</ul>
|
|
6191
6904
|
|
|
6192
6905
|
<p><details>
|
|
6193
|
-
<summary>Sample Code</summary></p>
|
|
6906
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
6194
6907
|
|
|
6195
6908
|
<div class="pdoc-code codehilite">
|
|
6196
6909
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -6258,16 +6971,68 @@ and the response contains error information.</li>
|
|
|
6258
6971
|
</code></pre>
|
|
6259
6972
|
</div>
|
|
6260
6973
|
|
|
6261
|
-
<p></details
|
|
6262
|
-
|
|
6974
|
+
<p></details>
|
|
6975
|
+
<details>
|
|
6976
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
6263
6977
|
|
|
6978
|
+
<div class="pdoc-code codehilite">
|
|
6979
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
6980
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
6264
6981
|
|
|
6265
|
-
|
|
6266
|
-
|
|
6267
|
-
|
|
6268
|
-
|
|
6269
|
-
|
|
6270
|
-
|
|
6982
|
+
<span class="k">try</span><span class="p">:</span>
|
|
6983
|
+
|
|
6984
|
+
<span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
|
|
6985
|
+
|
|
6986
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
6987
|
+
<span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> \
|
|
6988
|
+
<span class="p">[</span>
|
|
6989
|
+
<span class="s1">'playlist-modify-private'</span><span class="p">,</span>
|
|
6990
|
+
<span class="s1">'playlist-modify-public'</span><span class="p">,</span>
|
|
6991
|
+
<span class="s1">'ugc-image-upload'</span><span class="p">,</span>
|
|
6992
|
+
<span class="s1">'user-library-modify'</span><span class="p">,</span>
|
|
6993
|
+
<span class="s1">'user-library-read'</span><span class="p">,</span>
|
|
6994
|
+
<span class="s1">'user-read-email'</span><span class="p">,</span>
|
|
6995
|
+
<span class="s1">'user-read-playback-position'</span><span class="p">,</span>
|
|
6996
|
+
<span class="p">]</span>
|
|
6997
|
+
|
|
6998
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
6999
|
+
<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>
|
|
7000
|
+
|
|
7001
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
7002
|
+
<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>
|
|
7003
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
7004
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
7005
|
+
|
|
7006
|
+
<span class="c1"># get Spotify catalog information about a show's episodes.</span>
|
|
7007
|
+
<span class="n">showId</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'6E1u3kxII5CbbFR4VObax4'</span>
|
|
7008
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting list of ALL episodes for show id "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">showId</span><span class="p">)</span>
|
|
7009
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">EpisodePageSimplified</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">showId</span><span class="p">,</span> <span class="n">limitTotal</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
|
|
7010
|
+
|
|
7011
|
+
<span class="c1"># display paging details.</span>
|
|
7012
|
+
<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>
|
|
7013
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Episodes in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
7014
|
+
|
|
7015
|
+
<span class="c1"># display episode details.</span>
|
|
7016
|
+
<span class="n">episodeSimplified</span><span class="p">:</span><span class="n">EpisodePageSimplified</span>
|
|
7017
|
+
<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>
|
|
7018
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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>
|
|
7019
|
+
|
|
7020
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
7021
|
+
|
|
7022
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
7023
|
+
</code></pre>
|
|
7024
|
+
</div>
|
|
7025
|
+
|
|
7026
|
+
<p></details></p>
|
|
7027
|
+
</div>
|
|
7028
|
+
|
|
7029
|
+
|
|
7030
|
+
</div>
|
|
7031
|
+
<div id="SpotifyClient.GetShowFavorites" class="classattr">
|
|
7032
|
+
<div class="attr function">
|
|
7033
|
+
|
|
7034
|
+
<span class="def">def</span>
|
|
7035
|
+
<span class="name">GetShowFavorites</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</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">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/showpagesaved.html#ShowPageSaved">spotifywebapipython.models.showpagesaved.ShowPageSaved</a></span>:</span></span>
|
|
6271
7036
|
|
|
6272
7037
|
|
|
6273
7038
|
</div>
|
|
@@ -6280,11 +7045,16 @@ and the response contains error information.</li>
|
|
|
6280
7045
|
<h6 id="arguments">Arguments:</h6>
|
|
6281
7046
|
|
|
6282
7047
|
<ul>
|
|
6283
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
7048
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
6284
7049
|
Default: 20, Range: 1 to 50. </li>
|
|
6285
|
-
<li><strong>offset (int):</strong> The index of the first item to return. <br />
|
|
7050
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
6286
7051
|
Use with limit to get the next set of items. <br />
|
|
6287
7052
|
Default: 0 (the first item). </li>
|
|
7053
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
7054
|
+
If specified, this argument overrides the limit and offset argument values
|
|
7055
|
+
and paging is automatically used to retrieve all available items up to the
|
|
7056
|
+
maximum number specified. <br />
|
|
7057
|
+
Default: None (disabled)</li>
|
|
6288
7058
|
</ul>
|
|
6289
7059
|
|
|
6290
7060
|
<h6 id="returns">Returns:</h6>
|
|
@@ -6302,7 +7072,7 @@ and the response contains error information.</li>
|
|
|
6302
7072
|
</ul>
|
|
6303
7073
|
|
|
6304
7074
|
<p><details>
|
|
6305
|
-
<summary>Sample Code</summary></p>
|
|
7075
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
6306
7076
|
|
|
6307
7077
|
<div class="pdoc-code codehilite">
|
|
6308
7078
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -6360,6 +7130,48 @@ and the response contains error information.</li>
|
|
|
6360
7130
|
</code></pre>
|
|
6361
7131
|
</div>
|
|
6362
7132
|
|
|
7133
|
+
<p></details>
|
|
7134
|
+
<details>
|
|
7135
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
7136
|
+
|
|
7137
|
+
<div class="pdoc-code codehilite">
|
|
7138
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
7139
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
7140
|
+
|
|
7141
|
+
<span class="k">try</span><span class="p">:</span>
|
|
7142
|
+
|
|
7143
|
+
<span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
|
|
7144
|
+
|
|
7145
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
7146
|
+
<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">'user-read-email'</span><span class="p">,</span><span class="s1">'user-library-read'</span><span class="p">]</span>
|
|
7147
|
+
|
|
7148
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
7149
|
+
<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>
|
|
7150
|
+
|
|
7151
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
7152
|
+
<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>
|
|
7153
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
7154
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
7155
|
+
|
|
7156
|
+
<span class="c1"># get a list of the shows saved in the current Spotify user's 'Your Library'.</span>
|
|
7157
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting ALL saved shows for current user ...</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span>
|
|
7158
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">ShowPageSaved</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetShowFavorites</span><span class="p">(</span><span class="n">limitTotal</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
|
|
7159
|
+
|
|
7160
|
+
<span class="c1"># display paging details.</span>
|
|
7161
|
+
<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>
|
|
7162
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Shows in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
7163
|
+
|
|
7164
|
+
<span class="c1"># display show details.</span>
|
|
7165
|
+
<span class="n">showSaved</span><span class="p">:</span><span class="n">ShowSaved</span>
|
|
7166
|
+
<span class="k">for</span> <span class="n">showSaved</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
7167
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">showSaved</span><span class="o">.</span><span class="n">Show</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">showSaved</span><span class="o">.</span><span class="n">Show</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
7168
|
+
|
|
7169
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
7170
|
+
|
|
7171
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
7172
|
+
</code></pre>
|
|
7173
|
+
</div>
|
|
7174
|
+
|
|
6363
7175
|
<p></details></p>
|
|
6364
7176
|
</div>
|
|
6365
7177
|
|
|
@@ -6610,7 +7422,7 @@ and the response contains error information.</li>
|
|
|
6610
7422
|
<div class="attr function">
|
|
6611
7423
|
|
|
6612
7424
|
<span class="def">def</span>
|
|
6613
|
-
<span class="name">GetTrackFavorites</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</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="return-annotation">) -> <span class="n"><a href="models/trackpagesaved.html#TrackPageSaved">spotifywebapipython.models.trackpagesaved.TrackPageSaved</a></span>:</span></span>
|
|
7425
|
+
<span class="name">GetTrackFavorites</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</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/trackpagesaved.html#TrackPageSaved">spotifywebapipython.models.trackpagesaved.TrackPageSaved</a></span>:</span></span>
|
|
6614
7426
|
|
|
6615
7427
|
|
|
6616
7428
|
</div>
|
|
@@ -6623,9 +7435,9 @@ and the response contains error information.</li>
|
|
|
6623
7435
|
<h6 id="arguments">Arguments:</h6>
|
|
6624
7436
|
|
|
6625
7437
|
<ul>
|
|
6626
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
7438
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
6627
7439
|
Default: 20, Range: 1 to 50. </li>
|
|
6628
|
-
<li><strong>offset (int):</strong> The index of the first item to return. <br />
|
|
7440
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
6629
7441
|
Use with limit to get the next set of items. <br />
|
|
6630
7442
|
Default: 0 (the first item). </li>
|
|
6631
7443
|
<li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
|
|
@@ -6635,6 +7447,11 @@ this parameter. <br />
|
|
|
6635
7447
|
Note: If neither market or user country are provided, the content is considered unavailable for the client. <br />
|
|
6636
7448
|
Users can view the country that is associated with their account in the account settings. <br />
|
|
6637
7449
|
Example: <code>ES</code></li>
|
|
7450
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
7451
|
+
If specified, this argument overrides the limit and offset argument values
|
|
7452
|
+
and paging is automatically used to retrieve all available items up to the
|
|
7453
|
+
maximum number specified. <br />
|
|
7454
|
+
Default: None (disabled)</li>
|
|
6638
7455
|
</ul>
|
|
6639
7456
|
|
|
6640
7457
|
<h6 id="returns">Returns:</h6>
|
|
@@ -6652,7 +7469,7 @@ and the response contains error information.</li>
|
|
|
6652
7469
|
</ul>
|
|
6653
7470
|
|
|
6654
7471
|
<p><details>
|
|
6655
|
-
<summary>Sample Code</summary></p>
|
|
7472
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
6656
7473
|
|
|
6657
7474
|
<div class="pdoc-code codehilite">
|
|
6658
7475
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -6710,6 +7527,48 @@ and the response contains error information.</li>
|
|
|
6710
7527
|
</code></pre>
|
|
6711
7528
|
</div>
|
|
6712
7529
|
|
|
7530
|
+
<p></details>
|
|
7531
|
+
<details>
|
|
7532
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
7533
|
+
|
|
7534
|
+
<div class="pdoc-code codehilite">
|
|
7535
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
7536
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
7537
|
+
|
|
7538
|
+
<span class="k">try</span><span class="p">:</span>
|
|
7539
|
+
|
|
7540
|
+
<span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
|
|
7541
|
+
|
|
7542
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
7543
|
+
<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">'user-read-email'</span><span class="p">,</span><span class="s1">'user-library-read'</span><span class="p">]</span>
|
|
7544
|
+
|
|
7545
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
7546
|
+
<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>
|
|
7547
|
+
|
|
7548
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
7549
|
+
<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>
|
|
7550
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
7551
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
7552
|
+
|
|
7553
|
+
<span class="c1"># get a list of the tracks saved in the current Spotify user's 'Your Library'.</span>
|
|
7554
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting ALL saved tracks for current user ...</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span>
|
|
7555
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">TrackPageSaved</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetTrackFavorites</span><span class="p">(</span><span class="n">limitTotal</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
|
|
7556
|
+
|
|
7557
|
+
<span class="c1"># display paging details.</span>
|
|
7558
|
+
<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>
|
|
7559
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Tracks in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
7560
|
+
|
|
7561
|
+
<span class="c1"># display track details.</span>
|
|
7562
|
+
<span class="n">trackSaved</span><span class="p">:</span><span class="n">TrackSaved</span>
|
|
7563
|
+
<span class="k">for</span> <span class="n">trackSaved</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
7564
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">trackSaved</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">trackSaved</span><span class="o">.</span><span class="n">Track</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
7565
|
+
|
|
7566
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
7567
|
+
|
|
7568
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
7569
|
+
</code></pre>
|
|
7570
|
+
</div>
|
|
7571
|
+
|
|
6713
7572
|
<p></details></p>
|
|
6714
7573
|
</div>
|
|
6715
7574
|
|
|
@@ -6899,7 +7758,7 @@ minX / maxX / and targetX argument values.</p>
|
|
|
6899
7758
|
<h6 id="arguments">Arguments:</h6>
|
|
6900
7759
|
|
|
6901
7760
|
<ul>
|
|
6902
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
7761
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
6903
7762
|
Default: 20, Range: 1 to 50. </li>
|
|
6904
7763
|
<li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
|
|
6905
7764
|
is available in that market will be returned. If a valid user access token is specified
|
|
@@ -7319,7 +8178,7 @@ and the response contains error information.</li>
|
|
|
7319
8178
|
<div class="attr function">
|
|
7320
8179
|
|
|
7321
8180
|
<span class="def">def</span>
|
|
7322
|
-
<span class="name">GetUsersTopArtists</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">timeRange</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s1">'medium_term'</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="return-annotation">) -> <span class="n"><a href="models/artistpage.html#ArtistPage">spotifywebapipython.models.artistpage.ArtistPage</a></span>:</span></span>
|
|
8181
|
+
<span class="name">GetUsersTopArtists</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">timeRange</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s1">'medium_term'</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">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/artistpage.html#ArtistPage">spotifywebapipython.models.artistpage.ArtistPage</a></span>:</span></span>
|
|
7323
8182
|
|
|
7324
8183
|
|
|
7325
8184
|
</div>
|
|
@@ -7339,11 +8198,16 @@ Valid values: <br />
|
|
|
7339
8198
|
Default: <code>medium_term</code> <br />
|
|
7340
8199
|
Example: <code>long_term</code></li>
|
|
7341
8200
|
</ul></li>
|
|
7342
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
8201
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
7343
8202
|
Default: 20, Range: 1 to 50. </li>
|
|
7344
|
-
<li><strong>offset (int):</strong> The index of the first item to return. <br />
|
|
8203
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
7345
8204
|
Use with limit to get the next set of items. <br />
|
|
7346
8205
|
Default: 0 (the first item), Range: 0 to 1000</li>
|
|
8206
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
8207
|
+
If specified, this argument overrides the limit and offset argument values
|
|
8208
|
+
and paging is automatically used to retrieve all available items up to the
|
|
8209
|
+
maximum number specified. <br />
|
|
8210
|
+
Default: None (disabled)</li>
|
|
7347
8211
|
</ul>
|
|
7348
8212
|
|
|
7349
8213
|
<h6 id="returns">Returns:</h6>
|
|
@@ -7361,7 +8225,7 @@ and the response contains error information.</li>
|
|
|
7361
8225
|
</ul>
|
|
7362
8226
|
|
|
7363
8227
|
<p><details>
|
|
7364
|
-
<summary>Sample Code</summary></p>
|
|
8228
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
7365
8229
|
|
|
7366
8230
|
<div class="pdoc-code codehilite">
|
|
7367
8231
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -7420,6 +8284,53 @@ and the response contains error information.</li>
|
|
|
7420
8284
|
</code></pre>
|
|
7421
8285
|
</div>
|
|
7422
8286
|
|
|
8287
|
+
<p></details>
|
|
8288
|
+
<details>
|
|
8289
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
8290
|
+
|
|
8291
|
+
<div class="pdoc-code codehilite">
|
|
8292
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
8293
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
8294
|
+
|
|
8295
|
+
<span class="k">try</span><span class="p">:</span>
|
|
8296
|
+
|
|
8297
|
+
<span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
|
|
8298
|
+
|
|
8299
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
8300
|
+
<span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> \
|
|
8301
|
+
<span class="p">[</span>
|
|
8302
|
+
<span class="s1">'user-read-email'</span><span class="p">,</span>
|
|
8303
|
+
<span class="s1">'user-top-read'</span><span class="p">,</span>
|
|
8304
|
+
<span class="p">]</span>
|
|
8305
|
+
|
|
8306
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
8307
|
+
<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>
|
|
8308
|
+
|
|
8309
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
8310
|
+
<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>
|
|
8311
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
8312
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
8313
|
+
|
|
8314
|
+
<span class="c1"># get current user's top artists based on calculated affinity.</span>
|
|
8315
|
+
<span class="n">affinity</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'long_term'</span>
|
|
8316
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting ALL current user top artists for "</span><span class="si">%s</span><span class="s1">" affinity ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">affinity</span><span class="p">)</span>
|
|
8317
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">ArtistPage</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetUsersTopArtists</span><span class="p">(</span><span class="n">affinity</span><span class="p">,</span> <span class="n">limitTotal</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
|
|
8318
|
+
|
|
8319
|
+
<span class="c1"># display paging details.</span>
|
|
8320
|
+
<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>
|
|
8321
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Artists in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
8322
|
+
|
|
8323
|
+
<span class="c1"># display artist details.</span>
|
|
8324
|
+
<span class="n">artist</span><span class="p">:</span><span class="n">Artist</span>
|
|
8325
|
+
<span class="k">for</span> <span class="n">artist</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
8326
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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>
|
|
8327
|
+
|
|
8328
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
8329
|
+
|
|
8330
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
8331
|
+
</code></pre>
|
|
8332
|
+
</div>
|
|
8333
|
+
|
|
7423
8334
|
<p></details></p>
|
|
7424
8335
|
</div>
|
|
7425
8336
|
|
|
@@ -7429,7 +8340,7 @@ and the response contains error information.</li>
|
|
|
7429
8340
|
<div class="attr function">
|
|
7430
8341
|
|
|
7431
8342
|
<span class="def">def</span>
|
|
7432
|
-
<span class="name">GetUsersTopTracks</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">timeRange</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s1">'medium_term'</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="return-annotation">) -> <span class="n"><a href="models/trackpage.html#TrackPage">spotifywebapipython.models.trackpage.TrackPage</a></span>:</span></span>
|
|
8343
|
+
<span class="name">GetUsersTopTracks</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">timeRange</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s1">'medium_term'</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">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/trackpage.html#TrackPage">spotifywebapipython.models.trackpage.TrackPage</a></span>:</span></span>
|
|
7433
8344
|
|
|
7434
8345
|
|
|
7435
8346
|
</div>
|
|
@@ -7449,11 +8360,16 @@ Valid values: <br />
|
|
|
7449
8360
|
Default: <code>medium_term</code> <br />
|
|
7450
8361
|
Example: <code>long_term</code></li>
|
|
7451
8362
|
</ul></li>
|
|
7452
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
8363
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
7453
8364
|
Default: 20, Range: 1 to 50. </li>
|
|
7454
|
-
<li><strong>offset (int):</strong> The index of the first item to return. <br />
|
|
8365
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
7455
8366
|
Use with limit to get the next set of items. <br />
|
|
7456
|
-
Default: 0 (the first item)
|
|
8367
|
+
Default: 0 (the first item). </li>
|
|
8368
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
8369
|
+
If specified, this argument overrides the limit and offset argument values
|
|
8370
|
+
and paging is automatically used to retrieve all available items up to the
|
|
8371
|
+
maximum number specified. <br />
|
|
8372
|
+
Default: None (disabled)</li>
|
|
7457
8373
|
</ul>
|
|
7458
8374
|
|
|
7459
8375
|
<h6 id="returns">Returns:</h6>
|
|
@@ -7471,7 +8387,7 @@ and the response contains error information.</li>
|
|
|
7471
8387
|
</ul>
|
|
7472
8388
|
|
|
7473
8389
|
<p><details>
|
|
7474
|
-
<summary>Sample Code</summary></p>
|
|
8390
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
7475
8391
|
|
|
7476
8392
|
<div class="pdoc-code codehilite">
|
|
7477
8393
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -7530,6 +8446,53 @@ and the response contains error information.</li>
|
|
|
7530
8446
|
</code></pre>
|
|
7531
8447
|
</div>
|
|
7532
8448
|
|
|
8449
|
+
<p></details>
|
|
8450
|
+
<details>
|
|
8451
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
8452
|
+
|
|
8453
|
+
<div class="pdoc-code codehilite">
|
|
8454
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
8455
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
8456
|
+
|
|
8457
|
+
<span class="k">try</span><span class="p">:</span>
|
|
8458
|
+
|
|
8459
|
+
<span class="c1"># this sample requires an authorization token, as it requires security scope to accesses user data.</span>
|
|
8460
|
+
|
|
8461
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
8462
|
+
<span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> \
|
|
8463
|
+
<span class="p">[</span>
|
|
8464
|
+
<span class="s1">'user-read-email'</span><span class="p">,</span>
|
|
8465
|
+
<span class="s1">'user-top-read'</span><span class="p">,</span>
|
|
8466
|
+
<span class="p">]</span>
|
|
8467
|
+
|
|
8468
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
8469
|
+
<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>
|
|
8470
|
+
|
|
8471
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
8472
|
+
<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>
|
|
8473
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
8474
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
8475
|
+
|
|
8476
|
+
<span class="c1"># get current user's top tracks based on calculated affinity.</span>
|
|
8477
|
+
<span class="n">affinity</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'long_term'</span>
|
|
8478
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Getting ALL current user top tracks for "</span><span class="si">%s</span><span class="s1">" affinity ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">affinity</span><span class="p">)</span>
|
|
8479
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">TrackPage</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">GetUsersTopTracks</span><span class="p">(</span><span class="n">affinity</span><span class="p">,</span> <span class="n">limitTotal</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
|
|
8480
|
+
|
|
8481
|
+
<span class="c1"># display paging details.</span>
|
|
8482
|
+
<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>
|
|
8483
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Tracks in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
8484
|
+
|
|
8485
|
+
<span class="c1"># display track details.</span>
|
|
8486
|
+
<span class="n">track</span><span class="p">:</span><span class="n">Track</span>
|
|
8487
|
+
<span class="k">for</span> <span class="n">track</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
8488
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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>
|
|
8489
|
+
|
|
8490
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
8491
|
+
|
|
8492
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
8493
|
+
</code></pre>
|
|
8494
|
+
</div>
|
|
8495
|
+
|
|
7533
8496
|
<p></details></p>
|
|
7534
8497
|
</div>
|
|
7535
8498
|
|
|
@@ -9843,19 +10806,17 @@ in the Spotify music catalog.</p>
|
|
|
9843
10806
|
|
|
9844
10807
|
|
|
9845
10808
|
</div>
|
|
9846
|
-
<div id="SpotifyClient.
|
|
10809
|
+
<div id="SpotifyClient.SearchAlbums" class="classattr">
|
|
9847
10810
|
<div class="attr function">
|
|
9848
10811
|
|
|
9849
10812
|
<span class="def">def</span>
|
|
9850
|
-
<span class="name">
|
|
10813
|
+
<span class="name">SearchAlbums</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">criteria</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">includeExternal</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/searchresponse.html#SearchResponse">spotifywebapipython.models.searchresponse.SearchResponse</a></span>:</span></span>
|
|
9851
10814
|
|
|
9852
10815
|
|
|
9853
10816
|
</div>
|
|
9854
|
-
<a class="headerlink" href="#SpotifyClient.
|
|
10817
|
+
<a class="headerlink" href="#SpotifyClient.SearchAlbums"></a>
|
|
9855
10818
|
|
|
9856
|
-
<div class="docstring"><p>Get Spotify catalog information about
|
|
9857
|
-
or audiobooks that match a keyword string. Audiobooks are only available within the US, UK,
|
|
9858
|
-
Canada, Ireland, New Zealand and Australia markets.</p>
|
|
10819
|
+
<div class="docstring"><p>Get Spotify catalog information about Albums that match a keyword string. </p>
|
|
9859
10820
|
|
|
9860
10821
|
<h6 id="arguments">Arguments:</h6>
|
|
9861
10822
|
|
|
@@ -9872,15 +10833,11 @@ The isrc and track filters can be used while searching tracks. <br />
|
|
|
9872
10833
|
The upc, tag:new and tag:hipster filters can only be used while searching albums.
|
|
9873
10834
|
The tag:new filter will return albums released in the past two weeks and tag:hipster
|
|
9874
10835
|
can be used to return only albums with the lowest 10% popularity.</li>
|
|
9875
|
-
<li><strong>
|
|
9876
|
-
Search results include hits from all the specified item types. <br />
|
|
9877
|
-
For example: "album,track" returns both albums and tracks matching criteria argument. <br />
|
|
9878
|
-
Allowed values: "album", "artist", "playlist", "track", "show", "episode", "audiobook".</li>
|
|
9879
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
10836
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
9880
10837
|
Default: 20, Range: 1 to 50. </li>
|
|
9881
|
-
<li><strong>offset (int):</strong> The index of the first item to return. <br />
|
|
10838
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
9882
10839
|
Use with limit to get the next set of items. <br />
|
|
9883
|
-
Default: 0 (the first item)
|
|
10840
|
+
Default: 0 (the first item). Range: 0 to 1000. </li>
|
|
9884
10841
|
<li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
|
|
9885
10842
|
is available in that market will be returned. If a valid user access token is specified
|
|
9886
10843
|
in the request header, the country associated with the user account will take priority over
|
|
@@ -9892,6 +10849,11 @@ Example: <code>ES</code></li>
|
|
|
9892
10849
|
marks the content as playable in the response. By default externally hosted audio content is marked
|
|
9893
10850
|
as unplayable in the response. <br />
|
|
9894
10851
|
Allowed values: "audio"</li>
|
|
10852
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
10853
|
+
If specified, this argument overrides the limit and offset argument values
|
|
10854
|
+
and paging is automatically used to retrieve all available items up to the
|
|
10855
|
+
maximum number specified. <br />
|
|
10856
|
+
Default: None (disabled)</li>
|
|
9895
10857
|
</ul>
|
|
9896
10858
|
|
|
9897
10859
|
<h6 id="returns">Returns:</h6>
|
|
@@ -9908,11 +10870,11 @@ and the response contains error information.</li>
|
|
|
9908
10870
|
<li><strong>SpotifApiError:</strong> If the method fails for any other reason.</li>
|
|
9909
10871
|
</ul>
|
|
9910
10872
|
|
|
9911
|
-
<p>Note
|
|
9912
|
-
|
|
10873
|
+
<p>Note that Spotify Web API automatically limits you to 1,000 max entries per type that can
|
|
10874
|
+
be returned with a search.</p>
|
|
9913
10875
|
|
|
9914
10876
|
<p><details>
|
|
9915
|
-
<summary>Sample Code -
|
|
10877
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
9916
10878
|
|
|
9917
10879
|
<div class="pdoc-code codehilite">
|
|
9918
10880
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -9931,11 +10893,10 @@ entries that you can return with a search.</p>
|
|
|
9931
10893
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
9932
10894
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
9933
10895
|
|
|
9934
|
-
<span class="c1"># get Spotify catalog information about
|
|
10896
|
+
<span class="c1"># get Spotify catalog information about Albums that match a keyword string.</span>
|
|
9935
10897
|
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'Welcome to the New'</span>
|
|
9936
|
-
<span class="
|
|
9937
|
-
<span class="
|
|
9938
|
-
<span class="n">searchResponse</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">Search</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">criteriaType</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="mi">50</span><span class="p">)</span>
|
|
10898
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Searching for Albums - criteria: "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">criteria</span><span class="p">)</span>
|
|
10899
|
+
<span class="n">searchResponse</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchAlbums</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="mi">25</span><span class="p">)</span>
|
|
9939
10900
|
|
|
9940
10901
|
<span class="c1"># display search response details.</span>
|
|
9941
10902
|
<span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">searchResponse</span><span class="p">))</span>
|
|
@@ -9959,10 +10920,15 @@ entries that you can return with a search.</p>
|
|
|
9959
10920
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'Albums in this page of results:'</span><span class="p">)</span>
|
|
9960
10921
|
|
|
9961
10922
|
<span class="c1"># display album details.</span>
|
|
9962
|
-
<span class="n">
|
|
9963
|
-
<span class="k">for</span> <span class="n">
|
|
9964
|
-
|
|
9965
|
-
|
|
10923
|
+
<span class="n">album</span><span class="p">:</span><span class="n">AlbumSimplified</span>
|
|
10924
|
+
<span class="k">for</span> <span class="n">album</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
10925
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">album</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">album</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
10926
|
+
|
|
10927
|
+
<span class="c1"># for testing - don't return 1000 results! </span>
|
|
10928
|
+
<span class="c1"># comment the following 3 lines of code if you want ALL results.</span>
|
|
10929
|
+
<span class="k">if</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="o">>=</span> <span class="mi">75</span><span class="p">:</span>
|
|
10930
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">*** Stopping paging loop after 75 entries for testing.'</span><span class="p">)</span>
|
|
10931
|
+
<span class="k">break</span>
|
|
9966
10932
|
|
|
9967
10933
|
<span class="c1"># anymore page results?</span>
|
|
9968
10934
|
<span class="k">if</span> <span class="p">(</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> <span class="ow">or</span> <span class="p">((</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="o">></span> <span class="n">pageObjInitialTotal</span><span class="p">):</span>
|
|
@@ -9971,7 +10937,7 @@ entries that you can return with a search.</p>
|
|
|
9971
10937
|
<span class="k">else</span><span class="p">:</span>
|
|
9972
10938
|
<span class="c1"># yes - retrieve the next page of results.</span>
|
|
9973
10939
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</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">'</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>
|
|
9974
|
-
<span class="n">searchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">
|
|
10940
|
+
<span class="n">searchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchAlbums</span><span class="p">(</span><span class="n">criteria</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>
|
|
9975
10941
|
|
|
9976
10942
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
9977
10943
|
|
|
@@ -9979,10 +10945,9 @@ entries that you can return with a search.</p>
|
|
|
9979
10945
|
</code></pre>
|
|
9980
10946
|
</div>
|
|
9981
10947
|
|
|
9982
|
-
<p></details
|
|
9983
|
-
|
|
9984
|
-
<p
|
|
9985
|
-
<summary>Sample Code - Search Artists</summary></p>
|
|
10948
|
+
<p></details>
|
|
10949
|
+
<details>
|
|
10950
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
9986
10951
|
|
|
9987
10952
|
<div class="pdoc-code codehilite">
|
|
9988
10953
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -10001,47 +10966,20 @@ entries that you can return with a search.</p>
|
|
|
10001
10966
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
10002
10967
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
10003
10968
|
|
|
10004
|
-
<span class="c1"># get Spotify catalog information about
|
|
10005
|
-
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'
|
|
10006
|
-
<span class="
|
|
10007
|
-
<span class="
|
|
10008
|
-
<span class="n">searchResponse</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">Search</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">criteriaType</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="mi">50</span><span class="p">)</span>
|
|
10009
|
-
|
|
10010
|
-
<span class="c1"># display search response details.</span>
|
|
10011
|
-
<span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">searchResponse</span><span class="p">))</span>
|
|
10012
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span>
|
|
10013
|
-
|
|
10014
|
-
<span class="c1"># save initial search response total, as search next page response total </span>
|
|
10015
|
-
<span class="c1"># will change with each page retrieved. this is odd behavior, as it seems</span>
|
|
10016
|
-
<span class="c1"># that the spotify web api is returning a new result set each time rather </span>
|
|
10017
|
-
<span class="c1"># than working off of a cached result set.</span>
|
|
10018
|
-
<span class="n">pageObjInitialTotal</span><span class="p">:</span><span class="nb">int</span> <span class="o">=</span> <span class="n">searchResponse</span><span class="o">.</span><span class="n">Artists</span><span class="o">.</span><span class="n">Total</span>
|
|
10019
|
-
|
|
10020
|
-
<span class="c1"># handle pagination, as spotify limits us to a set # of items returned per response.</span>
|
|
10021
|
-
<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
|
|
10022
|
-
|
|
10023
|
-
<span class="c1"># only display album results for this example.</span>
|
|
10024
|
-
<span class="n">pageObj</span><span class="p">:</span><span class="n">ArtistPage</span> <span class="o">=</span> <span class="n">searchResponse</span><span class="o">.</span><span class="n">Artists</span>
|
|
10025
|
-
|
|
10026
|
-
<span class="c1"># display paging details.</span>
|
|
10027
|
-
<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>
|
|
10028
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span>
|
|
10029
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">'Artists in this page of results:'</span><span class="p">)</span>
|
|
10030
|
-
|
|
10031
|
-
<span class="c1"># display album details.</span>
|
|
10032
|
-
<span class="n">artist</span><span class="p">:</span><span class="n">Artist</span>
|
|
10033
|
-
<span class="k">for</span> <span class="n">artist</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
10969
|
+
<span class="c1"># get Spotify catalog information about Albums that match a keyword string.</span>
|
|
10970
|
+
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'Welcome to the New'</span>
|
|
10971
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Searching for Albums - criteria: "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">criteria</span><span class="p">)</span>
|
|
10972
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchAlbums</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">limitTotal</span><span class="o">=</span><span class="mi">75</span><span class="p">)</span>
|
|
10034
10973
|
|
|
10035
|
-
|
|
10974
|
+
<span class="c1"># display paging details.</span>
|
|
10975
|
+
<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>
|
|
10976
|
+
<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="o">.</span><span class="n">Albums</span><span class="p">))</span>
|
|
10977
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Albums in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Albums</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
10036
10978
|
|
|
10037
|
-
|
|
10038
|
-
|
|
10039
|
-
|
|
10040
|
-
|
|
10041
|
-
<span class="k">else</span><span class="p">:</span>
|
|
10042
|
-
<span class="c1"># yes - retrieve the next page of results.</span>
|
|
10043
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">'</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">'</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>
|
|
10044
|
-
<span class="n">searchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">Search</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">criteriaType</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>
|
|
10979
|
+
<span class="c1"># display album details.</span>
|
|
10980
|
+
<span class="n">album</span><span class="p">:</span><span class="n">AlbumSimplified</span>
|
|
10981
|
+
<span class="k">for</span> <span class="n">album</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Albums</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
10982
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">album</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">album</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
10045
10983
|
|
|
10046
10984
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
10047
10985
|
|
|
@@ -10050,39 +10988,295 @@ entries that you can return with a search.</p>
|
|
|
10050
10988
|
</div>
|
|
10051
10989
|
|
|
10052
10990
|
<p></details></p>
|
|
10991
|
+
</div>
|
|
10053
10992
|
|
|
10054
|
-
<p><details>
|
|
10055
|
-
<summary>Sample Code - Search Audiobooks</summary></p>
|
|
10056
|
-
|
|
10057
|
-
<div class="pdoc-code codehilite">
|
|
10058
|
-
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
10059
|
-
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
10060
10993
|
|
|
10061
|
-
|
|
10994
|
+
</div>
|
|
10995
|
+
<div id="SpotifyClient.SearchArtists" class="classattr">
|
|
10996
|
+
<div class="attr function">
|
|
10997
|
+
|
|
10998
|
+
<span class="def">def</span>
|
|
10999
|
+
<span class="name">SearchArtists</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">criteria</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">includeExternal</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/searchresponse.html#SearchResponse">spotifywebapipython.models.searchresponse.SearchResponse</a></span>:</span></span>
|
|
10062
11000
|
|
|
10063
|
-
|
|
10064
|
-
|
|
10065
|
-
<
|
|
10066
|
-
|
|
10067
|
-
|
|
10068
|
-
<span class="s1">'user-library-modify'</span><span class="p">,</span>
|
|
10069
|
-
<span class="s1">'playlist-modify-private'</span><span class="p">,</span>
|
|
10070
|
-
<span class="s1">'playlist-modify-public'</span>
|
|
10071
|
-
<span class="p">]</span>
|
|
11001
|
+
|
|
11002
|
+
</div>
|
|
11003
|
+
<a class="headerlink" href="#SpotifyClient.SearchArtists"></a>
|
|
11004
|
+
|
|
11005
|
+
<div class="docstring"><p>Get Spotify catalog information about Artists that match a keyword string. </p>
|
|
10072
11006
|
|
|
10073
|
-
|
|
10074
|
-
<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>
|
|
11007
|
+
<h6 id="arguments">Arguments:</h6>
|
|
10075
11008
|
|
|
10076
|
-
|
|
10077
|
-
|
|
11009
|
+
<ul>
|
|
11010
|
+
<li><strong>criteria (str):</strong> Your search query. <br />
|
|
11011
|
+
You can narrow down your search using field filters. <br />
|
|
11012
|
+
The available filters are album, artist, track, year, upc, tag:hipster, tag:new,
|
|
11013
|
+
isrc, and genre. Each field filter only applies to certain result types. <br />
|
|
11014
|
+
The artist and year filters can be used while searching albums, artists and tracks.
|
|
11015
|
+
You can filter on a single year or a range (e.g. 1955-1960). <br />
|
|
11016
|
+
The album filter can be used while searching albums and tracks. <br />
|
|
11017
|
+
The genre filter can be used while searching artists and tracks. <br />
|
|
11018
|
+
The isrc and track filters can be used while searching tracks. <br />
|
|
11019
|
+
The upc, tag:new and tag:hipster filters can only be used while searching albums.
|
|
11020
|
+
The tag:new filter will return albums released in the past two weeks and tag:hipster
|
|
11021
|
+
can be used to return only albums with the lowest 10% popularity.</li>
|
|
11022
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
11023
|
+
Default: 20, Range: 1 to 50. </li>
|
|
11024
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
11025
|
+
Use with limit to get the next set of items. <br />
|
|
11026
|
+
Default: 0 (the first item). Range: 0 to 1000. </li>
|
|
11027
|
+
<li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
|
|
11028
|
+
is available in that market will be returned. If a valid user access token is specified
|
|
11029
|
+
in the request header, the country associated with the user account will take priority over
|
|
11030
|
+
this parameter. <br />
|
|
11031
|
+
Note: If neither market or user country are provided, the content is considered unavailable for the client. <br />
|
|
11032
|
+
Users can view the country that is associated with their account in the account settings. <br />
|
|
11033
|
+
Example: <code>ES</code></li>
|
|
11034
|
+
<li><strong>includeExternal (str):</strong> If "audio" is specified it signals that the client can play externally hosted audio content, and
|
|
11035
|
+
marks the content as playable in the response. By default externally hosted audio content is marked
|
|
11036
|
+
as unplayable in the response. <br />
|
|
11037
|
+
Allowed values: "audio"</li>
|
|
11038
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
11039
|
+
If specified, this argument overrides the limit and offset argument values
|
|
11040
|
+
and paging is automatically used to retrieve all available items up to the
|
|
11041
|
+
maximum number specified. <br />
|
|
11042
|
+
Default: None (disabled)</li>
|
|
11043
|
+
</ul>
|
|
11044
|
+
|
|
11045
|
+
<h6 id="returns">Returns:</h6>
|
|
11046
|
+
|
|
11047
|
+
<blockquote>
|
|
11048
|
+
<p>A <code>SearchResponse</code> object that contains the search results.</p>
|
|
11049
|
+
</blockquote>
|
|
11050
|
+
|
|
11051
|
+
<h6 id="raises">Raises:</h6>
|
|
11052
|
+
|
|
11053
|
+
<ul>
|
|
11054
|
+
<li><strong>SpotifyWebApiError:</strong> If the Spotify Web API request was for a non-authorization service
|
|
11055
|
+
and the response contains error information.</li>
|
|
11056
|
+
<li><strong>SpotifApiError:</strong> If the method fails for any other reason.</li>
|
|
11057
|
+
</ul>
|
|
11058
|
+
|
|
11059
|
+
<p>Note that Spotify Web API automatically limits you to 1,000 max entries per type that can
|
|
11060
|
+
be returned with a search.</p>
|
|
11061
|
+
|
|
11062
|
+
<p><details>
|
|
11063
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
11064
|
+
|
|
11065
|
+
<div class="pdoc-code codehilite">
|
|
11066
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
11067
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
11068
|
+
|
|
11069
|
+
<span class="k">try</span><span class="p">:</span>
|
|
11070
|
+
|
|
11071
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
11072
|
+
<span class="n">CLIENT_SECRET</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_secret'</span>
|
|
11073
|
+
|
|
11074
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
11075
|
+
<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>
|
|
11076
|
+
|
|
11077
|
+
<span class="c1"># generate a spotify client credentials access token (no scope, public data use only).</span>
|
|
11078
|
+
<span class="n">spotify</span><span class="o">.</span><span class="n">SetAuthTokenClientCredentials</span><span class="p">(</span><span class="n">CLIENT_ID</span><span class="p">,</span> <span class="n">CLIENT_SECRET</span><span class="p">)</span>
|
|
11079
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
11080
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
11081
|
+
|
|
11082
|
+
<span class="c1"># get Spotify catalog information about Artists that match a keyword string.</span>
|
|
11083
|
+
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'MercyMe'</span>
|
|
11084
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Searching for Artists - criteria: "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">criteria</span><span class="p">)</span>
|
|
11085
|
+
<span class="n">searchResponse</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchArtists</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="mi">25</span><span class="p">)</span>
|
|
11086
|
+
|
|
11087
|
+
<span class="c1"># display search response details.</span>
|
|
11088
|
+
<span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">searchResponse</span><span class="p">))</span>
|
|
11089
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span>
|
|
11090
|
+
|
|
11091
|
+
<span class="c1"># save initial search response total, as search next page response total </span>
|
|
11092
|
+
<span class="c1"># will change with each page retrieved. this is odd behavior, as it seems</span>
|
|
11093
|
+
<span class="c1"># that the spotify web api is returning a new result set each time rather </span>
|
|
11094
|
+
<span class="c1"># than working off of a cached result set.</span>
|
|
11095
|
+
<span class="n">pageObjInitialTotal</span><span class="p">:</span><span class="nb">int</span> <span class="o">=</span> <span class="n">searchResponse</span><span class="o">.</span><span class="n">Artists</span><span class="o">.</span><span class="n">Total</span>
|
|
11096
|
+
|
|
11097
|
+
<span class="c1"># handle pagination, as spotify limits us to a set # of items returned per response.</span>
|
|
11098
|
+
<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
|
|
11099
|
+
|
|
11100
|
+
<span class="c1"># only display artist results for this example.</span>
|
|
11101
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">ArtistPage</span> <span class="o">=</span> <span class="n">searchResponse</span><span class="o">.</span><span class="n">Artists</span>
|
|
11102
|
+
|
|
11103
|
+
<span class="c1"># display paging details.</span>
|
|
11104
|
+
<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>
|
|
11105
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Artists in this page of results:'</span><span class="p">)</span>
|
|
11106
|
+
|
|
11107
|
+
<span class="c1"># display artist details.</span>
|
|
11108
|
+
<span class="n">artist</span><span class="p">:</span><span class="n">ArtistPage</span>
|
|
11109
|
+
<span class="k">for</span> <span class="n">artist</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
11110
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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>
|
|
11111
|
+
|
|
11112
|
+
<span class="c1"># for testing - don't return 1000 results! </span>
|
|
11113
|
+
<span class="c1"># comment the following 3 lines of code if you want ALL results.</span>
|
|
11114
|
+
<span class="k">if</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="o">>=</span> <span class="mi">75</span><span class="p">:</span>
|
|
11115
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">*** Stopping paging loop after 75 entries for testing.'</span><span class="p">)</span>
|
|
11116
|
+
<span class="k">break</span>
|
|
11117
|
+
|
|
11118
|
+
<span class="c1"># anymore page results?</span>
|
|
11119
|
+
<span class="k">if</span> <span class="p">(</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> <span class="ow">or</span> <span class="p">((</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="o">></span> <span class="n">pageObjInitialTotal</span><span class="p">):</span>
|
|
11120
|
+
<span class="c1"># no - all pages were processed.</span>
|
|
11121
|
+
<span class="k">break</span>
|
|
11122
|
+
<span class="k">else</span><span class="p">:</span>
|
|
11123
|
+
<span class="c1"># yes - retrieve the next page of results.</span>
|
|
11124
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</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">'</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>
|
|
11125
|
+
<span class="n">searchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchArtists</span><span class="p">(</span><span class="n">criteria</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>
|
|
11126
|
+
|
|
11127
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
11128
|
+
|
|
11129
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
11130
|
+
</code></pre>
|
|
11131
|
+
</div>
|
|
11132
|
+
|
|
11133
|
+
<p></details>
|
|
11134
|
+
<details>
|
|
11135
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
11136
|
+
|
|
11137
|
+
<div class="pdoc-code codehilite">
|
|
11138
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
11139
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
11140
|
+
|
|
11141
|
+
<span class="k">try</span><span class="p">:</span>
|
|
11142
|
+
|
|
11143
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
11144
|
+
<span class="n">CLIENT_SECRET</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_secret'</span>
|
|
11145
|
+
|
|
11146
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
11147
|
+
<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>
|
|
11148
|
+
|
|
11149
|
+
<span class="c1"># generate a spotify client credentials access token (no scope, public data use only).</span>
|
|
11150
|
+
<span class="n">spotify</span><span class="o">.</span><span class="n">SetAuthTokenClientCredentials</span><span class="p">(</span><span class="n">CLIENT_ID</span><span class="p">,</span> <span class="n">CLIENT_SECRET</span><span class="p">)</span>
|
|
11151
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
11152
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
11153
|
+
|
|
11154
|
+
<span class="c1"># get Spotify catalog information about Artists that match a keyword string.</span>
|
|
11155
|
+
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'MercyMe'</span>
|
|
11156
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Searching for Artists - criteria: "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">criteria</span><span class="p">)</span>
|
|
11157
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchArtists</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">limitTotal</span><span class="o">=</span><span class="mi">75</span><span class="p">)</span>
|
|
11158
|
+
|
|
11159
|
+
<span class="c1"># display paging details.</span>
|
|
11160
|
+
<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>
|
|
11161
|
+
<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="o">.</span><span class="n">Artists</span><span class="p">))</span>
|
|
11162
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Artists in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Artists</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
11163
|
+
|
|
11164
|
+
<span class="c1"># display artist details.</span>
|
|
11165
|
+
<span class="n">artist</span><span class="p">:</span><span class="n">Artist</span>
|
|
11166
|
+
<span class="k">for</span> <span class="n">artist</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Artists</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
11167
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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>
|
|
11168
|
+
|
|
11169
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
11170
|
+
|
|
11171
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
11172
|
+
</code></pre>
|
|
11173
|
+
</div>
|
|
11174
|
+
|
|
11175
|
+
<p></details></p>
|
|
11176
|
+
</div>
|
|
11177
|
+
|
|
11178
|
+
|
|
11179
|
+
</div>
|
|
11180
|
+
<div id="SpotifyClient.SearchAudiobooks" class="classattr">
|
|
11181
|
+
<div class="attr function">
|
|
11182
|
+
|
|
11183
|
+
<span class="def">def</span>
|
|
11184
|
+
<span class="name">SearchAudiobooks</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">criteria</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">includeExternal</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/searchresponse.html#SearchResponse">spotifywebapipython.models.searchresponse.SearchResponse</a></span>:</span></span>
|
|
11185
|
+
|
|
11186
|
+
|
|
11187
|
+
</div>
|
|
11188
|
+
<a class="headerlink" href="#SpotifyClient.SearchAudiobooks"></a>
|
|
11189
|
+
|
|
11190
|
+
<div class="docstring"><p>Get Spotify catalog information about Audiobooks that match a keyword string. </p>
|
|
11191
|
+
|
|
11192
|
+
<h6 id="arguments">Arguments:</h6>
|
|
11193
|
+
|
|
11194
|
+
<ul>
|
|
11195
|
+
<li><strong>criteria (str):</strong> Your search query. <br />
|
|
11196
|
+
You can narrow down your search using field filters. <br />
|
|
11197
|
+
The available filters are album, artist, track, year, upc, tag:hipster, tag:new,
|
|
11198
|
+
isrc, and genre. Each field filter only applies to certain result types. <br />
|
|
11199
|
+
The artist and year filters can be used while searching albums, artists and tracks.
|
|
11200
|
+
You can filter on a single year or a range (e.g. 1955-1960). <br />
|
|
11201
|
+
The album filter can be used while searching albums and tracks. <br />
|
|
11202
|
+
The genre filter can be used while searching artists and tracks. <br />
|
|
11203
|
+
The isrc and track filters can be used while searching tracks. <br />
|
|
11204
|
+
The upc, tag:new and tag:hipster filters can only be used while searching albums.
|
|
11205
|
+
The tag:new filter will return albums released in the past two weeks and tag:hipster
|
|
11206
|
+
can be used to return only albums with the lowest 10% popularity.</li>
|
|
11207
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
11208
|
+
Default: 20, Range: 1 to 50. </li>
|
|
11209
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
11210
|
+
Use with limit to get the next set of items. <br />
|
|
11211
|
+
Default: 0 (the first item). Range: 0 to 1000. </li>
|
|
11212
|
+
<li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
|
|
11213
|
+
is available in that market will be returned. If a valid user access token is specified
|
|
11214
|
+
in the request header, the country associated with the user account will take priority over
|
|
11215
|
+
this parameter. <br />
|
|
11216
|
+
Note: If neither market or user country are provided, the content is considered unavailable for the client. <br />
|
|
11217
|
+
Users can view the country that is associated with their account in the account settings. <br />
|
|
11218
|
+
Example: <code>ES</code></li>
|
|
11219
|
+
<li><strong>includeExternal (str):</strong> If "audio" is specified it signals that the client can play externally hosted audio content, and
|
|
11220
|
+
marks the content as playable in the response. By default externally hosted audio content is marked
|
|
11221
|
+
as unplayable in the response. <br />
|
|
11222
|
+
Allowed values: "audio"</li>
|
|
11223
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
11224
|
+
If specified, this argument overrides the limit and offset argument values
|
|
11225
|
+
and paging is automatically used to retrieve all available items up to the
|
|
11226
|
+
maximum number specified. <br />
|
|
11227
|
+
Default: None (disabled)</li>
|
|
11228
|
+
</ul>
|
|
11229
|
+
|
|
11230
|
+
<h6 id="returns">Returns:</h6>
|
|
11231
|
+
|
|
11232
|
+
<blockquote>
|
|
11233
|
+
<p>A <code>SearchResponse</code> object that contains the search results.</p>
|
|
11234
|
+
</blockquote>
|
|
11235
|
+
|
|
11236
|
+
<h6 id="raises">Raises:</h6>
|
|
11237
|
+
|
|
11238
|
+
<ul>
|
|
11239
|
+
<li><strong>SpotifyWebApiError:</strong> If the Spotify Web API request was for a non-authorization service
|
|
11240
|
+
and the response contains error information.</li>
|
|
11241
|
+
<li><strong>SpotifApiError:</strong> If the method fails for any other reason.</li>
|
|
11242
|
+
</ul>
|
|
11243
|
+
|
|
11244
|
+
<p>Audiobooks are only available within the US, UK, Canada, Ireland, New Zealand and Australia markets.</p>
|
|
11245
|
+
|
|
11246
|
+
<p>Note that Spotify Web API automatically limits you to 1,000 max entries per type that can
|
|
11247
|
+
be returned with a search.</p>
|
|
11248
|
+
|
|
11249
|
+
<p><details>
|
|
11250
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
11251
|
+
|
|
11252
|
+
<div class="pdoc-code codehilite">
|
|
11253
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
11254
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
11255
|
+
|
|
11256
|
+
<span class="k">try</span><span class="p">:</span>
|
|
11257
|
+
|
|
11258
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
11259
|
+
<span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> \
|
|
11260
|
+
<span class="p">[</span>
|
|
11261
|
+
<span class="s1">'user-read-email'</span><span class="p">,</span>
|
|
11262
|
+
<span class="s1">'user-library-read'</span><span class="p">,</span>
|
|
11263
|
+
<span class="s1">'user-library-modify'</span><span class="p">,</span>
|
|
11264
|
+
<span class="s1">'playlist-modify-private'</span><span class="p">,</span>
|
|
11265
|
+
<span class="s1">'playlist-modify-public'</span>
|
|
11266
|
+
<span class="p">]</span>
|
|
11267
|
+
|
|
11268
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
11269
|
+
<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>
|
|
11270
|
+
|
|
11271
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
11272
|
+
<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>
|
|
10078
11273
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
10079
11274
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
10080
11275
|
|
|
10081
|
-
<span class="c1"># get Spotify catalog information about
|
|
10082
|
-
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'
|
|
10083
|
-
<span class="
|
|
10084
|
-
<span class="
|
|
10085
|
-
<span class="n">searchResponse</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">Search</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">criteriaType</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="mi">50</span><span class="p">)</span>
|
|
11276
|
+
<span class="c1"># get Spotify catalog information about Audiobooks that match a keyword string.</span>
|
|
11277
|
+
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'Terry Brooks'</span>
|
|
11278
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Searching for Audiobooks - criteria: "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">criteria</span><span class="p">)</span>
|
|
11279
|
+
<span class="n">searchResponse</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchAudiobooks</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="mi">25</span><span class="p">)</span>
|
|
10086
11280
|
|
|
10087
11281
|
<span class="c1"># display search response details.</span>
|
|
10088
11282
|
<span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">searchResponse</span><span class="p">))</span>
|
|
@@ -10100,25 +11294,476 @@ entries that you can return with a search.</p>
|
|
|
10100
11294
|
<span class="c1"># only display audiobook results for this example.</span>
|
|
10101
11295
|
<span class="n">pageObj</span><span class="p">:</span><span class="n">AudiobookPageSimplified</span> <span class="o">=</span> <span class="n">searchResponse</span><span class="o">.</span><span class="n">Audiobooks</span>
|
|
10102
11296
|
|
|
10103
|
-
<span class="c1"># display paging details.</span>
|
|
10104
|
-
<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>
|
|
10105
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">'
|
|
10106
|
-
|
|
11297
|
+
<span class="c1"># display paging details.</span>
|
|
11298
|
+
<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>
|
|
11299
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Audiobooks in this page of results:'</span><span class="p">)</span>
|
|
11300
|
+
|
|
11301
|
+
<span class="c1"># display audiobook details.</span>
|
|
11302
|
+
<span class="n">audiobook</span><span class="p">:</span><span class="n">AudiobookSimplified</span>
|
|
11303
|
+
<span class="k">for</span> <span class="n">audiobook</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
11304
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">audiobook</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">audiobook</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
11305
|
+
|
|
11306
|
+
<span class="c1"># for testing - don't return 1000 results! </span>
|
|
11307
|
+
<span class="c1"># comment the following 3 lines of code if you want ALL results.</span>
|
|
11308
|
+
<span class="k">if</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="o">>=</span> <span class="mi">75</span><span class="p">:</span>
|
|
11309
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">*** Stopping paging loop after 75 entries for testing.'</span><span class="p">)</span>
|
|
11310
|
+
<span class="k">break</span>
|
|
11311
|
+
|
|
11312
|
+
<span class="c1"># anymore page results?</span>
|
|
11313
|
+
<span class="k">if</span> <span class="p">(</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> <span class="ow">or</span> <span class="p">((</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="o">></span> <span class="n">pageObjInitialTotal</span><span class="p">):</span>
|
|
11314
|
+
<span class="c1"># no - all pages were processed.</span>
|
|
11315
|
+
<span class="k">break</span>
|
|
11316
|
+
<span class="k">else</span><span class="p">:</span>
|
|
11317
|
+
<span class="c1"># yes - retrieve the next page of results.</span>
|
|
11318
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</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">'</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>
|
|
11319
|
+
<span class="n">searchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchAudiobooks</span><span class="p">(</span><span class="n">criteria</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>
|
|
11320
|
+
|
|
11321
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
11322
|
+
|
|
11323
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
11324
|
+
</code></pre>
|
|
11325
|
+
</div>
|
|
11326
|
+
|
|
11327
|
+
<p></details>
|
|
11328
|
+
<details>
|
|
11329
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
11330
|
+
|
|
11331
|
+
<div class="pdoc-code codehilite">
|
|
11332
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
11333
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
11334
|
+
|
|
11335
|
+
<span class="k">try</span><span class="p">:</span>
|
|
11336
|
+
|
|
11337
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
11338
|
+
<span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> \
|
|
11339
|
+
<span class="p">[</span>
|
|
11340
|
+
<span class="s1">'user-read-email'</span><span class="p">,</span>
|
|
11341
|
+
<span class="s1">'user-library-read'</span><span class="p">,</span>
|
|
11342
|
+
<span class="s1">'user-library-modify'</span><span class="p">,</span>
|
|
11343
|
+
<span class="s1">'playlist-modify-private'</span><span class="p">,</span>
|
|
11344
|
+
<span class="s1">'playlist-modify-public'</span>
|
|
11345
|
+
<span class="p">]</span>
|
|
11346
|
+
|
|
11347
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
11348
|
+
<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>
|
|
11349
|
+
|
|
11350
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
11351
|
+
<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>
|
|
11352
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
11353
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
11354
|
+
|
|
11355
|
+
<span class="c1"># get Spotify catalog information about Audiobooks that match a keyword string.</span>
|
|
11356
|
+
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'Terry Brooks'</span>
|
|
11357
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Searching for Audiobooks - criteria: "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">criteria</span><span class="p">)</span>
|
|
11358
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchAudiobooks</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">limitTotal</span><span class="o">=</span><span class="mi">75</span><span class="p">)</span>
|
|
11359
|
+
|
|
11360
|
+
<span class="c1"># display paging details.</span>
|
|
11361
|
+
<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>
|
|
11362
|
+
<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="o">.</span><span class="n">Audiobooks</span><span class="p">))</span>
|
|
11363
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Audiobooks in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Audiobooks</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
11364
|
+
|
|
11365
|
+
<span class="c1"># display audiobook details.</span>
|
|
11366
|
+
<span class="n">audiobook</span><span class="p">:</span><span class="n">Audiobook</span>
|
|
11367
|
+
<span class="k">for</span> <span class="n">audiobook</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Audiobooks</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
11368
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">audiobook</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">audiobook</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
11369
|
+
|
|
11370
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
11371
|
+
|
|
11372
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
11373
|
+
</code></pre>
|
|
11374
|
+
</div>
|
|
11375
|
+
|
|
11376
|
+
<p></details></p>
|
|
11377
|
+
</div>
|
|
11378
|
+
|
|
11379
|
+
|
|
11380
|
+
</div>
|
|
11381
|
+
<div id="SpotifyClient.SearchEpisodes" class="classattr">
|
|
11382
|
+
<div class="attr function">
|
|
11383
|
+
|
|
11384
|
+
<span class="def">def</span>
|
|
11385
|
+
<span class="name">SearchEpisodes</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">criteria</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">includeExternal</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/searchresponse.html#SearchResponse">spotifywebapipython.models.searchresponse.SearchResponse</a></span>:</span></span>
|
|
11386
|
+
|
|
11387
|
+
|
|
11388
|
+
</div>
|
|
11389
|
+
<a class="headerlink" href="#SpotifyClient.SearchEpisodes"></a>
|
|
11390
|
+
|
|
11391
|
+
<div class="docstring"><p>Get Spotify catalog information about Episodes that match a keyword string. </p>
|
|
11392
|
+
|
|
11393
|
+
<h6 id="arguments">Arguments:</h6>
|
|
11394
|
+
|
|
11395
|
+
<ul>
|
|
11396
|
+
<li><strong>criteria (str):</strong> Your search query. <br />
|
|
11397
|
+
You can narrow down your search using field filters. <br />
|
|
11398
|
+
The available filters are album, artist, track, year, upc, tag:hipster, tag:new,
|
|
11399
|
+
isrc, and genre. Each field filter only applies to certain result types. <br />
|
|
11400
|
+
The artist and year filters can be used while searching albums, artists and tracks.
|
|
11401
|
+
You can filter on a single year or a range (e.g. 1955-1960). <br />
|
|
11402
|
+
The album filter can be used while searching albums and tracks. <br />
|
|
11403
|
+
The genre filter can be used while searching artists and tracks. <br />
|
|
11404
|
+
The isrc and track filters can be used while searching tracks. <br />
|
|
11405
|
+
The upc, tag:new and tag:hipster filters can only be used while searching albums.
|
|
11406
|
+
The tag:new filter will return albums released in the past two weeks and tag:hipster
|
|
11407
|
+
can be used to return only albums with the lowest 10% popularity.</li>
|
|
11408
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
11409
|
+
Default: 20, Range: 1 to 50. </li>
|
|
11410
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
11411
|
+
Use with limit to get the next set of items. <br />
|
|
11412
|
+
Default: 0 (the first item). Range: 0 to 1000. </li>
|
|
11413
|
+
<li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
|
|
11414
|
+
is available in that market will be returned. If a valid user access token is specified
|
|
11415
|
+
in the request header, the country associated with the user account will take priority over
|
|
11416
|
+
this parameter. <br />
|
|
11417
|
+
Note: If neither market or user country are provided, the content is considered unavailable for the client. <br />
|
|
11418
|
+
Users can view the country that is associated with their account in the account settings. <br />
|
|
11419
|
+
Example: <code>ES</code></li>
|
|
11420
|
+
<li><strong>includeExternal (str):</strong> If "audio" is specified it signals that the client can play externally hosted audio content, and
|
|
11421
|
+
marks the content as playable in the response. By default externally hosted audio content is marked
|
|
11422
|
+
as unplayable in the response. <br />
|
|
11423
|
+
Allowed values: "audio"</li>
|
|
11424
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
11425
|
+
If specified, this argument overrides the limit and offset argument values
|
|
11426
|
+
and paging is automatically used to retrieve all available items up to the
|
|
11427
|
+
maximum number specified. <br />
|
|
11428
|
+
Default: None (disabled)</li>
|
|
11429
|
+
</ul>
|
|
11430
|
+
|
|
11431
|
+
<h6 id="returns">Returns:</h6>
|
|
11432
|
+
|
|
11433
|
+
<blockquote>
|
|
11434
|
+
<p>A <code>SearchResponse</code> object that contains the search results.</p>
|
|
11435
|
+
</blockquote>
|
|
11436
|
+
|
|
11437
|
+
<h6 id="raises">Raises:</h6>
|
|
11438
|
+
|
|
11439
|
+
<ul>
|
|
11440
|
+
<li><strong>SpotifyWebApiError:</strong> If the Spotify Web API request was for a non-authorization service
|
|
11441
|
+
and the response contains error information.</li>
|
|
11442
|
+
<li><strong>SpotifApiError:</strong> If the method fails for any other reason.</li>
|
|
11443
|
+
</ul>
|
|
11444
|
+
|
|
11445
|
+
<p>Note that Spotify Web API automatically limits you to 1,000 max entries per type that can
|
|
11446
|
+
be returned with a search.</p>
|
|
11447
|
+
|
|
11448
|
+
<p><details>
|
|
11449
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
11450
|
+
|
|
11451
|
+
<div class="pdoc-code codehilite">
|
|
11452
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
11453
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
11454
|
+
|
|
11455
|
+
<span class="k">try</span><span class="p">:</span>
|
|
11456
|
+
|
|
11457
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
11458
|
+
<span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> \
|
|
11459
|
+
<span class="p">[</span>
|
|
11460
|
+
<span class="s1">'user-read-email'</span><span class="p">,</span>
|
|
11461
|
+
<span class="s1">'user-library-read'</span><span class="p">,</span>
|
|
11462
|
+
<span class="s1">'user-library-modify'</span><span class="p">,</span>
|
|
11463
|
+
<span class="s1">'playlist-modify-private'</span><span class="p">,</span>
|
|
11464
|
+
<span class="s1">'playlist-modify-public'</span>
|
|
11465
|
+
<span class="p">]</span>
|
|
11466
|
+
|
|
11467
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
11468
|
+
<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>
|
|
11469
|
+
|
|
11470
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
11471
|
+
<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>
|
|
11472
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
11473
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
11474
|
+
|
|
11475
|
+
<span class="c1"># get Spotify catalog information about Episodes that match a keyword string.</span>
|
|
11476
|
+
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'The LOL Podcast'</span>
|
|
11477
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Searching for Episodes - criteria: "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">criteria</span><span class="p">)</span>
|
|
11478
|
+
<span class="n">searchResponse</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchEpisodes</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="mi">25</span><span class="p">)</span>
|
|
11479
|
+
|
|
11480
|
+
<span class="c1"># display search response details.</span>
|
|
11481
|
+
<span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">searchResponse</span><span class="p">))</span>
|
|
11482
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span>
|
|
11483
|
+
|
|
11484
|
+
<span class="c1"># save initial search response total, as search next page response total </span>
|
|
11485
|
+
<span class="c1"># will change with each page retrieved. this is odd behavior, as it seems</span>
|
|
11486
|
+
<span class="c1"># that the spotify web api is returning a new result set each time rather </span>
|
|
11487
|
+
<span class="c1"># than working off of a cached result set.</span>
|
|
11488
|
+
<span class="n">pageObjInitialTotal</span><span class="p">:</span><span class="nb">int</span> <span class="o">=</span> <span class="n">searchResponse</span><span class="o">.</span><span class="n">Episodes</span><span class="o">.</span><span class="n">Total</span>
|
|
11489
|
+
|
|
11490
|
+
<span class="c1"># handle pagination, as spotify limits us to a set # of items returned per response.</span>
|
|
11491
|
+
<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
|
|
11492
|
+
|
|
11493
|
+
<span class="c1"># only display episode results for this example.</span>
|
|
11494
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">EpisodePageSimplified</span> <span class="o">=</span> <span class="n">searchResponse</span><span class="o">.</span><span class="n">Episodes</span>
|
|
11495
|
+
|
|
11496
|
+
<span class="c1"># display paging details.</span>
|
|
11497
|
+
<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>
|
|
11498
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Episodes in this page of results:'</span><span class="p">)</span>
|
|
11499
|
+
|
|
11500
|
+
<span class="c1"># display episode details.</span>
|
|
11501
|
+
<span class="n">episode</span><span class="p">:</span><span class="n">EpisodeSimplified</span>
|
|
11502
|
+
<span class="k">for</span> <span class="n">episode</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
11503
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">episode</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">episode</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
11504
|
+
|
|
11505
|
+
<span class="c1"># for testing - don't return 1000 results! </span>
|
|
11506
|
+
<span class="c1"># comment the following 3 lines of code if you want ALL results.</span>
|
|
11507
|
+
<span class="k">if</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="o">>=</span> <span class="mi">75</span><span class="p">:</span>
|
|
11508
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">*** Stopping paging loop after 75 entries for testing.'</span><span class="p">)</span>
|
|
11509
|
+
<span class="k">break</span>
|
|
11510
|
+
|
|
11511
|
+
<span class="c1"># anymore page results?</span>
|
|
11512
|
+
<span class="k">if</span> <span class="p">(</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> <span class="ow">or</span> <span class="p">((</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="o">></span> <span class="n">pageObjInitialTotal</span><span class="p">):</span>
|
|
11513
|
+
<span class="c1"># no - all pages were processed.</span>
|
|
11514
|
+
<span class="k">break</span>
|
|
11515
|
+
<span class="k">else</span><span class="p">:</span>
|
|
11516
|
+
<span class="c1"># yes - retrieve the next page of results.</span>
|
|
11517
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</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">'</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>
|
|
11518
|
+
<span class="n">searchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchEpisodes</span><span class="p">(</span><span class="n">criteria</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>
|
|
11519
|
+
|
|
11520
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
11521
|
+
|
|
11522
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
11523
|
+
</code></pre>
|
|
11524
|
+
</div>
|
|
11525
|
+
|
|
11526
|
+
<p></details>
|
|
11527
|
+
<details>
|
|
11528
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
11529
|
+
|
|
11530
|
+
<div class="pdoc-code codehilite">
|
|
11531
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
11532
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
11533
|
+
|
|
11534
|
+
<span class="k">try</span><span class="p">:</span>
|
|
11535
|
+
|
|
11536
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
11537
|
+
<span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> \
|
|
11538
|
+
<span class="p">[</span>
|
|
11539
|
+
<span class="s1">'user-read-email'</span><span class="p">,</span>
|
|
11540
|
+
<span class="s1">'user-library-read'</span><span class="p">,</span>
|
|
11541
|
+
<span class="s1">'user-library-modify'</span><span class="p">,</span>
|
|
11542
|
+
<span class="s1">'playlist-modify-private'</span><span class="p">,</span>
|
|
11543
|
+
<span class="s1">'playlist-modify-public'</span>
|
|
11544
|
+
<span class="p">]</span>
|
|
11545
|
+
|
|
11546
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
11547
|
+
<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>
|
|
11548
|
+
|
|
11549
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
11550
|
+
<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>
|
|
11551
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
11552
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
11553
|
+
|
|
11554
|
+
<span class="c1"># get Spotify catalog information about Episodes that match a keyword string.</span>
|
|
11555
|
+
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'The LOL Podcast'</span>
|
|
11556
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Searching for Episodes - criteria: "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">criteria</span><span class="p">)</span>
|
|
11557
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchEpisodes</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">limitTotal</span><span class="o">=</span><span class="mi">75</span><span class="p">)</span>
|
|
11558
|
+
|
|
11559
|
+
<span class="c1"># display paging details.</span>
|
|
11560
|
+
<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>
|
|
11561
|
+
<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="o">.</span><span class="n">Episodes</span><span class="p">))</span>
|
|
11562
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Episodes in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Episodes</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
11563
|
+
|
|
11564
|
+
<span class="c1"># display episode details.</span>
|
|
11565
|
+
<span class="n">episode</span><span class="p">:</span><span class="n">EpisodeSimplified</span>
|
|
11566
|
+
<span class="k">for</span> <span class="n">episode</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Episodes</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
11567
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">episode</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">episode</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
11568
|
+
|
|
11569
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
11570
|
+
|
|
11571
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
11572
|
+
</code></pre>
|
|
11573
|
+
</div>
|
|
11574
|
+
|
|
11575
|
+
<p></details></p>
|
|
11576
|
+
</div>
|
|
11577
|
+
|
|
11578
|
+
|
|
11579
|
+
</div>
|
|
11580
|
+
<div id="SpotifyClient.SearchPlaylists" class="classattr">
|
|
11581
|
+
<div class="attr function">
|
|
11582
|
+
|
|
11583
|
+
<span class="def">def</span>
|
|
11584
|
+
<span class="name">SearchPlaylists</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">criteria</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">includeExternal</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/searchresponse.html#SearchResponse">spotifywebapipython.models.searchresponse.SearchResponse</a></span>:</span></span>
|
|
11585
|
+
|
|
11586
|
+
|
|
11587
|
+
</div>
|
|
11588
|
+
<a class="headerlink" href="#SpotifyClient.SearchPlaylists"></a>
|
|
11589
|
+
|
|
11590
|
+
<div class="docstring"><p>Get Spotify catalog information about Playlists that match a keyword string. </p>
|
|
11591
|
+
|
|
11592
|
+
<h6 id="arguments">Arguments:</h6>
|
|
11593
|
+
|
|
11594
|
+
<ul>
|
|
11595
|
+
<li><strong>criteria (str):</strong> Your search query. <br />
|
|
11596
|
+
You can narrow down your search using field filters. <br />
|
|
11597
|
+
The available filters are album, artist, track, year, upc, tag:hipster, tag:new,
|
|
11598
|
+
isrc, and genre. Each field filter only applies to certain result types. <br />
|
|
11599
|
+
The artist and year filters can be used while searching albums, artists and tracks.
|
|
11600
|
+
You can filter on a single year or a range (e.g. 1955-1960). <br />
|
|
11601
|
+
The album filter can be used while searching albums and tracks. <br />
|
|
11602
|
+
The genre filter can be used while searching artists and tracks. <br />
|
|
11603
|
+
The isrc and track filters can be used while searching tracks. <br />
|
|
11604
|
+
The upc, tag:new and tag:hipster filters can only be used while searching albums.
|
|
11605
|
+
The tag:new filter will return albums released in the past two weeks and tag:hipster
|
|
11606
|
+
can be used to return only albums with the lowest 10% popularity.</li>
|
|
11607
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
11608
|
+
Default: 20, Range: 1 to 50. </li>
|
|
11609
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
11610
|
+
Use with limit to get the next set of items. <br />
|
|
11611
|
+
Default: 0 (the first item). Range: 0 to 1000. </li>
|
|
11612
|
+
<li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
|
|
11613
|
+
is available in that market will be returned. If a valid user access token is specified
|
|
11614
|
+
in the request header, the country associated with the user account will take priority over
|
|
11615
|
+
this parameter. <br />
|
|
11616
|
+
Note: If neither market or user country are provided, the content is considered unavailable for the client. <br />
|
|
11617
|
+
Users can view the country that is associated with their account in the account settings. <br />
|
|
11618
|
+
Example: <code>ES</code></li>
|
|
11619
|
+
<li><strong>includeExternal (str):</strong> If "audio" is specified it signals that the client can play externally hosted audio content, and
|
|
11620
|
+
marks the content as playable in the response. By default externally hosted audio content is marked
|
|
11621
|
+
as unplayable in the response. <br />
|
|
11622
|
+
Allowed values: "audio"</li>
|
|
11623
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
11624
|
+
If specified, this argument overrides the limit and offset argument values
|
|
11625
|
+
and paging is automatically used to retrieve all available items up to the
|
|
11626
|
+
maximum number specified. <br />
|
|
11627
|
+
Default: None (disabled)</li>
|
|
11628
|
+
</ul>
|
|
11629
|
+
|
|
11630
|
+
<h6 id="returns">Returns:</h6>
|
|
11631
|
+
|
|
11632
|
+
<blockquote>
|
|
11633
|
+
<p>A <code>SearchResponse</code> object that contains the search results.</p>
|
|
11634
|
+
</blockquote>
|
|
11635
|
+
|
|
11636
|
+
<h6 id="raises">Raises:</h6>
|
|
11637
|
+
|
|
11638
|
+
<ul>
|
|
11639
|
+
<li><strong>SpotifyWebApiError:</strong> If the Spotify Web API request was for a non-authorization service
|
|
11640
|
+
and the response contains error information.</li>
|
|
11641
|
+
<li><strong>SpotifApiError:</strong> If the method fails for any other reason.</li>
|
|
11642
|
+
</ul>
|
|
11643
|
+
|
|
11644
|
+
<p>Note that Spotify Web API automatically limits you to 1,000 max entries per type that can
|
|
11645
|
+
be returned with a search.</p>
|
|
11646
|
+
|
|
11647
|
+
<p><details>
|
|
11648
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
11649
|
+
|
|
11650
|
+
<div class="pdoc-code codehilite">
|
|
11651
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
11652
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
11653
|
+
|
|
11654
|
+
<span class="k">try</span><span class="p">:</span>
|
|
11655
|
+
|
|
11656
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
11657
|
+
<span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> \
|
|
11658
|
+
<span class="p">[</span>
|
|
11659
|
+
<span class="s1">'user-read-email'</span><span class="p">,</span>
|
|
11660
|
+
<span class="s1">'user-library-read'</span><span class="p">,</span>
|
|
11661
|
+
<span class="s1">'user-library-modify'</span><span class="p">,</span>
|
|
11662
|
+
<span class="s1">'playlist-modify-private'</span><span class="p">,</span>
|
|
11663
|
+
<span class="s1">'playlist-modify-public'</span>
|
|
11664
|
+
<span class="p">]</span>
|
|
11665
|
+
|
|
11666
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
11667
|
+
<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>
|
|
11668
|
+
|
|
11669
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
11670
|
+
<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>
|
|
11671
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
11672
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
11673
|
+
|
|
11674
|
+
<span class="c1"># get Spotify catalog information about Playlists that match a keyword string.</span>
|
|
11675
|
+
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'MercyMe'</span>
|
|
11676
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Searching for Playlists - criteria: "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">criteria</span><span class="p">)</span>
|
|
11677
|
+
<span class="n">searchResponse</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchPlaylists</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="mi">25</span><span class="p">)</span>
|
|
11678
|
+
|
|
11679
|
+
<span class="c1"># display search response details.</span>
|
|
11680
|
+
<span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">searchResponse</span><span class="p">))</span>
|
|
11681
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span>
|
|
11682
|
+
|
|
11683
|
+
<span class="c1"># save initial search response total, as search next page response total </span>
|
|
11684
|
+
<span class="c1"># will change with each page retrieved. this is odd behavior, as it seems</span>
|
|
11685
|
+
<span class="c1"># that the spotify web api is returning a new result set each time rather </span>
|
|
11686
|
+
<span class="c1"># than working off of a cached result set.</span>
|
|
11687
|
+
<span class="n">pageObjInitialTotal</span><span class="p">:</span><span class="nb">int</span> <span class="o">=</span> <span class="n">searchResponse</span><span class="o">.</span><span class="n">Playlists</span><span class="o">.</span><span class="n">Total</span>
|
|
11688
|
+
|
|
11689
|
+
<span class="c1"># handle pagination, as spotify limits us to a set # of items returned per response.</span>
|
|
11690
|
+
<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
|
|
11691
|
+
|
|
11692
|
+
<span class="c1"># only display playlist results for this example.</span>
|
|
11693
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">PlaylistPageSimplified</span> <span class="o">=</span> <span class="n">searchResponse</span><span class="o">.</span><span class="n">Playlists</span>
|
|
11694
|
+
|
|
11695
|
+
<span class="c1"># display paging details.</span>
|
|
11696
|
+
<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>
|
|
11697
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Playlists in this page of results:'</span><span class="p">)</span>
|
|
11698
|
+
|
|
11699
|
+
<span class="c1"># display playlist details.</span>
|
|
11700
|
+
<span class="n">playlist</span><span class="p">:</span><span class="n">PlaylistSimplified</span>
|
|
11701
|
+
<span class="k">for</span> <span class="n">playlist</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
11702
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">playlist</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">playlist</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
11703
|
+
|
|
11704
|
+
<span class="c1"># for testing - don't return 1000 results! </span>
|
|
11705
|
+
<span class="c1"># comment the following 3 lines of code if you want ALL results.</span>
|
|
11706
|
+
<span class="k">if</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="o">>=</span> <span class="mi">75</span><span class="p">:</span>
|
|
11707
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">*** Stopping paging loop after 75 entries for testing.'</span><span class="p">)</span>
|
|
11708
|
+
<span class="k">break</span>
|
|
11709
|
+
|
|
11710
|
+
<span class="c1"># anymore page results?</span>
|
|
11711
|
+
<span class="k">if</span> <span class="p">(</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> <span class="ow">or</span> <span class="p">((</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="o">></span> <span class="n">pageObjInitialTotal</span><span class="p">):</span>
|
|
11712
|
+
<span class="c1"># no - all pages were processed.</span>
|
|
11713
|
+
<span class="k">break</span>
|
|
11714
|
+
<span class="k">else</span><span class="p">:</span>
|
|
11715
|
+
<span class="c1"># yes - retrieve the next page of results.</span>
|
|
11716
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</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">'</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>
|
|
11717
|
+
<span class="n">searchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchPlaylists</span><span class="p">(</span><span class="n">criteria</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>
|
|
11718
|
+
|
|
11719
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
11720
|
+
|
|
11721
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
11722
|
+
</code></pre>
|
|
11723
|
+
</div>
|
|
11724
|
+
|
|
11725
|
+
<p></details>
|
|
11726
|
+
<details>
|
|
11727
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
11728
|
+
|
|
11729
|
+
<div class="pdoc-code codehilite">
|
|
11730
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
11731
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
11732
|
+
|
|
11733
|
+
<span class="k">try</span><span class="p">:</span>
|
|
11734
|
+
|
|
11735
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
11736
|
+
<span class="n">SPOTIFY_SCOPES</span><span class="p">:</span><span class="nb">list</span> <span class="o">=</span> \
|
|
11737
|
+
<span class="p">[</span>
|
|
11738
|
+
<span class="s1">'user-read-email'</span><span class="p">,</span>
|
|
11739
|
+
<span class="s1">'user-library-read'</span><span class="p">,</span>
|
|
11740
|
+
<span class="s1">'user-library-modify'</span><span class="p">,</span>
|
|
11741
|
+
<span class="s1">'playlist-modify-private'</span><span class="p">,</span>
|
|
11742
|
+
<span class="s1">'playlist-modify-public'</span>
|
|
11743
|
+
<span class="p">]</span>
|
|
11744
|
+
|
|
11745
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
11746
|
+
<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>
|
|
10107
11747
|
|
|
10108
|
-
|
|
10109
|
-
|
|
10110
|
-
|
|
11748
|
+
<span class="c1"># generate a spotify authorization code with PKCE access token (with scope, private and public data use).</span>
|
|
11749
|
+
<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>
|
|
11750
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
11751
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
10111
11752
|
|
|
10112
|
-
|
|
11753
|
+
<span class="c1"># get Spotify catalog information about Playlists that match a keyword string.</span>
|
|
11754
|
+
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'MercyMe'</span>
|
|
11755
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Searching for Playlists - criteria: "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">criteria</span><span class="p">)</span>
|
|
11756
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchPlaylists</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">limitTotal</span><span class="o">=</span><span class="mi">75</span><span class="p">)</span>
|
|
10113
11757
|
|
|
10114
|
-
|
|
10115
|
-
|
|
10116
|
-
|
|
10117
|
-
|
|
10118
|
-
|
|
10119
|
-
|
|
10120
|
-
|
|
10121
|
-
|
|
11758
|
+
<span class="c1"># display paging details.</span>
|
|
11759
|
+
<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>
|
|
11760
|
+
<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="o">.</span><span class="n">Playlists</span><span class="p">))</span>
|
|
11761
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Playlists in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Playlists</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
11762
|
+
|
|
11763
|
+
<span class="c1"># display playlist details.</span>
|
|
11764
|
+
<span class="n">playlist</span><span class="p">:</span><span class="n">PlaylistSimplified</span>
|
|
11765
|
+
<span class="k">for</span> <span class="n">playlist</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Playlists</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
11766
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">playlist</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">playlist</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
10122
11767
|
|
|
10123
11768
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
10124
11769
|
|
|
@@ -10126,10 +11771,9 @@ entries that you can return with a search.</p>
|
|
|
10126
11771
|
</code></pre>
|
|
10127
11772
|
</div>
|
|
10128
11773
|
|
|
10129
|
-
<p></details
|
|
10130
|
-
|
|
10131
|
-
<p
|
|
10132
|
-
<summary>Sample Code - Search Episodes</summary></p>
|
|
11774
|
+
<p></details>
|
|
11775
|
+
<details>
|
|
11776
|
+
<summary>Sample Code - Spotify Generated, Daily Mix</summary></p>
|
|
10133
11777
|
|
|
10134
11778
|
<div class="pdoc-code codehilite">
|
|
10135
11779
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -10155,47 +11799,23 @@ entries that you can return with a search.</p>
|
|
|
10155
11799
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
10156
11800
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
10157
11801
|
|
|
10158
|
-
<span class="c1"># get Spotify catalog information about
|
|
10159
|
-
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'
|
|
10160
|
-
<span class="
|
|
10161
|
-
<span class="
|
|
10162
|
-
<span class="n">searchResponse</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">Search</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">criteriaType</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="mi">50</span><span class="p">)</span>
|
|
10163
|
-
|
|
10164
|
-
<span class="c1"># display search response details.</span>
|
|
10165
|
-
<span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">searchResponse</span><span class="p">))</span>
|
|
10166
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span>
|
|
10167
|
-
|
|
10168
|
-
<span class="c1"># save initial search response total, as search next page response total </span>
|
|
10169
|
-
<span class="c1"># will change with each page retrieved. this is odd behavior, as it seems</span>
|
|
10170
|
-
<span class="c1"># that the spotify web api is returning a new result set each time rather </span>
|
|
10171
|
-
<span class="c1"># than working off of a cached result set.</span>
|
|
10172
|
-
<span class="n">pageObjInitialTotal</span><span class="p">:</span><span class="nb">int</span> <span class="o">=</span> <span class="n">searchResponse</span><span class="o">.</span><span class="n">Episodes</span><span class="o">.</span><span class="n">Total</span>
|
|
10173
|
-
|
|
10174
|
-
<span class="c1"># handle pagination, as spotify limits us to a set # of items returned per response.</span>
|
|
10175
|
-
<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
|
|
10176
|
-
|
|
10177
|
-
<span class="c1"># only display episode results for this example.</span>
|
|
10178
|
-
<span class="n">pageObj</span><span class="p">:</span><span class="n">EpisodePageSimplified</span> <span class="o">=</span> <span class="n">searchResponse</span><span class="o">.</span><span class="n">Episodes</span>
|
|
10179
|
-
|
|
10180
|
-
<span class="c1"># display paging details.</span>
|
|
10181
|
-
<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>
|
|
10182
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span>
|
|
10183
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">'Episodes in this page of results:'</span><span class="p">)</span>
|
|
11802
|
+
<span class="c1"># get Spotify catalog information about Playlists that match a keyword string.</span>
|
|
11803
|
+
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'Daily Mix'</span>
|
|
11804
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Searching for Playlists - criteria: "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">criteria</span><span class="p">)</span>
|
|
11805
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchPlaylists</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">limitTotal</span><span class="o">=</span><span class="mi">200</span><span class="p">)</span>
|
|
10184
11806
|
|
|
10185
|
-
|
|
10186
|
-
|
|
10187
|
-
<span class="k">for</span> <span class="n">episode</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
11807
|
+
<span class="c1"># get playlists owned by spotify (e.g. content generated for you).</span>
|
|
11808
|
+
<span class="n">spotifyOwnedPlaylists</span><span class="p">:</span><span class="nb">list</span><span class="p">[</span><span class="n">PlaylistSimplified</span><span class="p">]</span> <span class="o">=</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">GetSpotifyOwnedPlaylists</span><span class="p">()</span>
|
|
10188
11809
|
|
|
10189
|
-
|
|
11810
|
+
<span class="c1"># sort them by name.</span>
|
|
11811
|
+
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">spotifyOwnedPlaylists</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
|
|
11812
|
+
<span class="n">spotifyOwnedPlaylists</span><span class="o">.</span><span class="n">sort</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="p">(</span><span class="n">x</span><span class="o">.</span><span class="n">Name</span> <span class="ow">or</span> <span class="s2">""</span><span class="p">)</span><span class="o">.</span><span class="n">lower</span><span class="p">(),</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
|
|
10190
11813
|
|
|
10191
|
-
|
|
10192
|
-
|
|
10193
|
-
|
|
10194
|
-
|
|
10195
|
-
<span class="
|
|
10196
|
-
<span class="c1"># yes - retrieve the next page of results.</span>
|
|
10197
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">'</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">'</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>
|
|
10198
|
-
<span class="n">searchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">Search</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">criteriaType</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>
|
|
11814
|
+
<span class="c1"># display playlist details.</span>
|
|
11815
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Playlists generated for you by Spotify (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="nb">len</span><span class="p">(</span><span class="n">spotifyOwnedPlaylists</span><span class="p">))</span>
|
|
11816
|
+
<span class="n">playlist</span><span class="p">:</span><span class="n">PlaylistSimplified</span>
|
|
11817
|
+
<span class="k">for</span> <span class="n">playlist</span> <span class="ow">in</span> <span class="n">spotifyOwnedPlaylists</span><span class="p">:</span>
|
|
11818
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">playlist</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">playlist</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
10199
11819
|
|
|
10200
11820
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
10201
11821
|
|
|
@@ -10204,9 +11824,79 @@ entries that you can return with a search.</p>
|
|
|
10204
11824
|
</div>
|
|
10205
11825
|
|
|
10206
11826
|
<p></details></p>
|
|
11827
|
+
</div>
|
|
11828
|
+
|
|
11829
|
+
|
|
11830
|
+
</div>
|
|
11831
|
+
<div id="SpotifyClient.SearchShows" class="classattr">
|
|
11832
|
+
<div class="attr function">
|
|
11833
|
+
|
|
11834
|
+
<span class="def">def</span>
|
|
11835
|
+
<span class="name">SearchShows</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">criteria</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">includeExternal</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/searchresponse.html#SearchResponse">spotifywebapipython.models.searchresponse.SearchResponse</a></span>:</span></span>
|
|
11836
|
+
|
|
11837
|
+
|
|
11838
|
+
</div>
|
|
11839
|
+
<a class="headerlink" href="#SpotifyClient.SearchShows"></a>
|
|
11840
|
+
|
|
11841
|
+
<div class="docstring"><p>Get Spotify catalog information about Shows that match a keyword string. </p>
|
|
11842
|
+
|
|
11843
|
+
<h6 id="arguments">Arguments:</h6>
|
|
11844
|
+
|
|
11845
|
+
<ul>
|
|
11846
|
+
<li><strong>criteria (str):</strong> Your search query. <br />
|
|
11847
|
+
You can narrow down your search using field filters. <br />
|
|
11848
|
+
The available filters are album, artist, track, year, upc, tag:hipster, tag:new,
|
|
11849
|
+
isrc, and genre. Each field filter only applies to certain result types. <br />
|
|
11850
|
+
The artist and year filters can be used while searching albums, artists and tracks.
|
|
11851
|
+
You can filter on a single year or a range (e.g. 1955-1960). <br />
|
|
11852
|
+
The album filter can be used while searching albums and tracks. <br />
|
|
11853
|
+
The genre filter can be used while searching artists and tracks. <br />
|
|
11854
|
+
The isrc and track filters can be used while searching tracks. <br />
|
|
11855
|
+
The upc, tag:new and tag:hipster filters can only be used while searching albums.
|
|
11856
|
+
The tag:new filter will return albums released in the past two weeks and tag:hipster
|
|
11857
|
+
can be used to return only albums with the lowest 10% popularity.</li>
|
|
11858
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
11859
|
+
Default: 20, Range: 1 to 50. </li>
|
|
11860
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
11861
|
+
Use with limit to get the next set of items. <br />
|
|
11862
|
+
Default: 0 (the first item). Range: 0 to 1000. </li>
|
|
11863
|
+
<li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
|
|
11864
|
+
is available in that market will be returned. If a valid user access token is specified
|
|
11865
|
+
in the request header, the country associated with the user account will take priority over
|
|
11866
|
+
this parameter. <br />
|
|
11867
|
+
Note: If neither market or user country are provided, the content is considered unavailable for the client. <br />
|
|
11868
|
+
Users can view the country that is associated with their account in the account settings. <br />
|
|
11869
|
+
Example: <code>ES</code></li>
|
|
11870
|
+
<li><strong>includeExternal (str):</strong> If "audio" is specified it signals that the client can play externally hosted audio content, and
|
|
11871
|
+
marks the content as playable in the response. By default externally hosted audio content is marked
|
|
11872
|
+
as unplayable in the response. <br />
|
|
11873
|
+
Allowed values: "audio"</li>
|
|
11874
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
11875
|
+
If specified, this argument overrides the limit and offset argument values
|
|
11876
|
+
and paging is automatically used to retrieve all available items up to the
|
|
11877
|
+
maximum number specified. <br />
|
|
11878
|
+
Default: None (disabled)</li>
|
|
11879
|
+
</ul>
|
|
11880
|
+
|
|
11881
|
+
<h6 id="returns">Returns:</h6>
|
|
11882
|
+
|
|
11883
|
+
<blockquote>
|
|
11884
|
+
<p>A <code>SearchResponse</code> object that contains the search results.</p>
|
|
11885
|
+
</blockquote>
|
|
11886
|
+
|
|
11887
|
+
<h6 id="raises">Raises:</h6>
|
|
11888
|
+
|
|
11889
|
+
<ul>
|
|
11890
|
+
<li><strong>SpotifyWebApiError:</strong> If the Spotify Web API request was for a non-authorization service
|
|
11891
|
+
and the response contains error information.</li>
|
|
11892
|
+
<li><strong>SpotifApiError:</strong> If the method fails for any other reason.</li>
|
|
11893
|
+
</ul>
|
|
11894
|
+
|
|
11895
|
+
<p>Note that Spotify Web API automatically limits you to 1,000 max entries per type that can
|
|
11896
|
+
be returned with a search.</p>
|
|
10207
11897
|
|
|
10208
11898
|
<p><details>
|
|
10209
|
-
<summary>Sample Code -
|
|
11899
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
10210
11900
|
|
|
10211
11901
|
<div class="pdoc-code codehilite">
|
|
10212
11902
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -10232,11 +11922,12 @@ entries that you can return with a search.</p>
|
|
|
10232
11922
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
10233
11923
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
10234
11924
|
|
|
10235
|
-
<span class="c1"># get Spotify catalog information about
|
|
10236
|
-
<span class="
|
|
10237
|
-
<span class="
|
|
10238
|
-
<span class="
|
|
10239
|
-
<span class="
|
|
11925
|
+
<span class="c1"># get Spotify catalog information about Shows that match a keyword string.</span>
|
|
11926
|
+
<span class="c1"># note - use an Authorization type of token or the `market` argument for this</span>
|
|
11927
|
+
<span class="c1"># method, otherwise the item result are all null.</span>
|
|
11928
|
+
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'Joe Rogan'</span>
|
|
11929
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Searching for Shows - criteria: "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">criteria</span><span class="p">)</span>
|
|
11930
|
+
<span class="n">searchResponse</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchShows</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="mi">25</span><span class="p">)</span>
|
|
10240
11931
|
|
|
10241
11932
|
<span class="c1"># display search response details.</span>
|
|
10242
11933
|
<span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">searchResponse</span><span class="p">))</span>
|
|
@@ -10246,24 +11937,28 @@ entries that you can return with a search.</p>
|
|
|
10246
11937
|
<span class="c1"># will change with each page retrieved. this is odd behavior, as it seems</span>
|
|
10247
11938
|
<span class="c1"># that the spotify web api is returning a new result set each time rather </span>
|
|
10248
11939
|
<span class="c1"># than working off of a cached result set.</span>
|
|
10249
|
-
<span class="n">pageObjInitialTotal</span><span class="p">:</span><span class="nb">int</span> <span class="o">=</span> <span class="n">searchResponse</span><span class="o">.</span><span class="n">
|
|
11940
|
+
<span class="n">pageObjInitialTotal</span><span class="p">:</span><span class="nb">int</span> <span class="o">=</span> <span class="n">searchResponse</span><span class="o">.</span><span class="n">Shows</span><span class="o">.</span><span class="n">Total</span>
|
|
10250
11941
|
|
|
10251
11942
|
<span class="c1"># handle pagination, as spotify limits us to a set # of items returned per response.</span>
|
|
10252
11943
|
<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
|
|
10253
11944
|
|
|
10254
|
-
<span class="c1"># only display
|
|
10255
|
-
<span class="n">pageObj</span><span class="p">:</span><span class="n">
|
|
11945
|
+
<span class="c1"># only display show results for this example.</span>
|
|
11946
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">ShowPageSimplified</span> <span class="o">=</span> <span class="n">searchResponse</span><span class="o">.</span><span class="n">Shows</span>
|
|
10256
11947
|
|
|
10257
11948
|
<span class="c1"># display paging details.</span>
|
|
10258
11949
|
<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>
|
|
10259
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">'
|
|
10260
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">'Playlists in this page of results:'</span><span class="p">)</span>
|
|
11950
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Shows in this page of results:'</span><span class="p">)</span>
|
|
10261
11951
|
|
|
10262
|
-
<span class="c1"># display
|
|
10263
|
-
<span class="n">
|
|
10264
|
-
<span class="k">for</span> <span class="n">
|
|
11952
|
+
<span class="c1"># display show details.</span>
|
|
11953
|
+
<span class="n">show</span><span class="p">:</span><span class="n">ShowSimplified</span>
|
|
11954
|
+
<span class="k">for</span> <span class="n">show</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
11955
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">show</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">show</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
10265
11956
|
|
|
10266
|
-
|
|
11957
|
+
<span class="c1"># for testing - don't return 1000 results! </span>
|
|
11958
|
+
<span class="c1"># comment the following 3 lines of code if you want ALL results.</span>
|
|
11959
|
+
<span class="k">if</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="o">>=</span> <span class="mi">75</span><span class="p">:</span>
|
|
11960
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">*** Stopping paging loop after 75 entries for testing.'</span><span class="p">)</span>
|
|
11961
|
+
<span class="k">break</span>
|
|
10267
11962
|
|
|
10268
11963
|
<span class="c1"># anymore page results?</span>
|
|
10269
11964
|
<span class="k">if</span> <span class="p">(</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> <span class="ow">or</span> <span class="p">((</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="o">></span> <span class="n">pageObjInitialTotal</span><span class="p">):</span>
|
|
@@ -10272,7 +11967,7 @@ entries that you can return with a search.</p>
|
|
|
10272
11967
|
<span class="k">else</span><span class="p">:</span>
|
|
10273
11968
|
<span class="c1"># yes - retrieve the next page of results.</span>
|
|
10274
11969
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</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">'</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>
|
|
10275
|
-
<span class="n">searchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">
|
|
11970
|
+
<span class="n">searchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchShows</span><span class="p">(</span><span class="n">criteria</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>
|
|
10276
11971
|
|
|
10277
11972
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
10278
11973
|
|
|
@@ -10280,10 +11975,9 @@ entries that you can return with a search.</p>
|
|
|
10280
11975
|
</code></pre>
|
|
10281
11976
|
</div>
|
|
10282
11977
|
|
|
10283
|
-
<p></details
|
|
10284
|
-
|
|
10285
|
-
<p
|
|
10286
|
-
<summary>Sample Code - Search Shows</summary></p>
|
|
11978
|
+
<p></details>
|
|
11979
|
+
<details>
|
|
11980
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
10287
11981
|
|
|
10288
11982
|
<div class="pdoc-code codehilite">
|
|
10289
11983
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -10309,60 +12003,103 @@ entries that you can return with a search.</p>
|
|
|
10309
12003
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
10310
12004
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
10311
12005
|
|
|
10312
|
-
<span class="c1"># get Spotify catalog information about
|
|
10313
|
-
<span class="c1"># note -
|
|
10314
|
-
<span class="c1">#
|
|
12006
|
+
<span class="c1"># get Spotify catalog information about Shows that match a keyword string.</span>
|
|
12007
|
+
<span class="c1"># note - use an Authorization type of token or the `market` argument for this</span>
|
|
12008
|
+
<span class="c1"># method, otherwise the item result are all null.</span>
|
|
10315
12009
|
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'Joe Rogan'</span>
|
|
10316
|
-
<span class="
|
|
10317
|
-
<span class="
|
|
10318
|
-
<span class="n">searchResponse</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">Search</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">criteriaType</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="mi">50</span><span class="p">)</span>
|
|
12010
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Searching for Shows - criteria: "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">criteria</span><span class="p">)</span>
|
|
12011
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchShows</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">limitTotal</span><span class="o">=</span><span class="mi">75</span><span class="p">)</span>
|
|
10319
12012
|
|
|
10320
|
-
<span class="c1"># display
|
|
10321
|
-
<span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">
|
|
10322
|
-
<span class="nb">print</span><span class="p">(</span><span class="
|
|
12013
|
+
<span class="c1"># display paging details.</span>
|
|
12014
|
+
<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>
|
|
12015
|
+
<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="o">.</span><span class="n">Shows</span><span class="p">))</span>
|
|
12016
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Shows in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Shows</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
10323
12017
|
|
|
10324
|
-
<span class="c1">#
|
|
10325
|
-
<span class="
|
|
10326
|
-
<span class="
|
|
10327
|
-
|
|
10328
|
-
<span class="n">pageObjInitialTotal</span><span class="p">:</span><span class="nb">int</span> <span class="o">=</span> <span class="n">searchResponse</span><span class="o">.</span><span class="n">Shows</span><span class="o">.</span><span class="n">Total</span>
|
|
12018
|
+
<span class="c1"># display show details.</span>
|
|
12019
|
+
<span class="n">show</span><span class="p">:</span><span class="n">ShowSimplified</span>
|
|
12020
|
+
<span class="k">for</span> <span class="n">show</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Shows</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
12021
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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">show</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">show</span><span class="o">.</span><span class="n">Uri</span><span class="p">))</span>
|
|
10329
12022
|
|
|
10330
|
-
|
|
10331
|
-
<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
|
|
12023
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
10332
12024
|
|
|
10333
|
-
|
|
10334
|
-
|
|
12025
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
12026
|
+
</code></pre>
|
|
12027
|
+
</div>
|
|
10335
12028
|
|
|
10336
|
-
|
|
10337
|
-
|
|
10338
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span>
|
|
10339
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">'Shows in this page of results:'</span><span class="p">)</span>
|
|
12029
|
+
<p></details></p>
|
|
12030
|
+
</div>
|
|
10340
12031
|
|
|
10341
|
-
<span class="c1"># display show details.</span>
|
|
10342
|
-
<span class="n">show</span><span class="p">:</span><span class="n">ShowSimplified</span>
|
|
10343
|
-
<span class="k">for</span> <span class="n">show</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
10344
12032
|
|
|
10345
|
-
|
|
12033
|
+
</div>
|
|
12034
|
+
<div id="SpotifyClient.SearchTracks" class="classattr">
|
|
12035
|
+
<div class="attr function">
|
|
12036
|
+
|
|
12037
|
+
<span class="def">def</span>
|
|
12038
|
+
<span class="name">SearchTracks</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">criteria</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">includeExternal</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/searchresponse.html#SearchResponse">spotifywebapipython.models.searchresponse.SearchResponse</a></span>:</span></span>
|
|
10346
12039
|
|
|
10347
|
-
|
|
10348
|
-
|
|
10349
|
-
|
|
10350
|
-
|
|
10351
|
-
|
|
10352
|
-
<span class="c1"># yes - retrieve the next page of results.</span>
|
|
10353
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">'</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">'</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>
|
|
10354
|
-
<span class="n">searchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">Search</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">criteriaType</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>
|
|
12040
|
+
|
|
12041
|
+
</div>
|
|
12042
|
+
<a class="headerlink" href="#SpotifyClient.SearchTracks"></a>
|
|
12043
|
+
|
|
12044
|
+
<div class="docstring"><p>Get Spotify catalog information about Tracks that match a keyword string. </p>
|
|
10355
12045
|
|
|
10356
|
-
<
|
|
12046
|
+
<h6 id="arguments">Arguments:</h6>
|
|
10357
12047
|
|
|
10358
|
-
|
|
10359
|
-
|
|
10360
|
-
|
|
12048
|
+
<ul>
|
|
12049
|
+
<li><strong>criteria (str):</strong> Your search query. <br />
|
|
12050
|
+
You can narrow down your search using field filters. <br />
|
|
12051
|
+
The available filters are album, artist, track, year, upc, tag:hipster, tag:new,
|
|
12052
|
+
isrc, and genre. Each field filter only applies to certain result types. <br />
|
|
12053
|
+
The artist and year filters can be used while searching albums, artists and tracks.
|
|
12054
|
+
You can filter on a single year or a range (e.g. 1955-1960). <br />
|
|
12055
|
+
The album filter can be used while searching albums and tracks. <br />
|
|
12056
|
+
The genre filter can be used while searching artists and tracks. <br />
|
|
12057
|
+
The isrc and track filters can be used while searching tracks. <br />
|
|
12058
|
+
The upc, tag:new and tag:hipster filters can only be used while searching albums.
|
|
12059
|
+
The tag:new filter will return albums released in the past two weeks and tag:hipster
|
|
12060
|
+
can be used to return only albums with the lowest 10% popularity.</li>
|
|
12061
|
+
<li><strong>limit (int):</strong> The maximum number of items to return in a page of items. <br />
|
|
12062
|
+
Default: 20, Range: 1 to 50. </li>
|
|
12063
|
+
<li><strong>offset (int):</strong> The page index offset of the first item to return. <br />
|
|
12064
|
+
Use with limit to get the next set of items. <br />
|
|
12065
|
+
Default: 0 (the first item). Range: 0 to 1000. </li>
|
|
12066
|
+
<li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
|
|
12067
|
+
is available in that market will be returned. If a valid user access token is specified
|
|
12068
|
+
in the request header, the country associated with the user account will take priority over
|
|
12069
|
+
this parameter. <br />
|
|
12070
|
+
Note: If neither market or user country are provided, the content is considered unavailable for the client. <br />
|
|
12071
|
+
Users can view the country that is associated with their account in the account settings. <br />
|
|
12072
|
+
Example: <code>ES</code></li>
|
|
12073
|
+
<li><strong>includeExternal (str):</strong> If "audio" is specified it signals that the client can play externally hosted audio content, and
|
|
12074
|
+
marks the content as playable in the response. By default externally hosted audio content is marked
|
|
12075
|
+
as unplayable in the response. <br />
|
|
12076
|
+
Allowed values: "audio"</li>
|
|
12077
|
+
<li><strong>limitTotal (int):</strong> The maximum number of items to return for the request. <br />
|
|
12078
|
+
If specified, this argument overrides the limit and offset argument values
|
|
12079
|
+
and paging is automatically used to retrieve all available items up to the
|
|
12080
|
+
maximum number specified. <br />
|
|
12081
|
+
Default: None (disabled)</li>
|
|
12082
|
+
</ul>
|
|
10361
12083
|
|
|
10362
|
-
<
|
|
12084
|
+
<h6 id="returns">Returns:</h6>
|
|
12085
|
+
|
|
12086
|
+
<blockquote>
|
|
12087
|
+
<p>A <code>SearchResponse</code> object that contains the search results.</p>
|
|
12088
|
+
</blockquote>
|
|
12089
|
+
|
|
12090
|
+
<h6 id="raises">Raises:</h6>
|
|
12091
|
+
|
|
12092
|
+
<ul>
|
|
12093
|
+
<li><strong>SpotifyWebApiError:</strong> If the Spotify Web API request was for a non-authorization service
|
|
12094
|
+
and the response contains error information.</li>
|
|
12095
|
+
<li><strong>SpotifApiError:</strong> If the method fails for any other reason.</li>
|
|
12096
|
+
</ul>
|
|
12097
|
+
|
|
12098
|
+
<p>Note that Spotify Web API automatically limits you to 1,000 max entries per type that can
|
|
12099
|
+
be returned with a search.</p>
|
|
10363
12100
|
|
|
10364
12101
|
<p><details>
|
|
10365
|
-
<summary>Sample Code -
|
|
12102
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
10366
12103
|
|
|
10367
12104
|
<div class="pdoc-code codehilite">
|
|
10368
12105
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -10381,11 +12118,10 @@ entries that you can return with a search.</p>
|
|
|
10381
12118
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
10382
12119
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
10383
12120
|
|
|
10384
|
-
<span class="c1"># get Spotify catalog information about
|
|
12121
|
+
<span class="c1"># get Spotify catalog information about Tracks that match a keyword string.</span>
|
|
10385
12122
|
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'Flawless'</span>
|
|
10386
|
-
<span class="
|
|
10387
|
-
<span class="
|
|
10388
|
-
<span class="n">searchResponse</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">Search</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">criteriaType</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="mi">50</span><span class="p">)</span>
|
|
12123
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Searching for Tracks - criteria: "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">criteria</span><span class="p">)</span>
|
|
12124
|
+
<span class="n">searchResponse</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchTracks</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="mi">25</span><span class="p">)</span>
|
|
10389
12125
|
|
|
10390
12126
|
<span class="c1"># display search response details.</span>
|
|
10391
12127
|
<span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">searchResponse</span><span class="p">))</span>
|
|
@@ -10403,6 +12139,11 @@ entries that you can return with a search.</p>
|
|
|
10403
12139
|
<span class="c1"># only display track results for this example.</span>
|
|
10404
12140
|
<span class="n">pageObj</span><span class="p">:</span><span class="n">TrackPage</span> <span class="o">=</span> <span class="n">searchResponse</span><span class="o">.</span><span class="n">Tracks</span>
|
|
10405
12141
|
|
|
12142
|
+
<span class="c1"># for testing - don't return 1000 results! </span>
|
|
12143
|
+
<span class="c1"># comment the following 2 lines of code if you want ALL results.</span>
|
|
12144
|
+
<span class="k">if</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="o">></span> <span class="mi">75</span><span class="p">:</span>
|
|
12145
|
+
<span class="k">break</span>
|
|
12146
|
+
|
|
10406
12147
|
<span class="c1"># display paging details.</span>
|
|
10407
12148
|
<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>
|
|
10408
12149
|
<span class="nb">print</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span>
|
|
@@ -10411,7 +12152,6 @@ entries that you can return with a search.</p>
|
|
|
10411
12152
|
<span class="c1"># display track details.</span>
|
|
10412
12153
|
<span class="n">track</span><span class="p">:</span><span class="n">Track</span>
|
|
10413
12154
|
<span class="k">for</span> <span class="n">track</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
10414
|
-
|
|
10415
12155
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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>
|
|
10416
12156
|
|
|
10417
12157
|
<span class="c1"># anymore page results?</span>
|
|
@@ -10421,7 +12161,49 @@ entries that you can return with a search.</p>
|
|
|
10421
12161
|
<span class="k">else</span><span class="p">:</span>
|
|
10422
12162
|
<span class="c1"># yes - retrieve the next page of results.</span>
|
|
10423
12163
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'</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">'</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>
|
|
10424
|
-
<span class="n">searchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">
|
|
12164
|
+
<span class="n">searchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchTracks</span><span class="p">(</span><span class="n">criteria</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>
|
|
12165
|
+
|
|
12166
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
12167
|
+
|
|
12168
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"** Exception: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
|
12169
|
+
</code></pre>
|
|
12170
|
+
</div>
|
|
12171
|
+
|
|
12172
|
+
<p></details>
|
|
12173
|
+
<details>
|
|
12174
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
12175
|
+
|
|
12176
|
+
<div class="pdoc-code codehilite">
|
|
12177
|
+
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
12178
|
+
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
12179
|
+
|
|
12180
|
+
<span class="k">try</span><span class="p">:</span>
|
|
12181
|
+
|
|
12182
|
+
<span class="n">CLIENT_ID</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_id'</span>
|
|
12183
|
+
<span class="n">CLIENT_SECRET</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'your_client_secret'</span>
|
|
12184
|
+
|
|
12185
|
+
<span class="c1"># create new spotify client instance.</span>
|
|
12186
|
+
<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>
|
|
12187
|
+
|
|
12188
|
+
<span class="c1"># generate a spotify client credentials access token (no scope, public data use only).</span>
|
|
12189
|
+
<span class="n">spotify</span><span class="o">.</span><span class="n">SetAuthTokenClientCredentials</span><span class="p">(</span><span class="n">CLIENT_ID</span><span class="p">,</span> <span class="n">CLIENT_SECRET</span><span class="p">)</span>
|
|
12190
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Auth Token:</span><span class="se">\n</span><span class="s1"> Type="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> Scope="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">AuthorizationType</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">AuthToken</span><span class="o">.</span><span class="n">Scope</span><span class="p">)))</span>
|
|
12191
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">User:</span><span class="se">\n</span><span class="s1"> DisplayName="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1"> EMail="</span><span class="si">%s</span><span class="s1">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">DisplayName</span><span class="p">,</span> <span class="n">spotify</span><span class="o">.</span><span class="n">UserProfile</span><span class="o">.</span><span class="n">EMail</span><span class="p">))</span>
|
|
12192
|
+
|
|
12193
|
+
<span class="c1"># get Spotify catalog information about Tracks that match a keyword string.</span>
|
|
12194
|
+
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'Parliament Funkadelic'</span>
|
|
12195
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Searching for Tracks - criteria: "</span><span class="si">%s</span><span class="s1">" ...</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">criteria</span><span class="p">)</span>
|
|
12196
|
+
<span class="n">pageObj</span><span class="p">:</span><span class="n">SearchResponse</span> <span class="o">=</span> <span class="n">spotify</span><span class="o">.</span><span class="n">SearchTracks</span><span class="p">(</span><span class="n">criteria</span><span class="p">,</span> <span class="n">limitTotal</span><span class="o">=</span><span class="mi">75</span><span class="p">)</span>
|
|
12197
|
+
|
|
12198
|
+
<span class="c1"># display paging details.</span>
|
|
12199
|
+
<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>
|
|
12200
|
+
<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="o">.</span><span class="n">Tracks</span><span class="p">))</span>
|
|
12201
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">Tracks in this page of results (</span><span class="si">%d</span><span class="s1"> items):'</span> <span class="o">%</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Tracks</span><span class="o">.</span><span class="n">ItemsCount</span><span class="p">)</span>
|
|
12202
|
+
|
|
12203
|
+
<span class="c1"># display track details.</span>
|
|
12204
|
+
<span class="n">track</span><span class="p">:</span><span class="n">Track</span>
|
|
12205
|
+
<span class="k">for</span> <span class="n">track</span> <span class="ow">in</span> <span class="n">pageObj</span><span class="o">.</span><span class="n">Tracks</span><span class="o">.</span><span class="n">Items</span><span class="p">:</span>
|
|
12206
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'- "</span><span class="si">{name}</span><span class="s1">" (</span><span class="si">{uri}</span><span class="s1">)'</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>
|
|
10425
12207
|
|
|
10426
12208
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">ex</span><span class="p">:</span>
|
|
10427
12209
|
|