Skip to content
dev4harmonyPublic

About

PiliNara ported to HarmonyOS (ohos-Flutter). PiliPlus-based ohos platform layer merged into the PiliNara product codebase.

Topics

Resources

Stars

31 stars

Watchers

0 watching

Forks

Repository files navigation

PiliNara 鸿蒙版(HarmonyOS / OpenHarmony)

本分支是 PiliNara 的鸿蒙移植分支,鸿蒙平台适配层来自 dev4harmony/PiliPlus 的 ohos 分支。

Warning

本分支只做一件事:把 PiliNara 适配到鸿蒙。

  • 产品功能、界面与分支特性以 PiliNara 为准,鸿蒙侧不新增产品功能、不改变上游行为;
  • 除鸿蒙平台相关的桥接代码(ohos/、packages/、lib/harmony_adapt/、lib/media_kit_adapt/、 以及 OS.isHarmony 分支、挖孔/安全区、跨设备接续等调用点)之外,其余代码应尽量与 PiliNara 保持一致, 以便后续继续同步上游。
  • 目前仅保证 HarmonyOS 目标可编译、可运行到主要流程;未适配的功能见 AGENT.md 中的 TODO 清单。

提 issue 注意事项

  • 请先查看是否已存在类似 issue, 并确保问题属于鸿蒙版特有问题(即上游/安卓版本没有该问题)。
  • 与鸿蒙无关的功能问题请提到 PiliNara 上游。

编译运行

Tip

当前项目编译 API 已经提升到了 26.0.0,请在华为官网下载最新的配套 IDE 和 SDK 使用,防止编译异常。

  • 1、配置鸿蒙 Flutter 3.44.9 环境,参考 鸿蒙 flutter3.44.9;
  • 2、安装 DevEco Studio 与 HarmonyOS SDK(API 26),并配置好 DEVECO_SDK_HOME;
  • 3、用 vscode 打开本仓库,运行 build hap 任务或启动配置, 以确保应用内所需环境变量(.vscode/env.json)正确写入;
  • 4、应用包名为 com.dev4harmony.pilinara。

若遇到类似 Package not available (the pubspec for image_picker 1.1.2 from git has version 1.0.2). 这样的报错,可参考这篇掘金。

欢迎参与开发适配,让鸿蒙 PiliNara 更完善

感谢

以下是原上游项目README

PiliNara

基于PiliPlus做了一些自用修改

home home home
home

项目说明

  • 本项目PiliNara是基于PiliPlus进行修改的,做了一些自用的改动.
  • 本仓库保留了PiliPlus的所有功能,并在此基础上进行了部分自用的优化和调整.支持导入PiliPlus的设置和数据,也应该支持了导出设置和数据到PiliPlus.
  • 本项目会定期同步PiliPlus的更新,并在此基础上进行修改和优化.
  • 本项目仅供个人学习和测试使用,目前只打包了安卓版本,如有需要请自行Fork后编译.
  • 有啥需要的功能或者想法欢迎提issue或者PR,我会尽量抽时间进行开发和完善.
  • 本人开发水平有限,可能存在一些bug和不完善的地方,欢迎提交issue和PR.

在此致敬原作者和上游作者的无私奉献。如有侵权请联系删除。

改动说明(未来计划?)

Fork特性:

基础适配与界面

  • 应用名称由PiliPlus更改为PiliNara,做了各平台相应替换以实现共存
  • 修复Flutter在澎湃小窗下无法正常显示的问题,参考Flutter官方issue #161086,该问题似乎在HyperOS3上被修复 修复方案参考了venera/pull/467
  • 支持自定义「我的」页面卡片顺序和显示数量
  • 「我的」页面新增历史记录卡片预览和「稍后再看」卡片板块
  • 支持自动侧边栏切换,并可配置触发宽度
  • Android 支持预测性返回动画
  • 图片长按/右键菜单支持复制图片
  • 大量界面升级了 MD3E 风格,界面好看了点?

字体系统(基于上游初始版本修改)

  • 自定义字体系统重构:导入池支持多套字体同时管理,按内容哈希自动去重,重复导入同一文件不再占用空间;字体名读取字体文件内部名称(支持中文名/字重区分),非字体文件自动回落文件名
  • 弹幕字体并入统一字体池:弹幕字体与应用字体共用一套导入池,不再维护独立目录;移除正在使用的字体时立即回落,不会留下指向已删字体的设置
  • 字体设置页布局优化:选择器改为 M3 菜单(选中高亮+圆角),行高紧凑,导入/删除按钮与下拉对齐
  • 字体加载改用 dart:ui loadFontFromList:支持 ttc 字体集合,去除 services 依赖;字体族名改为纯 ASCII 哈希命名,避免与 Flutter 字体包名冲突

