mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[laola1] add support for another extraction scenario(closes #11460)
This commit is contained in:
		| @@ -9,18 +9,41 @@ from ..utils import ( | ||||
|     xpath_element, | ||||
|     xpath_text, | ||||
|     urljoin, | ||||
|     update_url_query, | ||||
| ) | ||||
|  | ||||
|  | ||||
| class Laola1TvEmbedIE(InfoExtractor): | ||||
|     IE_NAME = 'laola1tv:embed' | ||||
|     _VALID_URL = r'https?://(?:www\.)?laola1\.tv/titanplayer\.php\?.*?\bvideoid=(?P<id>\d+)' | ||||
|     _TEST = { | ||||
|         # flashvars.premium = "false"; | ||||
|         'url': 'https://www.laola1.tv/titanplayer.php?videoid=708065&type=V&lang=en&portal=int&customer=1024', | ||||
|         'info_dict': { | ||||
|             'id': '708065', | ||||
|             'ext': 'mp4', | ||||
|             'title': 'MA Long CHN - FAN Zhendong CHN', | ||||
|             'uploader': 'ITTF - International Table Tennis Federation', | ||||
|             'upload_date': '20161211', | ||||
|         }, | ||||
|     } | ||||
|  | ||||
|     def _real_extract(self, url): | ||||
|         video_id = self._match_id(url) | ||||
|         webpage = self._download_webpage(url, video_id) | ||||
|         flash_vars = self._search_regex( | ||||
|             r'(?s)flashvars\s*=\s*({.+?});', webpage, 'flash vars') | ||||
|         get_flashvar = lambda x: self._search_regex(r'%s\s*:\s*"([^"]+)"' % x, flash_vars, x) | ||||
|  | ||||
|         def get_flashvar(x, *args, **kwargs): | ||||
|             flash_var = self._search_regex( | ||||
|                 r'%s\s*:\s*"([^"]+)"' % x, | ||||
|                 flash_vars, x, default=None) | ||||
|             if not flash_var: | ||||
|                 flash_var = self._search_regex([ | ||||
|                     r'flashvars\.%s\s*=\s*"([^"]+)"' % x, | ||||
|                     r'%s\s*=\s*"([^"]+)"' % x], | ||||
|                     webpage, x, *args, **kwargs) | ||||
|             return flash_var | ||||
|  | ||||
|         hd_doc = self._download_xml( | ||||
|             'http://www.laola1.tv/server/hd_video.php', video_id, query={ | ||||
| @@ -34,16 +57,26 @@ class Laola1TvEmbedIE(InfoExtractor): | ||||
|         _v = lambda x, **k: xpath_text(hd_doc, './/video/' + x, **k) | ||||
|         title = _v('title', fatal=True) | ||||
|  | ||||
|         data_abo = urlencode_postdata( | ||||
|             dict((i, v) for i, v in enumerate(_v('req_liga_abos').split(',')))) | ||||
|         token_url = self._download_json( | ||||
|             'https://club.laola1.tv/sp/laola1/api/v3/user/session/premium/player/stream-access', | ||||
|             video_id, query={ | ||||
|                 'videoId': _v('id'), | ||||
|                 'target': self._search_regex(r'vs_target = (\d+);', webpage, 'vs target'), | ||||
|                 'label': _v('label'), | ||||
|                 'area': _v('area'), | ||||
|             }, data=data_abo)['data']['stream-access'][0] | ||||
|         token_url = None | ||||
|         premium = get_flashvar('premium', default=None) | ||||
|         if premium: | ||||
|             token_url = update_url_query( | ||||
|                 _v('url', fatal=True), { | ||||
|                     'timestamp': get_flashvar('timestamp'), | ||||
|                     'auth': get_flashvar('auth'), | ||||
|                 }) | ||||
|         else: | ||||
|             data_abo = urlencode_postdata( | ||||
|                 dict((i, v) for i, v in enumerate(_v('req_liga_abos').split(',')))) | ||||
|             token_url = self._download_json( | ||||
|                 'https://club.laola1.tv/sp/laola1/api/v3/user/session/premium/player/stream-access', | ||||
|                 video_id, query={ | ||||
|                     'videoId': _v('id'), | ||||
|                     'target': self._search_regex(r'vs_target = (\d+);', webpage, 'vs target'), | ||||
|                     'label': _v('label'), | ||||
|                     'area': _v('area'), | ||||
|                 }, data=data_abo)['data']['stream-access'][0] | ||||
|  | ||||
|         token_doc = self._download_xml( | ||||
|             token_url, video_id, 'Downloading token', | ||||
|             headers=self.geo_verification_headers()) | ||||
| @@ -75,6 +108,7 @@ class Laola1TvEmbedIE(InfoExtractor): | ||||
|  | ||||
|  | ||||
| class Laola1TvIE(InfoExtractor): | ||||
|     IE_NAME = 'laola1tv' | ||||
|     _VALID_URL = r'https?://(?:www\.)?laola1\.tv/[a-z]+-[a-z]+/[^/]+/(?P<id>[^/?#&]+)' | ||||
|     _TESTS = [{ | ||||
|         'url': 'http://www.laola1.tv/de-de/video/straubing-tigers-koelner-haie/227883.html', | ||||
|   | ||||
		Reference in New Issue
	
	Block a user