mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 01:57:08 -05:00 
			
		
		
		
	Rename --cn-verfication-proxy to --geo-verification-proxy
And deprecate the former one
Since commit f138873900, this option is
not limited to China websites, so rename it.
			
			
This commit is contained in:
		@@ -196,8 +196,8 @@ class YoutubeDL(object):
 | 
			
		||||
    prefer_insecure:   Use HTTP instead of HTTPS to retrieve information.
 | 
			
		||||
                       At the moment, this is only supported by YouTube.
 | 
			
		||||
    proxy:             URL of the proxy server to use
 | 
			
		||||
    cn_verification_proxy:  URL of the proxy to use for IP address verification
 | 
			
		||||
                       on Chinese sites. (Experimental)
 | 
			
		||||
    geo_verification_proxy:  URL of the proxy to use for IP address verification
 | 
			
		||||
                       on geo-restricted sites. (Experimental)
 | 
			
		||||
    socket_timeout:    Time to wait for unresponsive hosts, in seconds
 | 
			
		||||
    bidi_workaround:   Work around buggy terminals without bidirectional text
 | 
			
		||||
                       support, using fridibi
 | 
			
		||||
@@ -304,6 +304,11 @@ class YoutubeDL(object):
 | 
			
		||||
        self.params.update(params)
 | 
			
		||||
        self.cache = Cache(self)
 | 
			
		||||
 | 
			
		||||
        if self.params.get('cn_verification_proxy') is not None:
 | 
			
		||||
            self.report_warning('--cn-verification-proxy is deprecated. Use --geo-verification-proxy instead.')
 | 
			
		||||
            if self.params.get('geo_verification_proxy') is None:
 | 
			
		||||
                self.params['geo_verification_proxy'] = self.params['cn_verification_proxy']
 | 
			
		||||
 | 
			
		||||
        if params.get('bidi_workaround', False):
 | 
			
		||||
            try:
 | 
			
		||||
                import pty
 | 
			
		||||
 
 | 
			
		||||
@@ -382,6 +382,8 @@ def _real_main(argv=None):
 | 
			
		||||
        'external_downloader_args': external_downloader_args,
 | 
			
		||||
        'postprocessor_args': postprocessor_args,
 | 
			
		||||
        'cn_verification_proxy': opts.cn_verification_proxy,
 | 
			
		||||
        'geo_verification_proxy': opts.geo_verification_proxy,
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    with YoutubeDL(ydl_opts) as ydl:
 | 
			
		||||
 
 | 
			
		||||
