Skip to content
This repository has been archived by the owner on Jun 1, 2024. It is now read-only.
/ deezer Public archive

A DisTube custom plugin for supporting Deezer.

License

Notifications You must be signed in to change notification settings

distubejs/deezer

Repository files navigation

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

npm install @distube/deezer@latest

Usage

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

new DeezerPlugin({
  parallel: true,
  emitEventsAfterFetching: false,
});
Use SoundCloudPlugin to search instead of YouTube
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],
});