added weibo mobile site support
This commit is contained in:
		
							parent
							
								
									0c69958844
								
							
						
					
					
						commit
						447a5a710d
					
				| @ -1286,7 +1286,10 @@ from .webofstories import ( | |||||||
|     WebOfStoriesIE, |     WebOfStoriesIE, | ||||||
|     WebOfStoriesPlaylistIE, |     WebOfStoriesPlaylistIE, | ||||||
| ) | ) | ||||||
| from .weibo import WeiboIE | from .weibo import ( | ||||||
|  |     WeiboIE,  | ||||||
|  |     WeiboMobileIE | ||||||
|  | ) | ||||||
| from .weiqitv import WeiqiTVIE | from .weiqitv import WeiqiTVIE | ||||||
| from .wimp import WimpIE | from .wimp import WimpIE | ||||||
| from .wistia import WistiaIE | from .wistia import WistiaIE | ||||||
|  | |||||||
| @ -9,6 +9,11 @@ from urllib import parse | |||||||
| import json | import json | ||||||
| import random as rnd | import random as rnd | ||||||
| from os import path | from os import path | ||||||
|  | import re | ||||||
|  | 
 | ||||||
|  | from ..utils import ( | ||||||
|  |     js_to_json, | ||||||
|  | ) | ||||||
| 
 | 
 | ||||||
| class WeiboIE(InfoExtractor): | class WeiboIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://weibo\.com/[0-9]+/(?P<id>[a-zA-Z0-9]+)' |     _VALID_URL = r'https?://weibo\.com/[0-9]+/(?P<id>[a-zA-Z0-9]+)' | ||||||
| @ -103,3 +108,44 @@ class WeiboIE(InfoExtractor): | |||||||
|                 'formats': formats |                 'formats': formats | ||||||
|                 # TODO more properties (see youtube_dl/extractor/common.py) |                 # TODO more properties (see youtube_dl/extractor/common.py) | ||||||
|                 } |                 } | ||||||
|  | 
 | ||||||
|  | class WeiboMobileIE(InfoExtractor): | ||||||
|  |     _VALID_URL = r'https?://m.weibo.cn/status/(?P<id>[0-9]+)(\?.+)?' | ||||||
|  |     _TEST = { | ||||||
|  |             'url': 'https://m.weibo.cn/status/4189191225395228?wm=3333_2001&sourcetype=weixin&featurecode=newtitle&from=singlemessage&isappinstalled=0', | ||||||
|  |             'info_dict': { | ||||||
|  |                 'id': '4189191225395228', | ||||||
|  |                 'ext': 'mp4', | ||||||
|  |                 'title': '午睡当然是要甜甜蜜蜜的啦', | ||||||
|  |                 'uploader': '柴犬柴犬' | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |     def _real_extract(self, url): | ||||||
|  |         video_id = self._match_id(url) | ||||||
|  |         headers = { | ||||||
|  |             'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', | ||||||
|  |             'Accept-Encoding': 'gzip, deflate, br', | ||||||
|  |             'Accept-Language': 'en,zh-CN;q=0.9,zh;q=0.8', | ||||||
|  |             'Upgrade-Insecure-Requests': '1', | ||||||
|  |         } | ||||||
|  |         # to get Referer url for genvisitor | ||||||
|  |         webpage,urlh = self._download_webpage_handle(url, video_id, headers=headers, note="visit the page") | ||||||
|  |         js_code = self._search_regex(r'var\s+\$render_data\s*=\s*\[({.*})\]\[0\] \|\| {};', webpage, 'js_code', flags = re.DOTALL) | ||||||
|  |         weibo_info = self._parse_json(js_code, video_id, transform_source=js_to_json) | ||||||
|  |         page_info = weibo_info['status']['page_info'] | ||||||
|  |         title = weibo_info['status']['status_title'] | ||||||
|  |         format = { | ||||||
|  |             'url': page_info['media_info']['stream_url'], | ||||||
|  |             'format': 'mp4',  | ||||||
|  |                   } | ||||||
|  |         formats = [format] | ||||||
|  |         uploader = weibo_info['status']['user']['screen_name'] | ||||||
|  | 
 | ||||||
|  |         return { | ||||||
|  |                 'id': video_id, | ||||||
|  |                 'title': title, | ||||||
|  |                 'uploader': uploader, | ||||||
|  |                 'formats': formats | ||||||
|  |                 # TODO more properties (see youtube_dl/extractor/common.py) | ||||||
|  |                 } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user