播放、小窗与画质

  • 实现了类似于Pilipro的应用内小窗功能,感谢原作者naaammme的无私奉献,在实现时参考了其逻辑

  • 应用内小窗支持拖动、双击调整大小、横竖屏比例自适应和仿官方控制栏操作

  • 应用内小窗增强:收起/展开过渡动画;记住拖动位置与缩放档位;移动端双指捏合和桌面端滚轮连续缩放;直播小窗新增底部控制栏(播放/暂停/刷新),直播卡死时可直接在小窗内自救

  • 应用内小窗支持SponsorBlock跳过片段,支持从应用内小窗返回桌面自动进入系统小窗

    演示图片:应用内小窗演示

  • 实现了可以和其他应用同时播放音频的功能

  • 播放器新增应用内音量控制功能,并支持在应用内音量模式下增强至 200%

  • 自定义视频 CDN 域名与区域节点选择:视频设置新增 CDN 节点选择器,可自定义视频 CDN 域名、按区域挑选节点,并支持测速对比延迟

  • 支持半屏和全屏独立选择默认画质

  • 全屏锁定按钮可设置显示在右侧,方便单手操作

  • 收藏夹/分P/合集支持随机播放(顺序/倒序/随机三态切换),随机模式下播完不循环

  • 倍速上滑锁定:长按倍速时上滑越线即可锁定,无需一直按着;锁定阈值按播放器实际高度自适应,降低误触发

  • 倍速纳入单独视频设置,切换视频或复用播放器时自动重置为默认倍速

  • 增强系统媒体控制(通知栏/锁屏)可根据多P/合集/播放列表动态显示上一集/下一集按钮

  • 平板端键盘控制:ESC 全平台返回生效,外接键盘可直接返回上一页;视频页支持方向键/PgUp/PgDn 滚动,长按连续滚动

  • 在听视频界面的评论中也实现了根据评论时间戳快速跳转的功能

  • 直播超级聊天(SC)卡片支持显示发送时间

  • 尝试支持直播心跳功能,用于粉丝团亲密度积累

字幕、AI 与离线缓存

  • 双语字幕:支持主字幕和副字幕同时显示,字幕选择面板改为主/副双栏;只有一条字幕时保留旧版单列菜单
  • 副字幕样式设置:副字幕可独立调整字号、全屏字号、字重、描边和背景不透明度,并支持调整主副字幕间距
  • AI 字幕分析功能:支持自定义 OpenAI 兼容 API 地址和模型、时间戳跳转、模板预设和对话持久化;AI 对话新增无字幕柔性降级策略
  • 在保存字幕的功能中添加了选择保存为原始WEBVTT格式和SRT格式的选项
  • 离线缓存新增"全部视频 / 文件夹"双视图,支持文件夹管理、手动排序、批量归类和按文件夹顺序播放
  • 离线缓存视频支持 CC 字幕下载与离线播放
  • 离线缓存播放支持元数据持久化,播放本地缓存时可恢复章节进度条与 SponsorBlock
  • 下载页支持导出离线缓存视频到公共 Download 目录,支持单个导出和批量多选(仅 Android)
  • 下载页支持继续播放上次播放的视频,也支持多选导出选中的下载条目

弹幕与屏蔽

  • 增强合并弹幕功能,添加类Pakku.js实现,重复弹幕字体随数量而增大,可设置放大阈值和放大速度

  • 合并弹幕字号放大功能新增总开关,关闭后合并弹幕与普通弹幕字号一致

    演示图片:合并弹幕演示

  • 增强原有的弹幕屏蔽功能,使用列表式可视化菜单替换了原有的|分割正则,尝试支持了更复杂的正则

  • 弹幕屏蔽列表支持导入/导出,方便跨设备迁移、备份或使用 AI 辅助编辑

  • SponsorBlock:新增"快进到片段中间时跳过"设置,手动拖动进度进入片段时也能自动跳过

  • 弹幕密度高能进度条改用高斯核算法 支持本地根据弹幕的分布情况计算的出高能进度条,提升数据缺失时的可用性

