以安康的qingk直播为栗子,山东qingk的直播清晰度并不高,主要还是以地市级的电视台为主,可以用于学习代理,由于官方的防盗链性质,随时可能改接口,不保证一直有效。地址如下:
http://akzhcs.qingk.cn/videolive-info/buwpqrtdpbaxscsaacbqrtfsqtuctuwe/53985bf59dd84ab6a9df2d2225d88b71/4ae571b2a1144cdf82183422c61f821b
其中
- appid 为
buwpqrtdpbaxscsaacbqrtfsqtuctuwe
- programId 为
4ae571b2a1144cdf82183422c61f821b
首先需要知道这两个参数,用在代理方法中的参数
代理源码如下(C#版本,可以作为参考自行用其他语言编写):
第一步,生成签名(MD5加密):
string timestamp = DateTime.Now.ToString("yyyyMMddHHmmss");//时间格式类似:20180422172745 string udid = "IoonvCITytAlFFNooRRc4HSTp3DnfucZ"; string sign = ExtHelper.MD5.EncryptToLower("sign" + appid + udid + timestamp + "sign");
第二步,将参数拼成参数字符串
string postdata=string.Format("appid={0}&v=1.0.0.0&os=ios&terminal=2&channel=&udid={1}×tamp={2}&token=&sign={3}&page=&step=&programId={4}&programType=liveVideo", appid, udid, timestamp, sign, programId);
第三步,调接口获取返回信息(POST方式)
HttpItem item = new HttpItem(); item.Url = "https://api.qingk.cn/jkplatform/v1/mediaPlayer/getPlayerUrl"; item.Method = "POST"; item.UserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 8_0_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12A366 Safari/600.1.4"; item.Encoding = Encoding.UTF8; item.ContentType = "application/x-www-form-urlencoded"; item.PostData = postdata item.Referer = "http://akzhcs.qingk.cn/videolive-info"; HttpRequest req = new HttpRequest(item); HttpResponse res = req.GetResponseHtml(); string html = res.Html;
第四步:提取返回信息中的 SDUrl 字段,就是直播源地址了
string playUrl = JsonConv.TryParseToJsonObject(html).NextObject("results").NextObject("body")["SDUrl"].ToString();
其他
最后的地址为:http://qkqxzb.qingk.cn/live/anknews/index.m3u8?k=32fd3a595b522afe&t=1541913552 这种形式的,当然后面的k和t参数是有时效性的..
以上 udid 参数怎么取没说明白,还有 ExtHelper.MD5.EncryptToLower()
等几个自定义的函数没有提供,基本可以明白程序干了什么。对轻快云qingk网站的动态直播源代理有很大帮助..
看起来很厉害的样子
防盗链,还不会搞
小白,不懂
厉害了