b站弹幕姬python_自用 Bilibili 弹幕姬 for macOS
DanMacU
写来给自己用的 Bilibili 直播弹幕姬。
几个小时写出来的,我好久没写过 Python 了,代码质量奇差。什么项目架构设计,优雅错误处理啊都不存在,就图一梭子能跑就行,千万不要看实现代码。
预览
右下角那个就是。
关闭半透明的话:
依赖
Python 3.7+
pipenv
使用
$ pipenv install
$ pipenv shell
$ python -m danmacu.main
Danmaku page: http://127.0.0.1:7777/index.html
Press Command+C to stop...
然后使用浮动窗口工具(如果不知道是啥请看 Q&A 部分第 6 条,或者直接用浏览器)打开这个程序输出的 URL 即可。
工作原理
使用的是 Bilibili Android 客户端的直播 API。
在连接 B 站的弹幕 WebSocket 服务器后,会启动本地 WebSocket 服务器和 HTTP 服务器。
程序会将 B 站返回的弹幕/送礼等信息解析成易处理的格式,发送给连接到本地 WebSocket 服务器的客户端。
而打开终端里的 URL,本地 HTTP 服务输出的页面上的 Javascript 会连接本地 WebSocket 服务器,并把弹幕内容显示在页面上。
配合一些全局浮动窗口工具打开这个本地 HTTP 端口,就可以当一个弹幕姬用了。
见下图:
+--------------------------------------------+
| |
+-------------------+ | +------------------+ |
| | | | | |
| Bilibili Server ++ WebSocket Client | Danmacu Core |
| | | | | |
+-------------------+ | +--------+---------+ |
| | |
| +--------v---------+ +----------------+ |
| | | | | |
| | Internal | | Internal | |
| | Websocket server | | HTTP Server | |
| | | | | |
| +--------+---------+ +-------+--------+ |
| | | |
+--------------------------------------------+
| |
| |
| +----------v--------+
| | HTML |
| | |
| | +------------+ |
| | | DOM
| | +------------+ | |
| | | |
| | +------------- | |
+-----------> Javascript +-+ |
| +------------+ |
| |
+-------------------+
Loaded into float window
Q&A
1. 为什么要做这个
因为之前在 Mac 上用的弹幕库最近获取不了弹幕了,没办法只能自己写个。
2. 名字是什么意思
给 macOS 用的弹幕(Danmaku)姬 ==> DanMacU
没有什么其他意思。
3. 为什么不用 blivechat/bilibili-live-chat/BiliChat/或其他类似项目
不用 blivechat 的主要原因是我只知道 chat.bilisc.com 这个网站,然后看这个网站好像是给 OBS 用的,CSS 是额外生成,然后填在 OBS 的浏览器源的参数里。
而我的主要需求是自己放桌面上看,必须有办法用 OBS 以外的方法来改 CSS,所以就以为没法满足需求。
后来快写完才发现原来 blivechat 是开源的,而且可以本地跑,惨 我 惨。
4. 只能 Mac 用吗
理论上倒不是。并没有任何操作系统相关的代码,只是 Windows 上可以用的弹幕姬太多了,应该也不会有人需要用这个。
哦哦,Linux 用户倒是有可能来用,不过我没测过,如果有问题你提 Issue 吧。
5. 为什么没有 XXX 功能
因为只是我自己用用而已。
平常我也就只在周末给群里朋友们直播写写代码,玩玩小游戏啥的,也没有别人看,主业也不是这个,所以能看到弹幕和礼物就够了。
什么舰长,SC,房管,VIP,彩色弹幕之类的花里胡哨的功能我都用不到。
如果你需要这些功能的话,建议使用 Q&A No.3 的提到的这些功能比较全的项目。
不过你要是实在想自己加,那也可以随意 Fork 加上,如果愿意 PR 回我这里我也欢迎。
6. 浮动窗口工具是啥
就是可以 Always on top 的一个窗口,不然你焦点去别的窗口了就看不见弹幕了。
我用的是 Helium 3,你也可以用别的,只要能支持打开网页就行。
7. 不发布到 PyPI 吗
没这必要,真没必要……
TODO
页面 CSS 美化(我真的尽力了,可惜我不是前端,这一条强烈欢迎各种 PR)
用户头像(hash 方法未研究)
礼物图片(需要加载一个几百 K 的 JSON,有点大)
礼物合并(因为是自己用,没啥礼物,所以优先级很低)
自定义监听端口(自己用也没啥改的需求)
参数自定义 style(现在如果想改就直接改代码里的了)
致谢
除 Pipfile 中的依赖项目以外,还要感谢以下项目的帮助:
LICENSE
WTFPL
b站弹幕姬python_自用 Bilibili 弹幕姬 for macOS相关推荐
- python爬取bilibili弹幕_python爬虫:bilibili弹幕爬取+词云生成
如果你懒得看下边的文字,我录了一个完整的教学视频在b站上. 我的B站教学:https://www.bilibili.com/video/av75377135?p=2 工作原理 b站是提供弹幕接口的,所 ...
- b站弹幕姬python_基于asyncio异步协程框架实现收集B站直播弹幕详细介绍
本文给大家分享的是基于asyncio 异步协程框架实现收集B站直播弹幕收集系统的简单设计,并附上源码,有需要的小伙伴可以参考下 "> 前言 虽然标题是全站,但目前只做了等级 top 1 ...
- python爬取bilibili弹幕_用Python爬取B站视频弹幕
原标题:用Python爬取B站视频弹幕 via:菜J学Python 众所周知,弹幕,即在网络上观看视频时弹出的评论性字幕.不知道大家看视频的时候会不会点开弹幕,于我而言,弹幕是视频内容的良好补充,是一 ...
- b站python弹幕签到_Python爬虫 bilibili视频弹幕提取过程详解
两个重要点 1.获取弹幕的url是以 .xml 结尾 2.弹幕url的所需参数在视频url响应的 javascript 中 先看代码 import requests from lxml import ...
- bilibili怎么设置弹幕数量_python爬虫:bilibili弹幕爬取+词云生成
如果你懒得看下边的文字,我录了一个完整的教学视频在b站上. 我的B站教学:https://www.bilibili.com/video/av75377135?p=2 工作原理 b站是提供弹幕接口的,所 ...
- 利用B站《无价之姐》弹幕合成词云跳舞
写在最前边: 很长时间没有来CSDN上来写博客了.最近看到有位UP主的微信公众号推出了通过爬取B站上弹幕生成词云,再将词云合成小姐姐跳舞的视频,并且这位博主还给出了实现思路和源码.照着那位博主的方法, ...
- Java爬取B站弹幕 —— Python云图Wordcloud生成弹幕词云
一 . Java爬取B站弹幕 弹幕的存储位置 如何通过B站视频AV号找到弹幕对应的xml文件号 首先爬取视频网页,将对应视频网页源码获得 就可以找到该视频的av号aid=8678034 还有弹幕序号, ...
- b站直播html5黑屏,用bilibili直播姬的抓屏为什么是黑屏而不是界面呢
bilibili直播姬黑屏怎么办? 直播功能适合上传带宽能够达到2M以上的用户使用. 直播需要使用到第三方直播录像软件(OBS.XSpliter等),以下主要介绍如何使用OBS来进行直播. OBS目前 ...
- selenium、you-get下载B站视频、监控播放量和弹幕
selenium.you-get下载B站视频.监控播放量和弹幕 说明 完整代码 运行结果 说明 前两段代码是使用you-get下载视频,第一段是说明.第三段代码爬取b站视频的标题+播放量+弹幕数.注意 ...
- python爬取B站视频历史弹幕,并去除同标签的重复弹幕,暴力拿下所有弹幕。
嘻嘻嘻,今天我们来爬小B站的弹幕. 文章目录 前言 一.爬取历史弹幕的思路讲解 1.如何找到弹幕的爬取位置 2.如何找到历史弹幕的位置 二.代码讲解部分 1.引入库 2.编写自己的headers 3. ...
最新文章
- 土地一分用计算机怎么算,一分地等于多少平方米怎么算
- ITK:写一个TIFF图像
- MFC内嵌web页面
- 【完整可运行源码+GIF动画演示】十大经典排序算法系列——冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序
- python变量下划线开头_一日一技:python中下划线在不同位置的作用
- stm32 图像处理_假如STM32也有朋友圈
- 卷积神经网络如何解释和预测图像
- 华为全款买了块支付牌照
- 10种进阶方法让你快速测试端口连通性
- Win11怎么查看设备管理器?Win11设备管理器在哪里打开?
- web安全day32:人人都要懂的LAMP--mysql-server服务安装及安防配置
- 装黑苹果卡在苹果图标_EFI + Clover引导,已装好系统,重启进系统卡在苹果logo,似乎是显卡问题……...
- pascal行人voc_Pascal Voc数据集详细分析
- jarvis oj typo
- 常用测试工具和框架归类
- 手机lightroom预设位置
- Android性能优化系列之布局优化,Android程序员校招蚂蚁金服
- Learn OpenGL 笔记7.4 PBR-Specular IBL(Image based lighting-特殊的基于图像的照明)
- 基于Ubuntu+Bochs模拟器实现的操作系统图形化的小游戏(2048、flappybird、)
- 西门子HMI使用全局区域指针画面号实现画面跳转