Skip to content

Commit 3b56d9a

Browse files
Use PipePipe Extractor to resolve playback issues
This change switches from NewPipe Extractor to PipePipe Extractor to resolve common playback issues including: - Playback Error 403 - Source error 2004 - Playback stops after 30 seconds Changes made: - Updated gradle/libs.versions.toml to use PipePipeExtractor version 4240401 from InfinityLoop1308 - Updated NewPipe.kt to support new Response constructor with byte array parameter - Added CancellableCall import and executeAsync method placeholder for compatibility PipePipe Extractor is a fork of NewPipe Extractor that provides better deobfuscation support and resolves issues with broken WEB_REMIX and TVHTML5_SIMPLY_EMBEDDED_PLAYER clients that fallback to IOS client which gets blocked by YouTube. References: - Original PR: OuterTune/OuterTune#730 - Original repository: https://github.com/OuterTune/OuterTune - PipePipe Extractor: https://github.com/InfinityLoop1308/PipePipeExtractor - Related issue: OuterTune/OuterTune#468 Credit: @DanielProg39 for the original implementation
1 parent c8cb17a commit 3b56d9a

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

gradle/libs.versions.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,9 @@ timber = { group = "com.jakewharton.timber", name = "timber", version = "5.0.1"
8787

8888
multidex = { group = "androidx.multidex", name = "multidex", version.ref = "multidex" }
8989

90-
newpipe-extractor = { group = "com.github.libre-tube", name = "NewPipeExtractor", version = "70abbdb" }
90+
#newpipe-extractor = { group = "com.github.libre-tube", name = "NewPipeExtractor", version = "70abbdb" }
9191
#newpipe-extractor = { group = "com.github.TeamNewPipe", name = "NewPipeExtractor", version = "dev-SNAPSHOT" }
92+
newpipe-extractor = { group = "com.github.InfinityLoop1308", name = "PipePipeExtractor", version = "4240401" }
9293

9394
kuromoji-ipadic = { group = "com.atilika.kuromoji", name = "kuromoji-ipadic", version.ref = "kuromojiIpadic" }
9495

innertube/src/main/kotlin/com/metrolist/innertube/pages/NewPipe.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import io.ktor.http.parseQueryString
77
import okhttp3.OkHttpClient
88
import okhttp3.RequestBody.Companion.toRequestBody
99
import org.schabi.newpipe.extractor.NewPipe
10+
import org.schabi.newpipe.extractor.downloader.CancellableCall
1011
import org.schabi.newpipe.extractor.downloader.Downloader
1112
import org.schabi.newpipe.extractor.downloader.Request
1213
import org.schabi.newpipe.extractor.downloader.Response
@@ -56,7 +57,11 @@ private class NewPipeDownloaderImpl(proxy: Proxy?) : Downloader() {
5657
val responseBodyToReturn = response.body?.string()
5758

5859
val latestUrl = response.request.url.toString()
59-
return Response(response.code, response.message, response.headers.toMultimap(), responseBodyToReturn, latestUrl)
60+
return Response(response.code, response.message, response.headers.toMultimap(), responseBodyToReturn, responseBodyToReturn?.toByteArray(), latestUrl)
61+
}
62+
63+
override fun executeAsync(request: Request, callback: AsyncCallback?): CancellableCall {
64+
TODO("Placeholder")
6065
}
6166

6267
}

0 commit comments

Comments
 (0)