notmebotz-tools
Version:
Sebuah Tools yang berfungsi untuk mendownload Video atau Foto dari media sosial, serta sebagai tools yang berguna untuk aplikasi kamu seperti untuk BOT
64 lines (55 loc) • 1.76 kB
JavaScript
const axios = require('axios')
const cheerio = require('cheerio')
const qs = require('qs')
async function fbdl(url) {
const verifyPayload = qs.stringify({ url })
const verifyRes = await axios.post('https://fdownloader.net/api/userverify', verifyPayload, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Accept': '*/*',
'X-Requested-With': 'XMLHttpRequest'
}
})
const cftoken = verifyRes.data?.token
if (!cftoken) throw new Error('Gagal mendapatkan token')
const ajaxPayload = qs.stringify({
k_exp: Math.floor(Date.now() / 1000) + 1800,
k_token: '4901a847f621da898b5429bf38df6f3a0959738cd4eb52a2bf0cf44b3eb44cad',
q: url,
lang: 'id',
web: 'fdownloader.net',
v: 'v2',
w: '',
cftoken
})
const ajaxRes = await axios.post('https://v3.fdownloader.net/api/ajaxSearch', ajaxPayload, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Accept': '*/*'
}
})
const { status, data: html } = ajaxRes.data
if (status !== 'ok' || !html) throw new Error('Gagal ambil data')
const $ = cheerio.load(html)
const thumbnail = $('.image-fb img').attr('src') || ''
const duration = $('.content p').text().trim()
const title = $('.content h3').text().trim()
const links = []
$('a.download-link-fb').each((_, el) => {
const link = $(el).attr('href')
const quality = $(el).attr('title')?.replace('Download ', '') || 'Unknown'
const format = link?.includes('.mp4') ? 'mp4' : 'unknown'
if (link) links.push({ quality, format, link })
})
return {
author: "Herza",
status: 200,
data: {
title,
duration,
thumbnail,
links
}
}
}
module.exports = { fbdl }