From d2725531118fbee22467733dab431246aa570c07 Mon Sep 17 00:00:00 2001 From: AppVeyor Doc Generation Date: Mon, 9 Mar 2020 19:51:57 +0000 Subject: [PATCH] Built docs | AppVeyor Build 553 --- 404.html | 6 +++--- assets/js/{10.81642073.js => 10.28544301.js} | 2 +- assets/js/{11.7371183a.js => 11.07c6886f.js} | 2 +- assets/js/{13.77befe42.js => 13.a13a382b.js} | 2 +- assets/js/{14.d80587f4.js => 14.674b81b0.js} | 2 +- assets/js/{17.7360dccd.js => 17.cfa6b532.js} | 2 +- assets/js/{18.9d99294a.js => 18.5a36f4f9.js} | 2 +- assets/js/{23.6d1546f5.js => 23.189ba1f0.js} | 2 +- assets/js/{24.be2f7a96.js => 24.7e642ae6.js} | 2 +- assets/js/{5.e6e88ab3.js => 5.4ad72e80.js} | 2 +- assets/js/{6.f529ddfb.js => 6.1c2fc4bc.js} | 2 +- assets/js/{9.dbbf5553.js => 9.a5b78c60.js} | 2 +- assets/js/{app.bbaebb05.js => app.6dc23df9.js} | 4 ++-- auth/authorization_code.html | 4 ++-- auth/client_credentials.html | 4 ++-- auth/getting_started.html | 4 ++-- auth/implicit_grant.html | 4 ++-- auth/token_swap.html | 4 ++-- index.html | 4 ++-- web/albums.html | 4 ++-- web/artists.html | 4 ++-- web/browse.html | 4 ++-- web/examples.html | 4 ++-- web/follow.html | 4 ++-- web/getting_started.html | 4 ++-- web/library.html | 4 ++-- web/personalization.html | 4 ++-- web/player.html | 4 ++-- web/playlists.html | 4 ++-- web/profiles.html | 4 ++-- web/proxy.html | 4 ++-- web/search.html | 4 ++-- web/tracks.html | 4 ++-- web/utils.html | 4 ++-- 34 files changed, 58 insertions(+), 58 deletions(-) rename assets/js/{10.81642073.js => 10.28544301.js} (99%) rename assets/js/{11.7371183a.js => 11.07c6886f.js} (99%) rename assets/js/{13.77befe42.js => 13.a13a382b.js} (99%) rename assets/js/{14.d80587f4.js => 14.674b81b0.js} (88%) rename assets/js/{17.7360dccd.js => 17.cfa6b532.js} (99%) rename assets/js/{18.9d99294a.js => 18.5a36f4f9.js} (98%) rename assets/js/{23.6d1546f5.js => 23.189ba1f0.js} (98%) rename assets/js/{24.be2f7a96.js => 24.7e642ae6.js} (99%) rename assets/js/{5.e6e88ab3.js => 5.4ad72e80.js} (99%) rename assets/js/{6.f529ddfb.js => 6.1c2fc4bc.js} (99%) rename assets/js/{9.dbbf5553.js => 9.a5b78c60.js} (98%) rename assets/js/{app.bbaebb05.js => app.6dc23df9.js} (93%) diff --git a/404.html b/404.html index ffc39638..f56cbe6b 100644 --- a/404.html +++ b/404.html @@ -7,11 +7,11 @@ - + -

404

Looks like we've got some broken links.
Take me home.
- +

404

