spotifywebapiPython 1.0.27__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.27.dist-info → spotifywebapiPython-1.0.28.dist-info}/METADATA +1 -1
- {spotifywebapiPython-1.0.27.dist-info → spotifywebapiPython-1.0.28.dist-info}/RECORD +24 -24
- spotifywebapipython/const.py +26 -2
- spotifywebapipython/docs/__init__.html +20 -2
- 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 +2105 -326
- 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 +2918 -335
- {spotifywebapiPython-1.0.27.dist-info → spotifywebapiPython-1.0.28.dist-info}/LICENSE +0 -0
- {spotifywebapiPython-1.0.27.dist-info → spotifywebapiPython-1.0.28.dist-info}/WHEEL +0 -0
- {spotifywebapiPython-1.0.27.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
|
|
|
@@ -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></span><span class="return-annotation">) -> <span class="n"><a href="models/albumpagesimplified.html#AlbumPageSimplified">spotifywebapipython.models.albumpagesimplified.AlbumPageSimplified</a></span>:</span></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>
|
|
@@ -2750,7 +2906,7 @@ Example: <code>6APm8EjxOHSYM5B4i3vT3q</code></li>
|
|
|
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,6 +2917,11 @@ 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>
|
|
@@ -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
|
|
|
@@ -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>
|
|
@@ -3007,8 +3210,13 @@ and the response contains error information.</li>
|
|
|
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
3212
|
Example: <code>6APm8EjxOHSYM5B4i3vT3q</code> </li>
|
|
3010
|
-
<li><strong>limit (int):</strong> The maximum number of items to return. <br />
|
|
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>
|
|
@@ -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
|
|
|
@@ -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
|
-
|
|
3817
|
-
|
|
3818
|
-
|
|
3819
|
-
|
|
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">
|
|
4215
|
+
|
|
4216
|
+
<span class="def">def</span>
|
|
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 />
|
|
@@ -5692,7 +6240,7 @@ and the response contains error information.</li>
|
|
|
5692
6240
|
<div class="attr function">
|
|
5693
6241
|
|
|
5694
6242
|
<span class="def">def</span>
|
|
5695
|
-
<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>
|
|
5696
6244
|
|
|
5697
6245
|
|
|
5698
6246
|
</div>
|
|
@@ -5707,9 +6255,9 @@ and the response contains error information.</li>
|
|
|
5707
6255
|
<ul>
|
|
5708
6256
|
<li><strong>playlistId (str):</strong> The Spotify ID of the playlist. <br />
|
|
5709
6257
|
Example: <code>5v5ETK9WFXAnGQ3MRubKuE</code></li>
|
|
5710
|
-
<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 />
|
|
5711
6259
|
Default: 50, Range: 1 to 50. </li>
|
|
5712
|
-
<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 />
|
|
5713
6261
|
Use with limit to get the next set of items. <br />
|
|
5714
6262
|
Default: 0 (the first item). </li>
|
|
5715
6263
|
<li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
|
|
@@ -5737,6 +6285,11 @@ Valid types are: track and episode. <br />
|
|
|
5737
6285
|
Note: This parameter was introduced to allow existing clients to maintain their current behaviour
|
|
5738
6286
|
and might be deprecated in the future. In addition to providing this parameter, make sure that your
|
|
5739
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>
|
|
5740
6293
|
</ul>
|
|
5741
6294
|
|
|
5742
6295
|
<h6 id="returns">Returns:</h6>
|
|
@@ -5754,7 +6307,7 @@ and the response contains error information.</li>
|
|
|
5754
6307
|
</ul>
|
|
5755
6308
|
|
|
5756
6309
|
<p><details>
|
|
5757
|
-
<summary>Sample Code</summary></p>
|
|
6310
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
5758
6311
|
|
|
5759
6312
|
<div class="pdoc-code codehilite">
|
|
5760
6313
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -5815,6 +6368,49 @@ and the response contains error information.</li>
|
|
|
5815
6368
|
</code></pre>
|
|
5816
6369
|
</div>
|
|
5817
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
|
+
|
|
5818
6414
|
<p></details></p>
|
|
5819
6415
|
</div>
|
|
5820
6416
|
|
|
@@ -5824,7 +6420,7 @@ and the response contains error information.</li>
|
|
|
5824
6420
|
<div class="attr function">
|
|
5825
6421
|
|
|
5826
6422
|
<span class="def">def</span>
|
|
5827
|
-
<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>
|
|
5828
6424
|
|
|
5829
6425
|
|
|
5830
6426
|
</div>
|
|
@@ -5837,11 +6433,16 @@ and the response contains error information.</li>
|
|
|
5837
6433
|
<h6 id="arguments">Arguments:</h6>
|
|
5838
6434
|
|
|
5839
6435
|
<ul>
|
|
5840
|
-
<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 />
|
|
5841
6437
|
Default: 20, Range: 1 to 50. </li>
|
|
5842
|
-
<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 />
|
|
5843
6439
|
Use with limit to get the next set of items. <br />
|
|
5844
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>
|
|
5845
6446
|
</ul>
|
|
5846
6447
|
|
|
5847
6448
|
<h6 id="returns">Returns:</h6>
|
|
@@ -5859,7 +6460,7 @@ and the response contains error information.</li>
|
|
|
5859
6460
|
</ul>
|
|
5860
6461
|
|
|
5861
6462
|
<p><details>
|
|
5862
|
-
<summary>Sample Code</summary></p>
|
|
6463
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
5863
6464
|
|
|
5864
6465
|
<div class="pdoc-code codehilite">
|
|
5865
6466
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -5920,6 +6521,55 @@ and the response contains error information.</li>
|
|
|
5920
6521
|
</code></pre>
|
|
5921
6522
|
</div>
|
|
5922
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
|
+
|
|
5923
6573
|
<p></details></p>
|
|
5924
6574
|
</div>
|
|
5925
6575
|
|
|
@@ -5929,7 +6579,7 @@ and the response contains error information.</li>
|
|
|
5929
6579
|
<div class="attr function">
|
|
5930
6580
|
|
|
5931
6581
|
<span class="def">def</span>
|
|
5932
|
-
<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>
|
|
5933
6583
|
|
|
5934
6584
|
|
|
5935
6585
|
</div>
|
|
@@ -5944,11 +6594,16 @@ and the response contains error information.</li>
|
|
|
5944
6594
|
<ul>
|
|
5945
6595
|
<li><strong>userId (str):</strong> The user's Spotify user ID. <br />
|
|
5946
6596
|
Example: <code>smedjan</code></li>
|
|
5947
|
-
<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 />
|
|
5948
6598
|
Default: 20, Range: 1 to 50. </li>
|
|
5949
|
-
<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 />
|
|
5950
6600
|
Use with limit to get the next set of items. <br />
|
|
5951
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>
|
|
5952
6607
|
</ul>
|
|
5953
6608
|
|
|
5954
6609
|
<h6 id="returns">Returns:</h6>
|
|
@@ -5966,7 +6621,7 @@ and the response contains error information.</li>
|
|
|
5966
6621
|
</ul>
|
|
5967
6622
|
|
|
5968
6623
|
<p><details>
|
|
5969
|
-
<summary>Sample Code</summary></p>
|
|
6624
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
5970
6625
|
|
|
5971
6626
|
<div class="pdoc-code codehilite">
|
|
5972
6627
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -6028,6 +6683,56 @@ and the response contains error information.</li>
|
|
|
6028
6683
|
</code></pre>
|
|
6029
6684
|
</div>
|
|
6030
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
|
+
|
|
6031
6736
|
<p></details></p>
|
|
6032
6737
|
</div>
|
|
6033
6738
|
|
|
@@ -6150,7 +6855,7 @@ and the response contains error information.</li>
|
|
|
6150
6855
|
<div class="attr function">
|
|
6151
6856
|
|
|
6152
6857
|
<span class="def">def</span>
|
|
6153
|
-
<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>
|
|
6154
6859
|
|
|
6155
6860
|
|
|
6156
6861
|
</div>
|
|
@@ -6165,7 +6870,7 @@ and the response contains error information.</li>
|
|
|
6165
6870
|
<ul>
|
|
6166
6871
|
<li><strong>showId (str):</strong> The Spotify ID for the show.
|
|
6167
6872
|
Example: <code>38bS44xjbVVZ3No3ByF1dJ</code></li>
|
|
6168
|
-
<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 />
|
|
6169
6874
|
Default: 20, Range: 1 to 50. </li>
|
|
6170
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 />
|
|
6171
6876
|
Default: 0 (the first item). </li>
|
|
@@ -6176,6 +6881,11 @@ this parameter. <br />
|
|
|
6176
6881
|
Note: If neither market or user country are provided, the content is considered unavailable for the client. <br />
|
|
6177
6882
|
Users can view the country that is associated with their account in the account settings. <br />
|
|
6178
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>
|
|
6179
6889
|
</ul>
|
|
6180
6890
|
|
|
6181
6891
|
<h6 id="returns">Returns:</h6>
|
|
@@ -6193,7 +6903,7 @@ and the response contains error information.</li>
|
|
|
6193
6903
|
</ul>
|
|
6194
6904
|
|
|
6195
6905
|
<p><details>
|
|
6196
|
-
<summary>Sample Code</summary></p>
|
|
6906
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
6197
6907
|
|
|
6198
6908
|
<div class="pdoc-code codehilite">
|
|
6199
6909
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -6261,16 +6971,68 @@ and the response contains error information.</li>
|
|
|
6261
6971
|
</code></pre>
|
|
6262
6972
|
</div>
|
|
6263
6973
|
|
|
6264
|
-
<p></details
|
|
6265
|
-
|
|
6974
|
+
<p></details>
|
|
6975
|
+
<details>
|
|
6976
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
6266
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>
|
|
6267
6981
|
|
|
6268
|
-
|
|
6269
|
-
|
|
6270
|
-
|
|
6271
|
-
|
|
6272
|
-
|
|
6273
|
-
|
|
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>
|
|
6274
7036
|
|
|
6275
7037
|
|
|
6276
7038
|
</div>
|
|
@@ -6283,11 +7045,16 @@ and the response contains error information.</li>
|
|
|
6283
7045
|
<h6 id="arguments">Arguments:</h6>
|
|
6284
7046
|
|
|
6285
7047
|
<ul>
|
|
6286
|
-
<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 />
|
|
6287
7049
|
Default: 20, Range: 1 to 50. </li>
|
|
6288
|
-
<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 />
|
|
6289
7051
|
Use with limit to get the next set of items. <br />
|
|
6290
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>
|
|
6291
7058
|
</ul>
|
|
6292
7059
|
|
|
6293
7060
|
<h6 id="returns">Returns:</h6>
|
|
@@ -6305,7 +7072,7 @@ and the response contains error information.</li>
|
|
|
6305
7072
|
</ul>
|
|
6306
7073
|
|
|
6307
7074
|
<p><details>
|
|
6308
|
-
<summary>Sample Code</summary></p>
|
|
7075
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
6309
7076
|
|
|
6310
7077
|
<div class="pdoc-code codehilite">
|
|
6311
7078
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -6363,6 +7130,48 @@ and the response contains error information.</li>
|
|
|
6363
7130
|
</code></pre>
|
|
6364
7131
|
</div>
|
|
6365
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
|
+
|
|
6366
7175
|
<p></details></p>
|
|
6367
7176
|
</div>
|
|
6368
7177
|
|
|
@@ -6613,7 +7422,7 @@ and the response contains error information.</li>
|
|
|
6613
7422
|
<div class="attr function">
|
|
6614
7423
|
|
|
6615
7424
|
<span class="def">def</span>
|
|
6616
|
-
<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>
|
|
6617
7426
|
|
|
6618
7427
|
|
|
6619
7428
|
</div>
|
|
@@ -6626,9 +7435,9 @@ and the response contains error information.</li>
|
|
|
6626
7435
|
<h6 id="arguments">Arguments:</h6>
|
|
6627
7436
|
|
|
6628
7437
|
<ul>
|
|
6629
|
-
<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 />
|
|
6630
7439
|
Default: 20, Range: 1 to 50. </li>
|
|
6631
|
-
<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 />
|
|
6632
7441
|
Use with limit to get the next set of items. <br />
|
|
6633
7442
|
Default: 0 (the first item). </li>
|
|
6634
7443
|
<li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
|
|
@@ -6638,6 +7447,11 @@ this parameter. <br />
|
|
|
6638
7447
|
Note: If neither market or user country are provided, the content is considered unavailable for the client. <br />
|
|
6639
7448
|
Users can view the country that is associated with their account in the account settings. <br />
|
|
6640
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>
|
|
6641
7455
|
</ul>
|
|
6642
7456
|
|
|
6643
7457
|
<h6 id="returns">Returns:</h6>
|
|
@@ -6655,7 +7469,7 @@ and the response contains error information.</li>
|
|
|
6655
7469
|
</ul>
|
|
6656
7470
|
|
|
6657
7471
|
<p><details>
|
|
6658
|
-
<summary>Sample Code</summary></p>
|
|
7472
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
6659
7473
|
|
|
6660
7474
|
<div class="pdoc-code codehilite">
|
|
6661
7475
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -6713,6 +7527,48 @@ and the response contains error information.</li>
|
|
|
6713
7527
|
</code></pre>
|
|
6714
7528
|
</div>
|
|
6715
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
|
+
|
|
6716
7572
|
<p></details></p>
|
|
6717
7573
|
</div>
|
|
6718
7574
|
|
|
@@ -6902,7 +7758,7 @@ minX / maxX / and targetX argument values.</p>
|
|
|
6902
7758
|
<h6 id="arguments">Arguments:</h6>
|
|
6903
7759
|
|
|
6904
7760
|
<ul>
|
|
6905
|
-
<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 />
|
|
6906
7762
|
Default: 20, Range: 1 to 50. </li>
|
|
6907
7763
|
<li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
|
|
6908
7764
|
is available in that market will be returned. If a valid user access token is specified
|
|
@@ -7322,7 +8178,7 @@ and the response contains error information.</li>
|
|
|
7322
8178
|
<div class="attr function">
|
|
7323
8179
|
|
|
7324
8180
|
<span class="def">def</span>
|
|
7325
|
-
<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>
|
|
7326
8182
|
|
|
7327
8183
|
|
|
7328
8184
|
</div>
|
|
@@ -7342,11 +8198,16 @@ Valid values: <br />
|
|
|
7342
8198
|
Default: <code>medium_term</code> <br />
|
|
7343
8199
|
Example: <code>long_term</code></li>
|
|
7344
8200
|
</ul></li>
|
|
7345
|
-
<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 />
|
|
7346
8202
|
Default: 20, Range: 1 to 50. </li>
|
|
7347
|
-
<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 />
|
|
7348
8204
|
Use with limit to get the next set of items. <br />
|
|
7349
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>
|
|
7350
8211
|
</ul>
|
|
7351
8212
|
|
|
7352
8213
|
<h6 id="returns">Returns:</h6>
|
|
@@ -7364,7 +8225,7 @@ and the response contains error information.</li>
|
|
|
7364
8225
|
</ul>
|
|
7365
8226
|
|
|
7366
8227
|
<p><details>
|
|
7367
|
-
<summary>Sample Code</summary></p>
|
|
8228
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
7368
8229
|
|
|
7369
8230
|
<div class="pdoc-code codehilite">
|
|
7370
8231
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -7423,6 +8284,53 @@ and the response contains error information.</li>
|
|
|
7423
8284
|
</code></pre>
|
|
7424
8285
|
</div>
|
|
7425
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
|
+
|
|
7426
8334
|
<p></details></p>
|
|
7427
8335
|
</div>
|
|
7428
8336
|
|
|
@@ -7432,7 +8340,7 @@ and the response contains error information.</li>
|
|
|
7432
8340
|
<div class="attr function">
|
|
7433
8341
|
|
|
7434
8342
|
<span class="def">def</span>
|
|
7435
|
-
<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>
|
|
7436
8344
|
|
|
7437
8345
|
|
|
7438
8346
|
</div>
|
|
@@ -7452,11 +8360,16 @@ Valid values: <br />
|
|
|
7452
8360
|
Default: <code>medium_term</code> <br />
|
|
7453
8361
|
Example: <code>long_term</code></li>
|
|
7454
8362
|
</ul></li>
|
|
7455
|
-
<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 />
|
|
7456
8364
|
Default: 20, Range: 1 to 50. </li>
|
|
7457
|
-
<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 />
|
|
7458
8366
|
Use with limit to get the next set of items. <br />
|
|
7459
|
-
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>
|
|
7460
8373
|
</ul>
|
|
7461
8374
|
|
|
7462
8375
|
<h6 id="returns">Returns:</h6>
|
|
@@ -7474,7 +8387,7 @@ and the response contains error information.</li>
|
|
|
7474
8387
|
</ul>
|
|
7475
8388
|
|
|
7476
8389
|
<p><details>
|
|
7477
|
-
<summary>Sample Code</summary></p>
|
|
8390
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
7478
8391
|
|
|
7479
8392
|
<div class="pdoc-code codehilite">
|
|
7480
8393
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -7533,6 +8446,53 @@ and the response contains error information.</li>
|
|
|
7533
8446
|
</code></pre>
|
|
7534
8447
|
</div>
|
|
7535
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
|
+
|
|
7536
8496
|
<p></details></p>
|
|
7537
8497
|
</div>
|
|
7538
8498
|
|
|
@@ -9846,19 +10806,17 @@ in the Spotify music catalog.</p>
|
|
|
9846
10806
|
|
|
9847
10807
|
|
|
9848
10808
|
</div>
|
|
9849
|
-
<div id="SpotifyClient.
|
|
10809
|
+
<div id="SpotifyClient.SearchAlbums" class="classattr">
|
|
9850
10810
|
<div class="attr function">
|
|
9851
10811
|
|
|
9852
10812
|
<span class="def">def</span>
|
|
9853
|
-
<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>
|
|
9854
10814
|
|
|
9855
10815
|
|
|
9856
10816
|
</div>
|
|
9857
|
-
<a class="headerlink" href="#SpotifyClient.
|
|
10817
|
+
<a class="headerlink" href="#SpotifyClient.SearchAlbums"></a>
|
|
9858
10818
|
|
|
9859
|
-
<div class="docstring"><p>Get Spotify catalog information about
|
|
9860
|
-
or audiobooks that match a keyword string. Audiobooks are only available within the US, UK,
|
|
9861
|
-
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>
|
|
9862
10820
|
|
|
9863
10821
|
<h6 id="arguments">Arguments:</h6>
|
|
9864
10822
|
|
|
@@ -9875,15 +10833,11 @@ The isrc and track filters can be used while searching tracks. <br />
|
|
|
9875
10833
|
The upc, tag:new and tag:hipster filters can only be used while searching albums.
|
|
9876
10834
|
The tag:new filter will return albums released in the past two weeks and tag:hipster
|
|
9877
10835
|
can be used to return only albums with the lowest 10% popularity.</li>
|
|
9878
|
-
<li><strong>
|
|
9879
|
-
Search results include hits from all the specified item types. <br />
|
|
9880
|
-
For example: "album,track" returns both albums and tracks matching criteria argument. <br />
|
|
9881
|
-
Allowed values: "album", "artist", "playlist", "track", "show", "episode", "audiobook".</li>
|
|
9882
|
-
<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 />
|
|
9883
10837
|
Default: 20, Range: 1 to 50. </li>
|
|
9884
|
-
<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 />
|
|
9885
10839
|
Use with limit to get the next set of items. <br />
|
|
9886
|
-
Default: 0 (the first item)
|
|
10840
|
+
Default: 0 (the first item). Range: 0 to 1000. </li>
|
|
9887
10841
|
<li><strong>market (str):</strong> An ISO 3166-1 alpha-2 country code. If a country code is specified, only content that
|
|
9888
10842
|
is available in that market will be returned. If a valid user access token is specified
|
|
9889
10843
|
in the request header, the country associated with the user account will take priority over
|
|
@@ -9895,6 +10849,11 @@ Example: <code>ES</code></li>
|
|
|
9895
10849
|
marks the content as playable in the response. By default externally hosted audio content is marked
|
|
9896
10850
|
as unplayable in the response. <br />
|
|
9897
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>
|
|
9898
10857
|
</ul>
|
|
9899
10858
|
|
|
9900
10859
|
<h6 id="returns">Returns:</h6>
|
|
@@ -9911,11 +10870,11 @@ and the response contains error information.</li>
|
|
|
9911
10870
|
<li><strong>SpotifApiError:</strong> If the method fails for any other reason.</li>
|
|
9912
10871
|
</ul>
|
|
9913
10872
|
|
|
9914
|
-
<p>Note
|
|
9915
|
-
|
|
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>
|
|
9916
10875
|
|
|
9917
10876
|
<p><details>
|
|
9918
|
-
<summary>Sample Code -
|
|
10877
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
9919
10878
|
|
|
9920
10879
|
<div class="pdoc-code codehilite">
|
|
9921
10880
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -9934,11 +10893,10 @@ entries that you can return with a search.</p>
|
|
|
9934
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>
|
|
9935
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>
|
|
9936
10895
|
|
|
9937
|
-
<span class="c1"># get Spotify catalog information about
|
|
10896
|
+
<span class="c1"># get Spotify catalog information about Albums that match a keyword string.</span>
|
|
9938
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>
|
|
9939
|
-
<span class="
|
|
9940
|
-
<span class="
|
|
9941
|
-
<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>
|
|
9942
10900
|
|
|
9943
10901
|
<span class="c1"># display search response details.</span>
|
|
9944
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>
|
|
@@ -9962,10 +10920,15 @@ entries that you can return with a search.</p>
|
|
|
9962
10920
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'Albums in this page of results:'</span><span class="p">)</span>
|
|
9963
10921
|
|
|
9964
10922
|
<span class="c1"># display album details.</span>
|
|
9965
|
-
<span class="n">
|
|
9966
|
-
<span class="k">for</span> <span class="n">
|
|
9967
|
-
|
|
9968
|
-
|
|
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>
|
|
9969
10932
|
|
|
9970
10933
|
<span class="c1"># anymore page results?</span>
|
|
9971
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>
|
|
@@ -9974,7 +10937,7 @@ entries that you can return with a search.</p>
|
|
|
9974
10937
|
<span class="k">else</span><span class="p">:</span>
|
|
9975
10938
|
<span class="c1"># yes - retrieve the next page of results.</span>
|
|
9976
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>
|
|
9977
|
-
<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>
|
|
9978
10941
|
|
|
9979
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>
|
|
9980
10943
|
|
|
@@ -9982,10 +10945,9 @@ entries that you can return with a search.</p>
|
|
|
9982
10945
|
</code></pre>
|
|
9983
10946
|
</div>
|
|
9984
10947
|
|
|
9985
|
-
<p></details
|
|
9986
|
-
|
|
9987
|
-
<p
|
|
9988
|
-
<summary>Sample Code - Search Artists</summary></p>
|
|
10948
|
+
<p></details>
|
|
10949
|
+
<details>
|
|
10950
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
9989
10951
|
|
|
9990
10952
|
<div class="pdoc-code codehilite">
|
|
9991
10953
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -10004,47 +10966,20 @@ entries that you can return with a search.</p>
|
|
|
10004
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>
|
|
10005
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>
|
|
10006
10968
|
|
|
10007
|
-
<span class="c1"># get Spotify catalog information about
|
|
10008
|
-
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'
|
|
10009
|
-
<span class="
|
|
10010
|
-
<span class="
|
|
10011
|
-
<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>
|
|
10012
|
-
|
|
10013
|
-
<span class="c1"># display search response details.</span>
|
|
10014
|
-
<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>
|
|
10015
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span>
|
|
10016
|
-
|
|
10017
|
-
<span class="c1"># save initial search response total, as search next page response total </span>
|
|
10018
|
-
<span class="c1"># will change with each page retrieved. this is odd behavior, as it seems</span>
|
|
10019
|
-
<span class="c1"># that the spotify web api is returning a new result set each time rather </span>
|
|
10020
|
-
<span class="c1"># than working off of a cached result set.</span>
|
|
10021
|
-
<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>
|
|
10022
|
-
|
|
10023
|
-
<span class="c1"># handle pagination, as spotify limits us to a set # of items returned per response.</span>
|
|
10024
|
-
<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
|
|
10025
|
-
|
|
10026
|
-
<span class="c1"># only display album results for this example.</span>
|
|
10027
|
-
<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>
|
|
10028
|
-
|
|
10029
|
-
<span class="c1"># display paging details.</span>
|
|
10030
|
-
<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>
|
|
10031
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span>
|
|
10032
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">'Artists in this page of results:'</span><span class="p">)</span>
|
|
10033
|
-
|
|
10034
|
-
<span class="c1"># display album details.</span>
|
|
10035
|
-
<span class="n">artist</span><span class="p">:</span><span class="n">Artist</span>
|
|
10036
|
-
<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>
|
|
10037
10973
|
|
|
10038
|
-
|
|
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>
|
|
10039
10978
|
|
|
10040
|
-
|
|
10041
|
-
|
|
10042
|
-
|
|
10043
|
-
|
|
10044
|
-
<span class="k">else</span><span class="p">:</span>
|
|
10045
|
-
<span class="c1"># yes - retrieve the next page of results.</span>
|
|
10046
|
-
<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>
|
|
10047
|
-
<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>
|
|
10048
10983
|
|
|
10049
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>
|
|
10050
10985
|
|
|
@@ -10053,39 +10988,295 @@ entries that you can return with a search.</p>
|
|
|
10053
10988
|
</div>
|
|
10054
10989
|
|
|
10055
10990
|
<p></details></p>
|
|
10991
|
+
</div>
|
|
10056
10992
|
|
|
10057
|
-
<p><details>
|
|
10058
|
-
<summary>Sample Code - Search Audiobooks</summary></p>
|
|
10059
|
-
|
|
10060
|
-
<div class="pdoc-code codehilite">
|
|
10061
|
-
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
10062
|
-
<span class="kn">from</span> <span class="nn">spotifywebapipython.models</span> <span class="kn">import</span> <span class="o">*</span>
|
|
10063
10993
|
|
|
10064
|
-
|
|
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>
|
|
10065
11000
|
|
|
10066
|
-
|
|
10067
|
-
|
|
10068
|
-
<
|
|
10069
|
-
|
|
10070
|
-
|
|
10071
|
-
<span class="s1">'user-library-modify'</span><span class="p">,</span>
|
|
10072
|
-
<span class="s1">'playlist-modify-private'</span><span class="p">,</span>
|
|
10073
|
-
<span class="s1">'playlist-modify-public'</span>
|
|
10074
|
-
<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>
|
|
10075
11006
|
|
|
10076
|
-
|
|
10077
|
-
<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>
|
|
10078
11008
|
|
|
10079
|
-
|
|
10080
|
-
|
|
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>
|
|
10081
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>
|
|
10082
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>
|
|
10083
11275
|
|
|
10084
|
-
<span class="c1"># get Spotify catalog information about
|
|
10085
|
-
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'
|
|
10086
|
-
<span class="
|
|
10087
|
-
<span class="
|
|
10088
|
-
<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>
|
|
10089
11280
|
|
|
10090
11281
|
<span class="c1"># display search response details.</span>
|
|
10091
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>
|
|
@@ -10103,25 +11294,476 @@ entries that you can return with a search.</p>
|
|
|
10103
11294
|
<span class="c1"># only display audiobook results for this example.</span>
|
|
10104
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>
|
|
10105
11296
|
|
|
10106
|
-
<span class="c1"># display paging details.</span>
|
|
10107
|
-
<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>
|
|
10108
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">'
|
|
10109
|
-
|
|
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>
|
|
10110
11747
|
|
|
10111
|
-
|
|
10112
|
-
|
|
10113
|
-
|
|
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>
|
|
10114
11752
|
|
|
10115
|
-
|
|
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>
|
|
10116
11757
|
|
|
10117
|
-
|
|
10118
|
-
|
|
10119
|
-
|
|
10120
|
-
|
|
10121
|
-
|
|
10122
|
-
|
|
10123
|
-
|
|
10124
|
-
|
|
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>
|
|
10125
11767
|
|
|
10126
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>
|
|
10127
11769
|
|
|
@@ -10129,10 +11771,9 @@ entries that you can return with a search.</p>
|
|
|
10129
11771
|
</code></pre>
|
|
10130
11772
|
</div>
|
|
10131
11773
|
|
|
10132
|
-
<p></details
|
|
10133
|
-
|
|
10134
|
-
<p
|
|
10135
|
-
<summary>Sample Code - Search Episodes</summary></p>
|
|
11774
|
+
<p></details>
|
|
11775
|
+
<details>
|
|
11776
|
+
<summary>Sample Code - Spotify Generated, Daily Mix</summary></p>
|
|
10136
11777
|
|
|
10137
11778
|
<div class="pdoc-code codehilite">
|
|
10138
11779
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -10158,47 +11799,23 @@ entries that you can return with a search.</p>
|
|
|
10158
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>
|
|
10159
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>
|
|
10160
11801
|
|
|
10161
|
-
<span class="c1"># get Spotify catalog information about
|
|
10162
|
-
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'
|
|
10163
|
-
<span class="
|
|
10164
|
-
<span class="
|
|
10165
|
-
<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>
|
|
10166
|
-
|
|
10167
|
-
<span class="c1"># display search response details.</span>
|
|
10168
|
-
<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>
|
|
10169
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span>
|
|
10170
|
-
|
|
10171
|
-
<span class="c1"># save initial search response total, as search next page response total </span>
|
|
10172
|
-
<span class="c1"># will change with each page retrieved. this is odd behavior, as it seems</span>
|
|
10173
|
-
<span class="c1"># that the spotify web api is returning a new result set each time rather </span>
|
|
10174
|
-
<span class="c1"># than working off of a cached result set.</span>
|
|
10175
|
-
<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>
|
|
10176
|
-
|
|
10177
|
-
<span class="c1"># handle pagination, as spotify limits us to a set # of items returned per response.</span>
|
|
10178
|
-
<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
|
|
10179
|
-
|
|
10180
|
-
<span class="c1"># only display episode results for this example.</span>
|
|
10181
|
-
<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>
|
|
10182
|
-
|
|
10183
|
-
<span class="c1"># display paging details.</span>
|
|
10184
|
-
<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>
|
|
10185
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span>
|
|
10186
|
-
<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>
|
|
10187
11806
|
|
|
10188
|
-
|
|
10189
|
-
|
|
10190
|
-
<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>
|
|
10191
11809
|
|
|
10192
|
-
|
|
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>
|
|
10193
11813
|
|
|
10194
|
-
|
|
10195
|
-
|
|
10196
|
-
|
|
10197
|
-
|
|
10198
|
-
<span class="
|
|
10199
|
-
<span class="c1"># yes - retrieve the next page of results.</span>
|
|
10200
|
-
<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>
|
|
10201
|
-
<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>
|
|
10202
11819
|
|
|
10203
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>
|
|
10204
11821
|
|
|
@@ -10207,9 +11824,79 @@ entries that you can return with a search.</p>
|
|
|
10207
11824
|
</div>
|
|
10208
11825
|
|
|
10209
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>
|
|
10210
11897
|
|
|
10211
11898
|
<p><details>
|
|
10212
|
-
<summary>Sample Code -
|
|
11899
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
10213
11900
|
|
|
10214
11901
|
<div class="pdoc-code codehilite">
|
|
10215
11902
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -10235,11 +11922,12 @@ entries that you can return with a search.</p>
|
|
|
10235
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>
|
|
10236
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>
|
|
10237
11924
|
|
|
10238
|
-
<span class="c1"># get Spotify catalog information about
|
|
10239
|
-
<span class="
|
|
10240
|
-
<span class="
|
|
10241
|
-
<span class="
|
|
10242
|
-
<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>
|
|
10243
11931
|
|
|
10244
11932
|
<span class="c1"># display search response details.</span>
|
|
10245
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>
|
|
@@ -10249,24 +11937,28 @@ entries that you can return with a search.</p>
|
|
|
10249
11937
|
<span class="c1"># will change with each page retrieved. this is odd behavior, as it seems</span>
|
|
10250
11938
|
<span class="c1"># that the spotify web api is returning a new result set each time rather </span>
|
|
10251
11939
|
<span class="c1"># than working off of a cached result set.</span>
|
|
10252
|
-
<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>
|
|
10253
11941
|
|
|
10254
11942
|
<span class="c1"># handle pagination, as spotify limits us to a set # of items returned per response.</span>
|
|
10255
11943
|
<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
|
|
10256
11944
|
|
|
10257
|
-
<span class="c1"># only display
|
|
10258
|
-
<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>
|
|
10259
11947
|
|
|
10260
11948
|
<span class="c1"># display paging details.</span>
|
|
10261
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>
|
|
10262
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">'
|
|
10263
|
-
<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>
|
|
10264
11951
|
|
|
10265
|
-
<span class="c1"># display
|
|
10266
|
-
<span class="n">
|
|
10267
|
-
<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>
|
|
10268
11956
|
|
|
10269
|
-
|
|
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>
|
|
10270
11962
|
|
|
10271
11963
|
<span class="c1"># anymore page results?</span>
|
|
10272
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>
|
|
@@ -10275,7 +11967,7 @@ entries that you can return with a search.</p>
|
|
|
10275
11967
|
<span class="k">else</span><span class="p">:</span>
|
|
10276
11968
|
<span class="c1"># yes - retrieve the next page of results.</span>
|
|
10277
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>
|
|
10278
|
-
<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>
|
|
10279
11971
|
|
|
10280
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>
|
|
10281
11973
|
|
|
@@ -10283,10 +11975,9 @@ entries that you can return with a search.</p>
|
|
|
10283
11975
|
</code></pre>
|
|
10284
11976
|
</div>
|
|
10285
11977
|
|
|
10286
|
-
<p></details
|
|
10287
|
-
|
|
10288
|
-
<p
|
|
10289
|
-
<summary>Sample Code - Search Shows</summary></p>
|
|
11978
|
+
<p></details>
|
|
11979
|
+
<details>
|
|
11980
|
+
<summary>Sample Code - Auto Paging</summary></p>
|
|
10290
11981
|
|
|
10291
11982
|
<div class="pdoc-code codehilite">
|
|
10292
11983
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -10312,60 +12003,103 @@ entries that you can return with a search.</p>
|
|
|
10312
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>
|
|
10313
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>
|
|
10314
12005
|
|
|
10315
|
-
<span class="c1"># get Spotify catalog information about
|
|
10316
|
-
<span class="c1"># note -
|
|
10317
|
-
<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>
|
|
10318
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>
|
|
10319
|
-
<span class="
|
|
10320
|
-
<span class="
|
|
10321
|
-
<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>
|
|
10322
12012
|
|
|
10323
|
-
<span class="c1"># display
|
|
10324
|
-
<span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">
|
|
10325
|
-
<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>
|
|
10326
12017
|
|
|
10327
|
-
<span class="c1">#
|
|
10328
|
-
<span class="
|
|
10329
|
-
<span class="
|
|
10330
|
-
|
|
10331
|
-
<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>
|
|
10332
12022
|
|
|
10333
|
-
|
|
10334
|
-
<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>
|
|
10335
12024
|
|
|
10336
|
-
|
|
10337
|
-
|
|
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>
|
|
10338
12028
|
|
|
10339
|
-
|
|
10340
|
-
|
|
10341
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span>
|
|
10342
|
-
<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>
|
|
10343
12031
|
|
|
10344
|
-
<span class="c1"># display show details.</span>
|
|
10345
|
-
<span class="n">show</span><span class="p">:</span><span class="n">ShowSimplified</span>
|
|
10346
|
-
<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>
|
|
10347
12032
|
|
|
10348
|
-
|
|
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>
|
|
10349
12039
|
|
|
10350
|
-
|
|
10351
|
-
|
|
10352
|
-
|
|
10353
|
-
|
|
10354
|
-
|
|
10355
|
-
<span class="c1"># yes - retrieve the next page of results.</span>
|
|
10356
|
-
<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>
|
|
10357
|
-
<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>
|
|
10358
12045
|
|
|
10359
|
-
<
|
|
12046
|
+
<h6 id="arguments">Arguments:</h6>
|
|
10360
12047
|
|
|
10361
|
-
|
|
10362
|
-
|
|
10363
|
-
|
|
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>
|
|
10364
12083
|
|
|
10365
|
-
<
|
|
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>
|
|
10366
12100
|
|
|
10367
12101
|
<p><details>
|
|
10368
|
-
<summary>Sample Code -
|
|
12102
|
+
<summary>Sample Code - Manual Paging</summary></p>
|
|
10369
12103
|
|
|
10370
12104
|
<div class="pdoc-code codehilite">
|
|
10371
12105
|
<pre><span></span><code><span class="kn">from</span> <span class="nn">spotifywebapipython</span> <span class="kn">import</span> <span class="o">*</span>
|
|
@@ -10384,11 +12118,10 @@ entries that you can return with a search.</p>
|
|
|
10384
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>
|
|
10385
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>
|
|
10386
12120
|
|
|
10387
|
-
<span class="c1"># get Spotify catalog information about
|
|
12121
|
+
<span class="c1"># get Spotify catalog information about Tracks that match a keyword string.</span>
|
|
10388
12122
|
<span class="n">criteria</span><span class="p">:</span><span class="nb">str</span> <span class="o">=</span> <span class="s1">'Flawless'</span>
|
|
10389
|
-
<span class="
|
|
10390
|
-
<span class="
|
|
10391
|
-
<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>
|
|
10392
12125
|
|
|
10393
12126
|
<span class="c1"># display search response details.</span>
|
|
10394
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>
|
|
@@ -10406,6 +12139,11 @@ entries that you can return with a search.</p>
|
|
|
10406
12139
|
<span class="c1"># only display track results for this example.</span>
|
|
10407
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>
|
|
10408
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
|
+
|
|
10409
12147
|
<span class="c1"># display paging details.</span>
|
|
10410
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>
|
|
10411
12149
|
<span class="nb">print</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span>
|
|
@@ -10414,7 +12152,6 @@ entries that you can return with a search.</p>
|
|
|
10414
12152
|
<span class="c1"># display track details.</span>
|
|
10415
12153
|
<span class="n">track</span><span class="p">:</span><span class="n">Track</span>
|
|
10416
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>
|
|
10417
|
-
|
|
10418
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>
|
|
10419
12156
|
|
|
10420
12157
|
<span class="c1"># anymore page results?</span>
|
|
@@ -10424,7 +12161,49 @@ entries that you can return with a search.</p>
|
|
|
10424
12161
|
<span class="k">else</span><span class="p">:</span>
|
|
10425
12162
|
<span class="c1"># yes - retrieve the next page of results.</span>
|
|
10426
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>
|
|
10427
|
-
<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>
|
|
10428
12207
|
|
|
10429
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>
|
|
10430
12209
|
|