Repository: yt-dlp
Issue: [Cam4] Support --geo-verification-proxy
Labels: NSFW,site-enhancement,patch-available,needs-testing

The URL is NSFW, but here's -vU log from this command: `yt-dlp.exe https://www.cam4.com/danielseemily --geo-verification-proxy http://127.0.0.1:4001 --fixup never --concurrent-fragments 4 -vU -o rec.ts`

```
[debug] Optional libraries: Cryptodome-3.17, brotli-1.0.9, certifi-2022.12.07, m
utagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[debug] Proxy map: {}
[debug] Loaded 1786 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releas
es/latest
Available version: stable@2023.03.04, Current version: stable@2023.03.04
Current Build Hash: 5590c57bd0433ed239a2deaaf92e2ad6f37fe50f53664c821575cafe106a
9421
yt-dlp is up to date (stable@2023.03.04)
[CAM4] Extracting URL: https://www.cam4.com/danielseemily
[CAM4] danielseemily: Downloading JSON metadata
ERROR: [CAM4] danielseemily: Unable to download JSON metadata: HTTP Error 403: F
orbidden (caused by <HTTPError 403: 'Forbidden'>); please report this issue on
https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue t
emplate. Confirm you are on the latest version using  yt-dlp -U
tmpdump 2.4
[debug] Optional libraries: Cryptodome-3.17, brotli-1.0.9, certifi-2022.12.07, m
utagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[debug] Proxy map: {}
[debug] Loaded 1786 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releas
es/latest
Available version: stable@2023.03.04, Current version: stable@2023.03.04
Current Build Hash: 5590c57bd0433ed239a2deaaf92e2ad6f37fe50f53664c821575cafe106a
9421
yt-dlp is up to date (stable@2023.03.04)
[CAM4] Extracting URL: https://www.cam4.com/danielseemily
[CAM4] danielseemily: Downloading JSON metadata
ERROR: [CAM4] danielseemily: Unable to download JSON metadata: HTTP Error 403: F
orbidden (caused by <HTTPError 403: 'Forbidden'>); please report this issue on
https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue t
emplate. Confirm you are on the latest version using  yt-dlp -U
  File "yt_dlp\extractor\common.py", line 694, in extract
  File "yt_dlp\extractor\cam4.py", line 20, in _real_extract
  File "yt_dlp\extractor\common.py", line 1048, in download_content
  File "yt_dlp\extractor\common.py", line 1012, in download_handle
  File "yt_dlp\extractor\common.py", line 882, in _download_webpage_handle
  File "yt_dlp\extractor\common.py", line 839, in _request_webpage

  File "yt_dlp\extractor\common.py", line 821, in _request_webpage
  File "yt_dlp\YoutubeDL.py", line 3742, in urlopen
  File "urllib\request.py", line 531, in open
  File "urllib\request.py", line 640, in http_response
  File "urllib\request.py", line 569, in error
  File "urllib\request.py", line 502, in _call_chain
  File "urllib\request.py", line 649, in http_error_default
urllib.error.HTTPError: HTTP Error 403: Forbidden
```
If I specify --proxy instead, all goes well.

BTW, this extractor also fails with parse exception when a cam is offline, causing yt-dlp to exit even when "-R infinite" is specified. Should I make a separate issue about this?

_Originally posted by @GrayFace in https://github.com/yt-dlp/yt-dlp/issues/6933#issuecomment-1527627748_