• Stars
    star
    222
  • Rank 178,061 (Top 4 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 7 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A wrapper for Lavalink in Python, which aims to be powerful and intuitive.

Lavalink.py

Python Build Status Codacy Badge License Documentation Status

Lavalink.py is a wrapper for Lavalink which abstracts away most of the code necessary to use Lavalink, allowing for easier integration into your projects, while still promising full API coverage and powerful tools to get the most out of it.

Features

  • Regions
  • Multi-Node Support
  • Load Balancing (this includes region-based load balancing)
  • Audio Filters
  • Custom Sources

What is Lavalink?

Lavalink is standalone audio sending software capable of transmitting audio to Discord, utilising Lavaplayer for audio transcoding. It can be configured to work independently, or as part of a cluster depending on needs, which allows it to be highly scalable and performant. Head over to the Lavalink repository to find out more.

Getting Started

First you need to run a command to install the library,

pip install lavalink

Then you need to setup the Lavalink server, you will need to install Java, and then download the latest Lavalink.jar. Then place an application.yml file in the same directory. The file should look like this. Finally run java -jar Lavalink.jar in the directory of the jar.

Additionally, there is an example cog. It should be noted that the example cog is oriented towards usage with Discord.py rewrite and Lavalink v3.1+, although backwards compatibility may be possible, it's not encouraged nor is support guaranteed.

Custom Sources

As of Lavalink.py 4.0, custom sources can be registered to a client instance to allow searching more audio sources. These aren't "true" sources in the sense that you can play from them (unless you support HTTP playback and are able to retrieve a playable HTTP URL). This means you can build sources that allow retrieving track metadata from third party services, such as Spotify, whilst the underlying stream is played from elsewhere. This is a popular method for providing support for otherwise unsupported services. You can find an example source here.

Supported Platforms

While Lavalink.py supports any platform Python will run on, the same can not be said for the Lavalink server. The Lavalink server requires an x86-64 (64-bit) machine running either Windows, or any Linux-based distro. It is highly recommended that you invest in a dedicated server or a VPS. "Hosts" like Glitch, Heroku, etc... are not guaranteed to work with Lavalink, therefore you should try to avoid them. Support will not be offered should you choose to try and host Lavalink on these platforms.

Exceptions

The exception to the "unsupported platforms" rule are ARM-based machines, for example; a Raspberry Pi. While official Lavalink builds do not support the ARM architecture, there are custom builds by Cog-Creators that offer ARM support. These are the official builds, with additional native libraries for running on otherwise unsupported platforms.

Need Further Help?

Discord Server

Documentation or Latest Docs

More Repositories

1

JukeBot

A discord music bot that aims to deliver high quality audio with a plethora of features to complement it, using JDA and Lavaplayer.
Kotlin
39
star
2

SharpLink

Lavalink wrapper for Discord.Net written in C#
C#
27
star
3

Flight

A lightweight command handler and argument parser for JDA, built with Kotlin.
Kotlin
26
star
4

JukeBot-JS

JukeBot - Written in NodeJS using the Eris library
JavaScript
10
star
5

R34-Android

An Android application for browsing R34.
Kotlin
7
star
6

cdn

The backend server to cdn.serux.pro. Configurable and lightweight, with plenty of features.
JavaScript
7
star
7

AutomaCord

The No-Bullshit Bot Listing for Discord
JavaScript
7
star
8

TubeSearch

YouTube Search module for NodeJS
JavaScript
7
star
9

Express-ImageHost

Image-Hosting server built with NodeJS + Express
JavaScript
5
star
10

LavaDSPX-Plugin

LavaDSPX filters for Lavalink in the form of a plugin.
Java
5
star
11

JukeBot-Web

JukeBot, but adapted for control through the web.
JavaScript
4
star
12

LavaDSPX

A collection of audio filters for Lavaplayer.
Java
4
star
13

KotLink

An easy-to-use and intuitive interface for Lavalink, written in Kotlin.
Kotlin
3
star
14

YTDL-CS

YouTube Downloader for C#. Based off of node-ytdl-core, this aims to provide the minimum functionality for downloading videos from YouTube.
C#
2
star
15

Eris-ArgParser

An argument parser for Eris that can convert args to Discord objects with ease
JavaScript
2
star
16

Phony

The Discord phone bot that allows you to voice-call other guilds.
Kotlin
2
star
17

Starboard-JS

NodeJS-based Discord Bot that serves as a starboard. Uses Eris and SQLite for DB.
JavaScript
2
star
18

SlamNL-DiscordBot

24/7 Stream from SLAM! NL's Hardstyle stream.
JavaScript
2
star
19

Piriform-Updater

Automatic updater for Piriform's software. Currently covers ccleaner and speccy, although more can be added. Built for convenience. Automatically identifies install location, current version, along with automatic download and installation of new versions.
Python
2
star
20

sftp.py

A command-line (fetch-only) SFTP utility written in Python.
Python
2
star
21

FlakeId

Twitter-style snowflake generator. Based on https://github.com/s-yadav/FlakeId
JavaScript
1
star
22

Chi

My Discord bot for testing weird and wonderful ideas. Written in Python, using Discord.py.
Python
1
star
23

WindowsRPC

Discord Rich Presence that shows what window is currently focused on your computer. For Windows only.
Python
1
star
24

Tzuyu-Server

JavaScript
1
star
25

VBCord

Custom Discord Client written in VB with Discord.NET 1.0
Visual Basic .NET
1
star
26

YAYTDS

Yet Another YouTube Downloading Service
JavaScript
1
star