chore(lib/StreamWishExtractor): Update StreamWishExtractor (#140)
This commit is contained in:
parent
2419e31671
commit
c1a2d05a32
1 changed files with 12 additions and 4 deletions
|
@ -14,9 +14,9 @@ class StreamWishExtractor(private val client: OkHttpClient, private val headers:
|
||||||
fun videosFromUrl(url: String, prefix: String) = videosFromUrl(url) { "$prefix - $it" }
|
fun videosFromUrl(url: String, prefix: String) = videosFromUrl(url) { "$prefix - $it" }
|
||||||
|
|
||||||
fun videosFromUrl(url: String, videoNameGen: (String) -> String = { quality -> "StreamWish - $quality" }): List<Video> {
|
fun videosFromUrl(url: String, videoNameGen: (String) -> String = { quality -> "StreamWish - $quality" }): List<Video> {
|
||||||
val doc = client.newCall(GET(url, headers)).execute()
|
|
||||||
.asJsoup()
|
val doc = client.newCall(GET(getEmbedUrl(url), headers)).execute().asJsoup()
|
||||||
// Sometimes the script body is packed, sometimes it isn't
|
|
||||||
val scriptBody = doc.selectFirst("script:containsData(m3u8)")?.data()
|
val scriptBody = doc.selectFirst("script:containsData(m3u8)")?.data()
|
||||||
?.let { script ->
|
?.let { script ->
|
||||||
if (script.contains("eval(function(p,a,c")) {
|
if (script.contains("eval(function(p,a,c")) {
|
||||||
|
@ -25,7 +25,6 @@ class StreamWishExtractor(private val client: OkHttpClient, private val headers:
|
||||||
script
|
script
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val masterUrl = scriptBody
|
val masterUrl = scriptBody
|
||||||
?.substringAfter("source", "")
|
?.substringAfter("source", "")
|
||||||
?.substringAfter("file:\"", "")
|
?.substringAfter("file:\"", "")
|
||||||
|
@ -35,4 +34,13 @@ class StreamWishExtractor(private val client: OkHttpClient, private val headers:
|
||||||
|
|
||||||
return playlistUtils.extractFromHls(masterUrl, url, videoNameGen = videoNameGen)
|
return playlistUtils.extractFromHls(masterUrl, url, videoNameGen = videoNameGen)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getEmbedUrl(url: String): String {
|
||||||
|
return if (url.contains("/f/")) {
|
||||||
|
val videoId = url.substringAfter("/f/")
|
||||||
|
"https://streamwish.com/$videoId"
|
||||||
|
} else {
|
||||||
|
url
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue