diff --git a/README.md b/README.md index ddfac26d..a4f4fcd9 100644 --- a/README.md +++ b/README.md @@ -344,6 +344,7 @@ Use `--url`/`-u` to get a list of downloadable resource URLs extracted from the | Dilidili | |✓| | | | 豆瓣 | | | |✓| | 斗鱼 | |✓| | | +| Panda
熊猫 | |✓| | | | 凤凰视频 | |✓| | | | 风行网 | |✓| | | | iQIYI
爱奇艺 | |✓| | | diff --git a/src/you_get/common.py b/src/you_get/common.py index 284b1660..ab32a62d 100755 --- a/src/you_get/common.py +++ b/src/you_get/common.py @@ -54,6 +54,7 @@ SITES = { 'musicplayon' : 'musicplayon', '7gogo' : 'nanagogo', 'nicovideo' : 'nicovideo', + 'panda' : 'panda', 'pinterest' : 'pinterest', 'pixnet' : 'pixnet', 'pptv' : 'pptv', diff --git a/src/you_get/extractors/__init__.py b/src/you_get/extractors/__init__.py index 6c3864fd..1bb7a7ab 100755 --- a/src/you_get/extractors/__init__.py +++ b/src/you_get/extractors/__init__.py @@ -47,6 +47,7 @@ from .musicplayon import * from .nanagogo import * from .netease import * from .nicovideo import * +from .panda import * from .pinterest import * from .pixnet import * from .pptv import * diff --git a/src/you_get/extractors/panda.py b/src/you_get/extractors/panda.py new file mode 100644 index 00000000..74064f9f --- /dev/null +++ b/src/you_get/extractors/panda.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python + +__all__ = ['panda_download'] + +from ..common import * +import json +import time + +def panda_download(url, output_dir = '.', merge = True, info_only = False, **kwargs): + roomid = url[url.rfind('/')+1:] + json_request_url = 'http://www.panda.tv/api_room?roomid={}&pub_key=&_={}'.format(roomid, int(time.time())) + content = get_html(json_request_url) + errno = json.loads(content)['errno'] + errmsg = json.loads(content)['errmsg'] + if errno: + raise ValueError("Errno : {}, Errmsg : {}".format(errno, errmsg)) + + data = json.loads(content)['data'] + title = data.get('roominfo')['name'] + room_key = data.get('videoinfo')['room_key'] + status = data.get('videoinfo')['status'] + if status is not "2": + raise ValueError("The live stream is not online! (status:%s)" % status) + real_url = 'http://pl3.live.panda.tv/live_panda/{}.flv'.format(room_key) + + print_info(site_info, title, 'flv', float('inf')) + if not info_only: + download_urls([real_url], title, 'flv', None, output_dir, merge = merge) + +site_info = "panda.tv" +download = panda_download +download_playlist = playlist_not_supported('panda')