From b75bfca14921a625be95ff2c50cf9fbed63b86ca Mon Sep 17 00:00:00 2001 From: Mort Yao Date: Sat, 1 Sep 2012 21:03:05 +0200 Subject: [PATCH] add support for Sina --- you_get/downloader/__init__.py | 1 + you_get/downloader/sina.py | 35 ++++++++++++++++++++++++++++++++++ you_get/main.py | 4 ++-- 3 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 you_get/downloader/sina.py diff --git a/you_get/downloader/__init__.py b/you_get/downloader/__init__.py index 8afe51b4..7e27927b 100644 --- a/you_get/downloader/__init__.py +++ b/you_get/downloader/__init__.py @@ -4,6 +4,7 @@ from .cntv import * from .iqiyi import * from .ku6 import * from .pptv import * +from .sina import * from .sohu import * from .tudou import * from .w56 import * diff --git a/you_get/downloader/sina.py b/you_get/downloader/sina.py new file mode 100644 index 00000000..f2a480ff --- /dev/null +++ b/you_get/downloader/sina.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python + +__all__ = ['sina_download', 'sina_download_by_id'] + +from ..common import * + +import re + +def video_info(id): + xml = get_decoded_html('http://v.iask.com/v_play.php?vid=%s' % id) + urls = re.findall(r'(?:)?', xml) + name = r1(r'(?:)?', xml) + vstr = r1(r'(?:)?', xml) + return urls, name, vstr + +def sina_download_by_id(id, title = None, output_dir = '.', merge = True, info_only = False): + urls, name, vstr = video_info(id) + title = title or name + assert title + size = 0 + for url in urls: + _, _, temp = url_info(url) + size += temp + + print_info(site_info, title, 'flv', size) + if not info_only: + download_urls(urls, title, 'flv', size, output_dir = output_dir, merge = merge) + +def sina_download(url, output_dir = '.', merge = True, info_only = False): + id = r1(r'ipad_vid:\'(\d+)\',', get_html(url)) + sina_download_by_id(id, output_dir = output_dir, merge = merge, info_only = info_only) + +site_info = "Sina.com" +download = sina_download +download_playlist = playlist_not_supported('sina') diff --git a/you_get/main.py b/you_get/main.py index 73acd4b4..b39574ec 100644 --- a/you_get/main.py +++ b/you_get/main.py @@ -18,9 +18,11 @@ def url_to_module(url): downloads = { '56': w56, 'cntv': cntv, + 'iask': sina, 'iqiyi': iqiyi, 'ku6': ku6, 'pptv': pptv, + 'sina': sina, 'sohu': sohu, 'tudou': tudou, 'yinyuetai': yinyuetai, @@ -30,8 +32,6 @@ def url_to_module(url): # 'acfun': acfun, # 'bilibili': bilibili, # 'kankanews': bilibili, - # 'iask': iask, - # 'sina': iask, } if k in downloads: return downloads[k]