-
Notifications
You must be signed in to change notification settings - Fork 802
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
All videos broken #486
Comments
A few reports of the same error from a few minutes ago are also in the thread for issue #371. |
It seems like fmt_list is not longer included in the server info response. |
Formats and adaptive formats are also available in palyerResponse. We can use that? Line 158 in a154822
Not sure how reliable this data is, I mean does it always have the formats. |
I have the same problem.. |
According to the test data files, player_response.streamingData used to just contain a property called "expiresInSeconds". Now it contains much more information:
|
At least for the _HSylqgVYQI regular test case, player_response.streamingData.formats contains the same formats that were previously in fmt_list. |
Yep, should be possible to pull all necessary info from |
The signature stuff is now included in each player_response.streamingData.adaptiveFormat's cipher field. I hope the s param is the same format as before. |
@FD- Thanks, I was just about to ask. I can't find a video with signature data. Can you share a link? |
@WaqasIbrahim It's from the vevo test case: https://www.youtube.com/watch?v=pJk0p-98Xzc |
temp fix like this |
@FD- Thanks again. Looks like cipher is a query string that has the url, sp and s. And signature deciphering is working fine with my testing. |
Working fine for me as well. Actually, a quick fix is implemented in just a few lines in parseFormats (but I'm using a modified version of the library, so might be different for unmodified). All in all, a few fields were moved to different places and some were renamed to camel casing. |
What I still don't know though:
|
Indeed seems like the request to get_info can be removed (sorry, had a mistake in an update to my comment above). The only remaining reason seemed to be to check whether requires_purchase is set, but that property seems no longer working either. Instead, videos that require a purchase can be detected via player_response.playabilityStatus:
|
A quick and dirty fix is to add this to the end of the parseFormats function:
Please note that this is in no way a permanent solution. The permanent fix likely requires modifications to quite a few places within the library. |
It should be Also formats have bitrate now (number), so we get an error here. Line 37 in e867cbd
And itags are also numbers in formats so chooseFormat does not work with itags. Line 156 in e867cbd
Quick fix:
|
@WaqasIbrahim this is the one that worked for me (for a Discord bot). Thank you! |
@WaqasIbrahim Thanks for the improvements! As mentioned, I‘m using a modified version of node-ytdl-core, and didn’t test with the public version. |
@FD- wdym modified version? |
is this still an issue? just tested this on a few random videos and not getting any errors |
yeah I think it's safe to remove, most of what it was used for can be found in |
I'm using it in a different custom runtime (not node), so had to remove the dependencies and rewrite some parts.
Wow, adaptive_fmts and fmt_list are back again! Seems like player_response.streamingData still contains formats and adaptiveFormats though. No idea whether they are in any way better to use than adaptive_fmts and fmt_list. |
streamingData is already parsed and contains content length and other useful info. |
I'm no longer having problems with ytdl yesterday yes I was in trouble but not today |
var videoPageContent = client.GetStringAsync(videoInfoUrl).Result; |
Seems like YouTube has made a breaking change as of a few minutes ago. Every video ID that I've tried is broken in ytdl-core as well as youtube-dl and Lavaplayer. Interestingly, Invidious seems to have survived this change.
youtube-dl issue: ytdl-org/youtube-dl#22367
The text was updated successfully, but these errors were encountered: