mirror of
https://github.com/Sarsoo/Spotify.NET.git
synced 2024-12-23 14:46:26 +00:00
Built docs | AppVeyor Build 359
This commit is contained in:
parent
62b382f24e
commit
55c7274bc8
@ -1,350 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<meta name="author" content="JohnnyCrazy">
|
||||
|
||||
<link rel="shortcut icon" href="../img/favicon.ico">
|
||||
|
||||
<title>SpotifyLocalAPI - SpotifyAPI-NET</title>
|
||||
|
||||
<link href="../css/bootstrap-custom.min.css" rel="stylesheet">
|
||||
<link href="../css/font-awesome-4.0.3.css" rel="stylesheet">
|
||||
<link href="../css/prettify-1.0.css" rel="stylesheet">
|
||||
<link href="../css/base.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.6/styles/agate.min.css">
|
||||
|
||||
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
|
||||
<div class="container">
|
||||
|
||||
<!-- Collapsed navigation -->
|
||||
<div class="navbar-header">
|
||||
<!-- Expander button -->
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
|
||||
<!-- Main title -->
|
||||
<a class="navbar-brand" href="..">SpotifyAPI-NET</a>
|
||||
</div>
|
||||
|
||||
<!-- Expanded navigation -->
|
||||
<div class="navbar-collapse collapse">
|
||||
<!-- Main navigation -->
|
||||
<ul class="nav navbar-nav">
|
||||
|
||||
|
||||
<li >
|
||||
<a href="..">Home</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyWebAPI <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../SpotifyWebAPI/gettingstarted/">Getting started</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../SpotifyWebAPI/examples/">Examples</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../SpotifyWebAPI/auth/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../SpotifyWebAPI/proxy/">Proxy</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../SpotifyWebAPI/albums/">- Albums</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../SpotifyWebAPI/artists/">- Artists</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../SpotifyWebAPI/browse/">- Browse</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../SpotifyWebAPI/follow/">- Follow</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../SpotifyWebAPI/library/">- Library</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../SpotifyWebAPI/personalization/">- Personalization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../SpotifyWebAPI/player/">- Player</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../SpotifyWebAPI/playlists/">- Playlists</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../SpotifyWebAPI/profiles/">- Profiles</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../SpotifyWebAPI/search/">- Search</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../SpotifyWebAPI/tracks/">- Tracks</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../SpotifyWebAPI/util/">- Util</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="active">
|
||||
<a href="./">SpotifyLocalAPI</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
<!-- Search, Navigation and Repo links -->
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
|
||||
<li >
|
||||
<a rel="next" href="../SpotifyWebAPI/util/">
|
||||
<i class="fa fa-arrow-left"></i> Previous
|
||||
</a>
|
||||
</li>
|
||||
<li class="disabled">
|
||||
<a rel="prev" >
|
||||
Next <i class="fa fa-arrow-right"></i>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://github.com/JohnnyCrazy/SpotifyAPI-NET">
|
||||
|
||||
<i class="fa fa-github"></i>
|
||||
|
||||
GitHub
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary" style="height=90%;">
|
||||
<ul class="nav bs-sidenav">
|
||||
|
||||
<li class="main active"><a href="#getting-started">Getting started</a></li>
|
||||
|
||||
<li><a href="#first-steps">First steps</a></li>
|
||||
|
||||
<li><a href="#configuration">Configuration</a></li>
|
||||
|
||||
<li><a href="#proxy-settings">Proxy Settings</a></li>
|
||||
|
||||
<li><a href="#anti-virus-blocking-response">Anti-Virus Blocking Response</a></li>
|
||||
|
||||
<li><a href="#client-status">Client Status</a></li>
|
||||
|
||||
<li><a href="#current-track">Current Track</a></li>
|
||||
|
||||
<li><a href="#events">Events</a></li>
|
||||
|
||||
<li><a href="#methods">Methods</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</div></div>
|
||||
<div class="col-md-9" role="main">
|
||||
|
||||
<h1 id="getting-started">Getting started</h1>
|
||||
<p>This API provides some access to the local running Spotify-Client (Windows only).<br />
|
||||
You can fetch details for the current track, play/pause, skip/previous track and
|
||||
get notified on various events.</p>
|
||||
<p><strong>NOTE:</strong> This API is unofficial, things may break in the future and there is no
|
||||
guarantee everything works out of the box.</p>
|
||||
<hr />
|
||||
<h2 id="first-steps">First steps</h2>
|
||||
<p><strong>Imports</strong><br />
|
||||
So after you added the API to your project, you may want to add following imports to your files:</p>
|
||||
<pre><code class="cs">using SpotifyAPI.Local; //Base Namespace
|
||||
using SpotifyAPI.Local.Enums; //Enums
|
||||
using SpotifyAPI.Local.Models; //Models for the JSON-responses
|
||||
</code></pre>
|
||||
|
||||
<p><strong>Basic-Usage</strong><br />
|
||||
Now you can actually start fetching infos from your spotify client, just create a new Instance of SpotifyLocalAPI:</p>
|
||||
<pre><code class="cs">private static SpotifyLocalAPI _spotify;
|
||||
|
||||
public static void Main(String[] args)
|
||||
{
|
||||
_spotify = new SpotifyLocalAPI();
|
||||
if (!SpotifyLocalAPI.IsSpotifyRunning())
|
||||
return; //Make sure the spotify client is running
|
||||
if (!SpotifyLocalAPI.IsSpotifyWebHelperRunning())
|
||||
return; //Make sure the WebHelper is running
|
||||
|
||||
if(!_spotify.Connect())
|
||||
return; //We need to call Connect before fetching infos, this will handle Auth stuff
|
||||
|
||||
StatusResponse status = _spotify.GetStatus(); //status contains infos
|
||||
}
|
||||
</code></pre>
|
||||
|
||||
<h2 id="configuration">Configuration</h2>
|
||||
<p>Different spotify versions often require different configuration. Some versions run their web-helper on port <code>4371</code>, others on <code>4381</code> or <code>4380</code>. Also, some use <code>https</code>, and others use <code>http</code>. You can use <code>SpotifyLocalAPIConfig</code> to configure the API:</p>
|
||||
<pre><code class="cs">_spotify = new SpotifyLocalAPI(new SpotifyLocalAPIConfig
|
||||
{
|
||||
Port = 4371,
|
||||
HostUrl = "https://127.0.0.1"
|
||||
});
|
||||
</code></pre>
|
||||
|
||||
<p>it's also possible to change the current <code>UserAgent</code> string, which is needed if the library wasn't updated for some time. In this case, you should first make an unauthenticated call with <code>spotify.GetStatus()</code>, receive the current spotify version, and update the config afterwards:</p>
|
||||
<pre><code class="cs">var config = new SpotifyLocalAPIConfig { Port = 4371, HostUrl = "https://127.0.0.1" });
|
||||
_spotify = new SpotifyLocalAPI(config);
|
||||
|
||||
var status = _spotify.GetStatus();
|
||||
config.UserAgent = status.ClientVersion;
|
||||
|
||||
// Now you should call auth stuff, like "_spotify.Connect()"
|
||||
</code></pre>
|
||||
|
||||
<h2 id="proxy-settings">Proxy Settings</h2>
|
||||
<p>You can forward your proxy settings to the local api by using a field in the <code>SpotifyLocalAPIConfig</code>.</p>
|
||||
<pre><code class="cs">_spotify = new SpotifyLocalAPI(new SpotifyLocalAPIConfig
|
||||
{
|
||||
ProxyConfig = new ProxyConfig() {
|
||||
Host = "127.0.0.1",
|
||||
Port = 8080
|
||||
// Additional values like Username and Password are available
|
||||
}
|
||||
});
|
||||
</code></pre>
|
||||
|
||||
<h2 id="anti-virus-blocking-response">Anti-Virus Blocking Response</h2>
|
||||
<p>Some Anti-Virus Software blocks the response from spotify due wrong headers.
|
||||
Currently, it's confirmed for AVG's LinkScanner and Bitdefender.
|
||||
Adding <code>http://SpotifyAPI.spotilocal.com:4380</code> to the URL-Exceptions seems to fix it for most users.
|
||||
More infos can be found <a href="https://github.com/JohnnyCrazy/SpotifyAPI-NET/issues/51">here</a></p>
|
||||
<h2 id="client-status">Client Status</h2>
|
||||
<p>Calling <code>_spotify.GetStatus()</code> after connecting returns the following <code>StatusResponse</code>:</p>
|
||||
<pre><code>public int Version { get; set; }
|
||||
|
||||
public string ClientVersion { get; set; }
|
||||
|
||||
public bool Playing { get; set; }
|
||||
|
||||
public bool Shuffle { get; set; }
|
||||
|
||||
public bool Repeat { get; set; }
|
||||
|
||||
public bool PlayEnabled { get; set; }
|
||||
|
||||
public bool PrevEnabled { get; set; }
|
||||
|
||||
public bool NextEnabled { get; set; }
|
||||
|
||||
public Track Track { get; set; }
|
||||
|
||||
public double PlayingPosition { get; set; }
|
||||
|
||||
public int ServerTime { get; set; }
|
||||
|
||||
public double Volume { get; set; }
|
||||
|
||||
public bool Online { get; set; }
|
||||
|
||||
public bool Running { get; set; }
|
||||
</code></pre>
|
||||
|
||||
<p>Most of the properties are self-explanatory, some notes:</p>
|
||||
<ul>
|
||||
<li><code>Shuffle</code> and <code>Repeat</code> currently always return <code>false</code></li>
|
||||
</ul>
|
||||
<h2 id="current-track">Current Track</h2>
|
||||
<p>The current Track can be fetched via <code>_spotify.GetStatus().Track</code> and contains following properties/methods:</p>
|
||||
<ul>
|
||||
<li><code>TrackResource</code> - <code>SpotifyResource</code> which contains Track <code>Name</code> and <code>Uri</code></li>
|
||||
<li><code>AlbumResource</code> - <code>SpotifyResource</code> which contains Album <code>Name</code> and <code>Uri</code></li>
|
||||
<li><code>ArtistResource</code> - <code>SpotifyResource</code> which contains Artist <code>Name</code> and <code>Uri</code> (Only the main artist will be listed)</li>
|
||||
<li><code>IsAd()</code> will check whether the current track is an AD</li>
|
||||
<li>Various methods for getting the album art:</li>
|
||||
<li><code>string GetAlbumArtUrl(AlbumArtSize size)</code></li>
|
||||
<li><code>Task<Bitmap> GetAlbumArtAsync(AlbumArtSize size)</code></li>
|
||||
<li><code>Bitmap GetAlbumArt(AlbumArtSize size)</code></li>
|
||||
<li><code>Task<byte[]> GetAlbumArtAsByteArrayAsync(AlbumArtSize size)</code></li>
|
||||
<li><code>byte[] GetAlbumArtAsByteArray(AlbumArtSize size)</code></li>
|
||||
</ul>
|
||||
<h2 id="events">Events</h2>
|
||||
<p>To receive events, make sure you listen for them <code>_spotify.ListenForEvents = true;</code><br />
|
||||
You can set a <code>SynchronizingObject</code>, then the events will be called on the specific context</p>
|
||||
<p>Following events can be overriden:</p>
|
||||
<ul>
|
||||
<li><code>OnPlayStateChange</code> - triggers when the player changes from <code>play</code> to <code>pause</code> and vice versa</li>
|
||||
<li><code>OnTrackChange</code> - triggers when a new track will be played</li>
|
||||
<li><code>OnTrackTimeChange</code> - triggers when a track is playing and track-time changes</li>
|
||||
<li><code>OnVolumeChange</code> - triggeres when the internal volume of spotify changes</li>
|
||||
</ul>
|
||||
<h2 id="methods">Methods</h2>
|
||||
<p>Furthermore, following methods are available:</p>
|
||||
<ul>
|
||||
<li><code>void Mute()</code> - will mute the Spotify client via WindowsAPI</li>
|
||||
<li><code>void UnMute()</code> - will unmute the Spotify client via WindowsAPI</li>
|
||||
<li><code>bool IsSpotifyMuted()</code> - will return wether the Spotify client is muted</li>
|
||||
<li><code>void SetSpotifyVolume(float volume = 100)</code> - sets the windows volume of spotify (0 - 100)</li>
|
||||
<li><code>float GetSpotifyVolume()</code> - returns the windows volume of spotify (0 - 100)</li>
|
||||
<li><code>void Pause()</code> - will pause spotify's playback</li>
|
||||
<li><code>void Play()</code> - will resume spotify's playback</li>
|
||||
<li><code>void PlayURL(string uri, string context = "")</code> - will play a spotify URI (track/album/playlist) in the specifc context (can be a album/playlist URI)</li>
|
||||
<li><code>void Skip()</code> - will skip the track via an emulated media key</li>
|
||||
<li><code>void Previous()</code> - will play the previous track via an emulated media key</li>
|
||||
<li><code>bool IsSpotifyRunning()</code> - returns true if a spotify client instance is running, false if not</li>
|
||||
<li><code>bool IsSpotifyWebHelperRunning()</code> - returns true if a spotify web-helper instance is running, false if not</li>
|
||||
<li><code>void RunSpotify()</code> - will attempt to start a Spotify instance</li>
|
||||
<li><code>void RunSpotifyWebHelper()</code> - will attempt to start a Spotify web-helper instance</li>
|
||||
</ul></div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.4/highlight.min.js"></script>
|
||||
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
|
||||
<script src="../js/bootstrap-3.0.3.min.js"></script>
|
||||
<script src="../js/base.js"></script>
|
||||
<script src="../highlight.js"></script>
|
||||
</body>
|
||||
</html>
|
@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<li class="dropdown active">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyWebAPI <b class="caret"></b></a>
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyAPI.Web <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
@ -67,10 +67,6 @@
|
||||
<a href="../examples/">Examples</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../auth/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../proxy/">Proxy</a>
|
||||
</li>
|
||||
@ -129,7 +125,7 @@
|
||||
|
||||
|
||||
<li >
|
||||
<a href="../../SpotifyLocalAPI/">SpotifyLocalAPI</a>
|
||||
<a href="../auth/">SpotifyAPI.Web.Auth</a>
|
||||
</li>
|
||||
|
||||
|
||||
@ -184,7 +180,7 @@
|
||||
<blockquote>
|
||||
<p>Get Spotify catalog information about an album's tracks. Optional parameters can be used to limit the number of tracks returned.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -228,7 +224,7 @@ Console.WriteLine(tracks.Total.ToString()) //Display total album track count
|
||||
<blockquote>
|
||||
<p>Get Spotify catalog information for a single album.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -261,7 +257,7 @@ Console.WriteLine(album.Name + "| Popularity: " + album.Popularity); /
|
||||
<blockquote>
|
||||
<p>Get Spotify catalog information for multiple albums identified by their Spotify IDs.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<li class="dropdown active">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyWebAPI <b class="caret"></b></a>
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyAPI.Web <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
@ -67,10 +67,6 @@
|
||||
<a href="../examples/">Examples</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../auth/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../proxy/">Proxy</a>
|
||||
</li>
|
||||
@ -129,7 +125,7 @@
|
||||
|
||||
|
||||
<li >
|
||||
<a href="../../SpotifyLocalAPI/">SpotifyLocalAPI</a>
|
||||
<a href="../auth/">SpotifyAPI.Web.Auth</a>
|
||||
</li>
|
||||
|
||||
|
||||
@ -190,7 +186,7 @@
|
||||
<blockquote>
|
||||
<p>Get Spotify catalog information for a single artist identified by their unique Spotify ID.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -218,7 +214,7 @@ Console.WriteLine()
|
||||
<blockquote>
|
||||
<p>Get Spotify catalog information about artists similar to a given artist. Similarity is based on analysis of the Spotify community's listening history.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -246,7 +242,7 @@ Console.WriteLine(artists.Artists[0].Name);
|
||||
<blockquote>
|
||||
<p>Get Spotify catalog information about an artist's top tracks by country.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -279,7 +275,7 @@ Console.WriteLine(tracks.Tracks.Count); //How many tracks did we get?
|
||||
<blockquote>
|
||||
<p>Get Spotify catalog information about an artist's albums. Optional parameters can be specified in the query string to filter and sort the response.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -327,7 +323,7 @@ albums.Items.ForEach(album => Console.WriteLine(album.Name));
|
||||
<blockquote>
|
||||
<p>Get Spotify catalog information for several artists based on their Spotify IDs.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
<link rel="shortcut icon" href="../../img/favicon.ico">
|
||||
|
||||
<title>Authentication - SpotifyAPI-NET</title>
|
||||
<title>SpotifyAPI.Web.Auth - SpotifyAPI-NET</title>
|
||||
|
||||
<link href="../../css/bootstrap-custom.min.css" rel="stylesheet">
|
||||
<link href="../../css/font-awesome-4.0.3.css" rel="stylesheet">
|
||||
@ -55,8 +55,8 @@
|
||||
|
||||
|
||||
|
||||
<li class="dropdown active">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyWebAPI <b class="caret"></b></a>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyAPI.Web <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
@ -67,10 +67,6 @@
|
||||
<a href="../examples/">Examples</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="./">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../proxy/">Proxy</a>
|
||||
</li>
|
||||
@ -128,8 +124,8 @@
|
||||
|
||||
|
||||
|
||||
<li >
|
||||
<a href="../../SpotifyLocalAPI/">SpotifyLocalAPI</a>
|
||||
<li class="active">
|
||||
<a href="./">SpotifyAPI.Web.Auth</a>
|
||||
</li>
|
||||
|
||||
|
||||
@ -139,12 +135,12 @@
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
|
||||
<li >
|
||||
<a rel="next" href="../examples/">
|
||||
<a rel="next" href="../util/">
|
||||
<i class="fa fa-arrow-left"></i> Previous
|
||||
</a>
|
||||
</li>
|
||||
<li >
|
||||
<a rel="prev" href="../proxy/">
|
||||
<li class="disabled">
|
||||
<a rel="prev" >
|
||||
Next <i class="fa fa-arrow-right"></i>
|
||||
</a>
|
||||
</li>
|
||||
@ -169,6 +165,8 @@
|
||||
|
||||
<li class="main active"><a href="#auth-methods">Auth-Methods</a></li>
|
||||
|
||||
<li><a href="#notes">Notes</a></li>
|
||||
|
||||
<li><a href="#implicitgrantauth">ImplicitGrantAuth</a></li>
|
||||
|
||||
<li><a href="#autorizationcodeauth">AutorizationCodeAuth</a></li>
|
||||
@ -176,191 +174,89 @@
|
||||
<li><a href="#clientcredentialsauth">ClientCredentialsAuth</a></li>
|
||||
|
||||
|
||||
<li class="main "><a href="#scopes">Scopes</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</div></div>
|
||||
<div class="col-md-9" role="main">
|
||||
|
||||
<h1 id="auth-methods">Auth-Methods</h1>
|
||||
<p>Before you can use the Web API full functional, you need the user to authenticate your Application.<br />
|
||||
<p>Before you can use the Web API full functional, you need the user to authenticate your Application.
|
||||
If you want to know more, you can read to the whole auth-process <a href="https://developer.spotify.com/web-api/authorization-guide/">here</a>.</p>
|
||||
<p>Before you start, you need to create a Application at Spotify: <a href="https://developer.spotify.com/my-applications/#!/applications">Your Applications</a></p>
|
||||
<p>Before you start, install <code>SpotifyAPI.Web.Auth</code> and create an application at Spotify: <a href="https://developer.spotify.com/my-applications/#!/applications">Your Applications</a></p>
|
||||
<hr />
|
||||
<p>After you created your Application, you will have following important values: </p>
|
||||
<p>After you created your Application, you will have following important values:</p>
|
||||
<blockquote>
|
||||
<p><strong>Client_Id</strong> This is your client_id, you don't have to hide it<br />
|
||||
<strong>Client_Secret</strong> Never use this in one of your client-side apps!! Keep it secret!<br />
|
||||
<strong>Redirect URIs</strong> Add "http://localhost", if you want full support for this API </p>
|
||||
<p><strong>Client_Id</strong>: This is your client_id, you don't have to hide it
|
||||
<strong>Client_Secret</strong>: Never use this in one of your client-side apps!! Keep it secret!
|
||||
<strong>Redirect URIs</strong>: Add "http://localhost", if you want full support for this API</p>
|
||||
</blockquote>
|
||||
<p>Now you can start with the User-authentication, Spotify provides 3 ways:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p><a href="../../SpotifyWebAPI/auth#implicitgrantauth">ImplicitGrantAuth</a> (<strong>Recommended</strong>, no server-side code needed) </p>
|
||||
<p><a href="../../SpotifyWebAPI/auth#implicitgrantauth">ImplicitGrantAuth</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="../../SpotifyWebAPI/auth#autorizationcodeauth">AutorizationCodeAuth</a> (Not Recommended, Server-side code needed, else it's unsecure)</p>
|
||||
<p><a href="../../SpotifyWebAPI/auth#autorizationcodeauth">AutorizationCodeAuth</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="../../SpotifyWebAPI/auth#clientcredentialsauth">ClientCredentialsAuth</a> (Not Recommended, Server-side code needed, else it's unsecure) </p>
|
||||
<p><a href="../../SpotifyWebAPI/auth#clientcredentialsauth">ClientCredentialsAuth</a></p>
|
||||
</li>
|
||||
</ul>
|
||||
<p><strong>Note:</strong> I would recommend a little PHP Script, which will exchange the Keys using AutorizationCodeAuth.
|
||||
When using ImplicitGrantAuth, another user could abuse the "localhost" RedirectUri by creating a "fake"-app which uses your ClientId.</p>
|
||||
<h2 id="notes">Notes</h2>
|
||||
<p>Generally, if you're developing a 100% client-side application, no auth mechanism is totally secure. <code>AutorizationCodeAuth</code> and <code>ClientCredentialsAuth</code> require your clients to know the <code>client_secret</code>, which should be kept secret. For <code>ImplicitGrantAuth</code> to work, <code>http://localhost</code> needs to be added to the redirect uris of your spotify application. Since <code>localhost</code> is not a controlled domain by you, everybody is able to generate API-Keys. However, it is still the best option of all 3.</p>
|
||||
<p>Overview:
|
||||
<img alt="Overview" src="http://i.imgur.com/uf3ahTl.png" /></p>
|
||||
<p>After implementing one of the provided auth-methods, you can start doing requests with the token you get from one of the auth-methods</p>
|
||||
<p>After implementing one of the provided auth-methods, you can start doing requests with the token you get from one of the auth-methods.</p>
|
||||
<h2 id="implicitgrantauth">ImplicitGrantAuth</h2>
|
||||
<p>This way is <strong>recommended</strong> 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.
|
||||
You won't be able to refresh the token. If you want to use the internal Http server, please add "http://localhost" to your application redirects.</p>
|
||||
<p>More info: <a href="https://developer.spotify.com/web-api/authorization-guide/#implicit_grant_flow">here</a></p>
|
||||
<p>For this kind of authentication, there is also a <code>WebAPIFactory</code>, it's easier to use and uses an async method:</p>
|
||||
<pre><code>static async void Main(string[] args)
|
||||
<p>With this approach, you directly get a Token object after the user authed your application.
|
||||
You won't be able to refresh the token. If you want to use the internal Http server, make sure the redirect URI is in your spotify application redirects.</p>
|
||||
<p>More info: <a href="https://developer.spotify.com/documentation/general/guides/authorization-guide/#implicit-grant-flow">here</a></p>
|
||||
<pre><code class="c#">static async void Main(string[] args)
|
||||
{
|
||||
WebAPIFactory webApiFactory = new WebAPIFactory(
|
||||
"http://localhost",
|
||||
8000,
|
||||
"XXXXXXXXXXXXXXXX",
|
||||
Scope.UserReadPrivate,
|
||||
TimeSpan.FromSeconds(20)
|
||||
);
|
||||
|
||||
try
|
||||
{
|
||||
//This will open the user's browser and returns once
|
||||
//the user is authorized.
|
||||
_spotify = await webApiFactory.GetWebApi();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message);
|
||||
}
|
||||
|
||||
if (_spotify == null)
|
||||
return;
|
||||
}
|
||||
</code></pre>
|
||||
|
||||
<p>The old way:</p>
|
||||
<pre><code>static ImplicitGrantAuth auth;
|
||||
static void Main(string[] args)
|
||||
{
|
||||
//Create the auth object
|
||||
auth = new ImplicitGrantAuth()
|
||||
ImplicitGrantAuth auth =
|
||||
new ImplicitGrantAuth(_clientId, "http://localhost:4002", "http://localhost:4002", Scope.UserReadPrivate);
|
||||
auth.AuthReceived += async (sender, payload) =>
|
||||
{
|
||||
//Your client Id
|
||||
ClientId = "XXXXXXXXXXXXXXXX",
|
||||
//Set this to localhost if you want to use the built-in HTTP Server
|
||||
RedirectUri = "http://localhost",
|
||||
//How many permissions we need?
|
||||
Scope = Scope.UserReadPrivate,
|
||||
auth.Stop(); // `sender` is also the auth instance
|
||||
SpotifyWebAPI api = new SpotifyWebAPI() {TokenType = payload.TokenType, AccessToken = payload.AccessToken};
|
||||
// Do requests with API client
|
||||
};
|
||||
//Start the internal http server
|
||||
auth.StartHttpServer();
|
||||
//When we got our response
|
||||
auth.OnResponseReceivedEvent += auth_OnResponseReceivedEvent;
|
||||
//Start
|
||||
auth.DoAuth();
|
||||
}
|
||||
|
||||
static void auth_OnResponseReceivedEvent(Token token, string state, string error)
|
||||
{
|
||||
var spotify = new SpotifyWebApiClass()
|
||||
{
|
||||
TokenType = token.TokenType,
|
||||
AccessToken = token.AccessToken
|
||||
};
|
||||
//We can now make calls with the token object
|
||||
|
||||
//stop the http server
|
||||
auth.StopHttpServer();
|
||||
auth.Start(); // Starts an internal HTTP Server
|
||||
auth.OpenBrowser();
|
||||
}
|
||||
</code></pre>
|
||||
|
||||
<h2 id="autorizationcodeauth">AutorizationCodeAuth</h2>
|
||||
<p>This way is <strong>not recommended</strong> and requires server-side code to run securely.<br />
|
||||
With this approach, you first get a code which you need to trade against the access-token.<br />
|
||||
In this exchange you need to provide your Client-Secret and because of that it's not recommended.<br />
|
||||
(But you can e.g exchange to codes via a PHP Script)<br />
|
||||
<p>This way is <strong>not recommended</strong> and requires server-side code to run securely.
|
||||
With this approach, you first get a code which you need to trade against the access-token.
|
||||
In this exchange you need to provide your Client-Secret and because of that it's not recommended.
|
||||
A good thing about this method: You can always refresh your token, without having the user to auth it again</p>
|
||||
<p>More info: <a href="https://developer.spotify.com/web-api/authorization-guide/#authorization_code_flow">here</a></p>
|
||||
<pre><code>static AutorizationCodeAuth auth;
|
||||
static void Main(string[] args)
|
||||
<p>More info: <a href="https://developer.spotify.com/documentation/general/guides/authorization-guide/#authorization-code-flow">here</a></p>
|
||||
<pre><code class="c#">static async void Main(string[] args)
|
||||
{
|
||||
//Create the auth object
|
||||
auth = new AutorizationCodeAuth()
|
||||
AuthorizationCodeAuth auth =
|
||||
new AuthorizationCodeAuth(_clientId, _secretId, "http://localhost:4002", "http://localhost:4002",
|
||||
Scope.PlaylistReadPrivate | Scope.PlaylistReadCollaborative);
|
||||
auth.AuthReceived += async (sender, payload) =>
|
||||
{
|
||||
//Your client Id
|
||||
ClientId = "XXXXXXXXXXXXXXX",
|
||||
//Set this to localhost if you want to use the built-in HTTP Server
|
||||
RedirectUri = "http://localhost",
|
||||
//How many permissions we need?
|
||||
Scope = Scope.UserReadPrivate,
|
||||
auth.Stop();
|
||||
Token token = await auth.ExchangeCode(payload.Code);
|
||||
SpotifyWebAPI api = new SpotifyWebAPI() {TokenType = token.TokenType, AccessToken = token.AccessToken};
|
||||
// Do requests with API client
|
||||
};
|
||||
//This will be called, if the user cancled/accept the auth-request
|
||||
auth.OnResponseReceivedEvent += auth_OnResponseReceivedEvent;
|
||||
//a local HTTP Server will be started (Needed for the response)
|
||||
auth.StartHttpServer();
|
||||
//This will open the spotify auth-page. The user can decline/accept the request
|
||||
auth.DoAuth();
|
||||
|
||||
Thread.Sleep(60000);
|
||||
auth.StopHttpServer();
|
||||
Console.WriteLine("Too long, didnt respond, exiting now...");
|
||||
}
|
||||
|
||||
private static void auth_OnResponseReceivedEvent(AutorizationCodeAuthResponse response)
|
||||
{
|
||||
|
||||
//NEVER DO THIS! You would need to provide the ClientSecret.
|
||||
//You would need to do it e.g via a PHP-Script.
|
||||
Token token = auth.ExchangeAuthCode(response.Code, "XXXXXXXXXXX");
|
||||
|
||||
var spotify = new SpotifyWebApiClass()
|
||||
{
|
||||
TokenType = token.TokenType,
|
||||
AccessToken = token.AccessToken
|
||||
};
|
||||
|
||||
//With the token object, you can now make API calls
|
||||
|
||||
//Stop the HTTP Server, done.
|
||||
auth.StopHttpServer();
|
||||
auth.Start(); // Starts an internal HTTP Server
|
||||
auth.OpenBrowser();
|
||||
}
|
||||
</code></pre>
|
||||
|
||||
<h2 id="clientcredentialsauth">ClientCredentialsAuth</h2>
|
||||
<p>This way is <strong>not recommended</strong> and requires server-side code to run securely.<br />
|
||||
With this approach, you make a POST Request with a base64 encoded string (consists of ClientId + ClientSecret). You will directly get the token (Without a local HTTP Server), but it will expire and can't be refreshed.<br />
|
||||
If you want to use it securely, you would need to do it all server-side.<br />
|
||||
<p>With this approach, you make a POST Request with a base64 encoded string (consists of ClientId + ClientSecret). You will directly get the token (Without a local HTTP Server), but it will expire and can't be refreshed.
|
||||
If you want to use it securely, you would need to do it all server-side.
|
||||
<strong>NOTE:</strong> You will only be able to query non-user-related information e.g search for a Track.</p>
|
||||
<p>More info: <a href="https://developer.spotify.com/web-api/authorization-guide/#client_credentials_flow">here</a></p>
|
||||
<pre><code>static ClientCredentialsAuth auth;
|
||||
static void Main(string[] args)
|
||||
{
|
||||
//Create the auth object
|
||||
auth = new ClientCredentialsAuth()
|
||||
{
|
||||
//Your client Id
|
||||
ClientId = "XXXXXXXXXXXXXXX",
|
||||
//Your client secret UNSECURE!!
|
||||
ClientSecret = "XXXXXXXXXXXX",
|
||||
//How many permissions we need?
|
||||
Scope = Scope.UserReadPrivate,
|
||||
};
|
||||
//With this token object, we now can make calls
|
||||
Token token = auth.DoAuth();
|
||||
var spotify = new SpotifyWebApiClass()
|
||||
{
|
||||
TokenType = token.TokenType,
|
||||
AccessToken = token.AccessToken,
|
||||
UseAuth = false
|
||||
};
|
||||
}
|
||||
</code></pre>
|
||||
|
||||
<h1 id="scopes">Scopes</h1></div>
|
||||
<p>More info: <a href="https://developer.spotify.com/documentation/general/guides/authorization-guide/#client-credentials-flow">here</a></p>
|
||||
<pre><code class="c#">CredentialsAuth auth = new CredentialsAuth(_clientId, _secretId);
|
||||
Token token = await auth.GetToken();
|
||||
SpotifyWebAPI api = new SpotifyWebAPI() {TokenType = token.TokenType, AccessToken = token.AccessToken};
|
||||
</code></pre></div>
|
||||
</div>
|
||||
|
||||
|
||||
|
@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<li class="dropdown active">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyWebAPI <b class="caret"></b></a>
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyAPI.Web <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
@ -67,10 +67,6 @@
|
||||
<a href="../examples/">Examples</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../auth/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../proxy/">Proxy</a>
|
||||
</li>
|
||||
@ -129,7 +125,7 @@
|
||||
|
||||
|
||||
<li >
|
||||
<a href="../../SpotifyLocalAPI/">SpotifyLocalAPI</a>
|
||||
<a href="../auth/">SpotifyAPI.Web.Auth</a>
|
||||
</li>
|
||||
|
||||
|
||||
@ -191,7 +187,7 @@
|
||||
<blockquote>
|
||||
<p>Get a list of Spotify featured playlists (shown, for example, on a Spotify player’s “Browse” tab).</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -241,7 +237,7 @@ playlists.Playlists.Items.ForEach(playlist => Console.WriteLine(playlist.Name
|
||||
<blockquote>
|
||||
<p>Get a list of new album releases featured in Spotify (shown, for example, on a Spotify player’s “Browse” tab).</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -280,7 +276,7 @@ newAlbums.Albums.Items.ForEach(album => Console.WriteLine(album.Name));
|
||||
<blockquote>
|
||||
<p>Get a list of categories used to tag items in Spotify (on, for example, the Spotify player’s “Browse” tab).</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -324,7 +320,7 @@ categoryList.Categories.Items.ForEach(category => Console.WriteLine(category.
|
||||
<blockquote>
|
||||
<p>Get a single category used to tag items in Spotify (on, for example, the Spotify player’s “Browse” tab).</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -363,7 +359,7 @@ Console.WriteLine(cat.Name);
|
||||
<blockquote>
|
||||
<p>Get a list of Spotify playlists tagged with a particular category.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<li class="dropdown active">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyWebAPI <b class="caret"></b></a>
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyAPI.Web <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
@ -67,10 +67,6 @@
|
||||
<a href="./">Examples</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../auth/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../proxy/">Proxy</a>
|
||||
</li>
|
||||
@ -129,7 +125,7 @@
|
||||
|
||||
|
||||
<li >
|
||||
<a href="../../SpotifyLocalAPI/">SpotifyLocalAPI</a>
|
||||
<a href="../auth/">SpotifyAPI.Web.Auth</a>
|
||||
</li>
|
||||
|
||||
|
||||
@ -144,7 +140,7 @@
|
||||
</a>
|
||||
</li>
|
||||
<li >
|
||||
<a rel="prev" href="../auth/">
|
||||
<a rel="prev" href="../proxy/">
|
||||
Next <i class="fa fa-arrow-right"></i>
|
||||
</a>
|
||||
</li>
|
||||
|
@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<li class="dropdown active">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyWebAPI <b class="caret"></b></a>
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyAPI.Web <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
@ -67,10 +67,6 @@
|
||||
<a href="../examples/">Examples</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../auth/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../proxy/">Proxy</a>
|
||||
</li>
|
||||
@ -129,7 +125,7 @@
|
||||
|
||||
|
||||
<li >
|
||||
<a href="../../SpotifyLocalAPI/">SpotifyLocalAPI</a>
|
||||
<a href="../auth/">SpotifyAPI.Web.Auth</a>
|
||||
</li>
|
||||
|
||||
|
||||
@ -194,7 +190,7 @@
|
||||
<blockquote>
|
||||
<p>Add the current user as a follower of one or more artists or other Spotify users.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -229,7 +225,7 @@ ErrorResponse response = _spotify.Follow(FollowType.User, "1122095781"
|
||||
<blockquote>
|
||||
<p>Remove the current user as a follower of one or more artists or other Spotify users.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -264,7 +260,7 @@ ErrorResponse response = _spotify.Unfollow(FollowType.User, "1122095781&quo
|
||||
<blockquote>
|
||||
<p>Check to see if the current user is following one or more artists or other Spotify users.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -299,7 +295,7 @@ Console.WriteLine(response.List[0] ? "Yis!" : "No :(");
|
||||
<blockquote>
|
||||
<p>Add the current user as a follower of a playlist.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -339,7 +335,7 @@ if(!response.HasError())
|
||||
<blockquote>
|
||||
<p>Remove the current user as a follower of a playlist.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -374,7 +370,7 @@ if(!response.HasError())
|
||||
<blockquote>
|
||||
<p>Check to see if one or more Spotify users are following a specified playlist.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<li class="dropdown active">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyWebAPI <b class="caret"></b></a>
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyAPI.Web <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li class="active">
|
||||
@ -67,10 +67,6 @@
|
||||
<a href="../examples/">Examples</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../auth/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../proxy/">Proxy</a>
|
||||
</li>
|
||||
@ -129,7 +125,7 @@
|
||||
|
||||
|
||||
<li >
|
||||
<a href="../../SpotifyLocalAPI/">SpotifyLocalAPI</a>
|
||||
<a href="../auth/">SpotifyAPI.Web.Auth</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<li class="dropdown active">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyWebAPI <b class="caret"></b></a>
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyAPI.Web <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
@ -67,10 +67,6 @@
|
||||
<a href="../examples/">Examples</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../auth/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../proxy/">Proxy</a>
|
||||
</li>
|
||||
@ -129,7 +125,7 @@
|
||||
|
||||
|
||||
<li >
|
||||
<a href="../../SpotifyLocalAPI/">SpotifyLocalAPI</a>
|
||||
<a href="../auth/">SpotifyAPI.Web.Auth</a>
|
||||
</li>
|
||||
|
||||
|
||||
@ -206,7 +202,7 @@
|
||||
<blockquote>
|
||||
<p>Save one or more tracks to the current user’s “Your Music” library.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -236,7 +232,7 @@ if(!response.HasError())
|
||||
<blockquote>
|
||||
<p>Save one track to the current user’s “Your Music” library.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -266,7 +262,7 @@ if(!response.HasError())
|
||||
<blockquote>
|
||||
<p>Get a list of the songs saved in the current Spotify user’s “Your Music” library.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -305,7 +301,7 @@ savedTracks.Items.ForEach(track => Console.WriteLine(track.Track.Name));
|
||||
<blockquote>
|
||||
<p>Remove one or more tracks from the current user’s “Your Music” library.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -335,7 +331,7 @@ if(!response.HasError())
|
||||
<blockquote>
|
||||
<p>Check if one or more tracks is already saved in the current Spotify user’s “Your Music” library.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -365,7 +361,7 @@ if(tracksSaved.List[0])
|
||||
<blockquote>
|
||||
<p>Save one or more albums to the current user’s “Your Music” library.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -395,7 +391,7 @@ if(!response.HasError())
|
||||
<blockquote>
|
||||
<p>Save one album to the current user’s “Your Music” library.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -425,7 +421,7 @@ if(!response.HasError())
|
||||
<blockquote>
|
||||
<p>Get a list of the albums saved in the current Spotify user’s “Your Music” library.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -464,7 +460,7 @@ savedAlbums.Items.ForEach(album => Console.WriteLine(album.Album.Name));
|
||||
<blockquote>
|
||||
<p>Remove one or more albums from the current user’s “Your Music” library.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -494,7 +490,7 @@ if(!response.HasError())
|
||||
<blockquote>
|
||||
<p>Check if one or more albums is already saved in the current Spotify user’s “Your Music” library.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<li class="dropdown active">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyWebAPI <b class="caret"></b></a>
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyAPI.Web <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
@ -67,10 +67,6 @@
|
||||
<a href="../examples/">Examples</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../auth/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../proxy/">Proxy</a>
|
||||
</li>
|
||||
@ -129,7 +125,7 @@
|
||||
|
||||
|
||||
<li >
|
||||
<a href="../../SpotifyLocalAPI/">SpotifyLocalAPI</a>
|
||||
<a href="../auth/">SpotifyAPI.Web.Auth</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<li class="dropdown active">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyWebAPI <b class="caret"></b></a>
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyAPI.Web <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
@ -67,10 +67,6 @@
|
||||
<a href="../examples/">Examples</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../auth/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../proxy/">Proxy</a>
|
||||
</li>
|
||||
@ -129,7 +125,7 @@
|
||||
|
||||
|
||||
<li >
|
||||
<a href="../../SpotifyLocalAPI/">SpotifyLocalAPI</a>
|
||||
<a href="../auth/">SpotifyAPI.Web.Auth</a>
|
||||
</li>
|
||||
|
||||
|
||||
@ -211,7 +207,7 @@
|
||||
<blockquote>
|
||||
<p>Get information about a user’s available devices.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -238,7 +234,7 @@ devices.Devices.ForEach(device => Console.WriteLine(device.Name));
|
||||
<blockquote>
|
||||
<p>Get information about the user’s current playback state, including track, track progress, and active device.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -266,7 +262,7 @@ if(contex.Item != null)
|
||||
<blockquote>
|
||||
<p>Get the object currently being played on the user’s Spotify account.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -295,7 +291,7 @@ if(contex.Item != null)
|
||||
<blockquote>
|
||||
<p>Transfer playback to a new device and determine if it should start playing.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -326,7 +322,7 @@ if(contex.Item != null)
|
||||
<blockquote>
|
||||
<p>Start a new context or resume current playback on the user’s active device.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -367,7 +363,7 @@ if(contex.Item != null)
|
||||
<blockquote>
|
||||
<p>Pause playback on the user’s account.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -393,7 +389,7 @@ if(contex.Item != null)
|
||||
<blockquote>
|
||||
<p>Skips to next track in the user’s queue.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -421,7 +417,7 @@ if(contex.Item != null)
|
||||
Note that this will ALWAYS skip to the previous track, regardless of the current track’s progress.
|
||||
Returning to the start of the current track should be performed using the https://api.spotify.com/v1/me/player/seek endpoint.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -447,7 +443,7 @@ Returning to the start of the current track should be performed using the https:
|
||||
<blockquote>
|
||||
<p>Seeks to the given position in the user’s currently playing track.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -478,7 +474,7 @@ Returning to the start of the current track should be performed using the https:
|
||||
<blockquote>
|
||||
<p>Set the repeat mode for the user’s playback. Options are repeat-track, repeat-context, and off.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -509,7 +505,7 @@ Returning to the start of the current track should be performed using the https:
|
||||
<blockquote>
|
||||
<p>Set the volume for the user’s current playback device.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -540,7 +536,7 @@ Returning to the start of the current track should be performed using the https:
|
||||
<blockquote>
|
||||
<p>Toggle shuffle on or off for user’s playback.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<li class="dropdown active">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyWebAPI <b class="caret"></b></a>
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyAPI.Web <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
@ -67,10 +67,6 @@
|
||||
<a href="../examples/">Examples</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../auth/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../proxy/">Proxy</a>
|
||||
</li>
|
||||
@ -129,7 +125,7 @@
|
||||
|
||||
|
||||
<li >
|
||||
<a href="../../SpotifyLocalAPI/">SpotifyLocalAPI</a>
|
||||
<a href="../auth/">SpotifyAPI.Web.Auth</a>
|
||||
</li>
|
||||
|
||||
|
||||
@ -209,7 +205,7 @@
|
||||
<blockquote>
|
||||
<p>Get a list of the playlists owned or followed by a Spotify user.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -248,7 +244,7 @@ userPlaylists.Items.ForEach(playlist => playlist.Owner.DisplayName) //Who is
|
||||
<blockquote>
|
||||
<p>Get a playlist owned by a Spotify user.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -292,7 +288,7 @@ playlist.Tracks.Items.ForEach(track => Console.WriteLine(track.Track.Name));
|
||||
<blockquote>
|
||||
<p>Get full details of the tracks of a playlist owned by a Spotify user.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -346,7 +342,7 @@ playlist.Items.ForEach(track => Console.WriteLine(track.Track.Name));
|
||||
<blockquote>
|
||||
<p>Create a playlist for a Spotify user. (The playlist will be empty until you add tracks.)</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -386,7 +382,7 @@ if(!playlist.HasError())
|
||||
<blockquote>
|
||||
<p>Change a playlist’s name and public/private state. (The user must, of course, own the playlist.)</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -431,7 +427,7 @@ if(!response.HasError())
|
||||
<blockquote>
|
||||
<p>Replace all the tracks in a playlist, overwriting its existing tracks. This powerful request can be useful for replacing tracks, re-ordering existing tracks, or clearing the playlist.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -471,7 +467,7 @@ if(!response.HasError())
|
||||
<blockquote>
|
||||
<p>Remove one or more tracks from a user’s playlist.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -520,7 +516,7 @@ ErrorResponse playlist = _spotify.RemovePlaylistTracks("1122095781", &
|
||||
<blockquote>
|
||||
<p>Remove one or more tracks from a user’s playlist.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -561,7 +557,7 @@ ErrorResponse response = _spotify.RemovePlaylistTrack("1122095781", &q
|
||||
<blockquote>
|
||||
<p>Add one or more tracks to a user’s playlist.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -606,7 +602,7 @@ if(!response.HasError())
|
||||
<blockquote>
|
||||
<p>Add one or more tracks to a user’s playlist.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -652,7 +648,7 @@ if(!response.HasError())
|
||||
<p>Reorder a track or a group of tracks in a playlist.
|
||||
More Info: <a href="https://developer.spotify.com/web-api/reorder-playlists-tracks/">Reorder-Playlist</a></p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<li class="dropdown active">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyWebAPI <b class="caret"></b></a>
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyAPI.Web <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
@ -67,10 +67,6 @@
|
||||
<a href="../examples/">Examples</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../auth/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../proxy/">Proxy</a>
|
||||
</li>
|
||||
@ -129,7 +125,7 @@
|
||||
|
||||
|
||||
<li >
|
||||
<a href="../../SpotifyLocalAPI/">SpotifyLocalAPI</a>
|
||||
<a href="../auth/">SpotifyAPI.Web.Auth</a>
|
||||
</li>
|
||||
|
||||
|
||||
@ -182,7 +178,7 @@
|
||||
<blockquote>
|
||||
<p>Get detailed profile information about the current user (including the current user’s username).</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -210,7 +206,7 @@ Console.WriteLine(user.DisplayName);
|
||||
<blockquote>
|
||||
<p>Get public profile information about a Spotify user.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<li class="dropdown active">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyWebAPI <b class="caret"></b></a>
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyAPI.Web <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
@ -67,10 +67,6 @@
|
||||
<a href="../examples/">Examples</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../auth/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="./">Proxy</a>
|
||||
</li>
|
||||
@ -129,7 +125,7 @@
|
||||
|
||||
|
||||
<li >
|
||||
<a href="../../SpotifyLocalAPI/">SpotifyLocalAPI</a>
|
||||
<a href="../auth/">SpotifyAPI.Web.Auth</a>
|
||||
</li>
|
||||
|
||||
|
||||
@ -139,7 +135,7 @@
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
|
||||
<li >
|
||||
<a rel="next" href="../auth/">
|
||||
<a rel="next" href="../examples/">
|
||||
<i class="fa fa-arrow-left"></i> Previous
|
||||
</a>
|
||||
</li>
|
||||
|
@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<li class="dropdown active">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyWebAPI <b class="caret"></b></a>
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyAPI.Web <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
@ -67,10 +67,6 @@
|
||||
<a href="../examples/">Examples</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../auth/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../proxy/">Proxy</a>
|
||||
</li>
|
||||
@ -129,7 +125,7 @@
|
||||
|
||||
|
||||
<li >
|
||||
<a href="../../SpotifyLocalAPI/">SpotifyLocalAPI</a>
|
||||
<a href="../auth/">SpotifyAPI.Web.Auth</a>
|
||||
</li>
|
||||
|
||||
|
||||
@ -178,7 +174,7 @@
|
||||
<blockquote>
|
||||
<p>Get Spotify catalog information about artists, albums, tracks or playlists that match a keyword string.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong></p>
|
||||
<p><strong>Parameters</strong></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<li class="dropdown active">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyWebAPI <b class="caret"></b></a>
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyAPI.Web <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
@ -67,10 +67,6 @@
|
||||
<a href="../examples/">Examples</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../auth/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../proxy/">Proxy</a>
|
||||
</li>
|
||||
@ -129,7 +125,7 @@
|
||||
|
||||
|
||||
<li >
|
||||
<a href="../../SpotifyLocalAPI/">SpotifyLocalAPI</a>
|
||||
<a href="../auth/">SpotifyAPI.Web.Auth</a>
|
||||
</li>
|
||||
|
||||
|
||||
@ -184,7 +180,7 @@
|
||||
<blockquote>
|
||||
<p>Get Spotify catalog information for multiple tracks based on their Spotify IDs.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -217,7 +213,7 @@ severalTracks.Tracks.ForEach(track => Console.WriteLine(track.Name));
|
||||
<blockquote>
|
||||
<p>Get Spotify catalog information for a single track identified by its unique Spotify ID.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -250,7 +246,7 @@ Console.WriteLine(track.Name);
|
||||
<blockquote>
|
||||
<p>Get a detailed audio analysis for a single track identified by its unique Spotify ID.</p>
|
||||
</blockquote>
|
||||
<p><strong>Paramters</strong> </p>
|
||||
<p><strong>Parameters</strong> </p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<li class="dropdown active">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyWebAPI <b class="caret"></b></a>
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyAPI.Web <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
@ -67,10 +67,6 @@
|
||||
<a href="../examples/">Examples</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../auth/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../proxy/">Proxy</a>
|
||||
</li>
|
||||
@ -129,7 +125,7 @@
|
||||
|
||||
|
||||
<li >
|
||||
<a href="../../SpotifyLocalAPI/">SpotifyLocalAPI</a>
|
||||
<a href="../auth/">SpotifyAPI.Web.Auth</a>
|
||||
</li>
|
||||
|
||||
|
||||
@ -144,7 +140,7 @@
|
||||
</a>
|
||||
</li>
|
||||
<li >
|
||||
<a rel="prev" href="../../SpotifyLocalAPI/">
|
||||
<a rel="prev" href="../auth/">
|
||||
Next <i class="fa fa-arrow-right"></i>
|
||||
</a>
|
||||
</li>
|
||||
|
31
index.html
31
index.html
@ -4,7 +4,7 @@
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="API Docs for SpotifyAPI-NET">
|
||||
<meta name="description" content="API Docs for SpotifyAPI.Web and SpotifyAPI.Web.Auth">
|
||||
<meta name="author" content="JohnnyCrazy">
|
||||
|
||||
<link rel="shortcut icon" href="./img/favicon.ico">
|
||||
@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyWebAPI <b class="caret"></b></a>
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">SpotifyAPI.Web <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
@ -67,10 +67,6 @@
|
||||
<a href="SpotifyWebAPI/examples/">Examples</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="SpotifyWebAPI/auth/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="SpotifyWebAPI/proxy/">Proxy</a>
|
||||
</li>
|
||||
@ -129,7 +125,7 @@
|
||||
|
||||
|
||||
<li >
|
||||
<a href="SpotifyLocalAPI/">SpotifyLocalAPI</a>
|
||||
<a href="SpotifyWebAPI/auth/">SpotifyAPI.Web.Auth</a>
|
||||
</li>
|
||||
|
||||
|
||||
@ -182,31 +178,32 @@
|
||||
|
||||
<h1 id="spotifyapi-net-documentation">SpotifyAPI-NET Documentation</h1>
|
||||
<h2 id="about">About</h2>
|
||||
<p>This Library, written in C#/.NET, combines two independent SpotifyAPIs into one.</p>
|
||||
<p>This project, written in C#/.NET, provides 2 libraries for an easier usage of the Spotify Web API</p>
|
||||
<p><strong>Spotify's Web API</strong> (<a href="https://developer.spotify.com/web-api/">link</a>)</p>
|
||||
<blockquote>
|
||||
<p>Based on simple REST principles, our Web API endpoints return metadata in JSON format about artists, albums, and tracks directly from the Spotify catalogue.
|
||||
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.</p>
|
||||
</blockquote>
|
||||
<p><strong>Spotify's <em>unofficial</em> Local API</strong></p>
|
||||
<p><strong>SpotifyAPI.Web</strong></p>
|
||||
<blockquote>
|
||||
<p>Do you ever wanted to control your local Spotify Client with some sort of API? Now you can! This API gives you full control over your spotify client.
|
||||
You can get infos about the currently playing song, get its Album-Art, skip/pause and much more. It also features multiple Event-Interfaces.</p>
|
||||
<p>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.</p>
|
||||
</blockquote>
|
||||
<p><strong>SpotifyAPI.Web.Auth</strong></p>
|
||||
<blockquote>
|
||||
<p>A library providing C# implementations of the 3 supported Authentication modes, including <code>ImplicitGrantAuth</code>, <code>AuthorizationCodeAuth</code> and <code>CredentialsAuth</code></p>
|
||||
</blockquote>
|
||||
<p>Both combined can be used for any kind of application.</p>
|
||||
<hr />
|
||||
<h2 id="installing">Installing</h2>
|
||||
<ul>
|
||||
<li>Via NuGet Package:</li>
|
||||
</ul>
|
||||
<pre><code class="cs">Install-Package SpotifyAPI-NET
|
||||
//or
|
||||
Install-Package SpotifyAPI-NET -pre
|
||||
<pre><code class="cs">Install-Package SpotifyAPI.Web
|
||||
Install-Package SpotifyAPI.Web.Auth
|
||||
</code></pre>
|
||||
|
||||
<ul>
|
||||
<li>Download the latest binaries on the <a href="https://github.com/JohnnyCrazy/SpotifyAPI-NET/releases">GitHub Release Page</a> and add it to your Project</li>
|
||||
<li>Clone the Repo and build the project on your local machine.</li>
|
||||
<li>Clone the Repo and build the project yourself.</li>
|
||||
</ul>
|
||||
<hr />
|
||||
<h2 id="projects">Projects</h2>
|
||||
@ -216,7 +213,7 @@ Install-Package SpotifyAPI-NET -pre
|
||||
</blockquote>
|
||||
<h3 id="toastify-by-aleab"><a href="https://github.com/aleab/toastify">Toastify</a> by <a href="https://github.com/aleab">@aleab</a></h3>
|
||||
<blockquote>
|
||||
<p>Toastify adds global hotkeys and toast notifications to Spotify </p>
|
||||
<p>Toastify adds global hotkeys and toast notifications to Spotify</p>
|
||||
<p><em>Forked from <a href="https://github.com/nachmore/toastify">nachmore/toastify</a></em></p>
|
||||
</blockquote>
|
||||
<h3 id="spotify-oculus-by-captainmorgs"><a href="https://github.com/CaptainMorgs/spotify-oculus-release">Spotify Oculus</a> by <a href="https://github.com/CaptainMorgs">@CaptainMorgs</a></h3>
|
||||
|
File diff suppressed because one or more lines are too long
42
sitemap.xml
42
sitemap.xml
@ -4,7 +4,7 @@
|
||||
|
||||
<url>
|
||||
<loc>/</loc>
|
||||
<lastmod>2018-12-17</lastmod>
|
||||
<lastmod>2018-12-22</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
@ -13,97 +13,91 @@
|
||||
|
||||
<url>
|
||||
<loc>/SpotifyWebAPI/gettingstarted/</loc>
|
||||
<lastmod>2018-12-17</lastmod>
|
||||
<lastmod>2018-12-22</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/SpotifyWebAPI/examples/</loc>
|
||||
<lastmod>2018-12-17</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/SpotifyWebAPI/auth/</loc>
|
||||
<lastmod>2018-12-17</lastmod>
|
||||
<lastmod>2018-12-22</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/SpotifyWebAPI/proxy/</loc>
|
||||
<lastmod>2018-12-17</lastmod>
|
||||
<lastmod>2018-12-22</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/SpotifyWebAPI/albums/</loc>
|
||||
<lastmod>2018-12-17</lastmod>
|
||||
<lastmod>2018-12-22</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/SpotifyWebAPI/artists/</loc>
|
||||
<lastmod>2018-12-17</lastmod>
|
||||
<lastmod>2018-12-22</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/SpotifyWebAPI/browse/</loc>
|
||||
<lastmod>2018-12-17</lastmod>
|
||||
<lastmod>2018-12-22</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/SpotifyWebAPI/follow/</loc>
|
||||
<lastmod>2018-12-17</lastmod>
|
||||
<lastmod>2018-12-22</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/SpotifyWebAPI/library/</loc>
|
||||
<lastmod>2018-12-17</lastmod>
|
||||
<lastmod>2018-12-22</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/SpotifyWebAPI/personalization/</loc>
|
||||
<lastmod>2018-12-17</lastmod>
|
||||
<lastmod>2018-12-22</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/SpotifyWebAPI/player/</loc>
|
||||
<lastmod>2018-12-17</lastmod>
|
||||
<lastmod>2018-12-22</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/SpotifyWebAPI/playlists/</loc>
|
||||
<lastmod>2018-12-17</lastmod>
|
||||
<lastmod>2018-12-22</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/SpotifyWebAPI/profiles/</loc>
|
||||
<lastmod>2018-12-17</lastmod>
|
||||
<lastmod>2018-12-22</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/SpotifyWebAPI/search/</loc>
|
||||
<lastmod>2018-12-17</lastmod>
|
||||
<lastmod>2018-12-22</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/SpotifyWebAPI/tracks/</loc>
|
||||
<lastmod>2018-12-17</lastmod>
|
||||
<lastmod>2018-12-22</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/SpotifyWebAPI/util/</loc>
|
||||
<lastmod>2018-12-17</lastmod>
|
||||
<lastmod>2018-12-22</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
@ -111,8 +105,8 @@
|
||||
|
||||
|
||||
<url>
|
||||
<loc>/SpotifyLocalAPI/</loc>
|
||||
<lastmod>2018-12-17</lastmod>
|
||||
<loc>/SpotifyWebAPI/auth/</loc>
|
||||
<lastmod>2018-12-22</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user