Prefer reachable Megaplay CDN sources

This commit is contained in:
Dymas
2026-09-10 09:28:14 +02:00
parent 6e68f762b7
commit 9c4c6437f4
5 changed files with 32 additions and 20 deletions
+21 -15
View File
@@ -28,6 +28,7 @@ const cheerio = require("cheerio");
const baseUrl = "https://anikototv.to";
const megaPlayEncKey = "i?LMTAx0Q6,:}50U";
const megaPlayEncIv = "W0;27ToaUpl_P%'c";
const megaPlaySourceVariants = ["bcdn", "tcdn", ""];
function decodeMegaPlayEnc(value) {
if (!value || typeof value !== "string") return null;
@@ -428,21 +429,25 @@ async function processServer(server) {
const domainName = new URL(iframeUrl).origin;
const playerReferer = domainName + "/";
const sourcesRes = await global.axios.get(
`${domainName}/stream/getSources?id=${playerDbId}${type ? `&type=${encodeURIComponent(type)}` : ""}${cidu ? `&cidu=${encodeURIComponent(cidu)}` : ""}`,
{
headers: {
"X-Requested-With": "XMLHttpRequest",
Referer: playerReferer,
let sourcesRes = null;
let decodedSourcesData = null;
for (const variant of megaPlaySourceVariants) {
sourcesRes = await global.axios.get(
`${domainName}/stream/getSources?id=${playerDbId}${type ? `&type=${encodeURIComponent(type)}` : ""}${cidu ? `&cidu=${encodeURIComponent(cidu)}` : ""}${variant ? `&s=${encodeURIComponent(variant)}` : ""}`,
{
headers: {
"X-Requested-With": "XMLHttpRequest",
Referer: playerReferer,
},
timeout: 7000,
},
timeout: 7000,
},
);
const decodedSourcesData =
sourcesRes.data?.sources || sourcesRes.data?.file
? sourcesRes.data
: decodeMegaPlayEnc(sourcesRes.data?.enc);
);
decodedSourcesData =
sourcesRes.data?.sources || sourcesRes.data?.file
? sourcesRes.data
: decodeMegaPlayEnc(sourcesRes.data?.enc);
if (decodedSourcesData?.sources || decodedSourcesData?.file) break;
}
if (decodedSourcesData && (decodedSourcesData.sources || decodedSourcesData.file)) {
const rawSrc = decodedSourcesData.sources || decodedSourcesData.file;
@@ -482,6 +487,7 @@ async function processServer(server) {
return {
url: sUrl,
lang: t.label || t.language || "English",
referer: playerReferer,
};
});
@@ -622,7 +628,7 @@ async function fetchEpisodeSources(episodeIdStr, category = null) {
module.exports = {
name: "anikoto",
version: "5.0.4",
version: "5.0.5",
SearchAnime,
AnimeInfo,
fetchEpisodeSources,