Update index.js
Browse files
index.js
CHANGED
|
@@ -227,33 +227,6 @@ async function fileDitch(media){
|
|
| 227 |
})
|
| 228 |
//https://up1.fileditch.com/upload.php
|
| 229 |
}
|
| 230 |
-
async function convertWebmToMp3(webmBuffer) {
|
| 231 |
-
return new Promise((resolve, reject) => {
|
| 232 |
-
// Buat stream Readable dari buffer webm
|
| 233 |
-
const webmStream = new Readable();
|
| 234 |
-
webmStream.push(webmBuffer);
|
| 235 |
-
webmStream.push(null); // Selesai mengirim data
|
| 236 |
-
|
| 237 |
-
// Buffer untuk menampung hasil konversi
|
| 238 |
-
const buffers = [];
|
| 239 |
-
|
| 240 |
-
ffmpeg()
|
| 241 |
-
.input(webmStream)
|
| 242 |
-
.toFormat('mp3')
|
| 243 |
-
.on('error', err => {
|
| 244 |
-
reject(err);
|
| 245 |
-
})
|
| 246 |
-
.on('data', chunk => {
|
| 247 |
-
buffers.push(chunk);
|
| 248 |
-
})
|
| 249 |
-
.on('end', () => {
|
| 250 |
-
// Gabungkan semua buffer menjadi satu buffer tunggal
|
| 251 |
-
const mp3Buffer = Buffer.concat(buffers);
|
| 252 |
-
resolve(mp3Buffer);
|
| 253 |
-
})
|
| 254 |
-
.run();
|
| 255 |
-
});
|
| 256 |
-
}
|
| 257 |
async function ytAPI(url) {
|
| 258 |
try {
|
| 259 |
const ID = ytdl.getVideoID(url)
|
|
@@ -261,7 +234,6 @@ async function ytAPI(url) {
|
|
| 261 |
let audioStream = await ytdl(ID, {filter: "audioonly", quality:"lowestaudio"})
|
| 262 |
let buffermp4 = await streamToBuffer(videoStream)
|
| 263 |
let buffermp3 = await streamToBuffer(audioStream)
|
| 264 |
-
buffermp3 = await convertWebmToMp3(buffermp3)
|
| 265 |
buffermp4 = await fileDitch(buffermp4)
|
| 266 |
buffermp3 = await fileDitch(buffermp3)
|
| 267 |
return {
|
|
@@ -801,13 +773,13 @@ return res.json({ message: e.message });
|
|
| 801 |
let { url } = req.query;
|
| 802 |
if (!ytIdRegex.test(url)) return res.json({ message: 'Invalid URL' });
|
| 803 |
|
| 804 |
-
let data = await ytAPI(url)
|
| 805 |
let dataInfo = await ytdl.getVideoID(url)
|
| 806 |
dataInfo = await yts({videoId: dataInfo})
|
| 807 |
|
| 808 |
let response = {
|
| 809 |
info: dataInfo ? dataInfo : {},
|
| 810 |
-
|
| 811 |
};
|
| 812 |
|
| 813 |
return res.json(response);
|
|
|
|
| 227 |
})
|
| 228 |
//https://up1.fileditch.com/upload.php
|
| 229 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 230 |
async function ytAPI(url) {
|
| 231 |
try {
|
| 232 |
const ID = ytdl.getVideoID(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 {
|
|
|
|
| 773 |
let { url } = req.query;
|
| 774 |
if (!ytIdRegex.test(url)) return res.json({ message: 'Invalid URL' });
|
| 775 |
|
| 776 |
+
let data = await ytAPI(url) ? await ytAPI(url) : {}
|
| 777 |
let dataInfo = await ytdl.getVideoID(url)
|
| 778 |
dataInfo = await yts({videoId: dataInfo})
|
| 779 |
|
| 780 |
let response = {
|
| 781 |
info: dataInfo ? dataInfo : {},
|
| 782 |
+
...data,
|
| 783 |
};
|
| 784 |
|
| 785 |
return res.json(response);
|