Fix invalid yt url: signature tag name is not always "signature"#163
Fix invalid yt url: signature tag name is not always "signature"#163TobiGr merged 2 commits intoTeamNewPipe:devfrom
Conversation
Thanks to @omarroth for the suggestion: see TeamNewPipe#155
|
The unsuccessful checks are due to a video, used to test comments, that is not available anymore. |
| // if video has a signature: decrypt it and add it to the url | ||
| if (tags.get("s") != null) { | ||
| streamUrl = streamUrl + "&signature=" + decryptSignature(tags.get("s"), decryptionCode); | ||
| streamUrl = streamUrl + "&" + tags.get("sp") + "=" + decryptSignature(tags.get("s"), decryptionCode); |
There was a problem hiding this comment.
Thanks! I'd like to include this into 0.16.2 so we can get this fix out asap. Can we ensure that tags.get("sp") != null? If this is the case, we are good to go. Otherwise, I'd suggest to use streamUrl = streamUrl + "&signature=" + decryptSignature(tags.get("s"), decryptionCode); as fallback if tags.get("sp") == null.
There was a problem hiding this comment.
Ok, I'll implement and test it this evening
|
asap pls! |
If ever YouTube changes thing again (or uses old urls for some unknown reason), this prevents the extractor from crashing. As suggested here: https://github.com/TeamNewPipe/NewPipeExtractor/pull/163/files/133cc032d9987130927e4c00e78e9fdbca1331dd#r283529811
|
Implemented and tested the suggestion from @TobiGr |
Thanks to @omarroth for the suggestion. For more info see #155 #162 TeamNewPipe/NewPipe#2337
This should fix many problems users keep having in the last few weeks: some videos in NewPipe don't load, at random. Invalid urls of those videos are then cached, and the app won't load them anymore until the cache is wiped. So even after this pr is merged, users would still have to manually wipe metadata from the app.
I tested the changes in the NewPipe app and it worked normally with all the videos I tried. I also added a
Loginstruction to have the url printed in the android logcat, and I saw that both types* of YouTube links work (one of them wouldn't have worked previously).* One type (the one that has always worked) has "id" as the first url tag and signature tag "signature", the other (that created problems with the signature) has "expire" as the first url tag and signature tag "sig". Or at least it seems to be like this, to me.
Please merge this as soon as possible, since this issue is affecting many people and is very annoying :-) .
Fixes #162
Fixes (partially) #155
Fixes TeamNewPipe/NewPipe#2336
Fixes TeamNewPipe/NewPipe#2337
Fixes TeamNewPipe/NewPipe#2324
Fixes TeamNewPipe/NewPipe#2304
Fixes TeamNewPipe/NewPipe#2275
Probably also fixes TeamNewPipe/NewPipe#867
Probably also fixes TeamNewPipe/NewPipe#2297