<

Welcome to Bots University-Lavalink Servers

We provide free-to-use Lavalinks for everyone which
are Fast.

Get Started

Why Choose Lavalink?

Lavalink is a standalone audio sending node, based on Lavaplayer and JDA-Audio. Allows for sending audio without it ever reaching any of your shards.
Being used in production by FredBoat, Dyno, LewdBot, Rhythm, Milrato, and more.
An discord.js Advanced Music Bot Example is available here.

BU Lavalink Servers

Bots University is hosting several Lavalink Nodes, managing and maintaining, so that you are able to request hundreds of YouTube Songs and from other sources.

API - Useable for any coding Language

Mainly supporting Streaming OPUS Audio in a Discord Voice Channel, but can be used in other clients which are opus encoded. Lavalink is a standalone API-Scraper Server, so you can use it with any coding language. Here is a list of different Wrappers.

Self-Host able

If you know enough about V-Servers you can self-host a Lavalink Node. But be aware, that you should have an IPV6 Block, for IP Routing. Otherwise you'll get ratelimtied!

About Bots University Lavalink servers

Bots University makes many Music Bots, and other bots which need Lavalink.

Free Lavalink servers

We wanted to host the lavalink servers for free as many music bots need lavalinks so they have lag-free music experience.

Fast 24/7 Uptime

BU Lavalink Servers are fast, responsive and 24/7 available for you!

Many Options

If you think one of the lavalink server is slow, you can switch to an another lavalink server as we have many servers.

Players

All possible Node Connections

Original Idea by lavalink.milrato.com

The developer/redesigner of the original website is Tomato6966 - Original website, Tomato gave permission to Mathiscool to make a duplicate of the original website.

All Lavalink Servers

How to connect to a BU Lavalink server?

1. Choose a Server:
-> Choose a server from the below list and use it!


Latest Lavalinks

The best lavalinks which were made and released on 5th November 2021
They were 24/7 but it went down rarely when we got many requests/ddosed.

All servers and Settings, needed:

                        host: 'lavalink.botsuniversity.ml, lavalink2.botsuniversity.ml'
password: 'mathiscool'
ports: 443
secure: true 
                      

Connect with the right settings!

Example Usage

                          host: 'lavalink.botsuniversity.ml'
password: 'mathiscool'
port: 443 
secure: true 
                        





New Lavalink Servers

Stared running on 16th July 2022.

All servers and Settings, needed:

                        host: 'lavalink3.botsuniversity.ml, lavalink4.botsuniversity.ml'
password: 'mathiscool'
ports: 443
secure: true
                      

Connect with the right settings!

Example Usage

                          host: 'lavalink3.botsuniversity.ml'
password: 'mathiscool'
port: 443 
secure: true 
                        





Developer

The developer and maintainer of the public these Lavalinks is MathisCool, This website was redesigned by Tomato6966 | Chris P.

MathisCool

Developer and CEO of Bots University

I love coding
My Portfolio

Tomato6966

Developer and CEO of Milrato Development

I love coding, and it is my Hobby!
My Portfolio

How to connect to a Node?

In order to connect to a specific Lavalink node, you need to first pick the host/server and then just connect to it!

Example on what settings to put for a Connection

            "host": "lavalink.botsuniversity.ml",
      "password": "mathiscool",
      "port": 443,
      "secure": true 
          

Example Bot erela.js and discord.js

            // To install Discord.JS and Erela.JS, run: npm install discord.js erela.js
const { Client } = require("discord.js");
const { Manager } = require("erela.js");

// Initialize the Discord.JS Client.
const client = new Client();

// Initiate the Manager with some options and listen to some events.
client.manager = new Manager({
  nodes: [
    {
      host: "lavalink.botsuniversity.ml", 
      port: 443, 
      password: "mathiscool",
      secure: true,
    },
  ],
  send(id, payload) {
    const guild = client.guilds.cache.get(id);
    if (guild) guild.shard.send(payload);
  },
})
  .on("nodeConnect", node => console.log(`Node ${node.options.identifier} connected`))
  .on("nodeError", (node, error) => console.log(`Node ${node.options.identifier} had an error: ${error.message}`))
  .on("trackStart", (player, track) => {
    client.channels.cache.get(player.textChannel).send(`Now playing: ${track.title}`);
  })
  .on("queueEnd", (player) => {
    client.channels.cache.get(player.textChannel).send("Queue has ended.");
    player.destroy();
  });

client.once("ready", () => {
  console.log("I am ready!");
  client.manager.init(client.user.id); // Initiate the manager.
});

// Here we send voice data to lavalink whenever the bot joins a voice channel to play audio in the channel.
client.on("raw", (d) => client.manager.updateVoiceState(d));

client.on("message", async (message) => {
  if (message.content.startsWith("!play")) {
    // Note: This example only works for retrieving tracks using a query, such as "Rick Astley - Never Gonna Give You Up".
    
    // Retrieves tracks with your query and the requester of the tracks.
    // Note: This retrieves tracks from youtube by default, to get from other sources you must enable them in application.yml and provide a link for the source.
    // Note: If you want to "search" for tracks you must provide an object with a "query" property being the query to use, and "source" being one of "youtube", "soundcloud".
    const res = await client.manager.search(
      message.content.slice(6),
      message.author
    );
    
    // Create a new player. This will return the player if it already exists.
    const player = client.manager.create({
      guild: message.guild.id,
      voiceChannel: message.member.voice.channel.id,
      textChannel: message.channel.id,
    });
    
    // Connect to the voice channel.
    player.connect();
    
    // Adds the first track to the queue.
    player.queue.add(res.tracks[0]);
    message.channel.send(`Enqueuing track ${res.tracks[0].title}.`);
    
    // Plays the player (plays the first track in the queue).
    // The if statement is needed else it will play the current track again
    if (!player.playing && !player.paused && !player.queue.size)
      player.play();
  }
});
client.login("your bot token");
        

Frequently Asked Questions

Here you can see the frequently asked Questions about BU Lavalink servers