Music in 30 Seconds
From zero to streaming music in your Discord bot with just a few lines of code.
# 1. Connect your Lavalink node
import revvlink
async def setup_hook(self) -> None:
nodes = [revvlink.Node(uri="http://localhost:2333", password="youshallnotpass")]
await revvlink.Pool.connect(nodes=nodes, client=self)
# 2. Search and play a track
async def play(ctx, *, query: str) -> None:
player: revvlink.Player = await ctx.author.voice.channel.connect(cls=revvlink.Player)
tracks: revvlink.Search = await revvlink.Playable.search(query)
await player.queue.put_wait(tracks[0])
if not player.playing:
await player.play(player.queue.get())
Built for Scale
Every feature is designed with production workloads in mind.
Elite Performance
Fully async architecture handles thousands of concurrent players with minimal overhead using efficient
asyncio patterns.
Self-Healing Pool
Automatic node failover and session recovery. If a node drops, your music keeps playing seamlessly on another node.
Regional Load Balancing
Intelligent penalty-based node selection routes players to the best Lavalink node based on latency and load.
Precision Filters
Professional-grade audio manipulation — Bass Boost, Nightcore, Timescale, 15-band EQ with millisecond precision.
Intelligent AutoPlay
Recommendation engine fetches related tracks automatically, keeping queues flowing without any user input.
Strictly Typed
Full Pyright strict compliance. Every class, method, and parameter is typed — your IDE will always guide you correctly.
How It Works
RevvLink sits between your Discord bot and one or more Lavalink servers, managing connections, players, and audio routing automatically.
Ready to Build?
Join developers building the next generation of Discord music bots with RevvLink.
pip install revvlink