[skip ci] chore(lib/playlist-utils): Prevent problems with multiple headers (#2151)
This commit is contained in:
@ -83,9 +83,8 @@ class PlaylistUtils(private val client: OkHttpClient, private val headers: Heade
|
||||
): List<Video> {
|
||||
val masterHeaders = masterHeadersGen(headers, referer)
|
||||
|
||||
val masterPlaylist = client.newCall(
|
||||
GET(playlistUrl, headers = masterHeaders)
|
||||
).execute().body.string()
|
||||
val masterPlaylist = client.newCall(GET(playlistUrl, masterHeaders)).execute()
|
||||
.use { it.body.string() }
|
||||
|
||||
// Check if there isn't multiple streams available
|
||||
if (PLAYLIST_SEPARATOR !in masterPlaylist) {
|
||||
@ -96,7 +95,9 @@ class PlaylistUtils(private val client: OkHttpClient, private val headers: Heade
|
||||
)
|
||||
}
|
||||
|
||||
val masterBase = "https://${playlistUrl.toHttpUrl().host}${playlistUrl.toHttpUrl().encodedPath}"
|
||||
val playlistHttpUrl = playlistUrl.toHttpUrl()
|
||||
|
||||
val masterBase = "https://${playlistHttpUrl.host}${playlistHttpUrl.encodedPath}"
|
||||
.substringBeforeLast("/") + "/"
|
||||
|
||||
// Get subtitles
|
||||
@ -145,10 +146,10 @@ class PlaylistUtils(private val client: OkHttpClient, private val headers: Heade
|
||||
|
||||
fun generateMasterHeaders(baseHeaders: Headers, referer: String): Headers {
|
||||
return baseHeaders.newBuilder().apply {
|
||||
add("Accept", "*/*")
|
||||
set("Accept", "*/*")
|
||||
if (referer.isNotEmpty()) {
|
||||
add("Origin", "https://${referer.toHttpUrl().host}")
|
||||
add("Referer", referer)
|
||||
set("Origin", "https://${referer.toHttpUrl().host}")
|
||||
set("Referer", referer)
|
||||
}
|
||||
}.build()
|
||||
}
|
||||
@ -275,9 +276,8 @@ class PlaylistUtils(private val client: OkHttpClient, private val headers: Heade
|
||||
): List<Video> {
|
||||
val mpdHeaders = mpdHeadersGen(headers, referer)
|
||||
|
||||
val doc = client.newCall(
|
||||
GET(mpdUrl, headers = mpdHeaders)
|
||||
).execute().asJsoup()
|
||||
val doc = client.newCall(GET(mpdUrl, mpdHeaders)).execute()
|
||||
.use { it.asJsoup() }
|
||||
|
||||
// Get audio tracks
|
||||
val audioTracks = audioList + doc.select("Representation[mimetype~=audio]").map { audioSrc ->
|
||||
@ -288,14 +288,15 @@ class PlaylistUtils(private val client: OkHttpClient, private val headers: Heade
|
||||
return doc.select("Representation[mimetype~=video]").map { videoSrc ->
|
||||
val bandwidth = videoSrc.attr("bandwidth")
|
||||
val res = videoSrc.attr("height") + "p"
|
||||
val videoUrl = videoSrc.text()
|
||||
|
||||
Video(
|
||||
videoSrc.text(),
|
||||
videoUrl,
|
||||
videoNameGen(res, bandwidth),
|
||||
videoSrc.text(),
|
||||
videoUrl,
|
||||
audioTracks = audioTracks,
|
||||
subtitleTracks = subtitleList,
|
||||
headers = videoHeadersGen(headers, referer, videoSrc.text())
|
||||
headers = videoHeadersGen(headers, referer, videoUrl),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user