获取斗鱼&虎牙&哔哩哔哩&抖音&快手等 48 个直播平台的真实流媒体地址(直播源)和弹幕,直播源可在 PotPlayer、flv.js 等播放器中播放。

Overview

Real-Url

说明

没想到还有这么多朋友发 issue 和邮件咨询问题,感谢大家的支持 🎈 !因为有时很忙,回复和提交代码的周期会有点长,抱歉哦 😋

这个仓库存放的是:获取一些直播平台真实流媒体地址(直播源)和弹幕的 Python 代码实现。获取的地址经测试,均可在 PotPlayer、VLC、DPlayer(flv.js + hls.js)等播放器中播放。

🤘 👌 🤙 🙏 🐉 👉 :如果该项目能帮助到您,欢迎 star 和 pr;或在您的项目中标注 Real-Url 为参考来源。

目前已实现:

53 个直播平台的直播源获取:斗鱼直播、虎牙直播、哔哩哔哩直播、战旗直播、网易 CC 直播、火猫直播、企鹅电竞、YY 直播、一直播、快手直播、花椒直播、映客直播、西瓜直播、触手直播(已倒闭)、NOW 直播、抖音直播,爱奇艺直播、酷狗直播、龙珠直播、PPS 奇秀直播、六间房、17 直播、来疯直播、优酷轮播台、网易 LOOK 直播、千帆直播、陌陌直播、小米直播、迅雷直播、京东直播、企鹅体育、人人直播、棉花糖直播、九秀直播、羚萌直播、95秀、新浪疯播、红人直播、艾米直播、KK直播、酷我聚星、乐嗨直播、秀色直播、星光直播、我秀直播、热猫直播、艺气山直播、AcFun 直播、猫耳FM、畅秀阁、Twitch、TikTok、央视频、PP体育。

18 个直播平台的弹幕获取:斗鱼直播、虎牙直播、哔哩哔哩直播、快手直播、火猫直播、企鹅电竞、花椒直播、映客直播、网易 CC 直播、酷狗直播、龙珠直播、PPS 奇秀、搜狐千帆、战旗直播、来疯直播、网易 LOOK 直播、AcFun 直播、艺气山直播。

运行

  1. 项目使用了很简单的 Python 代码,仅在 Python 3 环境运行测试。
  2. 具体所需模块请查看 requirements.txt
  3. 获取斗鱼和爱奇艺的直播源,需 JavaScript 环境,可使用 node.js。爱奇艺直播里有个参数是加盐的 MD5,由仓库中的 iqiyi.js 生成。
  4. 每个平台的直播源和弹幕获取功能相互独立,以后再整合。弹幕食用:python main.py

反馈

有直播平台失效或新增其他平台解析的,可发 issue

更新

2021.05.05:新增 PP体育。

2021.05.03:新增 央视频。

2021.05.02:新增 Twitch、TikTok。

2021.05.01:新增畅秀阁、猫耳FM。

2020.12.20:修复直播源:抖音、艺气山、花椒、快手、来疯、龙珠、PPS、人人直播、17live 可能需要挂代理。

2020.10.17:修复:西瓜直播、YY直播。

2020.09.26:更新:虎牙直播源;注释掉未完成的 YY 直播弹幕功能。

2020.09.12:新增:斗鱼添加一个从PC网页端获取直播源的方法,可选线路和清晰度;新增requirements.txt文件;更新代码。

2020.08.18:更新快手直播源,现在播放链接需要带参数;更新快手直播弹幕,直接用 protobuf 序列化;新增 AcFun、艺气山两个平台的弹幕功能。

2020.08.08:新增 AcFun 直播、艺气山直播;更新:哔哩哔哩直播、虎牙直播、红人直播;优化:斗鱼直播。

2020.07.31:新增 19 个直播平台,详见上面说明;更新YY直播,现在可以获取最高画质;优化战旗直播、优酷直播代码;

2020.07.25:新增网易 LOOK 直播弹幕获取;修复斗鱼直播源;新增陌陌直播源。

2020.07.19:新增来疯直播弹幕获取

2020.07.18:新增酷狗、龙珠、PPS奇秀、搜狐千帆、战旗直播等5个平台的弹幕获取

2020.07.11:新增网易CC直播弹幕获取

2020.07.05:新增花椒直播、映客直播弹幕获取;更新虎牙直播源

2020.06.25:新增 🐧 企鹅电竞弹幕获取

2020.06.19:新增火猫直播弹幕获取

2020.06.18:新增弹幕功能

  • 添加斗鱼、虎牙、哔哩哔哩和快手 4 个平台的弹幕获取。后续添加其他平台。
  • 实现弹幕功能的代码和思路主要来自:danmakuks_barrage,感谢两位大佬!

2020.05.30:更新虎牙直播。

