mirror of
https://github.com/soimort/you-get.git
synced 2025-02-11 12:42:29 +03:00
Merge remote-tracking branch 'soimort/develop' into develop
This commit is contained in:
commit
351abbad06
@ -58,6 +58,7 @@ Fork me on GitHub: <https://github.com/soimort/you-get>
|
||||
* NetEase (网易视频) <http://v.163.com>
|
||||
* NetEase Music (网易云音乐) <http://music.163.com>
|
||||
* PPTV <http://www.pptv.com>
|
||||
* QianMo (阡陌视频) <http://qianmo.com/>
|
||||
* QQ (腾讯视频) <http://v.qq.com>
|
||||
* Sina (新浪视频) <http://video.sina.com.cn>
|
||||
* Sohu (搜狐视频) <http://tv.sohu.com>
|
||||
|
@ -922,7 +922,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, lizhi, magisto, miomio, mixcloud, mtv81, nicovideo, pptv, qq, sohu, songtaste, soundcloud, ted, theplatform, tudou, tucao, tumblr, twitter, vid48, videobam, vidto, 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, qianmo, qq, sohu, songtaste, soundcloud, ted, theplatform, tudou, tucao, tumblr, twitter, vid48, videobam, vidto, vimeo, vine, vk, xiami, yinyuetai, youku, youtube, zhanqi
|
||||
|
||||
video_host = r1(r'https?://([^/]+)/', url)
|
||||
video_url = r1(r'https?://[^/]+(.*)', url)
|
||||
@ -974,6 +974,7 @@ def url_to_module(url):
|
||||
'mtv81': mtv81,
|
||||
'nicovideo': nicovideo,
|
||||
'pptv': pptv,
|
||||
'qianmo':qianmo,
|
||||
'qq': qq,
|
||||
'sina': sina,
|
||||
'smgbb': bilibili,
|
||||
|
1
src/you_get/extractors/__init__.py
Normal file → Executable file
1
src/you_get/extractors/__init__.py
Normal file → Executable file
@ -33,6 +33,7 @@ from .mtv81 import *
|
||||
from .netease import *
|
||||
from .nicovideo import *
|
||||
from .pptv import *
|
||||
from .qianmo import *
|
||||
from .qq import *
|
||||
from .sina import *
|
||||
from .sohu import *
|
||||
|
@ -12,6 +12,15 @@ import hashlib
|
||||
|
||||
'''
|
||||
Changelog:
|
||||
-> http://www.iqiyi.com/common/flashplayer/20150810/MainPlayer_5_2_26_c3_3_7_1.swf
|
||||
http://www.iqiyi.com/common/flashplayer/20150811/MainPlayer_5_2_26_c3_3_7_2.swf
|
||||
http://www.iqiyi.com/common/flashplayer/20150820/MainPlayer_5_2_27_2_c3_3_7_3.swf
|
||||
some small changes in Zombie.bite function
|
||||
|
||||
-> http://www.iqiyi.com/common/flashplayer/20150805/MainPlayer_5_2_26_c3_3_7.swf
|
||||
former key still works until 20150809
|
||||
In Zombie kcuf = [13, 3, 0, 15, 8, 2, 11, 7, 10, 1, 12, 9, 14, 6, 4, 5] ,which is construct in LogManager,CoreManager,impls.pub.setting,impls.pub.statistics,StageVideoManager
|
||||
thd create a array of ['2', 'd', 'f', 'e', '0', 'c', '5', '3', '8', 'b', '9', '6', 'a', '7', '4', '1']
|
||||
-> http://www.iqiyi.com/common/flashplayer/20150710/MainPlayer_5_2_25_c3_3_5_1.swf
|
||||
|
||||
-> http://www.iqiyi.com/common/flashplayer/20150703/MainPlayer_5_2_24_1_c3_3_3.swf
|
||||
@ -20,11 +29,6 @@ Changelog:
|
||||
-> http://www.iqiyi.com/common/flashplayer/20150618/MainPlayer_5_2_24_1_c3_3_2.swf
|
||||
In this version Z7elzzup.cexe,just use node.js to run this code(with some modification) and get innerkey.
|
||||
|
||||
-> http://www.iqiyi.com/common/flashplayer/20150612/MainPlayer_5_2_23_1_c3_2_6_5.swf
|
||||
In this version do not directly use enc key
|
||||
gen enc key (so called sc ) in DMEmagelzzup.mix(tvid) -> (tm->getTimer(),src='hsalf',sc)
|
||||
encrypy alogrithm is md5(DMEmagelzzup.mix.genInnerKey +tm+tvid)
|
||||
how to gen genInnerKey ,can see first 3 lin in mix function in this file
|
||||
'''
|
||||
|
||||
'''
|
||||
@ -43,9 +47,9 @@ bid meaning for quality
|
||||
|
||||
def mix(tvid):
|
||||
enc = []
|
||||
enc.append('8e29ab5666d041c3a1ea76e06dabdffb')
|
||||
enc.append('3cba91f1453145438ac5e4f5983bc086')
|
||||
tm = str(randint(2000,4000))
|
||||
src = 'hsalf'
|
||||
src = 'eknas'
|
||||
enc.append(str(tm))
|
||||
enc.append(tvid)
|
||||
sc = hashlib.new('md5',bytes("".join(enc),'utf-8')).hexdigest()
|
||||
@ -81,7 +85,7 @@ def getVMS(tvid,vid,uid):
|
||||
vmsreq='http://cache.video.qiyi.com/vms?key=fvip&src=1702633101b340d8917a69cf8a4b8c7' +\
|
||||
"&tvId="+tvid+"&vid="+vid+"&vinfo=1&tm="+tm+\
|
||||
"&enc="+sc+\
|
||||
"&qyid="+uid+"&tn="+str(random()) +"&um=0" +\
|
||||
"&qyid="+uid+"&tn="+str(random()) +"&um=1" +\
|
||||
"&authkey="+hashlib.new('md5',bytes(''+str(tm)+tvid,'utf-8')).hexdigest()
|
||||
return json.loads(get_content(vmsreq))
|
||||
|
||||
@ -92,7 +96,7 @@ def getDispathKey(rid):
|
||||
return hashlib.new("md5",bytes(t+tp+rid,"utf-8")).hexdigest()
|
||||
|
||||
|
||||
def iqiyi_download(url, output_dir = '.', merge = True, info_only = False):
|
||||
def iqiyi_download(url, output_dir = '.', merge = True, info_only = False, **kwargs):
|
||||
gen_uid=uuid4().hex
|
||||
|
||||
html = get_html(url)
|
||||
|
40
src/you_get/extractors/qianmo.py
Normal file
40
src/you_get/extractors/qianmo.py
Normal file
@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
__all__ = ['qianmo_download']
|
||||
|
||||
from ..common import *
|
||||
import urllib.error
|
||||
import json
|
||||
|
||||
def qianmo_download(url, output_dir = '.', merge = False, info_only = False):
|
||||
if re.match(r'http://qianmo.com/\w+', url):
|
||||
html = get_html(url)
|
||||
match = re.search(r'(.+?)var video =(.+?);', html)
|
||||
|
||||
if match:
|
||||
video_info_json = json.loads(match.group(2))
|
||||
title = video_info_json['title']
|
||||
ext_video_id = video_info_json['ext_video_id']
|
||||
|
||||
html = get_content('http://v.qianmo.com/player/{ext_video_id}'.format(ext_video_id = ext_video_id))
|
||||
c = json.loads(html)
|
||||
url_list = []
|
||||
for i in c['seg']: #Cannot do list comprehensions
|
||||
for a in c['seg'][i]:
|
||||
for b in a['url']:
|
||||
url_list.append(b[0])
|
||||
|
||||
type_ = ''
|
||||
size = 0
|
||||
for url in url_list:
|
||||
_, type_, temp = url_info(url)
|
||||
size += temp
|
||||
|
||||
type, ext, size = url_info(url)
|
||||
print_info(site_info, title, type_, size)
|
||||
if not info_only:
|
||||
download_urls(url_list, title, type_, total_size=None, output_dir=output_dir, merge=merge)
|
||||
|
||||
site_info = "qianmo"
|
||||
download = qianmo_download
|
||||
download_playlist = playlist_not_supported('qianmo')
|
Loading…
Reference in New Issue
Block a user