From 228bb26f5b5d1a356560f1a39a7ed8cc99bcd760 Mon Sep 17 00:00:00 2001 From: jackyzy823 Date: Wed, 25 Mar 2015 11:29:33 +0800 Subject: [PATCH] support for lizhifm --- src/you_get/common.py | 3 ++- src/you_get/extractors/__init__.py | 1 + src/you_get/extractors/lizhi.py | 41 ++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 src/you_get/extractors/lizhi.py diff --git a/src/you_get/common.py b/src/you_get/common.py index 3e2a2cfe..c14026dc 100644 --- a/src/you_get/common.py +++ b/src/you_get/common.py @@ -900,7 +900,7 @@ def script_main(script_name, download, download_playlist = None): sys.exit(1) def url_to_module(url): - from .extractors import netease, w56, acfun, baidu, baomihua, bilibili, blip, catfun, cntv, cbs, coursera, dailymotion, dongting, douban, douyutv, ehow, facebook, freesound, google, sina, ifeng, alive, instagram, iqiyi, joy, jpopsuki, khan, ku6, kugou, kuwo, letv, magisto, miomio, mixcloud, mtv81, nicovideo, pptv, qq, sohu, songtaste, soundcloud, ted, theplatform, tudou, tucao, tumblr, vid48, videobam, vimeo, vine, vk, xiami, yinyuetai, youku, youtube, zhanqi + from .extractors import netease, w56, acfun, baidu, baomihua, bilibili, blip, catfun, cntv, cbs, coursera, dailymotion, dongting, douban, douyutv, ehow, facebook, freesound, google, sina, ifeng, alive, instagram, iqiyi, joy, jpopsuki, khan, ku6, kugou, kuwo, letv, lizhi, magisto, miomio, mixcloud, mtv81, nicovideo, pptv, qq, sohu, songtaste, soundcloud, ted, theplatform, tudou, tucao, tumblr, vid48, videobam, vimeo, vine, vk, xiami, yinyuetai, youku, youtube, zhanqi video_host = r1(r'https?://([^/]+)/', url) video_url = r1(r'https?://[^/]+(.*)', url) @@ -945,6 +945,7 @@ def url_to_module(url): 'kugou': kugou, 'kuwo': kuwo, 'letv': letv, + 'lizhi':lizhi, 'magisto': magisto, 'miomio': miomio, 'mixcloud': mixcloud, diff --git a/src/you_get/extractors/__init__.py b/src/you_get/extractors/__init__.py index da19036b..a5894d2d 100644 --- a/src/you_get/extractors/__init__.py +++ b/src/you_get/extractors/__init__.py @@ -25,6 +25,7 @@ from .ku6 import * from .kugou import * from .kuwo import * from .letv import * +from .lizhi import * from .magisto import * from .miomio import * from .mixcloud import * diff --git a/src/you_get/extractors/lizhi.py b/src/you_get/extractors/lizhi.py new file mode 100644 index 00000000..faeaa366 --- /dev/null +++ b/src/you_get/extractors/lizhi.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python + +__all__ = ['lizhi_download'] +import json +from ..common import * + +def lizhi_download_playlist(url, output_dir = '.', merge = True, info_only = False): + # like this http://www.lizhi.fm/#/31365/ + #api desc: s->start l->length band->some radio + #http://www.lizhi.fm/api/radio_audios?s=0&l=100&band=31365 + band_id = match1(url,r'#/(\d+)') + #try to get a considerable large l to reduce html parsing task. + api_url = 'http://www.lizhi.fm/api/radio_audios?s=0&l=65535&band='+band_id + content_json = json.loads(get_content(api_url)) + for sound in content_json: + title = sound["name"] + res_url = sound["url"] + songtype, ext, size = url_info(res_url,faker=True) + print_info(site_info, title, songtype, size) + if not info_only: + #no referer no speed! + download_urls([res_url], title, ext, size, output_dir, merge=merge ,refer = 'http://www.lizhi.fm',faker=True) + pass + +def lizhi_download(url, output_dir = '.', merge = True, info_only = False): + # url like http://www.lizhi.fm/#/549759/18864883431656710 + api_id = match1(url,r'#/(\d+/\d+)') + api_url = 'http://www.lizhi.fm/api/audio/'+api_id + content_json = json.loads(get_content(api_url)) + title = content_json["audio"]["name"] + res_url = content_json["audio"]["url"] + songtype, ext, size = url_info(res_url,faker=True) + print_info(site_info, title, songtype, size) + if not info_only: + #no referer no speed! + download_urls([res_url], title, ext, size, output_dir, merge=merge ,refer = 'http://www.lizhi.fm',faker=True) + + +site_info = "lizhi.fm" +download = lizhi_download +download_playlist = lizhi_download_playlist