2020.05.25:更新哔哩哔哩直播。

  • 默认获取最高画质,不同清晰度取决于请求参数中的 qn。
  • 增加 .m3u8 格式播放链接的获取方法。

2020.05.23:更新17直播、虎牙直播

2020.05.19:更新火猫、快手、酷狗、PPS

2020.05.08:新增优酷轮播台、look 直播、千帆直播;

  • 新增优酷轮播台:优酷轮播台是优酷直播下的一个子栏目,轮播一些经典电影电视剧,个人感觉要比其他直播平台影视区的画质要好,而且没有平台水印和主播自己贴的乱七八糟的字幕遮挡。
  • 新增 LOOK 直播:LOOK 直播是网易云音乐旗下的直播平台。
  • 新增千帆直播:千帆直播是搜狐旗下的直播平台。

2020.05.01:新增优酷的来疯直播。

2020.04.30:新增17直播。

2020.04.24:修复虎牙、哔哩哔哩、快手、爱奇艺。

2020.02.26:更新一直播。

2020.01.18:更新抖音直播。

2020.01.10:新增酷狗直播、龙珠直播、PPS奇秀直播、六间房。

2020.01.09:新增爱奇艺直播。

2020.01.07:新增抖音直播;删除一个直播平台。

2020.01.03:修复快手直播,请求移动网页版。

2019.12.31:修复快手直播。

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:修复斗鱼预览地址获取的方法;新增未开播房间的判断。

鸣谢

感谢 JetBrains 提供的 free JetBrains Open Source license

JetBrains-logo

