diff --git a/you_get/downloader/__init__.py b/you_get/downloader/__init__.py index 2b6b29ea..e96b0f2c 100644 --- a/you_get/downloader/__init__.py +++ b/you_get/downloader/__init__.py @@ -3,6 +3,7 @@ from .acfun import * from .bilibili import * from .cntv import * +from .ifeng import * from .iqiyi import * from .ku6 import * from .pptv import * diff --git a/you_get/downloader/ifeng.py b/you_get/downloader/ifeng.py new file mode 100644 index 00000000..32d8373b --- /dev/null +++ b/you_get/downloader/ifeng.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python + +__all__ = ['ifeng_download', 'ifeng_download_by_id'] + +from ..common import * + +def ifeng_download_by_id(id, title = None, output_dir = '.', merge = True, info_only = False): + assert r1(r'([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})', id), id + url = 'http://v.ifeng.com/video_info_new/%s/%s/%s.xml' % (id[-2], id[-2:], id) + xml = get_html(url, 'utf-8') + title = r1(r'Name="([^"]+)"', xml) + title = unescape_html(title) + url = r1(r'VideoPlayUrl="([^"]+)"', xml) + from random import randint + r = randint(10, 19) + url = url.replace('http://video.ifeng.com/', 'http://video%s.ifeng.com/' % r) + assert url.endswith('.mp4') + type, ext, size = url_info(url) + + print_info(site_info, title, 'mp4', size) + if not info_only: + download_urls([url], title, 'mp4', size, output_dir, merge = merge) + +def ifeng_download(url, output_dir = '.', merge = True, info_only = False): + id = r1(r'/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.shtml$', url) + if id: + return ifeng_download_by_id(id, None, output_dir = output_dir, merge = merge, info_only = info_only) + + html = get_html(url) + id = r1(r'var vid="([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"', html) + assert id, "can't find video info" + return ifeng_download_by_id(id, None, output_dir = output_dir, merge = merge, info_only = info_only) + +site_info = "ifeng.com" +download = ifeng_download +download_playlist = playlist_not_supported('ifeng') diff --git a/you_get/main.py b/you_get/main.py index 6d5a1766..8f3f9bd8 100644 --- a/you_get/main.py +++ b/you_get/main.py @@ -23,6 +23,7 @@ def url_to_module(url): 'bilibili': bilibili, 'cntv': cntv, 'iask': sina, + 'ifeng': ifeng, 'iqiyi': iqiyi, 'kankanews': bilibili, 'ku6': ku6,