Option to use a Proxy
I really like tubesync so far, still testing it out but noticed it is missing a super important feature for me, I need to be able to use a proxy.
This is a feature built into yt-dlp, it simply needs a way to add in a proxy to send to it.
From yt-dlp:
`Network Options:
--proxy URL Use the specified HTTP/HTTPS/SOCKS proxy. To enable SOCKS proxy, specify a proper scheme. For example socks5://user:[email protected]:1080/. Pass in an empty string (--proxy "") for direct connection --socket-timeout SECONDS Time to wait before giving up, in seconds --source-address IP Client-side IP address to bind to -4, --force-ipv4 Make all connections via IPv4 -6, --force-ipv6 Make all connections via IPv6 `
Ideally it could be a list of proxies that it rotates through for each new task. This is how tartube works and it is really nice.
Sadly can't do a lot with this program without the proxy. Looks very promising though. Good work so far!
The reason this hasn't been added so far was it caused a significant number of task failures and retries to the point where many tasks completely failed. I'll test it again though and see if it's feasible.
Interesting, sure it wasn't the proxy side that was causing the failures?
In tartube I never really had an issue with failures but it might work a little different.
It was due to any "task didn't complete" error being treated as a failure and YouTube being quite good at blocking proxies. This worked OK when you used your own private proxy set up somewhere, but regularly failed multiple tasks permanently if using something like a proxy hosted by a VPN provider. Ideally, this probably needs some sort of initial "test" for proxies before using them to make sure they're functional before trying to process a batch of tasks through them. I can certainly see the point though so I'll look into it again.
Ok, makes sense, that is why I liked the tartube method of multiple proxies and scrolling through them for each task.
I do have private proxies setup along with a few VPN connections on my server that it would scroll through. The benefit being that if something got throttled it would not effect my main IP.
By having ~4-6 different connections setup and scrolling through them I rarely had an issue with throttling. Important when I am watching ~100+ channels and growing, although most are only checked on a weekly basis.
Could add the feature as a beta/test feature with a warning and enable logging of any errors from it and people like me can report how it works?
Just wanted to say thanks for this awesome tool, and voice support for this idea. I'd love to route my downloads through a proxy also.
I don't know enough about how yt-dlp is being accessed, but maybe just an environmental variable that allowed a end user to pass additional flags to yt-dlp at their own risk? Maybe it wouldn't work, just an idea. Thanks again for the great tool!
tubesync doesn't call yt-dlp on the command line, it uses the embedded Python API so you can't just stuff in flags. You can edit the default yt-dlp arguments though in settings.py if you like.
Great tip, thanks! I'll look there :)