import btoa from "btoa"; import axios from "axios"; import ParseHtml from "html-dom-parser"; const form = new URLSearchParams(); const TARGET = { baseUrl: "https://allinonevideosdownloader.com", headers: { "authority": "allinonevideosdownloader.com", "accept": "*/*", "accept-language": "en-US,en;q=0.9,id;q=0.8", "content-type": "application/x-www-form-urlencoded", "cookie": "pll_language=en; _gcl_au=1.1.1929855334.1773448777", "origin": "https://allinonevideosdownloader.com", "referer": "https://allinonevideosdownloader.com/", "sec-ch-ua": "\"Not-A.Brand\";v=\"99\", \"Chromium\";v=\"124\"", "sec-ch-ua-mobile": "?1", "sec-ch-ua-platform": "\"Android\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "user-agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/537.36" } } async function findToken() { const res = await axios.get(TARGET.baseUrl, { headers: TARGET.headers }); const dom = ParseHtml(res.data); function walk(nodes) { for (const node of nodes) { if (node?.attribs?.name === "token") return node.attribs; if (node?.children?.length) { const found = walk(node.children); if (found) return found; } } } const token = walk(dom); if (!token) throw new Error("token not found"); return token; } async function aiodl(url) { if (!url) throw "missing url input"; const token = await findToken(); const form = new URLSearchParams(); form.append("url", url); form.append("token", token.value); form.append("hash", btoa(url) + (url.length + 1000) + btoa("aio-dl")); const res = await axios.post( `${TARGET.baseUrl}/wp-json/aio-dl/video-data/`, form, { headers: TARGET.headers } ).catch(e => e.response); if (!res.data?.medias) throw res.data?.message || res.data?.error || "failed retrieve data"; return res.data; } aiodl("https://www.facebook.com/share/r/1CRyWDZJxP/").then(d => console.log(d)).catch(console.log)