diff --git a/src/you_get/common.py b/src/you_get/common.py index 9c732693..a8bda396 100755 --- a/src/you_get/common.py +++ b/src/you_get/common.py @@ -15,7 +15,7 @@ SITES = { 'dilidili' : 'dilidili', 'dongting' : 'dongting', 'douban' : 'douban', - 'douyutv' : 'douyutv', + 'douyu' : 'douyutv', 'ehow' : 'ehow', 'facebook' : 'facebook', 'fc2' : 'fc2video', diff --git a/src/you_get/extractors/bilibili.py b/src/you_get/extractors/bilibili.py index cd918602..1a6ca325 100644 --- a/src/you_get/extractors/bilibili.py +++ b/src/you_get/extractors/bilibili.py @@ -127,7 +127,8 @@ def bilibili_download(url, output_dir='.', merge=True, info_only=False, **kwargs if re.match(r'https?://live\.bilibili\.com/', url): title = r1(r'([^<>]+)', html) bilibili_live_download_by_cid(cid, title, output_dir=output_dir, merge=merge, info_only=info_only) - elif 'playlist' in kwargs and kwargs['playlist']: + + else: # multi-P cids = [] pages = re.findall('', html) or title] + for i in range(len(cids)): bilibili_download_by_cid(cids[i], titles[i], output_dir=output_dir, merge=merge, info_only=info_only) - else: - title = r1(r'', html) or title - bilibili_download_by_cid(cid, title, output_dir=output_dir, merge=merge, info_only=info_only) elif t == 'vid': sina_download_by_vid(cid, title=title, output_dir=output_dir, merge=merge, info_only=info_only) @@ -169,14 +173,6 @@ def bilibili_download(url, output_dir='.', merge=True, info_only=False, **kwargs with open(os.path.join(output_dir, title + '.cmt.xml'), 'w', encoding='utf-8') as x: x.write(xml) -def bilibili_download_playlist(url, output_dir='.', merge=True, info_only=False, **kwargs): - bilibili_download(url, - output_dir=output_dir, - merge=merge, - info_only=info_only, - playlist=True, - **kwargs) - site_info = "bilibili.com" download = bilibili_download -download_playlist = bilibili_download_playlist +download_playlist = bilibili_download diff --git a/src/you_get/extractors/douyutv.py b/src/you_get/extractors/douyutv.py index 023a7249..449022ca 100644 --- a/src/you_get/extractors/douyutv.py +++ b/src/you_get/extractors/douyutv.py @@ -12,7 +12,7 @@ def douyutv_download(url, output_dir = '.', merge = True, info_only = False, **k #Thanks to @yan12125 for providing decoding method!! suffix = 'room/%s?aid=android&client_sys=android&time=%d' % (room_id, int(time.time())) sign = hashlib.md5((suffix + '1231').encode('ascii')).hexdigest() - json_request_url = "http://www.douyutv.com/api/v1/%s&auth=%s" % (suffix, sign) + json_request_url = "http://www.douyu.com/api/v1/%s&auth=%s" % (suffix, sign) content = get_html(json_request_url) data = json.loads(content)['data'] server_status = data.get('error',0) @@ -28,6 +28,6 @@ def douyutv_download(url, output_dir = '.', merge = True, info_only = False, **k if not info_only: download_urls([real_url], title, 'flv', None, output_dir, merge = merge) -site_info = "douyutv.com" +site_info = "douyu.com" download = douyutv_download -download_playlist = playlist_not_supported('douyutv') +download_playlist = playlist_not_supported('douyu') diff --git a/src/you_get/extractors/embed.py b/src/you_get/extractors/embed.py index b594b9f4..fd463c92 100644 --- a/src/you_get/extractors/embed.py +++ b/src/you_get/extractors/embed.py @@ -4,6 +4,7 @@ from ..common import * from .iqiyi import iqiyi_download_by_vid from .le import letvcloud_download_by_vu +from .netease import netease_download from .qq import qq_download_by_vid from .sina import sina_download_by_vid from .tudou import tudou_download_by_id @@ -36,10 +37,13 @@ yinyuetai_embed_patterns = [ 'player\.yinyuetai\.com/video/swf/(\d+)' ] iqiyi_embed_patterns = [ 'player\.video\.qiyi\.com/([^/]+)/[^/]+/[^/]+/[^/]+\.swf[^"]+tvId=(\d+)' ] +netease_embed_patterns = [ '(http://\w+\.163\.com/movie/[^\'"]+)' ] + def embed_download(url, output_dir = '.', merge = True, info_only = False ,**kwargs): - content = get_content(url) + content = get_content(url, headers=fake_headers) found = False title = match1(content, '([^<>]+)') + vids = matchall(content, youku_embed_patterns) for vid in set(vids): found = True @@ -60,6 +64,11 @@ def embed_download(url, output_dir = '.', merge = True, info_only = False ,**kwa found = True iqiyi_download_by_vid((vid[1], vid[0]), title=title, output_dir=output_dir, merge=merge, info_only=info_only) + urls = matchall(content, netease_embed_patterns) + for url in urls: + found = True + netease_download(url, title=title, output_dir=output_dir, merge=merge, info_only=info_only) + if not found: raise NotImplementedError(url) diff --git a/src/you_get/processor/ffmpeg.py b/src/you_get/processor/ffmpeg.py index e4ea1223..320eb642 100644 --- a/src/you_get/processor/ffmpeg.py +++ b/src/you_get/processor/ffmpeg.py @@ -58,7 +58,7 @@ def ffmpeg_concat_mp4_to_mpg(files, output='output.mpg'): concat_list.close() params = [FFMPEG] + LOGLEVEL - params.extend(['-f', 'concat', '-y', '-i']) + params.extend(['-f', 'concat', '-safe', '-1', '-y', '-i']) params.append(output + '.txt') params += ['-c', 'copy', output] @@ -122,7 +122,7 @@ def ffmpeg_concat_flv_to_mp4(files, output='output.mp4'): concat_list.write("file %s\n" % parameterize(file)) concat_list.close() - params = [FFMPEG] + LOGLEVEL + ['-f', 'concat', '-y', '-i'] + params = [FFMPEG] + LOGLEVEL + ['-f', 'concat', '-safe', '-1', '-y', '-i'] params.append(output + '.txt') params += ['-c', 'copy', output] @@ -167,7 +167,7 @@ def ffmpeg_concat_mp4_to_mp4(files, output='output.mp4'): concat_list.write("file %s\n" % parameterize(file)) concat_list.close() - params = [FFMPEG] + LOGLEVEL + ['-f', 'concat', '-y', '-i'] + params = [FFMPEG] + LOGLEVEL + ['-f', 'concat', '-safe', '-1', '-y', '-i'] params.append(output + '.txt') params += ['-c', 'copy', output]