-
-
Notifications
You must be signed in to change notification settings - Fork 317
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: play song without login #1690
base: dev
Are you sure you want to change the base?
Conversation
reversed cna function for n and signature function, transpiled into kotlin
It is really cool that you figured that out, thanks a lot @Malopieds If it would reliably just work like this why do other projects like yt-dlp use a JS interpreter and a cache for different versions of these JS functions? They are probably not doing this just for fun.
If this will be merged and released soon (without any longterm testing) I think it makes sense to keep the IOS player. |
That's the thing. It's not that easy. It looks easy but finding how it's done is not easy at all and require a lot of time.
Because this is the easy part. Not having to understand the code and just run it.
Yep I agree, this can be easily changed at anytime by YouTube, it's not AS future proof as using js in kotlin directly. But yet, it's not in their interest to update it too often. Both methods have their pros and cons. A lot of libs for youtube uses js/ts so it's even simpler. But if you have other ideas I'm glad to implement this another way! |
Works perfectly for me but sometimes when I play video instead of song, e. g. "delacey - dream it possible" the app crashes. |
It seems that this doesn't work anymore, for me everything that is not cached shows "Unknown error" and doesn't play. In logcat ExoPlayer says Source error, with the cause Response code: 403. I suppose something changed in the API and the generated stream urls doesn't work anymore. NewPipe is working fine though. Clearing app data doesn't fix the issue. |
@Malopieds please make it so that this replaces the Because the The |
I can confirm, changing the player client from WEB_REMIX to IOS also works for me, it even plays explicit songs without logging in. I uploaded a build with these changes in case anyone wants to try. The icon is more blueish to distinguish it from the original Innertune. |
Maybe this depends on the country or "age-restricted" and "explicit" are two different things. @Malopieds since the current approach is broken what do you think about this: But you will need to extract the js functions for this to work Another alternative might be this fork of NewPipeExtractor (with login support): UPDATE: In one of the latest changelogs of PipePipe they wrote:
And they added yt-dlp as fallback: InnerTune could also add yt-dlp. This might be the most reliable solution. The only downsides to this so far: yt-dlp needs python and adding this makes the app big and slow so starting playback takes a while. |
Fix for avoiding having to login to listen to music, replace the IOS player too. I don't know if we should keep the IOS player as a back up too or not. Issue #1653
I reversed the cna function, for n and signature, transpiled into kotlin to avoid using js directly from kotlin. If you have any question, please ask.