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