Update index.js
Browse files
index.js
CHANGED
|
@@ -274,13 +274,45 @@ async function ytmp4(url, quality = 'highestvideo') {
|
|
| 274 |
return null;
|
| 275 |
}
|
| 276 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 277 |
async function ytmp3(url, bitrate = 'lowestaudio') {
|
| 278 |
try {
|
| 279 |
const ID = ytdl.getVideoID(url),
|
| 280 |
data = await ytdl.getInfo('https://www.youtube.com/watch?v=' + ID)
|
| 281 |
let format = ytdl.chooseFormat(data.formats, { filter: 'audioonly', quality: bitrate });
|
| 282 |
let buffer = await (await fetch(format.url)).arrayBuffer();
|
| 283 |
-
let upload = await
|
| 284 |
|
| 285 |
if (format) {
|
| 286 |
return {
|
|
|
|
| 274 |
return null;
|
| 275 |
}
|
| 276 |
}
|
| 277 |
+
async function upload(buffer, extension) {
|
| 278 |
+
const {fileTypeFromBuffer} = await import('file-type')
|
| 279 |
+
return new Promise(async (resolve, reject) => {
|
| 280 |
+
let mime = await fileTypeFromBuffer(buffer)
|
| 281 |
+
let headers = {
|
| 282 |
+
'User-Agent': generateRandomUserAgent(),
|
| 283 |
+
'X-Forwarded-For': generateRandomIP()
|
| 284 |
+
}
|
| 285 |
+
try {
|
| 286 |
+
const server = await (await axios.get('https://neoxr.my.id/srv', {headers: headers})).data;
|
| 287 |
+
let form = new FormData();
|
| 288 |
+
try {
|
| 289 |
+
var ext = mime.ext
|
| 290 |
+
} catch (e) {
|
| 291 |
+
var ext = 'txt';
|
| 292 |
+
}
|
| 293 |
+
form.append('someFiles', buffer, 'file.' + (extension || ext));
|
| 294 |
+
const json = await (await axios.post(server.domain + '/api/upload', form, {
|
| 295 |
+
headers: {
|
| 296 |
+
...form.getHeaders(),
|
| 297 |
+
...headers
|
| 298 |
+
}
|
| 299 |
+
})).data;
|
| 300 |
+
resolve(json);
|
| 301 |
+
} catch (e) {
|
| 302 |
+
resolve({
|
| 303 |
+
status: false,
|
| 304 |
+
msg: e.message
|
| 305 |
+
});
|
| 306 |
+
}
|
| 307 |
+
});
|
| 308 |
+
}
|
| 309 |
async function ytmp3(url, bitrate = 'lowestaudio') {
|
| 310 |
try {
|
| 311 |
const ID = ytdl.getVideoID(url),
|
| 312 |
data = await ytdl.getInfo('https://www.youtube.com/watch?v=' + ID)
|
| 313 |
let format = ytdl.chooseFormat(data.formats, { filter: 'audioonly', quality: bitrate });
|
| 314 |
let buffer = await (await fetch(format.url)).arrayBuffer();
|
| 315 |
+
let upload = await upload(buffer, 'mp3')
|
| 316 |
|
| 317 |
if (format) {
|
| 318 |
return {
|