diff --git a/src/en/aniplay/build.gradle b/src/en/aniplay/build.gradle
index d3638755..d0f6531a 100644
--- a/src/en/aniplay/build.gradle
+++ b/src/en/aniplay/build.gradle
@@ -2,7 +2,7 @@ ext {
     extName = 'AniPlay'
     extClass = '.AniPlay'
     themePkg = 'anilist'
-    overrideVersionCode = 9
+    overrideVersionCode = 10
 }
 
 apply from: "$rootDir/common.gradle"
diff --git a/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlay.kt b/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlay.kt
index fcb1baf2..cb2d4c69 100644
--- a/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlay.kt
+++ b/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlay.kt
@@ -270,13 +270,29 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource {
             ?.map { Track(it.url ?: throw Exception("episodeData.response.subtitles.url is null ($it)"), it.lang ?: "Unk") }
             ?: emptyList()
 
-        val serverName = getServerName(episodeData.source)
-        val typeName = when {
-            subtitles.isNotEmpty() -> "SoftSub"
-            else -> getTypeName(episodeData.language)
+        var serverName = getServerName(episodeData.source)
+        if (serverName == SERVER_UNKNOWN) {
+            serverName = episodeData.source.substring(0, 69) + "!"
+        }
+        var typeName = getTypeName(episodeData.language)
+        if (typeName == "Sub" && subtitles.isNotEmpty()) {
+            typeName = "SoftSub"
+        } else if (serverName == "Yuki" && typeName == "Dub" && subtitles.isNotEmpty()) {
+            typeName = "Dubtitles"
         }
 
         try {
+            if (episodeData.response.proxy == true) {
+                var proxyUrl = "$PROXY_URL/fetch?url=${defaultSource.url}"
+                if (episodeData.response.headers != null && episodeData.response.headers.Referer?.startsWith("https://") == true) {
+                    proxyUrl += "&ref=${episodeData.response.headers.Referer}"
+                }
+                return playlistUtils.extractFromHls(
+                    playlistUrl = proxyUrl,
+                    videoNameGen = { quality -> "$serverName - $quality - $typeName" },
+                    subtitleList = subtitles,
+                )
+            }
             if (episodeData.response.headers != null && episodeData.response.headers.Referer?.startsWith("https://") == true) {
                 return playlistUtils.extractFromHls(
                     playlistUrl = defaultSource.url,
@@ -451,7 +467,7 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource {
     private fun getServerName(value: String): String {
         val index = PREF_SERVER_ENTRY_VALUES.indexOf(value)
         if (index == -1) {
-            return "Other"
+            return SERVER_UNKNOWN
         }
         return PREF_SERVER_ENTRIES[index]
     }
@@ -459,7 +475,7 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource {
     private fun getTypeName(value: String): String {
         val index = PREF_TYPE_ENTRY_VALUES.indexOf(value.lowercase())
         if (index == -1) {
-            return "Other"
+            return TYPE_UNKNOWN
         }
         return PREF_TYPE_ENTRIES[index]
     }
@@ -477,14 +493,15 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource {
 
     companion object {
         private const val PREF_DOMAIN_KEY = "domain"
-        private val PREF_DOMAIN_ENTRIES = arrayOf("aniplaynow.live (default)", "aniplay.lol (backup)")
+        private val PREF_DOMAIN_ENTRIES = arrayOf("aniplaynow.live (default)", "aniplay.lol (backup/experimental)")
         private val PREF_DOMAIN_ENTRY_VALUES = arrayOf("aniplaynow.live", "aniplay.lol")
         private const val PREF_DOMAIN_DEFAULT = "aniplaynow.live"
 
         private const val PREF_SERVER_KEY = "server"
-        private val PREF_SERVER_ENTRIES = arrayOf("Kuro", "Anya", "Yuki", "Pahe")
-        private val PREF_SERVER_ENTRY_VALUES = arrayOf("kuro", "anya", "yuki", "pahe")
-        private const val PREF_SERVER_DEFAULT = "kuro"
+        private val PREF_SERVER_ENTRIES = arrayOf("Maze", "Yuki", "Pahe", "Kuro")
+        private val PREF_SERVER_ENTRY_VALUES = arrayOf("maze", "yuki", "pahe", "kuro")
+        private const val PREF_SERVER_DEFAULT = "yuki"
+        private const val SERVER_UNKNOWN = "Other"
 
         private const val PREF_QUALITY_KEY = "quality"
         private val PREF_QUALITY_ENTRIES = arrayOf("1080p", "720p", "480p", "360p")
@@ -492,9 +509,10 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource {
         private const val PREF_QUALITY_DEFAULT = "1080"
 
         private const val PREF_TYPE_KEY = "type"
-        private val PREF_TYPE_ENTRIES = arrayOf("Sub", "SoftSub", "Dub")
-        private val PREF_TYPE_ENTRY_VALUES = arrayOf("sub", "softsub", "dub")
-        private const val PREF_TYPE_DEFAULT = "sub"
+        private val PREF_TYPE_ENTRIES = arrayOf("Sub", "SoftSub", "Dub", "Dubtitles")
+        private val PREF_TYPE_ENTRY_VALUES = arrayOf("sub", "softsub", "dub", "dubtitles")
+        private const val PREF_TYPE_DEFAULT = "softsub"
+        private const val TYPE_UNKNOWN = "Other"
 
         private const val PREF_TITLE_LANGUAGE_KEY = "title_language"
         private val PREF_TITLE_LANGUAGE_ENTRIES = arrayOf("Romaji", "English", "Native")
@@ -518,6 +536,7 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource {
                 "NEXT_ACTION_SOURCES_LIST" to "8a76af451978c817dde2364326a5e4e45eb43db1",
             ),
         )
+        private const val PROXY_URL = "https://aniplay-cors.yqizw7.easypanel.host"
 
         private val DATE_FORMATTER = SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH)
     }
diff --git a/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlayDto.kt b/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlayDto.kt
index e75eb504..4f909466 100644
--- a/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlayDto.kt
+++ b/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlayDto.kt
@@ -37,6 +37,7 @@ data class VideoSourceResponse(
     val outro: Timestamp?,
     val subtitles: List<Subtitle>?,
     val headers: Headers?,
+    val proxy: Boolean?,
 ) {
     @Serializable
     data class Source(