With Spotify, Deezer, Apple Music, etc.
You need to add plugins, like lavasrc, for that check out plugins setup from lavalink or just use this application.yml (to your needs)
application.yml
server: # REST and WS server
port: 2333
address: 0.0.0.0
lavalink:
server:
password: "yourverystrongpassword"
sources:
youtube: true
bandcamp: true
soundcloud: true
twitch: true
vimeo: true
http: true
local: true
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
bufferDurationMs: 400 # The duration of the NAS buffer. Higher values fare better against longer GC pauses
frameBufferDurationMs: 5000 # How many milliseconds of audio to keep buffered
youtubePlaylistLoadLimit: 3 # Number of pages at 100 each
opusEncodingQuality: 5 # 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.
playerUpdateInterval: 5 # How frequently to send player updates to clients, in seconds
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.
youtubeSearchEnabled: true
soundcloudSearchEnabled: true
gc-warnings: true
#ratelimit: #
#ipBlocks: [] # list of ip blocks, e.g. ["1234:2abc:100:10e::/64"]
#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
plugins:
# - dependency: "com.dunctebot:skybot-lavalink-plugin:1.4.2" # DuncteBot lavalink plugin
# repository: "https://m2.duncte123.dev/releases"
# - dependency: "me.rohank05:lavalink-filter-plugin:0.0.4" # lavalink-filter plugin (echo+reverb filter [currently not working on v4])
# repository: "https://jitpack.io"
# Most users won't need this plugin, but it's nativly supported by my library
# - dependency: "com.github.topi314.sponsorblock:sponsorblock-plugin:3.0.0-beta.4" # Not really needed, but adds support for skipping sponsor-block/chapter segments
# repository: "https://maven.topi.wtf/releases"
# The following plugins are the ones which add the support for the advanced searches + sources
- dependency: "com.github.topi314.lavasrc:lavasrc-plugin:4.0.0-beta.7" # adds support for spotify, deezer, yandexmusic, applemusic
repository: "https://maven.topi.wtf/releases"
- dependency: "com.github.topi314.lavasearch:lavasearch-plugin:1.0.0-beta.2" # adds support for filtered searches for track, playlist, album, artist, text ( player.lavaSearch() )
repository: "https://maven.topi.wtf/releases"
plugins:
lavasrc:
providers:
- "dzisrc:%ISRC%" # If ISRC available, search on deezer
- "ytsearch:\"%ISRC%\"" # If ISRC available, search on youtube
- "dzsearch:%QUERY%" # Search on deezer, if no results found use the next provider
- "ytmsearch:%QUERY%" # If you want music.youtube results first
- "ytsearch:%QUERY%" # If no result found on music.youtube, search on www.youtube
- "scsearch:%QUERY%" # Last try to search on soundcloud.
sources:
spotify: true
applemusic: true # only enable applemusic if you have the mediaAPIToken provided
deezer: true
yandexmusic: true
flowerytts: true # Enable Flowery TTS source
spotify:
clientId: "..."
clientSecret: "..."
countryCode: "US"
playlistLoadLimit: 3 # The number of pages at 100 tracks each
albumLoadLimit: 6 # The number of pages at 50 tracks each
applemusic:
countryCode: "US"
mediaAPIToken: "..." # apple music api token
playlistLoadLimit: 1 # The number of pages at 300 tracks each
albumLoadLimit: 1 # The number of pages at 300 tracks each
deezer:
masterDecryptionKey: "g.............1"
yandexmusic:
accessToken: "...."
flowerytts: # Example (correct + working) configuration for flowery-tts
voice: "Olivia" # (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
metrics:
prometheus:
enabled: false
endpoint: /metrics
sentry:
dsn: ""
environment: ""
# tags:
# some_key: some_value
# another_key: another_value
logging: # keep logs as low (on storage size) as possible to save space
file:
max-history: 10
max-size: 10MB
path: ./logs/
level:
root: INFO
lavalink: INFO
request:
enabled: true
includeClientInfo: true
includeHeaders: true
includeQueryString: true
includePayload: true
maxPayloadLength: 10000
logback:
rollingpolicy:
max-file-size: 10MB
max-history: 10
Last updated