Giter Club home page Giter Club logo

bilibililivetools's Introduction

BilibiliLiveTools

Bilibili(B站)直播工具。自动登录并获取推流地址,可以用于电脑、树莓派等设备无人值守直播。

前提条件

  • 在Bilibili中通过实名认证,并开通了直播间。点击连接开通直播间(很简单的,实名认证通过后直接就可以开通了)
  • 推流默认使用FFmpeg,树莓派官方系统默认安装了的,我就不再赘述,其它系统请自行安装(Windows版本已经打包ffmpeg,就不用自己装了)。

项目说明

  1. BilibiliLiveAreaTool
    直播分区获取获取工具,可以通过此工具获取直播分区。
    使用方法:
./BilibiliLiveAreaTool [-save filename]
  1. BilibiliLiver
    一键开启直播工具。
  2. BilibiliLiveMonitor
    直播监视工具。在直播开播或停播后可以发送邮件进行通知。
  3. BilibiliLiverTests
    单元测试神马的。

Tips: 除了开播工具BilibiliLiver外,其余工具没有编译二进制发行版本。如有需要,可以提交Issue或者自行下载编译。

Demo

教程

如何获取Bilibili Cookie

由于B站登录接口越来越难搞,无奈之下只有用Cookie了。幸运的是,B站的Cookie很容易就能获取到(理论上网站Cookie都能很容易拿到)。

  1. 浏览器打开B站,并登陆
    一定要先登录,一定要先登录,一定要先登录!

  2. 开启开发者选项
    登录后在浏览页面按F12(或者Ctrl+Shift+I),打开开发者选项。如图所示:
    选择“Network”,然后在地址栏打开:https://api.bilibili.com/x/web-interface/nav
    打开之后,会看到一大串Json,不用管内容。然后点击右侧的nav(序号3),将图中序号4中cookie中的值拷贝出来,粘贴到程序目录下面的cookie.txt文件即可。

在Linux上面推流(这里以树莓派为例)

  1. 获取程序
wget https://github.com/withsalt/BilibiliLiveTools/releases/latest/download/BilibiliLiver_Linux_ARM.zip --no-check-certificate
  1. 解压并授权
unzip BilibiliLiver_Linux_ARM.zip && chmod -R 755 BilibiliLiver_Linux_ARM && chmod +x BilibiliLiver_Linux_ARM/BilibiliLiver
  1. 设置Cookie
cd BilibiliLiver_Linux_ARM
nano cookie.txt

然后编辑cookie.txt,并将上面获取到cookie粘贴进去。

  1. 编辑直播设置
    编辑配置文件appsettings.json
cd BilibiliLiver_Linux_ARM/
nano appsettings.json

配置文件如下所示,按照提示修改为自己的分区和直播间名称。

{
  "LiveSetting": {
    //直播间分类
    "LiveAreaId": 369,
    //直播间名称
    "LiveRoomName": "【24H】小金鱼啦~",
    //FFmpeg推流命令,请自行填写对应操作系统和设备的推流命令
    //填写到此处时,请注意将命令中‘"’用‘\’进行转义,将推流的rtmp连接替换为[[URL]],[[URL]]不需要双引号。
    //下面推流指令默认适配设备树莓派,使用USB摄像头,设备为/dev/video0
    "FFmpegCmd": "ffmpeg -thread_queue_size 1024 -f v4l2 -s 1280*720 -input_format mjpeg -i \"/dev/video0\" -stream_loop -1 -i \"Data/demo_music.m4a\" -vcodec h264_omx -pix_fmt yuv420p -r 30 -s 1280*720 -g 60 -b:v 10M -bufsize 10M -acodec aac -ac 2 -ar 44100 -ab 128k -f flv [[URL]]",
    //ffmpeg异常退出后,是否自动重新启动
    "AutoRestart": true
  }
}

