开源 Tauri 跨平台 B 站客户端 BBHouse 基于 Vite + Vue 3 + Rust - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
seelight
V2EX    分享创造

开源 Tauri 跨平台 B 站客户端 BBHouse 基于 Vite + Vue 3 + Rust

  •  
  •   seelight 2022-08-14 06:45:02 +08:00 5087 次点击
    这是一个创建于 1155 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1660423611png

    名字

    BBHouse, 取自经常能看见的"在 B 站买房"的评论.

    说是客户端, 其实只实现了播放和动态相关的功能......因为其他功能我基本不用

    feature

    • 极简 只有视频动态和播放功能 没有推荐流 没有 B 博
    • 支持视频动态过滤 by 分区 | 标题 | UP 主
    • 单独的播放器窗口 支持播放列表
    • 替换了随机出现的 PCDN
    • BBDown 进行了简单封装, 一键使用
    • 性能优秀 占用很小 实测 WIN 11 下启动速度与原生 UWP 相当
    • 体积很小 完整二进制应用只有 10MB 安装包 4MB 没有 UAC
    • 跨平台 已经 Release macOS | Ubuntu | Win 的安装包
    • 明 /暗主题支持

    问题

    • dplayer 不支持混流, 借助其事件机制配合原生 audio 简单实现混流, 可能会发生音画不同步的情况(多出现在切换视频时), 暂停再播放可缓解
    • 评论区和弹幕屏蔽缺少高级功能, 只能满足简单浏览
    • 项目中把 Utils 写成了 Hooks 的命名形式, 个人放飞自我的做法, 觉得这样更美观

    todo

    • Rust + WASM 解决播放混流, 改进 DPlayer 的弹幕引擎
    • 完善评论区, 增加特色功能--查成分, 评论内容查重
    • 接入 B 站的字幕
    • 多窗口播放模式
    • 自定义插件支持
    • 可能会实现其他的功能模块

    技术细节

    基于 Tauri + Vite + Vue 3 构建, 也作为学习 Vue 3 的练手项目

    缘由

    个人无法抵抗推荐流 + 不喜欢 B 博, 所以几乎从来不用手机版和官方 Web.

    之前主要用 UWP 和自己写的一个 SPA 来刷视频动态.

    最近问题越来越多只能尝试自己解决

    1. 关注太多 UP 主(2000+), 无法快速有效的阅览完动态和视频
    2. B 站 Web 太占资源, 开 20-30 个视频 Tab 会导致新 Edge 直接崩溃
    3. 近期随机出现的 PCDN 令本大会员很恼火
    4. 偶尔有 down 的需求, 通过 CMD 使用 BBDown 稍显麻烦

    因为写过一些 dotNET, 所以先尝试阅读几款知名第三方 B 站客户端的源码 (BiliLite, 哔哩) 来改造, 但是 XAML 那个语法太难受了, 用过 Compose 和 SwiftUI 之后我没法接受这种语法, 而且无法跨平台, 个人会有一小半时间在用 Mac.

    经过 QT, Compose-jb 等几番周折知道了 Tauri.

    已基于 GPL v3 开源

    欢迎体验并提交 bug, 也欢迎 pr/fork/star.

    仓库地址: bbhouse-tauri

    附图: 1660423518png

    第 1 条附言    2022-08-14 19:10:17 +08:00

    目前在Ubuntu和Mac下视频播放有问题

    这两位的webkit内核对视频片段的请求头比较严格,我的反代写的比较粗糙,正在修。

    补一张Mac下的运行截图:

    番剧的播放还没做好

    图片

    12 条回复    2022-08-22 10:41:30 +08:00
    DIYgods
        1
    DIYgods  
       2022-08-14 08:25:38 +08:00   2
    DPlayer!
    YUX
        2
    YUX  
    PRO
       2022-08-14 08:27:22 +08:00 via Android
    真好 又可以 rust 入门了
    hronro
        3
    hronro  
       2022-08-14 09:25:18 +08:00
    所有视频都看不了,提示「 video load failed 」

    seelight
        4
    seelight  
    OP
       2022-08-14 14:18:34 +08:00
    @hronro 感谢您的体验和 Bug 提交。早上 Ventura 弹了个自动更新,手快点了下,没来得及测试,到我刚刚睡醒还卡在 Logo ,我下午恢复一下再测试。刚刚临时找了台 Ubuntu 试了下也报这个错误,看来对跨平台还是想得太简单了。修好了我再回复您。

    @YUX Rust 写起来确实好爽,就是我目前只写了很少一点,哈哈。正在啃几个教程和 B 站的一个视频,争取添砖加瓦.jpg


    @DIYgods 我焯,是野生的作者大佬本佬(大师球,太感谢啦,顺便说下我是从不可名状之网站扒源码扒到 Dplayer 的 XD ,一眼很有品位.jpg 。重度使用一波也发现了一些小问题,近期可能会提个 PR ,顺便在给 APlayer 写一下 types ,添砖加瓦.jpg 。
    slowman
        5
    slowman  
       2022-08-14 14:55:47 +08:00
    既然都做到这种程度了,是不是可以做一下港澳台番剧?
    比如 https://greasyfork.org/zh-CN/scripts/25718-%E8%A7%A3%E9%99%A4b%E7%AB%99%E5%8C%BA%E5%9F%9F%E9%99%90%E5%88%B6
    e1d4py0KiD6KgqkQ
        6
    e1d4py0KiD6KgqkQ  
       2022-08-14 18:37:37 +08:00 via Android
    以后有安卓版吗
    seelight
        7
    seelight  
    OP
       2022-08-14 18:45:35 +08:00
    @1423 正有此意,就是 b 站港澳台最近更新好像有点慢,话说我计划的评论区特色功能也是从油猴来的,哈哈。其实已经能看到追番了,我修完播放的问题就解决解析的问题。主要还是是 tauri 这个版本的 shell 交互有问题, 不支持系统 Shell 的默认中文编码,不然直接依赖 BBDown 省好多事。
    ![图片]( https://cos.endcloud.cn/blog/cache_pic/Xnip2022-08-14_18-37-21.jpg)
    seelight
        8
    seelight  
    OP
       2022-08-14 18:52:18 +08:00
    @1423 忘记 v2 的评论区不支持 md 了。。。补个图
    https://imgur.com/a/tt54DO9
    seelight
        9
    seelight  
    OP
       2022-08-14 19:01:47 +08:00
    @xuxinglin8888 Tauri 的 Roadmap 上确实有 Android 和 iOS 的支持计划,等不到支持的话等 Desktop 弄完我用 Compose 写一个,毕竟 Compose 写起来又快又爽,Android 的视频相关 lib 也很完善。
    willen
        10
    willen  
       2022-08-16 10:38:24 +08:00 via Android
    登录的二维码识别不了,相机拍了放入像册扫描也识别不了,导致一直没法登录,只有我有这个问题吗?
    willen
        11
    willen  
       2022-08-16 11:52:11 +08:00 via Android
    @willen 解决了,要换成浅色背景再扫码
    Asimov01
        12
    Asimov01  
       2022-08-22 10:41:30 +08:00
    跟我玩 B 站的需求及其一致,感谢创造分享!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3301 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 00:06 PVG 08:06 LAX 17:06 JFK 20:06
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86