How did we get here?
Take me home.
+ diff --git a/assets/js/10.81642073.js b/assets/js/10.28544301.js similarity index 99% rename from assets/js/10.81642073.js rename to assets/js/10.28544301.js index 9b520efa..d72d8af2 100644 --- a/assets/js/10.81642073.js +++ b/assets/js/10.28544301.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{209:function(t,e,s){"use strict";s.r(e);var a=s(0),n=Object(a.a)({},function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"tokenswapauth"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#tokenswapauth","aria-hidden":"true"}},[t._v("#")]),t._v(" TokenSwapAuth")]),t._v(" "),s("p",[t._v("This way uses server-side code or at least access to an exchange server, otherwise, compared to other\nmethods, it is impossible to use.")]),t._v(" "),s("p",[t._v('With this approach, you provide the URI/URL to your desired exchange server to perform all necessary\nrequests to Spotify, as well as requests that return back to the "server URI".')]),t._v(" "),s("p",[t._v("The exchange server "),s("strong",[t._v("must")]),t._v(" be able to:")]),t._v(" "),s("ul",[s("li",[t._v('Return the authorization code from Spotify API authenticate page via GET request to the "server URI".')]),t._v(" "),s("li",[t._v("Request the token response object via POST to the Spotify API token page.")]),t._v(" "),s("li",[t._v("Request a refreshed token response object via POST to the Spotify API token page.")])]),t._v(" "),s("p",[s("strong",[t._v("The good news is that you do not need to code it yourself.")])]),t._v(" "),s("p",[t._v("The advantages of this method are that the client ID and redirect URI are very well hidden and almost unexposed, but more importantly, your client secret is "),s("strong",[t._v("never")]),t._v(" exposed and is completely hidden compared to other methods (excluding "),s("a",{attrs:{href:"/SpotifyWebAPI/auth#implicitgrantauth"}},[t._v("ImplicitGrantAuth")]),t._v("\nas it does not deal with a client secret). This means\nyour Spotify app "),s("strong",[t._v("cannot")]),t._v(" be spoofed by a malicious third party.")]),t._v(" "),s("h2",{attrs:{id:"using-tokenswapwebapifactory"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#using-tokenswapwebapifactory","aria-hidden":"true"}},[t._v("#")]),t._v(" Using TokenSwapWebAPIFactory")]),t._v(" "),s("p",[t._v("The TokenSwapWebAPIFactory will create and configure a SpotifyWebAPI object for you.")]),t._v(" "),s("p",[t._v("It does this through the method GetWebApiAsync "),s("strong",[t._v("asynchronously")]),t._v(", which means it will not halt execution of your program while obtaining it for you. If you would like to halt execution, which is "),s("strong",[t._v("synchronous")]),t._v(", use "),s("code",[t._v("GetWebApiAsync().Result")]),t._v(" without using "),s("strong",[t._v("await")]),t._v(".")]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("TokenSwapWebAPIFactory")]),t._v(" webApiFactory"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),t._v(" spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// You should store a reference to WebAPIFactory if you are using AutoRefresh or want to manually refresh it later on. New WebAPIFactory objects cannot refresh SpotifyWebAPI object that they did not give to you.")]),t._v("\nwebApiFactory "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("TokenSwapWebAPIFactory")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"INSERT LINK TO YOUR index.php HERE"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n Scope "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Scope"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("UserReadPrivate "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" Scope"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("UserReadEmail "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" Scope"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("PlaylistReadPrivate"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n AutoRefresh "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("true")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// You may want to react to being able to use the Spotify service.")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// webApiFactory.OnAuthSuccess += (sender, e) => authorized = true;")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// You may want to react to your user's access expiring.")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// webApiFactory.OnAccessTokenExpired += (sender, e) => authorized = false;")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n spotify "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" webApiFactory"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetWebApiAsync")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Synchronous way:")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// spotify = webApiFactory.GetWebApiAsync().Result;")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exception")]),t._v(" ex"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Example way to handle error reporting gracefully with your SpotifyWebAPI wrapper")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// UpdateStatus($"Spotify failed to load: {ex.Message}");')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"using-tokenswapauth"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#using-tokenswapauth","aria-hidden":"true"}},[t._v("#")]),t._v(" Using TokenSwapAuth")]),t._v(" "),s("p",[t._v("Since the TokenSwapWebAPIFactory not only simplifies the whole process but offers additional functionality too\n(such as AutoRefresh and AuthSuccess AuthFailure events), use of this way is very verbose and is only\nrecommended if you are having issues with TokenSwapWebAPIFactory or need access to the tokens.")]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("TokenSwapAuth")]),t._v(" auth "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("TokenSwapAuth")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n exchangeServerUri"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"INSERT LINK TO YOUR index.php HERE"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n serverUri"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:4002"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n scope"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Scope"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("UserReadPrivate "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" Scope"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("UserReadEmail "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" Scope"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("PlaylistReadPrivate\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nauth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AuthReceived "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sender"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" response"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n lastToken "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" auth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ExchangeCodeAsync")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("response"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Code"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n spotify "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n TokenType "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" lastToken"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("TokenType"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n AccessToken "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" lastToken"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AccessToken\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n authenticated "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n auth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Stop")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nauth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("OnAccessTokenExpired "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sender"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AccessToken "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" auth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("RefreshAuthAsync")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("lastToken"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("RefreshToken"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AccessToken"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nauth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Start")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nauth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("OpenBrowser")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"token-swap-endpoint"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#token-swap-endpoint","aria-hidden":"true"}},[t._v("#")]),t._v(" Token Swap Endpoint")]),t._v(" "),s("p",[t._v("To keep your client secret completely secure and your client ID and redirect URI as secure as possible, use of a web server (such as a php website) is required.")]),t._v(" "),s("p",[t._v("To use this method, an external HTTP Server (that you may need to create) needs to be able to supply the following HTTP Endpoints to your application:")]),t._v(" "),s("p",[s("code",[t._v("/swap")]),t._v(" - Swaps out an "),s("code",[t._v("authorization_code")]),t._v(" with an "),s("code",[t._v("access_token")]),t._v(" and "),s("code",[t._v("refresh_token")]),t._v(" - The following parameters are required in the JSON POST Body:")]),t._v(" "),s("ul",[s("li",[s("code",[t._v("grant_type")]),t._v(" (set to "),s("code",[t._v('"authorization_code"')]),t._v(")")]),t._v(" "),s("li",[s("code",[t._v("code")]),t._v(" (the "),s("code",[t._v("authorization_code")]),t._v(")")]),t._v(" "),s("li",[s("code",[t._v("redirect_uri")])]),t._v(" "),s("li",[s("ul",[s("li",[s("strong",[t._v("Important")]),t._v(" The page that the redirect URI links to must return the authorization code json to your "),s("code",[t._v("serverUri")]),t._v(" (default is 'http://localhost:4002') but to the folder 'auth', like this: 'http://localhost:4002/auth'.")])])])]),t._v(" "),s("p",[s("code",[t._v("/refresh")]),t._v(" - Refreshes an "),s("code",[t._v("access_token")]),t._v(" - The following parameters are required in the JSON POST Body:")]),t._v(" "),s("ul",[s("li",[s("code",[t._v("grant_type")]),t._v(" (set to "),s("code",[t._v('"refresh_token"')]),t._v(")")]),t._v(" "),s("li",[s("code",[t._v("refresh_token")])])]),t._v(" "),s("p",[t._v("The following open-source token swap endpoint code can be used for your website:")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/rollersteaam/spotify-token-swap-php",target:"_blank",rel:"noopener noreferrer"}},[t._v("rollersteaam/spotify-token-swap-php"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/simontaen/SpotifyTokenSwap",target:"_blank",rel:"noopener noreferrer"}},[t._v("simontaen/SpotifyTokenSwap"),s("OutboundLink")],1)])]),t._v(" "),s("h2",{attrs:{id:"remarks"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#remarks","aria-hidden":"true"}},[t._v("#")]),t._v(" Remarks")]),t._v(" "),s("p",[t._v("It should be noted that GitHub Pages does not support hosting php scripts. Hosting php scripts through it will cause the php to render as plain HTML, potentially compromising your client secret while doing absolutely nothing.")]),t._v(" "),s("p",[t._v("Be sure you have whitelisted your redirect uri in the Spotify Developer Dashboard otherwise the authorization will always fail.")]),t._v(" "),s("p",[t._v("If you did not use the WebAPIFactory or you provided a "),s("code",[t._v("serverUri")]),t._v(" different from its default, you must make sure your redirect uri's script at your endpoint will properly redirect to your "),s("code",[t._v("serverUri")]),t._v(" (such as changing the areas which refer to "),s("code",[t._v("localhost:4002")]),t._v(" if you had changed "),s("code",[t._v("serverUri")]),t._v(" from its default), otherwise it will never reach your new "),s("code",[t._v("serverUri")]),t._v(".")])])},[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{210:function(t,e,s){"use strict";s.r(e);var a=s(0),n=Object(a.a)({},function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"tokenswapauth"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#tokenswapauth","aria-hidden":"true"}},[t._v("#")]),t._v(" TokenSwapAuth")]),t._v(" "),s("p",[t._v("This way uses server-side code or at least access to an exchange server, otherwise, compared to other\nmethods, it is impossible to use.")]),t._v(" "),s("p",[t._v('With this approach, you provide the URI/URL to your desired exchange server to perform all necessary\nrequests to Spotify, as well as requests that return back to the "server URI".')]),t._v(" "),s("p",[t._v("The exchange server "),s("strong",[t._v("must")]),t._v(" be able to:")]),t._v(" "),s("ul",[s("li",[t._v('Return the authorization code from Spotify API authenticate page via GET request to the "server URI".')]),t._v(" "),s("li",[t._v("Request the token response object via POST to the Spotify API token page.")]),t._v(" "),s("li",[t._v("Request a refreshed token response object via POST to the Spotify API token page.")])]),t._v(" "),s("p",[s("strong",[t._v("The good news is that you do not need to code it yourself.")])]),t._v(" "),s("p",[t._v("The advantages of this method are that the client ID and redirect URI are very well hidden and almost unexposed, but more importantly, your client secret is "),s("strong",[t._v("never")]),t._v(" exposed and is completely hidden compared to other methods (excluding "),s("a",{attrs:{href:"/SpotifyWebAPI/auth#implicitgrantauth"}},[t._v("ImplicitGrantAuth")]),t._v("\nas it does not deal with a client secret). This means\nyour Spotify app "),s("strong",[t._v("cannot")]),t._v(" be spoofed by a malicious third party.")]),t._v(" "),s("h2",{attrs:{id:"using-tokenswapwebapifactory"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#using-tokenswapwebapifactory","aria-hidden":"true"}},[t._v("#")]),t._v(" Using TokenSwapWebAPIFactory")]),t._v(" "),s("p",[t._v("The TokenSwapWebAPIFactory will create and configure a SpotifyWebAPI object for you.")]),t._v(" "),s("p",[t._v("It does this through the method GetWebApiAsync "),s("strong",[t._v("asynchronously")]),t._v(", which means it will not halt execution of your program while obtaining it for you. If you would like to halt execution, which is "),s("strong",[t._v("synchronous")]),t._v(", use "),s("code",[t._v("GetWebApiAsync().Result")]),t._v(" without using "),s("strong",[t._v("await")]),t._v(".")]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("TokenSwapWebAPIFactory")]),t._v(" webApiFactory"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),t._v(" spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// You should store a reference to WebAPIFactory if you are using AutoRefresh or want to manually refresh it later on. New WebAPIFactory objects cannot refresh SpotifyWebAPI object that they did not give to you.")]),t._v("\nwebApiFactory "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("TokenSwapWebAPIFactory")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"INSERT LINK TO YOUR index.php HERE"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n Scope "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Scope"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("UserReadPrivate "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" Scope"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("UserReadEmail "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" Scope"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("PlaylistReadPrivate"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n AutoRefresh "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("true")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// You may want to react to being able to use the Spotify service.")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// webApiFactory.OnAuthSuccess += (sender, e) => authorized = true;")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// You may want to react to your user's access expiring.")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// webApiFactory.OnAccessTokenExpired += (sender, e) => authorized = false;")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("try")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n spotify "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" webApiFactory"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetWebApiAsync")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Synchronous way:")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// spotify = webApiFactory.GetWebApiAsync().Result;")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("catch")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exception")]),t._v(" ex"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Example way to handle error reporting gracefully with your SpotifyWebAPI wrapper")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// UpdateStatus($"Spotify failed to load: {ex.Message}");')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"using-tokenswapauth"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#using-tokenswapauth","aria-hidden":"true"}},[t._v("#")]),t._v(" Using TokenSwapAuth")]),t._v(" "),s("p",[t._v("Since the TokenSwapWebAPIFactory not only simplifies the whole process but offers additional functionality too\n(such as AutoRefresh and AuthSuccess AuthFailure events), use of this way is very verbose and is only\nrecommended if you are having issues with TokenSwapWebAPIFactory or need access to the tokens.")]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("TokenSwapAuth")]),t._v(" auth "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("TokenSwapAuth")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n exchangeServerUri"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"INSERT LINK TO YOUR index.php HERE"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n serverUri"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:4002"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n scope"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Scope"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("UserReadPrivate "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" Scope"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("UserReadEmail "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" Scope"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("PlaylistReadPrivate\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nauth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AuthReceived "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sender"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" response"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n lastToken "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" auth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ExchangeCodeAsync")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("response"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Code"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n spotify "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n TokenType "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" lastToken"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("TokenType"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n AccessToken "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" lastToken"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AccessToken\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n authenticated "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n auth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Stop")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nauth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("OnAccessTokenExpired "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sender"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AccessToken "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" auth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("RefreshAuthAsync")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("lastToken"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("RefreshToken"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AccessToken"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nauth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Start")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nauth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("OpenBrowser")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"token-swap-endpoint"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#token-swap-endpoint","aria-hidden":"true"}},[t._v("#")]),t._v(" Token Swap Endpoint")]),t._v(" "),s("p",[t._v("To keep your client secret completely secure and your client ID and redirect URI as secure as possible, use of a web server (such as a php website) is required.")]),t._v(" "),s("p",[t._v("To use this method, an external HTTP Server (that you may need to create) needs to be able to supply the following HTTP Endpoints to your application:")]),t._v(" "),s("p",[s("code",[t._v("/swap")]),t._v(" - Swaps out an "),s("code",[t._v("authorization_code")]),t._v(" with an "),s("code",[t._v("access_token")]),t._v(" and "),s("code",[t._v("refresh_token")]),t._v(" - The following parameters are required in the JSON POST Body:")]),t._v(" "),s("ul",[s("li",[s("code",[t._v("grant_type")]),t._v(" (set to "),s("code",[t._v('"authorization_code"')]),t._v(")")]),t._v(" "),s("li",[s("code",[t._v("code")]),t._v(" (the "),s("code",[t._v("authorization_code")]),t._v(")")]),t._v(" "),s("li",[s("code",[t._v("redirect_uri")])]),t._v(" "),s("li",[s("ul",[s("li",[s("strong",[t._v("Important")]),t._v(" The page that the redirect URI links to must return the authorization code json to your "),s("code",[t._v("serverUri")]),t._v(" (default is 'http://localhost:4002') but to the folder 'auth', like this: 'http://localhost:4002/auth'.")])])])]),t._v(" "),s("p",[s("code",[t._v("/refresh")]),t._v(" - Refreshes an "),s("code",[t._v("access_token")]),t._v(" - The following parameters are required in the JSON POST Body:")]),t._v(" "),s("ul",[s("li",[s("code",[t._v("grant_type")]),t._v(" (set to "),s("code",[t._v('"refresh_token"')]),t._v(")")]),t._v(" "),s("li",[s("code",[t._v("refresh_token")])])]),t._v(" "),s("p",[t._v("The following open-source token swap endpoint code can be used for your website:")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/rollersteaam/spotify-token-swap-php",target:"_blank",rel:"noopener noreferrer"}},[t._v("rollersteaam/spotify-token-swap-php"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/simontaen/SpotifyTokenSwap",target:"_blank",rel:"noopener noreferrer"}},[t._v("simontaen/SpotifyTokenSwap"),s("OutboundLink")],1)])]),t._v(" "),s("h2",{attrs:{id:"remarks"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#remarks","aria-hidden":"true"}},[t._v("#")]),t._v(" Remarks")]),t._v(" "),s("p",[t._v("It should be noted that GitHub Pages does not support hosting php scripts. Hosting php scripts through it will cause the php to render as plain HTML, potentially compromising your client secret while doing absolutely nothing.")]),t._v(" "),s("p",[t._v("Be sure you have whitelisted your redirect uri in the Spotify Developer Dashboard otherwise the authorization will always fail.")]),t._v(" "),s("p",[t._v("If you did not use the WebAPIFactory or you provided a "),s("code",[t._v("serverUri")]),t._v(" different from its default, you must make sure your redirect uri's script at your endpoint will properly redirect to your "),s("code",[t._v("serverUri")]),t._v(" (such as changing the areas which refer to "),s("code",[t._v("localhost:4002")]),t._v(" if you had changed "),s("code",[t._v("serverUri")]),t._v(" from its default), otherwise it will never reach your new "),s("code",[t._v("serverUri")]),t._v(".")])])},[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/11.7371183a.js b/assets/js/11.07c6886f.js similarity index 99% rename from assets/js/11.7371183a.js rename to assets/js/11.07c6886f.js index 249ce90e..07fa81ca 100644 --- a/assets/js/11.7371183a.js +++ b/assets/js/11.07c6886f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{210:function(t,a,s){"use strict";s.r(a);var e=s(0),n=Object(e.a)({},function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"albums"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#albums","aria-hidden":"true"}},[t._v("#")]),t._v(" Albums")]),t._v(" "),s("h2",{attrs:{id:"getalbumtracks"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getalbumtracks","aria-hidden":"true"}},[t._v("#")]),t._v(" GetAlbumTracks")]),t._v(" "),s("blockquote",[s("p",[t._v("Get Spotify catalog information about an album's tracks. Optional parameters can be used to limit the number of tracks returned.")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("The Spotify ID for the album.")]),t._v(" "),s("td",[s("code",[t._v('"5O7V8l4SeXTymVp3IesT9C"')])])]),t._v(" "),s("tr",[s("td",[t._v("[limit]")]),t._v(" "),s("td",[t._v("The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),s("td",[s("code",[t._v("20")])])]),t._v(" "),s("tr",[s("td",[t._v("[offset]")]),t._v(" "),s("td",[t._v("The index of the first track to return. Default: 0 (the first object).")]),t._v(" "),s("td",[s("code",[t._v("0")])])]),t._v(" "),s("tr",[s("td",[t._v("[market]")]),t._v(" "),s("td",[t._v("An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#track-object-simplified",target:"_blank",rel:"noopener noreferrer"}},[t._v("SimpleTrack"),s("OutboundLink")],1),t._v(" wrapped inside a "),s("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#paging-object",target:"_blank",rel:"noopener noreferrer"}},[t._v("Paging-object"),s("OutboundLink")],1)]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[t._v("Paging"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("SimpleTrack"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" tracks "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetAlbumTracks")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"5O7V8l4SeXTymVp3IesT9C"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\ntracks"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Items"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ForEach")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("item "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" Console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("item"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Display all fetched Track-Names (max 20)")]),t._v("\nConsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("tracks"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Total"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ToString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Display total album track count")]),t._v("\n")])])]),s("hr"),t._v(" "),s("h2",{attrs:{id:"getalbum"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getalbum","aria-hidden":"true"}},[t._v("#")]),t._v(" GetAlbum")]),t._v(" "),s("blockquote",[s("p",[t._v("Get Spotify catalog information for a single album.")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("The Spotify ID for the album.")]),t._v(" "),s("td",[s("code",[t._v("5O7V8l4SeXTymVp3IesT9C")])])]),t._v(" "),s("tr",[s("td",[t._v("[market]")]),t._v(" "),s("td",[t._v("An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#album-object-full",target:"_blank",rel:"noopener noreferrer"}},[t._v("FullAlbum"),s("OutboundLink")],1)]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FullAlbum")]),t._v(" album "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetAlbum")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"5O7V8l4SeXTymVp3IesT9C"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nConsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("album"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"| Popularity: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" album"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Popularity"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Display name and Popularity")]),t._v("\n")])])]),s("hr"),t._v(" "),s("h2",{attrs:{id:"getseveralalbums"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getseveralalbums","aria-hidden":"true"}},[t._v("#")]),t._v(" GetSeveralAlbums")]),t._v(" "),s("blockquote",[s("p",[t._v("Get Spotify catalog information for multiple albums identified by their Spotify IDs.")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("ids")]),t._v(" "),s("td",[t._v("A list of the Spotify IDs for the albums. Maximum: 20 IDs.")]),t._v(" "),s("td",[s("code",[t._v('new List() { "5O7V8l4SeXTymVp3IesT9C" }')])])]),t._v(" "),s("tr",[s("td",[t._v("[market]")]),t._v(" "),s("td",[t._v("An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("code",[t._v("SeveralAlbums")]),t._v(' which Property "Albums" contains a list of '),s("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#album-object-full",target:"_blank",rel:"noopener noreferrer"}},[t._v("FullAlbum"),s("OutboundLink")],1)]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SeveralAlbums")]),t._v(" albums "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetSeveralAlbums")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token generic-method"}},[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("List")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"5O7V8l4SeXTymVp3IesT9C"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nConsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("albums"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Albums"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("hr")])},[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{211:function(t,a,s){"use strict";s.r(a);var e=s(0),n=Object(e.a)({},function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"albums"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#albums","aria-hidden":"true"}},[t._v("#")]),t._v(" Albums")]),t._v(" "),s("h2",{attrs:{id:"getalbumtracks"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getalbumtracks","aria-hidden":"true"}},[t._v("#")]),t._v(" GetAlbumTracks")]),t._v(" "),s("blockquote",[s("p",[t._v("Get Spotify catalog information about an album's tracks. Optional parameters can be used to limit the number of tracks returned.")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("The Spotify ID for the album.")]),t._v(" "),s("td",[s("code",[t._v('"5O7V8l4SeXTymVp3IesT9C"')])])]),t._v(" "),s("tr",[s("td",[t._v("[limit]")]),t._v(" "),s("td",[t._v("The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),s("td",[s("code",[t._v("20")])])]),t._v(" "),s("tr",[s("td",[t._v("[offset]")]),t._v(" "),s("td",[t._v("The index of the first track to return. Default: 0 (the first object).")]),t._v(" "),s("td",[s("code",[t._v("0")])])]),t._v(" "),s("tr",[s("td",[t._v("[market]")]),t._v(" "),s("td",[t._v("An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#track-object-simplified",target:"_blank",rel:"noopener noreferrer"}},[t._v("SimpleTrack"),s("OutboundLink")],1),t._v(" wrapped inside a "),s("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#paging-object",target:"_blank",rel:"noopener noreferrer"}},[t._v("Paging-object"),s("OutboundLink")],1)]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[t._v("Paging"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("SimpleTrack"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" tracks "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetAlbumTracks")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"5O7V8l4SeXTymVp3IesT9C"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\ntracks"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Items"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ForEach")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("item "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" Console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("item"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Display all fetched Track-Names (max 20)")]),t._v("\nConsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("tracks"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Total"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ToString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Display total album track count")]),t._v("\n")])])]),s("hr"),t._v(" "),s("h2",{attrs:{id:"getalbum"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getalbum","aria-hidden":"true"}},[t._v("#")]),t._v(" GetAlbum")]),t._v(" "),s("blockquote",[s("p",[t._v("Get Spotify catalog information for a single album.")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("The Spotify ID for the album.")]),t._v(" "),s("td",[s("code",[t._v("5O7V8l4SeXTymVp3IesT9C")])])]),t._v(" "),s("tr",[s("td",[t._v("[market]")]),t._v(" "),s("td",[t._v("An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#album-object-full",target:"_blank",rel:"noopener noreferrer"}},[t._v("FullAlbum"),s("OutboundLink")],1)]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FullAlbum")]),t._v(" album "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetAlbum")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"5O7V8l4SeXTymVp3IesT9C"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nConsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("album"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"| Popularity: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" album"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Popularity"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Display name and Popularity")]),t._v("\n")])])]),s("hr"),t._v(" "),s("h2",{attrs:{id:"getseveralalbums"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getseveralalbums","aria-hidden":"true"}},[t._v("#")]),t._v(" GetSeveralAlbums")]),t._v(" "),s("blockquote",[s("p",[t._v("Get Spotify catalog information for multiple albums identified by their Spotify IDs.")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("ids")]),t._v(" "),s("td",[t._v("A list of the Spotify IDs for the albums. Maximum: 20 IDs.")]),t._v(" "),s("td",[s("code",[t._v('new List() { "5O7V8l4SeXTymVp3IesT9C" }')])])]),t._v(" "),s("tr",[s("td",[t._v("[market]")]),t._v(" "),s("td",[t._v("An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("code",[t._v("SeveralAlbums")]),t._v(' which Property "Albums" contains a list of '),s("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#album-object-full",target:"_blank",rel:"noopener noreferrer"}},[t._v("FullAlbum"),s("OutboundLink")],1)]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SeveralAlbums")]),t._v(" albums "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetSeveralAlbums")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token generic-method"}},[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("List")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"5O7V8l4SeXTymVp3IesT9C"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nConsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("albums"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Albums"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("hr")])},[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/13.77befe42.js b/assets/js/13.a13a382b.js similarity index 99% rename from assets/js/13.77befe42.js rename to assets/js/13.a13a382b.js index b20806bd..8683d3d2 100644 --- a/assets/js/13.77befe42.js +++ b/assets/js/13.a13a382b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{214:function(t,a,s){"use strict";s.r(a);var e=s(0),n=Object(e.a)({},function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"browse"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#browse","aria-hidden":"true"}},[t._v("#")]),t._v(" Browse")]),t._v(" "),s("h2",{attrs:{id:"getfeaturedplaylists"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getfeaturedplaylists","aria-hidden":"true"}},[t._v("#")]),t._v(" GetFeaturedPlaylists")]),t._v(" "),s("blockquote",[s("p",[t._v("Get a list of Spotify featured playlists (shown, for example, on a Spotify player’s β€œBrowse” tab).")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("[locale]")]),t._v(" "),s("td",[t._v("The desired language, consisting of a lowercase ISO 639 language code and an uppercase ISO 3166-1 alpha-2 country code, joined by an underscore.")]),t._v(" "),s("td",[s("code",[t._v('"de_DE" //Germany')])])]),t._v(" "),s("tr",[s("td",[t._v("[country]")]),t._v(" "),s("td",[t._v("A country: an ISO 3166-1 alpha-2 country code.")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])]),t._v(" "),s("tr",[s("td",[t._v("[timestamp]")]),t._v(" "),s("td",[t._v("A timestamp in ISO 8601 format")]),t._v(" "),s("td",[s("code",[t._v("DateTime.Now")])])]),t._v(" "),s("tr",[s("td",[t._v("[limit]")]),t._v(" "),s("td",[t._v("The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),s("td",[s("code",[t._v("20")])])]),t._v(" "),s("tr",[s("td",[t._v("[offset]")]),t._v(" "),s("td",[t._v("The index of the first item to return. Default: 0")]),t._v(" "),s("td",[s("code",[t._v("0")])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("code",[t._v("FeaturedPlaylists")]),t._v(" object, which has 2 properties. "),s("code",[t._v("String Message")]),t._v(" and "),s("code",[t._v("Paging Playlists")])]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FeaturedPlaylists")]),t._v(" playlists "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetFeaturedPlaylists")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nConsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("playlists"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Message"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nplaylists"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Playlists"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Items"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ForEach")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("playlist "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" Console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("playlist"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("hr"),t._v(" "),s("h2",{attrs:{id:"getnewalbumreleases"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getnewalbumreleases","aria-hidden":"true"}},[t._v("#")]),t._v(" GetNewAlbumReleases")]),t._v(" "),s("blockquote",[s("p",[t._v("Get a list of new album releases featured in Spotify (shown, for example, on a Spotify player’s β€œBrowse” tab).")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("[country]")]),t._v(" "),s("td",[t._v("A country: an ISO 3166-1 alpha-2 country code.")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])]),t._v(" "),s("tr",[s("td",[t._v("[limit]")]),t._v(" "),s("td",[t._v("The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),s("td",[s("code",[t._v("20")])])]),t._v(" "),s("tr",[s("td",[t._v("[offset]")]),t._v(" "),s("td",[t._v("The index of the first item to return. Default: 0")]),t._v(" "),s("td",[s("code",[t._v("0")])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("code",[t._v("NewAlbumReleases")]),t._v(" object, which has the property "),s("code",[t._v("Paging Albums")]),t._v(".")]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("NewAlbumReleases")]),t._v(" newAlbums "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetNewAlbumReleases")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nnewAlbums"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Albums"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Items"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ForEach")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("album "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" Console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("album"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("hr"),t._v(" "),s("h2",{attrs:{id:"getcategories"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getcategories","aria-hidden":"true"}},[t._v("#")]),t._v(" GetCategories")]),t._v(" "),s("blockquote",[s("p",[t._v("Get a list of categories used to tag items in Spotify (on, for example, the Spotify player’s β€œBrowse” tab).")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("[country]")]),t._v(" "),s("td",[t._v("A country: an ISO 3166-1 alpha-2 country code. Provide this parameter if you want to narrow the list of returned categories to those relevant to a particular country")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])]),t._v(" "),s("tr",[s("td",[t._v("[locale]")]),t._v(" "),s("td",[t._v("The desired language, consisting of an ISO 639 language code and an ISO 3166-1 alpha-2 country code, joined by an underscore")]),t._v(" "),s("td",[s("code",[t._v('"de_DE"')])])]),t._v(" "),s("tr",[s("td",[t._v("[limit]")]),t._v(" "),s("td",[t._v("The maximum number of categories to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),s("td",[s("code",[t._v("20")])])]),t._v(" "),s("tr",[s("td",[t._v("[offset]")]),t._v(" "),s("td",[t._v("The index of the first item to return. Default: 0 (the first object).")]),t._v(" "),s("td",[s("code",[t._v("0")])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("code",[t._v("CategoryList")]),t._v(" object, which has the property "),s("code",[t._v("Paging Categories")]),t._v(".")]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CategoryList")]),t._v(" categoryList "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetCategories")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\ncategoryList"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Categories"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Items"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ForEach")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("category "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" Console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("category"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("hr"),t._v(" "),s("h2",{attrs:{id:"getcategory"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getcategory","aria-hidden":"true"}},[t._v("#")]),t._v(" GetCategory")]),t._v(" "),s("blockquote",[s("p",[t._v("Get a single category used to tag items in Spotify (on, for example, the Spotify player’s β€œBrowse” tab).")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("categoryId")]),t._v(" "),s("td",[t._v("The Spotify category ID for the category.")]),t._v(" "),s("td",[s("code",[t._v('"party"')])])]),t._v(" "),s("tr",[s("td",[t._v("[country]")]),t._v(" "),s("td",[t._v("A country: an ISO 3166-1 alpha-2 country code. Provide this parameter to ensure that the category exists for a particular country.")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])]),t._v(" "),s("tr",[s("td",[t._v("[locale]")]),t._v(" "),s("td",[t._v("The desired language, consisting of an ISO 639 language code and an ISO 3166-1 alpha-2 country code, joined by an underscore")]),t._v(" "),s("td",[s("code",[t._v('"de_DE"')])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#category-object",target:"_blank",rel:"noopener noreferrer"}},[t._v("Category"),s("OutboundLink")],1)]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Category")]),t._v(" cat "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetCategory")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"party"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nConsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cat"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("hr"),t._v(" "),s("h2",{attrs:{id:"getcategoryplaylists"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getcategoryplaylists","aria-hidden":"true"}},[t._v("#")]),t._v(" GetCategoryPlaylists")]),t._v(" "),s("blockquote",[s("p",[t._v("Get a list of Spotify playlists tagged with a particular category.")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("categoryId")]),t._v(" "),s("td",[t._v("The Spotify category ID for the category.")]),t._v(" "),s("td",[s("code",[t._v('"party"')])])]),t._v(" "),s("tr",[s("td",[t._v("[country]")]),t._v(" "),s("td",[t._v("A country: an ISO 3166-1 alpha-2 country code.")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])]),t._v(" "),s("tr",[s("td",[t._v("[limit]")]),t._v(" "),s("td",[t._v("The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),s("td",[s("code",[t._v("20")])])]),t._v(" "),s("tr",[s("td",[t._v("[offset]")]),t._v(" "),s("td",[t._v("The index of the first item to return. Default: 0")]),t._v(" "),s("td",[s("code",[t._v("0")])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("code",[t._v("CategoryPlaylist")]),t._v(" object, which has the property "),s("code",[t._v("Paging Playlists")])]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CategoryPlaylist")]),t._v(" playlists "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetCategoryPlaylists")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"party"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nplaylists"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Playlists"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Items"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ForEach")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("playlist "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" Console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("playlist"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("hr")])},[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{213:function(t,a,s){"use strict";s.r(a);var e=s(0),n=Object(e.a)({},function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"browse"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#browse","aria-hidden":"true"}},[t._v("#")]),t._v(" Browse")]),t._v(" "),s("h2",{attrs:{id:"getfeaturedplaylists"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getfeaturedplaylists","aria-hidden":"true"}},[t._v("#")]),t._v(" GetFeaturedPlaylists")]),t._v(" "),s("blockquote",[s("p",[t._v("Get a list of Spotify featured playlists (shown, for example, on a Spotify player’s β€œBrowse” tab).")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("[locale]")]),t._v(" "),s("td",[t._v("The desired language, consisting of a lowercase ISO 639 language code and an uppercase ISO 3166-1 alpha-2 country code, joined by an underscore.")]),t._v(" "),s("td",[s("code",[t._v('"de_DE" //Germany')])])]),t._v(" "),s("tr",[s("td",[t._v("[country]")]),t._v(" "),s("td",[t._v("A country: an ISO 3166-1 alpha-2 country code.")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])]),t._v(" "),s("tr",[s("td",[t._v("[timestamp]")]),t._v(" "),s("td",[t._v("A timestamp in ISO 8601 format")]),t._v(" "),s("td",[s("code",[t._v("DateTime.Now")])])]),t._v(" "),s("tr",[s("td",[t._v("[limit]")]),t._v(" "),s("td",[t._v("The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),s("td",[s("code",[t._v("20")])])]),t._v(" "),s("tr",[s("td",[t._v("[offset]")]),t._v(" "),s("td",[t._v("The index of the first item to return. Default: 0")]),t._v(" "),s("td",[s("code",[t._v("0")])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("code",[t._v("FeaturedPlaylists")]),t._v(" object, which has 2 properties. "),s("code",[t._v("String Message")]),t._v(" and "),s("code",[t._v("Paging Playlists")])]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FeaturedPlaylists")]),t._v(" playlists "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetFeaturedPlaylists")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nConsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("playlists"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Message"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nplaylists"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Playlists"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Items"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ForEach")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("playlist "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" Console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("playlist"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("hr"),t._v(" "),s("h2",{attrs:{id:"getnewalbumreleases"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getnewalbumreleases","aria-hidden":"true"}},[t._v("#")]),t._v(" GetNewAlbumReleases")]),t._v(" "),s("blockquote",[s("p",[t._v("Get a list of new album releases featured in Spotify (shown, for example, on a Spotify player’s β€œBrowse” tab).")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("[country]")]),t._v(" "),s("td",[t._v("A country: an ISO 3166-1 alpha-2 country code.")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])]),t._v(" "),s("tr",[s("td",[t._v("[limit]")]),t._v(" "),s("td",[t._v("The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),s("td",[s("code",[t._v("20")])])]),t._v(" "),s("tr",[s("td",[t._v("[offset]")]),t._v(" "),s("td",[t._v("The index of the first item to return. Default: 0")]),t._v(" "),s("td",[s("code",[t._v("0")])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("code",[t._v("NewAlbumReleases")]),t._v(" object, which has the property "),s("code",[t._v("Paging Albums")]),t._v(".")]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("NewAlbumReleases")]),t._v(" newAlbums "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetNewAlbumReleases")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nnewAlbums"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Albums"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Items"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ForEach")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("album "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" Console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("album"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("hr"),t._v(" "),s("h2",{attrs:{id:"getcategories"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getcategories","aria-hidden":"true"}},[t._v("#")]),t._v(" GetCategories")]),t._v(" "),s("blockquote",[s("p",[t._v("Get a list of categories used to tag items in Spotify (on, for example, the Spotify player’s β€œBrowse” tab).")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("[country]")]),t._v(" "),s("td",[t._v("A country: an ISO 3166-1 alpha-2 country code. Provide this parameter if you want to narrow the list of returned categories to those relevant to a particular country")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])]),t._v(" "),s("tr",[s("td",[t._v("[locale]")]),t._v(" "),s("td",[t._v("The desired language, consisting of an ISO 639 language code and an ISO 3166-1 alpha-2 country code, joined by an underscore")]),t._v(" "),s("td",[s("code",[t._v('"de_DE"')])])]),t._v(" "),s("tr",[s("td",[t._v("[limit]")]),t._v(" "),s("td",[t._v("The maximum number of categories to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),s("td",[s("code",[t._v("20")])])]),t._v(" "),s("tr",[s("td",[t._v("[offset]")]),t._v(" "),s("td",[t._v("The index of the first item to return. Default: 0 (the first object).")]),t._v(" "),s("td",[s("code",[t._v("0")])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("code",[t._v("CategoryList")]),t._v(" object, which has the property "),s("code",[t._v("Paging Categories")]),t._v(".")]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CategoryList")]),t._v(" categoryList "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetCategories")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\ncategoryList"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Categories"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Items"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ForEach")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("category "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" Console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("category"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("hr"),t._v(" "),s("h2",{attrs:{id:"getcategory"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getcategory","aria-hidden":"true"}},[t._v("#")]),t._v(" GetCategory")]),t._v(" "),s("blockquote",[s("p",[t._v("Get a single category used to tag items in Spotify (on, for example, the Spotify player’s β€œBrowse” tab).")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("categoryId")]),t._v(" "),s("td",[t._v("The Spotify category ID for the category.")]),t._v(" "),s("td",[s("code",[t._v('"party"')])])]),t._v(" "),s("tr",[s("td",[t._v("[country]")]),t._v(" "),s("td",[t._v("A country: an ISO 3166-1 alpha-2 country code. Provide this parameter to ensure that the category exists for a particular country.")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])]),t._v(" "),s("tr",[s("td",[t._v("[locale]")]),t._v(" "),s("td",[t._v("The desired language, consisting of an ISO 639 language code and an ISO 3166-1 alpha-2 country code, joined by an underscore")]),t._v(" "),s("td",[s("code",[t._v('"de_DE"')])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#category-object",target:"_blank",rel:"noopener noreferrer"}},[t._v("Category"),s("OutboundLink")],1)]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Category")]),t._v(" cat "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetCategory")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"party"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nConsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cat"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("hr"),t._v(" "),s("h2",{attrs:{id:"getcategoryplaylists"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getcategoryplaylists","aria-hidden":"true"}},[t._v("#")]),t._v(" GetCategoryPlaylists")]),t._v(" "),s("blockquote",[s("p",[t._v("Get a list of Spotify playlists tagged with a particular category.")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("categoryId")]),t._v(" "),s("td",[t._v("The Spotify category ID for the category.")]),t._v(" "),s("td",[s("code",[t._v('"party"')])])]),t._v(" "),s("tr",[s("td",[t._v("[country]")]),t._v(" "),s("td",[t._v("A country: an ISO 3166-1 alpha-2 country code.")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])]),t._v(" "),s("tr",[s("td",[t._v("[limit]")]),t._v(" "),s("td",[t._v("The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),s("td",[s("code",[t._v("20")])])]),t._v(" "),s("tr",[s("td",[t._v("[offset]")]),t._v(" "),s("td",[t._v("The index of the first item to return. Default: 0")]),t._v(" "),s("td",[s("code",[t._v("0")])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("code",[t._v("CategoryPlaylist")]),t._v(" object, which has the property "),s("code",[t._v("Paging Playlists")])]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CategoryPlaylist")]),t._v(" playlists "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetCategoryPlaylists")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"party"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nplaylists"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Playlists"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Items"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ForEach")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("playlist "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" Console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("playlist"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("hr")])},[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/14.d80587f4.js b/assets/js/14.674b81b0.js similarity index 88% rename from assets/js/14.d80587f4.js rename to assets/js/14.674b81b0.js index 09978fe1..88ee60f5 100644 --- a/assets/js/14.d80587f4.js +++ b/assets/js/14.674b81b0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{213:function(e,t,s){"use strict";s.r(t);var a=s(0),r=Object(a.a)({},function(){var e=this.$createElement,t=this._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"examples"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#examples","aria-hidden":"true"}},[this._v("#")]),this._v(" Examples")]),this._v(" "),t("p",[this._v("This page is currently empty. Do you have useful examples? Please open a PR")])])},[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{214:function(e,t,s){"use strict";s.r(t);var a=s(0),r=Object(a.a)({},function(){var e=this.$createElement,t=this._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"examples"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#examples","aria-hidden":"true"}},[this._v("#")]),this._v(" Examples")]),this._v(" "),t("p",[this._v("This page is currently empty. Do you have useful examples? Please open a PR")])])},[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/17.7360dccd.js b/assets/js/17.cfa6b532.js similarity index 99% rename from assets/js/17.7360dccd.js rename to assets/js/17.cfa6b532.js index 11633d37..0cd8af4a 100644 --- a/assets/js/17.7360dccd.js +++ b/assets/js/17.cfa6b532.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{218:function(t,s,a){"use strict";a.r(s);var e=a(0),r=Object(e.a)({},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"library"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#library","aria-hidden":"true"}},[t._v("#")]),t._v(" Library")]),t._v(" "),a("h2",{attrs:{id:"savetracks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#savetracks","aria-hidden":"true"}},[t._v("#")]),t._v(" SaveTracks")]),t._v(" "),a("blockquote",[a("p",[t._v("Save one or more tracks to the current user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ids")]),t._v(" "),a("td",[t._v("A list of the Spotify IDs")]),t._v(" "),a("td",[a("code",[t._v('new List { "3Hvu1pq89D4R0lyPBoujSv" }')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("SaveTracks")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"3Hvu1pq89D4R0lyPBoujSv"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("HasError")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"savetrack"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#savetrack","aria-hidden":"true"}},[t._v("#")]),t._v(" SaveTrack")]),t._v(" "),a("blockquote",[a("p",[t._v("Save one track to the current user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("id")]),t._v(" "),a("td",[t._v("A Spotify ID")]),t._v(" "),a("td",[a("code",[t._v('"3Hvu1pq89D4R0lyPBoujSv"')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("SaveTrack")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"3Hvu1pq89D4R0lyPBoujSv"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("HasError")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"getsavedtracks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getsavedtracks","aria-hidden":"true"}},[t._v("#")]),t._v(" GetSavedTracks")]),t._v(" "),a("blockquote",[a("p",[t._v("Get a list of the songs saved in the current Spotify user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("[limit]")]),t._v(" "),a("td",[t._v("The maximum number of objects to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),a("td",[a("code",[t._v("20")])])]),t._v(" "),a("tr",[a("td",[t._v("[offset]")]),t._v(" "),a("td",[t._v("The index of the first object to return. Default: 0 (i.e., the first object)")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[t._v("[market]")]),t._v(" "),a("td",[t._v("An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.")]),t._v(" "),a("td",[a("code",[t._v("DE")])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("Paging**, **SavedTrack")]),t._v(" contains 2 properties, "),a("code",[t._v("DateTime AddedAt")]),t._v(" and "),a("code",[t._v("FullTrack Track")])]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[t._v("Paging"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("SavedTrack"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" savedTracks "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetSavedTracks")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nsavedTracks"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Items"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("ForEach")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("track "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("track"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Track"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"removesavedtracks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removesavedtracks","aria-hidden":"true"}},[t._v("#")]),t._v(" RemoveSavedTracks")]),t._v(" "),a("blockquote",[a("p",[t._v("Remove one or more tracks from the current user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ids")]),t._v(" "),a("td",[t._v("A list of the Spotify IDs.")]),t._v(" "),a("td",[a("code",[t._v('new List { "3Hvu1pq89D4R0lyPBoujSv" }')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("RemoveSavedTracks")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"3Hvu1pq89D4R0lyPBoujSv"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("HasError")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"checksavedtracks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#checksavedtracks","aria-hidden":"true"}},[t._v("#")]),t._v(" CheckSavedTracks")]),t._v(" "),a("blockquote",[a("p",[t._v("Check if one or more tracks is already saved in the current Spotify user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ids")]),t._v(" "),a("td",[t._v("A list of the Spotify IDs.")]),t._v(" "),a("td",[a("code",[t._v('new List { "3Hvu1pq89D4R0lyPBoujSv" }')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ListResponse")]),t._v(" which contains a property, "),a("code",[t._v("List List")])]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[t._v("ListResponse"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("bool")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" tracksSaved "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("CheckSavedTracks")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("String"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"3Hvu1pq89D4R0lyPBoujSv"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("tracksSaved"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("List"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"The track is in your library!"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"savealbums"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#savealbums","aria-hidden":"true"}},[t._v("#")]),t._v(" SaveAlbums")]),t._v(" "),a("blockquote",[a("p",[t._v("Save one or more albums to the current user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ids")]),t._v(" "),a("td",[t._v("A list of the Spotify IDs")]),t._v(" "),a("td",[a("code",[t._v('new List { "1cq06d0kTUnFmJHixz1RaF" }')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("SaveAlbums")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1cq06d0kTUnFmJHixz1RaF"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("HasError")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"savealbum"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#savealbum","aria-hidden":"true"}},[t._v("#")]),t._v(" SaveAlbum")]),t._v(" "),a("blockquote",[a("p",[t._v("Save one album to the current user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("id")]),t._v(" "),a("td",[t._v("A Spotify ID")]),t._v(" "),a("td",[a("code",[t._v('"1cq06d0kTUnFmJHixz1RaF"')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("SaveAlbum")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1cq06d0kTUnFmJHixz1RaF"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("HasError")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"getsavedalbums"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getsavedalbums","aria-hidden":"true"}},[t._v("#")]),t._v(" GetSavedAlbums")]),t._v(" "),a("blockquote",[a("p",[t._v("Get a list of the albums saved in the current Spotify user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("[limit]")]),t._v(" "),a("td",[t._v("The maximum number of objects to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),a("td",[a("code",[t._v("20")])])]),t._v(" "),a("tr",[a("td",[t._v("[offset]")]),t._v(" "),a("td",[t._v("The index of the first object to return. Default: 0 (i.e., the first object)")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[t._v("[market]")]),t._v(" "),a("td",[t._v("An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.")]),t._v(" "),a("td",[a("code",[t._v("DE")])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("Paging")]),t._v(", "),a("strong",[t._v("SavedAlbum")]),t._v(" contains 2 properties, "),a("code",[t._v("DateTime AddedAt")]),t._v(" and "),a("code",[t._v("FullAlbum Album")])]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[t._v("Paging"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("SavedAlbum"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" savedAlbums "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetSavedAlbums")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nsavedAlbums"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Items"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("ForEach")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("album "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("album"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Album"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"removesavedalbums"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removesavedalbums","aria-hidden":"true"}},[t._v("#")]),t._v(" RemoveSavedAlbums")]),t._v(" "),a("blockquote",[a("p",[t._v("Remove one or more albums from the current user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ids")]),t._v(" "),a("td",[t._v("A list of the Spotify IDs.")]),t._v(" "),a("td",[a("code",[t._v('new List { "1cq06d0kTUnFmJHixz1RaF" }')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("RemoveSavedAlbums")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1cq06d0kTUnFmJHixz1RaF"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("HasError")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"checksavedalbums"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#checksavedalbums","aria-hidden":"true"}},[t._v("#")]),t._v(" CheckSavedAlbums")]),t._v(" "),a("blockquote",[a("p",[t._v("Check if one or more albums is already saved in the current Spotify user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ids")]),t._v(" "),a("td",[t._v("A list of the Spotify IDs.")]),t._v(" "),a("td",[a("code",[t._v('new List { "1cq06d0kTUnFmJHixz1RaF" }')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ListResponse")]),t._v(" which contains a property, "),a("code",[t._v("List List")])]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[t._v("ListResponse"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("bool")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" albumsSaved "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("CheckSavedAlbums")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("String"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1cq06d0kTUnFmJHixz1RaF"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("albumsSaved"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("List"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"The album is in your library!"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr")])},[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{217:function(t,s,a){"use strict";a.r(s);var e=a(0),r=Object(e.a)({},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"library"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#library","aria-hidden":"true"}},[t._v("#")]),t._v(" Library")]),t._v(" "),a("h2",{attrs:{id:"savetracks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#savetracks","aria-hidden":"true"}},[t._v("#")]),t._v(" SaveTracks")]),t._v(" "),a("blockquote",[a("p",[t._v("Save one or more tracks to the current user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ids")]),t._v(" "),a("td",[t._v("A list of the Spotify IDs")]),t._v(" "),a("td",[a("code",[t._v('new List { "3Hvu1pq89D4R0lyPBoujSv" }')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("SaveTracks")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"3Hvu1pq89D4R0lyPBoujSv"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("HasError")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"savetrack"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#savetrack","aria-hidden":"true"}},[t._v("#")]),t._v(" SaveTrack")]),t._v(" "),a("blockquote",[a("p",[t._v("Save one track to the current user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("id")]),t._v(" "),a("td",[t._v("A Spotify ID")]),t._v(" "),a("td",[a("code",[t._v('"3Hvu1pq89D4R0lyPBoujSv"')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("SaveTrack")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"3Hvu1pq89D4R0lyPBoujSv"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("HasError")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"getsavedtracks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getsavedtracks","aria-hidden":"true"}},[t._v("#")]),t._v(" GetSavedTracks")]),t._v(" "),a("blockquote",[a("p",[t._v("Get a list of the songs saved in the current Spotify user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("[limit]")]),t._v(" "),a("td",[t._v("The maximum number of objects to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),a("td",[a("code",[t._v("20")])])]),t._v(" "),a("tr",[a("td",[t._v("[offset]")]),t._v(" "),a("td",[t._v("The index of the first object to return. Default: 0 (i.e., the first object)")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[t._v("[market]")]),t._v(" "),a("td",[t._v("An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.")]),t._v(" "),a("td",[a("code",[t._v("DE")])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("Paging**, **SavedTrack")]),t._v(" contains 2 properties, "),a("code",[t._v("DateTime AddedAt")]),t._v(" and "),a("code",[t._v("FullTrack Track")])]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[t._v("Paging"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("SavedTrack"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" savedTracks "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetSavedTracks")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nsavedTracks"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Items"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("ForEach")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("track "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("track"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Track"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"removesavedtracks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removesavedtracks","aria-hidden":"true"}},[t._v("#")]),t._v(" RemoveSavedTracks")]),t._v(" "),a("blockquote",[a("p",[t._v("Remove one or more tracks from the current user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ids")]),t._v(" "),a("td",[t._v("A list of the Spotify IDs.")]),t._v(" "),a("td",[a("code",[t._v('new List { "3Hvu1pq89D4R0lyPBoujSv" }')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("RemoveSavedTracks")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"3Hvu1pq89D4R0lyPBoujSv"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("HasError")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"checksavedtracks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#checksavedtracks","aria-hidden":"true"}},[t._v("#")]),t._v(" CheckSavedTracks")]),t._v(" "),a("blockquote",[a("p",[t._v("Check if one or more tracks is already saved in the current Spotify user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ids")]),t._v(" "),a("td",[t._v("A list of the Spotify IDs.")]),t._v(" "),a("td",[a("code",[t._v('new List { "3Hvu1pq89D4R0lyPBoujSv" }')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ListResponse")]),t._v(" which contains a property, "),a("code",[t._v("List List")])]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[t._v("ListResponse"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("bool")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" tracksSaved "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("CheckSavedTracks")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("String"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"3Hvu1pq89D4R0lyPBoujSv"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("tracksSaved"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("List"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"The track is in your library!"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"savealbums"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#savealbums","aria-hidden":"true"}},[t._v("#")]),t._v(" SaveAlbums")]),t._v(" "),a("blockquote",[a("p",[t._v("Save one or more albums to the current user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ids")]),t._v(" "),a("td",[t._v("A list of the Spotify IDs")]),t._v(" "),a("td",[a("code",[t._v('new List { "1cq06d0kTUnFmJHixz1RaF" }')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("SaveAlbums")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1cq06d0kTUnFmJHixz1RaF"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("HasError")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"savealbum"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#savealbum","aria-hidden":"true"}},[t._v("#")]),t._v(" SaveAlbum")]),t._v(" "),a("blockquote",[a("p",[t._v("Save one album to the current user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("id")]),t._v(" "),a("td",[t._v("A Spotify ID")]),t._v(" "),a("td",[a("code",[t._v('"1cq06d0kTUnFmJHixz1RaF"')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("SaveAlbum")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1cq06d0kTUnFmJHixz1RaF"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("HasError")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"getsavedalbums"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getsavedalbums","aria-hidden":"true"}},[t._v("#")]),t._v(" GetSavedAlbums")]),t._v(" "),a("blockquote",[a("p",[t._v("Get a list of the albums saved in the current Spotify user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("[limit]")]),t._v(" "),a("td",[t._v("The maximum number of objects to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),a("td",[a("code",[t._v("20")])])]),t._v(" "),a("tr",[a("td",[t._v("[offset]")]),t._v(" "),a("td",[t._v("The index of the first object to return. Default: 0 (i.e., the first object)")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[t._v("[market]")]),t._v(" "),a("td",[t._v("An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.")]),t._v(" "),a("td",[a("code",[t._v("DE")])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("Paging")]),t._v(", "),a("strong",[t._v("SavedAlbum")]),t._v(" contains 2 properties, "),a("code",[t._v("DateTime AddedAt")]),t._v(" and "),a("code",[t._v("FullAlbum Album")])]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[t._v("Paging"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("SavedAlbum"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" savedAlbums "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetSavedAlbums")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nsavedAlbums"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Items"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("ForEach")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("album "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("album"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Album"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"removesavedalbums"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removesavedalbums","aria-hidden":"true"}},[t._v("#")]),t._v(" RemoveSavedAlbums")]),t._v(" "),a("blockquote",[a("p",[t._v("Remove one or more albums from the current user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ids")]),t._v(" "),a("td",[t._v("A list of the Spotify IDs.")]),t._v(" "),a("td",[a("code",[t._v('new List { "1cq06d0kTUnFmJHixz1RaF" }')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("RemoveSavedAlbums")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1cq06d0kTUnFmJHixz1RaF"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("HasError")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"checksavedalbums"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#checksavedalbums","aria-hidden":"true"}},[t._v("#")]),t._v(" CheckSavedAlbums")]),t._v(" "),a("blockquote",[a("p",[t._v("Check if one or more albums is already saved in the current Spotify user’s β€œYour Music” library.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ids")]),t._v(" "),a("td",[t._v("A list of the Spotify IDs.")]),t._v(" "),a("td",[a("code",[t._v('new List { "1cq06d0kTUnFmJHixz1RaF" }')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ListResponse")]),t._v(" which contains a property, "),a("code",[t._v("List List")])]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[t._v("ListResponse"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("bool")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" albumsSaved "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("CheckSavedAlbums")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("String"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1cq06d0kTUnFmJHixz1RaF"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("albumsSaved"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("List"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"The album is in your library!"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr")])},[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/18.9d99294a.js b/assets/js/18.5a36f4f9.js similarity index 98% rename from assets/js/18.9d99294a.js rename to assets/js/18.5a36f4f9.js index 55a3b9f9..e63bdcc6 100644 --- a/assets/js/18.9d99294a.js +++ b/assets/js/18.5a36f4f9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{217:function(t,e,r){"use strict";r.r(e);var a=r(0),s=Object(a.a)({},function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"personalization"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#personalization","aria-hidden":"true"}},[t._v("#")]),t._v(" Personalization")]),t._v(" "),r("h2",{attrs:{id:"getuserstoptracks"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#getuserstoptracks","aria-hidden":"true"}},[t._v("#")]),t._v(" GetUsersTopTracks")]),t._v(" "),r("blockquote",[r("p",[t._v("Get the current user’s top tracks based on calculated affinity.")])]),t._v(" "),r("p",[r("strong",[t._v("Parameters")])]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Name")]),t._v(" "),r("th",[t._v("Description")]),t._v(" "),r("th",[t._v("Example")])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("[timeRange]")]),t._v(" "),r("td",[t._v("Over what time frame the affinities are compute.")]),t._v(" "),r("td",[r("code",[t._v("TimeRangeType.MediumTerm")])])]),t._v(" "),r("tr",[r("td",[t._v("[limit]")]),t._v(" "),r("td",[t._v("The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),r("td",[r("code",[t._v("20")])])]),t._v(" "),r("tr",[r("td",[t._v("[offset]")]),t._v(" "),r("td",[t._v("The index of the first entity to return. Default: 0 (i.e., the first track). Use with limit to get the next set of entities.")]),t._v(" "),r("td",[r("code",[t._v("0")])])])])]),t._v(" "),r("p",[t._v("Returns a "),r("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#track-object-full",target:"_blank",rel:"noopener noreferrer"}},[t._v("FullTrack"),r("OutboundLink")],1),t._v(" wrapped inside a "),r("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#paging-object",target:"_blank",rel:"noopener noreferrer"}},[t._v("Paging-object"),r("OutboundLink")],1)]),t._v(" "),r("p",[r("strong",[t._v("Usage")])]),t._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",{pre:!0,attrs:{class:"language-text"}},[r("code",[t._v("Paging tracks = _spotify.GetUsersTopTracks();\ntracks.Items.ForEach(item => Console.WriteLine(item.Name)); //Display all fetched Track-Names (max 20)\nConsole.WriteLine(tracks.Total.ToString()) //Display total album track count\n")])])]),r("hr"),t._v(" "),r("h2",{attrs:{id:"getuserstopartists"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#getuserstopartists","aria-hidden":"true"}},[t._v("#")]),t._v(" GetUsersTopArtists")]),t._v(" "),r("blockquote",[r("p",[t._v("Get the current user’s top artists based on calculated affinity.")])]),t._v(" "),r("p",[r("strong",[t._v("Parameters")])]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Name")]),t._v(" "),r("th",[t._v("Description")]),t._v(" "),r("th",[t._v("Example")])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("[timeRange]")]),t._v(" "),r("td",[t._v("Over what time frame the affinities are compute.")]),t._v(" "),r("td",[r("code",[t._v("TimeRangeType.MediumTerm")])])]),t._v(" "),r("tr",[r("td",[t._v("[limit]")]),t._v(" "),r("td",[t._v("The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),r("td",[r("code",[t._v("20")])])]),t._v(" "),r("tr",[r("td",[t._v("[offset]")]),t._v(" "),r("td",[t._v("The index of the first entity to return. Default: 0 (i.e., the first track). Use with limit to get the next set of entities.")]),t._v(" "),r("td",[r("code",[t._v("0")])])])])]),t._v(" "),r("p",[t._v("Returns a "),r("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#artist-object-full",target:"_blank",rel:"noopener noreferrer"}},[t._v("FullArtist"),r("OutboundLink")],1),t._v(" wrapped inside a "),r("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#paging-object",target:"_blank",rel:"noopener noreferrer"}},[t._v("Paging-object"),r("OutboundLink")],1)]),t._v(" "),r("p",[r("strong",[t._v("Usage")])]),t._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",{pre:!0,attrs:{class:"language-text"}},[r("code",[t._v("Paging artists = _spotify.GetUsersTopArtists();\nartists.Items.ForEach(item => Console.WriteLine(item.Name)); //Display all fetched Artist-Names (max 20)\n")])])]),r("hr"),t._v(" "),r("h2",{attrs:{id:"getusersrecentlyplayedtracks"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#getusersrecentlyplayedtracks","aria-hidden":"true"}},[t._v("#")]),t._v(" GetUsersRecentlyPlayedTracks")]),t._v(" "),r("blockquote",[r("p",[t._v("Get tracks from the current user’s recent play history.")])]),t._v(" "),r("p",[r("strong",[t._v("Parameters")])]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Name")]),t._v(" "),r("th",[t._v("Description")]),t._v(" "),r("th",[t._v("Example")])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("[limit]")]),t._v(" "),r("td",[t._v("The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),r("td",[r("code",[t._v("20")])])]),t._v(" "),r("tr",[r("td",[t._v("[after]")]),t._v(" "),r("td",[t._v("Returns all items after (but not including) this cursor position.")]),t._v(" "),r("td",[r("code",[t._v("DateTime.Now.AddDays(-1)")])])]),t._v(" "),r("tr",[r("td",[t._v("[before]")]),t._v(" "),r("td",[t._v("Returns all items before (but not including) this cursor position.")]),t._v(" "),r("td",[r("code",[t._v("DateTime.Now.AddDays(-1)")])])])])]),t._v(" "),r("p",[t._v("Returns a "),r("code",[t._v("PlayHistory")]),t._v(" wrapped inside a "),r("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#cursor-based-paging-object",target:"_blank",rel:"noopener noreferrer"}},[t._v("CursorPaging-object"),r("OutboundLink")],1)]),t._v(" "),r("p",[r("strong",[t._v("Usage")])]),t._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",{pre:!0,attrs:{class:"language-text"}},[r("code",[t._v("CursorPaging histories = _spotify.GetUsersRecentlyPlayedTracks();\nhistories.Items.ForEach(item => Console.WriteLine(item.Track.Name));\n")])])]),r("hr")])},[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{218:function(t,e,r){"use strict";r.r(e);var a=r(0),s=Object(a.a)({},function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"personalization"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#personalization","aria-hidden":"true"}},[t._v("#")]),t._v(" Personalization")]),t._v(" "),r("h2",{attrs:{id:"getuserstoptracks"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#getuserstoptracks","aria-hidden":"true"}},[t._v("#")]),t._v(" GetUsersTopTracks")]),t._v(" "),r("blockquote",[r("p",[t._v("Get the current user’s top tracks based on calculated affinity.")])]),t._v(" "),r("p",[r("strong",[t._v("Parameters")])]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Name")]),t._v(" "),r("th",[t._v("Description")]),t._v(" "),r("th",[t._v("Example")])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("[timeRange]")]),t._v(" "),r("td",[t._v("Over what time frame the affinities are compute.")]),t._v(" "),r("td",[r("code",[t._v("TimeRangeType.MediumTerm")])])]),t._v(" "),r("tr",[r("td",[t._v("[limit]")]),t._v(" "),r("td",[t._v("The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),r("td",[r("code",[t._v("20")])])]),t._v(" "),r("tr",[r("td",[t._v("[offset]")]),t._v(" "),r("td",[t._v("The index of the first entity to return. Default: 0 (i.e., the first track). Use with limit to get the next set of entities.")]),t._v(" "),r("td",[r("code",[t._v("0")])])])])]),t._v(" "),r("p",[t._v("Returns a "),r("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#track-object-full",target:"_blank",rel:"noopener noreferrer"}},[t._v("FullTrack"),r("OutboundLink")],1),t._v(" wrapped inside a "),r("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#paging-object",target:"_blank",rel:"noopener noreferrer"}},[t._v("Paging-object"),r("OutboundLink")],1)]),t._v(" "),r("p",[r("strong",[t._v("Usage")])]),t._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",{pre:!0,attrs:{class:"language-text"}},[r("code",[t._v("Paging tracks = _spotify.GetUsersTopTracks();\ntracks.Items.ForEach(item => Console.WriteLine(item.Name)); //Display all fetched Track-Names (max 20)\nConsole.WriteLine(tracks.Total.ToString()) //Display total album track count\n")])])]),r("hr"),t._v(" "),r("h2",{attrs:{id:"getuserstopartists"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#getuserstopartists","aria-hidden":"true"}},[t._v("#")]),t._v(" GetUsersTopArtists")]),t._v(" "),r("blockquote",[r("p",[t._v("Get the current user’s top artists based on calculated affinity.")])]),t._v(" "),r("p",[r("strong",[t._v("Parameters")])]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Name")]),t._v(" "),r("th",[t._v("Description")]),t._v(" "),r("th",[t._v("Example")])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("[timeRange]")]),t._v(" "),r("td",[t._v("Over what time frame the affinities are compute.")]),t._v(" "),r("td",[r("code",[t._v("TimeRangeType.MediumTerm")])])]),t._v(" "),r("tr",[r("td",[t._v("[limit]")]),t._v(" "),r("td",[t._v("The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),r("td",[r("code",[t._v("20")])])]),t._v(" "),r("tr",[r("td",[t._v("[offset]")]),t._v(" "),r("td",[t._v("The index of the first entity to return. Default: 0 (i.e., the first track). Use with limit to get the next set of entities.")]),t._v(" "),r("td",[r("code",[t._v("0")])])])])]),t._v(" "),r("p",[t._v("Returns a "),r("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#artist-object-full",target:"_blank",rel:"noopener noreferrer"}},[t._v("FullArtist"),r("OutboundLink")],1),t._v(" wrapped inside a "),r("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#paging-object",target:"_blank",rel:"noopener noreferrer"}},[t._v("Paging-object"),r("OutboundLink")],1)]),t._v(" "),r("p",[r("strong",[t._v("Usage")])]),t._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",{pre:!0,attrs:{class:"language-text"}},[r("code",[t._v("Paging artists = _spotify.GetUsersTopArtists();\nartists.Items.ForEach(item => Console.WriteLine(item.Name)); //Display all fetched Artist-Names (max 20)\n")])])]),r("hr"),t._v(" "),r("h2",{attrs:{id:"getusersrecentlyplayedtracks"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#getusersrecentlyplayedtracks","aria-hidden":"true"}},[t._v("#")]),t._v(" GetUsersRecentlyPlayedTracks")]),t._v(" "),r("blockquote",[r("p",[t._v("Get tracks from the current user’s recent play history.")])]),t._v(" "),r("p",[r("strong",[t._v("Parameters")])]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Name")]),t._v(" "),r("th",[t._v("Description")]),t._v(" "),r("th",[t._v("Example")])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("[limit]")]),t._v(" "),r("td",[t._v("The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),r("td",[r("code",[t._v("20")])])]),t._v(" "),r("tr",[r("td",[t._v("[after]")]),t._v(" "),r("td",[t._v("Returns all items after (but not including) this cursor position.")]),t._v(" "),r("td",[r("code",[t._v("DateTime.Now.AddDays(-1)")])])]),t._v(" "),r("tr",[r("td",[t._v("[before]")]),t._v(" "),r("td",[t._v("Returns all items before (but not including) this cursor position.")]),t._v(" "),r("td",[r("code",[t._v("DateTime.Now.AddDays(-1)")])])])])]),t._v(" "),r("p",[t._v("Returns a "),r("code",[t._v("PlayHistory")]),t._v(" wrapped inside a "),r("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#cursor-based-paging-object",target:"_blank",rel:"noopener noreferrer"}},[t._v("CursorPaging-object"),r("OutboundLink")],1)]),t._v(" "),r("p",[r("strong",[t._v("Usage")])]),t._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",{pre:!0,attrs:{class:"language-text"}},[r("code",[t._v("CursorPaging histories = _spotify.GetUsersRecentlyPlayedTracks();\nhistories.Items.ForEach(item => Console.WriteLine(item.Track.Name));\n")])])]),r("hr")])},[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/23.6d1546f5.js b/assets/js/23.189ba1f0.js similarity index 98% rename from assets/js/23.6d1546f5.js rename to assets/js/23.189ba1f0.js index cedc7cbb..2533b364 100644 --- a/assets/js/23.6d1546f5.js +++ b/assets/js/23.189ba1f0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{223:function(t,a,s){"use strict";s.r(a);var e=s(0),r=Object(e.a)({},function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"search"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#search","aria-hidden":"true"}},[t._v("#")]),t._v(" Search")]),t._v(" "),s("h2",{attrs:{id:"searchitems"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#searchitems","aria-hidden":"true"}},[t._v("#")]),t._v(" SearchItems")]),t._v(" "),s("blockquote",[s("p",[t._v("Get Spotify catalog information about artists, albums, tracks or playlists that match a keyword string.")])]),t._v(" "),s("div",{staticClass:"custom-block warning"},[s("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),s("p",[t._v("You may want to use "),s("code",[t._v("SearchItemsEscaped")]),t._v(" if you're processing user-input without validation")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("q")]),t._v(" "),s("td",[t._v("The search query's keywords (and optional field filters and operators), for example q=roadhouse+blues.")]),t._v(" "),s("td",[s("code",[t._v('"roadhouse+blues"')])])]),t._v(" "),s("tr",[s("td",[t._v("type")]),t._v(" "),s("td",[t._v("A list of item types to search across.")]),t._v(" "),s("td",[s("code",[t._v("SearchType.Album")])])]),t._v(" "),s("tr",[s("td",[t._v("[limit]")]),t._v(" "),s("td",[t._v("The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),s("td",[s("code",[t._v("20")])])]),t._v(" "),s("tr",[s("td",[t._v("[offset]")]),t._v(" "),s("td",[t._v("The index of the first result to return. Default: 0")]),t._v(" "),s("td",[s("code",[t._v("0")])])]),t._v(" "),s("tr",[s("td",[t._v("[market]")]),t._v(" "),s("td",[t._v("An ISO 3166-1 alpha-2 country code or the string from_token.")]),t._v(" "),s("td",[s("code",[t._v('"de"')])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("code",[t._v("SearchItem")]),t._v(" which contains the properties "),s("code",[t._v("Paging Artists")]),t._v(","),s("code",[t._v("Paging Tracks")]),t._v(", "),s("code",[t._v("Paging Albums")]),t._v(", "),s("code",[t._v("Paging Playlists")]),t._v(". They are filled based on your search-type.")]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SearchItem")]),t._v(" item "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("SearchItems")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"roadhouse+blues"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" SearchType"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Album "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" SearchType"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Playlist"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nConsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("item"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Albums"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Total"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//How many results are there in total? NOTE: item.Tracks = item.Artists = null")]),t._v("\n")])])]),s("hr"),t._v(" "),s("h2",{attrs:{id:"searchitemsescaped"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#searchitemsescaped","aria-hidden":"true"}},[t._v("#")]),t._v(" SearchItemsEscaped")]),t._v(" "),s("blockquote",[s("p",[t._v("Get Spotify catalog information about artists, albums, tracks or playlists that match a keyword string.")])]),t._v(" "),s("p",[t._v("Works like "),s("code",[t._v("SearchItems")]),t._v(", but URL escapes all characters")])])},[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{222:function(t,a,s){"use strict";s.r(a);var e=s(0),r=Object(e.a)({},function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"search"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#search","aria-hidden":"true"}},[t._v("#")]),t._v(" Search")]),t._v(" "),s("h2",{attrs:{id:"searchitems"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#searchitems","aria-hidden":"true"}},[t._v("#")]),t._v(" SearchItems")]),t._v(" "),s("blockquote",[s("p",[t._v("Get Spotify catalog information about artists, albums, tracks or playlists that match a keyword string.")])]),t._v(" "),s("div",{staticClass:"custom-block warning"},[s("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),s("p",[t._v("You may want to use "),s("code",[t._v("SearchItemsEscaped")]),t._v(" if you're processing user-input without validation")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("q")]),t._v(" "),s("td",[t._v("The search query's keywords (and optional field filters and operators), for example q=roadhouse+blues.")]),t._v(" "),s("td",[s("code",[t._v('"roadhouse+blues"')])])]),t._v(" "),s("tr",[s("td",[t._v("type")]),t._v(" "),s("td",[t._v("A list of item types to search across.")]),t._v(" "),s("td",[s("code",[t._v("SearchType.Album")])])]),t._v(" "),s("tr",[s("td",[t._v("[limit]")]),t._v(" "),s("td",[t._v("The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.")]),t._v(" "),s("td",[s("code",[t._v("20")])])]),t._v(" "),s("tr",[s("td",[t._v("[offset]")]),t._v(" "),s("td",[t._v("The index of the first result to return. Default: 0")]),t._v(" "),s("td",[s("code",[t._v("0")])])]),t._v(" "),s("tr",[s("td",[t._v("[market]")]),t._v(" "),s("td",[t._v("An ISO 3166-1 alpha-2 country code or the string from_token.")]),t._v(" "),s("td",[s("code",[t._v('"de"')])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("code",[t._v("SearchItem")]),t._v(" which contains the properties "),s("code",[t._v("Paging Artists")]),t._v(","),s("code",[t._v("Paging Tracks")]),t._v(", "),s("code",[t._v("Paging Albums")]),t._v(", "),s("code",[t._v("Paging Playlists")]),t._v(". They are filled based on your search-type.")]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SearchItem")]),t._v(" item "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("SearchItems")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"roadhouse+blues"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" SearchType"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Album "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" SearchType"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Playlist"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nConsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("item"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Albums"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Total"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//How many results are there in total? NOTE: item.Tracks = item.Artists = null")]),t._v("\n")])])]),s("hr"),t._v(" "),s("h2",{attrs:{id:"searchitemsescaped"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#searchitemsescaped","aria-hidden":"true"}},[t._v("#")]),t._v(" SearchItemsEscaped")]),t._v(" "),s("blockquote",[s("p",[t._v("Get Spotify catalog information about artists, albums, tracks or playlists that match a keyword string.")])]),t._v(" "),s("p",[t._v("Works like "),s("code",[t._v("SearchItems")]),t._v(", but URL escapes all characters")])])},[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/24.be2f7a96.js b/assets/js/24.7e642ae6.js similarity index 99% rename from assets/js/24.be2f7a96.js rename to assets/js/24.7e642ae6.js index 2669a825..d4200cfd 100644 --- a/assets/js/24.be2f7a96.js +++ b/assets/js/24.7e642ae6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{222:function(t,a,s){"use strict";s.r(a);var e=s(0),n=Object(e.a)({},function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"tracks"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#tracks","aria-hidden":"true"}},[t._v("#")]),t._v(" Tracks")]),t._v(" "),s("h2",{attrs:{id:"getseveraltracks"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getseveraltracks","aria-hidden":"true"}},[t._v("#")]),t._v(" GetSeveralTracks")]),t._v(" "),s("blockquote",[s("p",[t._v("Get Spotify catalog information for multiple tracks based on their Spotify IDs.")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("ids")]),t._v(" "),s("td",[t._v("A list of the Spotify IDs for the tracks. Maximum: 50 IDs.")]),t._v(" "),s("td",[s("code",[t._v('new List {"6Y1CLPwYe7zvI8PJiWVz6T"}')])])]),t._v(" "),s("tr",[s("td",[t._v("market")]),t._v(" "),s("td",[t._v("An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("code",[t._v("SeveralTracks")]),t._v(" object which has one property, "),s("code",[t._v("List Tracks")])]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SeveralTracks")]),t._v(" severalTracks "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetSeveralTracks")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("String"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"6Y1CLPwYe7zvI8PJiWVz6T"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nseveralTracks"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Tracks"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ForEach")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("track "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" Console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("track"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("hr"),t._v(" "),s("h2",{attrs:{id:"gettrack"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#gettrack","aria-hidden":"true"}},[t._v("#")]),t._v(" GetTrack")]),t._v(" "),s("blockquote",[s("p",[t._v("Get Spotify catalog information for a single track identified by its unique Spotify ID.")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("The Spotify ID for the track.")]),t._v(" "),s("td",[s("code",[t._v('"6Y1CLPwYe7zvI8PJiWVz6T"')])])]),t._v(" "),s("tr",[s("td",[t._v("market")]),t._v(" "),s("td",[t._v("An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#track-object-full",target:"_blank",rel:"noopener noreferrer"}},[t._v("FullTrack"),s("OutboundLink")],1)]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FullTrack")]),t._v(" track "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetTrack")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"6Y1CLPwYe7zvI8PJiWVz6T"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nConsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("track"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("hr"),t._v(" "),s("h2",{attrs:{id:"getaudioanalysis"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getaudioanalysis","aria-hidden":"true"}},[t._v("#")]),t._v(" GetAudioAnalysis")]),t._v(" "),s("blockquote",[s("p",[t._v("Get a detailed audio analysis for a single track identified by its unique Spotify ID.")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("The Spotify ID for the track.")]),t._v(" "),s("td",[s("code",[t._v('"6Y1CLPwYe7zvI8PJiWVz6T"')])])])])]),t._v(" "),s("p",[t._v("Returns a AudioAnalysis. This object is currently lacking Spotify documentation but archived "),s("a",{attrs:{href:"https://web.archive.org/web/20160528174915/http://developer.echonest.com/docs/v4/_static/AnalyzeDocumentation.pdf",target:"_blank",rel:"noopener noreferrer"}},[t._v("EchoNest documentation"),s("OutboundLink")],1),t._v(" is relevant.")]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AudioAnalysis")]),t._v(" analysis "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetAudioAnalysis")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"6Y1CLPwYe7zvI8PJiWVz6T"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nConsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("analysis"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Meta"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("DetailedStatus"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])},[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{223:function(t,a,s){"use strict";s.r(a);var e=s(0),n=Object(e.a)({},function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"tracks"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#tracks","aria-hidden":"true"}},[t._v("#")]),t._v(" Tracks")]),t._v(" "),s("h2",{attrs:{id:"getseveraltracks"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getseveraltracks","aria-hidden":"true"}},[t._v("#")]),t._v(" GetSeveralTracks")]),t._v(" "),s("blockquote",[s("p",[t._v("Get Spotify catalog information for multiple tracks based on their Spotify IDs.")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("ids")]),t._v(" "),s("td",[t._v("A list of the Spotify IDs for the tracks. Maximum: 50 IDs.")]),t._v(" "),s("td",[s("code",[t._v('new List {"6Y1CLPwYe7zvI8PJiWVz6T"}')])])]),t._v(" "),s("tr",[s("td",[t._v("market")]),t._v(" "),s("td",[t._v("An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("code",[t._v("SeveralTracks")]),t._v(" object which has one property, "),s("code",[t._v("List Tracks")])]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SeveralTracks")]),t._v(" severalTracks "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetSeveralTracks")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("List")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("String"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"6Y1CLPwYe7zvI8PJiWVz6T"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nseveralTracks"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Tracks"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ForEach")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("track "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" Console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("track"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("hr"),t._v(" "),s("h2",{attrs:{id:"gettrack"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#gettrack","aria-hidden":"true"}},[t._v("#")]),t._v(" GetTrack")]),t._v(" "),s("blockquote",[s("p",[t._v("Get Spotify catalog information for a single track identified by its unique Spotify ID.")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("The Spotify ID for the track.")]),t._v(" "),s("td",[s("code",[t._v('"6Y1CLPwYe7zvI8PJiWVz6T"')])])]),t._v(" "),s("tr",[s("td",[t._v("market")]),t._v(" "),s("td",[t._v("An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking.")]),t._v(" "),s("td",[s("code",[t._v('"DE"')])])])])]),t._v(" "),s("p",[t._v("Returns a "),s("a",{attrs:{href:"https://developer.spotify.com/web-api/object-model/#track-object-full",target:"_blank",rel:"noopener noreferrer"}},[t._v("FullTrack"),s("OutboundLink")],1)]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FullTrack")]),t._v(" track "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetTrack")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"6Y1CLPwYe7zvI8PJiWVz6T"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nConsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("track"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("hr"),t._v(" "),s("h2",{attrs:{id:"getaudioanalysis"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getaudioanalysis","aria-hidden":"true"}},[t._v("#")]),t._v(" GetAudioAnalysis")]),t._v(" "),s("blockquote",[s("p",[t._v("Get a detailed audio analysis for a single track identified by its unique Spotify ID.")])]),t._v(" "),s("p",[s("strong",[t._v("Parameters")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Description")]),t._v(" "),s("th",[t._v("Example")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("The Spotify ID for the track.")]),t._v(" "),s("td",[s("code",[t._v('"6Y1CLPwYe7zvI8PJiWVz6T"')])])])])]),t._v(" "),s("p",[t._v("Returns a AudioAnalysis. This object is currently lacking Spotify documentation but archived "),s("a",{attrs:{href:"https://web.archive.org/web/20160528174915/http://developer.echonest.com/docs/v4/_static/AnalyzeDocumentation.pdf",target:"_blank",rel:"noopener noreferrer"}},[t._v("EchoNest documentation"),s("OutboundLink")],1),t._v(" is relevant.")]),t._v(" "),s("p",[s("strong",[t._v("Usage")])]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AudioAnalysis")]),t._v(" analysis "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetAudioAnalysis")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"6Y1CLPwYe7zvI8PJiWVz6T"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nConsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("analysis"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Meta"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("DetailedStatus"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])},[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/5.e6e88ab3.js b/assets/js/5.4ad72e80.js similarity index 99% rename from assets/js/5.e6e88ab3.js rename to assets/js/5.4ad72e80.js index 13f2caf3..df2b1473 100644 --- a/assets/js/5.e6e88ab3.js +++ b/assets/js/5.4ad72e80.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{206:function(t,e,r){"use strict";r.r(e);var a=r(0),o=Object(a.a)({},function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"spotifyapi-net-docs"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#spotifyapi-net-docs","aria-hidden":"true"}},[t._v("#")]),t._v(" SpotifyAPI-NET Docs")]),t._v(" "),r("h2",{attrs:{id:"about"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#about","aria-hidden":"true"}},[t._v("#")]),t._v(" About")]),t._v(" "),r("p",[t._v("This project, written in C#/.NET, provides 2 libraries for an easier usage of the Spotify Web API")]),t._v(" "),r("p",[r("strong",[t._v("Spotify's Web API")]),t._v(" ("),r("a",{attrs:{href:"https://developer.spotify.com/web-api/",target:"_blank",rel:"noopener noreferrer"}},[t._v("link"),r("OutboundLink")],1),t._v(")")]),t._v(" "),r("blockquote",[r("p",[t._v("Based on simple REST principles, our Web API endpoints return metadata in JSON format about artists, albums, and tracks directly from the Spotify catalogue.\nThe API also provides access to user-related data such as playlists and music saved in a β€œYour Music” library, subject to user’s authorization.")])]),t._v(" "),r("p",[r("strong",[t._v("SpotifyAPI.Web")])]),t._v(" "),r("blockquote",[r("p",[t._v("A wrapper around Spotify's Web API, providing sync and async methods to query all possible endpoints. Results are returned as typed class instances, allowing property-based access.")])]),t._v(" "),r("p",[r("strong",[t._v("SpotifyAPI.Web.Auth")])]),t._v(" "),r("blockquote",[r("p",[t._v("A library providing C# implementations of the 3 supported Authentication modes, including "),r("code",[t._v("ImplicitGrantAuth")]),t._v(", "),r("code",[t._v("AuthorizationCodeAuth")]),t._v(" and "),r("code",[t._v("CredentialsAuth")])])]),t._v(" "),r("hr"),t._v(" "),r("h2",{attrs:{id:"installing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#installing","aria-hidden":"true"}},[t._v("#")]),t._v(" Installing")]),t._v(" "),r("ul",[r("li",[t._v("Via NuGet Package:")])]),t._v(" "),r("div",{staticClass:"language-bash extra-class"},[r("pre",{pre:!0,attrs:{class:"language-bash"}},[r("code",[t._v("Install-Package SpotifyAPI.Web\nInstall-Package SpotifyAPI.Web.Auth\n")])])]),r("ul",[r("li",[t._v("Download the latest binaries on the "),r("a",{attrs:{href:"https://github.com/JohnnyCrazy/SpotifyAPI-NET/releases",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub Release Page"),r("OutboundLink")],1),t._v(" and add it to your Project")]),t._v(" "),r("li",[t._v("Clone the Repo and build the project yourself.")])]),t._v(" "),r("hr"),t._v(" "),r("h2",{attrs:{id:"getting-started"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#getting-started","aria-hidden":"true"}},[t._v("#")]),t._v(" Getting Started")]),t._v(" "),r("ul",[r("li",[r("router-link",{attrs:{to:"/web/getting_started/"}},[t._v("SpotifyAPI.Web")])],1),t._v(" "),r("li",[r("router-link",{attrs:{to:"/auth/getting_started/"}},[t._v("SpotifyAPI.Web.Auth")])],1)]),t._v(" "),r("h2",{attrs:{id:"projects"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#projects","aria-hidden":"true"}},[t._v("#")]),t._v(" Projects")]),t._v(" "),r("h3",{attrs:{id:"lidarr-by-lidarr"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#lidarr-by-lidarr","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/lidarr/Lidarr",target:"_blank",rel:"noopener noreferrer"}},[t._v("lidarr"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/lidarr",target:"_blank",rel:"noopener noreferrer"}},[t._v("@lidarr"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Looks and smells like Sonarr but made for music.")])]),t._v(" "),r("h3",{attrs:{id:"botframework-solutions-by-microsoft"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#botframework-solutions-by-microsoft","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/microsoft/botframework-solutions",target:"_blank",rel:"noopener noreferrer"}},[t._v("botframework-solutions"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/microsoft",target:"_blank",rel:"noopener noreferrer"}},[t._v("@microsoft"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("home for a set of templates and solutions to help build advanced conversational experiences using Azure Bot Service and Bot Framework")])]),t._v(" "),r("h3",{attrs:{id:"spytify-by-jwallet"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#spytify-by-jwallet","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/jwallet/spy-spotify",target:"_blank",rel:"noopener noreferrer"}},[t._v("Spytify"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/jwallet",target:"_blank",rel:"noopener noreferrer"}},[t._v("@jwallet"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Records Spotify to mp3 without ads while it plays and includes media tags to the recorded files")])]),t._v(" "),r("h3",{attrs:{id:"audio-band-by-dsafa"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#audio-band-by-dsafa","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/dsafa/audio-band",target:"_blank",rel:"noopener noreferrer"}},[t._v("audio-band"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/dsafa",target:"_blank",rel:"noopener noreferrer"}},[t._v("@dsafa"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Display and control songs from the Windows taskbar")])]),t._v(" "),r("h3",{attrs:{id:"rocksmith-custom-song-toolkit-by-catara"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rocksmith-custom-song-toolkit-by-catara","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/catara/rocksmith-custom-song-toolkit",target:"_blank",rel:"noopener noreferrer"}},[t._v("rocksmith-custom-song-toolkit"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/catara",target:"_blank",rel:"noopener noreferrer"}},[t._v("@catara"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("MASS Manipulation of Rocksmith DLC Library")])]),t._v(" "),r("h3",{attrs:{id:"spofy-by-eltoncezar"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#spofy-by-eltoncezar","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/eltoncezar/Spofy",target:"_blank",rel:"noopener noreferrer"}},[t._v("Spofy"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/eltoncezar",target:"_blank",rel:"noopener noreferrer"}},[t._v("@eltoncezar"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("A Spotify mini player and notifier for Windows")])]),t._v(" "),r("h3",{attrs:{id:"toastify-by-aleab"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#toastify-by-aleab","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/aleab/toastify",target:"_blank",rel:"noopener noreferrer"}},[t._v("Toastify"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/aleab",target:"_blank",rel:"noopener noreferrer"}},[t._v("@aleab"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Toastify adds global hotkeys and toast notifications to Spotify")]),t._v(" "),r("p",[r("em",[t._v("Forked from "),r("a",{attrs:{href:"https://github.com/nachmore/toastify",target:"_blank",rel:"noopener noreferrer"}},[t._v("nachmore/toastify"),r("OutboundLink")],1)])])]),t._v(" "),r("h3",{attrs:{id:"spotify-oculus-by-captainmorgs"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#spotify-oculus-by-captainmorgs","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/CaptainMorgs/spotify-oculus-release",target:"_blank",rel:"noopener noreferrer"}},[t._v("Spotify Oculus"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/CaptainMorgs",target:"_blank",rel:"noopener noreferrer"}},[t._v("@CaptainMorgs"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Unity project for interacting with Spotify in virtual reality for the Oculus Rift.")])]),t._v(" "),r("h3",{attrs:{id:"songify-by-inzaniity"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#songify-by-inzaniity","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/Inzaniity/Songify",target:"_blank",rel:"noopener noreferrer"}},[t._v("Songify"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/Inzaniity",target:"_blank",rel:"noopener noreferrer"}},[t._v("@Inzaniity"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("A simple tool that gets the current track from Spotify, YouTube and Nightbot.")])]),t._v(" "),r("h3",{attrs:{id:"elite-g19s-companion-app-by-magicmau"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#elite-g19s-companion-app-by-magicmau","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://forums.frontier.co.uk/threads/elite-g19s-companion-app-with-simulated-space-traffic-control.226782/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Elite G19s Companion app"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/MagicMau",target:"_blank",rel:"noopener noreferrer"}},[t._v("@MagicMau"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Main features include: system and station overview, play radio and podcast with audio visualizations, simulated Space Traffic Control, GPS functionality (including planetary races), an orrery view, a screenshot converter, and a news ticker.")])]),t._v(" "),r("h3",{attrs:{id:"arduino-spotify-remote-control-by-nader11ndeu"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#arduino-spotify-remote-control-by-nader11ndeu","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/NADER11NDEU/ARDUINO-Spotify-Remote-Control",target:"_blank",rel:"noopener noreferrer"}},[t._v("ARDUINO-Spotify-Remote-Control"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/NADER11NDEU",target:"_blank",rel:"noopener noreferrer"}},[t._v("@NADER11NDEU"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Well, with this project we will be able to control active spotify devices with Arduino. How we gonna do that ? We will use serial communication.")])])])},[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{205:function(t,e,r){"use strict";r.r(e);var a=r(0),o=Object(a.a)({},function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"spotifyapi-net-docs"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#spotifyapi-net-docs","aria-hidden":"true"}},[t._v("#")]),t._v(" SpotifyAPI-NET Docs")]),t._v(" "),r("h2",{attrs:{id:"about"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#about","aria-hidden":"true"}},[t._v("#")]),t._v(" About")]),t._v(" "),r("p",[t._v("This project, written in C#/.NET, provides 2 libraries for an easier usage of the Spotify Web API")]),t._v(" "),r("p",[r("strong",[t._v("Spotify's Web API")]),t._v(" ("),r("a",{attrs:{href:"https://developer.spotify.com/web-api/",target:"_blank",rel:"noopener noreferrer"}},[t._v("link"),r("OutboundLink")],1),t._v(")")]),t._v(" "),r("blockquote",[r("p",[t._v("Based on simple REST principles, our Web API endpoints return metadata in JSON format about artists, albums, and tracks directly from the Spotify catalogue.\nThe API also provides access to user-related data such as playlists and music saved in a β€œYour Music” library, subject to user’s authorization.")])]),t._v(" "),r("p",[r("strong",[t._v("SpotifyAPI.Web")])]),t._v(" "),r("blockquote",[r("p",[t._v("A wrapper around Spotify's Web API, providing sync and async methods to query all possible endpoints. Results are returned as typed class instances, allowing property-based access.")])]),t._v(" "),r("p",[r("strong",[t._v("SpotifyAPI.Web.Auth")])]),t._v(" "),r("blockquote",[r("p",[t._v("A library providing C# implementations of the 3 supported Authentication modes, including "),r("code",[t._v("ImplicitGrantAuth")]),t._v(", "),r("code",[t._v("AuthorizationCodeAuth")]),t._v(" and "),r("code",[t._v("CredentialsAuth")])])]),t._v(" "),r("hr"),t._v(" "),r("h2",{attrs:{id:"installing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#installing","aria-hidden":"true"}},[t._v("#")]),t._v(" Installing")]),t._v(" "),r("ul",[r("li",[t._v("Via NuGet Package:")])]),t._v(" "),r("div",{staticClass:"language-bash extra-class"},[r("pre",{pre:!0,attrs:{class:"language-bash"}},[r("code",[t._v("Install-Package SpotifyAPI.Web\nInstall-Package SpotifyAPI.Web.Auth\n")])])]),r("ul",[r("li",[t._v("Download the latest binaries on the "),r("a",{attrs:{href:"https://github.com/JohnnyCrazy/SpotifyAPI-NET/releases",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub Release Page"),r("OutboundLink")],1),t._v(" and add it to your Project")]),t._v(" "),r("li",[t._v("Clone the Repo and build the project yourself.")])]),t._v(" "),r("hr"),t._v(" "),r("h2",{attrs:{id:"getting-started"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#getting-started","aria-hidden":"true"}},[t._v("#")]),t._v(" Getting Started")]),t._v(" "),r("ul",[r("li",[r("router-link",{attrs:{to:"/web/getting_started/"}},[t._v("SpotifyAPI.Web")])],1),t._v(" "),r("li",[r("router-link",{attrs:{to:"/auth/getting_started/"}},[t._v("SpotifyAPI.Web.Auth")])],1)]),t._v(" "),r("h2",{attrs:{id:"projects"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#projects","aria-hidden":"true"}},[t._v("#")]),t._v(" Projects")]),t._v(" "),r("h3",{attrs:{id:"lidarr-by-lidarr"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#lidarr-by-lidarr","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/lidarr/Lidarr",target:"_blank",rel:"noopener noreferrer"}},[t._v("lidarr"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/lidarr",target:"_blank",rel:"noopener noreferrer"}},[t._v("@lidarr"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Looks and smells like Sonarr but made for music.")])]),t._v(" "),r("h3",{attrs:{id:"botframework-solutions-by-microsoft"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#botframework-solutions-by-microsoft","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/microsoft/botframework-solutions",target:"_blank",rel:"noopener noreferrer"}},[t._v("botframework-solutions"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/microsoft",target:"_blank",rel:"noopener noreferrer"}},[t._v("@microsoft"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("home for a set of templates and solutions to help build advanced conversational experiences using Azure Bot Service and Bot Framework")])]),t._v(" "),r("h3",{attrs:{id:"spytify-by-jwallet"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#spytify-by-jwallet","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/jwallet/spy-spotify",target:"_blank",rel:"noopener noreferrer"}},[t._v("Spytify"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/jwallet",target:"_blank",rel:"noopener noreferrer"}},[t._v("@jwallet"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Records Spotify to mp3 without ads while it plays and includes media tags to the recorded files")])]),t._v(" "),r("h3",{attrs:{id:"audio-band-by-dsafa"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#audio-band-by-dsafa","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/dsafa/audio-band",target:"_blank",rel:"noopener noreferrer"}},[t._v("audio-band"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/dsafa",target:"_blank",rel:"noopener noreferrer"}},[t._v("@dsafa"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Display and control songs from the Windows taskbar")])]),t._v(" "),r("h3",{attrs:{id:"rocksmith-custom-song-toolkit-by-catara"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rocksmith-custom-song-toolkit-by-catara","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/catara/rocksmith-custom-song-toolkit",target:"_blank",rel:"noopener noreferrer"}},[t._v("rocksmith-custom-song-toolkit"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/catara",target:"_blank",rel:"noopener noreferrer"}},[t._v("@catara"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("MASS Manipulation of Rocksmith DLC Library")])]),t._v(" "),r("h3",{attrs:{id:"spofy-by-eltoncezar"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#spofy-by-eltoncezar","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/eltoncezar/Spofy",target:"_blank",rel:"noopener noreferrer"}},[t._v("Spofy"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/eltoncezar",target:"_blank",rel:"noopener noreferrer"}},[t._v("@eltoncezar"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("A Spotify mini player and notifier for Windows")])]),t._v(" "),r("h3",{attrs:{id:"toastify-by-aleab"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#toastify-by-aleab","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/aleab/toastify",target:"_blank",rel:"noopener noreferrer"}},[t._v("Toastify"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/aleab",target:"_blank",rel:"noopener noreferrer"}},[t._v("@aleab"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Toastify adds global hotkeys and toast notifications to Spotify")]),t._v(" "),r("p",[r("em",[t._v("Forked from "),r("a",{attrs:{href:"https://github.com/nachmore/toastify",target:"_blank",rel:"noopener noreferrer"}},[t._v("nachmore/toastify"),r("OutboundLink")],1)])])]),t._v(" "),r("h3",{attrs:{id:"spotify-oculus-by-captainmorgs"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#spotify-oculus-by-captainmorgs","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/CaptainMorgs/spotify-oculus-release",target:"_blank",rel:"noopener noreferrer"}},[t._v("Spotify Oculus"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/CaptainMorgs",target:"_blank",rel:"noopener noreferrer"}},[t._v("@CaptainMorgs"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Unity project for interacting with Spotify in virtual reality for the Oculus Rift.")])]),t._v(" "),r("h3",{attrs:{id:"songify-by-inzaniity"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#songify-by-inzaniity","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/Inzaniity/Songify",target:"_blank",rel:"noopener noreferrer"}},[t._v("Songify"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/Inzaniity",target:"_blank",rel:"noopener noreferrer"}},[t._v("@Inzaniity"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("A simple tool that gets the current track from Spotify, YouTube and Nightbot.")])]),t._v(" "),r("h3",{attrs:{id:"elite-g19s-companion-app-by-magicmau"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#elite-g19s-companion-app-by-magicmau","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://forums.frontier.co.uk/threads/elite-g19s-companion-app-with-simulated-space-traffic-control.226782/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Elite G19s Companion app"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/MagicMau",target:"_blank",rel:"noopener noreferrer"}},[t._v("@MagicMau"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Main features include: system and station overview, play radio and podcast with audio visualizations, simulated Space Traffic Control, GPS functionality (including planetary races), an orrery view, a screenshot converter, and a news ticker.")])]),t._v(" "),r("h3",{attrs:{id:"arduino-spotify-remote-control-by-nader11ndeu"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#arduino-spotify-remote-control-by-nader11ndeu","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/NADER11NDEU/ARDUINO-Spotify-Remote-Control",target:"_blank",rel:"noopener noreferrer"}},[t._v("ARDUINO-Spotify-Remote-Control"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/NADER11NDEU",target:"_blank",rel:"noopener noreferrer"}},[t._v("@NADER11NDEU"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Well, with this project we will be able to control active spotify devices with Arduino. How we gonna do that ? We will use serial communication.")])])])},[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/6.f529ddfb.js b/assets/js/6.1c2fc4bc.js similarity index 99% rename from assets/js/6.f529ddfb.js rename to assets/js/6.1c2fc4bc.js index 9503a02a..477671da 100644 --- a/assets/js/6.f529ddfb.js +++ b/assets/js/6.1c2fc4bc.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{205:function(t,s,a){"use strict";a.r(s);var n=a(0),e=Object(n.a)({},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"autorizationcodeauth"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#autorizationcodeauth","aria-hidden":"true"}},[t._v("#")]),t._v(" AutorizationCodeAuth")]),t._v(" "),a("p",[t._v("This way is "),a("strong",[t._v("not recommended")]),t._v(" for client-side apps and requires server-side code to run securely.\nWith this approach, you first get a code which you need to trade against the access-token.\nIn this exchange you need to provide your Client-Secret and because of that it's not recommended.\nA good thing about this method: You can always refresh your token, without having the user to auth it again.")]),t._v(" "),a("p",[t._v("More info: "),a("a",{attrs:{href:"https://developer.spotify.com/documentation/general/guides/authorization-guide/#authorization-code-flow",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),a("OutboundLink")],1)]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("Main")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" args"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AuthorizationCodeAuth")]),t._v(" auth "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AuthorizationCodeAuth")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n _clientId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n _secretId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:4002"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:4002"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n Scope"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("PlaylistReadPrivate "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" Scope"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("PlaylistReadCollaborative\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n auth"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AuthReceived "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sender"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" payload"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n auth"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("Stop")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Token")]),t._v(" token "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" auth"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("ExchangeCode")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("payload"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Code"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),t._v(" api "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n TokenType "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" token"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("TokenType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n AccessToken "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" token"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AccessToken\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Do requests with API client")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n auth"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("Start")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Starts an internal HTTP Server")]),t._v("\n auth"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("OpenBrowser")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"token-refresh"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#token-refresh","aria-hidden":"true"}},[t._v("#")]),t._v(" Token Refresh")]),t._v(" "),a("p",[t._v("Once the "),a("code",[t._v("AccessToken")]),t._v(" is expired, you can use your "),a("code",[t._v("RefreshToken")]),t._v(" to get a new one.\nIn this procedure, no HTTP Server is needed in the background and a single HTTP Request is made.")]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Auth code from above")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("token"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("IsExpired")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Token")]),t._v(" newToken "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" auth"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("RefreshToken")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("token"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("RefreshToken"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n api"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AccessToken "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" newToken"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AccessToken")]),t._v("\n api"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("TokenType "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" newToken"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("TokenType\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])])},[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{206:function(t,s,a){"use strict";a.r(s);var n=a(0),e=Object(n.a)({},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"autorizationcodeauth"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#autorizationcodeauth","aria-hidden":"true"}},[t._v("#")]),t._v(" AutorizationCodeAuth")]),t._v(" "),a("p",[t._v("This way is "),a("strong",[t._v("not recommended")]),t._v(" for client-side apps and requires server-side code to run securely.\nWith this approach, you first get a code which you need to trade against the access-token.\nIn this exchange you need to provide your Client-Secret and because of that it's not recommended.\nA good thing about this method: You can always refresh your token, without having the user to auth it again.")]),t._v(" "),a("p",[t._v("More info: "),a("a",{attrs:{href:"https://developer.spotify.com/documentation/general/guides/authorization-guide/#authorization-code-flow",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),a("OutboundLink")],1)]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("Main")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" args"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AuthorizationCodeAuth")]),t._v(" auth "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AuthorizationCodeAuth")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n _clientId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n _secretId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:4002"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:4002"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n Scope"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("PlaylistReadPrivate "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" Scope"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("PlaylistReadCollaborative\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n auth"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AuthReceived "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sender"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" payload"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n auth"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("Stop")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Token")]),t._v(" token "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" auth"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("ExchangeCode")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("payload"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Code"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),t._v(" api "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n TokenType "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" token"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("TokenType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n AccessToken "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" token"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AccessToken\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Do requests with API client")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n auth"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("Start")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Starts an internal HTTP Server")]),t._v("\n auth"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("OpenBrowser")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"token-refresh"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#token-refresh","aria-hidden":"true"}},[t._v("#")]),t._v(" Token Refresh")]),t._v(" "),a("p",[t._v("Once the "),a("code",[t._v("AccessToken")]),t._v(" is expired, you can use your "),a("code",[t._v("RefreshToken")]),t._v(" to get a new one.\nIn this procedure, no HTTP Server is needed in the background and a single HTTP Request is made.")]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Auth code from above")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("token"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("IsExpired")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Token")]),t._v(" newToken "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" auth"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("RefreshToken")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("token"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("RefreshToken"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n api"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AccessToken "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" newToken"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("AccessToken")]),t._v("\n api"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("TokenType "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" newToken"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("TokenType\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])])},[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/9.dbbf5553.js b/assets/js/9.a5b78c60.js similarity index 98% rename from assets/js/9.dbbf5553.js rename to assets/js/9.a5b78c60.js index aa8f84f0..2372528e 100644 --- a/assets/js/9.dbbf5553.js +++ b/assets/js/9.a5b78c60.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{211:function(t,a,s){"use strict";s.r(a);var n=s(0),e=Object(n.a)({},function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"implicitgrantauth"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#implicitgrantauth","aria-hidden":"true"}},[t._v("#")]),t._v(" ImplicitGrantAuth")]),t._v(" "),s("p",[t._v("This way is "),s("strong",[t._v("recommended")]),t._v(' and the only auth-process which does not need a server-side exchange of keys. With this approach, you directly get a Token object after the user authed your application.\nYou won\'t be able to refresh the token. If you want to use the internal Http server, please add "http://localhost:YOURPORT" to your application redirect URIs.')]),t._v(" "),s("p",[t._v("More info: "),s("a",{attrs:{href:"https://developer.spotify.com/documentation/general/guides/authorization-guide/#implicit-grant-flow",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),s("OutboundLink")],1)]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Main")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" args"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ImplicitGrantAuth")]),t._v(" auth "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ImplicitGrantAuth")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n _clientId"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:4002"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:4002"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n Scope"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("UserReadPrivate\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n auth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AuthReceived "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sender"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" payload"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n auth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Stop")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// `sender` is also the auth instance")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),t._v(" api "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n TokenType "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" payload"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("TokenType"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n AccessToken "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" payload"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AccessToken\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Do requests with API client")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n auth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Start")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Starts an internal HTTP Server")]),t._v("\n auth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("OpenBrowser")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])])},[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{209:function(t,a,s){"use strict";s.r(a);var n=s(0),e=Object(n.a)({},function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"implicitgrantauth"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#implicitgrantauth","aria-hidden":"true"}},[t._v("#")]),t._v(" ImplicitGrantAuth")]),t._v(" "),s("p",[t._v("This way is "),s("strong",[t._v("recommended")]),t._v(' and the only auth-process which does not need a server-side exchange of keys. With this approach, you directly get a Token object after the user authed your application.\nYou won\'t be able to refresh the token. If you want to use the internal Http server, please add "http://localhost:YOURPORT" to your application redirect URIs.')]),t._v(" "),s("p",[t._v("More info: "),s("a",{attrs:{href:"https://developer.spotify.com/documentation/general/guides/authorization-guide/#implicit-grant-flow",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),s("OutboundLink")],1)]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Main")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" args"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ImplicitGrantAuth")]),t._v(" auth "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ImplicitGrantAuth")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n _clientId"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:4002"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://localhost:4002"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n Scope"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("UserReadPrivate\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n auth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AuthReceived "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sender"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" payload"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n auth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Stop")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// `sender` is also the auth instance")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),t._v(" api "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n TokenType "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" payload"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("TokenType"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n AccessToken "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" payload"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AccessToken\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Do requests with API client")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n auth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Start")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Starts an internal HTTP Server")]),t._v("\n auth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("OpenBrowser")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])])},[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/app.bbaebb05.js b/assets/js/app.6dc23df9.js similarity index 93% rename from assets/js/app.bbaebb05.js rename to assets/js/app.6dc23df9.js index b39ea36a..f5102b41 100644 --- a/assets/js/app.bbaebb05.js +++ b/assets/js/app.6dc23df9.js @@ -1,4 +1,4 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,a,s=e[0],l=e[1],u=e[2],f=0,p=[];f
'};function o(t,e,n){return tn?n:t}function i(t){return 100*(-1+t)}n.configure=function(t){var e,n;for(e in t)void 0!==(n=t[e])&&t.hasOwnProperty(e)&&(r[e]=n);return this},n.status=null,n.set=function(t){var e=n.isStarted();t=o(t,r.minimum,1),n.status=1===t?null:t;var l=n.render(!e),u=l.querySelector(r.barSelector),c=r.speed,f=r.easing;return l.offsetWidth,a(function(e){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,function(t,e,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+i(t)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(t)+"%,0)"}:{"margin-left":i(t)+"%"}).transition="all "+e+"ms "+n,o}(t,c,f)),1===t?(s(l,{transition:"none",opacity:1}),l.offsetWidth,setTimeout(function(){s(l,{transition:"all "+c+"ms linear",opacity:0}),setTimeout(function(){n.remove(),e()},c)},c)):setTimeout(e,c)}),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var t=function(){setTimeout(function(){n.status&&(n.trickle(),t())},r.trickleSpeed)};return r.trickle&&t(),this},n.done=function(t){return t||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(t){var e=n.status;return e?("number"!=typeof t&&(t=(1-e)*o(Math.random()*e,.1,.95)),e=o(e+t,0,.994),n.set(e)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},t=0,e=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===e&&n.start(),t++,e++,r.always(function(){0==--e?(t=0,n.done()):n.set((t-e)/t)}),this):this},n.render=function(t){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var e=document.createElement("div");e.id="nprogress",e.innerHTML=r.template;var o,a=e.querySelector(r.barSelector),l=t?"-100":i(n.status||0),c=document.querySelector(r.parent);return s(a,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=e.querySelector(r.spinnerSelector))&&p(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(e),e},n.remove=function(){c(document.documentElement,"nprogress-busy"),c(document.querySelector(r.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&p(t)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var t=document.body.style,e="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return e+"Perspective"in t?"translate3d":e+"Transform"in t?"translate":"margin"};var a=function(){var t=[];function e(){var n=t.shift();n&&n(e)}return function(n){t.push(n),1==t.length&&e()}}(),s=function(){var t=["Webkit","O","Moz","ms"],e={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(t,e){return e.toUpperCase()}),e[n]||(e[n]=function(e){var n=document.body.style;if(e in n)return e;for(var r,o=t.length,i=e.charAt(0).toUpperCase()+e.slice(1);o--;)if((r=t[o]+i)in n)return r;return e}(n))}function r(t,e,r){e=n(e),t.style[e]=r}return function(t,e){var n,o,i=arguments;if(2==i.length)for(n in e)void 0!==(o=e[n])&&e.hasOwnProperty(n)&&r(t,n,o);else r(t,i[1],i[2])}}();function l(t,e){return("string"==typeof t?t:f(t)).indexOf(" "+e+" ")>=0}function u(t,e){var n=f(t),r=n+e;l(n,e)||(t.className=r.substring(1))}function c(t,e){var n,r=f(t);l(t,e)&&(n=r.replace(" "+e+" "," "),t.className=n.substring(1,n.length-1))}function f(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function p(t){t&&t.parentNode&&t.parentNode.removeChild(t)}return n})?r.call(e,n,e,t):r)||(t.exports=o)},function(t,e){var n="Expected a function",r=NaN,o="[object Symbol]",i=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt,c="object"==typeof global&&global&&global.Object===Object&&global,f="object"==typeof self&&self&&self.Object===Object&&self,p=c||f||Function("return this")(),d=Object.prototype.toString,h=Math.max,v=Math.min,m=function(){return p.Date.now()};function y(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function g(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&d.call(t)==o}(t))return r;if(y(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=y(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(i,"");var n=s.test(t);return n||l.test(t)?u(t.slice(2),n?2:8):a.test(t)?r:+t}t.exports=function(t,e,r){var o,i,a,s,l,u,c=0,f=!1,p=!1,d=!0;if("function"!=typeof t)throw new TypeError(n);function b(e){var n=o,r=i;return o=i=void 0,c=e,s=t.apply(r,n)}function _(t){var n=t-u;return void 0===u||n>=e||n<0||p&&t-c>=a}function w(){var t=m();if(_(t))return k(t);l=setTimeout(w,function(t){var n=e-(t-u);return p?v(n,a-(t-c)):n}(t))}function k(t){return l=void 0,d&&o?b(t):(o=i=void 0,s)}function $(){var t=m(),n=_(t);if(o=arguments,i=this,u=t,n){if(void 0===l)return function(t){return c=t,l=setTimeout(w,e),f?b(t):s}(u);if(p)return l=setTimeout(w,e),b(u)}return void 0===l&&(l=setTimeout(w,e)),s}return e=g(e)||0,y(r)&&(f=!!r.leading,a=(p="maxWait"in r)?h(g(r.maxWait)||0,e):a,d="trailing"in r?!!r.trailing:d),$.cancel=function(){void 0!==l&&clearTimeout(l),c=0,o=u=i=l=void 0},$.flush=function(){return void 0===l?s:k(m())},$}},function(t,e,n){t.exports=n(8)},function(t,e,n){Promise.all([n.e(0),n.e(26)]).then(n.t.bind(null,9,7))},function(t,e,n){},function(t,e,n){"use strict";var r=n(1);n.n(r).a},function(t,e,n){"use strict";n.r(e); /*! @@ -11,4 +11,4 @@ var r=Object.freeze({});function o(t){return null==t}function i(t){return null!= * vue-router v3.1.3 * (c) 2019 Evan You * @license MIT - */function Fo(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function zo(t,e){return e instanceof t||e&&(e.name===t.name||e._name===t._name)}function Bo(t,e){for(var n in e)t[n]=e[n];return t}var Vo={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,r=e.children,o=e.parent,i=e.data;i.routerView=!0;for(var a=o.$createElement,s=n.name,l=o.$route,u=o._routerViewCache||(o._routerViewCache={}),c=0,f=!1;o&&o._routerRoot!==o;){var p=o.$vnode&&o.$vnode.data;p&&(p.routerView&&c++,p.keepAlive&&o._inactive&&(f=!0)),o=o.$parent}if(i.routerViewDepth=c,f)return a(u[s],i,r);var d=l.matched[c];if(!d)return u[s]=null,a();var h=u[s]=d.components[s];i.registerRouteInstance=function(t,e){var n=d.instances[s];(e&&n!==t||!e&&n===t)&&(d.instances[s]=e)},(i.hook||(i.hook={})).prepatch=function(t,e){d.instances[s]=e.componentInstance},i.hook.init=function(t){t.data.keepAlive&&t.componentInstance&&t.componentInstance!==d.instances[s]&&(d.instances[s]=t.componentInstance)};var v=i.props=function(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0;default:0}}(l,d.props&&d.props[s]);if(v){v=i.props=Bo({},v);var m=i.attrs=i.attrs||{};for(var y in v)h.props&&y in h.props||(m[y]=v[y],delete v[y])}return a(h,i,r)}};var Go=/[!'()*]/g,Ho=function(t){return"%"+t.charCodeAt(0).toString(16)},qo=/%2C/g,Wo=function(t){return encodeURIComponent(t).replace(Go,Ho).replace(qo,",")},Ko=decodeURIComponent;function Xo(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach(function(t){var n=t.replace(/\+/g," ").split("="),r=Ko(n.shift()),o=n.length>0?Ko(n.join("=")):null;void 0===e[r]?e[r]=o:Array.isArray(e[r])?e[r].push(o):e[r]=[e[r],o]}),e):e}function Jo(t){var e=t?Object.keys(t).map(function(e){var n=t[e];if(void 0===n)return"";if(null===n)return Wo(e);if(Array.isArray(n)){var r=[];return n.forEach(function(t){void 0!==t&&(null===t?r.push(Wo(e)):r.push(Wo(e)+"="+Wo(t)))}),r.join("&")}return Wo(e)+"="+Wo(n)}).filter(function(t){return t.length>0}).join("&"):null;return e?"?"+e:""}var Qo=/\/?$/;function Yo(t,e,n,r){var o=r&&r.options.stringifyQuery,i=e.query||{};try{i=Zo(i)}catch(t){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:i,params:e.params||{},fullPath:ni(e,o),matched:t?ei(t):[]};return n&&(a.redirectedFrom=ni(n,o)),Object.freeze(a)}function Zo(t){if(Array.isArray(t))return t.map(Zo);if(t&&"object"==typeof t){var e={};for(var n in t)e[n]=Zo(t[n]);return e}return t}var ti=Yo(null,{path:"/"});function ei(t){for(var e=[];t;)e.unshift(t),t=t.parent;return e}function ni(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var o=t.hash;return void 0===o&&(o=""),(n||"/")+(e||Jo)(r)+o}function ri(t,e){return e===ti?t===e:!!e&&(t.path&&e.path?t.path.replace(Qo,"")===e.path.replace(Qo,"")&&t.hash===e.hash&&oi(t.query,e.query):!(!t.name||!e.name)&&(t.name===e.name&&t.hash===e.hash&&oi(t.query,e.query)&&oi(t.params,e.params)))}function oi(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&n.every(function(n){var r=t[n],o=e[n];return"object"==typeof r&&"object"==typeof o?oi(r,o):String(r)===String(o)})}function ii(t,e,n){var r=t.charAt(0);if("/"===r)return t;if("?"===r||"#"===r)return e+t;var o=e.split("/");n&&o[o.length-1]||o.pop();for(var i=t.replace(/^\//,"").split("/"),a=0;a=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}(o.path||""),l=e&&e.path||"/",u=s.path?ii(s.path,l,n||o.append):l,c=function(t,e,n){void 0===e&&(e={});var r,o=n||Xo;try{r=o(t||"")}catch(t){r={}}for(var i in e)r[i]=e[i];return r}(s.query,o.query,r&&r.options.parseQuery),f=o.hash||s.hash;return f&&"#"!==f.charAt(0)&&(f="#"+f),{_normalized:!0,path:u,query:c,hash:f}}var Ai,Si=[String,Object],Oi=[String,Array],Pi=function(){},Ei={name:"RouterLink",props:{to:{type:Si,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:Oi,default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),i=o.location,a=o.route,s=o.href,l={},u=n.options.linkActiveClass,c=n.options.linkExactActiveClass,f=null==u?"router-link-active":u,p=null==c?"router-link-exact-active":c,d=null==this.activeClass?f:this.activeClass,h=null==this.exactActiveClass?p:this.exactActiveClass,v=a.redirectedFrom?Yo(null,Ci(a.redirectedFrom),null,n):a;l[h]=ri(r,v),l[d]=this.exact?l[h]:function(t,e){return 0===t.path.replace(Qo,"/").indexOf(e.path.replace(Qo,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,v);var m=function(t){Ti(t)&&(e.replace?n.replace(i,Pi):n.push(i,Pi))},y={click:Ti};Array.isArray(this.event)?this.event.forEach(function(t){y[t]=m}):y[this.event]=m;var g={class:l},b=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:a,navigate:m,isActive:l[d],isExactActive:l[h]});if(b){if(1===b.length)return b[0];if(b.length>1||!b.length)return 0===b.length?t():t("span",{},b)}if("a"===this.tag)g.on=y,g.attrs={href:s};else{var _=function t(e){if(e)for(var n,r=0;r-1&&(s.params[p]=n.params[p]);return s.path=xi(c.path,s.params),l(c,s,a)}if(s.path){s.params={};for(var d=0;d=t.length?n():t[o]?e(t[o],function(){r(o+1)}):r(o+1)};r(0)}function na(t){return function(e,n,r){var o=!1,i=0,a=null;ra(t,function(t,e,n,s){if("function"==typeof t&&void 0===t.cid){o=!0,i++;var l,u=aa(function(e){var o;((o=e).__esModule||ia&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:Ai.extend(e),n.components[s]=e,--i<=0&&r()}),c=aa(function(t){var e="Failed to resolve async component "+s+": "+t;a||(a=Fo(t)?t:new Error(e),r(a))});try{l=t(u,c)}catch(t){c(t)}if(l)if("function"==typeof l.then)l.then(u,c);else{var f=l.component;f&&"function"==typeof f.then&&f.then(u,c)}}}),o||r()}}function ra(t,e){return oa(t.map(function(t){return Object.keys(t.components).map(function(n){return e(t.components[n],t.instances[n],t,n)})}))}function oa(t){return Array.prototype.concat.apply([],t)}var ia="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function aa(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var sa=function(t){function e(e){t.call(this),this.name=this._name="NavigationDuplicated",this.message='Navigating to current location ("'+e.fullPath+'") is not allowed',Object.defineProperty(this,"stack",{value:(new t).stack,writable:!0,configurable:!0})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Error);sa._name="NavigationDuplicated";var la=function(t,e){this.router=t,this.base=function(t){if(!t)if(ji){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=ti,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};function ua(t,e,n,r){var o=ra(t,function(t,r,o,i){var a=function(t,e){"function"!=typeof t&&(t=Ai.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map(function(t){return n(t,r,o,i)}):n(a,r,o,i)});return oa(r?o.reverse():o)}function ca(t,e){if(e)return function(){return t.apply(e,arguments)}}la.prototype.listen=function(t){this.cb=t},la.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},la.prototype.onError=function(t){this.errorCbs.push(t)},la.prototype.transitionTo=function(t,e,n){var r=this,o=this.router.match(t,this.current);this.confirmTransition(o,function(){r.updateRoute(o),e&&e(o),r.ensureURL(),r.ready||(r.ready=!0,r.readyCbs.forEach(function(t){t(o)}))},function(t){n&&n(t),t&&!r.ready&&(r.ready=!0,r.readyErrorCbs.forEach(function(e){e(t)}))})},la.prototype.confirmTransition=function(t,e,n){var r=this,o=this.current,i=function(t){!zo(sa,t)&&Fo(t)&&(r.errorCbs.length?r.errorCbs.forEach(function(e){e(t)}):console.error(t)),n&&n(t)};if(ri(t,o)&&t.matched.length===o.matched.length)return this.ensureURL(),i(new sa(t));var a=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n-1?decodeURI(t.slice(0,r))+t.slice(r):decodeURI(t)}else n>-1&&(t=decodeURI(t.slice(0,n))+t.slice(n));return t}function ma(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function ya(t){Yi?Zi(ma(t)):window.location.hash=t}function ga(t){Yi?ta(ma(t)):window.location.replace(ma(t))}var ba=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)},n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,function(){e.index=n,e.updateRoute(r)},function(t){zo(sa,t)&&(e.index=n)})}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(la),_a=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Ii(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Yi&&!1!==t.fallback,this.fallback&&(e="hash"),ji||(e="abstract"),this.mode=e,e){case"history":this.history=new fa(this,t.base);break;case"hash":this.history=new da(this,t.base,this.fallback);break;case"abstract":this.history=new ba(this,t.base);break;default:0}},wa={currentRoute:{configurable:!0}};function ka(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}_a.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},wa.currentRoute.get=function(){return this.history&&this.history.current},_a.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null)}),!this.app){this.app=t;var n=this.history;if(n instanceof fa)n.transitionTo(n.getCurrentLocation());else if(n instanceof da){var r=function(){n.setupListeners()};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen(function(t){e.apps.forEach(function(e){e._route=t})})}},_a.prototype.beforeEach=function(t){return ka(this.beforeHooks,t)},_a.prototype.beforeResolve=function(t){return ka(this.resolveHooks,t)},_a.prototype.afterEach=function(t){return ka(this.afterHooks,t)},_a.prototype.onReady=function(t,e){this.history.onReady(t,e)},_a.prototype.onError=function(t){this.history.onError(t)},_a.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise(function(e,n){r.history.push(t,e,n)});this.history.push(t,e,n)},_a.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise(function(e,n){r.history.replace(t,e,n)});this.history.replace(t,e,n)},_a.prototype.go=function(t){this.history.go(t)},_a.prototype.back=function(){this.go(-1)},_a.prototype.forward=function(){this.go(1)},_a.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map(function(t){return Object.keys(t.components).map(function(e){return t.components[e]})})):[]},_a.prototype.resolve=function(t,e,n){var r=Ci(t,e=e||this.history.current,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?ai(t+"/"+r):r}(this.history.base,i,this.mode),normalizedTo:r,resolved:o}},_a.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==ti&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(_a.prototype,wa),_a.install=function t(e){if(!t.installed||Ai!==e){t.installed=!0,Ai=e;var n=function(t){return void 0!==t},r=function(t,e){var r=t.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(t,e)};e.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",Vo),e.component("RouterLink",Ei);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},_a.version="3.1.3",ji&&window.Vue&&window.Vue.use(_a);var $a=_a;var xa={NotFound:()=>n.e(4).then(n.bind(null,204)),Layout:()=>Promise.all([n.e(0),n.e(2)]).then(n.bind(null,203))},Ca={"v-0f125dbb":()=>n.e(6).then(n.bind(null,205)),"v-f88195a6":()=>n.e(5).then(n.bind(null,206)),"v-5127c24a":()=>n.e(7).then(n.bind(null,207)),"v-79c557ae":()=>n.e(8).then(n.bind(null,208)),"v-15ae477b":()=>n.e(10).then(n.bind(null,209)),"v-e2943322":()=>n.e(11).then(n.bind(null,210)),"v-bc26f6ca":()=>n.e(9).then(n.bind(null,211)),"v-9b504b3e":()=>n.e(12).then(n.bind(null,212)),"v-ae731ab6":()=>n.e(14).then(n.bind(null,213)),"v-3896b323":()=>n.e(13).then(n.bind(null,214)),"v-545731d5":()=>n.e(15).then(n.bind(null,215)),"v-5cda54a1":()=>n.e(16).then(n.bind(null,216)),"v-7499233e":()=>n.e(18).then(n.bind(null,217)),"v-24570241":()=>n.e(17).then(n.bind(null,218)),"v-26737916":()=>n.e(19).then(n.bind(null,219)),"v-86daa2ba":()=>n.e(21).then(n.bind(null,220)),"v-700fa4e1":()=>n.e(22).then(n.bind(null,221)),"v-2f539db2":()=>n.e(24).then(n.bind(null,222)),"v-fe729232":()=>n.e(23).then(n.bind(null,223)),"v-1edba7fe":()=>n.e(25).then(n.bind(null,224)),"v-1e493801":()=>n.e(20).then(n.bind(null,225))};function Aa(t){const e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}const Sa=/-(\w)/g,Oa=Aa(t=>t.replace(Sa,(t,e)=>e?e.toUpperCase():"")),Pa=/\B([A-Z])/g,Ea=Aa(t=>t.replace(Pa,"-$1").toLowerCase()),Ta=Aa(t=>t.charAt(0).toUpperCase()+t.slice(1));function ja(t,e){if(!e)return;if(t(e))return t(e);return e.includes("-")?t(Ta(Oa(e))):t(Ta(e))||t(Ea(e))}const Ra=Object.assign({},xa,Ca),La=t=>Ra[t],Ia=t=>Ca[t],Ma=t=>xa[t],Ua=t=>No.component(t);function Da(t){return ja(Ia,t)}function Na(t){return ja(Ma,t)}function Fa(t){return ja(La,t)}function za(t){return ja(Ua,t)}function Ba(...t){return Promise.all(t.filter(t=>t).map(async t=>{if(!za(t)&&Fa(t)){const e=await Fa(t)();No.component(t,e.default)}}))}function Va(t,e){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[t]=e)}var Ga={created(){this.$ssrContext&&(this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.description=this.$page.description||this.$description)},mounted(){this.currentMetaTags=new Set,this.updateMeta()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const t=this.$page.frontmatter.meta||[],e=t.slice(0);0===t.filter(t=>"description"===t.name).length&&e.push({name:"description",content:this.$description});const n=document.querySelectorAll('meta[name="description"]');n.length&&n.forEach(t=>this.currentMetaTags.add(t)),this.currentMetaTags=new Set(Ha(e,this.currentMetaTags))}},watch:{$page(){this.updateMeta()}},beforeDestroy(){Ha(null,this.currentMetaTags)}};function Ha(t,e){if(e&&[...e].forEach(t=>{document.head.removeChild(t)}),t)return t.map(t=>{const e=document.createElement("meta");return Object.keys(t).forEach(n=>{e.setAttribute(n,t[n])}),document.head.appendChild(e),e})}var qa=n(3),Wa={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:n.n(qa)()(function(){this.setActiveHash()},300),setActiveHash(){const t=[].slice.call(document.querySelectorAll(".sidebar-link")),e=[].slice.call(document.querySelectorAll(".header-anchor")).filter(e=>t.some(t=>t.hash===e.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),r=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),o=window.innerHeight+n;for(let t=0;t=i.parentElement.offsetTop+10&&(!a||n{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},Ka=n(2),Xa=n.n(Ka),Ja=[Ga,Wa,{mounted(){Xa.a.configure({showSpinner:!1}),this.$router.beforeEach((t,e,n)=>{t.path===e.path||No.component(t.name)||Xa.a.start(),n()}),this.$router.afterEach(()=>{Xa.a.done(),this.isSidebarOpen=!1})}}],Qa={methods:{getLayout:function(){if(this.$page.path){var t=this.$page.frontmatter.layout;return t&&(this.$vuepress.getLayoutAsyncComponent(t)||this.$vuepress.getVueComponent(t))?t:"Layout"}return"NotFound"}},computed:{layout:function(){var t=this.getLayout();return Va("layout",t),No.component(t)}}},Ya=n(0),Za=Object(Ya.a)(Qa,function(){var t=this.$createElement;return(this._self._c||t)(this.layout,{tag:"component"})},[],!1,null,null,null).exports;!function(t,e,n){switch(e){case"components":t[e]||(t[e]={}),Object.assign(t[e],n);break;case"mixins":t[e]||(t[e]=[]),t[e].push(...n);break;default:throw new Error("Unknown option name.")}}(Za,"mixins",Ja);const ts=[{name:"v-0f125dbb",path:"/auth/authorization_code.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-0f125dbb").then(n)}},{name:"v-f88195a6",path:"/",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-f88195a6").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-5127c24a",path:"/auth/client_credentials.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-5127c24a").then(n)}},{name:"v-79c557ae",path:"/auth/getting_started.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-79c557ae").then(n)}},{name:"v-15ae477b",path:"/auth/token_swap.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-15ae477b").then(n)}},{name:"v-e2943322",path:"/web/albums.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-e2943322").then(n)}},{name:"v-bc26f6ca",path:"/auth/implicit_grant.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-bc26f6ca").then(n)}},{name:"v-9b504b3e",path:"/web/artists.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-9b504b3e").then(n)}},{name:"v-ae731ab6",path:"/web/examples.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-ae731ab6").then(n)}},{name:"v-3896b323",path:"/web/browse.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-3896b323").then(n)}},{name:"v-545731d5",path:"/web/follow.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-545731d5").then(n)}},{name:"v-5cda54a1",path:"/web/getting_started.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-5cda54a1").then(n)}},{name:"v-7499233e",path:"/web/personalization.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-7499233e").then(n)}},{name:"v-24570241",path:"/web/library.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-24570241").then(n)}},{name:"v-26737916",path:"/web/player.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-26737916").then(n)}},{name:"v-86daa2ba",path:"/web/profiles.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-86daa2ba").then(n)}},{name:"v-700fa4e1",path:"/web/proxy.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-700fa4e1").then(n)}},{name:"v-2f539db2",path:"/web/tracks.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-2f539db2").then(n)}},{name:"v-fe729232",path:"/web/search.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-fe729232").then(n)}},{name:"v-1edba7fe",path:"/web/utils.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-1edba7fe").then(n)}},{name:"v-1e493801",path:"/web/playlists.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-1e493801").then(n)}},{path:"*",component:Za}],es={title:"SpotifyAPI-NET",description:"πŸ”‰ An API for the Spotify-Client and the Spotify Web API, written in C#/.NET",base:"/SpotifyAPI-NET/",pages:[{title:"AutorizationCodeAuth",frontmatter:{sidebar:!1},regularPath:"/auth/authorization_code.html",relativePath:"auth/authorization_code.md",key:"v-0f125dbb",path:"/auth/authorization_code.html",headers:[{level:2,title:"Token Refresh",slug:"token-refresh"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"SpotifyAPI-NET Docs",frontmatter:{},regularPath:"/",relativePath:"README.md",key:"v-f88195a6",path:"/",headers:[{level:2,title:"About",slug:"about"},{level:2,title:"Installing",slug:"installing"},{level:2,title:"Getting Started",slug:"getting-started"},{level:2,title:"Projects",slug:"projects"},{level:3,title:"lidarr](https://github.com/lidarr/Lidarr) by [@lidarr",slug:"lidarr-by-lidarr"},{level:3,title:"botframework-solutions](https://github.com/microsoft/botframework-solutions) by [@microsoft",slug:"botframework-solutions-by-microsoft"},{level:3,title:"Spytify](https://github.com/jwallet/spy-spotify) by [@jwallet",slug:"spytify-by-jwallet"},{level:3,title:"audio-band](https://github.com/dsafa/audio-band) by [@dsafa",slug:"audio-band-by-dsafa"},{level:3,title:"rocksmith-custom-song-toolkit](https://github.com/catara/rocksmith-custom-song-toolkit) by [@catara",slug:"rocksmith-custom-song-toolkit-by-catara"},{level:3,title:"Spofy](https://github.com/eltoncezar/Spofy) by [@eltoncezar",slug:"spofy-by-eltoncezar"},{level:3,title:"Toastify](https://github.com/aleab/toastify) by [@aleab",slug:"toastify-by-aleab"},{level:3,title:"Spotify Oculus](https://github.com/CaptainMorgs/spotify-oculus-release) by [@CaptainMorgs",slug:"spotify-oculus-by-captainmorgs"},{level:3,title:"Songify](https://github.com/Inzaniity/Songify) by [@Inzaniity",slug:"songify-by-inzaniity"},{level:3,title:"Elite G19s Companion app](https://forums.frontier.co.uk/threads/elite-g19s-companion-app-with-simulated-space-traffic-control.226782/) by [@MagicMau",slug:"elite-g19s-companion-app-by-magicmau"},{level:3,title:"ARDUINO-Spotify-Remote-Control](https://github.com/NADER11NDEU/ARDUINO-Spotify-Remote-Control) by [@NADER11NDEU",slug:"arduino-spotify-remote-control-by-nader11ndeu"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"ClientCredentialsAuth",frontmatter:{sidebar:!1},regularPath:"/auth/client_credentials.html",relativePath:"auth/client_credentials.md",key:"v-5127c24a",path:"/auth/client_credentials.html",lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Getting Started",frontmatter:{},regularPath:"/auth/getting_started.html",relativePath:"auth/getting_started.md",key:"v-79c557ae",path:"/auth/getting_started.html",headers:[{level:2,title:"Auth-Methods",slug:"auth-methods"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"TokenSwapAuth",frontmatter:{},regularPath:"/auth/token_swap.html",relativePath:"auth/token_swap.md",key:"v-15ae477b",path:"/auth/token_swap.html",headers:[{level:2,title:"Using TokenSwapWebAPIFactory",slug:"using-tokenswapwebapifactory"},{level:2,title:"Using TokenSwapAuth",slug:"using-tokenswapauth"},{level:2,title:"Token Swap Endpoint",slug:"token-swap-endpoint"},{level:2,title:"Remarks",slug:"remarks"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Albums",frontmatter:{},regularPath:"/web/albums.html",relativePath:"web/albums.md",key:"v-e2943322",path:"/web/albums.html",headers:[{level:2,title:"GetAlbumTracks",slug:"getalbumtracks"},{level:2,title:"GetAlbum",slug:"getalbum"},{level:2,title:"GetSeveralAlbums",slug:"getseveralalbums"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"ImplicitGrantAuth",frontmatter:{sidebar:!1},regularPath:"/auth/implicit_grant.html",relativePath:"auth/implicit_grant.md",key:"v-bc26f6ca",path:"/auth/implicit_grant.html",lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Artists",frontmatter:{},regularPath:"/web/artists.html",relativePath:"web/artists.md",key:"v-9b504b3e",path:"/web/artists.html",headers:[{level:2,title:"GetArtist",slug:"getartist"},{level:2,title:"GetRelatedArtists",slug:"getrelatedartists"},{level:2,title:"GetArtistsTopTracks",slug:"getartiststoptracks"},{level:2,title:"GetArtistsAlbums",slug:"getartistsalbums"},{level:2,title:"GetSeveralArtists",slug:"getseveralartists"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Examples",frontmatter:{sidebar:!1},regularPath:"/web/examples.html",relativePath:"web/examples.md",key:"v-ae731ab6",path:"/web/examples.html",lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Browse",frontmatter:{},regularPath:"/web/browse.html",relativePath:"web/browse.md",key:"v-3896b323",path:"/web/browse.html",headers:[{level:2,title:"GetFeaturedPlaylists",slug:"getfeaturedplaylists"},{level:2,title:"GetNewAlbumReleases",slug:"getnewalbumreleases"},{level:2,title:"GetCategories",slug:"getcategories"},{level:2,title:"GetCategory",slug:"getcategory"},{level:2,title:"GetCategoryPlaylists",slug:"getcategoryplaylists"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Follow",frontmatter:{},regularPath:"/web/follow.html",relativePath:"web/follow.md",key:"v-545731d5",path:"/web/follow.html",headers:[{level:2,title:"Follow",slug:"follow-2"},{level:2,title:"Unfollow",slug:"unfollow"},{level:2,title:"IsFollowing",slug:"isfollowing"},{level:2,title:"FollowPlaylist",slug:"followplaylist"},{level:2,title:"UnfollowPlaylist",slug:"unfollowplaylist"},{level:2,title:"IsFollowingPlaylist",slug:"isfollowingplaylist"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Getting Started",frontmatter:{sidebarDepth:2},regularPath:"/web/getting_started.html",relativePath:"web/getting_started.md",key:"v-5cda54a1",path:"/web/getting_started.html",headers:[{level:2,title:"First steps",slug:"first-steps"},{level:3,title:"Imports",slug:"imports"},{level:3,title:"Basic-Usage",slug:"basic-usage"},{level:2,title:"Examples",slug:"examples"},{level:2,title:"Error-Handling",slug:"error-handling"},{level:2,title:"Sync vs Asynchronous",slug:"sync-vs-asynchronous"},{level:2,title:"API-Reference",slug:"api-reference"},{level:3,title:"Albums",slug:"albums"},{level:3,title:"Artists",slug:"artists"},{level:3,title:"Browse",slug:"browse"},{level:3,title:"Follow",slug:"follow"},{level:3,title:"Library",slug:"library"},{level:3,title:"Personalization",slug:"personalization"},{level:3,title:"Player",slug:"player"},{level:3,title:"Playlists",slug:"playlists"},{level:3,title:"Profiles",slug:"profiles"},{level:3,title:"Search",slug:"search"},{level:3,title:"Tracks",slug:"tracks"},{level:3,title:"Util",slug:"util"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Personalization",frontmatter:{},regularPath:"/web/personalization.html",relativePath:"web/personalization.md",key:"v-7499233e",path:"/web/personalization.html",headers:[{level:2,title:"GetUsersTopTracks",slug:"getuserstoptracks"},{level:2,title:"GetUsersTopArtists",slug:"getuserstopartists"},{level:2,title:"GetUsersRecentlyPlayedTracks",slug:"getusersrecentlyplayedtracks"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Library",frontmatter:{},regularPath:"/web/library.html",relativePath:"web/library.md",key:"v-24570241",path:"/web/library.html",headers:[{level:2,title:"SaveTracks",slug:"savetracks"},{level:2,title:"SaveTrack",slug:"savetrack"},{level:2,title:"GetSavedTracks",slug:"getsavedtracks"},{level:2,title:"RemoveSavedTracks",slug:"removesavedtracks"},{level:2,title:"CheckSavedTracks",slug:"checksavedtracks"},{level:2,title:"SaveAlbums",slug:"savealbums"},{level:2,title:"SaveAlbum",slug:"savealbum"},{level:2,title:"GetSavedAlbums",slug:"getsavedalbums"},{level:2,title:"RemoveSavedAlbums",slug:"removesavedalbums"},{level:2,title:"CheckSavedAlbums",slug:"checksavedalbums"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Player",frontmatter:{},regularPath:"/web/player.html",relativePath:"web/player.md",key:"v-26737916",path:"/web/player.html",headers:[{level:2,title:"GetDevices",slug:"getdevices"},{level:2,title:"GetPlayback",slug:"getplayback"},{level:2,title:"GetPlayingTrack",slug:"getplayingtrack"},{level:2,title:"TransferPlayback",slug:"transferplayback"},{level:2,title:"ResumePlayback",slug:"resumeplayback"},{level:2,title:"PausePlayback",slug:"pauseplayback"},{level:2,title:"SkipPlaybackToNext",slug:"skipplaybacktonext"},{level:2,title:"SkipPlaybackToPrevious",slug:"skipplaybacktoprevious"},{level:2,title:"SeekPlayback",slug:"seekplayback"},{level:2,title:"SetRepeatMode",slug:"setrepeatmode"},{level:2,title:"SetVolume",slug:"setvolume"},{level:2,title:"SetShuffle",slug:"setshuffle"},{level:2,title:"AddToQueue",slug:"addtoqueue"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Profiles",frontmatter:{},regularPath:"/web/profiles.html",relativePath:"web/profiles.md",key:"v-86daa2ba",path:"/web/profiles.html",headers:[{level:2,title:"GetPrivateProfile",slug:"getprivateprofile"},{level:2,title:"GetPublicProfile",slug:"getpublicprofile"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Proxy Settings",frontmatter:{sidebar:!1},regularPath:"/web/proxy.html",relativePath:"web/proxy.md",key:"v-700fa4e1",path:"/web/proxy.html",lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Tracks",frontmatter:{},regularPath:"/web/tracks.html",relativePath:"web/tracks.md",key:"v-2f539db2",path:"/web/tracks.html",headers:[{level:2,title:"GetSeveralTracks",slug:"getseveraltracks"},{level:2,title:"GetTrack",slug:"gettrack"},{level:2,title:"GetAudioAnalysis",slug:"getaudioanalysis"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Search",frontmatter:{},regularPath:"/web/search.html",relativePath:"web/search.md",key:"v-fe729232",path:"/web/search.html",headers:[{level:2,title:"SearchItems",slug:"searchitems"},{level:2,title:"SearchItemsEscaped",slug:"searchitemsescaped"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Utilities",frontmatter:{},regularPath:"/web/utils.html",relativePath:"web/utils.md",key:"v-1edba7fe",path:"/web/utils.html",headers:[{level:2,title:"Paging-Methods",slug:"paging-methods"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Playlists",frontmatter:{},regularPath:"/web/playlists.html",relativePath:"web/playlists.md",key:"v-1e493801",path:"/web/playlists.html",headers:[{level:2,title:"GetUserPlaylists",slug:"getuserplaylists"},{level:2,title:"GetPlaylist",slug:"getplaylist"},{level:2,title:"GetPlaylistTracks",slug:"getplaylisttracks"},{level:2,title:"CreatePlaylist",slug:"createplaylist"},{level:2,title:"UpdatePlaylist",slug:"updateplaylist"},{level:2,title:"ReplacePlaylistTracks",slug:"replaceplaylisttracks"},{level:2,title:"RemovePlaylistTracks",slug:"removeplaylisttracks"},{level:2,title:"RemovePlaylistTrack",slug:"removeplaylisttrack"},{level:2,title:"AddPlaylistTracks",slug:"addplaylisttracks"},{level:2,title:"AddPlaylistTrack",slug:"addplaylisttrack"},{level:2,title:"ReorderPlaylist",slug:"reorderplaylist"}],lastUpdated:"3/9/2020, 7:48:14 PM"}],themeConfig:{repo:"JohnnyCrazy/SpotifyAPI-NET",repoLabel:"πŸš€ GitHub",docsDir:"SpotifyAPI.Docs/docs",editLinks:!0,editLinkText:"Help us improve this page!",sidebar:"auto",sidebarDepth:0,lastUpdated:"Last Updated",serviceWorker:{updatePopup:!0},nav:[{text:"Home",link:"/"},{text:"SpotifyAPI.Web",items:[{text:"Getting Started",link:"/web/getting_started"},{text:"Examples",link:"/web/examples"},{text:"Proxy",link:"/web/proxy"},{text:"- Albums",link:"/web/albums"},{text:"- Artists",link:"/web/artists"},{text:"- Browse",link:"/web/browse"},{text:"- Follow",link:"/web/follow"},{text:"- Library",link:"/web/library"},{text:"- Personalization",link:"/web/personalization"},{text:"- Player",link:"/web/player"},{text:"- Playlists",link:"/web/playlists"},{text:"- Profiles",link:"/web/profiles"},{text:"- Search",link:"/web/search"},{text:"- Tracks",link:"/web/tracks"},{text:"Utilities",link:"/web/utils"}]},{text:"SpotifyAPI.Auth",items:[{text:"Getting Started",link:"/auth/getting_started"},{text:"- ImplicitGrantAuth",link:"/auth/implicit_grant"},{text:"- TokenSwapAuth",link:"/auth/token_swap"},{text:"- AutorizationCodeAuth",link:"/auth/authorization_code"},{text:"- ClientCredentialsAuth",link:"/auth/client_credentials"}]}]}};n(5);No.component("Badge",()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,226)));n(6);var ns=[{},({Vue:t})=>{t.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{}],rs=[];class os{constructor(){this.store=new No({data:{state:{}}})}$get(t){return this.store.state[t]}$set(t,e){No.set(this.store.state,t,e)}$emit(...t){this.store.$emit(...t)}$on(...t){this.store.$on(...t)}}class is extends os{}Object.assign(is.prototype,{getPageAsyncComponent:Da,getLayoutAsyncComponent:Na,getAsyncComponent:Fa,getVueComponent:za});var as={install(t){const e=new is;t.$vuepress=e,t.prototype.$vuepress=e}};function ss(t,e){return t.options.routes.filter(t=>t.path.toLowerCase()===e.toLowerCase()).length>0}var ls={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(t){const e=this.pageKey||this.$parent.$page.key;return Va("pageKey",e),No.component(e)||No.component(e,Da(e)),No.component(e)?t(e):t("")}},us={functional:!0,props:{slotKey:String,required:!0},render:(t,{props:e,slots:n})=>t("div",{class:[`content__${e.slotKey}`]},n()[e.slotKey])},cs=(n(7),Object(Ya.a)({},function(t,e){var n=e._c;return n("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[n("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),e._v(" "),n("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})])},[],!0,null,null,null).exports),fs={functional:!0,render(t,{parent:e,children:n}){if(e._isMounted)return n;e.$once("hook:mounted",()=>{e.$forceUpdate()})}};No.config.productionTip=!1,No.use($a),No.use(as),No.mixin(function(t,e,n=No){!function(t){t.locales&&Object.keys(t.locales).forEach(e=>{t.locales[e].path=e});Object.freeze(t)}(e),n.$vuepress.$set("siteData",e);const r=new(t(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),i={};return Object.keys(o).reduce((t,e)=>(e.startsWith("$")&&(t[e]=o[e].get),t),i),{computed:i}}(t=>(class{setPage(t){this.__page=t}get $site(){return t}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:t={}}=this.$site;let e,n;for(const r in t)"/"===r?n=t[r]:0===this.$page.path.indexOf(r)&&(e=t[r]);return e||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $title(){const t=this.$page,{metaTitle:e}=this.$page.frontmatter;if("string"==typeof e)return e;const n=this.$siteTitle,r=t.frontmatter.home?null:t.frontmatter.title||t.title;return n?r?r+" | "+n:n:r||"VuePress"}get $description(){const t=function(t){if(t){const e=t.filter(t=>"description"===t.name)[0];if(e)return e.content}}(this.$page.frontmatter.meta);return t||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(t,e){for(let n=0;nn||(t.hash?!No.$vuepress.$get("disableScrollBehavior")&&{selector:t.hash}:{x:0,y:0})});!function(t){t.beforeEach((e,n,r)=>{if(ss(t,e.path))r();else if(/(\/|\.html)$/.test(e.path))if(/\/$/.test(e.path)){const n=e.path.replace(/\/$/,"")+".html";ss(t,n)?r(n):r()}else r();else{const n=e.path+"/",o=e.path+".html";ss(t,o)?r(o):ss(t,n)?r(n):r()}})}(n);const r={};try{ns.forEach(e=>{"function"==typeof e&&e({Vue:No,options:r,router:n,siteData:es,isServer:t})})}catch(t){console.error(t)}return{app:new No(Object.assign(r,{router:n,render:t=>t("div",{attrs:{id:"app"}},[t("router-view",{ref:"layout"}),t("div",{class:"global-ui"},rs.map(e=>t(e)))])})),router:n}}(!1);window.__VUEPRESS__={version:"1.2.0",hash:"e9685ff"},ds.onReady(()=>{ps.$mount("#app")})}]); \ No newline at end of file + */function Fo(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function zo(t,e){return e instanceof t||e&&(e.name===t.name||e._name===t._name)}function Bo(t,e){for(var n in e)t[n]=e[n];return t}var Vo={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,r=e.children,o=e.parent,i=e.data;i.routerView=!0;for(var a=o.$createElement,s=n.name,l=o.$route,u=o._routerViewCache||(o._routerViewCache={}),c=0,f=!1;o&&o._routerRoot!==o;){var p=o.$vnode&&o.$vnode.data;p&&(p.routerView&&c++,p.keepAlive&&o._inactive&&(f=!0)),o=o.$parent}if(i.routerViewDepth=c,f)return a(u[s],i,r);var d=l.matched[c];if(!d)return u[s]=null,a();var h=u[s]=d.components[s];i.registerRouteInstance=function(t,e){var n=d.instances[s];(e&&n!==t||!e&&n===t)&&(d.instances[s]=e)},(i.hook||(i.hook={})).prepatch=function(t,e){d.instances[s]=e.componentInstance},i.hook.init=function(t){t.data.keepAlive&&t.componentInstance&&t.componentInstance!==d.instances[s]&&(d.instances[s]=t.componentInstance)};var v=i.props=function(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0;default:0}}(l,d.props&&d.props[s]);if(v){v=i.props=Bo({},v);var m=i.attrs=i.attrs||{};for(var y in v)h.props&&y in h.props||(m[y]=v[y],delete v[y])}return a(h,i,r)}};var Go=/[!'()*]/g,Ho=function(t){return"%"+t.charCodeAt(0).toString(16)},qo=/%2C/g,Wo=function(t){return encodeURIComponent(t).replace(Go,Ho).replace(qo,",")},Ko=decodeURIComponent;function Xo(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach(function(t){var n=t.replace(/\+/g," ").split("="),r=Ko(n.shift()),o=n.length>0?Ko(n.join("=")):null;void 0===e[r]?e[r]=o:Array.isArray(e[r])?e[r].push(o):e[r]=[e[r],o]}),e):e}function Jo(t){var e=t?Object.keys(t).map(function(e){var n=t[e];if(void 0===n)return"";if(null===n)return Wo(e);if(Array.isArray(n)){var r=[];return n.forEach(function(t){void 0!==t&&(null===t?r.push(Wo(e)):r.push(Wo(e)+"="+Wo(t)))}),r.join("&")}return Wo(e)+"="+Wo(n)}).filter(function(t){return t.length>0}).join("&"):null;return e?"?"+e:""}var Qo=/\/?$/;function Yo(t,e,n,r){var o=r&&r.options.stringifyQuery,i=e.query||{};try{i=Zo(i)}catch(t){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:i,params:e.params||{},fullPath:ni(e,o),matched:t?ei(t):[]};return n&&(a.redirectedFrom=ni(n,o)),Object.freeze(a)}function Zo(t){if(Array.isArray(t))return t.map(Zo);if(t&&"object"==typeof t){var e={};for(var n in t)e[n]=Zo(t[n]);return e}return t}var ti=Yo(null,{path:"/"});function ei(t){for(var e=[];t;)e.unshift(t),t=t.parent;return e}function ni(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var o=t.hash;return void 0===o&&(o=""),(n||"/")+(e||Jo)(r)+o}function ri(t,e){return e===ti?t===e:!!e&&(t.path&&e.path?t.path.replace(Qo,"")===e.path.replace(Qo,"")&&t.hash===e.hash&&oi(t.query,e.query):!(!t.name||!e.name)&&(t.name===e.name&&t.hash===e.hash&&oi(t.query,e.query)&&oi(t.params,e.params)))}function oi(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&n.every(function(n){var r=t[n],o=e[n];return"object"==typeof r&&"object"==typeof o?oi(r,o):String(r)===String(o)})}function ii(t,e,n){var r=t.charAt(0);if("/"===r)return t;if("?"===r||"#"===r)return e+t;var o=e.split("/");n&&o[o.length-1]||o.pop();for(var i=t.replace(/^\//,"").split("/"),a=0;a=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}(o.path||""),l=e&&e.path||"/",u=s.path?ii(s.path,l,n||o.append):l,c=function(t,e,n){void 0===e&&(e={});var r,o=n||Xo;try{r=o(t||"")}catch(t){r={}}for(var i in e)r[i]=e[i];return r}(s.query,o.query,r&&r.options.parseQuery),f=o.hash||s.hash;return f&&"#"!==f.charAt(0)&&(f="#"+f),{_normalized:!0,path:u,query:c,hash:f}}var Ai,Si=[String,Object],Oi=[String,Array],Pi=function(){},Ei={name:"RouterLink",props:{to:{type:Si,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:Oi,default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),i=o.location,a=o.route,s=o.href,l={},u=n.options.linkActiveClass,c=n.options.linkExactActiveClass,f=null==u?"router-link-active":u,p=null==c?"router-link-exact-active":c,d=null==this.activeClass?f:this.activeClass,h=null==this.exactActiveClass?p:this.exactActiveClass,v=a.redirectedFrom?Yo(null,Ci(a.redirectedFrom),null,n):a;l[h]=ri(r,v),l[d]=this.exact?l[h]:function(t,e){return 0===t.path.replace(Qo,"/").indexOf(e.path.replace(Qo,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,v);var m=function(t){Ti(t)&&(e.replace?n.replace(i,Pi):n.push(i,Pi))},y={click:Ti};Array.isArray(this.event)?this.event.forEach(function(t){y[t]=m}):y[this.event]=m;var g={class:l},b=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:a,navigate:m,isActive:l[d],isExactActive:l[h]});if(b){if(1===b.length)return b[0];if(b.length>1||!b.length)return 0===b.length?t():t("span",{},b)}if("a"===this.tag)g.on=y,g.attrs={href:s};else{var _=function t(e){if(e)for(var n,r=0;r-1&&(s.params[p]=n.params[p]);return s.path=xi(c.path,s.params),l(c,s,a)}if(s.path){s.params={};for(var d=0;d=t.length?n():t[o]?e(t[o],function(){r(o+1)}):r(o+1)};r(0)}function na(t){return function(e,n,r){var o=!1,i=0,a=null;ra(t,function(t,e,n,s){if("function"==typeof t&&void 0===t.cid){o=!0,i++;var l,u=aa(function(e){var o;((o=e).__esModule||ia&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:Ai.extend(e),n.components[s]=e,--i<=0&&r()}),c=aa(function(t){var e="Failed to resolve async component "+s+": "+t;a||(a=Fo(t)?t:new Error(e),r(a))});try{l=t(u,c)}catch(t){c(t)}if(l)if("function"==typeof l.then)l.then(u,c);else{var f=l.component;f&&"function"==typeof f.then&&f.then(u,c)}}}),o||r()}}function ra(t,e){return oa(t.map(function(t){return Object.keys(t.components).map(function(n){return e(t.components[n],t.instances[n],t,n)})}))}function oa(t){return Array.prototype.concat.apply([],t)}var ia="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function aa(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var sa=function(t){function e(e){t.call(this),this.name=this._name="NavigationDuplicated",this.message='Navigating to current location ("'+e.fullPath+'") is not allowed',Object.defineProperty(this,"stack",{value:(new t).stack,writable:!0,configurable:!0})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Error);sa._name="NavigationDuplicated";var la=function(t,e){this.router=t,this.base=function(t){if(!t)if(ji){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=ti,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};function ua(t,e,n,r){var o=ra(t,function(t,r,o,i){var a=function(t,e){"function"!=typeof t&&(t=Ai.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map(function(t){return n(t,r,o,i)}):n(a,r,o,i)});return oa(r?o.reverse():o)}function ca(t,e){if(e)return function(){return t.apply(e,arguments)}}la.prototype.listen=function(t){this.cb=t},la.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},la.prototype.onError=function(t){this.errorCbs.push(t)},la.prototype.transitionTo=function(t,e,n){var r=this,o=this.router.match(t,this.current);this.confirmTransition(o,function(){r.updateRoute(o),e&&e(o),r.ensureURL(),r.ready||(r.ready=!0,r.readyCbs.forEach(function(t){t(o)}))},function(t){n&&n(t),t&&!r.ready&&(r.ready=!0,r.readyErrorCbs.forEach(function(e){e(t)}))})},la.prototype.confirmTransition=function(t,e,n){var r=this,o=this.current,i=function(t){!zo(sa,t)&&Fo(t)&&(r.errorCbs.length?r.errorCbs.forEach(function(e){e(t)}):console.error(t)),n&&n(t)};if(ri(t,o)&&t.matched.length===o.matched.length)return this.ensureURL(),i(new sa(t));var a=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n-1?decodeURI(t.slice(0,r))+t.slice(r):decodeURI(t)}else n>-1&&(t=decodeURI(t.slice(0,n))+t.slice(n));return t}function ma(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function ya(t){Yi?Zi(ma(t)):window.location.hash=t}function ga(t){Yi?ta(ma(t)):window.location.replace(ma(t))}var ba=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)},n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,function(){e.index=n,e.updateRoute(r)},function(t){zo(sa,t)&&(e.index=n)})}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(la),_a=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Ii(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Yi&&!1!==t.fallback,this.fallback&&(e="hash"),ji||(e="abstract"),this.mode=e,e){case"history":this.history=new fa(this,t.base);break;case"hash":this.history=new da(this,t.base,this.fallback);break;case"abstract":this.history=new ba(this,t.base);break;default:0}},wa={currentRoute:{configurable:!0}};function ka(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}_a.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},wa.currentRoute.get=function(){return this.history&&this.history.current},_a.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null)}),!this.app){this.app=t;var n=this.history;if(n instanceof fa)n.transitionTo(n.getCurrentLocation());else if(n instanceof da){var r=function(){n.setupListeners()};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen(function(t){e.apps.forEach(function(e){e._route=t})})}},_a.prototype.beforeEach=function(t){return ka(this.beforeHooks,t)},_a.prototype.beforeResolve=function(t){return ka(this.resolveHooks,t)},_a.prototype.afterEach=function(t){return ka(this.afterHooks,t)},_a.prototype.onReady=function(t,e){this.history.onReady(t,e)},_a.prototype.onError=function(t){this.history.onError(t)},_a.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise(function(e,n){r.history.push(t,e,n)});this.history.push(t,e,n)},_a.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise(function(e,n){r.history.replace(t,e,n)});this.history.replace(t,e,n)},_a.prototype.go=function(t){this.history.go(t)},_a.prototype.back=function(){this.go(-1)},_a.prototype.forward=function(){this.go(1)},_a.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map(function(t){return Object.keys(t.components).map(function(e){return t.components[e]})})):[]},_a.prototype.resolve=function(t,e,n){var r=Ci(t,e=e||this.history.current,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?ai(t+"/"+r):r}(this.history.base,i,this.mode),normalizedTo:r,resolved:o}},_a.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==ti&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(_a.prototype,wa),_a.install=function t(e){if(!t.installed||Ai!==e){t.installed=!0,Ai=e;var n=function(t){return void 0!==t},r=function(t,e){var r=t.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(t,e)};e.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",Vo),e.component("RouterLink",Ei);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},_a.version="3.1.3",ji&&window.Vue&&window.Vue.use(_a);var $a=_a;var xa={NotFound:()=>n.e(4).then(n.bind(null,204)),Layout:()=>Promise.all([n.e(0),n.e(2)]).then(n.bind(null,203))},Ca={"v-f88195a6":()=>n.e(5).then(n.bind(null,205)),"v-0f125dbb":()=>n.e(6).then(n.bind(null,206)),"v-5127c24a":()=>n.e(7).then(n.bind(null,207)),"v-79c557ae":()=>n.e(8).then(n.bind(null,208)),"v-bc26f6ca":()=>n.e(9).then(n.bind(null,209)),"v-15ae477b":()=>n.e(10).then(n.bind(null,210)),"v-e2943322":()=>n.e(11).then(n.bind(null,211)),"v-9b504b3e":()=>n.e(12).then(n.bind(null,212)),"v-3896b323":()=>n.e(13).then(n.bind(null,213)),"v-ae731ab6":()=>n.e(14).then(n.bind(null,214)),"v-545731d5":()=>n.e(15).then(n.bind(null,215)),"v-5cda54a1":()=>n.e(16).then(n.bind(null,216)),"v-24570241":()=>n.e(17).then(n.bind(null,217)),"v-7499233e":()=>n.e(18).then(n.bind(null,218)),"v-26737916":()=>n.e(19).then(n.bind(null,219)),"v-86daa2ba":()=>n.e(21).then(n.bind(null,220)),"v-700fa4e1":()=>n.e(22).then(n.bind(null,221)),"v-fe729232":()=>n.e(23).then(n.bind(null,222)),"v-2f539db2":()=>n.e(24).then(n.bind(null,223)),"v-1edba7fe":()=>n.e(25).then(n.bind(null,224)),"v-1e493801":()=>n.e(20).then(n.bind(null,225))};function Aa(t){const e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}const Sa=/-(\w)/g,Oa=Aa(t=>t.replace(Sa,(t,e)=>e?e.toUpperCase():"")),Pa=/\B([A-Z])/g,Ea=Aa(t=>t.replace(Pa,"-$1").toLowerCase()),Ta=Aa(t=>t.charAt(0).toUpperCase()+t.slice(1));function ja(t,e){if(!e)return;if(t(e))return t(e);return e.includes("-")?t(Ta(Oa(e))):t(Ta(e))||t(Ea(e))}const Ra=Object.assign({},xa,Ca),La=t=>Ra[t],Ia=t=>Ca[t],Ma=t=>xa[t],Ua=t=>No.component(t);function Da(t){return ja(Ia,t)}function Na(t){return ja(Ma,t)}function Fa(t){return ja(La,t)}function za(t){return ja(Ua,t)}function Ba(...t){return Promise.all(t.filter(t=>t).map(async t=>{if(!za(t)&&Fa(t)){const e=await Fa(t)();No.component(t,e.default)}}))}function Va(t,e){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[t]=e)}var Ga={created(){this.$ssrContext&&(this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.description=this.$page.description||this.$description)},mounted(){this.currentMetaTags=new Set,this.updateMeta()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const t=this.$page.frontmatter.meta||[],e=t.slice(0);0===t.filter(t=>"description"===t.name).length&&e.push({name:"description",content:this.$description});const n=document.querySelectorAll('meta[name="description"]');n.length&&n.forEach(t=>this.currentMetaTags.add(t)),this.currentMetaTags=new Set(Ha(e,this.currentMetaTags))}},watch:{$page(){this.updateMeta()}},beforeDestroy(){Ha(null,this.currentMetaTags)}};function Ha(t,e){if(e&&[...e].forEach(t=>{document.head.removeChild(t)}),t)return t.map(t=>{const e=document.createElement("meta");return Object.keys(t).forEach(n=>{e.setAttribute(n,t[n])}),document.head.appendChild(e),e})}var qa=n(3),Wa={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:n.n(qa)()(function(){this.setActiveHash()},300),setActiveHash(){const t=[].slice.call(document.querySelectorAll(".sidebar-link")),e=[].slice.call(document.querySelectorAll(".header-anchor")).filter(e=>t.some(t=>t.hash===e.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),r=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),o=window.innerHeight+n;for(let t=0;t=i.parentElement.offsetTop+10&&(!a||n{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},Ka=n(2),Xa=n.n(Ka),Ja=[Ga,Wa,{mounted(){Xa.a.configure({showSpinner:!1}),this.$router.beforeEach((t,e,n)=>{t.path===e.path||No.component(t.name)||Xa.a.start(),n()}),this.$router.afterEach(()=>{Xa.a.done(),this.isSidebarOpen=!1})}}],Qa={methods:{getLayout:function(){if(this.$page.path){var t=this.$page.frontmatter.layout;return t&&(this.$vuepress.getLayoutAsyncComponent(t)||this.$vuepress.getVueComponent(t))?t:"Layout"}return"NotFound"}},computed:{layout:function(){var t=this.getLayout();return Va("layout",t),No.component(t)}}},Ya=n(0),Za=Object(Ya.a)(Qa,function(){var t=this.$createElement;return(this._self._c||t)(this.layout,{tag:"component"})},[],!1,null,null,null).exports;!function(t,e,n){switch(e){case"components":t[e]||(t[e]={}),Object.assign(t[e],n);break;case"mixins":t[e]||(t[e]=[]),t[e].push(...n);break;default:throw new Error("Unknown option name.")}}(Za,"mixins",Ja);const ts=[{name:"v-f88195a6",path:"/",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-f88195a6").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-0f125dbb",path:"/auth/authorization_code.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-0f125dbb").then(n)}},{name:"v-5127c24a",path:"/auth/client_credentials.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-5127c24a").then(n)}},{name:"v-79c557ae",path:"/auth/getting_started.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-79c557ae").then(n)}},{name:"v-bc26f6ca",path:"/auth/implicit_grant.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-bc26f6ca").then(n)}},{name:"v-15ae477b",path:"/auth/token_swap.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-15ae477b").then(n)}},{name:"v-e2943322",path:"/web/albums.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-e2943322").then(n)}},{name:"v-9b504b3e",path:"/web/artists.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-9b504b3e").then(n)}},{name:"v-3896b323",path:"/web/browse.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-3896b323").then(n)}},{name:"v-ae731ab6",path:"/web/examples.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-ae731ab6").then(n)}},{name:"v-545731d5",path:"/web/follow.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-545731d5").then(n)}},{name:"v-5cda54a1",path:"/web/getting_started.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-5cda54a1").then(n)}},{name:"v-24570241",path:"/web/library.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-24570241").then(n)}},{name:"v-7499233e",path:"/web/personalization.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-7499233e").then(n)}},{name:"v-26737916",path:"/web/player.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-26737916").then(n)}},{name:"v-86daa2ba",path:"/web/profiles.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-86daa2ba").then(n)}},{name:"v-700fa4e1",path:"/web/proxy.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-700fa4e1").then(n)}},{name:"v-fe729232",path:"/web/search.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-fe729232").then(n)}},{name:"v-2f539db2",path:"/web/tracks.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-2f539db2").then(n)}},{name:"v-1edba7fe",path:"/web/utils.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-1edba7fe").then(n)}},{name:"v-1e493801",path:"/web/playlists.html",component:Za,beforeEnter:(t,e,n)=>{Ba("Layout","v-1e493801").then(n)}},{path:"*",component:Za}],es={title:"SpotifyAPI-NET",description:"πŸ”‰ An API for the Spotify-Client and the Spotify Web API, written in C#/.NET",base:"/SpotifyAPI-NET/",pages:[{title:"SpotifyAPI-NET Docs",frontmatter:{},regularPath:"/",relativePath:"README.md",key:"v-f88195a6",path:"/",headers:[{level:2,title:"About",slug:"about"},{level:2,title:"Installing",slug:"installing"},{level:2,title:"Getting Started",slug:"getting-started"},{level:2,title:"Projects",slug:"projects"},{level:3,title:"lidarr](https://github.com/lidarr/Lidarr) by [@lidarr",slug:"lidarr-by-lidarr"},{level:3,title:"botframework-solutions](https://github.com/microsoft/botframework-solutions) by [@microsoft",slug:"botframework-solutions-by-microsoft"},{level:3,title:"Spytify](https://github.com/jwallet/spy-spotify) by [@jwallet",slug:"spytify-by-jwallet"},{level:3,title:"audio-band](https://github.com/dsafa/audio-band) by [@dsafa",slug:"audio-band-by-dsafa"},{level:3,title:"rocksmith-custom-song-toolkit](https://github.com/catara/rocksmith-custom-song-toolkit) by [@catara",slug:"rocksmith-custom-song-toolkit-by-catara"},{level:3,title:"Spofy](https://github.com/eltoncezar/Spofy) by [@eltoncezar",slug:"spofy-by-eltoncezar"},{level:3,title:"Toastify](https://github.com/aleab/toastify) by [@aleab",slug:"toastify-by-aleab"},{level:3,title:"Spotify Oculus](https://github.com/CaptainMorgs/spotify-oculus-release) by [@CaptainMorgs",slug:"spotify-oculus-by-captainmorgs"},{level:3,title:"Songify](https://github.com/Inzaniity/Songify) by [@Inzaniity",slug:"songify-by-inzaniity"},{level:3,title:"Elite G19s Companion app](https://forums.frontier.co.uk/threads/elite-g19s-companion-app-with-simulated-space-traffic-control.226782/) by [@MagicMau",slug:"elite-g19s-companion-app-by-magicmau"},{level:3,title:"ARDUINO-Spotify-Remote-Control](https://github.com/NADER11NDEU/ARDUINO-Spotify-Remote-Control) by [@NADER11NDEU",slug:"arduino-spotify-remote-control-by-nader11ndeu"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"AutorizationCodeAuth",frontmatter:{sidebar:!1},regularPath:"/auth/authorization_code.html",relativePath:"auth/authorization_code.md",key:"v-0f125dbb",path:"/auth/authorization_code.html",headers:[{level:2,title:"Token Refresh",slug:"token-refresh"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"ClientCredentialsAuth",frontmatter:{sidebar:!1},regularPath:"/auth/client_credentials.html",relativePath:"auth/client_credentials.md",key:"v-5127c24a",path:"/auth/client_credentials.html",lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Getting Started",frontmatter:{},regularPath:"/auth/getting_started.html",relativePath:"auth/getting_started.md",key:"v-79c557ae",path:"/auth/getting_started.html",headers:[{level:2,title:"Auth-Methods",slug:"auth-methods"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"ImplicitGrantAuth",frontmatter:{sidebar:!1},regularPath:"/auth/implicit_grant.html",relativePath:"auth/implicit_grant.md",key:"v-bc26f6ca",path:"/auth/implicit_grant.html",lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"TokenSwapAuth",frontmatter:{},regularPath:"/auth/token_swap.html",relativePath:"auth/token_swap.md",key:"v-15ae477b",path:"/auth/token_swap.html",headers:[{level:2,title:"Using TokenSwapWebAPIFactory",slug:"using-tokenswapwebapifactory"},{level:2,title:"Using TokenSwapAuth",slug:"using-tokenswapauth"},{level:2,title:"Token Swap Endpoint",slug:"token-swap-endpoint"},{level:2,title:"Remarks",slug:"remarks"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Albums",frontmatter:{},regularPath:"/web/albums.html",relativePath:"web/albums.md",key:"v-e2943322",path:"/web/albums.html",headers:[{level:2,title:"GetAlbumTracks",slug:"getalbumtracks"},{level:2,title:"GetAlbum",slug:"getalbum"},{level:2,title:"GetSeveralAlbums",slug:"getseveralalbums"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Artists",frontmatter:{},regularPath:"/web/artists.html",relativePath:"web/artists.md",key:"v-9b504b3e",path:"/web/artists.html",headers:[{level:2,title:"GetArtist",slug:"getartist"},{level:2,title:"GetRelatedArtists",slug:"getrelatedartists"},{level:2,title:"GetArtistsTopTracks",slug:"getartiststoptracks"},{level:2,title:"GetArtistsAlbums",slug:"getartistsalbums"},{level:2,title:"GetSeveralArtists",slug:"getseveralartists"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Browse",frontmatter:{},regularPath:"/web/browse.html",relativePath:"web/browse.md",key:"v-3896b323",path:"/web/browse.html",headers:[{level:2,title:"GetFeaturedPlaylists",slug:"getfeaturedplaylists"},{level:2,title:"GetNewAlbumReleases",slug:"getnewalbumreleases"},{level:2,title:"GetCategories",slug:"getcategories"},{level:2,title:"GetCategory",slug:"getcategory"},{level:2,title:"GetCategoryPlaylists",slug:"getcategoryplaylists"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Examples",frontmatter:{sidebar:!1},regularPath:"/web/examples.html",relativePath:"web/examples.md",key:"v-ae731ab6",path:"/web/examples.html",lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Follow",frontmatter:{},regularPath:"/web/follow.html",relativePath:"web/follow.md",key:"v-545731d5",path:"/web/follow.html",headers:[{level:2,title:"Follow",slug:"follow-2"},{level:2,title:"Unfollow",slug:"unfollow"},{level:2,title:"IsFollowing",slug:"isfollowing"},{level:2,title:"FollowPlaylist",slug:"followplaylist"},{level:2,title:"UnfollowPlaylist",slug:"unfollowplaylist"},{level:2,title:"IsFollowingPlaylist",slug:"isfollowingplaylist"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Getting Started",frontmatter:{sidebarDepth:2},regularPath:"/web/getting_started.html",relativePath:"web/getting_started.md",key:"v-5cda54a1",path:"/web/getting_started.html",headers:[{level:2,title:"First steps",slug:"first-steps"},{level:3,title:"Imports",slug:"imports"},{level:3,title:"Basic-Usage",slug:"basic-usage"},{level:2,title:"Examples",slug:"examples"},{level:2,title:"Error-Handling",slug:"error-handling"},{level:2,title:"Sync vs Asynchronous",slug:"sync-vs-asynchronous"},{level:2,title:"API-Reference",slug:"api-reference"},{level:3,title:"Albums",slug:"albums"},{level:3,title:"Artists",slug:"artists"},{level:3,title:"Browse",slug:"browse"},{level:3,title:"Follow",slug:"follow"},{level:3,title:"Library",slug:"library"},{level:3,title:"Personalization",slug:"personalization"},{level:3,title:"Player",slug:"player"},{level:3,title:"Playlists",slug:"playlists"},{level:3,title:"Profiles",slug:"profiles"},{level:3,title:"Search",slug:"search"},{level:3,title:"Tracks",slug:"tracks"},{level:3,title:"Util",slug:"util"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Library",frontmatter:{},regularPath:"/web/library.html",relativePath:"web/library.md",key:"v-24570241",path:"/web/library.html",headers:[{level:2,title:"SaveTracks",slug:"savetracks"},{level:2,title:"SaveTrack",slug:"savetrack"},{level:2,title:"GetSavedTracks",slug:"getsavedtracks"},{level:2,title:"RemoveSavedTracks",slug:"removesavedtracks"},{level:2,title:"CheckSavedTracks",slug:"checksavedtracks"},{level:2,title:"SaveAlbums",slug:"savealbums"},{level:2,title:"SaveAlbum",slug:"savealbum"},{level:2,title:"GetSavedAlbums",slug:"getsavedalbums"},{level:2,title:"RemoveSavedAlbums",slug:"removesavedalbums"},{level:2,title:"CheckSavedAlbums",slug:"checksavedalbums"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Personalization",frontmatter:{},regularPath:"/web/personalization.html",relativePath:"web/personalization.md",key:"v-7499233e",path:"/web/personalization.html",headers:[{level:2,title:"GetUsersTopTracks",slug:"getuserstoptracks"},{level:2,title:"GetUsersTopArtists",slug:"getuserstopartists"},{level:2,title:"GetUsersRecentlyPlayedTracks",slug:"getusersrecentlyplayedtracks"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Player",frontmatter:{},regularPath:"/web/player.html",relativePath:"web/player.md",key:"v-26737916",path:"/web/player.html",headers:[{level:2,title:"GetDevices",slug:"getdevices"},{level:2,title:"GetPlayback",slug:"getplayback"},{level:2,title:"GetPlayingTrack",slug:"getplayingtrack"},{level:2,title:"TransferPlayback",slug:"transferplayback"},{level:2,title:"ResumePlayback",slug:"resumeplayback"},{level:2,title:"PausePlayback",slug:"pauseplayback"},{level:2,title:"SkipPlaybackToNext",slug:"skipplaybacktonext"},{level:2,title:"SkipPlaybackToPrevious",slug:"skipplaybacktoprevious"},{level:2,title:"SeekPlayback",slug:"seekplayback"},{level:2,title:"SetRepeatMode",slug:"setrepeatmode"},{level:2,title:"SetVolume",slug:"setvolume"},{level:2,title:"SetShuffle",slug:"setshuffle"},{level:2,title:"AddToQueue",slug:"addtoqueue"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Profiles",frontmatter:{},regularPath:"/web/profiles.html",relativePath:"web/profiles.md",key:"v-86daa2ba",path:"/web/profiles.html",headers:[{level:2,title:"GetPrivateProfile",slug:"getprivateprofile"},{level:2,title:"GetPublicProfile",slug:"getpublicprofile"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Proxy Settings",frontmatter:{sidebar:!1},regularPath:"/web/proxy.html",relativePath:"web/proxy.md",key:"v-700fa4e1",path:"/web/proxy.html",lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Search",frontmatter:{},regularPath:"/web/search.html",relativePath:"web/search.md",key:"v-fe729232",path:"/web/search.html",headers:[{level:2,title:"SearchItems",slug:"searchitems"},{level:2,title:"SearchItemsEscaped",slug:"searchitemsescaped"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Tracks",frontmatter:{},regularPath:"/web/tracks.html",relativePath:"web/tracks.md",key:"v-2f539db2",path:"/web/tracks.html",headers:[{level:2,title:"GetSeveralTracks",slug:"getseveraltracks"},{level:2,title:"GetTrack",slug:"gettrack"},{level:2,title:"GetAudioAnalysis",slug:"getaudioanalysis"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Utilities",frontmatter:{},regularPath:"/web/utils.html",relativePath:"web/utils.md",key:"v-1edba7fe",path:"/web/utils.html",headers:[{level:2,title:"Paging-Methods",slug:"paging-methods"}],lastUpdated:"3/9/2020, 7:48:14 PM"},{title:"Playlists",frontmatter:{},regularPath:"/web/playlists.html",relativePath:"web/playlists.md",key:"v-1e493801",path:"/web/playlists.html",headers:[{level:2,title:"GetUserPlaylists",slug:"getuserplaylists"},{level:2,title:"GetPlaylist",slug:"getplaylist"},{level:2,title:"GetPlaylistTracks",slug:"getplaylisttracks"},{level:2,title:"CreatePlaylist",slug:"createplaylist"},{level:2,title:"UpdatePlaylist",slug:"updateplaylist"},{level:2,title:"ReplacePlaylistTracks",slug:"replaceplaylisttracks"},{level:2,title:"RemovePlaylistTracks",slug:"removeplaylisttracks"},{level:2,title:"RemovePlaylistTrack",slug:"removeplaylisttrack"},{level:2,title:"AddPlaylistTracks",slug:"addplaylisttracks"},{level:2,title:"AddPlaylistTrack",slug:"addplaylisttrack"},{level:2,title:"ReorderPlaylist",slug:"reorderplaylist"}],lastUpdated:"3/9/2020, 7:48:14 PM"}],themeConfig:{repo:"JohnnyCrazy/SpotifyAPI-NET",repoLabel:"πŸš€ GitHub",docsDir:"SpotifyAPI.Docs/docs",editLinks:!0,editLinkText:"Help us improve this page!",sidebar:"auto",sidebarDepth:0,lastUpdated:"Last Updated",serviceWorker:{updatePopup:!0},nav:[{text:"Home",link:"/"},{text:"SpotifyAPI.Web",items:[{text:"Getting Started",link:"/web/getting_started"},{text:"Examples",link:"/web/examples"},{text:"Proxy",link:"/web/proxy"},{text:"- Albums",link:"/web/albums"},{text:"- Artists",link:"/web/artists"},{text:"- Browse",link:"/web/browse"},{text:"- Follow",link:"/web/follow"},{text:"- Library",link:"/web/library"},{text:"- Personalization",link:"/web/personalization"},{text:"- Player",link:"/web/player"},{text:"- Playlists",link:"/web/playlists"},{text:"- Profiles",link:"/web/profiles"},{text:"- Search",link:"/web/search"},{text:"- Tracks",link:"/web/tracks"},{text:"Utilities",link:"/web/utils"}]},{text:"SpotifyAPI.Auth",items:[{text:"Getting Started",link:"/auth/getting_started"},{text:"- ImplicitGrantAuth",link:"/auth/implicit_grant"},{text:"- TokenSwapAuth",link:"/auth/token_swap"},{text:"- AutorizationCodeAuth",link:"/auth/authorization_code"},{text:"- ClientCredentialsAuth",link:"/auth/client_credentials"}]}]}};n(5);No.component("Badge",()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,226)));n(6);var ns=[{},({Vue:t})=>{t.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{}],rs=[];class os{constructor(){this.store=new No({data:{state:{}}})}$get(t){return this.store.state[t]}$set(t,e){No.set(this.store.state,t,e)}$emit(...t){this.store.$emit(...t)}$on(...t){this.store.$on(...t)}}class is extends os{}Object.assign(is.prototype,{getPageAsyncComponent:Da,getLayoutAsyncComponent:Na,getAsyncComponent:Fa,getVueComponent:za});var as={install(t){const e=new is;t.$vuepress=e,t.prototype.$vuepress=e}};function ss(t,e){return t.options.routes.filter(t=>t.path.toLowerCase()===e.toLowerCase()).length>0}var ls={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(t){const e=this.pageKey||this.$parent.$page.key;return Va("pageKey",e),No.component(e)||No.component(e,Da(e)),No.component(e)?t(e):t("")}},us={functional:!0,props:{slotKey:String,required:!0},render:(t,{props:e,slots:n})=>t("div",{class:[`content__${e.slotKey}`]},n()[e.slotKey])},cs=(n(7),Object(Ya.a)({},function(t,e){var n=e._c;return n("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[n("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),e._v(" "),n("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})])},[],!0,null,null,null).exports),fs={functional:!0,render(t,{parent:e,children:n}){if(e._isMounted)return n;e.$once("hook:mounted",()=>{e.$forceUpdate()})}};No.config.productionTip=!1,No.use($a),No.use(as),No.mixin(function(t,e,n=No){!function(t){t.locales&&Object.keys(t.locales).forEach(e=>{t.locales[e].path=e});Object.freeze(t)}(e),n.$vuepress.$set("siteData",e);const r=new(t(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),i={};return Object.keys(o).reduce((t,e)=>(e.startsWith("$")&&(t[e]=o[e].get),t),i),{computed:i}}(t=>(class{setPage(t){this.__page=t}get $site(){return t}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:t={}}=this.$site;let e,n;for(const r in t)"/"===r?n=t[r]:0===this.$page.path.indexOf(r)&&(e=t[r]);return e||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $title(){const t=this.$page,{metaTitle:e}=this.$page.frontmatter;if("string"==typeof e)return e;const n=this.$siteTitle,r=t.frontmatter.home?null:t.frontmatter.title||t.title;return n?r?r+" | "+n:n:r||"VuePress"}get $description(){const t=function(t){if(t){const e=t.filter(t=>"description"===t.name)[0];if(e)return e.content}}(this.$page.frontmatter.meta);return t||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(t,e){for(let n=0;nn||(t.hash?!No.$vuepress.$get("disableScrollBehavior")&&{selector:t.hash}:{x:0,y:0})});!function(t){t.beforeEach((e,n,r)=>{if(ss(t,e.path))r();else if(/(\/|\.html)$/.test(e.path))if(/\/$/.test(e.path)){const n=e.path.replace(/\/$/,"")+".html";ss(t,n)?r(n):r()}else r();else{const n=e.path+"/",o=e.path+".html";ss(t,o)?r(o):ss(t,n)?r(n):r()}})}(n);const r={};try{ns.forEach(e=>{"function"==typeof e&&e({Vue:No,options:r,router:n,siteData:es,isServer:t})})}catch(t){console.error(t)}return{app:new No(Object.assign(r,{router:n,render:t=>t("div",{attrs:{id:"app"}},[t("router-view",{ref:"layout"}),t("div",{class:"global-ui"},rs.map(e=>t(e)))])})),router:n}}(!1);window.__VUEPRESS__={version:"1.2.0",hash:"e9685ff"},ds.onReady(()=>{ps.$mount("#app")})}]); \ No newline at end of file diff --git a/auth/authorization_code.html b/auth/authorization_code.html index d173cafc..5b7d55b0 100644 --- a/auth/authorization_code.html +++ b/auth/authorization_code.html @@ -7,7 +7,7 @@ - + @@ -52,6 +52,6 @@ In this procedure, no HTTP Server is needed in the background and a single HTTP api.TokenType = newToken.TokenType }
- + diff --git a/auth/client_credentials.html b/auth/client_credentials.html index 3e33eb63..ce22c9c7 100644 --- a/auth/client_credentials.html +++ b/auth/client_credentials.html @@ -7,7 +7,7 @@ - + @@ -25,6 +25,6 @@ If you want to use it securely, you would need to do it all server-side. AccessToken = token.AccessToken };
- + diff --git a/auth/getting_started.html b/auth/getting_started.html index 5f3c6ba8..50195737 100644 --- a/auth/getting_started.html +++ b/auth/getting_started.html @@ -7,7 +7,7 @@ - + @@ -18,6 +18,6 @@

Getting Started

Auth-Methods

Before you can use the Web API's full functionality, you need the user to authenticate your Application. If you want to know more, you can read to the whole auth-process here.

Before you start, install SpotifyAPI.Web.Auth and create an application at Spotify: Your Applications

After you have created your Application, you will have following important values:

Name Description
Client_Id This is your client_id, you don't have to hide it
Client_Secret Never use this in one of your client-side apps! Keep it secret!
Redirect URIs Some of auth flows require that you set the correct redirect URI

Now you can start with the user-authentication. Spotify provides 3 ways (4 if you consider different implementations):

Overview: Overview

- + diff --git a/auth/implicit_grant.html b/auth/implicit_grant.html index f4b1d98b..6b036a2a 100644 --- a/auth/implicit_grant.html +++ b/auth/implicit_grant.html @@ -7,7 +7,7 @@ - + @@ -38,6 +38,6 @@ You won't be able to refresh the token. If you want to use the internal Http ser auth.OpenBrowser(); }
- + diff --git a/auth/token_swap.html b/auth/token_swap.html index c0fc0a05..701e4c74 100644 --- a/auth/token_swap.html +++ b/auth/token_swap.html @@ -7,7 +7,7 @@ - + @@ -68,6 +68,6 @@ auth.OnAccessTokenExpired .Start(); auth.OpenBrowser();

Token Swap Endpoint

To keep your client secret completely secure and your client ID and redirect URI as secure as possible, use of a web server (such as a php website) is required.

To use this method, an external HTTP Server (that you may need to create) needs to be able to supply the following HTTP Endpoints to your application:

/swap - Swaps out an authorization_code with an access_token and refresh_token - The following parameters are required in the JSON POST Body:

  • grant_type (set to "authorization_code")
  • code (the authorization_code)
  • redirect_uri
    • Important The page that the redirect URI links to must return the authorization code json to your serverUri (default is 'http://localhost:4002') but to the folder 'auth', like this: 'http://localhost:4002/auth'.

/refresh - Refreshes an access_token - The following parameters are required in the JSON POST Body:

  • grant_type (set to "refresh_token")
  • refresh_token

The following open-source token swap endpoint code can be used for your website:

Remarks

It should be noted that GitHub Pages does not support hosting php scripts. Hosting php scripts through it will cause the php to render as plain HTML, potentially compromising your client secret while doing absolutely nothing.

Be sure you have whitelisted your redirect uri in the Spotify Developer Dashboard otherwise the authorization will always fail.

If you did not use the WebAPIFactory or you provided a serverUri different from its default, you must make sure your redirect uri's script at your endpoint will properly redirect to your serverUri (such as changing the areas which refer to localhost:4002 if you had changed serverUri from its default), otherwise it will never reach your new serverUri.

- + diff --git a/index.html b/index.html index 6d5961fc..bc13b5c6 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,7 @@ - + @@ -19,6 +19,6 @@ The API also provides access to user-related data such as playlists and music saved in a β€œYour Music” library, subject to user’s authorization.

SpotifyAPI.Web

A wrapper around Spotify's Web API, providing sync and async methods to query all possible endpoints. Results are returned as typed class instances, allowing property-based access.

SpotifyAPI.Web.Auth

A library providing C# implementations of the 3 supported Authentication modes, including ImplicitGrantAuth, AuthorizationCodeAuth and CredentialsAuth


Installing

  • Via NuGet Package:
Install-Package SpotifyAPI.Web
 Install-Package SpotifyAPI.Web.Auth
 
  • Download the latest binaries on the GitHub Release Page and add it to your Project
  • Clone the Repo and build the project yourself.

Getting Started

Projects

lidarr by @lidarr

Looks and smells like Sonarr but made for music.

botframework-solutions by @microsoft

home for a set of templates and solutions to help build advanced conversational experiences using Azure Bot Service and Bot Framework

Spytify by @jwallet

Records Spotify to mp3 without ads while it plays and includes media tags to the recorded files

audio-band by @dsafa

Display and control songs from the Windows taskbar

rocksmith-custom-song-toolkit by @catara

MASS Manipulation of Rocksmith DLC Library

Spofy by @eltoncezar

A Spotify mini player and notifier for Windows

Toastify by @aleab

Toastify adds global hotkeys and toast notifications to Spotify

Forked from nachmore/toastify

Spotify Oculus by @CaptainMorgs

Unity project for interacting with Spotify in virtual reality for the Oculus Rift.

Songify by @Inzaniity

A simple tool that gets the current track from Spotify, YouTube and Nightbot.

Elite G19s Companion app by @MagicMau

Main features include: system and station overview, play radio and podcast with audio visualizations, simulated Space Traffic Control, GPS functionality (including planetary races), an orrery view, a screenshot converter, and a news ticker.

ARDUINO-Spotify-Remote-Control by @NADER11NDEU

Well, with this project we will be able to control active spotify devices with Arduino. How we gonna do that ? We will use serial communication.

- + diff --git a/web/albums.html b/web/albums.html index 345cf448..6185fe59 100644 --- a/web/albums.html +++ b/web/albums.html @@ -7,7 +7,7 @@ - + @@ -23,6 +23,6 @@ Console.Writ

GetSeveralAlbums

Get Spotify catalog information for multiple albums identified by their Spotify IDs.

Parameters

Name Description Example
ids A list of the Spotify IDs for the albums. Maximum: 20 IDs. new List<String>() { "5O7V8l4SeXTymVp3IesT9C" }
[market] An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. "DE"

Returns a SeveralAlbums which Property "Albums" contains a list of FullAlbum

Usage

SeveralAlbums albums = _spotify.GetSeveralAlbums(new List<String>() { "5O7V8l4SeXTymVp3IesT9C" });
 Console.WriteLine(albums.Albums[0].Name);
 

- + diff --git a/web/artists.html b/web/artists.html index 0c646fb7..505d5418 100644 --- a/web/artists.html +++ b/web/artists.html @@ -7,7 +7,7 @@ - + @@ -26,6 +26,6 @@ albums.Items GetSeveralArtists

Get Spotify catalog information for several artists based on their Spotify IDs.

Parameters

Name Description Example
ids A list of the Spotify IDs for the artists. Maximum: 50 IDs. new List<String>() { "1KpCi9BOfviCVhmpI4G2sY" }

Returns a SeveralArtists object which contains the property List<FullArtist> Artists (FullArtist)

Usage

SeveralArtists artists = _spotify.GetSeveralArtists(new List<String>() {"1KpCi9BOfviCVhmpI4G2sY"});
 artists.Artists.ForEach(artist => Console.WriteLine(artist.Name));
 

- + diff --git a/web/browse.html b/web/browse.html index 6f7372a3..9c933e22 100644 --- a/web/browse.html +++ b/web/browse.html @@ -7,7 +7,7 @@ - + @@ -27,6 +27,6 @@ Console.Writ

GetCategoryPlaylists

Get a list of Spotify playlists tagged with a particular category.

Parameters

Name Description Example
categoryId The Spotify category ID for the category. "party"
[country] A country: an ISO 3166-1 alpha-2 country code. "DE"
[limit] The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. 20
[offset] The index of the first item to return. Default: 0 0

Returns a CategoryPlaylist object, which has the property Paging<SimplePlaylist> Playlists

Usage

CategoryPlaylist playlists = _spotify.GetCategoryPlaylists("party");
 playlists.Playlists.Items.ForEach(playlist => Console.WriteLine(playlist.Name));
 

- + diff --git a/web/examples.html b/web/examples.html index db3d9946..52e5d80e 100644 --- a/web/examples.html +++ b/web/examples.html @@ -7,7 +7,7 @@ - + @@ -16,6 +16,6 @@

Examples

This page is currently empty. Do you have useful examples? Please open a PR

- + diff --git a/web/follow.html b/web/follow.html index f7278ed1..82025c11 100644 --- a/web/follow.html +++ b/web/follow.html @@ -7,7 +7,7 @@ - + @@ -34,6 +34,6 @@ Console.Writ ListResponse<Boolean> response = _spotify.IsFollowing("maxloermans", "3SIp2VAsKI03mReF0dFBmI", "1122095781"); Console.WriteLine(response.List[0] ? "Yis!" : "No :(");
- + diff --git a/web/getting_started.html b/web/getting_started.html index 2899f239..10ceca94 100644 --- a/web/getting_started.html +++ b/web/getting_started.html @@ -7,7 +7,7 @@ - + @@ -51,6 +51,6 @@ _spotify = newvar syncProfile = _spotify.GetPrivateProfile(); }

Note that the synchronous call will block the current Thread!


API-Reference

Albums

Artists

Browse

Follow

Library

Personalization

Player

Playlists

Profiles

Tracks

Util

- + diff --git a/web/library.html b/web/library.html index 4b62a306..4af92193 100644 --- a/web/library.html +++ b/web/library.html @@ -7,7 +7,7 @@ - + @@ -44,6 +44,6 @@ savedAlbums.Itemsif(albumsSaved.List[0]) Console.WriteLine("The album is in your library!");
- + diff --git a/web/personalization.html b/web/personalization.html index ab961bfa..6c0a800c 100644 --- a/web/personalization.html +++ b/web/personalization.html @@ -7,7 +7,7 @@ - + @@ -23,6 +23,6 @@ artists.Items.ForEach(item => Console.WriteLine(item.Name)); //Display all fe

GetUsersRecentlyPlayedTracks

Get tracks from the current user’s recent play history.

Parameters

Name Description Example
[limit] The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. 20
[after] Returns all items after (but not including) this cursor position. DateTime.Now.AddDays(-1)
[before] Returns all items before (but not including) this cursor position. DateTime.Now.AddDays(-1)

Returns a PlayHistory wrapped inside a CursorPaging-object

Usage

CursorPaging<PlayHistory> histories = _spotify.GetUsersRecentlyPlayedTracks();
 histories.Items.ForEach(item => Console.WriteLine(item.Track.Name));
 

- + diff --git a/web/player.html b/web/player.html index 773f60d3..96ebe345 100644 --- a/web/player.html +++ b/web/player.html @@ -7,7 +7,7 @@ - + @@ -36,6 +36,6 @@ Returning to the start of the current track should be performed using the https:

SetShuffle

Toggle shuffle on or off for user’s playback.

Parameters

Name Description Example
shuffle True or False false
[deviceId] The id of the device this command is targeting. If not supplied, the user's currently active device is the target. "XXXX-XXXX-XXXX-XXXX"

Usage

ErrorResponse error = _spotify.SetShuffle(false);
 

AddToQueue

Add an Item to the User's Playback Queue. BETA.

Parameters

Name Description Example
uri The uri of the item to add to the queue. Must be a track or an episode uri. spotify:track:7zrCVKp6x0AtolOsn2iMif
[deviceId] The id of the device this command is targeting. If not supplied, the user's currently active device is the target. "XXXX-XXXX-XXXX-XXXX"

Usage

ErrorResponse error = _spotify.AddToQueue("spotify:track:7zrCVKp6x0AtolOsn2iMif");
 
- + diff --git a/web/playlists.html b/web/playlists.html index 07c49e65..2b751e7c 100644 --- a/web/playlists.html +++ b/web/playlists.html @@ -7,7 +7,7 @@ - + @@ -56,6 +56,6 @@ playlist.ItemsReorder-Playlist

Parameters

Name Description Example
userId The user's Spotify user ID. "1122095781"
playlistId The Spotify ID for the playlist. "1TtEejT1y4D1WmcOnLfha2"
rangeStart The position of the first track to be reordered. 2
insertBefore The position where the tracks should be inserted. 0
[rangeLength] The amount of tracks to be reordered. Defaults to 1 if not set. 2
[snapshotId] The playlist's snapshot ID against which you want to make the changes. ``

Returns a Snapshot-Object which contains the property String SnapshotId

Usage

Snapshot snapshot = _spotify.ReorderPlaylist("1122095781", "1TtEejT1y4D1WmcOnLfha2", 2, 0, 2);
 Console.WriteLine("New SnapshotId: " + snapshot.SnapshotId);
 

- + diff --git a/web/profiles.html b/web/profiles.html index 878aade2..78850d4a 100644 --- a/web/profiles.html +++ b/web/profiles.html @@ -7,7 +7,7 @@ - + @@ -18,6 +18,6 @@

Profiles

GetPrivateProfile

Get detailed profile information about the current user (including the current user’s username).

Parameters

Name Description Example

Returns a PrivateProfile

Usage

PrivateUser user = _spotify.GetPrivateProfile();
 Console.WriteLine(user.DisplayName);
 

GetPublicProfile

Get public profile information about a Spotify user.

Parameters

Name Description Example
userId The user's Spotify user ID. EXAMPLE

Returns a PublicProfile

Usage


- + diff --git a/web/proxy.html b/web/proxy.html index a01e8e33..aa58c69f 100644 --- a/web/proxy.html +++ b/web/proxy.html @@ -7,7 +7,7 @@ - + @@ -24,6 +24,6 @@ SpotifyWebAPI api = new SpotifyWebAPI(proxyConfig);
- + diff --git a/web/search.html b/web/search.html index 8d418eac..6b27df9d 100644 --- a/web/search.html +++ b/web/search.html @@ -7,7 +7,7 @@ - + @@ -18,6 +18,6 @@

Search

SearchItems

Get Spotify catalog information about artists, albums, tracks or playlists that match a keyword string.

WARNING

You may want to use SearchItemsEscaped if you're processing user-input without validation

Parameters

Name Description Example
q The search query's keywords (and optional field filters and operators), for example q=roadhouse+blues. "roadhouse+blues"
type A list of item types to search across. SearchType.Album
[limit] The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. 20
[offset] The index of the first result to return. Default: 0 0
[market] An ISO 3166-1 alpha-2 country code or the string from_token. "de"

Returns a SearchItem which contains the properties Paging<FullArtist> Artists,Paging<FullTrack> Tracks, Paging<SimpleAlbum> Albums, Paging<SimplePlaylist> Playlists. They are filled based on your search-type.

Usage

SearchItem item = _spotify.SearchItems("roadhouse+blues", SearchType.Album | SearchType.Playlist);
 Console.WriteLine(item.Albums.Total); //How many results are there in total? NOTE: item.Tracks = item.Artists = null
 

SearchItemsEscaped

Get Spotify catalog information about artists, albums, tracks or playlists that match a keyword string.

Works like SearchItems, but URL escapes all characters

- + diff --git a/web/tracks.html b/web/tracks.html index 0e90dcd2..39a301ed 100644 --- a/web/tracks.html +++ b/web/tracks.html @@ -7,7 +7,7 @@ - + @@ -22,6 +22,6 @@ Console.Writ

GetAudioAnalysis

Get a detailed audio analysis for a single track identified by its unique Spotify ID.

Parameters

Name Description Example
id The Spotify ID for the track. "6Y1CLPwYe7zvI8PJiWVz6T"

Returns a AudioAnalysis. This object is currently lacking Spotify documentation but archived EchoNest documentation is relevant.

Usage

AudioAnalysis analysis = _spotify.GetAudioAnalysis("6Y1CLPwYe7zvI8PJiWVz6T");
 Console.WriteLine(analysis.Meta.DetailedStatus);
 
- + diff --git a/web/utils.html b/web/utils.html index c99b8b5e..5a26b2e7 100644 --- a/web/utils.html +++ b/web/utils.html @@ -7,7 +7,7 @@ - + @@ -25,6 +25,6 @@ Both are an easy way to receive the next/previous page of a Paging-Object.

< playlistTracks = _spotify.GetNextPage(playlistTracks); }
- +