@inner-dj/client 0.0.3 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -0
- package/lib/src/config.d.ts +1 -0
- package/lib/src/config.js +2 -1
- package/lib/src/config.js.map +1 -1
- package/lib/src/player.d.ts +1 -1
- package/lib/src/player.js +38 -15
- package/lib/src/player.js.map +1 -1
- package/package.json +5 -2
package/README.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# @inner-dj/client
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@inner-dj/client)
|
|
4
|
+
|
|
5
|
+
This is the client (or player) component for [inner-dj](https://codeberg.org/sanin/inner-dj).
|
|
6
|
+
|
|
7
|
+
## Requirements
|
|
8
|
+
|
|
9
|
+
- yt-dlp
|
|
10
|
+
- ffplay
|
|
11
|
+
|
|
12
|
+
## Deployment
|
|
13
|
+
|
|
14
|
+
The inner-dj client is available via [npm](https://www.npmjs.com/package/@inner-dj/client).
|
|
15
|
+
|
|
16
|
+
### npm
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
npx @inner-dj/client
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### pnpm
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
pnpm dlx @inner-dj/client
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Configuration
|
|
29
|
+
|
|
30
|
+
By default, inner-dj client will attempt to load a configuration file at `config/config.yaml` (relative to the current working directory).
|
|
31
|
+
To use a custom config path, set environment variable `CONFIG`.
|
|
32
|
+
|
|
33
|
+
### Config Root
|
|
34
|
+
|
|
35
|
+
Note that comma-separated values are accepted for environment variables.
|
|
36
|
+
|
|
37
|
+
| YAML key | Environment Var | Type | Description | Default |
|
|
38
|
+
|------------------------|---------------------|----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------|
|
|
39
|
+
| clientId | CLIENTID | string | ID of your choice to identify the client to the server as | REQUIRED |
|
|
40
|
+
| server | SERVER | string | URL of the inner-dj server | REQUIRED |
|
|
41
|
+
| jwtSecret | JWTSECRET | string | Secret for communications between client and server. Only share with server. | REQUIRED |
|
|
42
|
+
| cookies | COOKIES | string | Optional path to Netscape-formatted file to read cookies from. See [ how do I pass cookies to yt-dlp? ]( https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-do-i-pass-cookies-to-yt-dlp ) | null |
|
|
43
|
+
| forceDownloadViaServer | FORCESERVERDOWNLOAD | boolean | If true, download missing songs via the server. Otherwise download locally first and fall back to server if something goes wrong | false |
|
|
44
|
+
| downloadDir | DOWNLOADDIR | string | Where audio files are stored. | ./downloads/ next to config file |
|
|
45
|
+
| maxLength | MAXLENGTH | number | How long in ms to wait during each track before skipping to the next track. Set to 0 to play audio files in their entirety. | 0 |
|
|
46
|
+
| standbyPool | STANDBYPOOL | string[] | List of songs (YouTube URLs) to shuffle through if there are no requests in the queue. | [] |
|
|
47
|
+
| blocked | BLOCKED | string[] | List of YouTube URLs to reject requests for. | [] |
|
package/lib/src/config.d.ts
CHANGED
package/lib/src/config.js
CHANGED
|
@@ -22,13 +22,14 @@ export async function getConfig(cfgPath) {
|
|
|
22
22
|
const cfg = await parseConfig(p);
|
|
23
23
|
return {
|
|
24
24
|
clientId: process.env['CLIENTID'] ?? cfg.clientId ?? throwNewError('clientId is required'),
|
|
25
|
-
server: process.env['SERVER'] ?? cfg.server ?? throwNewError('server is required'),
|
|
25
|
+
server: (process.env['SERVER'] ?? cfg.server ?? throwNewError('server is required')).replace(/\/$/, ''),
|
|
26
26
|
jwtSecret: process.env['JWTSECRET'] ?? cfg.jwtSecret ?? throwNewError('jwtSecret is required'),
|
|
27
27
|
forceDownloadViaServer: getBoolean('FORCESERVERDOWNLOAD', cfg, 'forceDownloadViaServer', false),
|
|
28
28
|
standbyPool: process.env['STANDBYPOOL']?.split(',') ?? cfg.standbyPool ?? [],
|
|
29
29
|
downloadDir: process.env['DOWNLOADDIR'] ?? cfg.downloadDir ?? path.join(path.dirname(p), 'downloads'),
|
|
30
30
|
maxLength: notStupidParseInt(process.env['MAXLENGTH'] ?? cfg.maxLength ?? 0),
|
|
31
31
|
blocked: process.env['BLOCKED']?.split(',') ?? cfg.blocked ?? [],
|
|
32
|
+
cookies: process.env['COOKIES'] ?? cfg.cookies,
|
|
32
33
|
};
|
|
33
34
|
}
|
|
34
35
|
//# sourceMappingURL=config.js.map
|
package/lib/src/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAcrD,SAAS,aAAa,CAAI,GAAW;IACjC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,GAA0B,EAAE,GAAuB,EAAE,QAAiB;IACvG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC,KAAK,MAAM,CAAC;AAC1E,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,OAAe;IACtC,IAAI,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,EAAE,EAAE,CAAC;QACR,OAAO,CAAC,IAAI,CAAC,kBAAkB,OAAO,KAAK,EAAE,EAAE,EAAE,yBAAyB,CAAC,CAAC;QAC5E,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAgB;IAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAW,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC3F,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO;QACH,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC,sBAAsB,CAAC;QAC1F,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACxG,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,SAAS,IAAI,aAAa,CAAC,uBAAuB,CAAC;QAC9F,sBAAsB,EAAE,UAAU,CAAC,qBAAqB,EAAE,GAAG,EAAE,wBAAwB,EAAE,KAAK,CAAC;QAC/F,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,WAAW,IAAI,EAAE;QAC5E,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;QACrG,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;QAC5E,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE;QAChE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,OAAO;KACjD,CAAA;AACL,CAAC"}
|
package/lib/src/player.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export declare class Player {
|
|
|
18
18
|
skip: () => void;
|
|
19
19
|
fileExists: (vid: YouTubeVideoID) => Promise<string | false>;
|
|
20
20
|
download: (vid: YouTubeVideoID) => Promise<void>;
|
|
21
|
-
downloadFromServer: (
|
|
21
|
+
downloadFromServer: (vid: YouTubeVideoID) => Promise<void>;
|
|
22
22
|
isBlocked: (vid: YouTubeVideoID) => boolean;
|
|
23
23
|
close: () => void;
|
|
24
24
|
}
|
package/lib/src/player.js
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
2
|
import fsp from 'fs/promises';
|
|
3
|
+
import fs from 'fs';
|
|
3
4
|
import jwt from 'jsonwebtoken';
|
|
5
|
+
import ky from 'ky';
|
|
6
|
+
import { Writable } from 'stream';
|
|
4
7
|
import { LRUCache } from 'lru-cache';
|
|
5
8
|
import { shuffle } from 'fast-shuffle';
|
|
6
9
|
import { spawn } from 'spawn-but-with-promises';
|
|
7
|
-
import { ytdlp, ytdlpDefaults, encodePayload } from '@inner-dj/common';
|
|
10
|
+
import { getFilesNoError, ytdlp, ytdlpDefaults, encodePayload } from '@inner-dj/common';
|
|
8
11
|
import getYouTubeID from 'get-youtube-id-ng';
|
|
9
|
-
|
|
10
|
-
try {
|
|
11
|
-
return await fsp.readdir(downloadDir);
|
|
12
|
-
}
|
|
13
|
-
catch {
|
|
14
|
-
return [];
|
|
15
|
-
}
|
|
16
|
-
}
|
|
12
|
+
import contentDisposition from 'content-disposition';
|
|
17
13
|
function emptyArray(arr) {
|
|
18
14
|
while (arr.length) {
|
|
19
15
|
arr.pop();
|
|
@@ -33,7 +29,8 @@ export class Player {
|
|
|
33
29
|
constructor(config) {
|
|
34
30
|
this.downloader = new ytdlp({
|
|
35
31
|
...ytdlpDefaults,
|
|
36
|
-
optput: path.join(config.downloadDir, ytdlpDefaults.optput)
|
|
32
|
+
optput: path.join(config.downloadDir, ytdlpDefaults.optput),
|
|
33
|
+
cookies: config.cookies,
|
|
37
34
|
});
|
|
38
35
|
this.filesCache = new LRUCache({
|
|
39
36
|
max: config.standbyPool.length + 100,
|
|
@@ -53,6 +50,7 @@ export class Player {
|
|
|
53
50
|
};
|
|
54
51
|
connect = (retryOnFailure = false) => {
|
|
55
52
|
const config = this.config;
|
|
53
|
+
const wsServer = config.server.replace(/^http/i, 'ws');
|
|
56
54
|
const ws = this.sock = new WebSocket(`${config.server}/sock`);
|
|
57
55
|
ws.onerror = err => {
|
|
58
56
|
console.error(err);
|
|
@@ -89,7 +87,7 @@ export class Player {
|
|
|
89
87
|
this.sock = null;
|
|
90
88
|
ws.close();
|
|
91
89
|
setTimeout(() => this.connect(true), 2500);
|
|
92
|
-
}) && console.log(`Connected to ${
|
|
90
|
+
}) && console.log(`Connected to ${wsServer}`);
|
|
93
91
|
}
|
|
94
92
|
else if (payload.type === 'queue') {
|
|
95
93
|
console.log(`adding ${payload.body} to the queue`);
|
|
@@ -131,6 +129,10 @@ export class Player {
|
|
|
131
129
|
await this.proc;
|
|
132
130
|
timeout === false || clearTimeout(timeout);
|
|
133
131
|
}
|
|
132
|
+
this.sock?.send(encodePayload({
|
|
133
|
+
type: 'nowPlaying',
|
|
134
|
+
body: null
|
|
135
|
+
}, this.config.jwtSecret));
|
|
134
136
|
this.proc = null;
|
|
135
137
|
};
|
|
136
138
|
enqueue = async (vidurl, destination, insertFilename = true) => {
|
|
@@ -156,6 +158,10 @@ export class Player {
|
|
|
156
158
|
console.warn(`no file for video ${vid} found.`);
|
|
157
159
|
return false;
|
|
158
160
|
}
|
|
161
|
+
if (destination.indexOf(filename) >= 0) {
|
|
162
|
+
console.warn(`${vid} already in queue.`);
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
159
165
|
destination.push(insertFilename ? filename : vidurl);
|
|
160
166
|
return filename;
|
|
161
167
|
};
|
|
@@ -183,11 +189,11 @@ export class Player {
|
|
|
183
189
|
console.info(`downloading ${vidurl}`);
|
|
184
190
|
await fsp.mkdir(this.config.downloadDir, { recursive: true });
|
|
185
191
|
if (this.config.forceDownloadViaServer) {
|
|
186
|
-
await this.downloadFromServer(
|
|
192
|
+
await this.downloadFromServer(vid);
|
|
187
193
|
return;
|
|
188
194
|
}
|
|
189
195
|
try {
|
|
190
|
-
await this.downloader.exec(
|
|
196
|
+
await this.downloader.exec(vid);
|
|
191
197
|
return;
|
|
192
198
|
}
|
|
193
199
|
catch (ex) {
|
|
@@ -195,8 +201,25 @@ export class Player {
|
|
|
195
201
|
await this.downloadFromServer(vidurl);
|
|
196
202
|
}
|
|
197
203
|
};
|
|
198
|
-
downloadFromServer = async (
|
|
199
|
-
|
|
204
|
+
downloadFromServer = async (vid) => {
|
|
205
|
+
const server = this.config.server;
|
|
206
|
+
const payload = {
|
|
207
|
+
type: 'download',
|
|
208
|
+
body: vid
|
|
209
|
+
};
|
|
210
|
+
const resp = await ky.post(`${server}/download`, {
|
|
211
|
+
headers: {
|
|
212
|
+
'Content-Type': 'text/plain',
|
|
213
|
+
},
|
|
214
|
+
body: jwt.sign(JSON.stringify(payload), this.config.jwtSecret)
|
|
215
|
+
});
|
|
216
|
+
const cdHeader = resp.headers.get('Content-Disposition');
|
|
217
|
+
const filename = contentDisposition.parse(cdHeader || '').parameters['filename'];
|
|
218
|
+
if (!resp.ok || !cdHeader || !filename) {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
const out = Writable.toWeb(fs.createWriteStream(path.join(this.config.downloadDir, filename)));
|
|
222
|
+
await resp.body?.pipeTo(out);
|
|
200
223
|
};
|
|
201
224
|
isBlocked = (vid) => {
|
|
202
225
|
return this.blockedVids.indexOf(vid) >= 0;
|
package/lib/src/player.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"player.js","sourceRoot":"","sources":["../../src/player.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAiD,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,KAAK,EAAE,aAAa,EAAuB,aAAa,
|
|
1
|
+
{"version":3,"file":"player.js","sourceRoot":"","sources":["../../src/player.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inner-dj/client",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"description": "player component of inner-dj",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"main": "./lib/src/index.js",
|
|
19
19
|
"types": "./lib/src/index.d.ts",
|
|
20
20
|
"bin": {
|
|
21
|
+
"@inner-dj/client": "./lib/src/main.js",
|
|
21
22
|
"inner-dj-client": "./lib/src/main.js"
|
|
22
23
|
},
|
|
23
24
|
"files": [
|
|
@@ -25,13 +26,15 @@
|
|
|
25
26
|
"!lib/**/*.js.map"
|
|
26
27
|
],
|
|
27
28
|
"dependencies": {
|
|
29
|
+
"content-disposition": "2.0.0",
|
|
28
30
|
"fast-shuffle": "^6.1.1",
|
|
29
31
|
"get-youtube-id-ng": "1.0.1",
|
|
30
32
|
"jsonwebtoken": "9.0.3",
|
|
33
|
+
"ky": "^2.0.2",
|
|
31
34
|
"lru-cache": "^11.4.0",
|
|
32
35
|
"spawn-but-with-promises": "^1.0.4",
|
|
33
36
|
"yaml": "^2.9.0",
|
|
34
|
-
"@inner-dj/common": "0.0.
|
|
37
|
+
"@inner-dj/common": "0.0.6"
|
|
35
38
|
},
|
|
36
39
|
"devDependencies": {
|
|
37
40
|
"@sindresorhus/tsconfig": "8.1.0",
|