diff --git a/README.md b/README.md index 46bf5fd0..cb3550d1 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,7 @@ Fork me on GitHub: * DouyuTV (斗鱼) * eHow * Facebook +* Fun.tv (风行, Funshion) * Google Drive * ifeng (凤凰视频) * iQIYI (爱奇艺) @@ -61,6 +62,7 @@ Fork me on GitHub: * QianMo (阡陌视频) * QQ (腾讯视频) * Sina (新浪视频) +* Weibo Miaopai (新浪微博秒拍视频) * Sohu (搜狐视频) * SongTaste * SoundCloud diff --git a/src/you_get/common.py b/src/you_get/common.py index ed305518..36be1999 100755 --- a/src/you_get/common.py +++ b/src/you_get/common.py @@ -79,6 +79,24 @@ def match1(text, *patterns): ret.append(match.group(1)) return ret +def matchall(text, patterns): + """Scans through a string for substrings matched some patterns. + + Args: + text: A string to be scanned. + patterns: a list of regex pattern. + + Returns: + a list if matched. empty if not. + """ + + ret = [] + for pattern in patterns: + match = re.findall(pattern, text) + ret += match + + return ret + def launch_player(player, urls): import subprocess import shlex @@ -922,7 +940,7 @@ def script_main(script_name, download, download_playlist = None): sys.exit(1) def url_to_module(url): - from .extractors import netease, w56, acfun, baidu, baomihua, bilibili, blip, catfun, cntv, cbs, coursera, dailymotion, dongting, douban, douyutv, ehow, facebook, freesound, google, sina, ifeng, alive, instagram, iqiyi, joy, jpopsuki, khan, ku6, kugou, kuwo, letv, lizhi, magisto, miomio, mixcloud, mtv81, nicovideo, pptv, qianmo, qq, sohu, songtaste, soundcloud, ted, theplatform, tudou, tucao, tumblr, twitter, vid48, videobam, vidto, vimeo, vine, vk, xiami, yinyuetai, youku, youtube, zhanqi + from .extractors import netease, w56, acfun, baidu, baomihua, bilibili, blip, catfun, cntv, cbs, coursera, dailymotion, dongting, douban, douyutv, ehow, facebook, freesound, funshion, google, sina, ifeng, alive, instagram, iqiyi, joy, jpopsuki, khan, ku6, kugou, kuwo, letv, lizhi, magisto, miaopai, miomio, mixcloud, mtv81, nicovideo, pptv, qianmo, qq, sohu, songtaste, soundcloud, ted, theplatform, tudou, tucao, tumblr, twitter, vid48, videobam, vidto, vimeo, vine, vk, xiami, yinyuetai, youku, youtube, zhanqi video_host = r1(r'https?://([^/]+)/', url) video_url = r1(r'https?://[^/]+(.*)', url) @@ -953,6 +971,7 @@ def url_to_module(url): 'ehow': ehow, 'facebook': facebook, 'freesound': freesound, + 'fun': funshion, 'google': google, 'iask': sina, 'ifeng': ifeng, @@ -991,6 +1010,7 @@ def url_to_module(url): 'videobam': videobam, 'vidto': vidto, 'vimeo': vimeo, + 'weibo': miaopai, 'vine': vine, 'vk': vk, 'xiami': xiami, @@ -1009,7 +1029,8 @@ def url_to_module(url): res = conn.getresponse() location = res.getheader('location') if location is None: - raise NotImplementedError(url) + from .extractors import embed + return embed, url else: return url_to_module(location) diff --git a/src/you_get/extractors/__init__.py b/src/you_get/extractors/__init__.py index 5abc0d8c..198bc55b 100755 --- a/src/you_get/extractors/__init__.py +++ b/src/you_get/extractors/__init__.py @@ -15,6 +15,7 @@ from .douyutv import * from .ehow import * from .facebook import * from .freesound import * +from .funshion import * from .google import * from .ifeng import * from .instagram import * @@ -27,6 +28,7 @@ from .kuwo import * from .letv import * from .lizhi import * from .magisto import * +from .miaopai import * from .miomio import * from .mixcloud import * from .mtv81 import * diff --git a/src/you_get/extractors/bilibili.py b/src/you_get/extractors/bilibili.py index b4ea8035..0311bde5 100644 --- a/src/you_get/extractors/bilibili.py +++ b/src/you_get/extractors/bilibili.py @@ -121,7 +121,7 @@ def bilibili_download(url, output_dir='.', merge=True, info_only=False): id = id.split('&')[0] if t == 'cid': # Multi-P - cids = [id] + cids = [] p = re.findall('