mirror of
https://github.com/soimort/you-get.git
synced 2025-02-03 08:43:58 +03:00
Merge branch 'zhangn1985-develop' into develop
This commit is contained in:
commit
1c208f2a91
@ -4,10 +4,6 @@ __all__ = ['zhanqi_download']
|
|||||||
|
|
||||||
from ..common import *
|
from ..common import *
|
||||||
import re
|
import re
|
||||||
import base64
|
|
||||||
import json
|
|
||||||
import time
|
|
||||||
import hashlib
|
|
||||||
|
|
||||||
def zhanqi_download(url, output_dir = '.', merge = True, info_only = False, **kwargs):
|
def zhanqi_download(url, output_dir = '.', merge = True, info_only = False, **kwargs):
|
||||||
html = get_content(url)
|
html = get_content(url)
|
||||||
@ -23,33 +19,15 @@ def zhanqi_download(url, output_dir = '.', merge = True, info_only = False, **kw
|
|||||||
title = unescape_html(title)
|
title = unescape_html(title)
|
||||||
rtmp_base = "http://wshdl.load.cdn.zhanqi.tv/zqlive"
|
rtmp_base = "http://wshdl.load.cdn.zhanqi.tv/zqlive"
|
||||||
vod_base = "http://dlvod.cdn.zhanqi.tv"
|
vod_base = "http://dlvod.cdn.zhanqi.tv"
|
||||||
rtmp_real_base = "rtmp://dlrtmp.cdn.zhanqi.tv/zqlive/"
|
|
||||||
room_info = "http://www.zhanqi.tv/api/static/live.roomid/"
|
|
||||||
KEY_MASK = "#{&..?!("
|
|
||||||
ak2_pattern = r'ak2":"\d-([^|]+)'
|
|
||||||
|
|
||||||
if video_type == "LIVE":
|
if video_type == "LIVE":
|
||||||
rtmp_id = match1(html, rtmp_id_patt).replace('\\/','/')
|
rtmp_id = match1(html, rtmp_id_patt).replace('\\/','/')
|
||||||
#request_url = rtmp_base+'/'+rtmp_id+'.flv?get_url=1'
|
request_url = rtmp_base+'/'+rtmp_id+'.flv?get_url=1'
|
||||||
#real_url = get_html(request_url)
|
real_url = get_html(request_url)
|
||||||
html2 = get_content(room_info + rtmp_id.split("_")[0] + ".json")
|
|
||||||
json_data = json.loads(html2)
|
|
||||||
cdns = json_data["data"]["flashvars"]["cdns"]
|
|
||||||
cdns = base64.b64decode(cdns).decode("utf-8")
|
|
||||||
cdn = match1(cdns, ak2_pattern)
|
|
||||||
cdn = base64.b64decode(cdn).decode("utf-8")
|
|
||||||
key = ''
|
|
||||||
i = 0
|
|
||||||
while(i < len(cdn)):
|
|
||||||
key = key + chr(ord(cdn[i]) ^ ord(KEY_MASK[i % 8]))
|
|
||||||
i = i + 1
|
|
||||||
time_hex = hex(int(time.time()))[2:]
|
|
||||||
key = hashlib.md5(bytes(key + "/zqlive/" + rtmp_id + time_hex, "utf-8")).hexdigest()
|
|
||||||
real_url = rtmp_real_base + '/' + rtmp_id + "?k=" + key + "&t=" + time_hex
|
|
||||||
print_info(site_info, title, 'flv', float('inf'))
|
print_info(site_info, title, 'flv', float('inf'))
|
||||||
if not info_only:
|
if not info_only:
|
||||||
download_rtmp_url(real_url, title, 'flv', {}, output_dir, merge = merge)
|
#download_rtmp_url(real_url, title, 'flv', {}, output_dir, merge = merge)
|
||||||
#download_urls([real_url], title, 'flv', None, output_dir, merge = merge)
|
download_urls([real_url], title, 'flv', None, output_dir, merge = merge)
|
||||||
elif video_type == "VOD":
|
elif video_type == "VOD":
|
||||||
vod_m3u8_request = vod_base + match1(html, vod_m3u8_id_patt).replace('\\/','/')
|
vod_m3u8_request = vod_base + match1(html, vod_m3u8_id_patt).replace('\\/','/')
|
||||||
vod_m3u8 = get_html(vod_m3u8_request)
|
vod_m3u8 = get_html(vod_m3u8_request)
|
||||||
@ -69,7 +47,6 @@ def zhanqi_download(url, output_dir = '.', merge = True, info_only = False, **kw
|
|||||||
download_urls(real_url, title, type_ or 'ts', size, output_dir, merge = merge)
|
download_urls(real_url, title, type_ or 'ts', size, output_dir, merge = merge)
|
||||||
else:
|
else:
|
||||||
NotImplementedError('Unknown_video_type')
|
NotImplementedError('Unknown_video_type')
|
||||||
|
|
||||||
site_info = "zhanqi.tv"
|
site_info = "zhanqi.tv"
|
||||||
download = zhanqi_download
|
download = zhanqi_download
|
||||||
download_playlist = playlist_not_supported('zhanqi')
|
download_playlist = playlist_not_supported('zhanqi')
|
||||||
|
Loading…
Reference in New Issue
Block a user