Merge remote-tracking branch 'nuviomobile/cmp-rewrite' into cmp-rewrite

This commit is contained in:
tapframe 2026-04-12 19:39:46 +05:30
commit 43055e916c
2 changed files with 23 additions and 4 deletions

View file

@ -7,6 +7,14 @@ import androidx.media3.datasource.DefaultHttpDataSource
import com.nuvio.app.features.trailer.YoutubeChunkedDataSourceFactory
internal object PlatformPlaybackDataSourceFactory {
private val DEFAULT_STREAM_HEADERS = mapOf(
"User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) " +
"AppleWebKit/537.36 (KHTML, like Gecko) " +
"Chrome/120.0.0.0 Safari/537.36",
"Referer" to "https://www.strem.io/"
)
fun create(
context: Context,
defaultRequestHeaders: Map<String, String>,
@ -16,7 +24,9 @@ internal object PlatformPlaybackDataSourceFactory {
val networkFactory: DataSource.Factory = if (useYoutubeChunkedPlayback) {
YoutubeChunkedDataSourceFactory(defaultRequestHeaders = defaultRequestHeaders)
} else {
DefaultHttpDataSource.Factory().setDefaultRequestProperties(defaultRequestHeaders)
DefaultHttpDataSource.Factory()
.setAllowCrossProtocolRedirects(true)
.setDefaultRequestProperties(DEFAULT_STREAM_HEADERS + defaultRequestHeaders)
}
val baseFactory: DataSource.Factory = DefaultDataSource.Factory(context, networkFactory)
return if (defaultResponseHeaders.isEmpty()) {
@ -28,4 +38,4 @@ internal object PlatformPlaybackDataSourceFactory {
)
}
}
}
}

View file

@ -6,6 +6,14 @@ import androidx.media3.datasource.DefaultDataSource
import androidx.media3.datasource.DefaultHttpDataSource
internal object PlatformPlaybackDataSourceFactory {
private val DEFAULT_STREAM_HEADERS = mapOf(
"User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) " +
"AppleWebKit/537.36 (KHTML, like Gecko) " +
"Chrome/120.0.0.0 Safari/537.36",
"Referer" to "https://www.strem.io/"
)
fun create(
context: Context,
defaultRequestHeaders: Map<String, String>,
@ -13,7 +21,8 @@ internal object PlatformPlaybackDataSourceFactory {
useYoutubeChunkedPlayback: Boolean,
): DataSource.Factory {
val httpFactory = DefaultHttpDataSource.Factory()
.setDefaultRequestProperties(defaultRequestHeaders)
.setAllowCrossProtocolRedirects(true)
.setDefaultRequestProperties(DEFAULT_STREAM_HEADERS + defaultRequestHeaders)
val baseFactory: DataSource.Factory = DefaultDataSource.Factory(context, httpFactory)
return if (defaultResponseHeaders.isEmpty()) {
baseFactory
@ -24,4 +33,4 @@ internal object PlatformPlaybackDataSourceFactory {
)
}
}
}
}