推荐、动态与评论过滤 对于推荐流、动态流和评论的过滤功能,在原有的基础上基于个人习惯和社区反馈进行了增强和调整,增加了更多的过滤条件和应用场景,并优化了过滤列表的编辑体验。

  • 推荐流过滤支持标题关键词、UP 名称关键词、分区关键词、屏蔽用户、视频时长、播放量、点赞率和已关注 UP 豁免,首页 app 端推荐还支持屏蔽无权查看视频(如充电专属视频)
  • 推荐流过滤器拓展到可选择应用到相关视频、热门视频、分区视频和搜索结果,搜索结果中仅过滤标题关键词和屏蔽用户
  • 推荐流新增共享白名单,支持在视频菜单和作者面板中一键加白
  • 动态流过滤支持关键词、屏蔽用户、带货动态、无权查看动态和充电专属视频动态;新增 UP 主本人评论和置顶评论的豁免
  • 评论过滤支持关键词、屏蔽用户、低等级用户、带货评论、UP 主点赞评论豁免和 UP 主参与回复评论豁免
  • App+Web 端推荐流合并模式,可在设置中切换

动态、搜索与用户信息

  • UP 主空间页和关注列表新增自定义备注功能,并支持在动态页和视频详情页作者名称后显示备注
  • 备注替换昵称:新增全局开关,开启后备注首行替换原昵称显示,覆盖视频卡片、评论区、动态、关注列表、播放页等 13 处名字位
  • 楼中楼评论默认排序独立设置:二级评论可单独设置排序方式,未设置时回退到主楼设置
  • 搜索结果新增客户端本地关键词过滤,支持包含关键词和排除关键词(以增强B站比较难用的搜索功能)
  • 搜索支持 b23.tv 短链,输入短链可直接跳转对应视频
  • 首页 App 端推荐视频卡片新增充电专属角标
  • 新增"显示视频推荐理由"设置项,可关闭首页视频卡片的"已关注"等推荐理由显示
  • 投币页面支持显示当天已获取经验数与经验上限

直播增强

  • 直播间粉丝勋章佩戴:输入面板新增粉丝勋章按钮,MD3E 风格底部面板展示勋章列表,支持佩戴/取消佩戴,自动分页加载
  • 直播间 DLNA 投屏,并优先使用 HLS 播放源提升兼容性
  • 直播超级聊天(SC)卡片支持设置显示发送时间
  • 直播小窗新增底部控制栏,直播卡死时可直接在小窗内自救

系统集成与桌面增强

  • Windows 系统媒体控制(SMTC):播放视频/音频时接入系统媒体传输控制,支持播放/暂停、上一集/下一集、快进/快退,封面本地加载优先
  • Linux 系统媒体控制(MPRIS):接入 audio_service_mpris,支持进度拖动、随机/循环/倍速,桌面环境自动拉取封面
  • 音频焦点处理重构:播放/暂停所有入口统一走底层播放路径,双击中间、底部按钮、键盘空格均参与焦点生命周期;允许与竞品同时播放时也保持豁免

适配平台

  • Android
  • iOS
  • Pad
  • Windows
  • Linux

Packaging status

refactor

  • gRPC [wip]
  • 用户界面
  • 其他

feat

  • 编辑动态
  • DLNA 投屏
  • 离线缓存/播放
  • 移动端支持点击弹幕悬停,点赞、复制、举报 by @My-Responsitories
  • 播放音频
  • 跳过番剧片头/片尾
  • 安卓端 loudnorm 适配 by @My-Responsitories
  • Win/Mac 支持极验、短信登录 by @My-Responsitories
  • 视频截取动图 by @My-Responsitories
  • AI 原声翻译
  • SuperChat
  • 播放课堂视频
  • 发起投票
  • 发布动态/评论支持富文本编辑/表情显示/@用户
  • 修改消息设置
  • 修改聊天设置
  • 展示折叠消息
  • 查看用户图文
  • 动态话题
  • 直播分区
  • 分享视频/番剧/动态/专栏/直播至消息
  • 创建/修改/删除关注分组
  • 移除粉丝
  • 直播弹幕发送表情
  • 收藏夹排序
  • 稍后再看 未看 / 未看完 / 已看完 分类
  • WebDAV 备份/恢复设置
  • 保存评论/动态
  • 高级弹幕 by @My-Responsitories
  • 取消/置顶评论
  • 记笔记
  • 多账号支持 by @My-Responsitories
  • 屏蔽带货动态/评论
  • 互动视频
  • 发评/动态反诈
  • 高能进度条
  • 滑动跳转预览视频缩略图
  • Live Photo
  • 复制/移动/排序收藏夹/稍后再看视频
  • 超分辨率
  • 会员彩色弹幕
  • 播放全部/继续播放/倒序播放
  • Cookie 登录
  • 显示视频分段信息
  • 调节字幕大小
  • 调节全屏弹幕大小
  • 收藏夹/稍后再看多选删除
  • 搜索用户动态
  • 直播弹幕
  • 修改头像/用户名/签名/性别/生日
  • 创建/编辑/删除收藏夹
  • 评论楼中楼查看对话
  • 评论楼中楼定位点击查看的评论
  • 评论楼中楼按热度/时间排序
  • 评论点踩
  • 私信发图
  • 投币动画
  • 取消/追番,更新追番状态
  • 取消/订阅合集
  • SponsorBlock
  • 显示视频完整合集
  • 三连动画
  • 番剧三连
  • 带图评论
  • 视频 TAG
  • 筛选搜索
  • 转发动态
  • 合集图片
  • 删除/置顶/撤回私信
  • 举报用户/评论/视频/动态
  • 删除/发布/置顶文本/图片动态
  • 其他

