mirror of
https://github.com/unshackle-dl/unshackle.git
synced 2026-11-14 13:05:09 +00:00
feat(dl): add --proxy-download for a separate download proxy
Manifest, licence and auth stay on --proxy; track, subtitle and attachment downloads use the second proxy. Also exposed as proxy_download on the REST download job with the same server_proxy gate. The download session now ignores HTTP(S)_PROXY and copies rnet cookies set by name.
This commit is contained in:
@@ -198,6 +198,7 @@ order the service used, then renumbers the episodes into the order you asked for
|
||||
| `--proxy` | Proxy URI, a 2-letter country code resolved from configured providers, or `provider:region` (e.g. `nordvpn:ca`, `gluetun:us`, `protonvpn:de:berlin`). |
|
||||
| `--no-proxy` | Force-disable all proxy use. |
|
||||
| `--no-proxy-download` | Bypass the proxy for **all downloads** (manifest, licence, and auth stay proxied). |
|
||||
| `--proxy-download` | Use a different proxy for **all downloads**, in the same forms as `--proxy` (manifest, licence, and auth stay on `--proxy`). |
|
||||
| `--remote` | Use a remote unshackle server. |
|
||||
| `--server` | Name a remote server from the `remote_services` config. |
|
||||
|
||||
|
||||
@@ -729,12 +729,15 @@ unshackle dl --proxy nordvpn:ca EXAMPLE 81234567
|
||||
unshackle dl --proxy 'http://user:pass@host:8080' EXAMPLE 81234567
|
||||
```
|
||||
|
||||
Two related flags:
|
||||
Three related flags:
|
||||
|
||||
- `--no-proxy`: force-disable all proxy use for this run.
|
||||
- `--no-proxy-download`: bypass the proxy for **all downloads**. The manifest,
|
||||
license, and authentication requests still go through the proxy. This is useful when you
|
||||
need the proxy only to satisfy geo-checks, not to move the bulk of the data.
|
||||
- `--proxy-download`: use a different proxy for **all downloads**. The manifest,
|
||||
license, and authentication requests still go through `--proxy`. Takes the same forms
|
||||
as `--proxy`.
|
||||
|
||||
## Performance and caching
|
||||
|
||||
@@ -954,7 +957,7 @@ authoritative list.
|
||||
| `--output` | `-o` | Output directory for this run. |
|
||||
| `--split-audio` / `--merge-video` / `--no-mux` | | Muxing behaviour. |
|
||||
| `--postscript` / `--no-postscript` | | Run a command after each output file, or run none. |
|
||||
| `--proxy` / `--no-proxy` / `--no-proxy-download` | | Proxy control. |
|
||||
| `--proxy` / `--no-proxy` / `--no-proxy-download` / `--proxy-download` | | Proxy control. |
|
||||
| `--workers` / `--downloads` / `--slow` | | Concurrency and pacing. |
|
||||
| `--list` / `--list-titles` / `--skip-dl` | | Dry runs. |
|
||||
| `--cdm-only` / `--vaults-only` | | Content key source control. |
|
||||
|
||||
@@ -22,13 +22,14 @@ a query to a real proxy URL: [basic static proxies](#basic-static-proxies),
|
||||
|
||||
## The `--proxy` flag
|
||||
|
||||
Three options on the `dl` command control proxying at download time:
|
||||
Four options on the `dl` command control proxying at download time:
|
||||
|
||||
| Option | Effect |
|
||||
|---|---|
|
||||
| `--proxy` | The proxy to use. Either an explicit URI, or a query that unshackle resolves against your configured providers. |
|
||||
| `--no-proxy` | Force **all** proxy use off. No providers are initialised and no proxy query is resolved. |
|
||||
| `--no-proxy-download` | Use the proxy for the manifest, licence, and authentication, but bypass it for the **downloads** themselves. |
|
||||
| `--proxy-download` | Use `--proxy` for the manifest, licence, and authentication, and a different proxy for the **downloads**. Takes the same forms as `--proxy`. |
|
||||
|
||||
```shell title="Explicit proxy URI"
|
||||
unshackle dl --proxy http://user:pass@1.2.3.4:8080 EXAMPLE 81234567
|
||||
@@ -64,6 +65,21 @@ unshackle dl --proxy gb --no-proxy-download EXAMPLE 10a1234
|
||||
cause segment fetches to fail or return the wrong region. If downloads break with
|
||||
`--no-proxy-download`, remove it.
|
||||
|
||||
### `--proxy-download`
|
||||
|
||||
`--proxy-download` is the middle ground: the manifest, licence, and authentication go through
|
||||
`--proxy`, and the downloads go through a second proxy. Use it when one proxy passes the
|
||||
geo-check and another one is faster for bulk traffic. The value takes the same forms as
|
||||
`--proxy`, so a country code or `provider:region` resolves against the same providers.
|
||||
|
||||
```shell title="Manifest and licence over NordVPN, downloads over Windscribe"
|
||||
unshackle dl --proxy nordvpn:us --proxy-download windscribevpn:us EXAMPLE 10a1234
|
||||
```
|
||||
|
||||
`--no-proxy` and `--no-proxy-download` both override `--proxy-download`. The same
|
||||
region warning applies: if the service ties segment delivery to the manifest region, keep
|
||||
both proxies in that region.
|
||||
|
||||
## How proxy resolution works
|
||||
|
||||
unshackle interprets the value you pass to `--proxy` in one of three ways. It tries
|
||||
|
||||
Reference in New Issue
Block a user