Update index.js
Browse files
index.js
CHANGED
|
@@ -195,7 +195,30 @@ async function fby2mate(url) {
|
|
| 195 |
return e;
|
| 196 |
}
|
| 197 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 198 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 199 |
async function streamToBuffer(stream) {
|
| 200 |
const chunks = [];
|
| 201 |
const captureChunks = new Writable({
|
|
@@ -234,6 +257,7 @@ async function ytAPI(url) {
|
|
| 234 |
let audioStream = await ytdl(ID, {filter: "audioonly", quality:"lowestaudio"})
|
| 235 |
let buffermp4 = await streamToBuffer(videoStream)
|
| 236 |
let buffermp3 = await streamToBuffer(audioStream)
|
|
|
|
| 237 |
buffermp4 = await fileDitch(buffermp4)
|
| 238 |
buffermp3 = await fileDitch(buffermp3)
|
| 239 |
return {
|
|
|
|
| 195 |
return e;
|
| 196 |
}
|
| 197 |
}
|
| 198 |
+
async function convertWebmToMp3(webmBuffer) {
|
| 199 |
+
return new Promise((resolve, reject) => {
|
| 200 |
+
const inputStream = new Readable();
|
| 201 |
+
inputStream.push(webmBuffer);
|
| 202 |
+
inputStream.push(null);
|
| 203 |
|
| 204 |
+
const chunks = [];
|
| 205 |
+
const outputStream = new Readable({
|
| 206 |
+
read() {
|
| 207 |
+
this.push(Buffer.concat(chunks));
|
| 208 |
+
this.push(null);
|
| 209 |
+
}
|
| 210 |
+
});
|
| 211 |
+
|
| 212 |
+
ffmpeg(inputStream)
|
| 213 |
+
.inputFormat('webm')
|
| 214 |
+
.audioCodec('libmp3lame')
|
| 215 |
+
.format('mp3')
|
| 216 |
+
.on('error', (err) => reject(err))
|
| 217 |
+
.on('data', (chunk) => chunks.push(chunk))
|
| 218 |
+
.on('end', () => resolve(Buffer.concat(chunks)))
|
| 219 |
+
.pipe(outputStream, { end: true });
|
| 220 |
+
});
|
| 221 |
+
}
|
| 222 |
async function streamToBuffer(stream) {
|
| 223 |
const chunks = [];
|
| 224 |
const captureChunks = new Writable({
|
|
|
|
| 257 |
let audioStream = await ytdl(ID, {filter: "audioonly", quality:"lowestaudio"})
|
| 258 |
let buffermp4 = await streamToBuffer(videoStream)
|
| 259 |
let buffermp3 = await streamToBuffer(audioStream)
|
| 260 |
+
buffermp3 = await convertWebmToMp3(buffermp3)
|
| 261 |
buffermp4 = await fileDitch(buffermp4)
|
| 262 |
buffermp3 = await fileDitch(buffermp3)
|
| 263 |
return {
|