@@ -1729,6 +1729,13 @@ class InfoExtractor(object):
 | 
			
		||||
    def _mark_watched(self, *args, **kwargs):
 | 
			
		||||
        raise NotImplementedError('This method must be implemented by subclasses')
 | 
			
		||||
 | 
			
		||||
    def geo_verification_headers(self):
 | 
			
		||||
        headers = {}
 | 
			
		||||
        geo_verification_proxy = self._downloader.params.get('geo_verification_proxy')
 | 
			
		||||
        if geo_verification_proxy:
 | 
			
		||||
            headers['Ytdl-request-proxy'] = geo_verification_proxy
 | 
			
		||||
        return headers
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SearchInfoExtractor(InfoExtractor):
 | 
			
		||||
    """
 | 
			
		||||
 
 | 
			
		||||
@@ -293,14 +293,10 @@ class IqiyiIE(InfoExtractor):
 | 
			
		||||
            't': tm,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        headers = {}
 | 
			
		||||
        cn_verification_proxy = self._downloader.params.get('cn_verification_proxy')
 | 
			
		||||
        if cn_verification_proxy:
 | 
			
		||||
            headers['Ytdl-request-proxy'] = cn_verification_proxy
 | 
			
		||||
        return self._download_json(
 | 
			
		||||
            'http://cache.m.iqiyi.com/jp/tmts/%s/%s/' % (tvid, video_id),
 | 
			
		||||
            video_id, transform_source=lambda s: remove_start(s, 'var tvInfoJs='),
 | 
			
		||||
            query=params, headers=headers)
 | 
			
		||||
            query=params, headers=self.geo_verification_headers())
 | 
			
		||||
 | 
			
		||||
    def _extract_playlist(self, webpage):
 | 
			
		||||
        PAGE_SIZE = 50
 | 
			
		||||
 
 | 
			
		||||
@@ -26,11 +26,6 @@ class KuwoBaseIE(InfoExtractor):
 | 
			
		||||
    def _get_formats(self, song_id, tolerate_ip_deny=False):
 | 
			
		||||
        formats = []
 | 
			
		||||
        for file_format in self._FORMATS:
 | 
			
		||||
            headers = {}
 | 
			
		||||
            cn_verification_proxy = self._downloader.params.get('cn_verification_proxy')
 | 
			
		||||
            if cn_verification_proxy:
 | 
			
		||||
                headers['Ytdl-request-proxy'] = cn_verification_proxy
 | 
			
		||||
 | 
			
		||||
            query = {
 | 
			
		||||
                'format': file_format['ext'],
 | 
			
		||||
                'br': file_format.get('br', ''),
 | 
			
		||||
@@ -42,7 +37,7 @@ class KuwoBaseIE(InfoExtractor):
 | 
			
		||||
            song_url = self._download_webpage(
 | 
			
		||||
                'http://antiserver.kuwo.cn/anti.s',
 | 
			
		||||
                song_id, note='Download %s url info' % file_format['format'],
 | 
			
		||||
                query=query, headers=headers,
 | 
			
		||||
                query=query, headers=self.geo_verification_headers(),
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
            if song_url == 'IPDeny' and not tolerate_ip_deny:
 | 
			
		||||
 
 | 
			
		||||
@@ -20,7 +20,6 @@ from ..utils import (
 | 
			
		||||
    int_or_none,
 | 
			
		||||
    orderedSet,
 | 
			
		||||
    parse_iso8601,
 | 
			
		||||
    sanitized_Request,
 | 
			
		||||
    str_or_none,
 | 
			
		||||
    url_basename,
 | 
			
		||||
    urshift,
 | 
			
		||||
@@ -121,16 +120,11 @@ class LeIE(InfoExtractor):
 | 
			
		||||
            'tkey': self.calc_time_key(int(time.time())),
 | 
			
		||||
            'domain': 'www.le.com'
 | 
			
		||||
        }
 | 
			
		||||
        play_json_req = sanitized_Request(
 | 
			
		||||
            'http://api.le.com/mms/out/video/playJson?' + compat_urllib_parse_urlencode(params)
 | 
			
		||||
        )
 | 
			
		||||
        cn_verification_proxy = self._downloader.params.get('cn_verification_proxy')
 | 
			
		||||
        if cn_verification_proxy:
 | 
			
		||||
            play_json_req.add_header('Ytdl-request-proxy', cn_verification_proxy)
 | 
			
		||||
 | 
			
		||||
        play_json = self._download_json(
 | 
			
		||||
            play_json_req,
 | 
			
		||||
            media_id, 'Downloading playJson data')
 | 
			
		||||
            'http://api.le.com/mms/out/video/playJson',
 | 
			
		||||
            media_id, 'Downloading playJson data', query=params,
 | 
			
		||||
            headers=self.geo_verification_headers())
 | 
			
		||||
 | 
			
		||||
        # Check for errors
 | 
			
		||||
        playstatus = play_json['playstatus']
 | 
			
		||||
 
 | 
			
		||||
@@ -20,17 +20,12 @@ class RaiBaseIE(InfoExtractor):
 | 
			
		||||
        formats = []
 | 
			
		||||
 | 
			
		||||
        for platform in ('mon', 'flash', 'native'):
 | 
			
		||||
            headers = {}
 | 
			
		||||
            # TODO: rename --cn-verification-proxy
 | 
			
		||||
            cn_verification_proxy = self._downloader.params.get('cn_verification_proxy')
 | 
			
		||||
            if cn_verification_proxy:
 | 
			
		||||
                headers['Ytdl-request-proxy'] = cn_verification_proxy
 | 
			
		||||
 | 
			
		||||
            relinker = self._download_xml(
 | 
			
		||||
                relinker_url, video_id,
 | 
			
		||||
                note='Downloading XML metadata for platform %s' % platform,
 | 
			
		||||
                transform_source=fix_xml_ampersands,
 | 
			
		||||
                query={'output': 45, 'pl': platform}, headers=headers)
 | 
			
		||||
                query={'output': 45, 'pl': platform},
 | 
			
		||||
                headers=self.geo_verification_headers())
 | 
			
		||||
 | 
			
		||||
            media_url = find_xpath_attr(relinker, './url', 'type', 'content').text
 | 
			
		||||
            if media_url == 'http://download.rai.it/video_no_available.mp4':
 | 
			
		||||
 
 | 
			
		||||
@@ -8,10 +8,7 @@ from ..compat import (
 | 
			
		||||
    compat_str,
 | 
			
		||||
    compat_urllib_parse_urlencode,
 | 
			
		||||
)
 | 
			
		||||
from ..utils import (
 | 
			
		||||
    ExtractorError,
 | 
			
		||||
    sanitized_Request,
 | 
			
		||||
)
 | 
			
		||||
from ..utils import ExtractorError
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SohuIE(InfoExtractor):
 | 
			
		||||
@@ -96,15 +93,10 @@ class SohuIE(InfoExtractor):
 | 
			
		||||
            else:
 | 
			
		||||
                base_data_url = 'http://hot.vrs.sohu.com/vrs_flash.action?vid='
 | 
			
		||||
 | 
			
		||||
            req = sanitized_Request(base_data_url + vid_id)
 | 
			
		||||
 | 
			
		||||
            cn_verification_proxy = self._downloader.params.get('cn_verification_proxy')
 | 
			
		||||
            if cn_verification_proxy:
 | 
			
		||||
                req.add_header('Ytdl-request-proxy', cn_verification_proxy)
 | 
			
		||||
 | 
			
		||||
            return self._download_json(
 | 
			
		||||
                req, video_id,
 | 
			
		||||
                'Downloading JSON data for %s' % vid_id)
 | 
			
		||||
                base_data_url + vid_id, video_id,
 | 
			
		||||
                'Downloading JSON data for %s' % vid_id,
 | 
			
		||||
                headers=self.geo_verification_headers())
 | 
			
		||||
 | 
			
		||||
        mobj = re.match(self._VALID_URL, url)
 | 
			
		||||
        video_id = mobj.group('id')
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,6 @@ from ..compat import (
 | 
			
		||||
from ..utils import (
 | 
			
		||||
    ExtractorError,
 | 
			
		||||
    get_element_by_attribute,
 | 
			
		||||
    sanitized_Request,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -218,14 +217,10 @@ class YoukuIE(InfoExtractor):
 | 
			
		||||
            headers = {
 | 
			
		||||
                'Referer': req_url,
 | 
			
		||||
            }
 | 
			
		||||
            headers.update(self.geo_verification_headers())
 | 
			
		||||
            self._set_cookie('youku.com', 'xreferrer', 'http://www.youku.com')
 | 
			
		||||
            req = sanitized_Request(req_url, headers=headers)
 | 
			
		||||
 | 
			
		||||
            cn_verification_proxy = self._downloader.params.get('cn_verification_proxy')
 | 
			
		||||
            if cn_verification_proxy:
 | 
			
		||||
                req.add_header('Ytdl-request-proxy', cn_verification_proxy)
 | 
			
		||||
 | 
			
		||||
            raw_data = self._download_json(req, video_id, note=note)
 | 
			
		||||
            raw_data = self._download_json(req_url, video_id, note=note, headers=headers)
 | 
			
		||||
 | 
			
		||||
            return raw_data['data']
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -209,11 +209,16 @@ def parseOpts(overrideArguments=None):
 | 
			
		||||
        action='store_const', const='::', dest='source_address',
 | 
			
		||||
        help='Make all connections via IPv6 (experimental)',
 | 
			
		||||
    )
 | 
			
		||||
    network.add_option(
 | 
			
		||||
        '--geo-verification-proxy',
 | 
			
		||||
        dest='geo_verification_proxy', default=None, metavar='URL',
 | 
			
		||||
        help='Use this proxy to verify the IP address for some geo-restricted sites. '
 | 
			
		||||
        'The default proxy specified by --proxy (or none, if the options is not present) is used for the actual downloading. (experimental)'
 | 
			
		||||
    )
 | 
			
		||||
    network.add_option(
 | 
			
		||||
        '--cn-verification-proxy',
 | 
			
		||||
        dest='cn_verification_proxy', default=None, metavar='URL',
 | 
			
		||||
        help='Use this proxy to verify the IP address for some Chinese sites. '
 | 
			
		||||
        'The default proxy specified by --proxy (or none, if the options is not present) is used for the actual downloading. (experimental)'
 | 
			
		||||
        help=optparse.SUPPRESS_HELP,
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    selection = optparse.OptionGroup(parser, 'Video Selection')
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user