Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/distubejs/deezer

A DisTube custom plugin for supporting Deezer.
https://github.com/distubejs/deezer

Last synced: about 1 month ago
JSON representation

A DisTube custom plugin for supporting Deezer.

Awesome Lists containing this project

README

        






npm peer dependency version
npm
GitHub Repo stars
Discord



Buy Me a Coffee at ko-fi.com


# @distube/deezer

A DisTube custom plugin for supporting Deezer URL.

## Feature

This plugin grabs the songs on Deezer then searches on YouTube and plays with DisTube.

## Installation

```sh
npm install @distube/deezer@latest
```

## Usage

```js
const Discord = require("discord.js");
const client = new Discord.Client();

const { DisTube } = require("distube");
const { DeezerPlugin } = require("@distube/deezer");
const distube = new DisTube(client, {
plugins: [new DeezerPlugin()],
});
```

## Documentation

### DeezerPlugin([DeezerPluginOptions])

- `DeezerPluginOptions.parallel`: Default is `true`. Whether or not searching the playlist in parallel.
- `DeezerPluginOptions.emitEventsAfterFetching`: Default is `false`. Emits `addList` and `playSong` event before or after fetching all the songs.
> If `false`, DisTube plays the first song -> emits `addList` and `playSong` events -> fetches all the rest\
> If `true`, DisTube plays the first song -> fetches all the rest -> emits `addList` and `playSong` events

#### Example

```js
new DeezerPlugin({
parallel: true,
emitEventsAfterFetching: false,
});
```

##### Use SoundCloudPlugin to search instead of YouTube

```ts
import { DisTube } from "distube";
import { DeezerPlugin } from "@distube/deezer";
import { SoundCloudPlugin } from "@distube/soundcloud";

const scPlugin = new SoundCloudPlugin();

class NewDeezerPlugin extends DeezerPlugin {
override async search(query: string, metadata: any) {
try {
return new Song((await scPlugin.search(query, { limit: 1 }))[0], { metadata });
} catch {
return null;
}
}
}

const distube = new DisTube(client, {
plugins: [new NewDeezerPlugin(), scPlugin],
});
```