@ziplayer/plugin 0.0.2 → 0.0.4
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 +132 -97
- package/dist/SoundCloudPlugin.d.ts.map +1 -1
- package/dist/SoundCloudPlugin.js +38 -4
- package/dist/SoundCloudPlugin.js.map +1 -1
- package/dist/SpotifyPlugin.d.ts.map +1 -1
- package/dist/SpotifyPlugin.js +2 -2
- package/dist/SpotifyPlugin.js.map +1 -1
- package/dist/TTSPlugin.d.ts +36 -0
- package/dist/TTSPlugin.d.ts.map +1 -0
- package/dist/TTSPlugin.js +202 -0
- package/dist/TTSPlugin.js.map +1 -0
- package/dist/YouTubePlugin.d.ts +2 -0
- package/dist/YouTubePlugin.d.ts.map +1 -1
- package/dist/YouTubePlugin.js +113 -91
- package/dist/YouTubePlugin.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/package.json +41 -39
- package/src/SoundCloudPlugin.ts +219 -191
- package/src/SpotifyPlugin.ts +190 -204
- package/src/TTSPlugin.ts +234 -0
- package/src/YouTubePlugin.ts +382 -320
- package/src/index.ts +4 -3
- package/tsconfig.json +23 -23
package/README.md
CHANGED
|
@@ -1,145 +1,180 @@
|
|
|
1
|
+
<img width="1175" height="305" alt="logo" src="https://github.com/user-attachments/assets/d4db4892-9c3d-4314-9228-701629555380" />
|
|
1
2
|
|
|
2
|
-
# @
|
|
3
|
+
# @ziplayer/plugin
|
|
3
4
|
|
|
4
|
-
|
|
5
|
+
Official plugin bundle for ZiPlayer. It ships a set of ready‑to‑use source plugins you can register on your `PlayerManager`:
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
- YouTubePlugin: search + stream YouTube videos and playlists
|
|
8
|
+
- SoundCloudPlugin: search + stream SoundCloud tracks and sets
|
|
9
|
+
- SpotifyPlugin: resolve tracks/albums/playlists, stream via fallbacks
|
|
10
|
+
- TTSPlugin: Text‑to‑Speech playback from simple `tts:` queries
|
|
7
11
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
- 🔊 **Queue management** - Add, remove, shuffle, clear
|
|
11
|
-
- 🎚️ **Volume control** - 0-200% volume range
|
|
12
|
-
- ⏯️ **Playback control** - Play, pause, resume, stop, skip
|
|
13
|
-
- 🔁 **Auto play** - Automatically replay the queue when it ends
|
|
14
|
-
- 📊 **Progress bar** - Display playback progress with customizable icons
|
|
15
|
-
- 🔔 **Event-driven** - Rich event system for all player actions
|
|
16
|
-
- 🎭 **Multi-guild support** - Manage players across multiple Discord servers
|
|
17
|
-
- 🗃️ **User data** - Attach custom data to each player for later use
|
|
12
|
+
ZiPlayer is an audio player built on top of `@discordjs/voice` and `discord.js`. This package provides sources; the core player
|
|
13
|
+
lives in `ziplayer`.
|
|
18
14
|
|
|
19
15
|
## Installation
|
|
20
16
|
|
|
21
17
|
```bash
|
|
22
|
-
npm install @
|
|
18
|
+
npm install @ziplayer/plugin ziplayer @discordjs/voice discord.js
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
The TTS plugin uses a lightweight Google TTS wrapper and HTTP fetches:
|
|
23
22
|
|
|
24
|
-
|
|
25
|
-
npm install
|
|
26
|
-
npm install soundcloud-scraper # SoundCloud plugin
|
|
27
|
-
npm install spotify-web-api-node # Spotify plugin
|
|
23
|
+
```bash
|
|
24
|
+
npm install @zibot/zitts axios
|
|
28
25
|
```
|
|
29
26
|
|
|
30
27
|
## Quick Start
|
|
31
28
|
|
|
32
|
-
```
|
|
33
|
-
import { PlayerManager
|
|
34
|
-
|
|
35
|
-
const youtubePlugin = new YouTubePlugin();
|
|
36
|
-
const soundCloudPlugin = new SoundCloudPlugin();
|
|
29
|
+
```ts
|
|
30
|
+
import { PlayerManager } from "ziplayer";
|
|
31
|
+
import { YouTubePlugin, SoundCloudPlugin, SpotifyPlugin, TTSPlugin } from "@ziplayer/plugin";
|
|
37
32
|
|
|
38
|
-
// Create player manager with YouTube and SoundCloud plugins
|
|
39
33
|
const manager = new PlayerManager({
|
|
40
|
-
|
|
34
|
+
plugins: [
|
|
35
|
+
// Order matters: put more specific handlers first (e.g., TTS)
|
|
36
|
+
new TTSPlugin({ defaultLang: "en" }),
|
|
37
|
+
new YouTubePlugin(),
|
|
38
|
+
new SoundCloudPlugin(),
|
|
39
|
+
new SpotifyPlugin(),
|
|
40
|
+
],
|
|
41
41
|
});
|
|
42
42
|
|
|
43
|
-
// Create player
|
|
44
|
-
const player = manager.create(guildId, {
|
|
45
|
-
leaveOnEnd: true,
|
|
46
|
-
leaveTimeout: 30000,
|
|
47
|
-
userdata: { channel: textChannel }, // store channel for events
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
// Connect and play
|
|
43
|
+
// Create and connect a player (discord.js VoiceChannel instance)
|
|
44
|
+
const player = manager.create(guildId, { userdata: { channel: textChannel } });
|
|
51
45
|
await player.connect(voiceChannel);
|
|
52
|
-
await player.play('Never Gonna Give You Up', userId);
|
|
53
|
-
|
|
54
|
-
// Play a full YouTube playlist
|
|
55
|
-
await player.play('https://www.youtube.com/playlist?list=PL123', userId);
|
|
56
46
|
|
|
57
|
-
//
|
|
58
|
-
player.
|
|
47
|
+
// Search & play
|
|
48
|
+
await player.play("never gonna give you up", requestedBy);
|
|
59
49
|
|
|
60
|
-
// Play a
|
|
61
|
-
await player.play(
|
|
50
|
+
// Play a playlist URL directly
|
|
51
|
+
await player.play("https://www.youtube.com/playlist?list=...", requestedBy);
|
|
62
52
|
|
|
53
|
+
// Speak with TTS
|
|
54
|
+
await player.play("tts:en:Hello there!", requestedBy);
|
|
63
55
|
|
|
64
|
-
//
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
});
|
|
68
|
-
player.on('trackStart', (track) => {
|
|
69
|
-
console.log(`Now playing: ${track.title}`);
|
|
70
|
-
player.userdata?.channel?.send(`Now playing: ${track.title}`);
|
|
56
|
+
// Handle events via the manager
|
|
57
|
+
manager.on("trackStart", (plr, track) => {
|
|
58
|
+
plr.userdata?.channel?.send?.(`Now playing: ${track.title}`);
|
|
71
59
|
});
|
|
72
60
|
```
|
|
73
61
|
|
|
74
|
-
##
|
|
62
|
+
## Included Plugins
|
|
75
63
|
|
|
76
64
|
### YouTubePlugin
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
65
|
+
|
|
66
|
+
- Resolves YouTube videos and playlists.
|
|
67
|
+
- Uses `youtubei.js` under the hood.
|
|
68
|
+
|
|
69
|
+
```ts
|
|
70
|
+
import { YouTubePlugin } from "@ziplayer/plugin";
|
|
80
71
|
const youtube = new YouTubePlugin();
|
|
81
72
|
```
|
|
82
73
|
|
|
83
|
-
### SoundCloudPlugin
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
74
|
+
### SoundCloudPlugin
|
|
75
|
+
|
|
76
|
+
- Resolves tracks and sets. You may further tune streaming by combining with other plugins that provide fallbacks.
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
import { SoundCloudPlugin } from "@ziplayer/plugin";
|
|
80
|
+
const sc = new SoundCloudPlugin();
|
|
88
81
|
```
|
|
89
82
|
|
|
90
83
|
### SpotifyPlugin
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
84
|
+
|
|
85
|
+
- Resolves track/album/playlist metadata from Spotify.
|
|
86
|
+
- Streaming typically uses fallback sources (e.g., YouTube) discovered by your plugin set.
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
import { SpotifyPlugin } from "@ziplayer/plugin";
|
|
90
|
+
const sp = new SpotifyPlugin();
|
|
95
91
|
```
|
|
96
92
|
|
|
97
|
-
|
|
93
|
+
### TTSPlugin (Text‑to‑Speech)
|
|
98
94
|
|
|
99
|
-
|
|
100
|
-
|
|
95
|
+
- Plays spoken audio from text using a lightweight Google TTS wrapper.
|
|
96
|
+
- Supported query formats:
|
|
97
|
+
- `tts: <text>`
|
|
98
|
+
- `tts:<lang>:<text>` (e.g., `tts:vi:xin chao`)
|
|
99
|
+
- `tts:<lang>:1:<text>` (set `slow = true`, `0` = normal)
|
|
101
100
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
canHandle(query: string): boolean {
|
|
107
|
-
return query.includes('mysite.com');
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
async search(query: string, requestedBy: string): Promise<SearchResult> {
|
|
111
|
-
// Implement search logic
|
|
112
|
-
return { tracks: [/* ... */] };
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
async getStream(track: Track): Promise<StreamInfo> {
|
|
116
|
-
// Return audio stream
|
|
117
|
-
return { stream, type: 'arbitrary' };
|
|
118
|
-
}
|
|
119
|
-
}
|
|
101
|
+
```ts
|
|
102
|
+
import { TTSPlugin } from "@ziplayer/plugin";
|
|
103
|
+
const tts = new TTSPlugin({ defaultLang: "en", slow: false });
|
|
104
|
+
await player.play("tts:en:1:good morning", requestedBy);
|
|
120
105
|
```
|
|
121
106
|
|
|
122
|
-
|
|
107
|
+
Note: Please comply with the service’s terms and provide your own quotas. The wrapper is intended for lightweight usage and may
|
|
108
|
+
change without notice.
|
|
109
|
+
|
|
110
|
+
Advanced: custom TTS provider
|
|
123
111
|
|
|
124
|
-
|
|
112
|
+
You can override audio generation by passing a `createStream` function. It receives the text and context and can return a Node
|
|
113
|
+
`Readable`, an HTTP(S) URL string, or a `Buffer`.
|
|
114
|
+
|
|
115
|
+
```ts
|
|
116
|
+
const tts = new TTSPlugin({
|
|
117
|
+
defaultLang: "vi",
|
|
118
|
+
async createStream(text, ctx) {
|
|
119
|
+
// Example: integrate with Azure, CAMB.AI, etc.
|
|
120
|
+
// Return a URL and the plugin will stream it
|
|
121
|
+
const url = await myTTSService(text, { lang: ctx?.lang, slow: ctx?.slow });
|
|
122
|
+
return url; // or Readable / Buffer
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
```
|
|
125
126
|
|
|
126
|
-
|
|
127
|
-
- `willPlay` - Before a track begins playing
|
|
128
|
-
- `trackEnd` - When a track finishes
|
|
129
|
-
- `queueEnd` - When the queue is empty
|
|
130
|
-
- `playerError` - When an error occurs
|
|
131
|
-
- `queueAdd` - When a track is added
|
|
132
|
-
- `volumeChange` - When volume changes
|
|
133
|
-
- And more...
|
|
127
|
+
## Writing Your Own Plugin
|
|
134
128
|
|
|
135
|
-
|
|
129
|
+
Plugins implement the `BasePlugin` contract from `ziplayer`:
|
|
136
130
|
|
|
137
|
-
|
|
131
|
+
```ts
|
|
132
|
+
import { BasePlugin, Track, SearchResult, StreamInfo } from "ziplayer";
|
|
138
133
|
|
|
139
|
-
|
|
140
|
-
|
|
134
|
+
export class MyPlugin extends BasePlugin {
|
|
135
|
+
name = "myplugin";
|
|
136
|
+
version = "1.0.0";
|
|
137
|
+
|
|
138
|
+
canHandle(query: string): boolean {
|
|
139
|
+
// Return true if this plugin can handle a given query/URL
|
|
140
|
+
return query.includes("mysite.com");
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
async search(query: string, requestedBy: string): Promise<SearchResult> {
|
|
144
|
+
// Return one or more tracks for the query
|
|
145
|
+
return {
|
|
146
|
+
tracks: [
|
|
147
|
+
{
|
|
148
|
+
id: "abc",
|
|
149
|
+
title: "My Track",
|
|
150
|
+
url: "https://mysite.com/track/abc",
|
|
151
|
+
duration: 180,
|
|
152
|
+
requestedBy,
|
|
153
|
+
source: this.name,
|
|
154
|
+
},
|
|
155
|
+
],
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
async getStream(track: Track): Promise<StreamInfo> {
|
|
160
|
+
// Return a Node Readable stream and an input type
|
|
161
|
+
return { stream, type: "arbitrary" };
|
|
162
|
+
}
|
|
163
|
+
}
|
|
141
164
|
```
|
|
142
165
|
|
|
166
|
+
Tips
|
|
167
|
+
|
|
168
|
+
- Keep network calls bounded; ZiPlayer applies timeouts to extractor operations.
|
|
169
|
+
- For sources that require indirection (like Spotify), consider a `getFallback` strategy via other plugins.
|
|
170
|
+
- Use `track.metadata` for any source‑specific fields you want to carry along.
|
|
171
|
+
|
|
172
|
+
## Requirements
|
|
173
|
+
|
|
174
|
+
- Node.js 18+
|
|
175
|
+
- `discord.js` 14 and `@discordjs/voice` 0.19+
|
|
176
|
+
- For TTS: `@zibot/zitts` and `axios`
|
|
177
|
+
|
|
143
178
|
## License
|
|
144
179
|
|
|
145
|
-
MIT
|
|
180
|
+
MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SoundCloudPlugin.d.ts","sourceRoot":"","sources":["../src/SoundCloudPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"SoundCloudPlugin.d.ts","sourceRoot":"","sources":["../src/SoundCloudPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAgBvE,qBAAa,gBAAiB,SAAQ,UAAU;IAC/C,IAAI,SAAgB;IACpB,OAAO,SAAW;IAClB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,KAAK,CAAgB;;YAOf,IAAI;IAKlB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAgBjC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIxB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAgFjE,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;IAmB5C,gBAAgB,CACrB,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAA;KAAO,GAC/D,OAAO,CAAC,KAAK,EAAE,CAAC;IAiCb,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;IAS9C,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;CAsBzE"}
|
package/dist/SoundCloudPlugin.js
CHANGED
|
@@ -3,6 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SoundCloudPlugin = void 0;
|
|
4
4
|
const ziplayer_1 = require("ziplayer");
|
|
5
5
|
const SoundCloud = require("@zibot/scdl");
|
|
6
|
+
const url_1 = require("url");
|
|
7
|
+
const ALLOWED_SOUNDCLOUD_HOSTS = ["soundcloud.com", "www.soundcloud.com", "m.soundcloud.com"];
|
|
8
|
+
function isValidSoundCloudHost(maybeUrl) {
|
|
9
|
+
try {
|
|
10
|
+
const parsed = new url_1.URL(maybeUrl);
|
|
11
|
+
return ALLOWED_SOUNDCLOUD_HOSTS.includes(parsed.hostname);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
// Not a valid URL, not handled as host-based
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
6
18
|
class SoundCloudPlugin extends ziplayer_1.BasePlugin {
|
|
7
19
|
constructor() {
|
|
8
20
|
super();
|
|
@@ -15,16 +27,38 @@ class SoundCloudPlugin extends ziplayer_1.BasePlugin {
|
|
|
15
27
|
await this.client.init();
|
|
16
28
|
}
|
|
17
29
|
canHandle(query) {
|
|
18
|
-
|
|
19
|
-
|
|
30
|
+
const q = (query || "").trim().toLowerCase();
|
|
31
|
+
const isUrl = q.startsWith("http://") || q.startsWith("https://");
|
|
32
|
+
if (isUrl) {
|
|
33
|
+
return isValidSoundCloudHost(query);
|
|
34
|
+
}
|
|
35
|
+
// Avoid intercepting explicit patterns for other extractors
|
|
36
|
+
if (q.startsWith("tts:") || q.startsWith("say "))
|
|
37
|
+
return false;
|
|
38
|
+
if (q.startsWith("spotify:") || q.includes("open.spotify.com"))
|
|
39
|
+
return false;
|
|
40
|
+
if (q.includes("youtube"))
|
|
41
|
+
return false;
|
|
42
|
+
// Treat remaining non-URL free text as searchable
|
|
43
|
+
return true;
|
|
20
44
|
}
|
|
21
45
|
validate(url) {
|
|
22
|
-
return url
|
|
46
|
+
return isValidSoundCloudHost(url);
|
|
23
47
|
}
|
|
24
48
|
async search(query, requestedBy) {
|
|
25
49
|
await this.ready;
|
|
50
|
+
// If the query is a URL but not a SoundCloud URL, do not handle it here
|
|
51
|
+
// This prevents hijacking e.g. YouTube/Spotify links as free-text searches.
|
|
52
|
+
try {
|
|
53
|
+
const q = (query || "").trim().toLowerCase();
|
|
54
|
+
const isUrl = q.startsWith("http://") || q.startsWith("https://");
|
|
55
|
+
if (isUrl && !this.validate(query)) {
|
|
56
|
+
return { tracks: [] };
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch { }
|
|
26
60
|
try {
|
|
27
|
-
if (query
|
|
61
|
+
if (isValidSoundCloudHost(query)) {
|
|
28
62
|
try {
|
|
29
63
|
const info = await this.client.getTrackDetails(query);
|
|
30
64
|
const track = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SoundCloudPlugin.js","sourceRoot":"","sources":["../src/SoundCloudPlugin.ts"],"names":[],"mappings":";;;AAAA,uCAAuE;AAEvE,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"SoundCloudPlugin.js","sourceRoot":"","sources":["../src/SoundCloudPlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpotifyPlugin.d.ts","sourceRoot":"","sources":["../src/SpotifyPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"SpotifyPlugin.d.ts","sourceRoot":"","sources":["../src/SpotifyPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEvE;;;;;;GAMG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAC5C,IAAI,SAAa;IACjB,OAAO,SAAW;IAElB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAWjC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAUxB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAyBjE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAIvE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAIpE,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;IAInD,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,SAAS;YAeH,sBAAsB;YA0BtB,eAAe;IA0B7B,OAAO,CAAC,UAAU;YAeJ,WAAW;CAgBzB"}
|
package/dist/SpotifyPlugin.js
CHANGED
|
@@ -21,7 +21,7 @@ class SpotifyPlugin extends ziplayer_1.BasePlugin {
|
|
|
21
21
|
return true;
|
|
22
22
|
try {
|
|
23
23
|
const u = new URL(q);
|
|
24
|
-
return u.hostname
|
|
24
|
+
return u.hostname === "open.spotify.com";
|
|
25
25
|
}
|
|
26
26
|
catch {
|
|
27
27
|
return false;
|
|
@@ -32,7 +32,7 @@ class SpotifyPlugin extends ziplayer_1.BasePlugin {
|
|
|
32
32
|
return true;
|
|
33
33
|
try {
|
|
34
34
|
const u = new URL(url);
|
|
35
|
-
return u.hostname
|
|
35
|
+
return u.hostname === "open.spotify.com";
|
|
36
36
|
}
|
|
37
37
|
catch {
|
|
38
38
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpotifyPlugin.js","sourceRoot":"","sources":["../src/SpotifyPlugin.ts"],"names":[],"mappings":";;;AAAA,uCAAuE;AAEvE;;;;;;GAMG;AACH,MAAa,aAAc,SAAQ,qBAAU;IAA7C;;
|
|
1
|
+
{"version":3,"file":"SpotifyPlugin.js","sourceRoot":"","sources":["../src/SpotifyPlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { BasePlugin, Track, SearchResult, StreamInfo } from "ziplayer";
|
|
2
|
+
import { Readable } from "stream";
|
|
3
|
+
export interface TTSPluginOptions {
|
|
4
|
+
defaultLang?: string;
|
|
5
|
+
slow?: boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Optional custom TTS hook. If provided, it will be used to
|
|
8
|
+
* create the audio stream for the given text instead of the
|
|
9
|
+
* built-in Google TTS wrapper.
|
|
10
|
+
*
|
|
11
|
+
* Return one of:
|
|
12
|
+
* - Node Readable (preferred)
|
|
13
|
+
* - HTTP(S) URL string or URL object
|
|
14
|
+
* - Buffer / Uint8Array / ArrayBuffer
|
|
15
|
+
\t * - Or an object with { stream, type } | { url, type }
|
|
16
|
+
*/
|
|
17
|
+
createStream?: (text: string, ctx?: {
|
|
18
|
+
lang: string;
|
|
19
|
+
slow: boolean;
|
|
20
|
+
track?: Track;
|
|
21
|
+
}) => Promise<Readable | string | URL | Buffer | Uint8Array | ArrayBuffer> | Readable | string | URL | Buffer | Uint8Array | ArrayBuffer;
|
|
22
|
+
}
|
|
23
|
+
export declare class TTSPlugin extends BasePlugin {
|
|
24
|
+
name: string;
|
|
25
|
+
version: string;
|
|
26
|
+
private opts;
|
|
27
|
+
constructor(opts?: TTSPluginOptions);
|
|
28
|
+
canHandle(query: string): boolean;
|
|
29
|
+
search(query: string, requestedBy: string): Promise<SearchResult>;
|
|
30
|
+
getStream(track: Track): Promise<StreamInfo>;
|
|
31
|
+
private toReadable;
|
|
32
|
+
private parseQuery;
|
|
33
|
+
private encodeConfig;
|
|
34
|
+
private extractConfig;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=TTSPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TTSPlugin.d.ts","sourceRoot":"","sources":["../src/TTSPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAIlC,MAAM,WAAW,gBAAgB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,CACd,IAAI,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,KAElD,OAAO,CAAC,QAAQ,GAAG,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC,GACpE,QAAQ,GACR,MAAM,GACN,GAAG,GACH,MAAM,GACN,UAAU,GACV,WAAW,CAAC;CACf;AAQD,qBAAa,SAAU,SAAQ,UAAU;IACxC,IAAI,SAAS;IACb,OAAO,SAAW;IAClB,OAAO,CAAC,IAAI,CAA0F;gBAE1F,IAAI,CAAC,EAAE,gBAAgB;IASnC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAM3B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAuBjE,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;YAsEpC,UAAU;IAgBxB,OAAO,CAAC,UAAU;IAiDlB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,aAAa;CAYrB"}
|