vcan / wiliwili

专为手柄控制设计的第三方跨平台B站客户端,目前可以运行在PC全平台和Nintendo Switch上 | Yet another Bilibili client [C++]

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

‼️:仅在最新 大气层 + 最新 固件 + FAT32 内存卡测试,其他组合出现的问题不进行处理。


wiliwili

一个第三方 Nintendo Switch B站客户端

icon

wiliwili 拥有非常接近官方PC客户端的B站浏览体验,
同时支持触屏与手柄按键操控,
让你的switch瞬间变身机顶盒与掌上平板。

GitHub release (latest by date) GitHub All Releases GitHub stars GitHub forks


支持特性

主题色:支持根据switch主题自动切换深浅
播放页:视频 番剧 影视 综艺,同时支持弹幕
个人页:扫码登录 历史记录 个人收藏
搜索页:视频 番剧 影视
动态页:关注的UP主更新的视频
直播页:不是十分稳定的支持 (也可以说是十分不稳定)
分类检索:快速找到想看的电影和番剧
首页推荐:完美复制原版pc端布局


安装流程

  1. 下载安装包:wiliwili releases
  2. 将wiliwli.nro放置在内存卡路径: switch/wiliwili.nro
  3. 在主页 按住 R键打开任意游戏进入HBMenu,在列表中选择wiliwili点击打开即可。
  4. [可选] 提供了NSP Forwarder (桌面图标)使用说明见下载压缩包内

TODO list

  • 初步完成底层基础组件、首页各类推荐视频、用户视频播放页
  • 微调页面、解决播放器启动速度慢、解决播放页面退出卡顿
  • 临时解决异步加载导致的空指针问题(图片异步加载某些情况还会出现问题,待修复)
  • 添加番剧/影视播放、添加扫码登录、播放历史、用户收藏夹(收藏夹相关部分工作不稳定)
  • 初步添加搜索
  • 播放页新增分集与UP主最新投稿
  • 完善视频播放页用户评论内容
  • 重构图片异步加载逻辑
  • 解决收藏夹、搜索页某些情况导致闪退的问题
  • 完善搜索页:番剧、影视 转为竖图
  • 完善播放页投稿列表:调整结构、自动加载下一页
  • 播放页展示合集与推荐
  • 添加动态页
  • 添加视频检索页
  • 完善设置页

反馈问题前要做的事

仅在最新 大气层 + 最新 固件 + FAT32 内存卡测试,其他组合出现的问题不进行处理。

  1. 首先确保 大气层固件内存卡 三者符合要求
  2. 确保switch系统时间正常,如果进入应用弹出 网络错误 一般是由这个问题导致的。
  3. 完整且详细地描述你的问题,最好附加演示视频、截图
  4. 尝试复现问题,尽力找到BUG出现的规律

贡献

本应用基于 nanovg 绘制界面,nanovg底层可移植切换到任意图形库,视频播放部分则使用MPV+FFMPEG 通过OpenGL绘制。 所以按照我的理解 wiliwili 应该可以移植到任何一个内存大于500MB,支持OpenGL(ES)的设备。

目前我正在处理mpv在switch上播放部分直播视频报错的问题,也欢迎了解 FFMPEG、MPV或命令行GDB调试的朋友与我联系共同研究。


开发

git clone --recursive https://github.com/xfangfang/wiliwili.git

PC本地运行(在 Linux 与 macOS 测试通过, Windows 应该也可以编译运行)

# macOS: install dependencies
brew install glfw3 glm mpv

# Ubuntu: install dependencies
sudo apt install libcurl4-openssl-dev libglfw3-dev libglm-dev libmpv-dev

# build
mkdir build && cd build && cmake -DPLATFORM_DESKTOP=ON ..
make wiliwili -j

交叉编译 Switch 可执行文件

稍后会制作一个docker镜像来更便捷的构建

# 安装devkitpro环境: https://github.com/devkitPro/pacman/releases

# 安装预编译的依赖
sudo dkp-pacman -S switch-glfw switch-mesa switch-glm \
  switch-sdl2 switch-zlib switch-mbedtls switch-libass \
  switch-cmake  switch-bzip2 devkita64-cmake

# 手动构建 ffmpeg与mpv
# 参考:https://github.com/proconsule/nxmp-portlibs

# build
mkdir build_switch && cd build_switch && cmake ..
make wiliwili.nro -j

应用截图

screenshot-2 screenshot-1

Acknowledgement

About

专为手柄控制设计的第三方跨平台B站客户端,目前可以运行在PC全平台和Nintendo Switch上 | Yet another Bilibili client [C++]

License:GNU General Public License v3.0


Languages

Language:C++ 99.3%Language:CMake 0.7%