Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def prepare(self):
add_header("Cookie", '__ysuid=%d' % time.time())
info = VideoInfo(self.name)
if not self.vid:
self.vid = match1(self.url.split('//', 1)[1],
'^v[^\.]?\.[^/]+/v_show/id_([a-zA-Z0-9=]+)',
'^player[^/]+/(?:player\.php/sid|embed)/([a-zA-Z0-9=]+)',
'^static.+loader\.swf\?VideoIDS=([a-zA-Z0-9=]+)',
'^(?:new-play|video)\.tudou\.com/v/([a-zA-Z0-9=]+)')
if not self.vid:
html = get_content(self.url)
self.vid = match1(html, r'videoIds?[\"\']?\s*[:=]\s*[\"\']?([a-zA-Z0-9=]+)')
if self.vid.isdigit():
import base64
def prepare(self):
info = VideoInfo(self.name)
pid = match1(self.url, 'show/(.*)')
if 'vmobile' in self.url:
self.url = 'https://v.douyu.com/show/' + pid
html = get_content(self.url)
info.title = match1(html, u'title>(.+?)_斗鱼视频 - 最6的弹幕视频网站<')
self.vid = match1(html, '"point_id":\s?(\d+)')
js_enc = get_h5enc(html, self.vid)
params = {'vid': pid}
ub98484234(js_enc, self, params)
add_header("Referer", self.url)
add_header('Cookie', 'dy_did={}'.format(params['did']))
data = urlencode(params)
if not isinstance(data, bytes):
data = data.encode()
html_content = get_content('https://v.douyu.com/api/stream/getStreamUrl', data=data)
self.logger.debug('video_data: ' + html_content)
video_data = json.loads(html_content)
assert video_data['error'] == 0, video_data
for video_profile, stream_date in video_data['data']['thumb_video'].items():
if not stream_date:
continue
stream = self.profile_2_id[video_profile]
info.stream_types.append(stream)
info.streams[stream] = {
def prepare(self):
info = VideoInfo(self.name, True)
add_header("Referer", 'https://www.douyu.com')
html = get_content(self.url)
self.vid = match1(html, '\$ROOM\.room_id\s*=\s*(\d+)',
'room_id\s*=\s*(\d+)',
'"room_id.?":(\d+)',
'data-onlineid=(\d+)')
title = match1(html, 'Title-headlineH2">([^<]+)<')
artist = match1(html, 'Title-anchorName" title="([^"]+)"')
if not title or not artist:
html = get_content('https://open.douyucdn.cn/api/RoomApi/room/' + self.vid)
room_data = json.loads(html)
if room_data['error'] == 0:
room_data = room_data['data']
title = room_data['room_name']
artist = room_data['owner_name']
def prepare(self):
info = VideoInfo(self.name)
pid = match1(self.url, 'show/(.*)')
if 'vmobile' in self.url:
self.url = 'https://v.douyu.com/show/' + pid
html = get_content(self.url)
info.title = match1(html, u'title>(.+?)_斗鱼视频 - 最6的弹幕视频网站<')
self.vid = match1(html, '"point_id":\s?(\d+)')
js_enc = get_h5enc(html, self.vid)
params = {'vid': pid}
ub98484234(js_enc, self, params)
add_header("Referer", self.url)
add_header('Cookie', 'dy_did={}'.format(params['did']))
data = urlencode(params)
if not isinstance(data, bytes):
data = data.encode()
html_content = get_content('https://v.douyu.com/api/stream/getStreamUrl', data=data)
self.logger.debug('video_data: ' + html_content)
video_data = json.loads(html_content)
assert video_data['error'] == 0, video_data
for video_profile, stream_date in video_data['data']['thumb_video'].items():
if not stream_date:
continue
stream = self.profile_2_id[video_profile]
info.stream_types.append(stream)
'k_uid': get_macid(24),
'qdx': 'n',
'qdv': 3,
'qd_v': 1,
'dfp': get_random_str(66),
'v': 1,
'k_err_retries': 0,
'tm': int(tm + 1),
}
src = '/live?{}'.format(urlencode(params))
vf = cmd5x(src)
req_url = '{}{}&vf={}'.format(host, src, vf)
st = int(tm * 1000)
et = int((tm + 1296000) * 1000)
c_dfp = '__dfp={}@{}@{}'.format(params['dfp'], et, st)
add_header('Cookie', c_dfp)
html = get_content(req_url)
return json.loads(html)
from . import live as s
return s.site, url
elif 'vc.bilibili' in url:
from . import vc as s
return s.site, url
elif '/bangumi/' in url:
from . import bangumi as s
return s.site, url
av_id = match1(url, '(?:/av|aid=)(\d+)')
page_index = match1(url, '(?:page|\?p)=(\d+)', 'index_(\d+)\.') or '1'
if page_index == '1':
url = 'https://www.bilibili.com/av{}/'.format(av_id)
else:
url = 'https://www.bilibili.com/av{}/?p={}'.format(av_id, page_index)
add_header('Referer', 'https://www.bilibili.com/')
url = get_location(url)
if '/bangumi/' in url:
from . import bangumi as s
else:
from . import video as s
return s.site, url
def prepare(self):
add_default_handler(HTTPCookieProcessor)
install_default_handlers()
add_header('Referer', self.url)
add_header('User-Agent', ua)
info = VideoInfo(self.name)
if self.url and not self.vid:
self.vid = match1(self.url, 'https?://www.mgtv.com/b/\d+/(\d+).html')
if self.vid is None:
html = get_content(self.url)
self.vid = match1(html, 'vid=(\d+)', 'vid=\"(\d+)', 'vid: (\d+)')
did = str(uuid.uuid4())
tk2 = generate_tk2(did)
api_info_url = 'https://pcweb.api.mgtv.com/player/video?tk2={}&video_id={}&type=pch5'.format(tk2, self.vid)
meta = json.loads(get_content(api_info_url))
assert meta['code'] == 200, '[failed] code: {}, msg: {}'.format(meta['code'], meta['msg'])
assert meta['data'], '[Failed] Video info not found.'
def __init__(self):
SimpleExtractor.__init__(self)
add_header('User-Agent', 'Baiduspider')
def prepare(self):
add_default_handler(HTTPCookieProcessor)
install_default_handlers()
add_header('Referer', self.url)
add_header('User-Agent', ua)
info = VideoInfo(self.name)
if self.url and not self.vid:
self.vid = match1(self.url, 'https?://www.mgtv.com/b/\d+/(\d+).html')
if self.vid is None:
html = get_content(self.url)
self.vid = match1(html, 'vid=(\d+)', 'vid=\"(\d+)', 'vid: (\d+)')
did = str(uuid.uuid4())
tk2 = generate_tk2(did)
api_info_url = 'https://pcweb.api.mgtv.com/player/video?tk2={}&video_id={}&type=pch5'.format(tk2, self.vid)
meta = json.loads(get_content(api_info_url))
assert meta['code'] == 200, '[failed] code: {}, msg: {}'.format(meta['code'], meta['msg'])