server: # REST and WS server port: 2333 address: 0.0.0.0 http2: enabled: true # Whether to enable HTTP/2 support plugins: youtube: enabled: true # Whether this source can be used. allowSearch: true # Whether "ytsearch:" and "ytmsearch:" can be used. allowDirectVideoIds: true # Whether just video IDs can match. If false, only complete URLs will be loaded. allowDirectPlaylistIds: true # Whether just playlist IDs can match. If false, only complete URLs will be loaded. # The clients to use for track loading. See below for a list of valid clients. # Clients are queried in the order they are given (so the first client is queried first and so on...) clients: - MUSIC - ANDROID_VR - ANDROID_MUSIC - WEB - WEBEMBEDDED - TVHTML5EMBEDDED # The below section of the config allows setting specific options for each client, such as the requests they will handle. # If an option, or client, is unspecified, then the default option value/client values will be used instead. # If a client is configured, but is not registered above, the options for that client will be ignored. # WARNING!: THE BELOW CONFIG IS FOR ILLUSTRATION PURPOSES. DO NOT COPY OR USE THIS WITHOUT # WARNING!: UNDERSTANDING WHAT IT DOES. MISCONFIGURATION WILL HINDER YOUTUBE-SOURCE'S ABILITY TO WORK PROPERLY. # Write the names of clients as they are specified under the heading "Available Clients". clientOptions: WEB: # Example: Disabling a client's playback capabilities. playback: false videoLoading: false # Disables loading of videos for this client. A client may still be used for playback even if this is set to 'false'. WEBEMBEDDED: # Example: Configuring a client to exclusively be used for video loading and playback. playlistLoading: false # Disables loading of playlists and mixes. searching: false # Disables the ability to search for videos. lavasrc: providers: # Custom providers for track loading. This is the default # - "dzisrc:%ISRC%" # Deezer ISRC provider # - "dzsearch:%QUERY%" # Deezer search provider - "ytsearch:\"%ISRC%\"" # Will be ignored if track does not have an ISRC. See https://en.wikipedia.org/wiki/International_Standard_Recording_Code - "ytsearch:%QUERY%" # Will be used if track has no ISRC or no track could be found for the ISRC # you can add multiple other fallback sources here sources: spotify: true # Enable Spotify source applemusic: false # Enable Apple Music source deezer: false # Enable Deezer source yandexmusic: false # Enable Yandex Music source flowerytts: false # Enable Flowery TTS source youtube: false # Enable YouTube search source (https://github.com/topi314/LavaSearch) vkmusic: false # Enable Vk Music source lyrics-sources: spotify: false # Enable Spotify lyrics source deezer: false # Enable Deezer lyrics source youtube: false # Enable YouTube lyrics source yandexmusic: false # Enable Yandex Music lyrics source vkmusic: false # Enable Vk Music lyrics source spotify: clientId: "" clientSecret: "" # spDc: "your sp dc cookie" # the sp dc cookie used for accessing the spotify lyrics api countryCode: "US" # the country code you want to use for filtering the artists top tracks. See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 playlistLoadLimit: 6 # The number of pages at 100 tracks each albumLoadLimit: 6 # The number of pages at 50 tracks each resolveArtistsInSearch: true # Whether to resolve artists in track search results (can be slow) localFiles: false # Enable local files support with Spotify playlists. Please note `uri` & `isrc` will be `null` & `identifier` will be `"local"` applemusic: countryCode: "US" # the country code you want to use for filtering the artists top tracks and language. See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 mediaAPIToken: "your apple music api token" # apple music api token # or specify an apple music key keyID: "your key id" teamID: "your team id" musicKitKey: | -----BEGIN PRIVATE KEY----- your key -----END PRIVATE KEY----- playlistLoadLimit: 6 # The number of pages at 300 tracks each albumLoadLimit: 6 # The number of pages at 300 tracks each deezer: masterDecryptionKey: "your master decryption key" # the master key used for decrypting the deezer tracks. (yes this is not here you need to get it from somewhere else) # arl: "your deezer arl" # the arl cookie used for accessing the deezer api this is optional but required for formats above MP3_128 formats: [ "FLAC", "MP3_320", "MP3_256", "MP3_128", "MP3_64", "AAC_64" ] # the formats you want to use for the deezer tracks. "FLAC", "MP3_320", "MP3_256" & "AAC_64" are only available for premium users and require a valid arl yandexmusic: accessToken: "your access token" # the token used for accessing the yandex music api. See https://github.com/TopiSenpai/LavaSrc#yandex-music playlistLoadLimit: 1 # The number of pages at 100 tracks each albumLoadLimit: 1 # The number of pages at 50 tracks each artistLoadLimit: 1 # The number of pages at 10 tracks each flowerytts: voice: "default voice" # (case-sensitive) get default voice from here https://api.flowery.pw/v1/tts/voices translate: false # whether to translate the text to the native language of voice silence: 0 # the silence parameter is in milliseconds. Range is 0 to 10000. The default is 0. speed: 1.0 # the speed parameter is a float between 0.5 and 10. The default is 1.0. (0.5 is half speed, 2.0 is double speed, etc.) audioFormat: "mp3" # supported formats are: mp3, ogg_opus, ogg_vorbis, aac, wav, and flac. Default format is mp3 youtube: countryCode: "US" # the country code you want to use for searching lyrics via ISRC. See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 vkmusic: userToken: "your user token" # This token is needed for authorization in the api. Guide: https://github.com/topi314/LavaSrc#vk-music playlistLoadLimit: 1 # The number of pages at 50 tracks each artistLoadLimit: 1 # The number of pages at 10 tracks each recommendationsLoadLimit: 10 # Number of tracks lavalink: plugins: - dependency: "dev.lavalink.youtube:youtube-plugin:1.13.2" # Please check the latest version at https://github.com/lavalink-devs/youtube-source/releases snapshot: false - dependency: "com.github.topi314.lavasrc:lavasrc-plugin:4.6.0" # Please check the latest version at https://github.com/topi314/LavaSrc/releases snapshot: false # - dependency: "com.github.example:example-plugin:1.0.0" # required, the coordinates of your plugin # repository: "https://maven.example.com/releases" # optional, defaults to the Lavalink releases repository by default # snapshot: false # optional, defaults to false, used to tell Lavalink to use the snapshot repository instead of the release repository # pluginsDir: "./plugins" # optional, defaults to "./plugins" # defaultPluginRepository: "https://maven.lavalink.dev/releases" # optional, defaults to the Lavalink release repository # defaultPluginSnapshotRepository: "https://maven.lavalink.dev/snapshots" # optional, defaults to the Lavalink snapshot repository server: password: "youshallnotpass" sources: # The default Youtube source is now deprecated and won't receive further updates. Please use https://github.com/lavalink-devs/youtube-source#plugin instead. youtube: false bandcamp: true soundcloud: true twitch: true vimeo: true nico: true http: true # warning: keeping HTTP enabled without a proxy configured could expose your server's IP address. local: false filters: # All filters are enabled by default volume: true equalizer: true karaoke: true timescale: true tremolo: true vibrato: true distortion: true rotation: true channelMix: true lowPass: true nonAllocatingFrameBuffer: false # Setting to true reduces the number of allocations made by each player at the expense of frame rebuilding (e.g. non-instantaneous volume changes) bufferDurationMs: 400 # The duration of the NAS buffer. Higher values fare better against longer GC pauses. Duration <= 0 to disable JDA-NAS. Minimum of 40ms, lower values may introduce pauses. frameBufferDurationMs: 5000 # How many milliseconds of audio to keep buffered opusEncodingQuality: 10 # Opus encoder quality. Valid values range from 0 to 10, where 10 is best quality but is the most expensive on the CPU. resamplingQuality: LOW # Quality of resampling operations. Valid values are LOW, MEDIUM and HIGH, where HIGH uses the most CPU. trackStuckThresholdMs: 10000 # The threshold for how long a track can be stuck. A track is stuck if does not return any audio data. useSeekGhosting: true # Seek ghosting is the effect where whilst a seek is in progress, the audio buffer is read from until empty, or until seek is ready. youtubePlaylistLoadLimit: 6 # Number of pages at 100 each playerUpdateInterval: 5 # How frequently to send player updates to clients, in seconds youtubeSearchEnabled: true soundcloudSearchEnabled: true gc-warnings: true #ratelimit: #ipBlocks: ["1.0.0.0/8", "..."] # list of ip blocks #excludedIps: ["...", "..."] # ips which should be explicit excluded from usage by lavalink #strategy: "RotateOnBan" # RotateOnBan | LoadBalance | NanoSwitch | RotatingNanoSwitch #searchTriggersFail: true # Whether a search 429 should trigger marking the ip as failing #retryLimit: -1 # -1 = use default lavaplayer value | 0 = infinity | >0 = retry will happen this numbers times #youtubeConfig: # Required for avoiding all age restrictions by YouTube, some restricted videos still can be played without. #email: "" # Email of Google account #password: "" # Password of Google account #httpConfig: # Useful for blocking bad-actors from ip-grabbing your music node and attacking it, this way only the http proxy will be attacked #proxyHost: "localhost" # Hostname of the proxy, (ip or domain) #proxyPort: 3128 # Proxy port, 3128 is the default for squidProxy #proxyUser: "" # Optional user for basic authentication fields, leave blank if you don't use basic auth #proxyPassword: "" # Password for basic authentication metrics: prometheus: enabled: false endpoint: /metrics sentry: dsn: "" environment: "" # tags: # some_key: some_value # another_key: another_value logging: file: path: ./logs/ level: root: INFO lavalink: INFO request: enabled: true includeClientInfo: true includeHeaders: false includeQueryString: true includePayload: true maxPayloadLength: 10000 logback: rollingpolicy: max-file-size: 1GB max-history: 30