Update index.js
Browse files
index.js
CHANGED
|
@@ -3,7 +3,6 @@ const morgan = require('morgan');
|
|
| 3 |
const express = require('express');
|
| 4 |
const ytdl = require('ytdl-core');
|
| 5 |
const { Writable, pipeline, Readable } = require('stream');
|
| 6 |
-
const ffmpeg = require('fluent-ffmpeg');
|
| 7 |
const util = require('util');
|
| 8 |
const axios = require('axios');
|
| 9 |
const FormData = require('form-data')
|
|
@@ -195,30 +194,6 @@ async function fby2mate(url) {
|
|
| 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,7 +232,6 @@ async function ytAPI(url) {
|
|
| 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 {
|
|
|
|
| 3 |
const express = require('express');
|
| 4 |
const ytdl = require('ytdl-core');
|
| 5 |
const { Writable, pipeline, Readable } = require('stream');
|
|
|
|
| 6 |
const util = require('util');
|
| 7 |
const axios = require('axios');
|
| 8 |
const FormData = require('form-data')
|
|
|
|
| 194 |
return e;
|
| 195 |
}
|
| 196 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 197 |
async function streamToBuffer(stream) {
|
| 198 |
const chunks = [];
|
| 199 |
const captureChunks = new Writable({
|
|
|
|
| 232 |
let audioStream = await ytdl(ID, {filter: "audioonly", quality:"lowestaudio"})
|
| 233 |
let buffermp4 = await streamToBuffer(videoStream)
|
| 234 |
let buffermp3 = await streamToBuffer(audioStream)
|
|
|
|
| 235 |
buffermp4 = await fileDitch(buffermp4)
|
| 236 |
buffermp3 = await fileDitch(buffermp3)
|
| 237 |
return {
|