Update index.js
Browse files
index.js
CHANGED
|
@@ -31,6 +31,30 @@ const post = async (url, form, headers = {}) => {
|
|
| 31 |
return response;
|
| 32 |
};
|
| 33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
//BIMG
|
| 35 |
async function bimg(query) {
|
| 36 |
let bimg = await import('bimg')
|
|
@@ -53,7 +77,10 @@ async function mediafire(url) {
|
|
| 53 |
return new Promise(async(resolve, reject) => {
|
| 54 |
var a, b;
|
| 55 |
if (!/https?:\/\/(www\.)?mediafire\.com/.test(url)) return resolve()
|
| 56 |
-
const data = await axios.get(url
|
|
|
|
|
|
|
|
|
|
| 57 |
if (!data) {
|
| 58 |
resolve()
|
| 59 |
} else {
|
|
@@ -117,7 +144,9 @@ async function fby2mate(url) {
|
|
| 117 |
let data = await fetch(`https://y2mate.mx/api/ajaxSearch/facebook`, {
|
| 118 |
method: 'POST',
|
| 119 |
body: form,
|
| 120 |
-
|
|
|
|
|
|
|
| 121 |
...form.getHeaders()
|
| 122 |
}
|
| 123 |
})
|
|
@@ -134,8 +163,9 @@ async function uploadBuffer(buffer) {
|
|
| 134 |
let res = await axios.post('https://ilhamdev-up.hf.space/upload', {
|
| 135 |
file: buffer.toString('base64'),
|
| 136 |
headers: {
|
| 137 |
-
|
| 138 |
-
|
|
|
|
| 139 |
}).catch(e => reject(e))
|
| 140 |
if (res.status !== 200) {
|
| 141 |
resolve(res?.statusText)
|
|
@@ -308,7 +338,10 @@ const convert = async (url, v_id, ftype, fquality, fname, token, timeExpire) =>
|
|
| 308 |
|
| 309 |
// Fungsi untuk mendownload video dari YouTube
|
| 310 |
const youtubedl = async (url) => {
|
| 311 |
-
let html = await (await fetch('https://yt5s.com/en32'
|
|
|
|
|
|
|
|
|
|
| 312 |
let urlAjax = (html.match(/k_url_search="(.*?)"/) || [])[1];
|
| 313 |
let urlConvert = (html.match(/k_url_convert="(.*?)"/) || [])[1];
|
| 314 |
let json = await (await post(urlAjax, { q: url, vt: 'home' })).json();
|
|
@@ -347,7 +380,11 @@ async function twitterDL(url) {
|
|
| 347 |
let response = await fetch('https://x2twitter.com/api/ajaxSearch', {
|
| 348 |
method: 'POST',
|
| 349 |
body: form,
|
| 350 |
-
headers:
|
|
|
|
|
|
|
|
|
|
|
|
|
| 351 |
});
|
| 352 |
|
| 353 |
let data = await response.json();
|
|
@@ -524,7 +561,8 @@ app.all('/', async (req, res) => {
|
|
| 524 |
let { url } = req.query
|
| 525 |
let regex = /https?:\/\/(www\.|v(t|m|vt)\.|t\.)?tiktok\.com/;
|
| 526 |
if (!regex.test(url)) return res.json({ message: 'Invalid URL' });
|
| 527 |
-
let data = await fetch(`https://tikwm.com/api/?url=` + url)
|
|
|
|
| 528 |
data = await data.json()
|
| 529 |
if (!data) return res.json({ message: 'API TO API KOID:v' });
|
| 530 |
return res.json(data)
|
|
@@ -538,7 +576,8 @@ app.all('/', async (req, res) => {
|
|
| 538 |
let { url } = req.query
|
| 539 |
let regex = /https:\/\/pin\.it\/\w+|https:\/\/[a-z]{2}\.pinterest\.com\/pin\/\d+/;
|
| 540 |
if (!regex.test(url)) return res.json({ message: 'Invalid URL' });
|
| 541 |
-
let data = await fetch(`https://pinterestdownloader.io/id/frontendService/DownloaderService?url=` + url)
|
|
|
|
| 542 |
data = await data.json()
|
| 543 |
if (!data) return res.json({ message: 'API TO API KOID:v' });
|
| 544 |
return res.json(data)
|
|
|
|
| 31 |
return response;
|
| 32 |
};
|
| 33 |
|
| 34 |
+
//RANDOM
|
| 35 |
+
function generateRandomUserAgent() {
|
| 36 |
+
const androidVersions = ['4.0.3', '4.1.1', '4.2.2', '4.3', '4.4', '5.0.2', '5.1', '6.0', '7.0', '8.0', '9.0', '10.0', '11.0', '12.0', '13.0'];
|
| 37 |
+
const deviceModels = ['M2004J19C', 'S2020X3', 'Xiaomi4S', 'RedmiNote9', 'SamsungS21', 'GooglePixel5', 'iPhone13,4', 'SM-A526B', 'SM-G991B', 'SM-G998B', 'iPhone13,2', 'iPhone13,3', 'iPhone13,1', 'SM-G996B', 'SM-G970F'];
|
| 38 |
+
const buildVersions = ['RP1A.200720.011', 'RP1A.210505.003', 'RP1A.210812.016', 'QKQ1.200114.002', 'RQ2A.210505.003', 'RQ3A.211001.001', 'SD1A.210817.036', 'T825YDXU3CTK1', 'QKQ1.191014.012', 'QKQ1.190918.001', 'QKQ1.190626.002', 'QKQ1.190716.003', 'QKQ1.190626.002', 'QKQ1.190626.002', 'QKQ1.190626.002'];
|
| 39 |
+
const browsers = ['Chrome', 'Firefox', 'Safari', 'Edge', 'Opera'];
|
| 40 |
+
|
| 41 |
+
const getRandomElement = (arr) => arr[Math.floor(Math.random() * arr.length)];
|
| 42 |
+
const getRandomNumber = (max) => Math.floor(Math.random() * max) + 1;
|
| 43 |
+
|
| 44 |
+
const selectedModel = getRandomElement(deviceModels);
|
| 45 |
+
const selectedBuild = getRandomElement(buildVersions);
|
| 46 |
+
const selectedBrowser = getRandomElement(browsers);
|
| 47 |
+
const browserVersion = `${selectedBrowser}/${getRandomNumber(96)}.${getRandomNumber(999)}.${getRandomNumber(9999)}.${getRandomNumber(99)}`;
|
| 48 |
+
const userAgent = `Mozilla/5.0 (Linux; Android ${getRandomElement(androidVersions)}; ${selectedModel} Build/${selectedBuild}) AppleWebKit/537.36 (KHTML, like Gecko) ${browserVersion} Mobile Safari/537.36`;
|
| 49 |
+
|
| 50 |
+
return userAgent;
|
| 51 |
+
}
|
| 52 |
+
function generateRandomIP() {
|
| 53 |
+
return Array(4)
|
| 54 |
+
.fill(0)
|
| 55 |
+
.map(() => Math.floor(Math.random() * 256))
|
| 56 |
+
.join('.');
|
| 57 |
+
}
|
| 58 |
//BIMG
|
| 59 |
async function bimg(query) {
|
| 60 |
let bimg = await import('bimg')
|
|
|
|
| 77 |
return new Promise(async(resolve, reject) => {
|
| 78 |
var a, b;
|
| 79 |
if (!/https?:\/\/(www\.)?mediafire\.com/.test(url)) return resolve()
|
| 80 |
+
const data = await axios.get(url, {headers: {
|
| 81 |
+
'User-Agent': generateRandomUserAgent(),
|
| 82 |
+
'X-Forwarded-For': generateRandomIP(),
|
| 83 |
+
}}).catch(function (error) {})
|
| 84 |
if (!data) {
|
| 85 |
resolve()
|
| 86 |
} else {
|
|
|
|
| 144 |
let data = await fetch(`https://y2mate.mx/api/ajaxSearch/facebook`, {
|
| 145 |
method: 'POST',
|
| 146 |
body: form,
|
| 147 |
+
headers: {
|
| 148 |
+
'User-Agent': generateRandomUserAgent(),
|
| 149 |
+
'X-Forwarded-For': generateRandomIP(),
|
| 150 |
...form.getHeaders()
|
| 151 |
}
|
| 152 |
})
|
|
|
|
| 163 |
let res = await axios.post('https://ilhamdev-up.hf.space/upload', {
|
| 164 |
file: buffer.toString('base64'),
|
| 165 |
headers: {
|
| 166 |
+
'User-Agent': generateRandomUserAgent(),
|
| 167 |
+
'X-Forwarded-For': generateRandomIP(),
|
| 168 |
+
}
|
| 169 |
}).catch(e => reject(e))
|
| 170 |
if (res.status !== 200) {
|
| 171 |
resolve(res?.statusText)
|
|
|
|
| 338 |
|
| 339 |
// Fungsi untuk mendownload video dari YouTube
|
| 340 |
const youtubedl = async (url) => {
|
| 341 |
+
let html = await (await fetch('https://yt5s.com/en32', {headers: {
|
| 342 |
+
'User-Agent': generateRandomUserAgent(),
|
| 343 |
+
'X-Forwarded-For': generateRandomIP(),
|
| 344 |
+
}})).text();
|
| 345 |
let urlAjax = (html.match(/k_url_search="(.*?)"/) || [])[1];
|
| 346 |
let urlConvert = (html.match(/k_url_convert="(.*?)"/) || [])[1];
|
| 347 |
let json = await (await post(urlAjax, { q: url, vt: 'home' })).json();
|
|
|
|
| 380 |
let response = await fetch('https://x2twitter.com/api/ajaxSearch', {
|
| 381 |
method: 'POST',
|
| 382 |
body: form,
|
| 383 |
+
headers: {
|
| 384 |
+
'User-Agent': generateRandomUserAgent(),
|
| 385 |
+
'X-Forwarded-For': generateRandomIP(),
|
| 386 |
+
...form.getHeaders()
|
| 387 |
+
}
|
| 388 |
});
|
| 389 |
|
| 390 |
let data = await response.json();
|
|
|
|
| 561 |
let { url } = req.query
|
| 562 |
let regex = /https?:\/\/(www\.|v(t|m|vt)\.|t\.)?tiktok\.com/;
|
| 563 |
if (!regex.test(url)) return res.json({ message: 'Invalid URL' });
|
| 564 |
+
let data = await fetch(`https://tikwm.com/api/?url=` + url, {headers: {'User-Agent': generateRandomUserAgent(),
|
| 565 |
+
'X-Forwarded-For': generateRandomIP(),}})
|
| 566 |
data = await data.json()
|
| 567 |
if (!data) return res.json({ message: 'API TO API KOID:v' });
|
| 568 |
return res.json(data)
|
|
|
|
| 576 |
let { url } = req.query
|
| 577 |
let regex = /https:\/\/pin\.it\/\w+|https:\/\/[a-z]{2}\.pinterest\.com\/pin\/\d+/;
|
| 578 |
if (!regex.test(url)) return res.json({ message: 'Invalid URL' });
|
| 579 |
+
let data = await fetch(`https://pinterestdownloader.io/id/frontendService/DownloaderService?url=` + url, {headers:{'User-Agent': generateRandomUserAgent(),
|
| 580 |
+
'X-Forwarded-For': generateRandomIP(),}})
|
| 581 |
data = await data.json()
|
| 582 |
if (!data) return res.json({ message: 'API TO API KOID:v' });
|
| 583 |
return res.json(data)
|