由于推流方式不同以及FFmpeg配置的多样性,不同的平台、不同的硬件的参数都不相同(主要是懒,懒得去写FFmpeg的适配了,直接调用多巴适)。这里采用直接填写推流命令的方式。
建议填写之前先测试推流命令能否正确执行。默认的推流命令设配树莓派官方系统,并且使用USB摄像头,设备Id为'/dev/video0',其它系统可能不适用,需要自己修改。详情可以访问下发的博客连接。
推流命令(FFmpegCmd)中的“[[URL]]”,是一个配置符号,将在程序中被替换为获取到的Bilibili推流地址,所以一定要在最终命令中,把测试文件或者地址修改为 “[[URL]]”(URL大写) ,否则程序将抛出错误。推流命令中注意半角双引号需要用符号‘\’来进行转义。

  1. 安装FFmpeg(可选)
    为什么是可选?因为树莓派官方系统已经默认内置了ffmpeg,不用自行安装。但是对于一些其他的linux发行版。可能没有安装ffmpeg,所以需要用户自行安装ffmpeg。这里只讨论debian系的linux,即使用apt作为包管理的发行版。
# 安装,就这一行命令
sudo apt install ffmpeg
# 测试是否安装,有输出表示安装完成
ffmpeg -version
  1. 跑起来
sudo ./BilibiliLiver

配置系统服务等,可以查看:https://www.quarkbook.com/?p=733

在Windows系统上面推流

  1. 获取程序
    点击链接:https://github.com/withsalt/BilibiliLiveTools/releases/latest/download/BilibiliLiver_Windows_x64.zip 下载最新的适用于Windows系统的发布包。

  2. 设置Cookie

cd BilibiliLiver_Linux_ARM
nano cookie.txt

然后编辑cookie.txt,并将上面获取到cookie粘贴进去。

  1. 编辑直播设置
    编辑配置文件appsettings.json
cd BilibiliLiver_Linux_ARM/
nano appsettings.json

配置文件如下所示,按照提示修改为自己的分区和直播间名称。

{
  "LiveSetting": {
    //直播间分类
    "LiveAreaId": 369,
    //直播间名称
    "LiveRoomName": "【24H】小金鱼啦~",
    //FFmpeg推流命令,请自行填写对应操作系统和设备的推流命令
    //填写到此处时,请注意将命令中‘"’用‘\’进行转义,将推流的rtmp连接替换为[[URL]],[[URL]]不需要双引号。
    //下面推流指令默认适配设备树莓派,使用USB摄像头,设备为/dev/video0
    "FFmpegCmd": "ffmpeg -thread_queue_size 1024 -f v4l2 -s 1280*720 -input_format mjpeg -i \"/dev/video0\" -stream_loop -1 -i \"Data/demo_music.m4a\" -vcodec h264_omx -pix_fmt yuv420p -r 30 -s 1280*720 -g 60 -b:v 10M -bufsize 10M -acodec aac -ac 2 -ar 44100 -ab 128k -f flv [[URL]]",
    //ffmpeg异常退出后,是否自动重新启动
    "AutoRestart": true
  }
}
  1. 安装FFmpeg(可选)
    Windows版本随程序包发布有一个ffmpeg(解压后程序根目录),可以不用单独安装ffmpeg。

  2. 跑起来
    在地址栏输入cmd,如图所示:
    打开命令行之后,输入BilibiliLiver.exe。Enjoy it!

常见问题

  1. cookie.txt未正确配置
    巧妇难为无米之炊,请按照教程,配置cookie.txt

  2. FFmpeg报错
    肯定是你的ffmpeg指令有问题。这个工具严格意义上来说就是一个ffmpeg调用工具,ffmpeg的使用,全靠你自己。

  3. 通过Cookie登录失败
    cookie过期了,重新获取吧。

题外话

因为B站随时在更新API,所以工具有随时挂掉的风险。当发现工具非配置原因导致不可用时,请提交issue。API也是本人参考github其他项目来的,未深入了解过B站APP,所以在未来遇到无法解决问题且无人接收情况下,此项目将会被废弃。
还有种情况是,我本人也不用了。也就不更新了.....

直播分区

开播时需要将ID填写到LiveSetting中的LiveAreaId中。请注意正确填写分区ID,不然会有被封的风险。

