[core] Workaround erroneous urllib Windows proxy parsing #7092
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Authored by: coletdjnz
IMPORTANT: PRs without the template will be CLOSED
Description of your pull request and other information
ADD DESCRIPTION HERE
Backport from Network Rework.
Workaround for python/cpython#86793 for older Python versions.
See #4136 for explanation.
Note: this issue doesn't impact the current yt-dlp as https proxies are treated as http, but for when we add support for https proxies in the future this will be needed.
(In saying that we may want to add a warning if a user does pass a https proxy in the current state)
Template
Before submitting a pull request make sure you have:
In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check all of the following options that apply:
What is the purpose of your pull request?
Copilot Summary
🤖 Generated by Copilot at fe6249d
Summary
📦🛠️🔄
Patch
urllib.request.getproxies
to fix proxy detection on Windows. Create a newcompat.urllib
package that re-exports and patches the standardurllib
module.Walkthrough
getproxies
to fix proxy detection issues on Windows (link, link, link)compat/urllib/request.py
that re-exports and patchesurllib.request.getproxies
(link)getproxies
fromcompat/urllib/request.py
instead ofurllib.request
inYoutubeDL.py
(link)urllib.request.getproxies
with the localgetproxies
inYoutubeDL.py
(link)urllib
incompat/urllib/__init__.py
to allow importingurllib
fromcompat
without breaking existing code (link)passthrough_module
to re-export all the symbols fromurllib
and make the local module act as a proxy for the standard module (link)