Skip to content

PyLav/PyLav

Repository files navigation

GitHub license Support Server PyPi Crowdin Documentation Status

Documentation

Installation


Requirements


Supported sources

  • youtube (Deprecated with LL 4.0.5)
  • soundcloud
  • bandcamp
  • twitch
  • vimeo
  • http
  • local
  • youtube

With LavaSrc

  • spotify
  • applemusic
  • deezer
  • youtube
  • flowery-tts
  • getyarn.io
  • clypit
  • tts
  • pornhub
  • reddit
  • ocremix
  • tiktok
  • mixcloud
  • soundgasm
  • gcloud-tts
  • sponsorblock

Supported Lavalink features

  • Supports all features of Lavalink
    • Filters
    • IP Rotation
    • Plug-ins

Features

  • Multiple node support
    • Node region assignment based on IP
  • Track cache for the last 30 days to reduce the number of duplicated queries
  • Managed local node with auto-restart and auto update
  • Many helper methods and functions
  • Support for multiple cogs to access the library at once
  • Playlists and EQ saved at a library level to be shared with cogs
  • Player state persistence
    • Upon library state being shutdown all player states are saved and restored on library startup
  • History of played tracks available for players
  • RadioBrowser.org API to retrieve radio stations available for players
  • M3U, PLS and PYLAV text file parser to convert contents into a playlist (p.s. Lavalink must support the format/coded of files still)

System Requirements

With a locally hosted Postgres server and locally hosted/managed lavalink node (recommended - Best performance):

  • CPU: 3 cores or more
  • RAM: 4GB or more
  • Disk Space: 10GB or more (NVME Ideally, SSD OK)

With a locally hosted Postgres server and externally hosted lavalink node (Okay performance):

  • CPU: 2 cores or more
  • RAM: 3GB or more
  • Disk Space: 10GB or more (NVME Ideally, SSD OK)

With an externally hosted Postgres server and locally hosted/managed lavalink node (Poor performance):

  • CPU: 2 cores or more
  • RAM: 2GB or more
  • Disk Space: 10GB or more (SSD)

With an externally hosted Postgres server and externally hosted lavalink node (Worst performance):

  • CPU: 1 cores or more
  • RAM: 1GB or more
  • Disk Space: 10GB or more (SSD)

Credits

  • Topi for all the work done to Lavalink and implementing direct requests to make PyLav even better.
  • Devoxin - Lavalink.py for the original ideas for implementation.
  • globocom/m3u8 for the M3U8 parser which I made asynchronous found in m3u8_parser.
  • andreztz/pyradios for the radio parser which I made asynchronous found in radio.
  • Lifeismana for the custom Red-DiscordBot docker image which added Python3.11 support until Phasecore's image is updated.