Skip to content

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

License

Notifications You must be signed in to change notification settings

521hellogithub/wiliwili

 
 

Repository files navigation

‼️:仅在最新 大气层 + 最新 固件 + 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. 将 wiliwili.nro 放置在内存卡路径: switch/wiliwili.nro
  3. 在主页 按住 R键打开任意游戏进入HBMenu,在列表中选择wiliwili点击打开即可。
  4. [可选] 在应用内安装桌面图标,入口:设置/实用工具/使用教程

TODO list

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

反馈问题前要做的事

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

  1. 首先确保 大气层固件内存卡 三者符合要求
  2. 确保switch系统时间正常,如果进入应用弹出 网络错误 一般是由这个问题导致的。
  3. 重置switch系统网络设置,尤其是DNS配置,某些DNS服务器无法正确解析API域名和视频地址
  4. 完整且详细地描述你的问题,最好附加演示视频、截图。
  5. 网络相关的问题附加网络诊断截图,入口:设置/实用工具/网络诊断
  6. 尝试复现问题,尽力找到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本地运行

macOS
# macOS: install dependencies
brew install glfw3 glm mpv

mkdir -p build && cd build
cmake -DPLATFORM_DESKTOP=ON ..
make wiliwili -j
Linux
# Ubuntu: install dependencies (glfw3.3 or later)
sudo apt install libcurl4-openssl-dev libglfw3-dev libglm-dev libmpv-dev

mkdir -p build && cd build
cmake -DPLATFORM_DESKTOP=ON ..
make wiliwili -j
Windows
# Windows: install dependencies (MSYS2 MinGW64)
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-make \
  git mingw-w64-x86_64-glfw mingw-w64-x86_64-glm mingw-w64-x86_64-mpv

mkdir -p build && cd build
cmake -G "MinGW Makefiles" -DPLATFORM_DESKTOP=ON ..
mingw32-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
# 参考:https://github.com/xfangfang/wiliwili/issues/6#issuecomment-1236321540

# 可选:安装依赖库 mininsp:https://github.com/StarDustCFW/nspmini
# 1. 在resources 目录下放置:nsp_forwarder.nsp
# 2. cmake 构建参数添加 -DBUILTIN_NSP=ON
# 按上述配置后,从相册打开wiliwili时会增加一个安装NSP Forwarder的按钮

# 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 [WIP]

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 99.2%
  • CMake 0.8%