Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix "Unknown Error" on Playback Request Due to InnerTube API Changes #468

Open
wants to merge 2 commits into
base: dev
Choose a base branch
from

Conversation

SageTendo
Copy link

@SageTendo SageTendo commented Jan 27, 2025

Should: fix #433, fix #438, fix #445, fix #463, fix #467

Summary:

Due to recent InnerTube changes, playback data and valid streams cannot be returned to the client, resulting in 403 responses or invalid playability status in the PlayerResponse. A similar solution is used in OuterTune and Metrolist to handle these issues. Credits: @gechoto.

Note: Direct streams seem to cause issues once in a while, such as playback interrupts or timeouts. This might be due to the current version of NewPipeExtractor (0.24.4) failing to deobfuscate Throttling Params. Commit 1ca8275 resolves this, so maybe that could be used in the meantime until the next version release?

- Replaced Piped Streams with direct YouTube streams for `YouTube.player()`, as [pipedapi.kevin.rocks](https://pipedapi.kevin.rocks) is down.
  **Note**: Direct streams seem to cause issues once in a while, such as playback interrupts or timeouts.
- Added support for signature timestamps in `YouTube.player()`, fetched from InnerTube using the media ID, for clients requiring signature timestamps.
- Playback and stream fetching handled in `innertune/utils/YTPlayerUtils.kt`.
- Extraction/Deobfuscation of `PlayerResponse` data is handled in `innertube/utils/NewPipeUtils.kt`.
- Updated 'YoutubeClient' clients to reflect changes.
- Fixed Kugou test causing build errors

### Additional Changes:
- Added [libs.newpipeExtractor](https://github.com/TeamNewPipe/NewPipeExtractor) to `libs.versions.toml` and `innertube/build.gradle`.
@SageTendo SageTendo marked this pull request as ready for review January 27, 2025 18:58
…layer requests (doesn't appear to be used anymore)
@marko19914
Copy link

Any progress on the issue? Waiting patiently until it gets resolved.

@SageTendo
Copy link
Author

Not sure if @Malopieds is active, so we're just waiting for them for review and approval.

Alternatively, you could build your own release version from my repo and use that in the meantime.

@unsignedchar-256
Copy link

Not sure if @Malopieds is active, so we're just waiting for them for review and approval.

Alternatively, you could build your own release version from my repo and use that in the meantime.

I don't think that he actively working on this project, but I think it's reasonable as he doesn't get paid for this repo.

(my PR from 4 months ago haven't been reviewed, lmao)

@Maarruuu
Copy link

Maarruuu commented Feb 12, 2025 via email

@zhabafrog
Copy link

Not sure if @Malopieds is active, so we're just waiting for them for review and approval.
Alternatively, you could build your own release version from my repo and use that in the meantime.

I don't think that he actively working on this project, but I think it's reasonable as he doesn't get paid for this repo.

(my PR from 4 months ago haven't been reviewed, lmao)

Yeah it is very sad that this fork is inactive. Could you recommend projects that are more active and stable?

@marko19914
Copy link

marko19914 commented Feb 13, 2025

@Maarruuu Checked out the metrolist. Thank you for the recommendation. This issue doesn't seem to manifest there, also it seems to have monthly updates right now.

@SageTendo Thank you for the offer. I could probably figure out how to build it, but I'll go with the metrolist app for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants