diff --git a/src/you_get/extractor/__init__.py b/src/you_get/extractor/__init__.py index 874824fe..4988e35c 100644 --- a/src/you_get/extractor/__init__.py +++ b/src/you_get/extractor/__init__.py @@ -20,6 +20,7 @@ from .iqiyi import * from .joy import * from .jpopsuki import * from .ku6 import * +from .letv import * from .miomio import * from .mixcloud import * from .netease import * diff --git a/src/you_get/extractor/__main__.py b/src/you_get/extractor/__main__.py index f8d9ecea..30bfa41c 100644 --- a/src/you_get/extractor/__main__.py +++ b/src/you_get/extractor/__main__.py @@ -40,6 +40,7 @@ def url_to_module(url): 'jpopsuki': jpopsuki, 'kankanews': bilibili, 'ku6': ku6, + 'letv': letv, 'miomio': miomio, 'mixcloud': mixcloud, 'nicovideo': nicovideo, diff --git a/src/you_get/extractor/letv.py b/src/you_get/extractor/letv.py new file mode 100644 index 00000000..fe371519 --- /dev/null +++ b/src/you_get/extractor/letv.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python + +__all__ = ['letv_download'] + +import json +import xml.etree.ElementTree as ET +from ..common import * + +def video_info(vid): + x = get_content("http://www.letv.com/v_xml/%s.xml" % vid) + xml_obj = ET.fromstring(x) + info = json.loads(xml_obj.find("playurl").text) + title = info.get('title') + urls = info.get('dispatch') + for key in urls.keys(): + url = urls[key][0] + break + return url, title + +def letv_download_by_vid(vid, output_dir='.', merge=True, info_only=False): + url, title = video_info(vid) + _, _, size = url_info(url) + ext = 'flv' + print_info(site_info, title, ext, size) + if not info_only: + download_urls([url], title, ext, size, output_dir=output_dir, merge=merge) + +def letv_download(url, output_dir='.', merge=True, info_only=False): + if re.match(r'http://www.letv.com/ptv/vplay/(\d+).html', url): + vid = match1(url, r'http://www.letv.com/ptv/vplay/(\d+).html') + else: + html = get_content(url) + vid = match1(html, r'vid="(\d+)"') + letv_download_by_vid(vid, output_dir=output_dir, merge=merge, info_only=info_only) + + +site_info = "letv.com" +download = letv_download +download_playlist = playlist_not_supported('letv')