def urlopen(self, req):
        """ Start an HTTP download """

        # According to RFC 3986, URLs can not contain non-ASCII characters, however this is not
        # always respected by websites, some tend to give out URLs with non percent-encoded
        # non-ASCII characters (see telemb.py, ard.py [#3412])
        # urllib chokes on URLs with non-ASCII characters (see http://bugs.python.org/issue3991)
        # To work around aforementioned issue we will replace request's original URL with
        # percent-encoded one
        req_is_string = isinstance(req, basestring if sys.version_info < (3, 0) else compat_str)
        url = req if req_is_string else req.get_full_url()
        url_escaped = escape_url(url)

        # Substitute URL if any change after escaping
        if url != url_escaped:
            if req_is_string:
                req = url_escaped
            else:
                req = compat_urllib_request.Request(
                    url_escaped, data=req.data, headers=req.headers,
                    origin_req_host=req.origin_req_host, unverifiable=req.unverifiable)

        return self._opener.open(req, timeout=self._socket_timeout)
dataset/ETHPy150Open yasoob/youtube-dl-GUI/youtube_dl/YoutubeDL.py/YoutubeDL.urlopen/original