ilhamdev commited on
Commit
dfd3b4a
·
verified ·
1 Parent(s): e56eff7

Update index.js

Browse files
Files changed (1) hide show
  1. index.js +24 -1
index.js CHANGED
@@ -17,6 +17,28 @@ let fetch;
17
  (async () => {
18
  fetch = (await import('node-fetch')).default;
19
  })();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
 
21
  // Regex untuk mengidentifikasi URL YouTube dan Mega
22
  const ytIdRegex = /(?:http(?:s|):\/\/|)(?:(?:www\.|)?youtube(?:\-nocookie|)\.com\/(?:shorts\/)?(?:watch\?.*(?:|\&)v=|embed\/|v\/)?|youtu\.be\/)([-_0-9A-Za-z]{11})/;
@@ -279,7 +301,8 @@ async function ytmp3(url, bitrate = 'lowestaudio') {
279
  data = await ytdl.getInfo('https://www.youtube.com/watch?v=' + ID)
280
  let audioStream = await ytdl(ID, { filter: 'audioonly', quality: 'lowestaudio', });
281
  let buffer = await streamToBuffer(audioStream)
282
- let upload = await uploadBuffer(buffer)
 
283
  let format = ytdl.chooseFormat(data.formats, { filter: 'audioonly', quality: bitrate });
284
 
285
  if (format) {
 
17
  (async () => {
18
  fetch = (await import('node-fetch')).default;
19
  })();
20
+ const ffmpeg = require('fluent-ffmpeg');
21
+
22
+ function convertVideoToMp3(videoBuffer) {
23
+ return new Promise((resolve, reject) => {
24
+ let mp3Buffer = Buffer.alloc(0);
25
+
26
+ ffmpeg()
27
+ .input(videoBuffer)
28
+ .inputFormat('mp4')
29
+ .outputFormat('mp3')
30
+ .on('error', (err) => {
31
+ reject(err);
32
+ })
33
+ .on('data', (chunk) => {
34
+ mp3Buffer = Buffer.concat([mp3Buffer, chunk]);
35
+ })
36
+ .on('end', () => {
37
+ resolve(mp3Buffer);
38
+ })
39
+ .run();
40
+ });
41
+ }
42
 
43
  // Regex untuk mengidentifikasi URL YouTube dan Mega
44
  const ytIdRegex = /(?:http(?:s|):\/\/|)(?:(?:www\.|)?youtube(?:\-nocookie|)\.com\/(?:shorts\/)?(?:watch\?.*(?:|\&)v=|embed\/|v\/)?|youtu\.be\/)([-_0-9A-Za-z]{11})/;
 
301
  data = await ytdl.getInfo('https://www.youtube.com/watch?v=' + ID)
302
  let audioStream = await ytdl(ID, { filter: 'audioonly', quality: 'lowestaudio', });
303
  let buffer = await streamToBuffer(audioStream)
304
+ let konvert = await convertVideoToMp3(buffer)
305
+ let upload = await uploadBuffer(konvert)
306
  let format = ytdl.chooseFormat(data.formats, { filter: 'audioonly', quality: bitrate });
307
 
308
  if (format) {