From e0167a9e0b593398f81f76ec2c3469df71c911c3 Mon Sep 17 00:00:00 2001 From: hwangsihu Date: Mon, 6 May 2024 12:24:42 +0900 Subject: [PATCH 1/2] Updated Lavalink settings and packages --- Lavalink/example.application.yml | 231 +++++++++++++++++-------------- package.json | 10 +- 2 files changed, 135 insertions(+), 106 deletions(-) diff --git a/Lavalink/example.application.yml b/Lavalink/example.application.yml index a9ced66d8..0e256fe92 100644 --- a/Lavalink/example.application.yml +++ b/Lavalink/example.application.yml @@ -1,113 +1,142 @@ server: # REST and WS server - port: 2333 # The port that the server listens on - address: 0.0.0.0 + port: 2333 + address: 0.0.0.0 + http2: + enabled: true # Whether to enable HTTP/2 support + plugins: - lavasrc: - sources: - spotify: true # Enable Spotify source - applemusic: true # Enable Apple Music source - deezer: true # Enable Deezer source - yandexmusic: true # Enable Yandex Music source - spotify: - clientId: '' - clientSecret: '' - 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 - 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: '' # apple music api token - playlistLoadLimit: 6 # The number of pages at 300 tracks each - albumLoadLimit: 6 # The number of pages at 300 tracks each - deezer: - masterDecryptionKey: '' # the master key used for decrypting the deezer tracks. (yes this is not here you need to get it from somewhere else) - yandexmusic: - accessToken: '' # the token used for accessing the yandex music api. See https://github.com/TopiSenpai/LavaSrc#yandex-music + 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: false # Enable Spotify source + applemusic: false # Enable Apple Music source + deezer: false # Enable Deezer source + yandexmusic: false # Enable Yandex Music source + flowerytts: true # Enable Flowery TTS source + youtube: false # Enable YouTube search source (https://github.com/topi314/LavaSearch) + spotify: + clientId: "your client id" + clientSecret: "your client secret" + 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 + 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) + yandexmusic: + accessToken: "your access token" # the token used for accessing the yandex music api. See https://github.com/TopiSenpai/LavaSrc#yandex-music + 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: + enabled: true + clients: ["MUSIC", "ANDROID", "WEB"] + lavalink: - plugins: - - dependency: 'com.github.topi314.lavasrc:lavasrc-plugin:4.0.1' - repository: 'https://maven.lavalink.dev/releases' - snapshot: false - - dependency: 'com.github.topi314.sponsorblock:sponsorblock-plugin:3.0.0' - repository: 'https://maven.lavalink.dev/releases' # this is optional for lavalink v4.0.0-beta.5 or greater - snapshot: false + plugins: + - dependency: "com.github.topi314.lavasrc:lavasrc-plugin:4.0.1" + snapshot: false + - dependency: "com.github.topi314.sponsorblock:sponsorblock-plugin:3.0.0" + snapshot: false + - dependency: "dev.lavalink.youtube:youtube-plugin:1.1.0" + snapshot: false + 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 + 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: 1000 # 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: HIGH # 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 - pluginsDir: './plugins' - 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 - frameBufferDurationMs: 1000 # 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: MEDIUM # 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: ["2001:470:28:d66::/64"] # 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 + prometheus: + enabled: false + endpoint: /metrics sentry: - dsn: '' - environment: '' + 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 + 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 diff --git a/package.json b/package.json index f15d046b3..dda453504 100644 --- a/package.json +++ b/package.json @@ -35,10 +35,10 @@ }, "homepage": "https://github.com/appujet/lavamusic#readme", "devDependencies": { - "@types/node": "^20.12.7", + "@types/node": "^20.12.8", "@types/signale": "^1.4.7", - "@typescript-eslint/eslint-plugin": "^7.7.1", - "@typescript-eslint/parser": "^7.7.1", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", "eslint": "^8.56.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-unicorn": "^52.0.0", @@ -49,12 +49,12 @@ }, "dependencies": { "@prisma/client": "^5.13.0", - "discord.js": "^14.14.1", + "discord.js": "^14.15.1", "dotenv": "^16.4.5", "shoukaku": "^4.0.1", "signale": "^1.4.0", "tslib": "^2.6.2", - "undici": "^6.14.1" + "undici": "^6.15.0" }, "signale": { "displayScope": true, From f46444c2fbc083639c945166913e040e47891cbb Mon Sep 17 00:00:00 2001 From: hwangsihu <129564966+hwangsihu@users.noreply.github.com> Date: Mon, 6 May 2024 12:42:39 +0900 Subject: [PATCH 2/2] =?UTF-8?q?package.json=20=EC=97=85=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dda453504..2bcd4ccdf 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ }, "dependencies": { "@prisma/client": "^5.13.0", - "discord.js": "^14.15.1", + "discord.js": "^14.15.2", "dotenv": "^16.4.5", "shoukaku": "^4.0.1", "signale": "^1.4.0",