├── run.bat ├── Eporner ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── Eporner │ │ ├── EpornerProvider.kt │ │ └── Eporner.kt └── build.gradle.kts ├── FXPrnHD ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── XXX │ │ ├── FXPrnHDPlugin.kt │ │ └── FXPrnHD.kt └── build.gradle.kts ├── Hqporner ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── xxx │ │ ├── HqpornerPlugin.kt │ │ └── Extractors.kt └── build.gradle.kts ├── Mangoporn ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── Mangoporn │ │ ├── MangopornProvider.kt │ │ ├── Extractors.kt │ │ └── Mangoporn.kt └── build.gradle.kts ├── Onlyjerk ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── Onlyjerk │ │ ├── OnlyjerkProvider.kt │ │ ├── Extractors.kt │ │ └── Onlyjerk.kt └── build.gradle.kts ├── Porn4fans ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── Porn4fans │ │ ├── Porn4fansProvider.kt │ │ └── Porn4fans.kt └── build.gradle.kts ├── Pornhits ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── xxx │ │ └── PornhitsProvider.kt └── build.gradle.kts ├── Pornhub ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── owencz1998 │ │ └── PornhubProviderPlugin.kt └── build.gradle.kts ├── Pornken ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── owencz1998 │ │ ├── PornkenProvider.kt │ │ ├── PornkenExtractors.kt │ │ └── Pornken.kt └── build.gradle.kts ├── Pornmz ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── Pornmz │ │ ├── PornmzProvider.kt │ │ └── Pornmz.kt └── build.gradle.kts ├── Pornobae ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── Pornobae │ │ └── PornobaeProvider.kt └── build.gradle.kts ├── Pornone ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── PornOne │ │ ├── PornOnePlugin.kt │ │ └── PornOneProvider.kt └── build.gradle.kts ├── Spankbang ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── Spankbang │ │ ├── spankbangProvider.kt │ │ └── spankbang.kt ├── .idea │ ├── vcs.xml │ ├── migrations.xml │ ├── misc.xml │ ├── gradle.xml │ └── workspace.xml └── build.gradle.kts ├── UncutMaza ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── coxju │ │ ├── UncutMazaProvider.kt │ │ └── UncutMaza.kt └── build.gradle.kts ├── XPrimeHub ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── xprimehub │ │ └── XPrimeHubProvider.kt └── build.gradle.kts ├── Xhamster ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── owencz1998 │ │ └── xHamsterProvider.kt └── build.gradle.kts ├── Xmaza ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── Xmaza │ │ ├── XmazaProvider.kt │ │ └── Xmaza.kt └── build.gradle.kts ├── Xtapes ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── Xtapes │ │ ├── XtapesProvider.kt │ │ ├── Extractor.kt │ │ └── Xtapes.kt └── build.gradle.kts ├── AllPornStream ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── AllPornStream │ │ ├── AllPornStreamPlugin.kt │ │ ├── Parser.kt │ │ └── AllPornStream.kt └── build.gradle.kts ├── FreePornVideos ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── XXX │ │ ├── FreePornVideosPlugin.kt │ │ └── FreePornVideos.kt └── build.gradle.kts ├── Fullporner ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── owencz1998 │ │ ├── FullPornerProvider.kt │ │ └── FullPorner.kt └── build.gradle.kts ├── InternetChicks ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── InternetChicks │ │ ├── InternetchicksProvider.kt │ │ └── Internetchicks.kt └── build.gradle.kts ├── LongVideos ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── LongVideos │ │ ├── LongVideosProvider.kt │ │ └── Longvideos.kt └── build.gradle.kts ├── Noodlemagazine ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── owencz1998 │ │ ├── NoodleMagazinePlugin.kt │ │ └── NoodleMagazineProvider.kt └── build.gradle.kts ├── Perverzija ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── owencz1998 │ │ ├── PerverzijaPlugin.kt │ │ └── Extractors.kt └── build.gradle.kts ├── Pornhoarder ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── xxx │ │ ├── PornhoarderProvider.kt │ │ └── PornhoarderPlugin.kt └── build.gradle.kts ├── Porntrex ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── owencz1998 │ │ └── PorntrexProvider.kt └── build.gradle.kts ├── Sxyprn ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── owencz1998 │ │ └── SxyPrnProvider.kt └── build.gradle.kts ├── Whoreshub ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── Whoreshub │ │ ├── WhoreshubProvider.kt │ │ └── Whoreshub.kt └── build.gradle.kts ├── Trendyporn ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── Tendyporn │ │ └── TrendyPornProvider.kt └── build.gradle.kts ├── Yespornplease ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── Yespornplease │ │ ├── YesPornPleaseProvider.kt │ │ └── YesPornPlease.kt └── build.gradle.kts ├── Actionviewphotography ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── xxx │ │ ├── actionviewphotographyProvider.kt │ │ └── actionviewphotography.kt └── build.gradle.kts ├── Cam4 ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── Cam4 │ │ ├── Cam4Plugin.kt │ │ └── Cam4Provider.kt └── build.gradle.kts ├── Camsoda ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── com │ │ └── Camsoda │ │ ├── CamsodaPlugin.kt │ │ └── CamsodaProvider.kt └── build.gradle.kts ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── settings.gradle.kts ├── gradle.properties ├── .github └── workflows │ └── build.yml ├── gradlew.bat ├── README.md └── gradlew /run.bat: -------------------------------------------------------------------------------- 1 | .\gradlew.bat deployWithAdb -------------------------------------------------------------------------------- /Eporner/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /FXPrnHD/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Hqporner/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Mangoporn/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Onlyjerk/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Porn4fans/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Pornhits/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Pornhub/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Pornken/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Pornmz/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Pornobae/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Pornone/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Spankbang/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /UncutMaza/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /XPrimeHub/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Xhamster/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Xmaza/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Xtapes/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /AllPornStream/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /FreePornVideos/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Fullporner/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /InternetChicks/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /LongVideos/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Noodlemagazine/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Perverzija/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Pornhoarder/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Porntrex/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Sxyprn/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Whoreshub/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Trendyporn/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Yespornplease/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Actionviewphotography /src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Cam4/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Camsoda/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owenconnorz/XXX/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | .DS_Store 6 | /build 7 | **/build 8 | /captures 9 | .externalNativeBuild 10 | .cxx 11 | local.properties 12 | .vscode -------------------------------------------------------------------------------- /Spankbang/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Feb 20 16:26:11 CET 2022 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME -------------------------------------------------------------------------------- /Spankbang/.idea/migrations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /Cam4/src/main/kotlin/com/Cam4/Cam4Plugin.kt: -------------------------------------------------------------------------------- 1 | package com.Cam4 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class Cam4Plugin: Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(Cam4Provider()) 11 | } 12 | } -------------------------------------------------------------------------------- /Xmaza/src/main/kotlin/com/Xmaza/XmazaProvider.kt: -------------------------------------------------------------------------------- 1 | package com.Xmaza 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class XmazaProvider: Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(Xmaza()) 11 | } 12 | } -------------------------------------------------------------------------------- /Pornmz/src/main/kotlin/com/Pornmz/PornmzProvider.kt: -------------------------------------------------------------------------------- 1 | package com.Pornmz 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class PornmzProvider: Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(Pornmz()) 11 | } 12 | } -------------------------------------------------------------------------------- /Camsoda/src/main/kotlin/com/Camsoda/CamsodaPlugin.kt: -------------------------------------------------------------------------------- 1 | package com.Camsoda 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class CamsodaPlugin: Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(CamsodaProvider()) 11 | } 12 | } -------------------------------------------------------------------------------- /Eporner/src/main/kotlin/com/Eporner/EpornerProvider.kt: -------------------------------------------------------------------------------- 1 | package com.Eporner 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class EpornerProvider: Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(Eporner()) 11 | } 12 | } -------------------------------------------------------------------------------- /Pornken/src/main/kotlin/com/owencz1998/PornkenProvider.kt: -------------------------------------------------------------------------------- 1 | package com.owencz1998 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class Porn11Provider: Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(Porn11()) 11 | } 12 | } -------------------------------------------------------------------------------- /UncutMaza/src/main/kotlin/com/coxju/UncutMazaProvider.kt: -------------------------------------------------------------------------------- 1 | package com.coxju 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class UncutMazaProvider: Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(UncutMaza()) 11 | } 12 | } -------------------------------------------------------------------------------- /Spankbang/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | -------------------------------------------------------------------------------- /Spankbang/src/main/kotlin/com/Spankbang/spankbangProvider.kt: -------------------------------------------------------------------------------- 1 | package com.Spankbang 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class spankbangProvider: Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(Spankbang()) 11 | } 12 | } -------------------------------------------------------------------------------- /FreePornVideos/src/main/kotlin/com/XXX/FreePornVideosPlugin.kt: -------------------------------------------------------------------------------- 1 | package com.XXX 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class FreePornVideosPlugin: Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(FreePornVideos()) 11 | } 12 | } -------------------------------------------------------------------------------- /Porn4fans/src/main/kotlin/com/Porn4fans/Porn4fansProvider.kt: -------------------------------------------------------------------------------- 1 | package com.Porn4fans 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class Porn4fansProvider: Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(Porn4fans()) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Whoreshub/src/main/kotlin/com/Whoreshub/WhoreshubProvider.kt: -------------------------------------------------------------------------------- 1 | package com.Whoreshub 2 | 3 | import android.content.Context 4 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 5 | import com.lagradost.cloudstream3.plugins.Plugin 6 | 7 | @CloudstreamPlugin 8 | class WhoreshubProvider : Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(Whoreshub()) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /LongVideos/src/main/kotlin/com/LongVideos/LongVideosProvider.kt: -------------------------------------------------------------------------------- 1 | package com.LongVideos 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class LongvideosProvider: Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(Longvideos()) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Trendyporn/src/main/kotlin/com/Tendyporn/TrendyPornProvider.kt: -------------------------------------------------------------------------------- 1 | package com.Trendyporn 2 | 3 | import android.content.Context 4 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 5 | import com.lagradost.cloudstream3.plugins.Plugin 6 | 7 | @CloudstreamPlugin 8 | class TrendyPornProvider : Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(TrendyPorn()) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Hqporner/src/main/kotlin/com/xxx/HqpornerPlugin.kt: -------------------------------------------------------------------------------- 1 | package com.xxx 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class HqpornerPlugin: Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(Hqporner()) 11 | registerExtractorAPI(Mydaddy()) 12 | } 13 | } -------------------------------------------------------------------------------- /Yespornplease/src/main/kotlin/com/Yespornplease/YesPornPleaseProvider.kt: -------------------------------------------------------------------------------- 1 | package com.YesPornPlease 2 | 3 | import android.content.Context 4 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 5 | import com.lagradost.cloudstream3.plugins.Plugin 6 | 7 | @CloudstreamPlugin 8 | class YesPornPleaseProvider : Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(YesPornPlease()) 11 | } 12 | } -------------------------------------------------------------------------------- /InternetChicks/src/main/kotlin/com/InternetChicks/InternetchicksProvider.kt: -------------------------------------------------------------------------------- 1 | package com.InternetChicks 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class InternetchicksProvider: Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(internetchicks()) 11 | } 12 | } -------------------------------------------------------------------------------- /Actionviewphotography /src/main/kotlin/com/xxx/actionviewphotographyProvider.kt: -------------------------------------------------------------------------------- 1 | package com.xxx 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class actionviewphotographyProvider: Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(actionviewphotography()) 11 | } 12 | } -------------------------------------------------------------------------------- /Fullporner/src/main/kotlin/com/owencz1998/FullPornerProvider.kt: -------------------------------------------------------------------------------- 1 | package com.owencz1998 2 | 3 | import android.content.Context 4 | import com.owencz1998.FullPorner 5 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 6 | import com.lagradost.cloudstream3.plugins.Plugin 7 | 8 | @CloudstreamPlugin 9 | class FullPornerProvider : Plugin() { 10 | override fun load(context: Context) { 11 | registerMainAPI(FullPorner()) 12 | } 13 | } -------------------------------------------------------------------------------- /Pornobae/src/main/kotlin/com/Pornobae/PornobaeProvider.kt: -------------------------------------------------------------------------------- 1 | package com.Pornobae 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class PornobaeProvider: Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(Pornobae()) 11 | registerExtractorAPI(PornobaeExtractor()) 12 | } 13 | } -------------------------------------------------------------------------------- /Pornone/src/main/kotlin/com/PornOne/PornOnePlugin.kt: -------------------------------------------------------------------------------- 1 | package com.PornOne 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | import com.lagradost.cloudstream3.extractors.StreamTape 7 | 8 | @CloudstreamPlugin 9 | class PornOnePlugin: Plugin() { 10 | override fun load(context: Context) { 11 | registerMainAPI(PornOneProvider()) 12 | } 13 | } -------------------------------------------------------------------------------- /AllPornStream/src/main/kotlin/com/AllPornStream/AllPornStreamPlugin.kt: -------------------------------------------------------------------------------- 1 | package com.AllPornStream 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class AllPornStreamPlugin: Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(AllPornStream()) 11 | registerExtractorAPI(StreamTapeto()) 12 | } 13 | } -------------------------------------------------------------------------------- /Pornobae/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 4 2 | 3 | cloudstream { 4 | authors = listOf("HindiProvider, XXX") 5 | language = "en" 6 | description = "Pornobae" 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1 // will be 3 if unspecified 16 | tvTypes = listOf("NSFW") 17 | iconUrl = "https://pornobae.com/images/logo-new.png" 18 | } 19 | -------------------------------------------------------------------------------- /Xtapes/src/main/kotlin/com/Xtapes/XtapesProvider.kt: -------------------------------------------------------------------------------- 1 | package com.Xtapes 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class InternetchicksProvider: Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(Xtapes()) 11 | registerExtractorAPI(Stream()) 12 | registerExtractorAPI(VID()) 13 | } 14 | } -------------------------------------------------------------------------------- /Mangoporn/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 9 2 | 3 | cloudstream { 4 | authors = listOf("XXX") 5 | language = "en" 6 | description = "MangoPorn" 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1 // will be 3 if unspecified 16 | tvTypes = listOf("NSFW") 17 | iconUrl = "http://mangoporn.net/wp-content/uploads/2024/07/mangoporn.net_.png" 18 | } 19 | -------------------------------------------------------------------------------- /FXPrnHD/src/main/kotlin/com/XXX/FXPrnHDPlugin.kt: -------------------------------------------------------------------------------- 1 | package com.XXX 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | import com.lagradost.cloudstream3.extractors.StreamTape 7 | 8 | @CloudstreamPlugin 9 | class FXPrnHDPlugin: Plugin() { 10 | override fun load(context: Context) { 11 | registerMainAPI(Fxprnhd()) 12 | registerExtractorAPI(StreamTape()) 13 | } 14 | } -------------------------------------------------------------------------------- /Spankbang/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 10 2 | 3 | cloudstream { 4 | authors = listOf("XXX") 5 | language = "en" 6 | description = "Spankbang" 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1 // will be 3 if unspecified 16 | tvTypes = listOf("NSFW") 17 | iconUrl = "https://logos-world.net/wp-content/uploads/2023/01/SpankBang-Logo.png" 18 | } 19 | -------------------------------------------------------------------------------- /XPrimeHub/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 1 2 | 3 | cloudstream { 4 | authors = listOf("Phisher98") 5 | language = "hi" 6 | description = "Indian 18+ WebSeries" 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1 // will be 3 if unspecified 16 | tvTypes = listOf("NSFW") 17 | iconUrl = "https://xprimehub.vip/wp-content/uploads/2021/10/Logo.png" 18 | } 19 | -------------------------------------------------------------------------------- /Eporner/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 9 2 | 3 | cloudstream { 4 | authors = listOf("HindiProvider, XXX") 5 | language = "en" 6 | description = "Eporner" 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1 // will be 3 if unspecified 16 | tvTypes = listOf("NSFW") 17 | iconUrl = "https://raw.githubusercontent.com/phisher98/TVVVV/main/eporner.ico" 18 | } 19 | -------------------------------------------------------------------------------- /AllPornStream/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 4 2 | 3 | cloudstream { 4 | authors = listOf("Phisher98, XXX") 5 | language = "en" 6 | description = "Porn Studio" 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1 // will be 3 if unspecified 16 | tvTypes = listOf("NSFW", 17 | "Movie") 18 | iconUrl = "https://img.apstream.org/logo_aps.png" 19 | } -------------------------------------------------------------------------------- /Hqporner/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 6 2 | 3 | cloudstream { 4 | authors = listOf("Phishe, xxx") 5 | language = "en" 6 | description = "(VPN) Premium Porn with 4K support" 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1// will be 3 if unspecified 16 | tvTypes = listOf("NSFW") 17 | iconUrl = "https://www.google.com/s2/favicons?domain=hqporner.com&sz=%size%" 18 | } -------------------------------------------------------------------------------- /Spankbang/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /Actionviewphotography /build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 8 2 | 3 | cloudstream { 4 | authors = listOf("Hindi Provider") 5 | language = "en" 6 | description = "NSFW Search Videos" 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1 // will be 3 if unspecified 16 | tvTypes = listOf("NSFW") 17 | iconUrl = "https://www.google.com/s2/favicons?domain=uncutmaza.cc&sz=%size%" 18 | } 19 | -------------------------------------------------------------------------------- /Porntrex/src/main/kotlin/com/owencz1998/PorntrexProvider.kt: -------------------------------------------------------------------------------- 1 | package com.owencz1998 2 | 3 | import android.content.Context 4 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 5 | import com.lagradost.cloudstream3.plugins.Plugin 6 | 7 | @CloudstreamPlugin 8 | class PorntrexProvider : Plugin() { 9 | override fun load(context: Context) { 10 | // All providers should be added in this manner. Please don't edit the providers list directly. 11 | registerMainAPI(Porntrex()) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Pornhits/src/main/kotlin/com/xxx/PornhitsProvider.kt: -------------------------------------------------------------------------------- 1 | package com.xxx 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | import com.xxx.Pornhits 7 | 8 | @CloudstreamPlugin 9 | class PornhitsProvider: Plugin() { 10 | override fun load(context: Context) { 11 | // All providers should be added in this manner. Please don't edit the providers list directly. 12 | registerMainAPI(Pornhits()) 13 | } 14 | } -------------------------------------------------------------------------------- /Pornhub/src/main/kotlin/com/owencz1998/PornhubProviderPlugin.kt: -------------------------------------------------------------------------------- 1 | package com.owencz1998 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class PornHubProviderPlugin: Plugin() { 9 | override fun load(context: Context) { 10 | // All providers should be added in this manner. Please don't edit the providers list directly. 11 | registerMainAPI(PornHubProvider()) 12 | } 13 | } -------------------------------------------------------------------------------- /UncutMaza/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 5 2 | 3 | cloudstream { 4 | authors = listOf("Coxju") 5 | language = "hi" 6 | description = "We Provide Huge Colocation of Hindi Porn (Uncut) Web Series" 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1 // will be 3 if unspecified 16 | tvTypes = listOf("NSFW") 17 | iconUrl = "https://www.google.com/s2/favicons?domain=uncutmaza.cc&sz=%size%" 18 | } 19 | -------------------------------------------------------------------------------- /FXPrnHD/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 5 2 | 3 | cloudstream { 4 | authors = listOf("Sora", "keyiflerolsun","ramio23","XXX") 5 | language = "en" 6 | description = "(VPN) Premium porn with 4K support" 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1 // will be 3 if unspecified 16 | tvTypes = listOf("NSFW") 17 | iconUrl = "https://fxpornhd.com/wp-content/uploads/2024/06/logo-fxpornhd.com_.png" 18 | } -------------------------------------------------------------------------------- /Noodlemagazine/src/main/kotlin/com/owencz1998/NoodleMagazinePlugin.kt: -------------------------------------------------------------------------------- 1 | package com.owencz1998 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class NoodleMagazinePlugin: Plugin() { 9 | override fun load(context: Context) { 10 | // All providers should be added in this manner. Please don't edit the providers list directly. 11 | registerMainAPI(NoodleMagazineProvider()) 12 | } 13 | } -------------------------------------------------------------------------------- /Xmaza/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 16 2 | 3 | cloudstream { 4 | authors = listOf("Phisher98") 5 | language = "en" 6 | description = "Indian 18+ Web Series" 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1 // will be 3 if unspecified 16 | tvTypes = listOf("NSFW") 17 | iconUrl = "https://t3.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://xmaza.net&size=16" 18 | } 19 | -------------------------------------------------------------------------------- /XPrimeHub/src/main/kotlin/com/xprimehub/XPrimeHubProvider.kt: -------------------------------------------------------------------------------- 1 | package com.xprimehub 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | import com.lagradost.cloudstream3.extractors.PixelDrain 7 | 8 | @CloudstreamPlugin 9 | class XPrimeHubProvider: Plugin() { 10 | override fun load(context: Context) { 11 | registerMainAPI(XPrimeHub()) 12 | registerExtractorAPI(PixelDrain()) 13 | registerExtractorAPI(VCloud()) 14 | } 15 | } -------------------------------------------------------------------------------- /FreePornVideos/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 5 2 | 3 | cloudstream { 4 | authors = listOf("HindiProviders,XXX") 5 | language = "en" 6 | description = "Premium porn with the biggest selection with 4K support" 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1 // will be 3 if unspecified 16 | tvTypes = listOf("TvSeries", "Movie") 17 | iconUrl = "https://www.google.com/s2/favicons?domain=freepornvideos.xxx&sz=%size%" 18 | } -------------------------------------------------------------------------------- /Xhamster/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 6 2 | 3 | cloudstream { 4 | authors = listOf("Owen Connor") 5 | language = "en" 6 | description = "5 milyondan fazla Porno Videosunu ücretsiz izleyin." 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1 // will be 3 if unspecified 16 | tvTypes = listOf("NSFW", 17 | "Movie") 18 | iconUrl = "https://www.google.com/s2/favicons?domain=xhamster.com&sz=%size%" 19 | } 20 | -------------------------------------------------------------------------------- /Perverzija/src/main/kotlin/com/owencz1998/PerverzijaPlugin.kt: -------------------------------------------------------------------------------- 1 | package com.owencz1998 2 | 3 | import android.content.Context 4 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 5 | import com.lagradost.cloudstream3.plugins.Plugin 6 | 7 | @CloudstreamPlugin 8 | class PerverzijaPlugin : Plugin() { 9 | override fun load(context: Context) { 10 | // All providers should be added in this manner. Please don't edit the providers list directly. 11 | registerMainAPI(Perverzija()) 12 | registerExtractorAPI(Xtremestream()) 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Pornken/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 6 2 | 3 | cloudstream { 4 | authors = listOf("OwenConnor") 5 | language = "en" 6 | description = "We Provide Huge Colocation of Hindi Porn (Uncut) Web Series" 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1 // will be 3 if unspecified 16 | tvTypes = listOf("NSFW") 17 | iconUrl = "https://t3.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://pornken.com&size=16" 18 | } 19 | -------------------------------------------------------------------------------- /Pornone/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 3 2 | 3 | cloudstream { 4 | authors = listOf("luck731") 5 | language = "en" 6 | description = "Free Porn & HD Porno Videos in full length! Every minute new porn video for download and streaming. Tons of the Best XXX Movies daily from top porno tube PornOne." 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1 // will be 3 if unspecified 16 | tvTypes = listOf("NSFW") 17 | iconUrl = "https://pornone.com/favicon.ico" 18 | } 19 | -------------------------------------------------------------------------------- /Pornhoarder/src/main/kotlin/com/xxx/PornhoarderProvider.kt: -------------------------------------------------------------------------------- 1 | package com.xxx 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | import com.lagradost.cloudstream3.extractors.StreamTape 7 | import com.lagradost.cloudstream3.extractors.Wishonly 8 | 9 | @CloudstreamPlugin 10 | class PornhoarderProvider: Plugin() { 11 | override fun load(context: Context) { 12 | registerMainAPI(PornhoarderPlugin()) 13 | registerExtractorAPI(StreamTape()) 14 | registerExtractorAPI(Wishonly()) 15 | } 16 | } -------------------------------------------------------------------------------- /Onlyjerk/src/main/kotlin/com/Onlyjerk/OnlyjerkProvider.kt: -------------------------------------------------------------------------------- 1 | package com.Onlyjerk 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | 7 | @CloudstreamPlugin 8 | class OnlyjerkProvider: Plugin() { 9 | override fun load(context: Context) { 10 | registerMainAPI(Onlyjerk()) 11 | registerExtractorAPI(Dooodster()) 12 | registerExtractorAPI(Bigwarp()) 13 | registerExtractorAPI(Listeamed()) 14 | registerExtractorAPI(Beamed()) 15 | registerExtractorAPI(Bgwp()) 16 | } 17 | } -------------------------------------------------------------------------------- /Camsoda/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 1 2 | 3 | cloudstream { 4 | authors = listOf("luck731") 5 | language = "en" 6 | description = "Watch Camsoda's FREE ❤️ live cams. No registration required to view our live sex webcams. Free uncensored pornstars, amateurs, voyeurs and more in HD video." 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1 // will be 3 if unspecified 16 | tvTypes = listOf("NSFW") 17 | iconUrl = "https://cachew.livemediahost.com/assets/img/camsoda-logo-160x50.png" 18 | } 19 | -------------------------------------------------------------------------------- /Fullporner/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 2 2 | 3 | cloudstream { 4 | authors = listOf("Coxju") 5 | language = "en" 6 | description = "FullPorner is the best free full length porn video site. Choose from millions of hardcore videos that stream quickly and in high quality and only full length" 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1 // will be 3 if unspecified 16 | tvTypes = listOf("NSFW") 17 | iconUrl = "https://www.google.com/s2/favicons?domain=fullporner.com&sz=%size%" 18 | } 19 | -------------------------------------------------------------------------------- /Noodlemagazine/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 2 2 | 3 | 4 | cloudstream { 5 | language = "en" 6 | // All of these properties are optional, you can safely remove them 7 | 8 | description = "type .nofap in discord - Full Length" 9 | authors = listOf("KillerDogeEmpire, Coxju") 10 | 11 | /** 12 | * Status int as the following: 13 | * 0: Down 14 | * 1: Ok 15 | * 2: Slow 16 | * 3: Beta only 17 | * */ 18 | status = 1 // will be 3 if unspecified 19 | tvTypes = listOf( 20 | "NSFW", 21 | ) 22 | 23 | iconUrl = "https://www.google.com/s2/favicons?domain=noodlemagazine.com/&sz=%size%" 24 | } 25 | -------------------------------------------------------------------------------- /Cam4/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 1 2 | 3 | cloudstream { 4 | authors = listOf("Owen Cz") 5 | language = "en" 6 | description = "Watch & Chat with Sexy Webcam Girls Fucking, Fingering and Squirting Live on Cam - Chat with 750+ Hot Women Who Are Broadcasting & Wanking Now - Waiting for you." 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1 // will be 3 if unspecified 16 | tvTypes = listOf("NSFW") 17 | iconUrl = "https://cam4-static-test.xcdnpro.com/web/v2/app/phoenix/assets/static/media/favicon-512.d64f9b4e.png" 18 | } 19 | -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "CloudstreamPlugins" 2 | 3 | // This file sets what projects are included. All new projects should get automatically included unless specified in "disabled" variable. 4 | 5 | val disabled = listOf() 6 | 7 | File(rootDir, ".").eachDir { dir -> 8 | if (!disabled.contains(dir.name) && File(dir, "build.gradle.kts").exists()) { 9 | include(dir.name) 10 | } 11 | } 12 | 13 | fun File.eachDir(block: (File) -> Unit) { 14 | listFiles()?.filter { it.isDirectory }?.forEach { block(it) } 15 | } 16 | 17 | 18 | // To only include a single project, comment out the previous lines (except the first one), and include your plugin like so: 19 | // include("PluginName") -------------------------------------------------------------------------------- /Xhamster/src/main/kotlin/com/owencz1998/xHamsterProvider.kt: -------------------------------------------------------------------------------- 1 | package owencz1998 2 | 3 | import android.content.Context 4 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 5 | import com.lagradost.cloudstream3.plugins.Plugin 6 | // This import might be necessary if registerMainAPI is an extension function 7 | // import com.lagradost.cloudstream3.plugins.PluginManager.registerMainAPI 8 | 9 | @CloudstreamPlugin // Marks this as a plugin 10 | class XhamsterPlugin : Plugin() { // Inherits from Plugin 11 | override fun load(context: Context) { 12 | // All providers should be added in this way. 13 | // Register XhamsterProvider 14 | registerMainAPI(XhamsterProvider()) // Calls the provider registration here 15 | } 16 | } -------------------------------------------------------------------------------- /LongVideos/build.gradle.kts: -------------------------------------------------------------------------------- 1 | // use an integer for version numbers 2 | version = 4 3 | 4 | 5 | cloudstream { 6 | // All of these properties are optional, you can safely remove them 7 | 8 | description = "" 9 | language = "en" 10 | authors = listOf("megix") 11 | 12 | /** 13 | * Status int as the following: 14 | * 0: Down 15 | * 1: Ok 16 | * 2: Slow 17 | * 3: Beta only 18 | * */ 19 | status = 1 // will be 3 if unspecified 20 | 21 | // List of video source types. Users are able to filter for extensions in a given category. 22 | // You can find a list of avaliable types here: 23 | // https://recloudstream.github.io/cloudstream/html/app/com.lagradost.cloudstream3/-tv-type/index.html 24 | tvTypes = listOf("NSFW") 25 | iconUrl = "https://www.longvideos.xxx/img/favicon/apple-touch-icon.png" 26 | } 27 | -------------------------------------------------------------------------------- /Pornmz/build.gradle.kts: -------------------------------------------------------------------------------- 1 | // use an integer for version numbers 2 | version = 3 3 | 4 | 5 | cloudstream { 6 | // All of these properties are optional, you can safely remove them 7 | 8 | description = "Pornmz, X" 9 | language = "en" 10 | authors = listOf("megix") 11 | 12 | /** 13 | * Status int as the following: 14 | * 0: Down 15 | * 1: Ok 16 | * 2: Slow 17 | * 3: Beta only 18 | * */ 19 | status = 1 // will be 3 if unspecified 20 | 21 | // List of video source types. Users are able to filter for extensions in a given category. 22 | // You can find a list of avaliable types here: 23 | // https://recloudstream.github.io/cloudstream/html/app/com.lagradost.cloudstream3/-tv-type/index.html 24 | tvTypes = listOf("NSFW") 25 | iconUrl = "https://pornmz.com/wp-content/uploads/2021/03/PornMZ.png" 26 | } 27 | -------------------------------------------------------------------------------- /Porn4fans/build.gradle.kts: -------------------------------------------------------------------------------- 1 | // use an integer for version numbers 2 | version = 5 3 | 4 | 5 | cloudstream { 6 | // All of these properties are optional, you can safely remove them 7 | 8 | description = "Porn4fans - Onlyfans Content" 9 | language = "en" 10 | authors = listOf("megix") 11 | 12 | /** 13 | * Status int as the following: 14 | * 0: Down 15 | * 1: Ok 16 | * 2: Slow 17 | * 3: Beta only 18 | * */ 19 | status = 1 // will be 3 if unspecified 20 | 21 | // List of video source types. Users are able to filter for extensions in a given category. 22 | // You can find a list of avaliable types here: 23 | // https://recloudstream.github.io/cloudstream/html/app/com.lagradost.cloudstream3/-tv-type/index.html 24 | tvTypes = listOf("NSFW") 25 | iconUrl = "https://www.porn4fans.com/favicon.ico" 26 | } 27 | -------------------------------------------------------------------------------- /Whoreshub/build.gradle.kts: -------------------------------------------------------------------------------- 1 | // use an integer for version numbers 2 | version = 4 3 | 4 | cloudstream { 5 | // All of these properties are optional, you can safely remove them 6 | 7 | description = "Whoreshub" 8 | language = "en" 9 | authors = listOf("megix") 10 | 11 | /** 12 | * Status int as the following: 13 | * 0: Down 14 | * 1: Ok 15 | * 2: Slow 16 | * 3: Beta only 17 | * */ 18 | status = 1 // will be 3 if unspecified 19 | 20 | // List of video source types. Users are able to filter for extensions in a given category. 21 | // You can find a list of avaliable types here: 22 | // https://recloudstream.github.io/cloudstream/html/app/com.lagradost.cloudstream3/-tv-type/index.html 23 | tvTypes = listOf("NSFW") 24 | iconUrl = "https://findbestporno.com/public/uploads/image/2021/8/WhoresHub.jpg" 25 | } 26 | -------------------------------------------------------------------------------- /Onlyjerk/build.gradle.kts: -------------------------------------------------------------------------------- 1 | // use an integer for version numbers 2 | version = 4 3 | 4 | 5 | cloudstream { 6 | // All of these properties are optional, you can safely remove them 7 | 8 | description = "Onlyjerk" 9 | language = "en" 10 | authors = listOf("megix") 11 | 12 | /** 13 | * Status int as the following: 14 | * 0: Down 15 | * 1: Ok 16 | * 2: Slow 17 | * 3: Beta only 18 | * */ 19 | status = 1 // will be 3 if unspecified 20 | 21 | // List of video source types. Users are able to filter for extensions in a given category. 22 | // You can find a list of avaliable types here: 23 | // https://recloudstream.github.io/cloudstream/html/app/com.lagradost.cloudstream3/-tv-type/index.html 24 | tvTypes = listOf("NSFW") 25 | iconUrl = "https://onlyjerk.net/wp-content/uploads/2024/01/apple-icon-180x180-1.png" 26 | } 27 | -------------------------------------------------------------------------------- /Trendyporn/build.gradle.kts: -------------------------------------------------------------------------------- 1 | // use an integer for version numbers 2 | version = 3 3 | 4 | cloudstream { 5 | // All of these properties are optional, you can safely remove them 6 | 7 | description = "TrendyPorn" 8 | language = "en" 9 | authors = listOf("megix") 10 | 11 | /** 12 | * Status int as the following: 13 | * 0: Down 14 | * 1: Ok 15 | * 2: Slow 16 | * 3: Beta only 17 | * */ 18 | status = 1 // will be 3 if unspecified 19 | 20 | // List of video source types. Users are able to filter for extensions in a given category. 21 | // You can find a list of avaliable types here: 22 | // https://recloudstream.github.io/cloudstream/html/app/com.lagradost.cloudstream3/-tv-type/index.html 23 | tvTypes = listOf("NSFW") 24 | iconUrl = "https://pbs.twimg.com/profile_images/1054618246551298048/Dkj4DQSt_400x400.jpg" 25 | } 26 | -------------------------------------------------------------------------------- /Xtapes/build.gradle.kts: -------------------------------------------------------------------------------- 1 | // use an integer for version numbers 2 | version = 11 3 | 4 | 5 | cloudstream { 6 | // All of these properties are optional, you can safely remove them 7 | 8 | description = "Xtapes" 9 | language = "en" 10 | authors = listOf("HindiProviders") 11 | 12 | /** 13 | * Status int as the following: 14 | * 0: Down 15 | * 1: Ok 16 | * 2: Slow 17 | * 3: Beta only 18 | * */ 19 | status = 1 // will be 3 if unspecified 20 | 21 | // List of video source types. Users are able to filter for extensions in a given category. 22 | // You can find a list of avaliable types here: 23 | // https://recloudstream.github.io/cloudstream/html/app/com.lagradost.cloudstream3/-tv-type/index.html 24 | tvTypes = listOf("NSFW") 25 | iconUrl = "https://www.google.com/s2/favicons?domain=https://xtapes.to&sz=%size%" 26 | } 27 | -------------------------------------------------------------------------------- /Porntrex/build.gradle.kts: -------------------------------------------------------------------------------- 1 | // use an integer for version numbers 2 | version = 3 3 | 4 | 5 | cloudstream { 6 | // All of these properties are optional, you can safely remove them 7 | 8 | description = "Porntrex" 9 | authors = listOf("KillerDogeEmpire, Coxju") 10 | 11 | /** 12 | * Status int as the following: 13 | * 0: Down 14 | * 1: Ok 15 | * 2: Slow 16 | * 3: Beta only 17 | * */ 18 | status = 1 // will be 3 if unspecified 19 | 20 | // List of video source types. Users are able to filter for extensions in a given category. 21 | // You can find a list of avaliable types here: 22 | // https://recloudstream.github.io/cloudstream/html/app/com.lagradost.cloudstream3/-tv-type/index.html 23 | tvTypes = listOf("NSFW") 24 | 25 | iconUrl = "https://www.google.com/s2/favicons?domain=www.porntrex.com&sz=%size%" 26 | 27 | language = "en" 28 | } -------------------------------------------------------------------------------- /Pornhits/build.gradle.kts: -------------------------------------------------------------------------------- 1 | // use an integer for version numbers 2 | version = 4 3 | 4 | 5 | cloudstream { 6 | // All of these properties are optional, you can safely remove them 7 | 8 | description = "Pornhits" 9 | authors = listOf("KillerDogeEmpire, Coxju, xxx") 10 | 11 | /** 12 | * Status int as the following: 13 | * 0: Down 14 | * 1: Ok 15 | * 2: Slow 16 | * 3: Beta only 17 | * */ 18 | status = 1 // will be 3 if unspecified 19 | 20 | // List of video source types. Users are able to filter for extensions in a given category. 21 | // You can find a list of avaliable types here: 22 | // https://recloudstream.github.io/cloudstream/html/app/com.lagradost.cloudstream3/-tv-type/index.html 23 | tvTypes = listOf("NSFW") 24 | 25 | iconUrl = "https://www.google.com/s2/favicons?domain=pornhits.com&sz=%size%" 26 | 27 | language = "en" 28 | } 29 | -------------------------------------------------------------------------------- /InternetChicks/build.gradle.kts: -------------------------------------------------------------------------------- 1 | // use an integer for version numbers 2 | version = 4 3 | 4 | 5 | cloudstream { 6 | // All of these properties are optional, you can safely remove them 7 | 8 | description = "InternetChicks" 9 | language = "en" 10 | authors = listOf("HindiProviders") 11 | 12 | /** 13 | * Status int as the following: 14 | * 0: Down 15 | * 1: Ok 16 | * 2: Slow 17 | * 3: Beta only 18 | * */ 19 | status = 1 // will be 3 if unspecified 20 | 21 | // List of video source types. Users are able to filter for extensions in a given category. 22 | // You can find a list of avaliable types here: 23 | // https://recloudstream.github.io/cloudstream/html/app/com.lagradost.cloudstream3/-tv-type/index.html 24 | tvTypes = listOf("NSFW") 25 | iconUrl = "https://internetchicks.com/wp-content/uploads/2021/02/cropped-Untitled-design-56.png?x15539" 26 | } -------------------------------------------------------------------------------- /Yespornplease/build.gradle.kts: -------------------------------------------------------------------------------- 1 | // use an integer for version numbers 2 | version = 10 3 | 4 | cloudstream { 5 | // All of these properties are optional, you can safely remove them 6 | 7 | description = "YesPornPlease" 8 | language = "en" 9 | authors = listOf("XXX", "megix") 10 | 11 | /** 12 | * Status int as the following: 13 | * 0: Down 14 | * 1: Ok 15 | * 2: Slow 16 | * 3: Beta only 17 | * */ 18 | status = 1 // will be 3 if unspecified 19 | 20 | // List of video source types. Users are able to filter for extensions in a given category. 21 | // You can find a list of avaliable types here: 22 | // https://recloudstream.github.io/cloudstream/html/app/com.lagradost.cloudstream3/-tv-type/index.html 23 | tvTypes = listOf("NSFW") 24 | iconUrl = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR1xfGH3Q2FVINtuDKrS8FBP8uP2AHbKBxpeQ&s" 25 | } 26 | -------------------------------------------------------------------------------- /Perverzija/build.gradle.kts: -------------------------------------------------------------------------------- 1 | // use an integer for version numbers 2 | version = 7 3 | 4 | 5 | cloudstream { 6 | // All of these properties are optional, you can safely remove them 7 | 8 | description = "Contains all the videos from Perverzija" 9 | authors = listOf("coxju, megix") 10 | 11 | /** 12 | * Status int as the following: 13 | * 0: Down 14 | * 1: Ok 15 | * 2: Slow 16 | * 3: Beta only 17 | * */ 18 | status = 1 // will be 3 if unspecified 19 | 20 | // List of video source types. Users are able to filter for extensions in a given category. 21 | // You can find a list of avaliable types here: 22 | // https://recloudstream.github.io/cloudstream/html/app/com.lagradost.cloudstream3/-tv-type/index.html 23 | tvTypes = listOf("NSFW") 24 | 25 | iconUrl = "https://www.google.com/s2/favicons?domain=tube.perverzija.com&sz=%size%" 26 | 27 | language = "en" 28 | } 29 | -------------------------------------------------------------------------------- /Mangoporn/src/main/kotlin/com/Mangoporn/MangopornProvider.kt: -------------------------------------------------------------------------------- 1 | package com.Mangoporn 2 | 3 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 4 | import com.lagradost.cloudstream3.plugins.Plugin 5 | import android.content.Context 6 | import com.lagradost.cloudstream3.extractors.EmturbovidExtractor 7 | import com.lagradost.cloudstream3.extractors.FileMoonSx 8 | import com.lagradost.cloudstream3.extractors.StreamTape 9 | 10 | @CloudstreamPlugin 11 | class MangopornProvider: Plugin() { 12 | override fun load(context: Context) { 13 | registerMainAPI(Mangoporn()) 14 | registerExtractorAPI(EmturbovidExtractor()) 15 | registerExtractorAPI(FileMoonSx()) 16 | registerExtractorAPI(DoodPmExtractor()) 17 | registerExtractorAPI(Vidguardto()) 18 | registerExtractorAPI(MixDropAG()) 19 | registerExtractorAPI(Lulustream()) 20 | registerExtractorAPI(StreamTape()) 21 | } 22 | } -------------------------------------------------------------------------------- /Pornhub/build.gradle.kts: -------------------------------------------------------------------------------- 1 | // use an integer for version numbers 2 | version = 22 3 | 4 | 5 | cloudstream { 6 | // All of these properties are optional, you can safely remove them 7 | 8 | description = "Pornhub" 9 | authors = listOf("Stormunblessed", "Jace", "KillerDogeEmpire", "Hexated", "Coxju", "XXX",) 10 | 11 | /** 12 | * Status int as the following: 13 | * 0: Down 14 | * 1: Ok 15 | * 2: Slow 16 | * 3: Beta only 17 | * */ 18 | status = 1 // will be 3 if unspecified 19 | 20 | // List of video source types. Users are able to filter for extensions in a given category. 21 | // You can find a list of avaliable types here: 22 | // https://recloudstream.github.io/cloudstream/html/app/com.lagradost.cloudstream3/-tv-type/index.html 23 | tvTypes = listOf("NSFW") 24 | 25 | iconUrl = "https://www.google.com/s2/favicons?domain=pornhub.com&sz=%size%" 26 | 27 | language = "en" 28 | } -------------------------------------------------------------------------------- /Sxyprn/src/main/kotlin/com/owencz1998/SxyPrnProvider.kt: -------------------------------------------------------------------------------- 1 | package com.owencz1998 2 | 3 | import android.content.Context 4 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 5 | import com.lagradost.cloudstream3.plugins.Plugin 6 | import com.lagradost.cloudstream3.extractors.StreamTape 7 | import com.lagradost.cloudstream3.extractors.Lulustream1 8 | import com.lagradost.cloudstream3.extractors.Vidguardto 9 | import com.lagradost.cloudstream3.extractors.DoodstreamCom 10 | 11 | 12 | @CloudstreamPlugin 13 | class SxyPrnProvider : Plugin() { 14 | override fun load(context: Context) { 15 | // All providers should be added in this manner. Please don't edit the providers list directly. 16 | registerMainAPI(SxyPrn()) 17 | registerExtractorAPI(StreamTape()) 18 | registerExtractorAPI(Lulustream1()) 19 | registerExtractorAPI(Vidguardto()) 20 | registerExtractorAPI(DoodstreamCom()) 21 | } 22 | } -------------------------------------------------------------------------------- /Sxyprn/build.gradle.kts: -------------------------------------------------------------------------------- 1 | // use an integer for version numbers 2 | version = 4 3 | 4 | cloudstream { 5 | // All of these properties are optional, you can safely remove them 6 | 7 | description = "sxyprn" 8 | authors = listOf("Coxju, megix") 9 | 10 | /** 11 | * Status int as the following: 12 | * 0: Down 13 | * 1: Ok 14 | * 2: Slow 15 | * 3: Beta only 16 | * */ 17 | status = 1 // will be 3 if unspecified 18 | 19 | // List of video source types. Users are able to filter for extensions in a given category. 20 | // You can find a list of avaliable types here: 21 | // https://recloudstream.github.io/cloudstream/html/app/com.lagradost.cloudstream3/-tv-type/index.html 22 | tvTypes = listOf("NSFW") 23 | 24 | iconUrl = "https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://www.sxyprn.com/New.html%3Fpage%3D150&ved=2ahUKEwj9kIGspbKGAxWGU0EAHZCYChAQFnoECA8QAQ&usg=AOvVaw0JnTRXdF_iswS6XRtqa_JK" 25 | 26 | language = "en" 27 | } 28 | -------------------------------------------------------------------------------- /Pornhoarder/build.gradle.kts: -------------------------------------------------------------------------------- 1 | version = 11 2 | 3 | cloudstream { 4 | authors = listOf("salman731") 5 | language = "en" 6 | description = "Pornhoarder" 7 | 8 | /** 9 | * Status int as the following: 10 | * 0: Down 11 | * 1: Ok 12 | * 2: Slow 13 | * 3: Beta only 14 | **/ 15 | status = 1 // will be 3 if unspecified 16 | tvTypes = listOf("NSFW") 17 | iconUrl = "https://a.adtng.com/click/eyJleHRfemlkIjoiIiwiZXh0X2MiOiIiLCJleHRfYWlkIjoiIiwicGlkIjoiNDkiLCJzaWQiOiIxMDAxMzM3MSIsIm5pZHMiOiI2MjQyOSIsImR5bl9kbW4iOiIiLCJjcmlkIjoiMTExMjAxMyIsInN2IjoiNDc2IiwicmVmX2RtbiI6InN4eXBybi5jb20iLCJleHRfY2lkIjoiIiwidHNuYW1lIjoiTUIiLCJjcmMiOiI0IiwiY24iOiIzMDBYMjUwX01JWF9ERU0iLCJuaWQiOiI2MjQyOSIsImV4dF9wdWIiOiIiLCJjcnAiOiI2NC44MSIsInRpZCI6IjEiLCJpdCI6IjIzXC9PY3RcLzIwMjQ6MDk6NDM6MDEgKzAwMDAiLCJjYyI6IjEiLCJzbmNpZCI6IjEwMjA3MiIsImNpZCI6IjM2OTAxIiwiZXh0X3VpZCI6IiIsImNwIjoiMTAwIiwic25jY2lkIjoiMjQzMzY4NiIsImlpZCI6IjRmNWU4ZjIyZGQ4Nzc3NjkzZTEyYjg4M2M2MzdiYzFjIiwiZXh0X2lpZCI6IiJ9?lp=KTY3NDZyZmU%2FKz1%2FYTMhNy0iPEJLWFFGRlxHXBciLS5rMS85e3QtKREmNW5uZmFgAQgQVUZQDnxZTSQwLSUpOzEzOz4jaC4lMGtmaGkBCwUDA24BAQQKd3p1G3Z%2BcHp6E3x%2FfmNjZ2QHG2pnDgULCAIF" 18 | } 19 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | # AndroidX package structure to make it clearer which packages are bundled with the 15 | # Android operating system, and which are packaged with your app"s APK 16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 17 | android.useAndroidX=true 18 | # Automatically convert third-party libraries to use AndroidX 19 | android.enableJetifier=true 20 | android.buildFeatures.buildConfig=true -------------------------------------------------------------------------------- /Xtapes/src/main/kotlin/com/Xtapes/Extractor.kt: -------------------------------------------------------------------------------- 1 | package com.Xtapes 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty 4 | import com.lagradost.api.Log 5 | import com.lagradost.cloudstream3.app 6 | import com.lagradost.cloudstream3.extractors.DoodLaExtractor 7 | import com.lagradost.cloudstream3.extractors.Filesim 8 | import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson 9 | import com.lagradost.cloudstream3.utils.ExtractorApi 10 | import com.lagradost.cloudstream3.utils.ExtractorLink 11 | import com.lagradost.cloudstream3.utils.INFER_TYPE 12 | import com.lagradost.cloudstream3.utils.M3u8Helper 13 | import com.lagradost.cloudstream3.utils.Qualities 14 | import com.lagradost.cloudstream3.utils.getQualityFromName 15 | import com.lagradost.cloudstream3.utils.newExtractorLink 16 | 17 | 18 | class Stream : Filesim() { 19 | override var mainUrl = "https://55k.io" 20 | } 21 | 22 | 23 | open class VID : ExtractorApi() { 24 | override var name = "VID Xtapes" 25 | override var mainUrl = "https://vid.xtapes.to" 26 | override val requiresReferer = false 27 | 28 | override suspend fun getUrl(url: String, referer: String?): List? { 29 | val response = app.get(url).document.toString() 30 | val link =response.substringAfter("src: '").substringBefore("',") 31 | return listOf( 32 | newExtractorLink( 33 | source = this.name, 34 | name = this.name, 35 | url = link, 36 | INFER_TYPE 37 | ) { 38 | this.referer = referer ?: "" 39 | this.quality = Qualities.Unknown.value 40 | } 41 | ) 42 | } 43 | } -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build 2 | 3 | # https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#concurrency 4 | concurrency: 5 | group: "build" 6 | cancel-in-progress: true 7 | 8 | on: 9 | push: 10 | branches: 11 | # choose your default branch 12 | - master 13 | - main 14 | paths-ignore: 15 | - '*.md' 16 | 17 | jobs: 18 | build: 19 | runs-on: ubuntu-latest 20 | steps: 21 | - name: Checkout 22 | uses: actions/checkout@v4.2.2 23 | with: 24 | path: "src" 25 | 26 | - name: Checkout builds 27 | uses: actions/checkout@v4.2.2 28 | with: 29 | ref: "builds" 30 | path: "builds" 31 | 32 | - name: Clean old builds 33 | run: rm $GITHUB_WORKSPACE/builds/*.cs3 || true 34 | 35 | - name: Setup JDK 17 36 | uses: actions/setup-java@v4.6.0 37 | with: 38 | distribution: "adopt" 39 | java-version: 17 40 | 41 | - name: Setup Android SDK 42 | uses: android-actions/setup-android@v3.2.2 43 | 44 | - name: Build Plugins 45 | run: | 46 | cd $GITHUB_WORKSPACE/src 47 | chmod +x gradlew 48 | ./gradlew make makePluginsJson 49 | cp **/build/*.cs3 $GITHUB_WORKSPACE/builds 50 | cp build/plugins.json $GITHUB_WORKSPACE/builds 51 | 52 | - name: Push builds 53 | run: | 54 | cd $GITHUB_WORKSPACE/builds 55 | git config --local user.email "actions@github.com" 56 | git config --local user.name "GitHub Actions" 57 | git add . 58 | git commit --amend -m "Build $GITHUB_SHA" || exit 0 # do not error if nothing to commit 59 | git push --force -------------------------------------------------------------------------------- /Onlyjerk/src/main/kotlin/com/Onlyjerk/Extractors.kt: -------------------------------------------------------------------------------- 1 | package com.Onlyjerk 2 | 3 | import org.jsoup.nodes.Element 4 | import com.lagradost.cloudstream3.* 5 | import com.lagradost.cloudstream3.utils.* 6 | import com.lagradost.cloudstream3.extractors.DoodLaExtractor 7 | import com.lagradost.cloudstream3.extractors.Vidguardto 8 | 9 | class Dooodster : DoodLaExtractor() { 10 | override var mainUrl = "https://dooodster.com" 11 | } 12 | 13 | class Listeamed : Vidguardto() { 14 | override var mainUrl = "https://listeamed.net" 15 | } 16 | 17 | class Beamed : Vidguardto() { 18 | override var mainUrl = "https://bembed.net" 19 | } 20 | 21 | class Bgwp : Bigwarp() { 22 | override var mainUrl = "https://bgwp.cc" 23 | } 24 | 25 | open class Bigwarp : ExtractorApi() { 26 | override var name = "Bigwarp" 27 | override var mainUrl = "https://bigwarp.io" 28 | override val requiresReferer = true 29 | 30 | override suspend fun getUrl( 31 | url: String, 32 | referer: String?, 33 | subtitleCallback: (SubtitleFile) -> Unit, 34 | callback: (ExtractorLink) -> Unit 35 | ) { 36 | val link = app.get(url, allowRedirects = false).headers["location"] ?: url 37 | val source = app.get(link).document.selectFirst("body > script").toString() 38 | val regex = Regex("""file:\s*\"((?:https?://|//)[^\"]+)""") 39 | val matchResult = regex.find(source) 40 | val match = matchResult?.groupValues?.get(1) 41 | 42 | if (match != null) { 43 | callback.invoke( 44 | newExtractorLink( 45 | source = this.name, 46 | name = this.name, 47 | url = match 48 | ) { 49 | this.referer = "" 50 | this.quality = Qualities.Unknown.value 51 | } 52 | ) 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /Pornken/src/main/kotlin/com/owencz1998/PornkenExtractors.kt: -------------------------------------------------------------------------------- 1 | package com.owencz1998 2 | 3 | import com.lagradost.cloudstream3.app 4 | import com.lagradost.cloudstream3.utils.ExtractorApi 5 | import com.lagradost.cloudstream3.utils.ExtractorLink 6 | import com.lagradost.cloudstream3.utils.getQualityFromName 7 | import com.lagradost.cloudstream3.utils.newExtractorLink 8 | 9 | // class D0000dExtractor : DoodLaExtractor() { 10 | // override var mainUrl = "https://d0000d.com" 11 | // } 12 | 13 | class D0000dExtractor : ExtractorApi() { 14 | override var name = "DoodStream" 15 | override var mainUrl = "https://d0000d.com" 16 | override val requiresReferer = false 17 | 18 | override suspend fun getUrl(url: String, referer: String?): List? { 19 | // html of DoodStream page to look for /pass_md5/... 20 | val response0 = app.get(url).text 21 | 22 | // get https://dood.ws/pass_md5/... 23 | val md5 = mainUrl + (Regex("/pass_md5/[^']*").find(response0)?.value ?: return null) 24 | val res = app.get(md5, referer = mainUrl + "/e/" + url.substringAfterLast("/")) 25 | 26 | // (zUEJeL3mUN is random) 27 | val trueUrl = 28 | if (res.toString().contains("cloudflarestorage")) res.toString() 29 | else res.text + "zUEJeL3mUN?token=" + md5.substringAfterLast("/") 30 | 31 | val quality = 32 | Regex("\\d{3,4}p") 33 | .find(response0.substringAfter("").substringBefore("")) 34 | ?.groupValues 35 | ?.get(0) 36 | 37 | return listOf( 38 | newExtractorLink( 39 | source = this.name, 40 | name = this.name, 41 | url = trueUrl 42 | ) { 43 | this.referer = mainUrl 44 | this.quality = getQualityFromName(quality) 45 | } 46 | ) // links are valid for 8h 47 | } 48 | } -------------------------------------------------------------------------------- /Perverzija/src/main/kotlin/com/owencz1998/Extractors.kt: -------------------------------------------------------------------------------- 1 | package com.owencz1998 2 | 3 | import com.lagradost.cloudstream3.app 4 | import com.lagradost.cloudstream3.utils.ExtractorApi 5 | import com.lagradost.cloudstream3.utils.ExtractorLink 6 | import com.lagradost.cloudstream3.utils.M3u8Helper 7 | import com.lagradost.cloudstream3.* 8 | import com.lagradost.cloudstream3.utils.* 9 | import okhttp3.OkHttpClient 10 | import okhttp3.Request 11 | import org.jsoup.Jsoup 12 | 13 | open class Xtremestream : ExtractorApi() { 14 | override var name = "Xtremestream" 15 | override var mainUrl = "https://pervl4.xtremestream.xyz" 16 | override val requiresReferer = true 17 | private val client = OkHttpClient() 18 | 19 | override suspend fun getUrl(url: String, referer: String?, subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit){ 20 | 21 | val request = Request.Builder() 22 | .url(url) 23 | .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8") 24 | .header("Referer", referer.toString()) 25 | .header("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36") 26 | .build() 27 | 28 | val response = client.newCall(request).execute() 29 | val html = response.body?.string() ?: return 30 | 31 | val playerScript = 32 | Jsoup.parse(html).selectXpath("//script[contains(text(),'var video_id')]") 33 | .html() 34 | val sources = mutableListOf() 35 | if (playerScript.isNotBlank()) { 36 | val videoId = playerScript.substringAfter("var video_id = `").substringBefore("`;") 37 | val m3u8LoaderUrl = 38 | playerScript.substringAfter("var m3u8_loader_url = `").substringBefore("`;") 39 | 40 | if (videoId.isNotBlank() && m3u8LoaderUrl.isNotBlank()) { 41 | M3u8Helper.generateM3u8( 42 | name, 43 | "$m3u8LoaderUrl/$videoId", 44 | "$m3u8LoaderUrl/$videoId" 45 | ).forEach { link -> 46 | sources.add(link) 47 | } 48 | } 49 | } 50 | sources.forEach { source -> 51 | callback.invoke(source) 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /Hqporner/src/main/kotlin/com/xxx/Extractors.kt: -------------------------------------------------------------------------------- 1 | package com.xxx 2 | 3 | import com.lagradost.cloudstream3.SubtitleFile 4 | import com.lagradost.cloudstream3.app 5 | import com.lagradost.cloudstream3.utils.ExtractorApi 6 | import com.lagradost.cloudstream3.utils.ExtractorLink 7 | import com.lagradost.cloudstream3.utils.getQualityFromName 8 | import com.lagradost.cloudstream3.utils.newExtractorLink 9 | 10 | open class Mydaddy : ExtractorApi() { 11 | override val name = "Mydaddy" 12 | override val mainUrl = "https://www.mydaddy.cc" 13 | override val requiresReferer = true 14 | 15 | override suspend fun getUrl( 16 | url: String, 17 | referer: String?, 18 | subtitleCallback: (SubtitleFile) -> Unit, 19 | callback: (ExtractorLink) -> Unit 20 | ) { 21 | val document= app.get(url).document.selectFirst("script:containsData(do_pl())") 22 | ?.toString() 23 | val jw= document?.substringAfter("replaceAll")?.substringAfter(",")?.substringBefore(")") ?:"" 24 | val (one, _, three) = jw.split("+") 25 | .map { it.trim().removeSurrounding("\"") } 26 | val first = document?.let { Regex("""$one\s*=\s*"(.*?)";""").find(it)?.groupValues?.get(1) } 27 | ?.removePrefix("//") 28 | ?.removeSuffix("/") ?:"" 29 | val third = document?.let { Regex("""$three\s*=\s*"(.*?)";""").find(it)?.groupValues?.get(1) } ?:"" 30 | val finalurl="https://$first/pubs/$third" 31 | val regex = Regex("""title=\\"(\d+p|4K)""") 32 | val matches = regex.findAll(document.toString()) 33 | val qualities = mutableListOf() 34 | for (match in matches) { 35 | val quality = match.groupValues[1] 36 | if (quality == "4K") { 37 | qualities.add("2160") 38 | } else { 39 | qualities.add(quality.dropLast(1)) 40 | } 41 | } 42 | for (quality in qualities) { 43 | val href="$finalurl/$quality.mp4" 44 | callback.invoke( 45 | newExtractorLink( 46 | source = name, 47 | name = name, 48 | url = href 49 | ) { 50 | this.referer = "" 51 | this.quality = getQualityFromName(quality) 52 | } 53 | ) 54 | } 55 | } 56 | } -------------------------------------------------------------------------------- /Spankbang/.idea/workspace.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 15 | 16 | 18 | 19 | 21 | 22 | 23 | 26 | 38 | 39 | 40 | 41 | 42 | 1708424421472 43 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @rem 2 | @rem Copyright 2015 the original author or authors. 3 | @rem 4 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | @rem you may not use this file except in compliance with the License. 6 | @rem You may obtain a copy of the License at 7 | @rem 8 | @rem https://www.apache.org/licenses/LICENSE-2.0 9 | @rem 10 | @rem Unless required by applicable law or agreed to in writing, software 11 | @rem distributed under the License is distributed on an "AS IS" BASIS, 12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @rem See the License for the specific language governing permissions and 14 | @rem limitations under the License. 15 | @rem 16 | 17 | @if "%DEBUG%" == "" @echo off 18 | @rem ########################################################################## 19 | @rem 20 | @rem Gradle startup script for Windows 21 | @rem 22 | @rem ########################################################################## 23 | 24 | @rem Set local scope for the variables with windows NT shell 25 | if "%OS%"=="Windows_NT" setlocal 26 | 27 | set DIRNAME=%~dp0 28 | if "%DIRNAME%" == "" set DIRNAME=. 29 | set APP_BASE_NAME=%~n0 30 | set APP_HOME=%DIRNAME% 31 | 32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 34 | 35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 37 | 38 | @rem Find java.exe 39 | if defined JAVA_HOME goto findJavaFromJavaHome 40 | 41 | set JAVA_EXE=java.exe 42 | %JAVA_EXE% -version >NUL 2>&1 43 | if "%ERRORLEVEL%" == "0" goto execute 44 | 45 | echo. 46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 47 | echo. 48 | echo Please set the JAVA_HOME variable in your environment to match the 49 | echo location of your Java installation. 50 | 51 | goto fail 52 | 53 | :findJavaFromJavaHome 54 | set JAVA_HOME=%JAVA_HOME:"=% 55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 56 | 57 | if exist "%JAVA_EXE%" goto execute 58 | 59 | echo. 60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 61 | echo. 62 | echo Please set the JAVA_HOME variable in your environment to match the 63 | echo location of your Java installation. 64 | 65 | goto fail 66 | 67 | :execute 68 | @rem Setup the command line 69 | 70 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 71 | 72 | 73 | @rem Execute Gradle 74 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* 75 | 76 | :end 77 | @rem End local scope for the variables with windows NT shell 78 | if "%ERRORLEVEL%"=="0" goto mainEnd 79 | 80 | :fail 81 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 82 | rem the _cmd.exe /c_ return code! 83 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 84 | exit /b 1 85 | 86 | :mainEnd 87 | if "%OS%"=="Windows_NT" endlocal 88 | 89 | :omega -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## This repo isn't marked as NSFW on cloudstream so it can use continue watching!!! 🔞 2 | 3 |

4 | 5 | ## 6 |

7 | 8 | contributors 9 | 10 | 11 | last update 12 | 13 | 14 | forks 15 | 16 | 17 | stars 18 | 19 | 20 | open issues 21 | 22 | 23 | hits 24 | 25 |

26 | 27 | ### 🕹 Tools and Programming languages used : 28 |

29 | 30 | 31 | 32 |

33 | 34 | ## Cloustream Discord 35 | Discord Server 36 | 37 | ## XXX Discord 38 | Discord Server 39 | 40 | Feel free to add the site of your choice and make a pullrequest anytime! 41 | 42 | ## Install 43 | 44 | ### License 45 | [![GNU GPLv3 Image](https://www.gnu.org/graphics/gplv3-127x51.png)](http://www.gnu.org/licenses/gpl-3.0.en.html) 46 | 47 | These extensions are Free: You can use, study, share and modify it at your will. They can be redistributed and/or modified under the terms of the 48 | [GNU General Public License](https://www.gnu.org/licenses/gpl.html) version 3 or later published by the Free Software Foundation. 49 | 50 | 51 | ### DMCA 52 | We hereby issue this notice to inform you that these extensions just function like an ordinary browser (like your browser) that fetch video files from internet, 53 | and do not violate the provisions of the Digital Millennium Copyright Act (DMCA). 54 | The Content these extensions may access is not hosted by us or the Cloudstream 3 application but the websites they are browsing in their autonomous mode. It is sole responsibility 55 | of the user and his/her countries' or states' law. If you think they are violating any intellectual property then please contact the actual file hosts not the owners of this repository or the CloudStream 3 app. 56 | 57 | Thank You. 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /AllPornStream/src/main/kotlin/com/AllPornStream/Parser.kt: -------------------------------------------------------------------------------- 1 | package com.AllPornStream 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty 4 | 5 | data class Posts( 6 | val posts: List, 7 | val count: Long, 8 | ) 9 | 10 | data class Post( 11 | @JsonProperty("_id") 12 | val id: String, 13 | @JsonProperty("item_id") 14 | val itemId: Long, 15 | @JsonProperty("scraping_datetime") 16 | val scrapingDatetime: String, 17 | @JsonProperty("video_title") 18 | val videoTitle: String, 19 | @JsonProperty("image_details") 20 | val imageDetails: List>, 21 | @JsonProperty("item_publish_date") 22 | val itemPublishDate: String, 23 | val categories: List, 24 | val actors: List, 25 | val producer: List, 26 | val misc: List, 27 | val views: Long, 28 | val slug: String, 29 | val dislike: Long?, 30 | val like: Long?, 31 | ) 32 | 33 | 34 | 35 | 36 | data class Load( 37 | val post: LoadPost, 38 | val urls: List, 39 | val relatedPosts: List, 40 | ) 41 | 42 | data class LoadPost( 43 | @JsonProperty("video_urls") 44 | val videoUrls: VideoUrls, 45 | @JsonProperty("_id") 46 | val id: String, 47 | @JsonProperty("video_title") 48 | val videoTitle: String, 49 | @JsonProperty("video_description") 50 | val videoDescription: String, 51 | @JsonProperty("image_details") 52 | val imageDetails: List>, 53 | @JsonProperty("item_publish_date") 54 | val itemPublishDate: String, 55 | val categories: List, 56 | val actors: List, 57 | val producer: List, 58 | val views: Long, 59 | @JsonProperty("is_alive") 60 | val isAlive: Boolean, 61 | val like: Long, 62 | val dislike: Long, 63 | val slug: String, 64 | ) 65 | 66 | data class VideoUrls( 67 | val direct: List, 68 | val iframe: List