Discord Audio, Reimagined
ZiPlayer Logo

Next Level
Discord Audio

Modular Discord voice player with powerful plugin system, voice commands, TTS integration, Lavalink support and many other advanced features.

100%
TypeScript
4+
Plugins
3+
Extensions
Possibilities
1import { PlayerManager } from "ziplayer";
2import { SoundCloudPlugin, YouTubePlugin, SpotifyPlugin, TTSPlugin } from "@ziplayer/plugin";
3import { voiceExt, lavalinkExt } from "@ziplayer/extension";
4
5const manager = new PlayerManager({
6  plugins: [
7    new TTSPlugin({ defaultLang: "en" }),
8    new YouTubePlugin(),
9    new SoundCloudPlugin(),
10    new SpotifyPlugin()
11  ],
12  extensions: [
13    new voiceExt(null, { lang: "en-US" }),
14    new lavalinkExt(null, { nodes: [...] })
15  ]
16});
17
18const player = await manager.create(guildId, {
19  tts: { interrupt: true, volume: 1 },
20  leaveOnEnd: true,
21  leaveTimeout: 30000,
22});
23
24await player.connect(voiceChannel);
25await player.play("Never Gonna Give You Up", userId);
26await player.play("tts: Hello everyone!", userId);

Why choose ZiPlayer?

ZiPlayer is designed to deliver the best Discord music experience with cutting-edge technology and user-friendly interface.

Plugin System

Powerful plugin system with YouTube, SoundCloud, Spotify, TTS and easy custom plugin creation.

High Performance

Optimized for high performance with TypeScript, multi-guild support and handling thousands of concurrent requests.

Rich Controls

Rich queue controls with auto-play, shuffle, repeat, volume control and many other advanced features.

Production Ready

Production ready with error handling, logging, monitoring and top-tier security features.

Developer Friendly

Simple API, detailed documentation, TypeScript support and active community support.

Multi-Guild Support

Multi-guild support with separate player management for each server, no data conflicts.

Audio Quality

High audio quality with multiple format support, optimized bitrate and professional audio processing.

Analytics & Monitoring

Performance tracking, usage statistics and real-time monitoring to optimize user experience.

Voice Commands

Control bot with voice using Speech-to-Text, multi-language support and accurate recognition.

Lavalink Support

Lavalink server support with automatic node management, load balancing and high scalability.

TTS Integration

Text-to-Speech integration with interrupt mode, play notifications without interrupting music.

Lyrics Display

Automatic lyrics search and display, multiple provider support and LRC format.

Advanced Audio

Advanced audio processing with multiple source support, automatic fallback and quality optimization.

Modular Architecture

Modular architecture with extension system, easy to extend and customize according to needs.

Ready to get started?

Explore detailed documentation and start building your Discord bot today.

Advanced Features

Discover powerful features that make ZiPlayer the most complete Discord audio solution.

Voice Commands

Control bot with voice using Speech-to-Text, multi-language support and accurate recognition.

// Voice extension with Google Speech API
const voiceExt = new voiceExt(null, {
  lang: "en-US",
  minimalVoiceMessageDuration: 1,
  postSilenceDelayMs: 2000,
});

// Listen to voice commands
manager.on("voiceCreate", (player, evt) => {
  console.log(`User ${evt.userId} said: ${evt.content}`);
});

Lavalink Support

Lavalink server support with automatic node management, load balancing and high scalability.

// Lavalink extension with node management
const lavalink = new lavalinkExt(null, {
  nodes: [{
    identifier: "main",
    password: "youshallnotpass",
    host: "localhost",
    port: 2333,
    secure: false,
  }],
  client: client,
  searchPrefix: "scsearch",
});

TTS Integration

Text-to-Speech integration with interrupt mode, play notifications without interrupting music.

// TTS with interrupt mode
const player = await manager.create(guildId, {
  tts: {
    createPlayer: true,
    interrupt: true,
    volume: 1,
  },
});

// Play TTS without interrupting music
await player.play("tts: Hello everyone!", userId);

Lyrics Display

Automatic lyrics search and display, multiple provider support and LRC format.

// Lyrics extension
const lyricsExt = new lyricsExt(null, {
  provider: "lrclib",
  includeSynced: true,
  autoFetchOnTrackStart: true,
});

// Get lyrics
const lyrics = await lyricsExt.getLyrics(track);
console.log(lyrics.text);

Modular Architecture

Modular architecture with extension system, easy to extend and customize according to needs.

// Create custom extension
class MyExtension extends BaseExtension {
  name = "myExtension";
  version = "1.0.0";
  
  async onRegister(context) {
    // Initialization logic
  }
  
  async beforePlay(request) {
    // Pre-play processing
  }
}

High Performance

