diff --git a/animekai/animekai.js b/animekai/animekai.js index 64fee87..2f8ddd2 100644 --- a/animekai/animekai.js +++ b/animekai/animekai.js @@ -117,20 +117,27 @@ async function extractEpisodes(url) { async function extractStreamUrl(url) { const headers = { "Referer": "https://anikai.to/", - "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36" + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0", + "Accept": "text/html, */*; q=0.01", + "Accept-Language": "en-US,en;q=0.5", + "Sec-Fetch-Dest": "empty", + "Sec-Fetch-Mode": "cors", + "Sec-Fetch-Site": "same-origin", + "Pragma": "no-cache", + "Cache-Control": "no-cache" }; - let actualUrl = url; try { - const tokenMatch = actualUrl.match(/token=([^&]+)/); - if (tokenMatch && tokenMatch[1]) { - const rawToken = tokenMatch[1]; - const encryptResponse = await fetchv2(`https://enc-dec.app/api/enc-kai?text=${encodeURIComponent(rawToken)}`); - const encryptData = await encryptResponse.json(); - const encryptedToken = encryptData.result; - actualUrl = actualUrl.replace('&_=ENCRYPT_ME', `&_=${encryptedToken}`); - } - + const tokenMatch = url.match(/token=([^&]+)/); + if (!tokenMatch?.[1]) throw new Error("No token found in URL"); + const rawToken = tokenMatch[1]; + + const encTokenRes = await fetchv2(`https://enc-dec.app/api/enc-kai?text=${encodeURIComponent(rawToken)}`); + const encTokenData = await encTokenRes.json(); + const encryptedToken = encTokenData.result; + + const actualUrl = url.replace('&_=ENCRYPT_ME', `&_=${encryptedToken}`); + const response = await fetchv2(actualUrl); const text = await response.text(); @@ -144,115 +151,96 @@ async function extractStreamUrl(url) { const cleanedAjaxResultHtml = cleanJsonHtml(ajaxResultHtml); const serverHtmlSource = cleanedAjaxResultHtml || cleanedHtml; - const subRegex = /