discord-player 7.0.0-dev.2 → 7.0.0-dev.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 +46 -65
- package/dist/index.d.ts +24 -51
- package/dist/index.js +435 -222
- package/package.json +11 -8
package/README.md
CHANGED
|
@@ -8,26 +8,24 @@ Discord Player is a robust framework for developing Discord Music bots using Jav
|
|
|
8
8
|
|
|
9
9
|
# Why Choose Discord Player?
|
|
10
10
|
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
-
> Eris compat mode does not support `VoiceStateUpdate` handler. You need to handle it manually.
|
|
11
|
+
- Beginner-friendly with easy-to-understand features
|
|
12
|
+
- TypeScript support
|
|
13
|
+
- Offers hackable APIs.
|
|
14
|
+
- Supports audio player sharing
|
|
15
|
+
- Quick and easy setup process
|
|
16
|
+
- Wide range of player management features
|
|
17
|
+
- Offers 64+ built-in audio filter presets
|
|
18
|
+
- Highly customizable according to your needs
|
|
19
|
+
- Automatic queue management
|
|
20
|
+
- Query caching support
|
|
21
|
+
- Extensible sources through the Extractors API
|
|
22
|
+
- Object-oriented design
|
|
23
|
+
- Built-in stats tracker
|
|
24
|
+
- Offers easy debugging methods
|
|
25
|
+
- Out-of-the-box voice states handling
|
|
26
|
+
- IP Rotation support
|
|
27
|
+
- Easy serialization and deserialization
|
|
28
|
+
- Limited support for [Eris](https://npmjs.com/eris)
|
|
31
29
|
|
|
32
30
|
## Installation
|
|
33
31
|
|
|
@@ -42,30 +40,12 @@ $ npm install --save discord-player # main library
|
|
|
42
40
|
$ npm install --save @discord-player/extractor # extractors provider
|
|
43
41
|
```
|
|
44
42
|
|
|
45
|
-
> Discord Player recognizes `@discord-player/extractor` and loads it automatically by default. Just invoke `await player.extractors.loadDefault()`.
|
|
46
|
-
|
|
47
43
|
#### Opus Library
|
|
48
44
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
- [mediaplex](https://npmjs.com/mediaplex)
|
|
52
|
-
- [@discordjs/opus](https://npmjs.com/@discordjs/opus)
|
|
53
|
-
- [opusscript](https://npmjs.com/opusscript)
|
|
54
|
-
- [@evan/opus](https://npmjs.com/@evan/opus)
|
|
55
|
-
- [node-opus](https://npmjs.com/node-opus)
|
|
56
|
-
|
|
57
|
-
Among these, mediaplex is the recommended library as it adds more functionalities to discord-player than just libopus interface. You can install opus libraries by running:
|
|
45
|
+
We recommend mediaplex for libopus. Mediaplex also helps with audio metadata extraction.
|
|
58
46
|
|
|
59
47
|
```bash
|
|
60
48
|
$ npm install --save mediaplex
|
|
61
|
-
# or
|
|
62
|
-
$ npm install --save @discordjs/opus
|
|
63
|
-
# or
|
|
64
|
-
$ npm install --save opusscript
|
|
65
|
-
# or
|
|
66
|
-
$ npm install --save @evan/opus
|
|
67
|
-
# or
|
|
68
|
-
$ npm install --save node-opus
|
|
69
49
|
```
|
|
70
50
|
|
|
71
51
|
#### FFmpeg or Avconv
|
|
@@ -92,17 +72,18 @@ Let's create a main player instance. This instance handles and keeps track of al
|
|
|
92
72
|
|
|
93
73
|
```js index.js
|
|
94
74
|
const { Player } = require('discord-player');
|
|
75
|
+
const { DefaultExtractors } = require('@discord-player/extractor');
|
|
95
76
|
|
|
96
77
|
const client = new Discord.Client({
|
|
97
|
-
|
|
98
|
-
|
|
78
|
+
// Make sure you have 'GuildVoiceStates' intent enabled
|
|
79
|
+
intents: ['GuildVoiceStates' /* Other intents */],
|
|
99
80
|
});
|
|
100
81
|
|
|
101
82
|
// this is the entrypoint for discord-player based application
|
|
102
83
|
const player = new Player(client);
|
|
103
84
|
|
|
104
85
|
// Now, lets load all the default extractors, except 'YouTubeExtractor'. You can remove the filter if you want to include youtube.
|
|
105
|
-
await player.extractors.
|
|
86
|
+
await player.extractors.loadMulti(DefaultExtractors);
|
|
106
87
|
```
|
|
107
88
|
|
|
108
89
|
Discord Player is mostly events based. It emits different events based on the context and actions. Let's add a basic event listener to notify the user when a track starts to play:
|
|
@@ -110,8 +91,8 @@ Discord Player is mostly events based. It emits different events based on the co
|
|
|
110
91
|
```js index.js
|
|
111
92
|
// this event is emitted whenever discord-player starts to play a track
|
|
112
93
|
player.events.on('playerStart', (queue, track) => {
|
|
113
|
-
|
|
114
|
-
|
|
94
|
+
// we will later define queue.metadata object while creating the queue
|
|
95
|
+
queue.metadata.channel.send(`Started playing **${track.cleanTitle}**!`);
|
|
115
96
|
});
|
|
116
97
|
```
|
|
117
98
|
|
|
@@ -149,27 +130,27 @@ Let's move on to the command part. You can define the command as per your requir
|
|
|
149
130
|
const { useMainPlayer } = require('discord-player');
|
|
150
131
|
|
|
151
132
|
export async function execute(interaction) {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
133
|
+
const player = useMainPlayer(); // get player instance
|
|
134
|
+
const channel = interaction.member.voice.channel;
|
|
135
|
+
if (!channel) return interaction.reply('You are not connected to a voice channel!'); // make sure we have a voice channel
|
|
136
|
+
const query = interaction.options.getString('query', true); // we need input/query to play
|
|
137
|
+
|
|
138
|
+
// let's defer the interaction as things can take time to process
|
|
139
|
+
await interaction.deferReply();
|
|
140
|
+
|
|
141
|
+
try {
|
|
142
|
+
const { track } = await player.play(channel, query, {
|
|
143
|
+
nodeOptions: {
|
|
144
|
+
// nodeOptions are the options for guild node (aka your queue in simple word)
|
|
145
|
+
metadata: interaction, // we can access this metadata object using queue.metadata later on
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
return interaction.followUp(`**${track.cleanTitle}** enqueued!`);
|
|
150
|
+
} catch (e) {
|
|
151
|
+
// let's return error if something failed
|
|
152
|
+
return interaction.followUp(`Something went wrong: ${e}`);
|
|
153
|
+
}
|
|
173
154
|
}
|
|
174
155
|
```
|
|
175
156
|
|
package/dist/index.d.ts
CHANGED
|
@@ -7,11 +7,10 @@ import { EqualizerBand, BiquadFilters, PCMFilters, FiltersChain } from '@discord
|
|
|
7
7
|
export { AF_NIGHTCORE_RATE, AF_VAPORWAVE_RATE, BASS_EQ_BANDS, FilterType as BiquadFilterType, BiquadFilters, FiltersChain, AudioFilters as PCMAudioFilters, PCMFilters, Q_BUTTERWORTH, VolumeTransformer } from '@discord-player/equalizer';
|
|
8
8
|
import * as stream from 'stream';
|
|
9
9
|
import { Readable, Duplex } from 'stream';
|
|
10
|
-
import * as _discord_player_extractor from '@discord-player/extractor';
|
|
11
|
-
import { BridgeProvider } from '@discord-player/extractor';
|
|
12
10
|
import { RequestOptions } from 'http';
|
|
13
11
|
import { StreamType, AudioPlayerError, AudioResource, VoiceConnection, AudioPlayer, AudioPlayerStatus } from 'discord-voip';
|
|
14
12
|
export { AudioPlayer, CreateAudioPlayerOptions, JoinConfig, JoinVoiceChannelOptions, createAudioPlayer, getVoiceConnection, getVoiceConnections, joinVoiceChannel } from 'discord-voip';
|
|
13
|
+
import { BridgeProvider } from '@discord-player/extractor';
|
|
15
14
|
import { FFmpegLib } from '@discord-player/ffmpeg';
|
|
16
15
|
export * from '@discord-player/ffmpeg';
|
|
17
16
|
|
|
@@ -954,147 +953,118 @@ declare const GuildQueueEvent: {
|
|
|
954
953
|
/**
|
|
955
954
|
* Emitted when audio track is added to the queue
|
|
956
955
|
*/
|
|
957
|
-
readonly audioTrackAdd: "audioTrackAdd";
|
|
958
956
|
readonly AudioTrackAdd: "audioTrackAdd";
|
|
959
957
|
/**
|
|
960
958
|
* Emitted when audio tracks were added to the queue
|
|
961
959
|
*/
|
|
962
|
-
readonly audioTracksAdd: "audioTracksAdd";
|
|
963
960
|
readonly AudioTracksAdd: "audioTracksAdd";
|
|
964
961
|
/**
|
|
965
962
|
* Emitted when audio track is removed from the queue
|
|
966
963
|
*/
|
|
967
|
-
readonly audioTrackRemove: "audioTrackRemove";
|
|
968
964
|
readonly AudioTrackRemove: "audioTrackRemove";
|
|
969
965
|
/**
|
|
970
966
|
* Emitted when audio tracks are removed from the queue
|
|
971
967
|
*/
|
|
972
|
-
readonly audioTracksRemove: "audioTracksRemove";
|
|
973
968
|
readonly AudioTracksRemove: "audioTracksRemove";
|
|
974
969
|
/**
|
|
975
970
|
* Emitted when a connection is created
|
|
976
971
|
*/
|
|
977
|
-
readonly connection: "connection";
|
|
978
972
|
readonly Connection: "connection";
|
|
979
973
|
/**
|
|
980
974
|
* Emitted when a voice connection is destroyed
|
|
981
975
|
*/
|
|
982
|
-
readonly connectionDestroyed: "connectionDestroyed";
|
|
983
976
|
readonly ConnectionDestroyed: "connectionDestroyed";
|
|
984
977
|
/**
|
|
985
978
|
* Emitted when the bot is disconnected from the channel
|
|
986
979
|
*/
|
|
987
|
-
readonly disconnect: "disconnect";
|
|
988
980
|
readonly Disconnect: "disconnect";
|
|
989
981
|
/**
|
|
990
982
|
* Emitted when the queue sends a debug info
|
|
991
983
|
*/
|
|
992
|
-
readonly debug: "debug";
|
|
993
984
|
readonly Debug: "debug";
|
|
994
985
|
/**
|
|
995
986
|
* Emitted when the queue encounters error
|
|
996
987
|
*/
|
|
997
|
-
readonly error: "error";
|
|
998
988
|
readonly Error: "error";
|
|
999
989
|
/**
|
|
1000
990
|
* Emitted when the voice channel is empty
|
|
1001
991
|
*/
|
|
1002
|
-
readonly emptyChannel: "emptyChannel";
|
|
1003
992
|
readonly EmptyChannel: "emptyChannel";
|
|
1004
993
|
/**
|
|
1005
994
|
* Emitted when the queue is empty
|
|
1006
995
|
*/
|
|
1007
|
-
readonly emptyQueue: "emptyQueue";
|
|
1008
996
|
readonly EmptyQueue: "emptyQueue";
|
|
1009
997
|
/**
|
|
1010
998
|
* Emitted when the audio player starts streaming audio track
|
|
1011
999
|
*/
|
|
1012
|
-
readonly playerStart: "playerStart";
|
|
1013
1000
|
readonly PlayerStart: "playerStart";
|
|
1014
1001
|
/**
|
|
1015
1002
|
* Emitted when the audio player errors while streaming audio track
|
|
1016
1003
|
*/
|
|
1017
|
-
readonly playerError: "playerError";
|
|
1018
1004
|
readonly PlayerError: "playerError";
|
|
1019
1005
|
/**
|
|
1020
1006
|
* Emitted when the audio player finishes streaming audio track
|
|
1021
1007
|
*/
|
|
1022
|
-
readonly playerFinish: "playerFinish";
|
|
1023
1008
|
readonly PlayerFinish: "playerFinish";
|
|
1024
1009
|
/**
|
|
1025
1010
|
* Emitted when the audio player skips current track
|
|
1026
1011
|
*/
|
|
1027
|
-
readonly playerSkip: "playerSkip";
|
|
1028
1012
|
readonly PlayerSkip: "playerSkip";
|
|
1029
1013
|
/**
|
|
1030
1014
|
* Emitted when the audio player is triggered
|
|
1031
1015
|
*/
|
|
1032
|
-
readonly playerTrigger: "playerTrigger";
|
|
1033
1016
|
readonly PlayerTrigger: "playerTrigger";
|
|
1034
1017
|
/**
|
|
1035
1018
|
* Emitted when the voice state is updated. Consuming this event may disable default voice state update handler if `Player.isVoiceStateHandlerLocked()` returns `false`.
|
|
1036
1019
|
*/
|
|
1037
|
-
readonly voiceStateUpdate: "voiceStateUpdate";
|
|
1038
1020
|
readonly VoiceStateUpdate: "voiceStateUpdate";
|
|
1039
1021
|
/**
|
|
1040
1022
|
* Emitted when volume is updated
|
|
1041
1023
|
*/
|
|
1042
|
-
readonly volumeChange: "volumeChange";
|
|
1043
1024
|
readonly VolumeChange: "volumeChange";
|
|
1044
1025
|
/**
|
|
1045
1026
|
* Emitted when player is paused
|
|
1046
1027
|
*/
|
|
1047
|
-
readonly playerPause: "playerPause";
|
|
1048
1028
|
readonly PlayerPause: "playerPause";
|
|
1049
1029
|
/**
|
|
1050
1030
|
* Emitted when player is resumed
|
|
1051
1031
|
*/
|
|
1052
|
-
readonly playerResume: "playerResume";
|
|
1053
1032
|
readonly PlayerResume: "playerResume";
|
|
1054
1033
|
/**
|
|
1055
1034
|
* Biquad Filters Update
|
|
1056
1035
|
*/
|
|
1057
|
-
readonly biquadFiltersUpdate: "biquadFiltersUpdate";
|
|
1058
1036
|
readonly BiquadFiltersUpdate: "biquadFiltersUpdate";
|
|
1059
1037
|
/**
|
|
1060
1038
|
* Equalizer Update
|
|
1061
1039
|
*/
|
|
1062
|
-
readonly equalizerUpdate: "equalizerUpdate";
|
|
1063
1040
|
readonly EqualizerUpdate: "equalizerUpdate";
|
|
1064
1041
|
/**
|
|
1065
1042
|
* DSP update
|
|
1066
1043
|
*/
|
|
1067
|
-
readonly dspUpdate: "dspUpdate";
|
|
1068
1044
|
readonly DSPUpdate: "dspUpdate";
|
|
1069
1045
|
/**
|
|
1070
1046
|
* Audio Filters Update
|
|
1071
1047
|
*/
|
|
1072
|
-
readonly audioFiltersUpdate: "audioFiltersUpdate";
|
|
1073
1048
|
readonly AudioFiltersUpdate: "audioFiltersUpdate";
|
|
1074
1049
|
/**
|
|
1075
1050
|
* Audio player will play next track
|
|
1076
1051
|
*/
|
|
1077
|
-
readonly willPlayTrack: "willPlayTrack";
|
|
1078
1052
|
readonly WillPlayTrack: "willPlayTrack";
|
|
1079
1053
|
/**
|
|
1080
1054
|
* Emitted when a voice channel is repopulated
|
|
1081
1055
|
*/
|
|
1082
|
-
readonly channelPopulate: "channelPopulate";
|
|
1083
1056
|
readonly ChannelPopulate: "channelPopulate";
|
|
1084
1057
|
/**
|
|
1085
1058
|
* Emitted when a queue is successfully created
|
|
1086
1059
|
*/
|
|
1087
|
-
readonly queueCreate: "queueCreate";
|
|
1088
1060
|
readonly QueueCreate: "queueCreate";
|
|
1089
1061
|
/**
|
|
1090
1062
|
* Emitted when a queue is deleted
|
|
1091
1063
|
*/
|
|
1092
|
-
readonly queueDelete: "queueDelete";
|
|
1093
1064
|
readonly QueueDelete: "queueDelete";
|
|
1094
1065
|
/**
|
|
1095
1066
|
* Emitted when a queue is trying to add similar track for autoplay
|
|
1096
1067
|
*/
|
|
1097
|
-
readonly willAutoPlay: "willAutoPlay";
|
|
1098
1068
|
readonly WillAutoPlay: "willAutoPlay";
|
|
1099
1069
|
};
|
|
1100
1070
|
type GuildQueueEvent = (typeof GuildQueueEvent)[keyof typeof GuildQueueEvent];
|
|
@@ -1815,8 +1785,8 @@ declare function useHistory<Meta = unknown>(): GuildQueueHistory<Meta> | null;
|
|
|
1815
1785
|
declare function usePlayer<Meta = unknown>(): GuildQueuePlayerNode<Meta> | null;
|
|
1816
1786
|
|
|
1817
1787
|
/**
|
|
1818
|
-
* Fetch guild queue
|
|
1819
|
-
* @param node Guild queue node resolvable
|
|
1788
|
+
* Fetch guild queue.
|
|
1789
|
+
* @param node Guild queue node resolvable. Defaults to inferred guild from context.
|
|
1820
1790
|
*/
|
|
1821
1791
|
declare function useQueue<Meta = unknown>(): GuildQueue<Meta> | null;
|
|
1822
1792
|
|
|
@@ -1835,13 +1805,9 @@ declare function useMetadata<T = unknown>(): MetadataDispatch<T>;
|
|
|
1835
1805
|
|
|
1836
1806
|
interface TimelineDispatcherOptions {
|
|
1837
1807
|
ignoreFilters: boolean;
|
|
1808
|
+
node: NodeResolvable;
|
|
1838
1809
|
}
|
|
1839
|
-
|
|
1840
|
-
* Fetch or manipulate current track
|
|
1841
|
-
* @param node Guild queue node resolvable
|
|
1842
|
-
* @param options Options for timeline dispatcher
|
|
1843
|
-
*/
|
|
1844
|
-
declare function useTimeline(options?: Partial<TimelineDispatcherOptions>): {
|
|
1810
|
+
interface GuildQueueTimeline {
|
|
1845
1811
|
readonly timestamp: PlayerTimestamp;
|
|
1846
1812
|
readonly volume: number;
|
|
1847
1813
|
readonly paused: boolean;
|
|
@@ -1850,7 +1816,12 @@ declare function useTimeline(options?: Partial<TimelineDispatcherOptions>): {
|
|
|
1850
1816
|
resume(): boolean;
|
|
1851
1817
|
setVolume(vol: number): boolean;
|
|
1852
1818
|
setPosition(time: number): Promise<boolean>;
|
|
1853
|
-
}
|
|
1819
|
+
}
|
|
1820
|
+
/**
|
|
1821
|
+
* Fetch or manipulate current track
|
|
1822
|
+
* @param options Options for timeline dispatcher
|
|
1823
|
+
*/
|
|
1824
|
+
declare function useTimeline(): GuildQueueTimeline | null;
|
|
1854
1825
|
|
|
1855
1826
|
/**
|
|
1856
1827
|
* Global onAfterCreateStream handler
|
|
@@ -1872,10 +1843,6 @@ type VolumeDispatch = readonly [() => number, (volume: number | SetterFN) => boo
|
|
|
1872
1843
|
*/
|
|
1873
1844
|
declare function useVolume(): VolumeDispatch;
|
|
1874
1845
|
|
|
1875
|
-
declare const knownExtractorKeys: readonly ["SpotifyExtractor", "AppleMusicExtractor", "SoundCloudExtractor", "VimeoExtractor", "ReverbnationExtractor", "AttachmentExtractor"];
|
|
1876
|
-
type ExtractorLoaderOptionDict = {
|
|
1877
|
-
[K in (typeof knownExtractorKeys)[number]]?: ConstructorParameters<typeof _discord_player_extractor[K]>[1];
|
|
1878
|
-
};
|
|
1879
1846
|
interface ExtractorSession {
|
|
1880
1847
|
id: string;
|
|
1881
1848
|
attemptedExtractors: Set<string>;
|
|
@@ -1929,13 +1896,14 @@ declare class ExtractorExecutionContext extends PlayerEventsEmitter<ExtractorExe
|
|
|
1929
1896
|
* Get the current execution context
|
|
1930
1897
|
*/
|
|
1931
1898
|
getContext(): ExtractorSession | null;
|
|
1899
|
+
loadDefault(): Promise<void>;
|
|
1932
1900
|
/**
|
|
1933
|
-
* Load
|
|
1901
|
+
* Load a bundle of extractors.
|
|
1902
|
+
* @example import { DefaultExtractors } from '@discord-player/extractor';
|
|
1903
|
+
*
|
|
1904
|
+
* await player.extractors.loadMulti(DefaultExtractors);
|
|
1934
1905
|
*/
|
|
1935
|
-
|
|
1936
|
-
success: boolean;
|
|
1937
|
-
error: Error;
|
|
1938
|
-
} | {
|
|
1906
|
+
loadMulti<O extends object, T extends (typeof BaseExtractor<O>)[], R extends Record<T[number]['identifier'], ConstructorParameters<T[number]>[1]>>(bundle: T, options?: R): Promise<{
|
|
1939
1907
|
success: boolean;
|
|
1940
1908
|
error: null;
|
|
1941
1909
|
}>;
|
|
@@ -2554,7 +2522,7 @@ declare class GuildNodeManager<Meta = unknown> {
|
|
|
2554
2522
|
* Resolve queue
|
|
2555
2523
|
* @param node Queue resolvable
|
|
2556
2524
|
*/
|
|
2557
|
-
resolve<T = Meta>(node: NodeResolvable): GuildQueue<
|
|
2525
|
+
resolve<T = Meta>(node: NodeResolvable): GuildQueue<T> | undefined;
|
|
2558
2526
|
/**
|
|
2559
2527
|
* Resolve queue id
|
|
2560
2528
|
* @param node Queue resolvable
|
|
@@ -3053,6 +3021,10 @@ interface PlayerInitOptions {
|
|
|
3053
3021
|
* Configure ffmpeg path
|
|
3054
3022
|
*/
|
|
3055
3023
|
ffmpegPath?: string;
|
|
3024
|
+
/**
|
|
3025
|
+
* Whether to override the fallback context. Defaults to `true`.
|
|
3026
|
+
*/
|
|
3027
|
+
overrideFallbackContext?: boolean;
|
|
3056
3028
|
}
|
|
3057
3029
|
|
|
3058
3030
|
declare class AudioFilters {
|
|
@@ -3254,6 +3226,7 @@ interface DependenciesReport {
|
|
|
3254
3226
|
'libsodium-wrappers': MaybeNull<string>;
|
|
3255
3227
|
'sodium-javascript': MaybeNull<string>;
|
|
3256
3228
|
'@stablelib/xchacha20poly1305': MaybeNull<string>;
|
|
3229
|
+
'@nobel/ciphers': MaybeNull<string>;
|
|
3257
3230
|
};
|
|
3258
3231
|
ffmpeg: FFmpegReport;
|
|
3259
3232
|
}
|
|
@@ -3294,4 +3267,4 @@ declare const DependencyReportGenerator: {
|
|
|
3294
3267
|
|
|
3295
3268
|
declare const version: string;
|
|
3296
3269
|
|
|
3297
|
-
export { AFilterGraph, AsyncQueue, AsyncQueueAcquisitionOptions, AsyncQueueEntry, AsyncQueueExceptionHandler, AudioFilters, BaseExtractor, Context, ContextReceiver, CreateStreamOps, DependenciesReport, DependencyReportGenerator, DiscordPlayerQueryResultCache, Encodable, EqualizerConfigurationPreset, ExtractorExecutionContext, ExtractorExecutionEvents, ExtractorExecutionFN, ExtractorExecutionResult, ExtractorInfo,
|
|
3270
|
+
export { AFilterGraph, AsyncQueue, AsyncQueueAcquisitionOptions, AsyncQueueEntry, AsyncQueueExceptionHandler, AudioFilters, BaseExtractor, Context, ContextReceiver, CreateStreamOps, DependenciesReport, DependencyReportGenerator, DiscordPlayerQueryResultCache, Encodable, EqualizerConfigurationPreset, ExtractorExecutionContext, ExtractorExecutionEvents, ExtractorExecutionFN, ExtractorExecutionResult, ExtractorInfo, ExtractorResolvable, ExtractorSearchContext, ExtractorSession, ExtractorStreamable, FFMPEG_ARGS_PIPED, FFMPEG_ARGS_STRING, FFMPEG_SRATE_REGEX, FFmpegFilterer, FFmpegReport, FFmpegStreamOptions, FilterGraph, FiltersName, GuildNodeCreateOptions, GuildNodeInit, GuildNodeManager, GuildQueue, GuildQueueAFiltersCache, GuildQueueAudioFilters, GuildQueueEvent, GuildQueueEvents, GuildQueueHistory, GuildQueuePlayerNode, GuildQueueStatistics, GuildQueueStatisticsMetadata, GuildQueueTimeline, LrcGetParams, LrcGetResult, LrcLib, LrcSearchParams, LrcSearchResult, MaybeNull, MetadataDispatch, NextFunction, NodeResolvable, OnAfterCreateStreamHandler, OnBeforeCreateStreamHandler, PackageJSON, PlayOptions, Player, PlayerEvent, PlayerEvents, PlayerEventsEmitter, PlayerInitOptions, PlayerNodeInitializationResult, PlayerNodeInitializerOptions, PlayerProgressbarOptions, PlayerSearchResult, PlayerTimestamp, PlayerTriggeredReason, Playlist, PlaylistInitData, PlaylistJSON, PostProcessedResult, QueryCache, QueryCacheOptions, QueryCacheProvider, QueryCacheResolverContext, QueryExtractorSearch, QueryResolver, QueryType, QueueFilters, QueueRepeatMode, RawTrackData, RequestEntity, ResolvedQuery, ResourcePlayOptions, Runtime, RuntimeType, SearchOptions, SearchQueryType, SearchResult, SearchResultData, SequentialBucket, SerializedPlaylist, SerializedTrack, SerializedType, SetterFN$1 as SetterFN, SkipOptions, StreamConfig, StreamDispatcher, TimeData, TimelineDispatcherOptions, Track, TrackJSON, TrackLike, TrackResolvable, TrackSkipReason, TrackSource, TypeUtil, Util, VALIDATE_QUEUE_CAP, VoiceConnectConfig, VoiceEvents, VoiceStateHandler, VoiceUtils, WithMetadata, createContext, createErisCompat, createFFmpegStream, decode, deserialize, encode, isErisProxy, onAfterCreateStream, onBeforeCreateStream, serialize, tryIntoThumbnailString, useContext, useHistory, useMainPlayer, useMetadata, usePlayer, useQueue, useTimeline, useVolume, version };
|