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.1a2
  • 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

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.1a2.tar.gz (20.3 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.1a2-py3-none-any.whl (25.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hikari_wave-0.0.1a2.tar.gz
  • Upload date:
  • Size: 20.3 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.1a2.tar.gz
Algorithm Hash digest
SHA256 47f0034d57c91aaaf3fcc8d2245cefff7c43dee9762e5d321147d45e693a6e77
MD5 f145808dcee5d66e122bef8a58dc409a
BLAKE2b-256 726f8ac1895bb244a2d64c037cd2113204d4a9fb30c267c4d72bfcadbb3de619

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hikari_wave-0.0.1a2-py3-none-any.whl
  • Upload date:
  • Size: 25.7 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.1a2-py3-none-any.whl
Algorithm Hash digest
SHA256 e6ebe6d5a4b95845c7b23b186fbb041d2f8d239bdf2f324f6c4c55a6f0b6d243
MD5 dae8ac9b448fafdc7e3f43cb87a8b138
BLAKE2b-256 05a103a88bc6313538795cf5371c8e44b05021e4c727aff5517a1b99efdd927e

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