From 1f7bbd061d4c2173af79baf6006347e4afe932bc Mon Sep 17 00:00:00 2001 From: Schnitzel5 Date: Mon, 17 Mar 2025 15:58:15 +0100 Subject: [PATCH] added vidmoly extractor --- javascript/anime/src/de/aniworld.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/javascript/anime/src/de/aniworld.js b/javascript/anime/src/de/aniworld.js index c4296ab3..5a4cd1ed 100644 --- a/javascript/anime/src/de/aniworld.js +++ b/javascript/anime/src/de/aniworld.js @@ -7,7 +7,7 @@ const mangayomiSources = [{ "typeSource": "single", "itemType": 1, "isNsfw": false, - "version": "0.3.5", + "version": "0.3.6", "dateFormat": "", "dateFormatLocale": "", "pkgPath": "anime/src/de/aniworld.js" @@ -199,7 +199,7 @@ class DefaultExtension extends MProvider { const languageValues = ['Deutscher', 'Englischer']; const types = ['Dub', 'Sub']; const resolutions = ['1080p', '720p', '480p']; - const hosts = ['Doodstream', 'Filemoon', 'Luluvdo', 'SpeedFiles', 'Streamtape', 'Vidoza', 'VOE']; + const hosts = ['Doodstream', 'Filemoon', 'Luluvdo', 'SpeedFiles', 'Streamtape', 'Vidmoly', 'Vidoza', 'VOE']; const languageFilters = []; for (const lang of languageValues) { @@ -387,6 +387,15 @@ async function doodExtractor(url) { return [{ url: videoUrl, originalUrl: videoUrl, headers: headers, quality: '' }]; } +async function vidmolyExtractor(url) { + const res = await new Client({ 'useDartHttpClient': true, "followRedirects": true }).get(url); + const playlistUrl = res.body.match(/https:\/\/\S*\.m3u8/)[0]; + return await m3u8Extractor(playlistUrl, { + 'Referer': 'https://vidmoly.to', + 'Origin': 'https://vidmoly.to' + }); +} + async function vidozaExtractor(url) { let response = await new Client({ 'useDartHttpClient': true, "followRedirects": true }).get(url); const videoUrl = response.body.match(/https:\/\/\S*\.mp4/)[0]; @@ -601,6 +610,7 @@ extractAny.methods = { 'streamwish': vidHideExtractor, 'vidguard': vidGuardExtractor, 'vidhide': vidHideExtractor, + 'vidmoly': vidmolyExtractor, 'vidoza': vidozaExtractor, 'voe': voeExtractor, 'yourupload': yourUploadExtractor