diff --git a/lib/fireplayer-extractor/src/main/java/eu/kanade/tachiyomi/lib/fireplayerextractor/FireplayerExtractor.kt b/lib/fireplayer-extractor/src/main/java/eu/kanade/tachiyomi/lib/fireplayerextractor/FireplayerExtractor.kt
index f9735def..4afa8d95 100644
--- a/lib/fireplayer-extractor/src/main/java/eu/kanade/tachiyomi/lib/fireplayerextractor/FireplayerExtractor.kt
+++ b/lib/fireplayer-extractor/src/main/java/eu/kanade/tachiyomi/lib/fireplayerextractor/FireplayerExtractor.kt
@@ -36,6 +36,7 @@ class FireplayerExtractor(
 
             val script =
                 doc.selectFirst("script:containsData(eval):containsData(p,a,c,k,e,d)")?.data()
+                    ?.replace(Regex("[\\u00E0-\\u00FC]"), "-") // Fix a bug in JsUnpacker with accents
                     ?.let(JsUnpacker::unpackAndCombine)
                     ?: doc.selectFirst("script:containsData(FirePlayer)")?.data()
 
diff --git a/src/pt/pobreflix/build.gradle b/src/pt/pobreflix/build.gradle
index ec1d8eb7..5b4d764a 100644
--- a/src/pt/pobreflix/build.gradle
+++ b/src/pt/pobreflix/build.gradle
@@ -2,8 +2,8 @@ ext {
     extName = 'Pobreflix'
     extClass = '.Pobreflix'
     themePkg = 'dooplay'
-    baseUrl = 'https://pobreflix1.art'
-    overrideVersionCode = 10
+    baseUrl = 'https://pobreflix.global'
+    overrideVersionCode = 11
     isNsfw = true
 }
 
@@ -11,6 +11,7 @@ apply from: "$rootDir/common.gradle"
 
 dependencies {
     implementation(project(":lib:filemoon-extractor"))
+    implementation(project(":lib:fireplayer-extractor"))
     implementation(project(":lib:streamwish-extractor"))
     implementation(project(":lib:streamtape-extractor"))
     implementation(project(":lib:playlist-utils"))
diff --git a/src/pt/pobreflix/src/eu/kanade/tachiyomi/animeextension/pt/pobreflix/Pobreflix.kt b/src/pt/pobreflix/src/eu/kanade/tachiyomi/animeextension/pt/pobreflix/Pobreflix.kt
index 30783608..c1159018 100644
--- a/src/pt/pobreflix/src/eu/kanade/tachiyomi/animeextension/pt/pobreflix/Pobreflix.kt
+++ b/src/pt/pobreflix/src/eu/kanade/tachiyomi/animeextension/pt/pobreflix/Pobreflix.kt
@@ -1,23 +1,25 @@
 package eu.kanade.tachiyomi.animeextension.pt.pobreflix
 
 import android.util.Base64
-import eu.kanade.tachiyomi.animeextension.pt.pobreflix.extractors.FireplayerExtractor
 import eu.kanade.tachiyomi.animeextension.pt.pobreflix.extractors.MyStreamExtractor
+import eu.kanade.tachiyomi.animeextension.pt.pobreflix.extractors.PlayerFlixExtractor
 import eu.kanade.tachiyomi.animeextension.pt.pobreflix.extractors.SuperFlixExtractor
 import eu.kanade.tachiyomi.animesource.model.Video
 import eu.kanade.tachiyomi.lib.filemoonextractor.FilemoonExtractor
+import eu.kanade.tachiyomi.lib.fireplayerextractor.FireplayerExtractor
 import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor
 import eu.kanade.tachiyomi.lib.streamwishextractor.StreamWishExtractor
 import eu.kanade.tachiyomi.multisrc.dooplay.DooPlay
 import eu.kanade.tachiyomi.network.GET
 import eu.kanade.tachiyomi.util.asJsoup
+import eu.kanade.tachiyomi.util.parallelCatchingFlatMapBlocking
 import okhttp3.HttpUrl.Companion.toHttpUrl
 import okhttp3.Response
 
 class Pobreflix : DooPlay(
     "pt-BR",
     "Pobreflix",
-    "https://pobreflix1.art",
+    "https://pobreflix.global",
 ) {
     // ============================== Popular ===============================
     override fun popularAnimeSelector() = "div.featured div.poster"
@@ -26,53 +28,52 @@ class Pobreflix : DooPlay(
     override fun latestUpdatesRequest(page: Int) = GET("$baseUrl/series/page/$page/", headers)
 
     // ============================ Video Links =============================
-    private val embedplayerExtractor by lazy { FireplayerExtractor(client) }
-    private val brbeastExtractor by lazy { FireplayerExtractor(client, "https://brbeast.com") }
-    private val superembedsExtractor by lazy { FireplayerExtractor(client, "https://superembeds.com/") }
+    private val fireplayerExtractor by lazy { FireplayerExtractor(client) }
     private val filemoonExtractor by lazy { FilemoonExtractor(client) }
     private val mystreamExtractor by lazy { MyStreamExtractor(client, headers) }
     private val streamtapeExtractor by lazy { StreamTapeExtractor(client) }
     private val streamwishExtractor by lazy { StreamWishExtractor(client, headers) }
+    private val playerflixExtractor by lazy { PlayerFlixExtractor(client, headers, ::genericExtractor) }
     private val superflixExtractor by lazy { SuperFlixExtractor(client, headers, ::genericExtractor) }
     private val supercdnExtractor by lazy { SuperFlixExtractor(client, headers, ::genericExtractor, "https://supercdn.org") }
 
     override fun videoListParse(response: Response): List<Video> {
         val doc = response.asJsoup()
-        return doc.select("div.source-box > a").flatMap {
-            runCatching {
-                val data = it.attr("href").toHttpUrl().queryParameter("auth")
-                    ?.let { Base64.decode(it, Base64.DEFAULT) }
-                    ?.let(::String)
-                    ?: return@flatMap emptyList()
-                val url = data.replace("\\", "").substringAfter("url\":\"").substringBefore('"')
-                genericExtractor(url)
-            }.getOrElse { emptyList() }
+        return doc.select("div.source-box > a").parallelCatchingFlatMapBlocking {
+            val data = it.attr("href").trim().toHttpUrl().queryParameter("auth")
+                ?.let { Base64.decode(it, Base64.DEFAULT) }
+                ?.let(::String)
+                ?: return@parallelCatchingFlatMapBlocking emptyList()
+            val url = data.replace("\\", "").substringAfter("url\":\"").substringBefore('"')
+            genericExtractor(url)
         }
     }
 
     private fun genericExtractor(url: String, language: String = ""): List<Video> {
-        val langSubstr = "[$language]"
+        val langSubstr = if (language.isBlank()) "" else "[$language] "
         return when {
             url.contains("superflix") ->
                 superflixExtractor.videosFromUrl(url)
             url.contains("supercdn") ->
                 supercdnExtractor.videosFromUrl(url)
             url.contains("filemoon") ->
-                filemoonExtractor.videosFromUrl(url, "$langSubstr Filemoon - ", headers = headers)
+                filemoonExtractor.videosFromUrl(url, "${langSubstr}Filemoon - ", headers = headers)
             url.contains("watch.brplayer") || url.contains("/watch?v=") ->
                 mystreamExtractor.videosFromUrl(url, language)
             url.contains("brbeast") ->
-                brbeastExtractor.videosFromUrl(url, language)
+                fireplayerExtractor.videosFromUrl(url = url, videoNameGen = { "${langSubstr}BrBeast - $it" })
             url.contains("embedplayer") ->
-                embedplayerExtractor.videosFromUrl(url, language)
+                fireplayerExtractor.videosFromUrl(url = url, videoNameGen = { "${langSubstr}EmbedPlayer - $it" })
             url.contains("superembeds") ->
-                superembedsExtractor.videosFromUrl(url, language)
+                fireplayerExtractor.videosFromUrl(url = url, videoNameGen = { "${langSubstr}SuperEmbeds - $it" })
             url.contains("streamtape") ->
-                streamtapeExtractor.videosFromUrl(url, "$langSubstr Streamtape")
+                streamtapeExtractor.videosFromUrl(url, "${langSubstr}Streamtape")
             url.contains("filelions") ->
-                streamwishExtractor.videosFromUrl(url, videoNameGen = { "$langSubstr FileLions - $it" })
+                streamwishExtractor.videosFromUrl(url, videoNameGen = { "${langSubstr}FileLions - $it" })
             url.contains("streamwish") ->
-                streamwishExtractor.videosFromUrl(url, videoNameGen = { "$langSubstr Streamwish - $it" })
+                streamwishExtractor.videosFromUrl(url, videoNameGen = { "${langSubstr}Streamwish - $it" })
+            url.contains("playerflix") ->
+                playerflixExtractor.videosFromUrl(url)
             else -> emptyList()
         }
     }
diff --git a/src/pt/pobreflix/src/eu/kanade/tachiyomi/animeextension/pt/pobreflix/extractors/FireplayerExtractor.kt b/src/pt/pobreflix/src/eu/kanade/tachiyomi/animeextension/pt/pobreflix/extractors/FireplayerExtractor.kt
deleted file mode 100644
index 98cf0104..00000000
--- a/src/pt/pobreflix/src/eu/kanade/tachiyomi/animeextension/pt/pobreflix/extractors/FireplayerExtractor.kt
+++ /dev/null
@@ -1,56 +0,0 @@
-package eu.kanade.tachiyomi.animeextension.pt.pobreflix.extractors
-
-import dev.datlag.jsunpacker.JsUnpacker
-import eu.kanade.tachiyomi.animesource.model.Video
-import eu.kanade.tachiyomi.lib.playlistutils.PlaylistUtils
-import eu.kanade.tachiyomi.network.GET
-import eu.kanade.tachiyomi.network.POST
-import eu.kanade.tachiyomi.util.asJsoup
-import okhttp3.FormBody
-import okhttp3.Headers
-import okhttp3.OkHttpClient
-
-class FireplayerExtractor(private val client: OkHttpClient, private val host: String = "https://embedplayer.online") {
-    private val headers by lazy {
-        Headers.headersOf(
-            "X-Requested-With",
-            "XMLHttpRequest",
-            "Referer",
-            host,
-            "Origin",
-            host,
-        )
-    }
-
-    private val playlistUtils by lazy { PlaylistUtils(client, headers) }
-
-    fun videosFromUrl(url: String, lang: String): List<Video> {
-        var id = url.substringAfterLast("/")
-
-        if (id.length < 32) {
-            val doc = client.newCall(GET(url, headers)).execute().asJsoup()
-
-            val script = doc.selectFirst("script:containsData(eval):containsData(p,a,c,k,e,d)")?.data()
-                ?.let(JsUnpacker::unpackAndCombine)
-                ?: doc.selectFirst("script:containsData(FirePlayer)")?.data()
-
-            if (script?.contains("FirePlayer(") == true) {
-                id = script.substringAfter("FirePlayer(\"").substringBefore('"')
-            }
-        }
-
-        val postUrl = "$host/player/index.php?data=$id&do=getVideo"
-        val body = FormBody.Builder()
-            .add("hash", id)
-            .add("r", "")
-            .build()
-
-        val masterUrl = client.newCall(POST(postUrl, headers, body = body)).execute()
-            .body.string()
-            .substringAfter("securedLink\":\"")
-            .substringBefore('"')
-            .replace("\\", "")
-
-        return playlistUtils.extractFromHls(masterUrl, videoNameGen = { "[$lang] EmbedPlayer - $it" })
-    }
-}
diff --git a/src/pt/pobreflix/src/eu/kanade/tachiyomi/animeextension/pt/pobreflix/extractors/PlayerFlixExtractor.kt b/src/pt/pobreflix/src/eu/kanade/tachiyomi/animeextension/pt/pobreflix/extractors/PlayerFlixExtractor.kt
new file mode 100644
index 00000000..0dab9340
--- /dev/null
+++ b/src/pt/pobreflix/src/eu/kanade/tachiyomi/animeextension/pt/pobreflix/extractors/PlayerFlixExtractor.kt
@@ -0,0 +1,35 @@
+package eu.kanade.tachiyomi.animeextension.pt.pobreflix.extractors
+
+import eu.kanade.tachiyomi.animesource.model.Video
+import eu.kanade.tachiyomi.network.GET
+import eu.kanade.tachiyomi.util.asJsoup
+import eu.kanade.tachiyomi.util.parallelCatchingFlatMapBlocking
+import okhttp3.Headers
+import okhttp3.OkHttpClient
+
+class PlayerFlixExtractor(
+    private val client: OkHttpClient,
+    private val defaultHeaders: Headers,
+    private val genericExtractor: (String, String) -> List<Video>,
+) {
+    fun videosFromUrl(url: String): List<Video> {
+        val doc = client.newCall(GET(url, defaultHeaders)).execute().asJsoup()
+
+        val items = doc.select("#hostList div.buttonLoadHost").mapNotNull {
+            val url = it.attr("onclick")
+                .substringAfter('"', "")
+                .substringBefore('"')
+                ?: return@mapNotNull null
+
+            val language = if (it.hasClass("hostDub")) {
+                "Dublado"
+            } else {
+                "Legendado"
+            }
+
+            language to url // (Language, videoId)
+        }
+
+        return items.parallelCatchingFlatMapBlocking { genericExtractor(it.second, it.first) }
+    }
+}
diff --git a/src/pt/pobreflix/src/eu/kanade/tachiyomi/animeextension/pt/pobreflix/extractors/SuperFlixExtractor.kt b/src/pt/pobreflix/src/eu/kanade/tachiyomi/animeextension/pt/pobreflix/extractors/SuperFlixExtractor.kt
index 70d588bb..92a2dcbe 100644
--- a/src/pt/pobreflix/src/eu/kanade/tachiyomi/animeextension/pt/pobreflix/extractors/SuperFlixExtractor.kt
+++ b/src/pt/pobreflix/src/eu/kanade/tachiyomi/animeextension/pt/pobreflix/extractors/SuperFlixExtractor.kt
@@ -18,7 +18,7 @@ class SuperFlixExtractor(
     private val client: OkHttpClient,
     private val defaultHeaders: Headers,
     private val genericExtractor: (String, String) -> List<Video>,
-    private val host: String = "https://superflixapi.top",
+    private val host: String = "https://superflixapi.dev",
 ) {
     private val json: Json by injectLazy()