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

  1. Connect/Disconnect logic
  2. Playing audio
  3. Move/Reconnect/Resume logic
  4. Supplemental events
  5. Audio types: files, URLs, etc.
    • Files
    • Web (URLs)
    • YouTube
    • Others (SoundCloud, buffers, etc.)
  6. Player QoL (queue, shuffle, prev/next, etc.)
  7. 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.1a1.tar.gz (18.6 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.1a1-py3-none-any.whl (23.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hikari_wave-0.0.1a1.tar.gz
  • Upload date:
  • Size: 18.6 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.1a1.tar.gz
Algorithm Hash digest
SHA256 70b9f063e754c50f1566e1f37a17633f4a1911f7adabc85e77e7296d7af5fa56
MD5 23501ea978d8f27b614e8662106c80e3
BLAKE2b-256 645845c641ece2fd805d37991c739ef847337fa70bf27bd1cd9ed2f5251539f2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hikari_wave-0.0.1a1-py3-none-any.whl
  • Upload date:
  • Size: 23.9 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.1a1-py3-none-any.whl
Algorithm Hash digest
SHA256 42183be0a48a4cca97413d51adaa7dc2a39b93d9b061d8327caf2027af0e1129
MD5 afc431fd5cf26f505b51a519fb3eec79
BLAKE2b-256 b0aba073b7b9077d9f062423def4f0d597b6b61c54aac57bcfa97a48add445e2

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