AreaId 分类名称 分区名称
86 英雄联盟 网游
329 无畏契约 网游
89 CS:GO 网游
240 APEX英雄 网游
666 永劫无间 网游
88 穿越火线 网游
87 守望先锋 网游
80 吃鸡行动 网游
252 逃离塔科夫 网游
695 传奇 网游
78 DNF 网游
575 生死狙击2 网游
599 洛奇英雄传 网游
102 最终幻想14 网游
249 星际战甲 网游
710 梦三国 网游
690 英魂之刃 网游
82 剑网3 网游
691 铁甲雄兵 网游
300 封印者 网游
653 新天龙八部 网游
667 赛尔号 网游
668 造梦西游 网游
669 洛克王国 网游
670 问道 网游
654 诛仙世界 网游
652 大话西游 网游
683 奇迹MU 网游
684 永恒之塔 网游
685 QQ三国 网游
677 人间地狱 网游
92 DOTA2 网游
686 彩虹岛 网游
663 洛奇 网游
664 跑跑卡丁车 网游
658 星际公民 网游
659 Squad战术小队 网游
629 反恐精英Online 网游
648 风暴奇侠 网游
544 新世界 网游
705 创世战车 网游
642 装甲战争 网游
590 失落的方舟 网游
639 阿尔比恩 网游
600 猎杀对决 网游
472 CFHD 网游
650 骑士精神2 网游
680 超击突破 网游
634 武装突袭 网游
84 300英雄 网游
91 炉石传说 网游
499 剑网3缘起 网游
649 街头篮球 网游
601 综合射击 网游
505 剑灵 网游
651 艾尔之光 网游
632 黑色沙漠 网游
596 天涯明月刀 网游
519 超激斗梦境 网游
574 冒险岛 网游
487 逆战 网游
181 魔兽争霸3 网游
610 QQ飞车 网游
83 魔兽世界 网游
388 FIFA ONLINE 4 网游
581 NBA2KOL2 网游
318 使命召唤:战区 网游
656 VRChat 网游
115 坦克世界 网游
248 战舰世界 网游
729 战争与抉择 网游
316 战争雷霆 网游
383 战意 网游
114 风暴英雄 网游
93 星际争霸2 网游
239 刀塔自走棋 网游
164 堡垒之夜 网游
251 枪神纪 网游
81 三国杀 网游
112 龙之谷 网游
737 泡泡堂 网游
173 古剑奇谭OL 网游
176 幻想全明星 网游
288 怀旧网游 网游
298 新游前瞻 网游
331 星战前夜:晨曦 网游
551 流放之路 网游
633 FPS沙盒 网游
459 永恒轮回 网游
607 激战2 网游
107 其他网游 网游
35 王者荣耀 手游
256 和平精英 手游
395 LOL手游 手游
321 原神 手游
163 第五人格 手游
255 明日方舟 手游
479 黎明觉醒:生机 手游
474 哈利波特:魔法觉醒 手游
550 幻塔 手游
514 金铲铲之战 手游
506 APEX手游 手游
598 深空之眼 手游
675 无期迷途 手游
687 光遇 手游
756 三国志战棋版 手游
755 以闪亮之名 手游
717 跃迁旅人 手游
725 环形战争 手游
689 香肠派对 手游
645 猫之城 手游
644 玛娜希斯回响 手游
386 使命召唤手游 手游
615 黑色沙漠手游 手游
40 崩坏3 手游
407 游戏王:决斗链接 手游
303 游戏王 手游
724 JJ斗地主 手游
736 猫咪公寓2 手游
571 蛋仔派对 手游
36 阴阳师 手游
719 欢乐斗地主 手游
718 空之要塞:启航 手游
738 长安幻想 手游
292 火影忍者手游 手游
37 Fate/GO 手游
354 综合棋牌 手游
154 QQ飞车手游 手游
140 决战!平安京 手游
41 狼人杀 手游
352 三国杀移动版 手游
113 碧蓝航线 手游
156 影之诗 手游
189 明日之后 手游
50 部落冲突:皇室战争 手游
661 奥比岛手游 手游
734 弹弹堂 手游
704 盾之勇者成名录:浪潮 手游
214 雀姬 手游
330 公主连结Re:Dive 手游
343 DNF手游 手游
641 FIFA足球世界 手游
258 BanG Dream 手游
469 荒野乱斗 手游
333 CF手游 手游
293 战双帕弥什 手游
389 天涯明月刀手游 手游
42 解密游戏 手游
576 恋爱养成游戏 手游
492 暗黑破坏神:不朽 手游
502 暗区突围 手游
265 跑跑卡丁车手游 手游
212 非人学园 手游
286 百闻牌 手游
269 猫和老鼠手游 手游
442 坎公骑冠剑 手游
203 忍者必须死3 手游
342 梦幻西游手游 手游
504 航海王热血航线 手游
39 少女前线 手游
688 300大作战 手游
525 少女前线:云图计划 手游
478 漫威超级战争 手游
464 摩尔庄园手游 手游
493 宝可梦大集结 手游
473 小动物之星 手游
448 天地劫:幽城再临 手游
511 漫威对决 手游
538 东方归言录 手游
178 梦幻模拟战 手游
643 时空猎人3 手游
613 重返帝国 手游
679 休闲小游戏 手游
98 其他手游 手游
274 新游评测 手游
236 主机游戏 单机游戏
216 我的世界 单机游戏
283 独立游戏 单机游戏
237 怀旧游戏 单机游戏
460 弹幕互动玩法 单机游戏
276 恐怖游戏 单机游戏
721 生化危机 单机游戏
535 暗黑破坏神 单机游戏
751 森林之子 单机游戏
757 法外枭雄:滚石城 单机游戏
302 FORZA 极限竞速 单机游戏
700 卧龙:苍天陨落 单机游戏
277 命运2 单机游戏
747 霍格沃茨之遗 单机游戏
750 原子之心 单机游戏
758 全面坦克战略官 单机游戏
308 塞尔达传说 单机游戏
748 狂野之心 单机游戏
693 红色警戒2 单机游戏
739 风帆纪元 单机游戏
570 策略游戏 单机游戏
587 SIFU 单机游戏
752 歧路旅人2 单机游戏
723 战锤40K:暗潮 单机游戏
707 禁闭求生 单机游戏
579 战神 单机游戏
694 斯普拉遁3 单机游戏
282 使命召唤19 单机游戏
555 艾尔登法环 单机游戏
636 聚会游戏 单机游戏
720 宝可梦集换式卡牌游戏 单机游戏
591 Dread Hunger 单机游戏
597 战地风云 单机游戏
357 糖豆人 单机游戏
586 消逝的光芒2 单机游戏
245 只狼 单机游戏
578 怪物猎人 单机游戏
218 饥荒 单机游戏
228 精灵宝可梦 单机游戏
708 FIFA23 单机游戏
582 暖雪 单机游戏
594 全面战争:战锤3 单机游戏
362 NBA2K 单机游戏
548 帝国时代4 单机游戏
309 植物大战僵尸 单机游戏
433 格斗游戏 单机游戏
226 荒野大镖客2 单机游戏
426 重生细胞 单机游戏
227 刺客信条 单机游戏
387 恐鬼症 单机游戏
219 以撒 单机游戏
446 双人成行 单机游戏
295 方舟 单机游戏
313 仁王2 单机游戏
244 鬼泣5 单机游戏
364 枪火重生 单机游戏
341 盗贼之海 单机游戏
507 胡闹厨房 单机游戏
500 体育游戏 单机游戏
243 全境封锁2 单机游戏
326 骑马与砍杀 单机游戏
270 人类一败涂地 单机游戏
273 无主之地3 单机游戏
220 辐射76 单机游戏
257 全面战争 单机游戏
583 文字游戏 单机游戏
592 恋爱模拟游戏 单机游戏
593 泰拉瑞亚 单机游戏
678 游戏速通 单机游戏
753 Roblox 单机游戏
754 THE FINALS 单机游戏
235 其他单机 单机游戏
740 聊天室 娱乐
21 视频唱见 娱乐
530 萌宅领域 娱乐
145 视频聊天 娱乐
207 舞见 娱乐
706 情感 娱乐
123 户外 娱乐
399 日常 娱乐
190 唱见电台 电台
192 聊天电台 电台
193 配音 电台
743 TopStar 虚拟主播
744 虚拟Singer 虚拟主播
745 虚拟Gamer 虚拟主播
746 虚拟声优 虚拟主播
371 虚拟日常 虚拟主播
646 生活分享 生活
628 运动 生活
624 搞笑 生活
627 手工绘画 生活
369 萌宠 生活
367 美食 生活
378 时尚 生活
33 影音馆 生活
376 社科法律心理 知识
702 人文历史 知识
372 校园学习 知识
377 职场·技能 知识
375 科技 知识
701 科学科普 知识
561 游戏赛事 赛事
562 体育赛事 赛事
563 赛事综合 赛事

Stargazers over time

Stargazers over time

bilibililivetools's People

Contributors

withsalt avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.