From 2966af8fb7093dec3d2c99f2c2f1353faae57f8b Mon Sep 17 00:00:00 2001 From: Saurabh Kaperwan <91174352+SaurabhKaperwan@users.noreply.github.com> Date: Sun, 15 Feb 2026 13:23:04 +0530 Subject: [PATCH 1/2] Remove hubcloud download link Sometimes it is making a get request to a video file --- .../cloudstream3/extractors/HubCloud.kt | 39 +------------------ 1 file changed, 2 insertions(+), 37 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HubCloud.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HubCloud.kt index d8a3fb1ec00..3ee95025667 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HubCloud.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HubCloud.kt @@ -148,42 +148,7 @@ class HubCloud : ExtractorApi() { ) { this.quality = quality } ) } - - text.contains("10Gbps", ignoreCase = true) -> { - var currentLink = link - var redirectUrl: String? - var redirectCount = 0 - val maxRedirects = 3 - - while (redirectCount < maxRedirects) { - val response = app.get(currentLink, allowRedirects = false) - redirectUrl = response.headers["location"] - - if (redirectUrl == null) { - Log.e(tag, "10Gbps: No redirect") - return@amap - } - - if ("link=" in redirectUrl) { - val finalLink = redirectUrl.substringAfter("link=") - callback.invoke( - newExtractorLink( - "10Gbps [Download]", - "10Gbps [Download] $labelExtras", - finalLink - ) { this.quality = quality } - ) - return@amap - } - - currentLink = redirectUrl - redirectCount++ - } - - Log.e(tag, "10Gbps: Redirect limit reached ($maxRedirects)") - return@amap - } - + else -> { loadExtractor(link, "", subtitleCallback, callback) } @@ -243,4 +208,4 @@ class HubCloud : ExtractorApi() { parts.takeLast(3).joinToString(".") } } -} \ No newline at end of file +} From a07fd609132a9da81c730f8531ccdf3d2e2e3d25 Mon Sep 17 00:00:00 2001 From: Saurabh Kaperwan Date: Thu, 19 Feb 2026 13:19:56 +0530 Subject: [PATCH 2/2] Add multiple extractors new domains --- .../cloudstream3/extractors/DoodExtractor.kt | 8 +++++++ .../cloudstream3/extractors/Filesim.kt | 4 +++- .../cloudstream3/extractors/LuluStream.kt | 7 +++++- .../cloudstream3/extractors/MixDrop.kt | 18 ++++++++++++++- .../cloudstream3/extractors/StreamTape.kt | 4 ++++ .../cloudstream3/extractors/VidHidePro.kt | 8 +++++++ .../cloudstream3/utils/ExtractorApi.kt | 23 ++++++++++++++++++- 7 files changed, 68 insertions(+), 4 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/DoodExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/DoodExtractor.kt index a686cdd83e1..0cef9eb4caf 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/DoodExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/DoodExtractor.kt @@ -10,6 +10,14 @@ import com.lagradost.cloudstream3.utils.newExtractorLink import java.net.URI import kotlin.random.Random +class Doodspro : DoodLaExtractor() { + override var mainUrl = "https://doods.pro" +} + +class Dsvplay : DoodLaExtractor() { + override var mainUrl = "https://dsvplay.com" +} + class D0000d : DoodLaExtractor() { override var mainUrl = "https://d0000d.com" } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filesim.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filesim.kt index 4c5352dd92a..8c0cbec3252 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filesim.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filesim.kt @@ -6,7 +6,9 @@ import com.lagradost.cloudstream3.utils.* import com.lagradost.api.Log import com.lagradost.cloudstream3.network.WebViewResolver - +class Multimoviesshg : Filesim() { + override var mainUrl = "https://multimoviesshg.com" +} class Guccihide : Filesim() { override val name = "Guccihide" diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/LuluStream.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/LuluStream.kt index c130ca2de92..c7b6586065f 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/LuluStream.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/LuluStream.kt @@ -8,6 +8,11 @@ import com.lagradost.cloudstream3.utils.INFER_TYPE import com.lagradost.cloudstream3.utils.Qualities import com.lagradost.cloudstream3.utils.newExtractorLink + +class Luluvdoo : LuluStream() { + override var mainUrl = "https://luluvdoo.com" +} + class Lulustream1 : LuluStream() { override val name = "Lulustream" override val mainUrl = "https://lulustream.com" @@ -56,4 +61,4 @@ open class LuluStream : ExtractorApi() { } } } -} \ No newline at end of file +} diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/MixDrop.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/MixDrop.kt index 746dc7eb3ad..75ac299d858 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/MixDrop.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/MixDrop.kt @@ -3,6 +3,22 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.* +class MixDropPs : MixDrop() { + override var mainUrl = "https://mixdrop.ps" +} + +class Mdy : MixDrop() { + override var mainUrl = "https://mdy48tn97.com" +} + +class MxDropTo : MixDrop() { + override var mainUrl = "https://mxdrop.to" +} + +class MixDropSi : MixDrop() { + override var mainUrl = "https://mixdrop.si" +} + class MixDropBz : MixDrop(){ override var mainUrl = "https://mixdrop.bz" } @@ -47,4 +63,4 @@ open class MixDrop : ExtractorApi() { } return null } -} \ No newline at end of file +} diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamTape.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamTape.kt index 47fb96a8947..211b5ecf946 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamTape.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamTape.kt @@ -7,6 +7,10 @@ import com.lagradost.cloudstream3.utils.Qualities import com.lagradost.cloudstream3.utils.newExtractorLink import org.mozilla.javascript.Context +class Watchadsontape : StreamTape() { + override var mainUrl = "https://watchadsontape.com" +} + class StreamTapeNet : StreamTape() { override var mainUrl = "https://streamtape.net" } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VidHidePro.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VidHidePro.kt index cce5b01b363..469efc5ec96 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VidHidePro.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VidHidePro.kt @@ -6,6 +6,14 @@ import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.* import com.lagradost.cloudstream3.utils.M3u8Helper.Companion.generateM3u8 +class Ryderjet: VidHidePro() { + override var mainUrl = "https://ryderjet.com" +} + +class VidHideHub : VidHidePro() { + override var mainUrl = "https://vidhidehub.com" +} + class VidHidePro1 : VidHidePro() { override var mainUrl = "https://filelions.live" } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt index 9ef0eec4551..d1749cf85f8 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt @@ -57,6 +57,8 @@ import com.lagradost.cloudstream3.extractors.DoodWatchExtractor import com.lagradost.cloudstream3.extractors.DoodWfExtractor import com.lagradost.cloudstream3.extractors.DoodWsExtractor import com.lagradost.cloudstream3.extractors.DoodYtExtractor +import com.lagradost.cloudstream3.extractors.Doodspro +import com.lagradost.cloudstream3.extractors.Dsvplay import com.lagradost.cloudstream3.extractors.Doodporn import com.lagradost.cloudstream3.extractors.DoodstreamCom import com.lagradost.cloudstream3.extractors.Dooood @@ -82,6 +84,7 @@ import com.lagradost.cloudstream3.extractors.FileMoonSx import com.lagradost.cloudstream3.extractors.Filegram import com.lagradost.cloudstream3.extractors.FilemoonV2 import com.lagradost.cloudstream3.extractors.Filesim +import com.lagradost.cloudstream3.extractors.Multimoviesshg import com.lagradost.cloudstream3.extractors.FlaswishCom import com.lagradost.cloudstream3.extractors.FourCX import com.lagradost.cloudstream3.extractors.FourPichive @@ -134,6 +137,7 @@ import com.lagradost.cloudstream3.extractors.Linkbox import com.lagradost.cloudstream3.extractors.LuluStream import com.lagradost.cloudstream3.extractors.Lulustream1 import com.lagradost.cloudstream3.extractors.Lulustream2 +import com.lagradost.cloudstream3.extractors.Luluvdoo import com.lagradost.cloudstream3.extractors.Luxubu import com.lagradost.cloudstream3.extractors.Lvturbo import com.lagradost.cloudstream3.extractors.MailRu @@ -149,6 +153,10 @@ import com.lagradost.cloudstream3.extractors.MixDropAg import com.lagradost.cloudstream3.extractors.MixDropBz import com.lagradost.cloudstream3.extractors.MixDropCh import com.lagradost.cloudstream3.extractors.MixDropTo +import com.lagradost.cloudstream3.extractors.MixDropPs +import com.lagradost.cloudstream3.extractors.Mdy +import com.lagradost.cloudstream3.extractors.MixDropSi +import com.lagradost.cloudstream3.extractors.MxDropTo import com.lagradost.cloudstream3.extractors.Movhide import com.lagradost.cloudstream3.extractors.Moviehab import com.lagradost.cloudstream3.extractors.MoviehabNet @@ -224,6 +232,7 @@ import com.lagradost.cloudstream3.extractors.StreamSilk import com.lagradost.cloudstream3.extractors.StreamTape import com.lagradost.cloudstream3.extractors.StreamTapeNet import com.lagradost.cloudstream3.extractors.StreamTapeXyz +import com.lagradost.cloudstream3.extractors.Watchadsontape import com.lagradost.cloudstream3.extractors.StreamWishExtractor import com.lagradost.cloudstream3.extractors.StreamhideCom import com.lagradost.cloudstream3.extractors.StreamhideTo @@ -272,6 +281,8 @@ import com.lagradost.cloudstream3.extractors.VidHidePro3 import com.lagradost.cloudstream3.extractors.VidHidePro4 import com.lagradost.cloudstream3.extractors.VidHidePro5 import com.lagradost.cloudstream3.extractors.VidHidePro6 +import com.lagradost.cloudstream3.extractors.VidHideHub +import com.lagradost.cloudstream3.extractors.Ryderjet import com.lagradost.cloudstream3.extractors.VidMoxy import com.lagradost.cloudstream3.extractors.VidStack import com.lagradost.cloudstream3.extractors.VideoSeyred @@ -945,14 +956,18 @@ val extractorApis: MutableList = arrayListOf( StreamTapeNet(), ShaveTape(), StreamTapeXyz(), + Watchadsontape(), //mixdrop extractors MixDropBz(), MixDropCh(), MixDropTo(), MixDropAg(), - MixDrop(), + MixDropPs(), + Mdy(), + MxDropTo(), + MixDropSi(), Mcloud(), XStreamCdn(), @@ -1056,6 +1071,8 @@ val extractorApis: MutableList = arrayListOf( DoodWatchExtractor(), DoodWfExtractor(), DoodYtExtractor(), + Doodspro(), + Dsvplay(), AsianLoad(), @@ -1121,6 +1138,7 @@ val extractorApis: MutableList = arrayListOf( FileMoonIn(), Moviesm4u(), Filesim(), + Multimoviesshg(), Ahvsh(), Guccihide(), FileMoon(), @@ -1188,6 +1206,8 @@ val extractorApis: MutableList = arrayListOf( VidHidePro4(), VidHidePro5(), VidHidePro6(), + VidHideHub(), + Ryderjet(), Dhtpre(), // CineMM Redirects @@ -1211,6 +1231,7 @@ val extractorApis: MutableList = arrayListOf( LuluStream(), Lulustream1(), Lulustream2(), + Luluvdoo(), StreamWishExtractor(), StreamHLS(), BigwarpIO(),