diff --git a/src/en/vidembed/AndroidManifest.xml b/src/en/vidembed/AndroidManifest.xml
deleted file mode 100644
index 568741e54f..0000000000
--- a/src/en/vidembed/AndroidManifest.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
\ No newline at end of file
diff --git a/src/en/vidembed/build.gradle b/src/en/vidembed/build.gradle
deleted file mode 100644
index 642e3c8efc..0000000000
--- a/src/en/vidembed/build.gradle
+++ /dev/null
@@ -1,19 +0,0 @@
-apply plugin: 'com.android.application'
-apply plugin: 'kotlin-android'
-apply plugin: 'kotlinx-serialization'
-
-ext {
- extName = 'Membed'
- pkgNameSuffix = 'en.vidembed'
- extClass = '.Membed'
- extVersionCode = 32
- libVersion = '13'
-}
-
-dependencies {
- implementation(project(':lib-mixdrop-extractor'))
- implementation(project(':lib-dood-extractor'))
-}
-
-
-apply from: "$rootDir/common.gradle"
diff --git a/src/en/vidembed/res/mipmap-hdpi/ic_launcher.png b/src/en/vidembed/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index 42847ec33f..0000000000
Binary files a/src/en/vidembed/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/vidembed/res/mipmap-mdpi/ic_launcher.png b/src/en/vidembed/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index e61a0ade08..0000000000
Binary files a/src/en/vidembed/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/vidembed/res/mipmap-xhdpi/ic_launcher.png b/src/en/vidembed/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index 75e407270c..0000000000
Binary files a/src/en/vidembed/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/vidembed/res/mipmap-xxhdpi/ic_launcher.png b/src/en/vidembed/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index febf327dcd..0000000000
Binary files a/src/en/vidembed/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/vidembed/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/vidembed/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index 9faa97a7e0..0000000000
Binary files a/src/en/vidembed/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/vidembed/res/web_hi_res_512.png b/src/en/vidembed/res/web_hi_res_512.png
deleted file mode 100644
index 8236dd3de3..0000000000
Binary files a/src/en/vidembed/res/web_hi_res_512.png and /dev/null differ
diff --git a/src/en/vidembed/src/eu/kanade/tachiyomi/animeextension/en/vidembed/Membed.kt b/src/en/vidembed/src/eu/kanade/tachiyomi/animeextension/en/vidembed/Membed.kt
deleted file mode 100644
index 548d15d47d..0000000000
--- a/src/en/vidembed/src/eu/kanade/tachiyomi/animeextension/en/vidembed/Membed.kt
+++ /dev/null
@@ -1,247 +0,0 @@
-package eu.kanade.tachiyomi.animeextension.en.vidembed
-
-import android.app.Application
-import android.content.SharedPreferences
-import android.net.Uri
-import androidx.preference.ListPreference
-import androidx.preference.PreferenceScreen
-import eu.kanade.tachiyomi.animeextension.en.vidembed.extractors.XstreamcdnExtractor
-import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
-import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
-import eu.kanade.tachiyomi.animesource.model.SAnime
-import eu.kanade.tachiyomi.animesource.model.SEpisode
-import eu.kanade.tachiyomi.animesource.model.Video
-import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource
-import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor
-import eu.kanade.tachiyomi.lib.mixdropextractor.MixDropExtractor
-import eu.kanade.tachiyomi.network.GET
-import eu.kanade.tachiyomi.util.asJsoup
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.async
-import kotlinx.coroutines.awaitAll
-import kotlinx.coroutines.runBlocking
-import kotlinx.serialization.json.Json
-import okhttp3.Headers
-import okhttp3.OkHttpClient
-import okhttp3.Request
-import okhttp3.Response
-import org.jsoup.nodes.Document
-import org.jsoup.nodes.Element
-import uy.kohesive.injekt.Injekt
-import uy.kohesive.injekt.api.get
-import java.lang.Exception
-
-class Membed : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
-
- override val name = "Membed"
-
- override val baseUrl = "https://membed1.com"
-
- override val lang = "en"
-
- override val supportsLatest = false
-
- override val client: OkHttpClient = network.cloudflareClient
-
- override val id: Long = 8093842542096095331
-
- private val json = Json {
- ignoreUnknownKeys = true
- }
-
- private val downloadLink = "https://membed.net/download?id="
-
- private val preferences: SharedPreferences by lazy {
- Injekt.get().getSharedPreferences("source_$id", 0x0000)
- }
-
- override fun popularAnimeSelector(): String = ".video-block a"
-
- override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/?page=$page")
-
- override fun popularAnimeFromElement(element: Element): SAnime {
- val anime = SAnime.create()
- anime.setUrlWithoutDomain(element.attr("href"))
- anime.thumbnail_url = element.selectFirst("img")!!.attr("src")
- anime.title = element.selectFirst(".name")!!.text().split("Episode").first()
- return anime
- }
-
- override fun popularAnimeNextPageSelector(): String = "ul.pagination li:last-child:not(.selected)"
-
- override fun episodeListSelector() = "ul.listing.items.lists li a"
-
- override fun episodeListParse(response: Response): List {
- val document = response.asJsoup()
- return document.select(episodeListSelector()).map { episodeFromElement(it) }
- }
-
- override fun episodeFromElement(element: Element): SEpisode {
- val episode = SEpisode.create()
- episode.setUrlWithoutDomain(baseUrl + element.attr("href"))
- val epName = element.selectFirst("div.name")!!.ownText()
- val ep = epName.substringAfter("Episode ")
- val epNo = try {
- ep.substringBefore(" ").toFloat()
- } catch (e: NumberFormatException) {
- 0.toFloat()
- }
- episode.episode_number = epNo
- episode.name = if (ep == epName) epName else "Episode $ep"
- return episode
- }
-
- override fun videoListRequest(episode: SEpisode): Request {
- val document = client.newCall(GET(baseUrl + episode.url)).execute().asJsoup()
- val link = document.selectFirst(".play-video iframe")!!.attr("src")
- val id = Uri.parse(link).getQueryParameter("id").toString()
- return GET(downloadLink + id)
- }
-
- override fun videoListParse(response: Response): List