mirror of
https://github.com/wbt5/real-url.git
synced 2025-06-17 08:25:25 +08:00
Compare commits
2 Commits
069ca6226a
...
9843a664be
Author | SHA1 | Date | |
---|---|---|---|
|
9843a664be | ||
|
fd6c643fe6 |
@ -10,7 +10,7 @@
|
||||
|
||||
目前已实现:
|
||||
|
||||
**54** 个直播平台的直播源获取:斗鱼直播、虎牙直播、哔哩哔哩直播、战旗直播、网易 CC 直播、火猫直播、企鹅电竞、YY 直播、一直播、快手直播、花椒直播、映客直播、西瓜直播、触手直播(已倒闭)、NOW 直播、抖音直播,爱奇艺直播、酷狗直播、龙珠直播、PPS 奇秀直播、六间房、17 直播、来疯直播、优酷轮播台、网易 LOOK 直播、千帆直播、陌陌直播、小米直播、迅雷直播、京东直播、企鹅体育、人人直播、棉花糖直播、九秀直播、羚萌直播、95秀、新浪疯播、红人直播、艾米直播、KK直播、酷我聚星、乐嗨直播、秀色直播、星光直播、我秀直播、热猫直播、艺气山直播、AcFun 直播、猫耳FM、畅秀阁、Twitch、TikTok、央视频、PP体育、zhibotv。
|
||||
**55** 个直播平台的直播源获取:斗鱼直播、虎牙直播、哔哩哔哩直播、战旗直播、网易 CC 直播、火猫直播、企鹅电竞、YY 直播、一直播、快手直播、花椒直播、映客直播、西瓜直播、触手直播(已倒闭)、NOW 直播、抖音直播,爱奇艺直播、酷狗直播、龙珠直播、PPS 奇秀直播、六间房、17 直播、来疯直播、优酷轮播台、网易 LOOK 直播、千帆直播、陌陌直播、小米直播、迅雷直播、京东直播、企鹅体育、人人直播、棉花糖直播、九秀直播、羚萌直播、95秀、新浪疯播、红人直播、艾米直播、KK直播、酷我聚星、乐嗨直播、秀色直播、星光直播、我秀直播、热猫直播、艺气山直播、AcFun 直播、猫耳FM、畅秀阁、Twitch、TikTok、央视频、PP体育、zhibotv、腾讯体育直播。
|
||||
|
||||
**18** 个直播平台的弹幕获取:斗鱼直播、虎牙直播、哔哩哔哩直播、快手直播、火猫直播、企鹅电竞、花椒直播、映客直播、网易 CC 直播、酷狗直播、龙珠直播、PPS 奇秀、搜狐千帆、战旗直播、来疯直播、网易 LOOK 直播、AcFun 直播、艺气山直播。
|
||||
|
||||
@ -26,6 +26,8 @@
|
||||
有直播平台失效或新增其他平台解析的,可发 [issue](https://github.com/wbt5/real-url/issues/new)。
|
||||
|
||||
## 更新
|
||||
2021.05.22::sparkles:新增腾讯体育直播。
|
||||
|
||||
2021.05.15::art:更新爱奇艺、:bug:修复战旗直播。
|
||||
|
||||
2021.05.13: :sparkles:新增 zhibotv。
|
||||
|
85
kbs.py
Normal file
85
kbs.py
Normal file
@ -0,0 +1,85 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# @Time: 2021/5/22 8:02
|
||||
# @Project: real-url
|
||||
# @Author: wbt5
|
||||
# @Blog: https://wbt5.com
|
||||
|
||||
import hashlib
|
||||
import time
|
||||
from urllib.parse import parse_qsl, urlsplit
|
||||
|
||||
import requests
|
||||
|
||||
|
||||
class KBS:
|
||||
"""
|
||||
- 腾讯体育直播,看比赛频道 https://kbs.sports.qq.com/
|
||||
- 直播间地址类似:https://sports.qq.com/kbsweb/game.htm?mid=100006:2337840,需要其中的mid
|
||||
- 只能获取免费观看的直播间
|
||||
- 请求参数params中的defn:蓝光fhd、超清shd、高清hd、标清sd,未登陆时最高获取超清,蓝光需VIP。
|
||||
"""
|
||||
|
||||
def __init__(self, rid):
|
||||
var = dict(parse_qsl(urlsplit(rid).query))
|
||||
mid = var.get('mid')
|
||||
|
||||
with requests.Session() as self.s:
|
||||
res = requests.get(f'https://matchweb.sports.qq.com/kbs/matchDetail?mid={mid}').json()
|
||||
self.vid = res['data']['liveId']
|
||||
self.livepid = res['data']['programId']
|
||||
|
||||
def get_real_url(self):
|
||||
tt = int(time.time())
|
||||
week = int(time.strftime('%w'))
|
||||
s = ('06fc1464', '4244ce1b', '77de31c5', 'e0149fa2', '60394ced', '2da639f0', 'c2f0cf9f')
|
||||
ha = f'{s[week - 1]}{self.vid}{tt}*#06#402011'
|
||||
ckey = hashlib.md5(ha.encode('utf-8')).hexdigest()
|
||||
params = {
|
||||
'cmd': 2,
|
||||
'cnlid': self.vid,
|
||||
'pla': 0,
|
||||
'stream': 2,
|
||||
'system': 0,
|
||||
'appVer': '3.0.0.138',
|
||||
'encryptVer': f'7.{week}',
|
||||
'qq': 0,
|
||||
'device': 'PC',
|
||||
'guid': '7dbd5b801e49ace0c8b3eba6b70c9ad6',
|
||||
'defn': 'shd', # shd默认超清
|
||||
'host': 'qq.com',
|
||||
'livepid': self.livepid,
|
||||
'logintype': 1,
|
||||
'vip_status': 1,
|
||||
'livequeue': 1,
|
||||
'fntick': tt,
|
||||
'tm': tt,
|
||||
'sdtfrom': 1107,
|
||||
'platform': 40201,
|
||||
'cKey': ckey,
|
||||
'queueStatus': 0,
|
||||
'sphttps': 1,
|
||||
'authext': '{}',
|
||||
'auth_ext': '{}',
|
||||
'auth_from': 40001,
|
||||
# 'callback': 'txvlive_videoinfoget_2767135792',
|
||||
}
|
||||
res = self.s.get('https://infozb6.video.qq.com/', params=params).json()
|
||||
playurl = res.get('playurl', 0)
|
||||
if res['errinfo']:
|
||||
raise Exception('errinfo')
|
||||
else:
|
||||
return playurl
|
||||
|
||||
|
||||
def get_real_url(rid):
|
||||
try:
|
||||
kbs = KBS(rid)
|
||||
return kbs.get_real_url()
|
||||
except Exception as e:
|
||||
print('Exception:', e)
|
||||
return False
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
r = input('请输入腾讯体育直播间地址:\n')
|
||||
print(get_real_url(r))
|
Loading…
x
Reference in New Issue
Block a user