An extensible playlist module designed to make playlist management easy and powerful.
Assume cassette
is imported like so:
const cassette = require('cassette');
- Create a playlist. That's what we're here for, after all.
const playlist = new cassette.Playlist();
- Create some services. Cassette ships with several, but you can always make your own by implementing
IService
.
const ytService = new cassette.YouTubeService('your api key');
- Add some stuff to this new playlist.
playlist.add('some awesome song', [ytService]);
- Profit.
-
constructor(client: Client)
-
loop:
boolean
whether to loop the playlist at extremeties -
autoplay:
boolean
whether to use the last song to find the next song when at the end of the playlist -
pos:
number
(readonly) the current 0-based position of the playlist -
current:
Song?
(readonly) the current -
reset():
void
reset the playlist's songs and position -
hasPrev():
boolean
whether the playlist is not at the first position -
prev():
boolean
advance the playlist backwards and return whether it was successful -
hasNext():
boolean
whether the playlist is not at the last position -
next():
Promise<boolean>
advance the playlist and return whether it was successful -
shuffle():
void
shuffle the playlist -
add(content: string, services: IService[], options: { position?: number, searchType?: 'song' | 'playlist' }):
Promise<Song[]>
add content to the playlist
-
constructor(service: IService)
-
service:
IService
(readonly) the service that loaded this song -
type:
string
(abstract, readonly) the type of the song, based on the service -
title:
string
(abstract, readonly) the title of the song -
trackID:
string | number
(abstract, readonly) the ID of the song, relative to the service -
playlistID?:
string | number
(abstract, readonly) the ID of the playlist this song came from, if any, relative to the service -
streamURL:
string
(abstract, readonly) the URL to stream audio from