diff --git a/README.md b/README.md index 0e4fa5ad..46bf5fd0 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ Fork me on GitHub: * NetEase (网易视频) * NetEase Music (网易云音乐) * PPTV +* QianMo (阡陌视频) * QQ (腾讯视频) * Sina (新浪视频) * Sohu (搜狐视频) diff --git a/src/you_get/common.py b/src/you_get/common.py index 3cb72805..ed305518 100755 --- a/src/you_get/common.py +++ b/src/you_get/common.py @@ -922,7 +922,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, 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, 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 video_host = r1(r'https?://([^/]+)/', url) video_url = r1(r'https?://[^/]+(.*)', url) @@ -974,6 +974,7 @@ def url_to_module(url): 'mtv81': mtv81, 'nicovideo': nicovideo, 'pptv': pptv, + 'qianmo':qianmo, 'qq': qq, 'sina': sina, 'smgbb': bilibili, diff --git a/src/you_get/extractors/__init__.py b/src/you_get/extractors/__init__.py old mode 100644 new mode 100755 index 9dcfdb30..5abc0d8c --- a/src/you_get/extractors/__init__.py +++ b/src/you_get/extractors/__init__.py @@ -33,6 +33,7 @@ from .mtv81 import * from .netease import * from .nicovideo import * from .pptv import * +from .qianmo import * from .qq import * from .sina import * from .sohu import * diff --git a/src/you_get/extractors/qianmo.py b/src/you_get/extractors/qianmo.py new file mode 100644 index 00000000..cec8a14a --- /dev/null +++ b/src/you_get/extractors/qianmo.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python + +__all__ = ['qianmo_download'] + +from ..common import * +import urllib.error +import json + +def qianmo_download(url, output_dir = '.', merge = False, info_only = False): + if re.match(r'http://qianmo.com/\w+', url): + html = get_html(url) + match = re.search(r'(.+?)var video =(.+?);', html) + + if match: + video_info_json = json.loads(match.group(2)) + title = video_info_json['title'] + ext_video_id = video_info_json['ext_video_id'] + + html = get_content('http://v.qianmo.com/player/{ext_video_id}'.format(ext_video_id = ext_video_id)) + c = json.loads(html) + url_list = [] + for i in c['seg']: #Cannot do list comprehensions + for a in c['seg'][i]: + for b in a['url']: + url_list.append(b[0]) + + type_ = '' + size = 0 + for url in url_list: + _, type_, temp = url_info(url) + size += temp + + type, ext, size = url_info(url) + print_info(site_info, title, type_, size) + if not info_only: + download_urls(url_list, title, type_, total_size=None, output_dir=output_dir, merge=merge) + +site_info = "qianmo" +download = qianmo_download +download_playlist = playlist_not_supported('qianmo') \ No newline at end of file