Try fix #385
This commit is contained in:
@@ -7,3 +7,5 @@ class PlayableFormatNotFoundException : PlaybackException(null, null, ERROR_CODE
|
||||
class UnplayableException : PlaybackException(null, null, ERROR_CODE_REMOTE_ERROR)
|
||||
|
||||
class LoginRequiredException : PlaybackException(null, null, ERROR_CODE_REMOTE_ERROR)
|
||||
|
||||
class VideoIdMismatchException : PlaybackException(null, null, ERROR_CODE_REMOTE_ERROR)
|
||||
|
||||
@@ -650,6 +650,10 @@ class PlayerService : InvincibleService(), Player.Listener, PlaybackStatsListene
|
||||
val urlResult = runBlocking(Dispatchers.IO) {
|
||||
Innertube.player(PlayerBody(videoId = videoId))
|
||||
}?.mapCatching { body ->
|
||||
if (body.videoDetails?.videoId != videoId) {
|
||||
throw VideoIdMismatchException()
|
||||
}
|
||||
|
||||
when (val status = body.playabilityStatus?.status) {
|
||||
"OK" -> body.streamingData?.adaptiveFormats?.findLast { format ->
|
||||
format.itag == 251 || format.itag == 140
|
||||
|
||||
@@ -31,6 +31,7 @@ import it.vfsfitvnm.vimusic.query
|
||||
import it.vfsfitvnm.vimusic.service.LoginRequiredException
|
||||
import it.vfsfitvnm.vimusic.service.PlayableFormatNotFoundException
|
||||
import it.vfsfitvnm.vimusic.service.UnplayableException
|
||||
import it.vfsfitvnm.vimusic.service.VideoIdMismatchException
|
||||
import it.vfsfitvnm.vimusic.ui.styling.Dimensions
|
||||
import it.vfsfitvnm.vimusic.ui.styling.LocalAppearance
|
||||
import it.vfsfitvnm.vimusic.ui.styling.px
|
||||
@@ -159,6 +160,7 @@ fun Thumbnail(
|
||||
is PlayableFormatNotFoundException -> "Couldn't find a playable audio format"
|
||||
is UnplayableException -> "The original video source of this song has been deleted"
|
||||
is LoginRequiredException -> "This song cannot be played due to server restrictions"
|
||||
is VideoIdMismatchException -> "The returned video id didn't match the requested one"
|
||||
else -> "An unknown playback error has occurred"
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user