196 lines
11 KiB
YAML
196 lines
11 KiB
YAML
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
|