From 22114e17213a6a1e84ab0fb94dfe17e762280f22 Mon Sep 17 00:00:00 2001 From: Mort Yao Date: Sat, 1 Dec 2012 16:14:04 +0100 Subject: [PATCH] add support for V.QQ.com, fix #31 --- you_get/downloader/__init__.py | 1 + you_get/downloader/acfun.py | 10 +--------- you_get/downloader/qq.py | 35 ++++++++++++++++++++++++++++++++++ you_get/main.py | 1 + 4 files changed, 38 insertions(+), 9 deletions(-) create mode 100644 you_get/downloader/qq.py diff --git a/you_get/downloader/__init__.py b/you_get/downloader/__init__.py index 2f10057f..e656dc12 100644 --- a/you_get/downloader/__init__.py +++ b/you_get/downloader/__init__.py @@ -9,6 +9,7 @@ from .ifeng import * from .iqiyi import * from .ku6 import * from .pptv import * +from .qq import * from .sina import * from .sohu import * from .tudou import * diff --git a/you_get/downloader/acfun.py b/you_get/downloader/acfun.py index 975deb18..79eb1b4c 100644 --- a/you_get/downloader/acfun.py +++ b/you_get/downloader/acfun.py @@ -4,6 +4,7 @@ __all__ = ['acfun_download'] from ..common import * +from .qq import qq_download_by_id from .sina import sina_download_by_id from .tudou import tudou_download_by_iid from .youku import youku_download_by_id @@ -14,15 +15,6 @@ def get_srt_json(id): url = 'http://comment.acfun.tv/%s.json' % id return get_html(url) -def qq_download_by_id(id, title = None, output_dir = '.', merge = True, info_only = False): - url = 'http://vsrc.store.qq.com/%s.flv' % id - assert title - _, _, size = url_info(url) - - print_info(site_info, title, 'flv', size) - if not info_only: - download_urls([url], title, 'flv', size, output_dir = output_dir, merge = merge) - def acfun_download_by_id(id, title = None, output_dir = '.', merge = True, info_only = False): info = json.loads(get_html('http://www.acfun.tv/api/getVideoByID.aspx?vid=' + id)) t = info['vtype'] diff --git a/you_get/downloader/qq.py b/you_get/downloader/qq.py new file mode 100644 index 00000000..6fa5499f --- /dev/null +++ b/you_get/downloader/qq.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python + +__all__ = ['qq_download'] + +from ..common import * + +def qq_download_by_id(id, title = None, output_dir = '.', merge = True, info_only = False): + url = 'http://vsrc.store.qq.com/%s.flv' % id + + _, _, size = url_info(url) + + print_info(site_info, title, 'flv', size) + if not info_only: + download_urls([url], title, 'flv', size, output_dir = output_dir, merge = merge) + +def qq_download(url, output_dir = '.', merge = True, info_only = False): + if re.match(r'http://v.qq.com/([^\?]+)\?vid', url): + aid = r1(r'(.*)\.html', url) + vid = r1(r'http://v.qq.com/[^\?]+\?vid=(\w+)', url) + url = aid + "/" + vid + ".html" + + html = get_html(url) + + title = r1(r'title:"([^"]+)"', html) + assert title + title = unescape_html(title) + title = escape_file_path(title) + + id = r1(r'vid:"([^"]+)"', html) + + qq_download_by_id(id, title, output_dir = output_dir, merge = merge, info_only = info_only) + +site_info = "V.QQ.com" +download = qq_download +download_playlist = playlist_not_supported('qq') diff --git a/you_get/main.py b/you_get/main.py index 409cdf6a..39ae2418 100644 --- a/you_get/main.py +++ b/you_get/main.py @@ -30,6 +30,7 @@ def url_to_module(url): 'kankanews': bilibili, 'ku6': ku6, 'pptv': pptv, + 'qq': qq, 'sina': sina, 'sohu': sohu, 'tudou': tudou,