Comments
  • 斗鱼失效

    斗鱼失效

    失效应该是在6月3号晚上发生的,下午的时候还可以正常使用。

    目前运行脚本依然可以得到url,形式是http://tx2play1.douyucdn.cn/live/{key}.flv 格式。因为脚本获取的就是key,前面的域名部分是本地拼接的,所以我怀疑获取到的key依然是正确的,但是域名已经不再是这个形式了。

    从浏览器抓了一下直播地址,脚本获取的key是正确的,但前面的域名部分变了,成了一个与地址及ISP相关的域名(我在长沙,用的移动网,可以在域名中看到changsha、cmcc)。而且似乎加入了验证,把域名改成浏览器抓到的,放进播放器也播放不了,http和https都不行。

    浏览器抓的地址中还有像wsAuth,token等这样的参数,一并放到播放器中倒是可以播

    opened by xyf2018 7
  • 有关企鹅电竞弹幕的问题

    有关企鹅电竞弹幕的问题

    尊敬的作者您好 我刚试了一下企鹅电竞的弹幕,因为我只想试企鹅电竞的弹幕,所以我在_init_.py文件中,注释掉了其他内容。 运行的时候只显示如下: {m["name"]}:s{m["content"]} {m["name"]}:s{m["content"]} {m["name"]}:s{m["content"]} {m["name"]}:s{m["content"]} {m["name"]}:s{m["content"]} {m["name"]}:s{m["content"]} 不知道是什么情况呀。望得到您得指点,十分感谢

    opened by a1696585 6
  • 大佬,是不是斗鱼失效了?

    大佬,是不是斗鱼失效了?

    我今天运行报这个错,麻烦大佬看看,谢谢。 raise ClientConnectorSSLError(req.connection_key, exc) from exc aiohttp.client_exceptions.ClientConnectorSSLError: Cannot connect to host danmuproxy.douyu.com:8503 ssl:default [[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:997)] Unclosed client session client_session: <aiohttp.client.ClientSession object at 0x0000021658B57F40> 是我环境有问题,还是真的链接失效了?

    wontfix Worksforme :confused: 
    opened by ice-orange-xi 5
  • 斗鱼获取链接有问题

    斗鱼获取链接有问题

    Traceback (most recent call last): File ".\douyu.py", line 116, in print(s.get_real_url()) File ".\douyu.py", line 105, in get_real_url ret.append(self.get_pre()) File ".\douyu.py", line 51, in get_pre return data['rtmp_url'] + '/' + data['rtmp_live'] KeyError: 'rtmp_url'

    duplicate fixed :ok_hand: 
    opened by AlterGu 5
  • 虎牙直播比电脑端慢了20s延迟

    虎牙直播比电脑端慢了20s延迟

    比如这个: 输入虎牙直播房间号: agbaozi {'2000p': 'https://txdirect.hls.huya.com/src/1272997391-1272997391-5467482162238324736-2546118238-10057-A-0-1.m3u8?wsSecret=3ab74a4ab6746c3da167861c257024fb&wsTime=60b206c0&u=0&seqid=16221934703419140&fm=RFdxOEJjSjNoNkRKdDZUWV8kMF8kMV8kMl8kMw%3D%3D&ctype=tars_mobile&txyp=o%3Anc2%3B&fs=bgct&&sphdcdn=al_7-tx_3-js_3-ws_7-bd_2-hw_2&sphdDC=huya&sphd=264_-265_&t=103', 'tx': 'https://txdirect.hls.huya.com/src/1272997391-1272997391-5467482162238324736-2546118238-10057-A-0-1.m3u8?wsSecret=3ab74a4ab6746c3da167861c257024fb&wsTime=60b206c0&u=0&seqid=16221934703419140&fm=RFdxOEJjSjNoNkRKdDZUWV8kMF8kMV8kMl8kMw%3D%3D&ctype=tars_mobile&txyp=o%3Anc2%3B&fs=bgct&&sphdcdn=al_7-tx_3-js_3-ws_7-bd_2-hw_2&sphdDC=huya&sphd=264_-265_&t=103', 'bd': 'https://txdirect.hls.huya.com/src/1272997391-1272997391-5467482162238324736-2546118238-10057-A-0-1.m3u8?wsSecret=3ab74a4ab6746c3da167861c257024fb&wsTime=60b206c0&u=0&seqid=16221934703419140&fm=RFdxOEJjSjNoNkRKdDZUWV8kMF8kMV8kMl8kMw%3D%3D&ctype=tars_mobile&txyp=o%3Anc2%3B&fs=bgct&&sphdcdn=al_7-tx_3-js_3-ws_7-bd_2-hw_2&sphdDC=huya&sphd=264_-265_&t=103', 'migu-bd': 'https://txdirect.hls.huya.com/src/1272997391-1272997391-5467482162238324736-2546118238-10057-A-0-1.m3u8?wsSecret=3ab74a4ab6746c3da167861c257024fb&wsTime=60b206c0&u=0&seqid=16221934703419140&fm=RFdxOEJjSjNoNkRKdDZUWV8kMF8kMV8kMl8kMw%3D%3D&ctype=tars_mobile&txyp=o%3Anc2%3B&fs=bgct&&sphdcdn=al_7-tx_3-js_3-ws_7-bd_2-hw_2&sphdDC=huya&sphd=264_-265_&t=103'} 用VLC选择'2000p', 'tx' ',bd'等后面的直播源看都与电脑网页右20s以上延迟,求解

    question :question: 
    opened by shuilingw 4
  • 抖音直播源失效

    抖音直播源失效

    上午还好用呢,现在不行了。 \real-url-master (1)\real-url-master>python douyin.py 请输入抖音直播间room_id或分享链接: https://v.douyin.com/eDm51te/ Exception: 直播间不存在或未开播或参数错误 False

    bug :bug: fixed :ok_hand: 
    opened by yysunq 4
  • 执行douyu.py会导致cpu飙升至100%

    执行douyu.py会导致cpu飙升至100%

    top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3672327 root 20 0 10.5g 109748 16960 S 336.8 0.3 0:03.61 jjs 3672348 root 20 0 10.5g 62816 17028 S 163.2 0.2 0:01.79 jjs 3672369 root 20 0 10.5g 49304 16884 S 121.1 0.2 0:00.96 jjs 3672391 root 20 0 10.5g 33612 16124 S 121.1 0.1 0:00.28 jjs

    ps aux|grep jjs root 3672851 131 0.2 11234900 81640 ? Sl 16:53 0:02 /opt/jdk1.8.0_261/bin/jjs /tmp/execjsmh9l8gc5.js root 3672872 64.0 0.1 11033092 58844 ? Sl 16:53 0:01 /opt/jdk1.8.0_261/bin/jjs /tmp/execjsnk7282r_.js root 3672889 119 0.1 11033092 58064 ? Sl 16:54 0:01 /opt/jdk1.8.0_261/bin/jjs /tmp/execjsew1abbjg.js root 3672914 45.0 0.1 11031044 38828 ? Sl 16:54 0:00 /opt/jdk1.8.0_261/bin/jjs /tmp/execjs8f5k_72j.js root 3672930 31.0 0.1 11030560 34840 ? Sl 16:54 0:00 /opt/jdk1.8.0_261/bin/jjs /tmp/execjsbxlvciml.js

    请问作者这个是因为douyu.py 有引用execjs 还是正则需要优化呢? 我把这个斗鱼停止cpu会降下来 top 停止之后

    %Cpu(s): 0.7 us, 0.1 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 31595.7 total, 15290.8 free, 6583.1 used, 9721.7 buff/cache MiB Swap: 0.0 total, 0.0 free, 0.0 used. 24567.8 avail Mem

    启动之后 ps aux|grep jjs root 3684958 79.3 0.3 11236948 128872 pts/2 Sl 16:59 0:04 /opt/jdk1.8.0_261/bin/jjs /tmp/execjs1ezp61zs.js root 3685005 80.4 0.3 11234900 106600 pts/2 Sl 16:59 0:04 /opt/jdk1.8.0_261/bin/jjs /tmp/execjsnbf3x8fm.js root 3685008 90.2 0.2 11234900 96020 pts/2 Sl 16:59 0:03 /opt/jdk1.8.0_261/bin/jjs /tmp/execjsjuw_o4jn.js root 3685051 39.6 0.1 11031044 55664 pts/2 Sl 16:59 0:01 /opt/jdk1.8.0_261/bin/jjs /tmp/execjs4r8bw6x_.js root 3685052 36.0 0.1 11031044 52452 pts/2 Sl 16:59 0:01 /opt/jdk1.8.0_261/bin/jjs /tmp/execjsi2nytp02.js root 3685094 39.5 0.1 11031044 44680 pts/2 Sl 16:59 0:00 /opt/jdk1.8.0_261/bin/jjs /tmp/execjss9_vvp3r.js root 3685122 27.0 0.1 11030560 33216 pts/2 Sl 16:59 0:00 /opt/jdk1.8.0_261/bin/jjs /tmp/execjs_q5pv1ms.js root 3685125 23.0 0.1 11030560 33324 pts/2 Sl 16:59 0:00 /opt/jdk1.8.0_261/bin/jjs /tmp/execjsanc5mylq.js root 3685159 5.0 0.0 10757892 21908 pts/2 Sl 16:59 0:00 /opt/jdk1.8.0_261/bin/jjs /tmp/execjst9324l7g.js

    没有看明白 为什么会执行到java的jjs指令

    opened by xiaoshuaishuai 4
  • 各位朋友,請問你們的虎牙彈幕現在有沒有報錯呢?

    各位朋友,請問你們的虎牙彈幕現在有沒有報錯呢?

    昨天想看弹幕的时候发现报错了Unclosed connector connections: ['[(<aiohttp.client_proto.ResponseHandler object at 0x000001AEE84CEBA0>,不知道是因为服务器的原因还是因为我更新了python版本的原因。。。。希望大佬帮忙分析一下

    opened by TommyLe1 2
  • [danmu方面]求改进和新增一点修改

    [danmu方面]求改进和新增一点修改

    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('--url','-l',nargs='+')
    args=parser.parse_args()
    print(args.url)
    

    这块是直接从命令行读取地址 比如

    python3 main.py -l "https://live.bilibili.com/9510613" "https://huya.com/8mi.tech"
    

    那么这家伙会以数组的方式 返回这两串内容

    ['https://live.bilibili.com/9510613', 'https://huya.com/8mi.tech']
    

    还有还有,传入参数后就不要再问输入地址了

    if args.url:
        a=args.url
    else:
        a = input('请输入直播间地址:\n')
    asyncio.run(main(a))
    

    然后我希望的是 这个程序能多线程的形式 同时处理多个平台的弹幕
    可以用参数来判断是否开启多平台模式

    if len(args.url) > 1:
    multi_live=true
    

    并且我希望说 输出的格式是这样的

    print("["+str(datetime.datetime.now())+"] ["+platform+"] "+f'{m["name"]}:{m["content"]}')
    

    而这个platform这个参数 对应弹幕来源 比如从bilibili发送的弹幕 输出的是

    [2022-12-12 23:44:21.236815] [bili] [勋章名称|等级]八蓝米科技Company:测试弹幕
    

    总结,我要的效果就是说 输入命令

    python3 main.py -l "https://live.bilibili.com/9510613" "https://huya.com/8mi.tech"
    

    输出的结果是(仅限multi_live=true的情况下这样输出)

    [2022-12-12 23:44:21.236815] [bili] [八蓝米|18]八蓝米科技Company:测试弹幕
    [2022-12-12 23:44:21.236815] [huya] [勋章名称|等级]8yl丶以勒:测试弹幕
    

    因为我不太会实现,毕竟你的代码,我也不太好动

    opened by 8MiYile 1
  • ⬆️ Bump certifi from 2020.6.20 to 2022.12.7

    ⬆️ Bump certifi from 2020.6.20 to 2022.12.7

    Bumps certifi from 2020.6.20 to 2022.12.7.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • 斗鱼直播源配合ffmpeg录制报错404

    斗鱼直播源配合ffmpeg录制报错404

    斗鱼直播源在本地的potplayer中播放时正常的,但是在ubuntu或者windows上配合ffmpeg推流或者录制是时会经常出现 HTTP error 404 Not Found 错误, 具体指令为ffmpeg -i "https://akm-tct.douyucdn.cn/live/xxxxxxxx.flv?uuid=" -codec copy -f flv -y "RTMP" 请教一下各位大佬这是怎么回事

    opened by smoothan 0
Owner
乌帮图
人生得意须尽欢
乌帮图