From c7eac24a64f53230312fa4ef4d6a80bcba3107f4 Mon Sep 17 00:00:00 2001 From: wbt5 Date: Fri, 8 May 2020 15:33:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BC=98=E9=85=B7=E8=BD=AE?= =?UTF-8?q?=E6=92=AD=E5=8F=B0=E3=80=81look=20=E7=9B=B4=E6=92=AD=E3=80=81?= =?UTF-8?q?=E5=8D=83=E5=B8=86=E7=9B=B4=E6=92=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 66 ++++++++++++++++++++++++++++++++++++------------------ huya.py | 1 + look.py | 21 +++++++++++++++++ qianfan.py | 21 +++++++++++++++++ youku.py | 39 ++++++++++++++++++++++++++++++++ 5 files changed, 126 insertions(+), 22 deletions(-) create mode 100644 look.py create mode 100644 qianfan.py create mode 100644 youku.py diff --git a/README.md b/README.md index 5348952..ac70509 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,66 @@ -### 获取直播平台的真实流媒体地址(直播源),可在PotPlayer、VLC、flv.js等播放器中播放。 +# Real-Url -目前有23个直播平台:斗鱼直播、虎牙直播、哔哩哔哩直播、战旗直播、网易CC直播、火猫直播、企鹅电竞、YY直播、一直播、快手直播、花椒直播、映客直播、西瓜直播、触手直播、NOW直播、抖音直播,爱奇艺直播、酷狗直播、龙珠直播、PPS奇秀直播、六间房、17直播、来疯直播。 +## 说明 -> 2020.05.01:新增优酷的来疯直播。 +这个仓库存放的是:获取一些直播平台真实流媒体地址(直播源)的 Python 代码实现。获取的地址均可在 PotPlayer、VLC 播放器中播放,部分可在 flv.js 中播放。 -> 2020.04.30:新增17直播。 +目前整理了 **26** 个直播平台:斗鱼直播、虎牙直播、哔哩哔哩直播、战旗直播、网易 CC 直播、火猫直播、企鹅电竞、YY 直播、一直播、快手直播、花椒直播、映客直播、西瓜直播、触手直播、NOW 直播、抖音直播,爱奇艺直播、酷狗直播、龙珠直播、PPS 奇秀直播、六间房、17 直播、来疯直播、优酷轮播台、网易 look 直播、千帆直播。 -> 2020.04.24:修复虎牙、哔哩哔哩、快手、爱奇艺。 +## 运行 -> 2020.02.26:更新一直播。 +1. 项目使用了很简单的 Python 代码,仅在 Python 3 环境运行测试。 +2. 具体所需模块请查看代码中的 import。 +3. 爱奇艺直播里有个参数是加盐的 MD5,使用仓库中的 iqiyi.js。 -> 2020.01.18:更新抖音直播。 +## 反馈 -> 2020.01.10:新增酷狗直播、龙珠直播、PPS奇秀直播、六间房。 +有直播平台失效或新增其他平台解析的,可发 [issue](https://github.com/wbt5/real-url/issues/new)。 -> 2020.01.09:新增爱奇艺直播。 +## 更新 -> 2020.01.07:新增抖音直播;删除一个直播平台。 +### 2020.05.08:新增优酷轮播台、look 直播、千帆直播; -> 2020.01.03:修复快手直播,请求移动网页版。 +- 新增优酷轮播台:优酷轮播台是优酷直播下的一个子栏目,轮播一些经典电影电视剧,个人感觉要比其他直播平台影视区的画质要好,而且没有平台水印和主播自己贴的乱七八糟的字幕遮挡。 +- 新增 LOOK 直播:LOOK 直播是网易云音乐旗下的直播平台。 +- 新增千帆直播:千帆直播是搜狐旗下的直播平台。 -> 2019.12.31:修复快手直播。 +2020.05.01:新增优酷的来疯直播。 -> 2019.12.07:修复哔哩哔哩直播。 +2020.04.30:新增17直播。 -> 2019.12.04:更新斗鱼直播,新增一种获取方式。 +2020.04.24:修复虎牙、哔哩哔哩、快手、爱奇艺。 -> 2019.11.24:新增收米直播。 +2020.02.26:更新一直播。 -> 2019.11.18:新增西瓜直播;触手直播;NOW直播。 +2020.01.18:更新抖音直播。 -> 2019.11.18:新增一直播;快手直播;花椒直播;映客直播。 +2020.01.10:新增酷狗直播、龙珠直播、PPS奇秀直播、六间房。 -> 2019.11.17:新增火猫直播;新增企鹅电竞;新增YY直播。 +2020.01.09:新增爱奇艺直播。 -> 2019.11.16:新增战旗tv直播源;新增网易CC直播。 +2020.01.07:新增抖音直播;删除一个直播平台。 -> 2019.11.09:新增哔哩哔哩直播源。 +2020.01.03:修复快手直播,请求移动网页版。 -> 2019.11.03:新增虎牙直播源。 +2019.12.31:修复快手直播。 -> 2019.11.02:修复斗鱼预览地址获取的方法;新增未开播房间的判断。 +2019.12.07:修复哔哩哔哩直播。 + +2019.12.04:更新斗鱼直播,新增一种获取方式。 + +2019.11.24:新增收米直播。 + +2019.11.18:新增西瓜直播;触手直播;NOW直播。 + +2019.11.18:新增一直播;快手直播;花椒直播;映客直播。 + +2019.11.17:新增火猫直播;新增企鹅电竞;新增YY直播。 + +2019.11.16:新增战旗tv直播源;新增网易CC直播。 + +2019.11.09:新增哔哩哔哩直播源。 + +2019.11.03:新增虎牙直播源。 + +2019.11.02:修复斗鱼预览地址获取的方法;新增未开播房间的判断。 diff --git a/huya.py b/huya.py index fb8fde9..20a70f6 100644 --- a/huya.py +++ b/huya.py @@ -1,4 +1,5 @@ # 获取虎牙直播的真实流媒体地址。 +# 现在虎牙直播链接需要密钥和时间戳了 import requests diff --git a/look.py b/look.py new file mode 100644 index 0000000..59bab46 --- /dev/null +++ b/look.py @@ -0,0 +1,21 @@ +# 获取网易云音乐旗下look直播的真实流媒体地址。 +# look直播间链接形式:https://look.163.com/live?id=73694082 + + +import requests +import re + + +def get_real_url(rid): + try: + response = requests.post(url='https://look.163.com/live?id=' + rid).text + real_url = re.findall(r'"liveUrl":([\s\S]*),"liveType"', response)[0] + except: + real_url = '该直播间不存在或未开播' + return real_url + + +rid = input('请输入look直播房间号:\n') +real_url = get_real_url(rid) +print('该直播间源地址为:') +print(real_url) diff --git a/qianfan.py b/qianfan.py new file mode 100644 index 0000000..d51939e --- /dev/null +++ b/qianfan.py @@ -0,0 +1,21 @@ +# 获取56千帆直播的真实流媒体地址。 +# 千帆直播直播间链接形式:https://qf.56.com/520686 + +import requests +import re + + +def get_real_url(rid): + try: + response = requests.post(url='https://qf.56.com/' + rid).text + real_url = re.findall(r"flvUrl:'(.*)\?wsSecret", response) + real_url = real_url[0] + except: + real_url = '该直播间不存在或未开播' + return real_url + + +rid = input('请输入千帆直播房间号:\n') +real_url = get_real_url(rid) +print('该直播间源地址为:') +print(real_url) diff --git a/youku.py b/youku.py new file mode 100644 index 0000000..9529319 --- /dev/null +++ b/youku.py @@ -0,0 +1,39 @@ +# 获取@优酷轮播台@的真实流媒体地址。 +# 优酷轮播台是优酷直播live.youku.com下的一个子栏目,轮播一些经典电影电视剧,个人感觉要比其他直播平台影视区的画质要好,而且没有平台水印和主播自己贴的乱七八糟的字幕遮挡。 +# liveId 是如下形式直播间链接“https://vku.youku.com/live/ilproom?spm=a2hcb.20025885.m_16249_c_59932.d_11&id=8019610&scm=20140670.rcmd.16249.live_8019610”中的8019610字段。 + + +import requests +import time +import hashlib +import json + + +def get_real_url(liveId): + try: + tt = str(int(time.time()*1000)) + data = json.dumps({"liveId":liveId,"app":"Pc"}, separators=(',', ':')) + url = 'https://acs.youku.com/h5/mtop.youku.live.com.livefullinfo/1.0/?appKey=24679788' + s = requests.Session() + cookies = s.get(url).cookies + token = requests.utils.dict_from_cookiejar(cookies).get('_m_h5_tk')[0:32] + sign = hashlib.md5((token + '&' + tt + '&' + '24679788' + '&' + data).encode('utf-8')).hexdigest() + params = { + 't': tt, + 'sign': sign, + 'data': data + } + response = s.get(url, params=params).json() + name = response.get('data').get('data').get('name') + streamName = response.get('data').get('data').get('stream')[0].get('streamName') + real_url = 'http://lvo-live.youku.com/vod2live/{}_mp4hd2v3.m3u8?&expire=21600&psid=1&ups_ts={}&vkey='.format(streamName, int(time.time())) + except: + name = real_url = '请求错误' + return name, real_url + + +liveId = input('请输入优酷轮播台liveId:\n') +real_url = get_real_url(liveId) +print('该直播间地址为:') +print(real_url[0]) +print(real_url[1])