diff --git a/src/ru/libmanga/build.gradle b/src/ru/libmanga/build.gradle
index 10f55c20a..c0d16be3a 100644
--- a/src/ru/libmanga/build.gradle
+++ b/src/ru/libmanga/build.gradle
@@ -5,7 +5,7 @@ ext {
     extName = 'MangaLib'
     pkgNameSuffix = 'ru.libmanga'
     extClass = '.LibManga'
-    extVersionCode = 20
+    extVersionCode = 21
     libVersion = '1.2'
 }
 
diff --git a/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt b/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt
index c1bb8df2f..06fc2569f 100644
--- a/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt
+++ b/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt
@@ -6,6 +6,7 @@ import android.support.v7.preference.ListPreference
 import android.support.v7.preference.PreferenceScreen
 import com.github.salomonbrys.kotson.array
 import com.github.salomonbrys.kotson.get
+import com.github.salomonbrys.kotson.int
 import com.github.salomonbrys.kotson.nullArray
 import com.github.salomonbrys.kotson.nullString
 import com.github.salomonbrys.kotson.obj
@@ -231,10 +232,22 @@ class LibManga : ConfigurableSource, HttpSource() {
     private fun chapterFromElement(element: Element): SChapter {
 
         val chapter = SChapter.create()
-        val id = element.attr("data-id")
-        val slug = element.baseUri().replace("$baseUrl/", "")
-        val url = "/download/$id?slug=$slug"
-        chapter.setUrlWithoutDomain(url)
+
+        val chapterLink = element.select("div.chapter-item__name > a").first()
+        if (chapterLink != null) {
+            chapter.setUrlWithoutDomain(chapterLink.attr("href"))
+        } else {
+            // Found multiple translate. Get first one for now
+            val volume = element.attr("data-volume")
+            val number = element.attr("data-number")
+            val teams = jsonParser.parse(element.attr("data-teams"))
+            val team = teams[0]["slug"].nullString
+            val baseUrl = "${element.baseUri()}/v$volume/c$number"
+            val url = if (team != null) "$baseUrl/$team" else baseUrl
+
+            chapter.setUrlWithoutDomain(url)
+        }
+
         chapter.name = element.select("div.chapter-item__name").first().text()
         chapter.date_upload = SimpleDateFormat("dd.MM.yyyy", Locale.US)
             .parse(element.select("div.chapter-item__date").text()).time
@@ -249,18 +262,39 @@ class LibManga : ConfigurableSource, HttpSource() {
     }
 
     override fun pageListParse(response: Response): List<Page> {
-        val body = response.body()!!.string()
-        val slug = response.request().url().queryParameter("slug")
-        val json = jsonParser.parse(body)
-        val images = json["images"].array
-        val chapterslug = json["chapter"]["slug"].string
+        val document = response.asJsoup()
+        val chapInfo = document
+            .select("script:containsData(window.__info)")
+            .first()
+            .html()
+            .trim()
+            .removePrefix("window.__info = ")
+            .split(";")
+            .first()
 
+        val chapInfoJson = jsonParser.parse(chapInfo).obj
+        val servers = chapInfoJson["servers"].asJsonObject
+        val defaultServer: String = chapInfoJson["img"]["server"].string
+        val imgUrl: String = chapInfoJson["img"]["url"].string
+
+        val serverToUse = if (this.server == null) defaultServer else this.server
+        val imageServerUrl: String = servers[serverToUse].string
+
+        // Get pages
+        val pagesArr = document
+            .select("script:containsData(window.__pg)")
+            .first()
+            .html()
+            .trim()
+            .removePrefix("window.__pg = ")
+            .removeSuffix(";")
+
+        val pagesJson = jsonParser.parse(pagesArr).array
         val pages = mutableListOf<Page>()
-        images.forEachIndexed { index, page ->
-            val url = "${this.imageServerUrl()}/manga/$slug/chapters/$chapterslug/${page.string}"
-            pages.add(Page(index, "", url))
-        }
 
+        pagesJson.forEach { page ->
+            pages.add(Page(page["p"].int, "", imageServerUrl + imgUrl + page["u"].string))
+        }
         return pages
     }