Skip to main content

Voice module for `hikari`-based Discord bots

Project description

hikari-wave

Voice module for hikari-based Discord bots

  • Latest Version 0.0.1a3
  • Supports Python 3.10+

Documentation Status

What is hikari-wave?

hikari-wave is a standalone module for hikari (an asynchronous Discord API for building bots) that allows developers to easily manipulate voice-related systems and logic. Much like discord.py, hikari-wave implements a custom communication layer to communicate with Discord on the backend, while most other hikari-based bots use Lavalink as a backend, which requires a separate install.

What are hikari-wave's features?

  • Doesn't require third-party installs besides FFmpeg.
  • Easy to use, asynchronous API
  • Heavily type-hinted and type-safe
  • Supplemental events for further development ease and QoL

How do I use hikari-wave?

  • Install hikari-wave via PyPI: pip install hikari-wave
  • Import it into your program using import hikariwave
  • Verify FFmpeg is installed and discoverable in your system's PATH.

Documentation

You can find our documentation here.

Getting Started

You need a basic hikari bot set up, like below:

import hikari

bot: hikari.GatewayBot = hikari.GatewayBot(TOKEN_HERE)
bot.run()

This won't do anything besides sit and look pretty. The following will make the bot connect/disconnect if a user joins/leaves a voice channel:

# imports and bot/client definition

@bot.listen(hikariwave.MemberJoinVoiceEvent)
async def member_joined_voice(event: hikariwave.MemberJoinVoiceEvent) -> None:
    await voice.connect(event.guild_id, event.channel_id)

@bot.listen(hikariwave.MemberLeaveVoiceEvent)
async def member_left_voice(event: hikariwave.MemberLeaveVoiceEvent) -> None:
    await voice.disconnect(guild_id=event.guild_id)
    # OR - can work for either guild or channel, for convenience
    await voice.disconnect(channel_id=event.channel_id)

bot.run()

To make this play audio, get the connection and then play:

@bot.listen(hikariwave.MemberJoinVoiceEvent)
async def member_joined_voice(event: hikariwave.MemberJoinVoiceEvent) -> None:
    connection: hikariwave.VoiceConnection = await voice.connect(event.guild_id, event.channel_id)
    await connection.play_file("test.mp3")

Super easy and convenient!

Implemented Steps

  • Connect/Disconnect logic
  • Playing audio
  • Move/Reconnect/Resume logic
  • Supplemental events
  • Audio types: files, URLs, etc.
    1. Files
    2. Web (URLs)
    3. YouTube
    4. Others (SoundCloud, buffers, etc.)
  • Player QoL (queue, shuffle, prev/next, etc.)
  • DAVE (Discord Audio/Video End-to-End Encryption)

Reporting Bugs

  • If you find a bug or issue, please open an issue on the Issues page above.
  • Be sure to provide detailed information to help us understand and reproduce the problem.

Feature Requests

  • We welcome suggestions for new features.
  • If you have an idea, please open an issue on the Issues page above to discuss it first.
  • This ensures that we're all on the same page and helps us prioritize improvements.

Thanks for Contributing

Your contributions make this project better and more useful for everyone! Thank you for taking the time to improve this project!

License

This project is licensed under the MIT License. Copyright © 2025 WilDev Studios. All rights reserved.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hikari_wave-0.0.1a3.tar.gz (20.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hikari_wave-0.0.1a3-py3-none-any.whl (25.2 kB view details)

Uploaded Python 3

File details

Details for the file hikari_wave-0.0.1a3.tar.gz.

File metadata

  • Download URL: hikari_wave-0.0.1a3.tar.gz
  • Upload date:
  • Size: 20.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for hikari_wave-0.0.1a3.tar.gz
Algorithm Hash digest
SHA256 159c36a9d3322869ba234ee49d2ea145038b283b644dd98331832999e5bdb6c6
MD5 766f54f32a4d2494a9158db671935381
BLAKE2b-256 eb37d956c345c27154e32b1e2c7888287099437bcea96f74cd08de2567d8bf03

See more details on using hashes here.

File details

Details for the file hikari_wave-0.0.1a3-py3-none-any.whl.

File metadata

  • Download URL: hikari_wave-0.0.1a3-py3-none-any.whl
  • Upload date:
  • Size: 25.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for hikari_wave-0.0.1a3-py3-none-any.whl
Algorithm Hash digest
SHA256 e029eb11e07302385fbb3a4b329ca7390a3a45f15aa3d6f6483de358dea4c44d
MD5 7b4c6353b2087fba1d6ec5a5ac25061a
BLAKE2b-256 c7528153257db2769874631da3c19c586f1b551b9b92ed0d554452bb8930ce77

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page