spotify-playback-sdk
An inofficial NodeJS Wrapper for the Spotify Web Playback SDK
This package is an improved version of flam3rboy's package
Installation
npm i spotify-playback-sdk
# or "yarn add spotify-playback-sdk"
Usage
ES5 import
require("spotify-playback-sdk");
or ES6 import
import "spotify-playback-sdk";
Example
const { SpotifyPlaybackSDK } = require("spotify-playback-sdk-node");
async function test() {
const spotify = new SpotifyPlaybackSDK();
await spotify.init({ });
const player = await spotify.createPlayer({
name: "Web",
getOAuthToken() {
return "";
},
});
player.on("player_state_changed", console.log);
const stream = await player.getAudio();
const connected = await player.connect();
if (!connected) throw "couldn't connect";
console.log("connected", stream);
}
test();
Reference
class SpotifyPlaybackSDK {
browser: Browser;
constructor();
init(opts?: LaunchOptions): Promise<this>;
createPlayer(opts: PlayerOptions) : Promise<SpotifyPlayer>;
destroy() : Promise<void>;
}
type PlayerOptions = {
name: string;
volume?: number;
getOAuthToken: () => string | Promise<string>;
};
class SpotifyPlayer extends EventEmitter {
page: Page;
opts: PlayerOptions;
constructor
getAudio() : Promise<import("puppeteer-stream").Stream>;
connect() : Promise<boolean>;
disconnect() : Promise<void>;
getCurrentState(): Promise<WebPlaybackState>;
getVolume() : Promise<number>;
pause() : Promise<void>;
resume() : Promise<void>;
togglePlay() : Promise<void>;
previousTrack() : Promise<void>;
nextTrack() : Promise<void>;
setName(name: string) : Promise<void>;
setVolume(volume: string): Promise<void>;
seek(position_ms: number): Promise<void>;
on(event: "ready", listener: (opts: WebPlaybackPlayer) => any): this;
on(event: "not_ready", listener: (opts: WebPlaybackPlayer) => any): this;
on(event: "player_state_changed", listener: (opts: WebPlaybackState) => any) : this;
on(event: "initialization_error", listener: (opts: WebPlaybackError) => any) : this;
on(event: "authentication_error", listener: (opts: WebPlaybackError) => any) : this;
on(event: "account_error", listener: (opts: WebPlaybackError) => any) : this;
on(event: "playback_error", listener: (opts: WebPlaybackError) => any) : this;
on(event: string, listener: Function) : this;
}