ilhamdev commited on
Commit
33d7e5d
·
verified ·
1 Parent(s): 5225ae3

Update index.js

Browse files
Files changed (1) hide show
  1. index.js +24 -0
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 {