From 388482dc63e25d658ad0eaa58c90f0bdeaf54488 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 5 Jan 2026 09:37:38 +0100 Subject: [PATCH] feat(extractors): add stream wish mirror streamhls.to - example url: https://streamhls.to/e/uszo5fi7zdda?33 --- .../cloudstream3/extractors/StreamWishExtractor.kt | 8 ++++++++ .../com/lagradost/cloudstream3/utils/ExtractorApi.kt | 4 +++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamWishExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamWishExtractor.kt index 8f4aceead3f..9254fde1fe8 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamWishExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamWishExtractor.kt @@ -137,6 +137,11 @@ class Playerwish : StreamWishExtractor() { override val mainUrl = "https://playerwish.com" } +class StreamHLS : StreamWishExtractor() { + override val name = "StreamHLS" + override val mainUrl = "https://streamhls.to" +} + open class StreamWishExtractor : ExtractorApi() { override val name = "Streamwish" override val mainUrl = "https://streamwish.to" @@ -212,6 +217,9 @@ open class StreamWishExtractor : ExtractorApi() { return if (inputUrl.contains("/f/")) { val videoId = inputUrl.substringAfter("/f/") "$mainUrl/$videoId" + } else if (inputUrl.contains("/e/")) { + val videoId = inputUrl.substringAfter("/e/") + "$mainUrl/$videoId" } else { inputUrl } 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 185590a370b..3b87a9ef520 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt @@ -196,6 +196,7 @@ import com.lagradost.cloudstream3.extractors.Sobreatsesuyp import com.lagradost.cloudstream3.extractors.Solidfiles import com.lagradost.cloudstream3.extractors.Ssbstream import com.lagradost.cloudstream3.extractors.StreamEmbed +import com.lagradost.cloudstream3.extractors.StreamHLS import com.lagradost.cloudstream3.extractors.StreamM4u import com.lagradost.cloudstream3.extractors.StreamSB import com.lagradost.cloudstream3.extractors.StreamSB1 @@ -1169,6 +1170,7 @@ val extractorApis: MutableList = arrayListOf( Lulustream1(), Lulustream2(), StreamWishExtractor(), + StreamHLS(), BigwarpIO(), BigwarpArt(), BgwpCC(), @@ -1360,4 +1362,4 @@ abstract class ExtractorApi { open fun getExtractorUrl(id: String): String { return id } -} +} \ No newline at end of file