Skip to content

Commit

Permalink
The nastiest extractor you've EVER seen but i just want to watch anim…
Browse files Browse the repository at this point in the history
…e rn and it's late (Aniwave v0.7.8)
  • Loading branch information
Nixuge committed Aug 20, 2024
1 parent d0cc4ea commit 25f8751
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 41 deletions.
2 changes: 1 addition & 1 deletion src/aniwave/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ export default class Source extends SourceModule implements VideoContent {
metadata = {
id: 'aniwave',
name: 'Aniwave',
version: '0.7.7',
version: '0.7.8',
icon: "https://aniwave.to/assets/s/e8c93166fd4dcf9ab41d5178518295fc1b5fcb27fd90df1c268eb0.png"
}

Expand Down
52 changes: 13 additions & 39 deletions src/shared/extractors/mycloud.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,54 +116,28 @@ async function temporaryMyCloudHandling(url: string): Promise<ISource> {

let domain = urlSplit[2];

let input = urlSplit[urlSplit.length-1];
let key = urlSplit[urlSplit.length-1];

let key = input;
key = rc4Cypher("V4pBzCPyMSwqx", key);
key = serializeText(key);
key = substituteString(key, "4pjVI6otnvxW", "Ip64xWVntvoj");

key = reverse(key);
key = substituteString(key, "kHWPSL5RKG9Ei8Q", "REG859WSLiQkKHP");
key = rc4Cypher("eLWogkrHstP", key)
key = serializeText(key);

key = reverse(key)
key = rc4Cypher("bpPVcKMFJXq", key)
key = serializeText(key)

key = substituteString(key, "VtravPeTH34OUog", "OeaTrt4H3oVgvPU");
key = reverse(key);
key = serializeText(key);

const hParam = serializeText(rc4Cypher("BvxAphQAmWO9BIJ8", input));
key = ('' + btoa(rc4Cypher("dawQCziL2v", key = (key = substituteString(key = '' + (key = key), "E1KyOcIMf9v7XHg", "gMvO97yE1cfKIXH")).split('').reverse().join('')))).replace(/\//g, '_').replace(/\+/g, '-');
key = ('' + btoa(rc4Cypher("thDz4uPKGSYW", key = substituteString(key = key.split('').reverse().join(''), "ZSsbx4NtMpOoCh", "ZCo4MthpsNxSOb")))).replace(/\//g, '_').replace(/\+/g, '-');
key = ('' + btoa(rc4Cypher("QIP5jcuvYEKdG", key))).replace(/\//g, '_').replace(/\+/g, '-');
key = ('' + btoa(key = substituteString(key = key.split('').reverse().join(''), "fH0n3GZDeKCE6", "0GCn6e3ZfDKEH"))).replace(/\//g, '_').replace(/\+/g, '-')

urlSplit = urlSplit = url.split("?t=");
let tParam = urlSplit[urlSplit.length-1].split("&")[0];

let a = await request.get(`https://${domain}/mediainfo/${key}?t=${tParam}&autostart=true&h=${hParam}`)
let a = await request.get(`https://${domain}/mediainfo/${key}?t=${tParam}&autostart=true`)
let jsonBody: any = a.json();

let res: string = jsonBody.result;

res = deserializeText(res);

res = reverse(res);
res = substituteString(res, "OeaTrt4H3oVgvPU", "VtravPeTH34OUog");
res = deserializeText(res)
res = rc4Cypher("bpPVcKMFJXq", res);

res = reverse(res);
res = deserializeText(res);
res = rc4Cypher("eLWogkrHstP", res)
res = substituteString(res, "REG859WSLiQkKHP", "kHWPSL5RKG9Ei8Q");

res = res.split('').reverse().join('')
res = substituteString(res, "Ip64xWVntvoj", "4pjVI6otnvxW")
res = deserializeText(res)
res = rc4Cypher("V4pBzCPyMSwqx", res);

const jsonResult = JSON.parse(res)
console.log("GOT RES !");
console.log(jsonBody);

res = atob(('' + (res = '' + (res = res))).replace(/_/g, '/').replace(/-/g, '+'));
res = rc4Cypher("QIP5jcuvYEKdG", atob(('' + (res = (res = substituteString(res, "0GCn6e3ZfDKEH", "fH0n3GZDeKCE6")).split('').reverse().join(''))).replace(/_/g, '/').replace(/-/g, '+')));
res = (res = substituteString(res = rc4Cypher("thDz4uPKGSYW", atob(('' + res).replace(/_/g, '/').replace(/-/g, '+'))), "ZCo4MthpsNxSOb", "ZSsbx4NtMpOoCh")).split('').reverse().join('');
const jsonResult = JSON.parse(res = substituteString(res = (res = rc4Cypher("dawQCziL2v", atob(('' + res).replace(/_/g, '/').replace(/-/g, '+')))).split('').reverse().join(''), "gMvO97yE1cfKIXH", "E1KyOcIMf9v7XHg"));

console.log(jsonResult);
const videos = await getM3u8Qualities(jsonResult.sources[0]["file"]);
Expand Down
2 changes: 1 addition & 1 deletion tests/aniwave.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ const source = runner(Source)

// timeout 15s as the deobfuscation can take some time when the js changes.
test("gets an episode server", async() => {
log(JSON.stringify(await source.playlistEpisodeServer({playlistId: "/watch/how-not-to-summon-a-demon-lord-w.3vog", episodeId: "HTmfCcgl,HTSZA8sl,HTqXDM4m", sourceId:"servers", serverId:"GDyXC84gkg=="})))
log(JSON.stringify(await source.playlistEpisodeServer({playlistId: "/watch/how-not-to-summon-a-demon-lord-w.3vog", episodeId: "HTmfCcgl,HTSZA8sl,HTqXDM4m", sourceId:"servers", serverId:"HzuaDckilg=="})))
}, {timeout: 20000})
// test("gets an episode server", async() => {
// log(JSON.stringify(await source.playlistEpisodeServer({playlistId: "/watch/how-not-to-summon-a-demon-lord-w.3vog", episodeId: "HTmfCckh,HTSZAsIh,HTqXDM8i | sub", sourceId:"servers", serverId:"HzuaDckjlg=="})))
Expand Down

0 comments on commit 25f8751

Please sign in to comment.