You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: config.default.js
+79-10Lines changed: 79 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -9,18 +9,36 @@ export default {
9
9
enabled: true,// active cluster (or use env CLUSTER_ENABLED)
10
10
workers: 0,// 0 => uses os.cpus().length, or specify a number (1 = 2 processes total: master + 1 worker)
11
11
minWorkers: 1,// Minimum workers to keep alive (improves availability during bursts)
12
+
specializedSourceWorker: {
13
+
enabled: true,// If true, source loading (search, lyrics, etc.) is delegated to dedicated workers to prevent voice worker lag
14
+
count: 1,// Number of separate process clusters for source operations
15
+
microWorkers: 2,// Number of worker threads per process cluster
16
+
tasksPerWorker: 32,// Number of parallel tasks each micro-worker can handle before queuing
17
+
silentLogs: true// If true, micro-workers will only log warnings and errors
18
+
},
12
19
commandTimeout: 6000,// Timeout for heavy operations like loadTracks (6s)
13
20
fastCommandTimeout: 4000,// Timeout for player commands like play/pause (4s)
14
21
maxRetries: 2,// Number of retry attempts on timeout or worker failure
22
+
hibernation: {
23
+
enabled: true,
24
+
timeoutMs: 1200000
25
+
},
15
26
scaling: {
16
-
// New object to group scaling configurations
27
+
//scaling configurations
17
28
maxPlayersPerWorker: 20,// Reference capacity for utilization calculation
18
29
targetUtilization: 0.7,// Target utilization for scaling up/down
19
30
scaleUpThreshold: 0.75,// Utilization threshold to scale up
20
31
scaleDownThreshold: 0.3,// Utilization threshold to scale down
21
32
checkIntervalMs: 5000,// Interval to check for scaling needs
22
33
idleWorkerTimeoutMs: 60000,// Time in ms an idle worker should wait before being removed
23
-
queueLengthScaleUpFactor: 5// How many commands in queue per active worker trigger scale up
34
+
queueLengthScaleUpFactor: 5,// How many commands in queue per active worker trigger scale up
35
+
lagPenaltyLimit: 60,// Event loop lag threshold (ms) to penalize worker cost
36
+
cpuPenaltyLimit: 0.85// CPU usage threshold (85% of a core) to force scale up
37
+
},
38
+
endpoint: {
39
+
patchEnabled: true,
40
+
allowExternalPatch: false,
41
+
code: 'CAPYBARA'
24
42
}
25
43
},
26
44
logging: {
@@ -55,10 +73,12 @@ export default {
55
73
maxSearchResults: 10,
56
74
maxAlbumPlaylistLength: 100,
57
75
playerUpdateInterval: 2000,
76
+
statsUpdateInterval: 30000,
58
77
trackStuckThresholdMs: 10000,
59
78
zombieThresholdMs: 60000,
60
79
enableHoloTracks: false,
61
80
enableTrackStreamEndpoint: false,
81
+
enableLoadStreamEndpoint: false,
62
82
resolveExternalLinks: false,
63
83
fetchChannelInfo: false,
64
84
filters: {
@@ -79,9 +99,23 @@ export default {
79
99
timescale: true
80
100
}
81
101
},
82
-
defaultSearchSource: 'youtube',
102
+
defaultSearchSource: ['youtube','soundcloud'],
83
103
unifiedSearchSources: ['youtube','soundcloud'],
84
104
sources: {
105
+
vkmusic: {
106
+
enabled: true,
107
+
userToken: '',// (optional) get from vk in browser devtools -> reqs POST /?act=web_token HTTP/2 - headers -> response -> access_token
108
+
userCookie: ''// (required without userToken) get from vk in browser devtools -> reqs POST /?act=web_token HTTP/2 - headers -> request -> cookie (copy full cookie header)
109
+
},
110
+
amazonmusic: {
111
+
enabled: true
112
+
},
113
+
mixcloud: {
114
+
enabled: true
115
+
},
116
+
audiomack: {
117
+
enabled: true
118
+
},
85
119
deezer: {
86
120
// arl: '',
87
121
// decryptionKey: '',
@@ -91,7 +125,8 @@ export default {
91
125
enabled: true
92
126
},
93
127
soundcloud: {
94
-
enabled: true
128
+
enabled: true,
129
+
// clientId: ""
95
130
},
96
131
local: {
97
132
enabled: true,
@@ -104,6 +139,23 @@ export default {
104
139
// Note: not 100% of the songs are currently working (but most should.), because i need to code a different extractor for every year (2010, 2011, etc. not all are done)
105
140
enabled: true,
106
141
},
142
+
telegram: {
143
+
enabled: true
144
+
},
145
+
shazam: {
146
+
enabled: true,
147
+
allowExplicit: true
148
+
},
149
+
bilibili: {
150
+
enabled: true,
151
+
sessdata: ''// Optional, improves access to some videos (premium and 4k+)
152
+
},
153
+
genius: {
154
+
enabled: true
155
+
},
156
+
pinterest: {
157
+
enabled: true
158
+
},
107
159
flowery: {
108
160
enabled: true,
109
161
voice: 'Salli',
@@ -118,6 +170,14 @@ export default {
118
170
artistLoadLimit: 20
119
171
// "secretKey": "38346591" // Optional, defaults to standard key
120
172
},
173
+
gaana: {
174
+
enabled: true,
175
+
apiUrl: 'https://gaana.1lucas1apk.fun/api',// if you want to host your server https://github.com/notdeltaxd/Gaana-API
176
+
streamQuality: 'high',
177
+
playlistLoadLimit: 100,
178
+
albumLoadLimit: 100,
179
+
artistLoadLimit: 100
180
+
},
121
181
"google-tts": {
122
182
enabled: true,
123
183
language: 'en-US'
@@ -157,6 +217,7 @@ export default {
157
217
enabled: true,
158
218
clientId: '',
159
219
clientSecret: '',
220
+
externalAuthUrl: 'http://get.1lucas1apk.fun/spotify/gettoken',// URL to external token provider (e.g. http://localhost:8080/api/token - use https://github.com/topi314/spotify-tokener or https://github.com/1Lucas1apk/gettoken)
160
221
market: 'US',
161
222
playlistLoadLimit: 1,// 0 means no limit (loads all tracks), 1 = 100 tracks, 2 = 100 and so on!
162
223
playlistPageLoadConcurrency: 10,// How many pages to load simultaneously
@@ -185,7 +246,8 @@ export default {
185
246
enabled: true,
186
247
// Optional, setting this manually can help unblocking countries (since pandora is US only.). May need to be updated periodically.
187
248
// fetching manually: use a vpn connected to US, go on pandora.com, open devtools, Network tab, first request to appear and copy the 2nd csrfToken= value.
188
-
// csrfToken: ''
249
+
// csrfToken: '',
250
+
remoteTokenUrl: 'https://get.1lucas1apk.fun/pandora/gettoken'// URL to a remote provider that returns { success: true, authToken: "...", csrfToken: "...", expires_in_seconds: ... } //https://github.com/1Lucas1apk/gettoken
189
251
},
190
252
nicovideo: {
191
253
enabled: true
@@ -212,6 +274,9 @@ export default {
212
274
lrclib: {
213
275
enabled: true
214
276
},
277
+
bilibili: {
278
+
enabled: true
279
+
},
215
280
applemusic: {
216
281
enabled: true,
217
282
advanceSearch: true// Uses YTMusic to fetch the correct title and artists instead of relying on messy YouTube video titles, improving lyrics accuracy
@@ -222,6 +287,10 @@ export default {
222
287
encryption: 'aead_aes256_gcm_rtpsize',
223
288
resamplingQuality: 'best'// best, medium, fastest, zero order holder, linear
0 commit comments