meeb / tubesync

Syncs YouTube channels and playlists to a locally hosted media server
GNU Affero General Public License v3.0
1.94k stars 121 forks source link

Can we have at least download limit? #105

Open kwm1800 opened 3 years ago

kwm1800 commented 3 years ago

I do not want to be rate-limited by youtube, and it seems tubesync does not have any time limit for each download. It would be good to have time limit or transfer size limit on download.

meeb commented 3 years ago

Do you mean "no more than X gigabytes per day" or something like "no more than X downloaded video files per day" limits? The previous rate limiting issues was mostly due to the more intensive indexing older versions of TubeSync did and shouldn't be a problem now for most people.

kwm1800 commented 3 years ago

Youtube would still ban ips if download way too much and way too fast. Using "--cookies" helps (now I see there is no option to put cookie text file for youtube-dl for some reason) but it is not completely immune. Bans can be rather long and I avoided getting banned by just downloading slowly (3mb/s) using "--limit-rate".

I mean essentially both options work, either speed of download, or max transfer cap (no more than X gb per day) or file cap. Just need some safety mechanism so Youtube does not freak out and ban my ip address.

meeb commented 3 years ago

Sure I'll put a global "--limit-rate" style feature on the future wishlist, it looks like its supported by embedded youtube-dl from the docs and I can see the use for it.

For my own future reference when I look back at this issue, youtube-dl's bundled downloaders support a rate limiter to slow downloads. This should be available as a global option in TubeSync to allow per-megabit download limiting.

ankenyr commented 3 years ago

There is actually still the option to add a cookie file. from file system options

--cookies FILE                       File to read cookies from and dump
                                     cookie jar in

Using a valid cookie circumvents all the 429 blocking in my experience.

@meeb would you like me to open a new issue? I would be happy to create a PR to add this as a feature but would like to make sure my idea on how to implement it would fit with your vision.

meeb commented 3 years ago

Hi @ankenyr - this is pretty easy to implement, probably just a few lines of code. The reason this isn't implemented is discussed in #129. I'm not sure it would be a good feature to add at the moment, if implemented it would need to come with some pretty massive at-your-own-risk warnings.