From ca97239cb6f3ff08d1e9be384352e2a9bd8694e1 Mon Sep 17 00:00:00 2001 From: wm4 Date: Tue, 22 May 2018 18:59:59 +0200 Subject: options: add --http-proxy Often requested, trivial. --- DOCS/man/options.rst | 7 +++++++ stream/stream_lavf.c | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst index 4c4954a99d..b10c2a2b23 100644 --- a/DOCS/man/options.rst +++ b/DOCS/man/options.rst @@ -3993,6 +3993,13 @@ Network Field2: value2 Connection: close +``--http-proxy=`` + URL of the HTTP/HTTPS proxy. If this is set, the ``http_proxy`` environment + is ignored. The ``no_proxy`` environment variable is still respected. This + option is silently ignored if it does not start with ``http://``. Proxies + are not used for https URLs. Setting this option does not try to make the + ytdl script use the proxy. + ``--tls-ca-file=`` Certificate authority database file for use with TLS. (Silently fails with older FFmpeg or Libav versions.) diff --git a/stream/stream_lavf.c b/stream/stream_lavf.c index 09866ff74f..e64e2484a0 100644 --- a/stream/stream_lavf.c +++ b/stream/stream_lavf.c @@ -46,6 +46,7 @@ struct stream_lavf_params { char *tls_cert_file; char *tls_key_file; double timeout; + char *http_proxy; }; const struct m_sub_options stream_lavf_conf = { @@ -61,6 +62,7 @@ const struct m_sub_options stream_lavf_conf = { OPT_STRING("tls-cert-file", tls_cert_file, M_OPT_FILE), OPT_STRING("tls-key-file", tls_key_file, M_OPT_FILE), OPT_DOUBLE("network-timeout", timeout, M_OPT_MIN, .min = 0), + OPT_STRING("http-proxy", http_proxy, 0), {0} }, .size = sizeof(struct stream_lavf_params), @@ -224,6 +226,8 @@ void mp_setup_av_network_options(AVDictionary **dict, struct mpv_global *global, snprintf(buf, sizeof(buf), "%lld", (long long)(opts->timeout * 1e6)); av_dict_set(dict, "timeout", buf, 0); } + if (opts->http_proxy && opts->http_proxy[0]) + av_dict_set(dict, "http_proxy", opts->http_proxy, 0); mp_set_avdict(dict, opts->avopts); -- cgit v1.2.3