StableBOT / lib /fbdl.js
RamaZyx's picture
Upload folder using huggingface_hub
a2b2aac verified
//import { Axios, Cheerio } from "../Utils.js";
import axios from "axios";
import cheerio from "cheerio";
function CreateInstance(headers, config) {
return axios.create({
headers: {
"User-Agent": "Frieren-Scraper (0.0.1x)",
...headers,
},
...config,
});
}
const Axios = CreateInstance();
function Cheerio(data) {
return cheerio.load(data);
}
const FacebookDownloadBaseUrls = {
v1: "https://getmyfb.com",
};
async function fb(url) {
try {
const { data } = await Axios.request({
url: FacebookDownloadBaseUrls.v1 + "/process",
method: "POST",
headers: {
["accept"]: "*/*",
["accept-language"]: "en-GB,en-US;q=0.9,en;q=0.8",
["cache-control"]: "no-cache",
["content-type"]: "application/x-www-form-urlencoded; charset=UTF-8",
["hx-current-url"]: FacebookDownloadBaseUrls.v1 + "/",
["hx-request"]: "true",
["hx-target"]: "target",
["hx-trigger"]: "form",
["pragma"]: "no-cache",
["Referer"]: FacebookDownloadBaseUrls.v1 + "/",
["Referrer-Policy"]: "strict-origin-when-cross-origin",
},
data: new URLSearchParams({
id: decodeURIComponent(url),
locale: "en",
}),
}).catch((e) => e?.response);
const $ = Cheerio(data);
const title = $(".results-item-text")
.text()
.replace(/\s{2,}/g, "")
.replace(/[\t\n]/g, "");
const _temp = [];
$(".results-download > ul > li").each((i, e) => {
const _rawType = $(e).find("a").attr("download");
const _url = $(e).find("a").attr("href");
if (/sd/i.test(_rawType)) {
_temp.push({ sd: _url });
}
if (/hd/i.test(_rawType)) {
_temp.push({ hd: _url });
}
});
if (Array.isArray(_temp) && _temp.length) {
let isHdAvailable = false;
_temp.forEach((v) => {
if (v.hd) {
isHdAvailable = true;
}
});
return { title, isHdAvailable, urls: _temp };
}
else {
throw new Error("Empty video urls source!");
}
}
catch (e) {
return { error: true, message: String(e) };
}
}
export {
fb
}