cody-music
Player control support
- Mac Spotify and iTunes desktop
- Spotify Web
Spotify web API support
- Audio features
- Playlists
- Genre search
iTunes API support
More coming soon
Installation
$ npm install cody-music
Running unit tests
$ npm test
Load the module
import * as CodyMusic from "cody-music";
OR
const CodyMusic = require("cody-music");
API
playTrack(uri)
Play a track with Music URI uri
.
Specify either "Spotify" or "iTunes" (case-insensitive).
await CodyMusic.getRunningTrack().then((track: Track) => {
});
await CodyMusic.playTrack(
"Spotify",
"spotify:track:2YarjDYjBJuH63dUIh9OWv"
).then(result => {
});
await CodyMusic.playTrack("iTunes", 1).then(result => {
});
await CodyMusic.playTrack("iTunes", 1000000000).then(result => {
if (result.error) {
console.log(`Unable to play track, error: ${result.error}`);
}
});
Full set of APIs
setCredentials(credentials: any)
getAccessToken()
isSpotifyRunning(): Promise<boolean>
isItunesRunning(): Promise<boolean>
isPlayerRunning(player: PlayerName): Promise<boolean>
hasActiveTrack(): Promise<boolean>
getTrack(player: PlayerName): Promise<Track>
getRunningTrack(): Promise<Track>
getTracksByPlaylistName(player: PlayerName, playListName: string)
playTrackInContext(player: PlayerName, params: any[])
playSpotifyDevice(device_id: string)
play(player: PlayerName, options: any = {})
playTrack(player: PlayerName, trackId: string)
pause(player: PlayerName, options: any = {})
playPause(player: PlayerName)
next(player: PlayerName, options: any = {})
previous(player: PlayerName, options: any = {})
setRepeat(player: PlayerName, repeat: boolean)
setShuffle(player: PlayerName, shuffle: boolean)
isShuffling(player: PlayerName)
isRepeating(player: PlayerName)
setVolume(player: PlayerName, volume: number)
volumeUp(player: PlayerName, volume: number)
volumeDown(player: PlayerName, volume: number)
mute(player: PlayerName)
unmute(player: PlayerName)
setItunesLoved(loved: boolean)
getPlaylistNames(player: PlayerName):Promise<string[]>
launchPlayer(playerName: PlayerName, options: any = {})
getSpotifyDevices(): Promise<PlayerDevice[]>
getGenre(artist: string, songName: string = ""): Promise<string>
getSpotifyGenre(artist: string): Promise<string>
getSpotifyAudioFeatures(ids: string[]): Promise<SpotifyAudioFeature[]>
createPlaylist(name: string, isPublic: boolean)
deletePlaylist(playlist_id: string)
replacePlaylistTracks(
playlist_id: string,
track_ids: string[]
)
addTracksToPlaylist(
playlist_id: string,
tracks: string[],
position: number = 0
)
removeTracksFromPlaylist(
playlist_id: string,
tracks: string[]
)
getCurrentlyRunningTrackState(): Promise<Track>
getPlayerState(player: PlayerName): Promise<Track>
getState(player: PlayerName): Promise<Track>
startSpotifyIfNotRunning()
startItunesIfNotRunning()
isRunning(player: PlayerName): Promise<boolean>
repeatOn(player: PlayerName)
repeatOff(player: PlayerName)
unMute(player: PlayerName)
Contributors
License