Skip to content

Commit

Permalink
Merge pull request #5651 from aneesh1122/Fixing-YT-related-things
Browse files Browse the repository at this point in the history
Fixing error 400 when songs are added in yt playlist
  • Loading branch information
fast4x authored Feb 7, 2025
2 parents 1b4ab03 + 706ec8a commit e6f700d
Showing 1 changed file with 14 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package it.fast4x.innertube

import io.ktor.client.call.body
import io.ktor.client.plugins.ClientRequestException
import io.ktor.client.statement.bodyAsText
import io.ktor.http.HttpStatusCode
import it.fast4x.innertube.Innertube.getBestQuality
import it.fast4x.innertube.models.BrowseEndpoint
import it.fast4x.innertube.models.BrowseResponse
Expand All @@ -21,6 +23,7 @@ import it.fast4x.innertube.requests.NewReleaseAlbumPage
import it.fast4x.innertube.requests.PlaylistContinuationPage
import it.fast4x.innertube.requests.PlaylistPage
import it.fast4x.innertube.utils.from
import kotlinx.coroutines.delay

object YtMusic {

Expand Down Expand Up @@ -59,6 +62,17 @@ object YtMusic {
Innertube.addToPlaylist(Context.DefaultWeb.client, playlistId, requestedVideoIds)
}.onFailure {
println("YtMusic addToPlaylist (list of size ${videoIds.size}) error: ${it.stackTraceToString()}")
if(it is ClientRequestException && it.response.status == HttpStatusCode.BadRequest) {
val videoIdsChunks = videoIds.chunked(50)
videoIdsChunks.forEach { ids ->
ids.forEach { id ->
delay(500)
addToPlaylist(playlistId, id).onFailure {
println("YtMusic addToPlaylist (list insert backup) error: ${it.stackTraceToString()}")
}
}
}
}
}

suspend fun removeFromPlaylist(playlistId: String, videoId: String, setVideoId: String? = null) = runCatching {
Expand Down

0 comments on commit e6f700d

Please sign in to comment.