diff --git a/.run/AnimeStreamGenerator.run.xml b/.run/AnimeStreamGenerator.run.xml
new file mode 100644
index 000000000..655ae0303
--- /dev/null
+++ b/.run/AnimeStreamGenerator.run.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.run/DooPlayGenerator.run.xml b/.run/DooPlayGenerator.run.xml
new file mode 100644
index 000000000..fb9a23391
--- /dev/null
+++ b/.run/DooPlayGenerator.run.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.run/DopeFlixGenerator.run.xml b/.run/DopeFlixGenerator.run.xml
new file mode 100644
index 000000000..841cf605b
--- /dev/null
+++ b/.run/DopeFlixGenerator.run.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/multisrc/overrides/animestream/animexin/additional.gradle b/multisrc/overrides/animestream/animexin/additional.gradle
new file mode 100644
index 000000000..1f428ccec
--- /dev/null
+++ b/multisrc/overrides/animestream/animexin/additional.gradle
@@ -0,0 +1,6 @@
+dependencies {
+ implementation(project(':lib-okru-extractor'))
+ implementation(project(':lib-gdriveplayer-extractor'))
+ implementation(project(':lib-streamsb-extractor'))
+ implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1"
+}
diff --git a/src/all/animexin/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/animestream/animexin/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from src/all/animexin/res/mipmap-hdpi/ic_launcher.png
rename to multisrc/overrides/animestream/animexin/res/mipmap-hdpi/ic_launcher.png
diff --git a/src/all/animexin/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/animestream/animexin/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from src/all/animexin/res/mipmap-mdpi/ic_launcher.png
rename to multisrc/overrides/animestream/animexin/res/mipmap-mdpi/ic_launcher.png
diff --git a/src/all/animexin/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/animestream/animexin/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from src/all/animexin/res/mipmap-xhdpi/ic_launcher.png
rename to multisrc/overrides/animestream/animexin/res/mipmap-xhdpi/ic_launcher.png
diff --git a/src/all/animexin/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/animestream/animexin/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from src/all/animexin/res/mipmap-xxhdpi/ic_launcher.png
rename to multisrc/overrides/animestream/animexin/res/mipmap-xxhdpi/ic_launcher.png
diff --git a/src/all/animexin/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/animestream/animexin/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from src/all/animexin/res/mipmap-xxxhdpi/ic_launcher.png
rename to multisrc/overrides/animestream/animexin/res/mipmap-xxxhdpi/ic_launcher.png
diff --git a/multisrc/overrides/animestream/animexin/src/AnimeXin.kt b/multisrc/overrides/animestream/animexin/src/AnimeXin.kt
new file mode 100644
index 000000000..874ffda6f
--- /dev/null
+++ b/multisrc/overrides/animestream/animexin/src/AnimeXin.kt
@@ -0,0 +1,110 @@
+package eu.kanade.tachiyomi.animeextension.all.animexin
+
+import androidx.preference.ListPreference
+import androidx.preference.PreferenceScreen
+import eu.kanade.tachiyomi.animeextension.all.animexin.extractors.DailymotionExtractor
+import eu.kanade.tachiyomi.animeextension.all.animexin.extractors.DoodExtractor
+import eu.kanade.tachiyomi.animeextension.all.animexin.extractors.VidstreamingExtractor
+import eu.kanade.tachiyomi.animeextension.all.animexin.extractors.YouTubeExtractor
+import eu.kanade.tachiyomi.animesource.model.Video
+import eu.kanade.tachiyomi.lib.gdriveplayerextractor.GdrivePlayerExtractor
+import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor
+import eu.kanade.tachiyomi.lib.streamsbextractor.StreamSBExtractor
+import eu.kanade.tachiyomi.multisrc.animestream.AnimeStream
+
+class AnimeXin : AnimeStream(
+ "all",
+ "AnimeXin",
+ "https://animexin.vip",
+) {
+ override val id = 4620219025406449669
+
+ // ============================ Video Links =============================
+ override fun getVideoList(url: String, name: String): List