Closed CallMeShepard closed 6 months ago
I think is because lavalink 4.0 removed the v3 endpoints
https://github.com/lavalink-devs/Lavalink/releases/tag/4.0.0
This is my lavamusic docker-compose.yml
services:
mongodb:
container_name: lavamusic-mongodb
# higher versions don't work on Apple Silicon
image: bitnami/mongodb:4.4
environment:
MONGODB_ADVERTISED_HOSTNAME: 127.0.0.1
MONGODB_REPLICA_SET_MODE: primary
MONGODB_ROOT_USER: mongoadmin
MONGODB_ROOT_PASSWORD: mongopassword
MONGODB_REPLICA_SET_KEY: replicasetkey123
restart: on-failure
volumes:
- mongodb_data:/data/db
networks:
- lavalink
lavalink:
container_name: lavalink
image: ghcr.io/lavalink-devs/lavalink:3
volumes:
- ./application.yml:/opt/Lavalink/application.yml
- ./plugins/:/opt/Lavalink/plugins/ # persist plugins between restarts, make sure to set the correct permissions (user: 322, group: 322)
restart: on-failure
networks:
- lavalink
expose:
- 2333
lavamusic:
container_name: lavamusic
image: ghcr.io/brblacky/lavamusic:main
environment:
TOKEN: TOKEN # Your bot token
PREFIX: "!" # Your bot prefix
OWNER_IDS: "1" # Your id
CLIENT_ID: "1" # Your bot id
GUILD_ID: "" # Your server Id if you want to use the for single server
PRODUCTION: "true" # true for production
SEARCH_ENGINE: ytsearch # ytsearch, scsearch or ytmsearch
MAX_PLAYLIST_SIZE: "100" # Max playlist size
MAX_QUEUE_SIZE: "100" # Max queue size
DATABASE_URL: mongodb://mongoadmin:mongopassword@mongodb/lavamusic?authSource=admin&directConnection=true # Your mongodb url
LAVALINK_URL: lavalink:2333 # Your lavalink url
LAVALINK_AUTH: youshallnotpass # Your lavalink password
LAVALINK_NAME: Blacky # Your lavalink name
LAVALINK_SECURE: "false" # true if you are using https
command: bash -c "apt-get update -y && apt-get install -y openssl && npx prisma
generate && node dist/index.js"
restart: on-failure
depends_on:
- lavalink
- mongodb
networks:
- lavalink
volumes:
mongodb_data: null
networks:
# create a lavalink network you can add other containers to, to give them access to Lavalink
lavalink:
name: lavalink
And this is the application.yml
server: # REST and WS server
port: 2333
address: 0.0.0.0
http2:
enabled: false # Whether to enable HTTP/2 support
plugins:
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
youtube: true # Enable YouTube search source (https://github.com/topi314/LavaSearch)
spotify:
clientId: "JEJE"
clientSecret: "JEJE"
countryCode: "ES" # 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
applemusic:
countryCode: "ES" # 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: "JEJE" # apple music api token
playlistLoadLimit: 6 # The number of pages at 300 tracks each
albumLoadLimit: 6 # The number of pages at 300 tracks each
lavalink:
plugins:
- dependency: "com.github.TopiSenpai.LavaSrc:lavasrc-plugin:3.2.10"
repository: "https://maven.topi.wtf/releases"
snapshot: false
server:
password: "youshallnotpass"
sources:
youtube: true
bandcamp: true
soundcloud: true
twitch: true
vimeo: true
http: true
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
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
After entering the play command with the youtube link, an error pops up:
[30.11.2023] [20:49:21] [antiCrash.js] [Lavamusic] » ✖ error Uncaught Exception thrown: Error: No nodes available, please add a node first at ShoukakuClient.getNode (file:///C:/Users/Shepard/Downloads/Music/node_modules/shoukaku/dist/index.mjs:1270:13) at Play.run (file:///C:/Users/Shepard/Downloads/Music/dist/commands/music/Play.js:46:106) at MessageCreate.run (file:///C:/Users/Shepard/Downloads/Music/dist/events/client/MessageCreate.js:192:28)