An extensible playlist system.

Downloads in past


903.0.35 years ago8 years agoMinified + gzip package size for cassette in KB


Build Status An extensible playlist module designed to make playlist management easy and powerful.

How to use

Assume cassette is imported like so: ```js const cassette = require('cassette'); ```
  1. Create a playlist. That's what we're here for, after all.
```js const playlist = new cassette.Playlist(); ```
  1. Create some services. Cassette ships with several, but you can always make your own by implementing IService.
```js const ytService = new cassette.YouTubeService('your api key'); ```
  1. Add some stuff to this new playlist.
```js playlist.add('some awesome song', ytService); ```
  1. Profit.


Playlist extends Array

  • 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