koice
v1.2.6
Published
KOOK voice channel SDK
Downloads
6
Readme
koice.js
Node.js SDK to stream audio content to a KOOK voice channel.
How to use
import Koice from 'koice';
You must have ffmpeg
in your PATH, or you can specify one
const kasumi = new Kasumi({
type: "websocket",
token: "Your KOOK bot token",
})
const koice = await Koice.create(kasumi, "Id of the channel to stream to", {
// all entries are optional
// password to the channel if exists
password: "12345678"
// use the same port and socket for both RTP and RTCP
// issues may occur if set to true
rtcpMux: false,
// apply factor to official defined bitrate for the voice channel
// use smaller value to avoid being kicked for overrate
bitrateFactor: 0.9,
// force koice.js to stream realtime
// required if not pushing audio contents at appropriate rate (eg. entire track at once)
forceRealSpeed: false,
// make koice use a specific ffmpeg binary
binary: "/path/to/ffmpeg"
});
const fileHead: Buffer = ...;
const chunk: Buffer = ...;
/**
* IMPORTANT: set file head separately first
* this will be used to determine your file format
* when reconnecting to the channel once network problems occured,
*
* or alternatively push file head directly.
* `koice.push(fileHead);`
* i.e. the first chunk that was pushed will be saved as file head.
*/
koice.setFilehead(fileHead);
// starts pushing the rest of your audio file
koice.push(chunk);
import * as fs from 'fs';
const kasumi = new Kasumi({
type: "websocket",
token: "Your KOOK bot token",
})
const koice = await Koice.create(kasumi, "Id of the channel to stream to", {
password: "12345678"
rtcpMux: false,
bitrateFactor: 0.9,
forceRealSpeed: false
});
const fileHead: Buffer = ...;
const chunk: Buffer = ...;
/**
* IMPORTANT: set file head separately first
* this will be used to determine your file format
* when reconnecting to the channel once network problems occured,
*
* or alternatively push file head directly.
* `koice.push(fileHead);`
* i.e. the first chunk that was pushed will be saved as file head.
*/
koice.setFilehead(fileHead);
koice.push(chunk);
You can refer to kook-arisa for usage of this package in real world application.
© 2022-2024 salt, Koice.js and kook-arisa, released under the MIT license.