'Extracts URL information and returns it in list of dicts.'

def extract(self, url):

    try:
        for _ in range(2):
            try:
                self.initialize()
                ie_result = self._real_extract(url)
                if self._x_forwarded_for_ip:
                    ie_result[u'__x_forwarded_for_ip'] = self._x_forwarded_for_ip
                return ie_result
            except GeoRestrictedError as e:
                if self.__maybe_fake_ip_and_retry(e.countries):
                    continue
                raise
    except ExtractorError:
        raise
    except compat_http_client.IncompleteRead as e:
        raise ExtractorError(u'A    network    error    has    occurred.', cause=e, expected=True)
    except (KeyError, StopIteration) as e:
        raise ExtractorError(u'An    extractor    error    has    occurred.', cause=e)