opt

  • 专栏界面
  • 私信界面
  • 收藏面板
  • PIP
  • 视频封面
  • 回复界面
  • 系统通知
  • 评论显示
  • 亮度调节
  • 视频播放
  • 视频 staff
  • 防止 bottomsheet 遮挡全屏视频
  • 其他

fix

  • 番剧分集点赞/投币/收藏
  • bugs

功能

  • 推荐视频列表(app 端)

  • 最热视频列表

  • 热门直播

  • 番剧列表

  • 屏蔽黑名单内用户视频

  • 无痕模式(播放视为未登录)

  • 游客模式(推荐视为未登录)

  • 用户相关

    • 粉丝、关注用户、拉黑用户查看
    • 用户主页查看
    • 关注/取关用户
    • 离线缓存
    • 稍后再看
    • 观看记录
    • 我的收藏
    • 站内私信
  • 动态相关

    • 全部、投稿、番剧分类查看
    • 动态评论查看
    • 动态评论回复功能
  • 视频播放相关

    • 双击快进/快退
    • 双击播放/暂停
    • 垂直方向调节亮度/音量
    • 垂直方向上滑全屏、下滑退出全屏
    • 水平方向手势快进/快退
    • 全屏方向设置
    • 倍速选择/长按 2 倍速
    • 硬件加速(视机型而定)
    • 画质选择(高清画质未解锁)
    • 音质选择(视视频而定)
    • 解码格式选择(视视频而定)
    • 弹幕
    • 字幕
    • 记忆播放
    • 视频比例:高度/宽度适应、填充、包含等
  • 搜索相关

    • 热搜
    • 搜索历史
    • 默认搜索词
    • 投稿、番剧、直播间、用户搜索
    • 视频搜索排序、按时长筛选
  • 视频详情页相关

    • 视频选集(分 p)切换
    • 点赞、投币、收藏/取消收藏
    • 相关视频查看
    • 评论用户身份标识
    • 评论(排序)查看、二楼评论查看
    • 主楼、二楼评论回复功能
    • 评论点赞
    • 评论笔记图片查看、保存
  • 设置相关

    • 画质、音质、解码方式预设
    • 图片质量设定
    • 主题模式:亮色/暗色/跟随系统
    • 震动反馈(可选)
    • 高帧率
    • 自动全屏
    • 横屏适配
  • 等等


下载

可以通过右侧 release 进行下载或拉取代码到本地进行编译

Arch Linux

感谢 @nlsdt 的打包

推荐:Arch Linux CN 软件源

若还未配置 Arch Linux CN 软件源, 前往 wiki 进行配置 若已配置,可直接安装:

sudo pacman -S pilinara

AUR 安装

  • pilinara(源码构建)
  • pilinara-bin( Release 预编译二进制)
# 使用 paru 安装
paru -S pilinara-bin
# 使用 yay 安装
yay -S pilinara-bin

声明

此项目(PiliNara)是个人为了兴趣而开发,仅用于学习和测试,请于下载后24小时内删除。 所用API皆从官方网站收集,不提供任何破解内容。 在此致敬原作者:guozhigq/pilipala 在此致敬上游作者:orz12/PiliPalaX 在此致敬上游作者:bggRGjQaUbCoE/PiliPlus 本仓库做了一些自用修改,感谢原作者的开源精神。

感谢使用


致谢




Star History

Star History Chart

About

PiliNara ported to HarmonyOS (ohos-Flutter). PiliPlus-based ohos platform layer merged into the PiliNara product codebase.

Topics

Resources

Stars

31 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages