Discord Player
Migrate from v7

Migration checklist

Verify the upgrade on a test server before you move production bots to v8.

You are reading the v8 docsDev

Work through this list on a small test server with a few known audio sources.

Runtime and voice

  • The bot starts on Node.js 22.18 or newer with ESM.
  • The embedded host loads FFmpeg 9 and @remedia/node, or the remote server loads FFmpeg 9 and starts.
  • initialize(botUserId) finishes after the bot is ready.
  • Every raw gateway packet reaches player.receive().
  • The bot joins and leaves voice channels.
  • Moving channels keeps the queue and its settings.
  • Self-deaf and self-mute change while connected.
  • A reconnect or region change does not fire a false playerFinish.
  • Five guilds joining at once connect independently.
  • Your bot and the server use the same Remedia release.

Sources and plugins

  • A valid query matches the plugin you expect.
  • An unsupported query returns an empty result or a handled error.
  • Track metadata and audio resolve separately.
  • Direct URLs are reachable from the node that plays them.
  • Each kept legacy extractor still works.
  • Removing a plugin finishes without hanging.

Queue and controls

  • Two tracks play in order.
  • Pause, resume, and volume work.
  • Seek works where the source supports it, and fails cleanly where it does not.
  • Skip advances once and fires one playerSkip.
  • Stop keeps upcoming tracks and leaves history unchanged.
  • Repeat and shuffle behave as you intend.
  • A finished or failed track does not advance the queue twice.
  • Changing filters keeps the voice session.

Data and release

  • New tracks and playlists save and restore.
  • Sample v7 records convert, or land in quarantine.
  • Restored tracks resolve with your plugins.
  • Logs and metrics contain no tokens or signed URLs.
  • You can roll back your commands and your stored data.

Roll out

Start with one test guild. Log queue events and compare the expected order with what plays. Move more guilds once the checks pass.

For later work, use the API reference, source plugins, and error guide.

Continue reading

Browse the API reference

On this page