Performance optimized with TypeScript, multi-guild support and handling thousands of concurrent requests.

// Manage multiple guilds
const players = new Map();

guilds.forEach(guild => {
  const player = manager.create(guild.id, {
    leaveOnEnd: true,
    leaveTimeout: 30000,
  });
  players.set(guild.id, player);
});

Ready to explore?

Start building your Discord bot with advanced features today.

Plugins & Extensions

Discover our powerful collection of plugins and extensions, ready to use or customize according to your needs.

Plugins

YouTube Plugin

Support for YouTube videos and playlists with high quality streaming.

Video & Playlist
High Quality
Search Support
new YouTubePlugin()

SoundCloud Plugin

Play music from SoundCloud with support for tracks and sets.

Tracks & Sets
Direct Streaming
Metadata Rich
new SoundCloudPlugin()

Spotify Plugin

Resolve metadata from Spotify and fallback to other sources.

Metadata Resolution
Playlist Support
Fallback System
new SpotifyPlugin()

TTS Plugin

Text-to-Speech with Google TTS and multi-language support.

Multi-language
Interrupt Mode
Custom Voices
new TTSPlugin({ defaultLang: "en" })

Extensions

Voice Extension

Speech-to-Text with Google Speech API, voice commands support.

Speech-to-Text
Voice Commands
Multi-language
new voiceExt(null, { lang: "en-US" })

Lavalink Extension

Lavalink server management with load balancing and auto-reconnect.

Node Management
Load Balancing
Auto-reconnect
new lavalinkExt(null, { nodes: [...] })

Lyrics Extension

Search and display lyrics from multiple providers.

Multiple Providers
LRC Support
Auto-fetch
new lyricsExt(null, { provider: "lrclib" })

Create Custom Plugin

Can't find the right plugin? Create your own custom plugin with our simple API.

Voice & Audio

Advanced voice and audio experience with AI features and real-time processing.

Speech-to-Text

Convert speech to text with high accuracy

  • Multi-language support (en-US, vi-VN, ja-JP, ...)
  • Google Speech API v2 integration
  • Automatic detection when user stops speaking
  • Filter bot users and focus on specific users
  • Configurable silence delay and duration
Voice Features
// Voice extension setup
const voiceExt = new voiceExt(null, {
  lang: "en-US",
  minimalVoiceMessageDuration: 1,
  postSilenceDelayMs: 2000,
  ignoreBots: true,
  profanityFilter: false,
});

// Listen to voice events
manager.on("voiceCreate", (player, evt) => {
  console.log(`User ${evt.userId} said: ${evt.content}`);
  // Process voice command here
});

Text-to-Speech

Convert text to speech with high quality

  • Google TTS integration with multiple voices
  • Interrupt mode - doesn't interrupt music
  • Multi-language and speech rate support
  • Custom TTS provider support
  • Separate volume control for TTS
Voice Features
// TTS setup with interrupt mode
const player = await manager.create(guildId, {
  tts: {
    createPlayer: true,
    interrupt: true,
    volume: 1,
  },
});

// Play TTS
await player.play("tts: Hello everyone!", userId);
await player.play("tts:en:1:Have a great day everyone!", userId);

// TTS events
manager.on("ttsStart", (plr, { track }) => {
  console.log("TTS started:", track?.title);
});
manager.on("ttsEnd", (plr) => {
  console.log("TTS ended, resuming music");
});

Voice Commands

Control bot with natural voice commands

  • Automatic voice command processing
  • Integration with player controls
  • Custom command recognition
  • Multi-language command support
  • Context-aware responses
Voice Features
// Voice command handler
manager.on("voiceCreate", (player, evt) => {
  const command = evt.content.toLowerCase();
  
  switch (command) {
    case "play":
      // Resume music
      player.resume();
      break;
    case "pause":
      // Pause music
      player.pause();
      break;
    case "skip":
      // Skip current track
      player.skip();
      break;
    case "volume up":
      // Increase volume
      player.setVolume(Math.min(player.volume + 0.1, 2));
      break;
    case "volume down":
      // Decrease volume
      player.setVolume(Math.max(player.volume - 0.1, 0));
      break;
  }
});

Audio Processing

Advanced Audio Processing

Advanced audio processing with multiple options

  • Volume control 0-200%
  • Audio quality optimization
  • Multiple format support
  • Stream processing
  • Error handling & recovery

Lavalink Integration

Lavalink integration for high performance

  • Automatic node management
  • Load balancing
  • Auto-reconnect
  • Performance monitoring
  • Scalable architecture

Real-time Processing

Real-time processing with low latency

  • Low-latency audio
  • Real-time voice processing
  • Instant command response
  • Optimized performance
  • Memory efficient

Get Started with Voice Features

Explore detailed documentation about voice commands, TTS and audio processing.