mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[utils] Introduce base_url
This commit is contained in:
		| @@ -69,6 +69,7 @@ from youtube_dl.utils import ( | ||||
|     uppercase_escape, | ||||
|     lowercase_escape, | ||||
|     url_basename, | ||||
|     base_url, | ||||
|     urlencode_postdata, | ||||
|     urshift, | ||||
|     update_url_query, | ||||
| @@ -437,6 +438,13 @@ class TestUtil(unittest.TestCase): | ||||
|             url_basename('http://media.w3.org/2010/05/sintel/trailer.mp4'), | ||||
|             'trailer.mp4') | ||||
|  | ||||
|     def test_base_url(self): | ||||
|         self.assertEqual(base_url('http://foo.de/'), 'http://foo.de/') | ||||
|         self.assertEqual(base_url('http://foo.de/bar'), 'http://foo.de/') | ||||
|         self.assertEqual(base_url('http://foo.de/bar/'), 'http://foo.de/bar/') | ||||
|         self.assertEqual(base_url('http://foo.de/bar/baz'), 'http://foo.de/bar/') | ||||
|         self.assertEqual(base_url('http://foo.de/bar/baz?x=z/x/c'), 'http://foo.de/bar/') | ||||
|  | ||||
|     def test_parse_age_limit(self): | ||||
|         self.assertEqual(parse_age_limit(None), None) | ||||
|         self.assertEqual(parse_age_limit(False), None) | ||||
|   | ||||
| @@ -30,6 +30,7 @@ from ..downloader.f4m import remove_encrypted_media | ||||
| from ..utils import ( | ||||
|     NO_DEFAULT, | ||||
|     age_restricted, | ||||
|     base_url, | ||||
|     bug_reports_message, | ||||
|     clean_html, | ||||
|     compiled_regex_type, | ||||
| @@ -1539,7 +1540,7 @@ class InfoExtractor(object): | ||||
|         if res is False: | ||||
|             return [] | ||||
|         mpd, urlh = res | ||||
|         mpd_base_url = re.match(r'https?://[^?#&]+/', urlh.geturl()).group() | ||||
|         mpd_base_url = base_url(urlh.geturl()) | ||||
|  | ||||
|         return self._parse_mpd_formats( | ||||
|             compat_etree_fromstring(mpd.encode('utf-8')), mpd_id, mpd_base_url, | ||||
| @@ -1797,7 +1798,7 @@ class InfoExtractor(object): | ||||
|         if ism_doc.get('IsLive') == 'TRUE' or ism_doc.find('Protection') is not None: | ||||
|             return [] | ||||
|  | ||||
|         ism_base_url = re.match(r'https?://.+/', ism_url).group() | ||||
|         ism_base_url = base_url(ism_url) | ||||
|  | ||||
|         duration = int(ism_doc.attrib['Duration']) | ||||
|         timescale = int_or_none(ism_doc.get('TimeScale')) or 10000000 | ||||
|   | ||||
| @@ -1691,6 +1691,10 @@ def url_basename(url): | ||||
|     return path.strip('/').split('/')[-1] | ||||
|  | ||||
|  | ||||
| def base_url(url): | ||||
|     return re.match(r'https?://[^?#&]+/', url).group() | ||||
|  | ||||
|  | ||||
| class HEADRequest(compat_urllib_request.Request): | ||||
|     def get_method(self): | ||||
|         return 'HEAD' | ||||
|   | ||||
		Reference in New Issue
	
	Block a user