-
Notifications
You must be signed in to change notification settings - Fork 39
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
Slow download rate: Youtube throttling #11
Comments
This should be fixed after half integrating pytube and using their way of computing the signed url token, with commit 67201e6 |
This is not entirely fixed yet. Some live streams appear to be throttled while others are not. Perhaps the signature needs to be applied periodically, which would force us to refresh the download URLs for each stream every now and then. If that is the case, we'll need to figure out that time period somehow. It has been reported to me that restarting the download process brings back normal download speed to normal for a little while, which corroborates this assumption. |
It may indeed be throttling, There was a public livestream earlier today that ended 3 hours ago (started 4h ago). Edit: at 17:30 critical error, Error 403 Forbidden. Edit 2: I am being throttling with youtube-dl to 60KB's so its most likely the same for livestream-saver. Currently to download an uploaded video I am using aria2c through youtube-dl with a few arguments -j 16 -x 16 -s 16 at least I can get around 1MB/s but I dont think aria2c can be incorporated here. |
Yup, I have been experiencing the exact same issue. I don't have a clear solution yet. It's something to investigate further. |
In ytarchive, this was fixed by using the Android player response, the same strategy that yt-dlp used: |
@undulum thanks for that link. I will have to work on this and implement the same solution. |
* Fetch additional metadata for each video in monitor mode through the API. This is needed to get a video description in order to compare regex against it and determine whether or not the hook command should trigger. * Get download URL via the ANDROID client parameters to get a pre-signed URL and get around the throttling issue #11.
The issue should be fixed (for now) in commit dcb62de. |
Just a heads up, the current implementation is incomplete, so members-only videos are not accessible, even with cookies loaded. A workaround is to spawn yt-dlp as hook command (and use the Remember to use |
Members-only videos should work now, as of d0a06d1. |
Youtube throttles downloads from URL endpoints not signed with some kind of cryptographic token.
Pytube implemented a fix (pytube linked issue),
invidious implemented a fix,
yt-dlp issue about this topic.
Possible workaround but needs more testing: having the javascript youtube player active in a web browser (ie. the video page open, but the video itself probably does not need to be playing).
Possible solutions: currently attempting to merge some of Pytube methods in the hope to get a signed URL for every stream. Will it need to be refreshed? And how frequently? No idea yet.
Also looking into integrating yt-dlp and streamlink somehow but it will take time.
The text was updated successfully, but these errors were encountered: