Add support for Qianmo

http://qianmo.com/

Tested on my machine.
This commit is contained in:
cnbeining 2015-08-20 00:45:32 -04:00
parent a13daf8981
commit 89c301a7cd
4 changed files with 44 additions and 1 deletions

View File

@ -58,6 +58,7 @@ Fork me on GitHub: <https://github.com/soimort/you-get>
* NetEase (网易视频) <http://v.163.com> * NetEase (网易视频) <http://v.163.com>
* NetEase Music (网易云音乐) <http://music.163.com> * NetEase Music (网易云音乐) <http://music.163.com>
* PPTV <http://www.pptv.com> * PPTV <http://www.pptv.com>
* QianMo (阡陌视频) <http://qianmo.com/>
* QQ (腾讯视频) <http://v.qq.com> * QQ (腾讯视频) <http://v.qq.com>
* Sina (新浪视频) <http://video.sina.com.cn> * Sina (新浪视频) <http://video.sina.com.cn>
* Sohu (搜狐视频) <http://tv.sohu.com> * Sohu (搜狐视频) <http://tv.sohu.com>

View File

@ -922,7 +922,7 @@ def script_main(script_name, download, download_playlist = None):
sys.exit(1) sys.exit(1)
def url_to_module(url): 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_host = r1(r'https?://([^/]+)/', url)
video_url = r1(r'https?://[^/]+(.*)', url) video_url = r1(r'https?://[^/]+(.*)', url)
@ -974,6 +974,7 @@ def url_to_module(url):
'mtv81': mtv81, 'mtv81': mtv81,
'nicovideo': nicovideo, 'nicovideo': nicovideo,
'pptv': pptv, 'pptv': pptv,
'qianmo':qianmo,
'qq': qq, 'qq': qq,
'sina': sina, 'sina': sina,
'smgbb': bilibili, 'smgbb': bilibili,

1
src/you_get/extractors/__init__.py Normal file → Executable file
View File

@ -33,6 +33,7 @@ from .mtv81 import *
from .netease import * from .netease import *
from .nicovideo import * from .nicovideo import *
from .pptv import * from .pptv import *
from .qianmo import *
from .qq import * from .qq import *
from .sina import * from .sina import *
from .sohu import * from .sohu import *

View File

@ -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')