back to home

xfangfang / wiliwili

第三方B站客户端,目前可以运行在PC全平台、PSVita、PS4 、Xbox 和 Nintendo Switch上

4,978 stars
228 forks
83 issues
C++ShellCMake

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing xfangfang/wiliwili in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/xfangfang/wiliwili)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

一个专为手柄用户设计的第三方 B站 客户端 特点 | 安装 | 文档 | 开发 • - - 特点 wiliwili 拥有非常接近官方PC客户端的B站浏览体验 同时支持**触屏**、**鼠标**、**键盘** 与 **手柄**操控 无论是电脑还是游戏掌机都能获得全新的使用体验 多语言:简、繁、日、韩、英 ... 搜索页:热搜 视频 番剧 影视 筛选页:快速找到想看的影视内容 动态页:关注的UP主最近视频动态 直播页:关注的主播与其他系统推荐 播放页:视频 番剧 电影 纪录片 综艺,支持弹幕与评论 个人页:扫码登录 历史记录 个人收藏 我的追番 我的追剧 主题色:拥有深浅两色主题,跟随系统自动切换 安装 Nintendo Switch • 下载 :wiliwili releases • 将 wiliwili.nro 放置在**内存卡** 目录下。 • 在主页 R键打开任意游戏进入 hbmenu,在列表中选择 wiliwili 点击打开即可。 • [可选] 在应用内安装桌面图标,入口:设置/实用工具/使用教程 桌面图标会优先尝试打开 ,如果其不存在,则尝试打开 ,如果这两个路径都不存在,则打开 hbmenu 自行选择路径。 默认提供的为 OpenGL 版本,最高只能播放 4k@30,你也可以下载到支持原生图形 api 的 deko3d 版本,可以流畅播放 4k@60,不过可能会偶尔崩溃。 PSVita 下载 安装即可:wiliwili releases 开启硬解后可以流畅播放 720P 横屏视频,480P 竖屏视频,部分直播 1080P 原画。 PS4 下载 安装即可:wiliwili releases 只支持软解,如果想播放 4k@60 需要在设置中开启低画质解码。 PC PC客户端支持切换硬件解码、秒开流畅适合老电脑、支持鼠标操控(左键点击 右键返回 中键刷新) 下载对应系统的安装包运行即可:wiliwili releases > [!TIP] > 现在 Linux & Steam Deck 用户可以通过系统自带的软件商店(如Discover、GNOME Software)搜索 进行下载。 > 更多使用技巧请参考 项目 WIKI 文档 在各位开发者的帮助下,wiliwili 支持了一系列包管理器,同时 wiliwili 还拥有丰富的自定义选项,包括:使用 Anime4K 提升观感,自定义字体及图标等等 前往 项目 WIKI 查看更多使用技巧 TODO list 如果你有其他改进的想法或创意,欢迎在讨论区交流:Discussions • [x] 初步完成底层基础组件、首页各类推荐视频、用户视频播放页 • [x] 微调页面、解决播放器启动速度慢、解决播放页面退出卡顿 • [x] 临时解决异步加载导致的空指针问题(图片异步加载某些情况还会出现问题,待修复) • [x] 添加番剧/影视播放、添加扫码登录、播放历史、用户收藏夹(收藏夹相关部分工作不稳定) • [x] 初步添加搜索 • [x] 播放页新增分集与UP主最新投稿 • [x] 完善视频播放页用户评论内容 • [x] 重构图片异步加载逻辑 • [x] 解决收藏夹、搜索页某些情况导致闪退的问题 • [x] 完善搜索页:番剧、影视 转为竖图 • [x] 完善播放页投稿列表:调整结构、自动加载下一页 • [x] 播放页展示合集与推荐 • [x] 添加动态页 • [x] 添加视频检索页 • [x] 完善设置页 • [x] 弹幕相关设置 • [x] 点赞、投币、收藏 • [x] 拖拽调节进度 • [x] 增加单手模式使用一个手柄来控制播放器 • [x] NSP forwarder自动检查多个位置的nro文件,避免无法打开 • [x] 增加设置使首页无法通过返回退出,避免误触 • [x] 使用教程添加未指明的快捷键说明 • [x] 重压摇杆临时快进 • [x] 支持切换按键图标 • [x] 应用内多语言切换 • [x] 重构搜索页面 • [x] 评论@显示不同颜色 • [x] 完善评论图片 • [x] 评论大表情包所在行增加行高 • [x] 支持webp图片 • [ ] 搜索支持搜索用户 • [ ] 长按一键三连 • [ ] 支持个人主页 • [ ] 评论跳转进度 • [ ] 评论跳转搜索 • [ ] 评论下方的更多信息 (up主点赞等内容) • [ ] 投票评论 • [ ] 互动视频 反馈问题前要做的事 • 网络相关的问题附加 ,入口:应用内设置/实用工具/网络诊断 • [Switch用户] 要确保 和 更新到 **最新** , 为 **FAT32** • [Switch用户] 如果打开应用黑屏时间过长,可以尝试删除内存卡目录 重新进入 • 确保 正确、系统 正确(主要是DNS)、如果使用了 请在反馈前关闭并重新测试 • 查找有没有其他人出现过类似的问题:Issues • **完整且详细地** 描述你的问题,最好附加演示视频、截图。 • 尝试复现问题,尽力找到BUG出现的规律 贡献 软件移植 本应用基于 nanovg 绘制界面,nanovg 底层可移植切换到任意图形库,已有 OpenGL/Vulkan/Metal 等支持。 视频播放部分则使用 FFMPEG + MPV 绘制,默认使用 OpenGL,有 D3D11/Deko3d/Gxm 或软件渲染支持。 触摸/按键/输入法等平台相关功能通过 GLFW 或 SDL 来支持,也可以脱离二者直接实现,比如 Gxm 版 PSV。 如果你要移植的设备支持 OpenGL(ES) 那么一般来说,直接编译就能正常运行。 如果你要移植的设备使用其他底层图形库,那么首先需要移植 nanovg,这可以确保应用主要界面正常, 其次为了更好的性能表现需要 ffmpeg 的硬解和 mpv 的渲染支持。 如果你有想要移植的设备欢迎发一条 issue 讨论,Android / iOS 不在讨论之内。 新功能 如果你有想完成的创意,请在开发前发布一个 issue 讨论,避免和别人的创意撞车浪费了时间 多语言支持 如果你想为软件添加多语言的翻译支持,或者发现了某些翻译存在问题需要订正,请查看 #52 了解如何贡献翻译 代码分支 主分支 yoga 为最新版本的代码 开发分支 dev 为正在开发中的代码,任何新的 PR 都需要向 dev 分支提交 开发 PC本地运行 目前 wiliwili 支持运行在 Linux macOS 和 Windows上 macOS Linux 不同 Linux 的编译过程或依赖可能不同,这里是一份总结:#89 欢迎在上面的链接中写出你所使用系统的编译过程供大家参考。 Windows 交叉编译 Switch 可执行文件 (wiliwili.nro) 推荐使用docker构建,本地构建配置环境略微繁琐不过可用来切换底层的ffmpeg或mpv等其他依赖库更灵活地进行调试。 以下介绍 OpenGL 下的构建方法,deko3d (更好的硬解支持)请参考: Docker 本地编译 交叉编译 PSV 可执行文件 使用本地环境来编译可以参考: • borealis 编译指南 • wiliwili vita 编译指南 注意: 我们使用自定义的 mbedtls, curl 和 ffmpeg 作为依赖, 在使用本地环境编译时,请先卸载 vitasdk 中的相关库,再安装指定的依赖. 交叉编译 PS4 可执行文件 使用本地环境来编译可以参考: • PacBrew 环境安装 • borealis 编译指南 • 编译 wiliwili 依赖的第三方库 GLFW or SDL wiliwili 使用 nanovg 绘制图形和文字,对于创建窗口、按键触摸、输入法等支持是通过 GLFW(默认) 或 SDL 完成的。 因为 GLFW 支持平台有限,在移植到新平台时可以使用 SDL 或者自行实现上述对应接口。 应用截图 Acknowledgement The development of wiliwili cannot do without the support of the following organization and open source projects. • Toolchain: devkitpro, switchbrew, vitasdk OpenOrbis and PacBrew • https://github.com/devkitPro • https://github.com/switchbrew/libnx • https://github.com/vitasdk • https://github.com/OpenOrbis • https://github.com/PacBrew • UI Library: natinusala and XITRIX • https://github.com/natinusala/borealis • https://github.com/XITRIX/borealis • Video Player: Cpasjuste, proconsule, fish47 and averne • https://github.com/Cpasjuste/pplay • https://github.com/proconsule/nxmp • https://github.com/fish47/FFmpeg-vita • https://github.com/fish47/mpv-vita • http://github.com/averne/FFmpeg • http://github.com/averne/mpv • Misc • https://github.com/libcpr/cpr • https://github.com/nlohmann/json • https://github.com/nayuki/QR-Code-generator • https://github.com/BYVoid/OpenCC • https://github.com/imageworks/pystring • https://github.com/sammycage/lunasvg • https://github.com/cesanta/mongoose • https://chromium.googlesource.com/webm/libwebp • https://github.com/fancycode/MemoryModule Special thanks • Thanks to Crowdin for supporting open-source projects.