Skip to content

Version 0.0.1a5

Released December 19th, 2025

Added

  • Result returned from all AudioPlayer methods, making it easy to implement further functionality.
  • New is_playing property in AudioPlayer.
  • Further global type checking to ensure proper data is being passed.
  • New VoiceClient.move method to move channels easily.
  • FileAudioSource raises FileNotFoundError if the provided filepath doesn't exist.

Changed

  • Refactored file locations for further readability and organization.

Fixed

  • Made VoiceGateway and VoiceServer connection methods idempotent, just in case they are re-called.
  • Added guards on many methods to ensure object states are consistent and compliant.
  • FFmpeg encoder/decoder is now localized to each VoiceConnection/AudioPlayer, allowing multiple voice connections with playback.

Removed

  • Convenience methods under VoiceConnection like play, pause, etc. in favor of clarity with player access.

Version 0.0.1a4

Released December 19th, 2025

Added

  • New AudioSources:
    1. BufferAudioSource: Allows bytes-like objects to be encoded directly.
    2. URLAudioSource: Allows the encoding of audio hosted at an endpoint on the web.
  • __slots__ to all objects for memory efficiency.
  • Implemented Discord's Audio/Video End-to-End Encryption protocol (DAVE) opcodes and miscelleanous logic to prepare for transition - required by March 1st, 2026.
  • Support for aead_aes256_gcm_rtpsize encryption - automatically searches for best encryption mode supported.

Changed

  • AudioSource implementations no longer require read or stream methods.
  • Subsequently, FileAudioSource no longer requires aiofiles as a dependency; removed from project.
  • Network objects (VoiceServer, VoiceGateway) moved to networking subfolder.

Fixed

  • FileAudioSource using incorrect, public filepath for internal checks rather than private attribute.
  • VoiceGateway internal gateway latency calculation not returning due to reference bug.

Removed

  • VoiceConnection add_queue_file, remove_queue_file, and play_file removed in favor of generic add_queue, remove_queue, and play.

Version 0.0.1a3

Released December 17th, 2025

Added

  • AudioPlayer.shuffle() method to shuffle the queue, as well as a corresponding VoiceConnection.shuffle() for convenience.

Changes

  • Clamped dependency versions for compatibility (Thanks @vicky5124 for reporting this issue).
  • Switched audio dependency from opuslib to be fully FFmpeg-dependent; minor lag improvement (Thanks @vicky5124 for recommending).
  • Refactored internal client cache for slightly better lookup performance and readability.

Fixed

  • VoiceReconnectEvent constructor docstring return type fixed from VoicePopulatedEvent.
  • MemberJoinVoiceEvent, MemberLeaveVoiceEvent, MemberLeaveVoiceEvent, MemberDeafEvent, and MemberMuteEvent now dispatch regardless if the bot is in the channel with them.

Removed

  • VoiceActiveEvent, VoiceInactiveEvent, VoicePopulatedEvent and VoiceEmptyEvent as they were redundant of logic from other events.

Version 0.0.1a2

Released December 17th, 2025

Added

  • VoiceConnection.play method for completeness.
  • New AudioBeginEvent and AudioEndEvent.
  • New audio queue system:
    1. Player:
      • previous, next to scan forward and backward in the queue/history.
      • add_queue to add sources to the queue.
      • remove_queue, clear_queue to remove/clear sources from the queue.
      • queue property to view the queue, history property to view history.
    2. VoiceConnection (for convenience):
      • Corresponding previous, next.
      • Corresponding add_queue and additional add_queue_file.
      • Corresponding remove_queue, clear_queue and additional remove_queue_file.

Fixed

  • Made all object attributes private, with public attributes made as properties.

Version 0.0.1a1

Released December 16th, 2025

Original alpha release.