提交 b44f83e9 编写于 作者: M Mort Yao

update acfun.py & bilibili.py to reflect the merge of #320

上级 364bea06
......@@ -36,7 +36,7 @@ def acfun_download_by_vid(vid, title=None, output_dir='.', merge=True, info_only
raise NotImplementedError(t)
if not info_only:
title = legitimize(title)
title = get_filename(title)
try:
print('Downloading %s ...' % (title + '.cmt.json'))
cmt = get_srt_json(danmakuId)
......
......@@ -19,7 +19,7 @@ def parse_srt_p(p):
assert len(fields) == 8, fields
time, mode, font_size, font_color, pub_time, pool, user_id, history = fields
time = float(time)
mode = int(mode)
assert 1 <= mode <= 8
# mode 1~3: scrolling
......@@ -28,17 +28,17 @@ def parse_srt_p(p):
# mode 6: reverse?
# mode 7: position
# mode 8: advanced
pool = int(pool)
assert 0 <= pool <= 2
# pool 0: normal
# pool 1: srt
# pool 2: special?
font_size = int(font_size)
font_color = '#%06x' % int(font_color)
return pool, mode, font_size, font_color
def parse_srt_xml(xml):
......@@ -56,7 +56,7 @@ def parse_cid_playurl(xml):
def bilibili_download_by_cid(id, title, output_dir = '.', merge = True, info_only = False):
url = 'http://interface.bilibili.tv/playurl?cid=' + id
urls = [i if not re.match(r'.*\.qqvideo\.tc\.qq\.com', i) else re.sub(r'.*\.qqvideo\.tc\.qq\.com', 'http://vsrc.store.qq.com', i) for i in parse_cid_playurl(get_html(url, 'utf-8'))] # dirty fix for QQ
if re.search(r'\.(flv|hlv)\b', urls[0]):
type = 'flv'
elif re.search(r'/flv/', urls[0]):
......@@ -65,12 +65,12 @@ def bilibili_download_by_cid(id, title, output_dir = '.', merge = True, info_onl
type = 'mp4'
else:
type = 'flv'
size = 0
for url in urls:
_, _, temp = url_info(url)
size += temp
print_info(site_info, title, type, size)
if not info_only:
download_urls(urls, title, type, total_size = None, output_dir = output_dir, merge = merge)
......@@ -78,11 +78,11 @@ def bilibili_download_by_cid(id, title, output_dir = '.', merge = True, info_onl
def bilibili_download(url, output_dir = '.', merge = True, info_only = False):
assert re.match(r'http://(www.bilibili.tv|bilibili.kankanews.com|bilibili.smgbb.cn)/video/av(\d+)', url)
html = get_html(url)
title = r1(r'<h2[^>]*>([^<>]+)</h2>', html)
title = unescape_html(title)
title = escape_file_path(title)
flashvars = r1_of([r'player_params=\'(cid=\d+)', r'flashvars="([^"]+)"', r'"https://[a-z]+\.bilibili\.tv/secure,(cid=\d+)(?:&aid=\d+)?"'], html)
assert flashvars
t, id = flashvars.split('=', 1)
......@@ -97,9 +97,9 @@ def bilibili_download(url, output_dir = '.', merge = True, info_only = False):
tudou_download_by_id(id, title, output_dir = output_dir, merge = merge, info_only = info_only)
else:
raise NotImplementedError(flashvars)
if not info_only:
title = legitimize(title)
title = get_filename(title)
print('Downloading %s ...' % (title + '.cmt.xml'))
xml = get_srt_xml(id)
with open(os.path.join(output_dir, title + '.cmt.xml'), 'w', encoding='utf-8') as x:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册