Spotify

Deno wrapper for the Spotify API. EARLY STAGE.

Usage

Import the module and initialise the Client class.

import { Client } from "https://github.com/hum/spotify/raw/main/mod.ts";

const spotify = new Client({
  accessToken: "your_token",
});

Make calls to the API

// Get an artist
const artist = await spotify.getArtist("joji");
console.log(artist.name, artist.genres, artist.id);

// Get artist's albums
const albums = await artist.getAlbums({ 
  market: "US",
});

for (const album of albums) {
  console.log(album.name, album.releaseDate);
}

// Albums can be fetched even without an artist
const album = await spotify.getAlbum("Nectar");

for (const track of album.tracks) {
  console.log(`${album.artists[0].name} - ${track.name}`);
}

CURRENT API COVERAGE: 71%

  • Albums API
  • Artists API
  • Browse API
  • Episodes API
  • Follow API
  • Library API
    • Get User's Saved Albums
    • Save Albums for Current User
    • Remove Albums for Current User
    • Check User's Saved Albums
    • Get User's Saved Tracks
    • Save Tracks for User
    • Remove User's Saved Tracks
    • Check User's Saved Tracks
    • Get User's Saved Episodes
    • Save Episodes for User
    • Remove User's Saved Episodes
    • Check User's Saved Episodes
    • Get User's Saved Shows
    • Save Shows for Current User
    • Remove User's Saved Shows
    • Check User's Saved Shows
  • Markets API
  • Personalization API
  • Player API
  • Playlists API
    • Get a List of Current User's Playlists
    • Get a List of a User's Playlists
    • Create a Playlist
    • Get a Playlist
    • Change a Playlist's Details
    • Get a Playlist's Items
    • Add Items to a Playlist
    • Reorder or Replace a Playlist's Items
    • Remove Items from a Playlist
    • Get a Playlist Cover Image
    • Upload a Custom Playlist Cover Image
  • Search API
  • Shows API
  • Tracks API
  • User Profile API

More usage in /examples -- TODO

Develop

To run tests locally all you need to do is export "spotify_access_token" to your env.

export spotify_access_token="Bearer [token]"

To get this token you can follow the OAuth flow in oauth.ts

deno run --unstable oauth.ts

Once you set your tokens in ENV, you can run the tests with:

deno test -A --unstable

Docs

🌱 TBD