FLUTTER ECOSYSTEM

openAnimeFlow/AnimeFlow

クロスプラットフォームでアニメを視聴・追跡するソフトウェア。Bangumiサービスと連携してユーザーの収蔵データを同期し、ダンダンプレイと連携して字幕体験を提供し、スムーズな視聴体験をご提供します。

アニメフロー のプロジェクト画像
Stars
221
Forks
20
最終プッシュ(UTC)
2026/09/18
プロジェクト状態
公開中
open-flow GitHub avatar
GITHUB Organization

open-flow ↗

这里将包含AnimeFlow所有开源的库

言語DartGLSLC++Inno SetupCMakeSwiftKotlinCANTLRObjective-C

技術トピック

使用している依存関係

依存関係一覧 69 件

ランキング

元の README

以下は英語原文のスナップショットです。最新版は GitHub をご覧ください。

README を開く / 閉じる
AnimeFlow Logo

AnimeFlow · 跨平台看番与追番客户端

AnimeFlow 是一款跨平台的看番软件、追番软件与动漫播放器。支持 Android、iOS、Windows、macOS 和 Linux,提供多数据源播放、弹幕、Anime4K 实时视频超分辨率、Bangumi 收藏同步和自定义爬虫配置。

无论是查找新番、管理追番列表,还是播放动漫视频,AnimeFlow 都希望让从“找番”到“看番”的过程更简单。

项目仍在持续开发中,部分功能和数据源可能会发生变化。欢迎通过 Issue 反馈问题或提出建议。

📥 下载

✨ 功能概览

功能 说明
跨平台播放 Android、iOS、Windows、macOS、Linux
番剧管理 连接 Bangumi,管理收藏、追番列表与观看信息
视频播放 多数据源、自定义数据源与线路切换
弹幕 Bilibili、Gamer、弹弹Play 等弹幕源
实时超分辨率 基于 Anime4K,提供效率档与质量档
番剧识别 使用 trace.moe 通过截图识别番剧

✨ 主要功能

📱 多平台支持
  • 移动端:Android、iOS
  • 桌面端:Windows、macOS、Linux
💬 弹幕系统
  • 支持多平台弹幕源:
    • Bilibili
    • Gamer
    • 弹弹Play
  • 丰富的弹幕设置:
    • 透明度调节
    • 字体大小调节
    • 弹幕速度调节
    • 显示区域控制
    • 弹幕类型筛选(滚动/顶部/底部)
    • 样式设置(边框、颜色、密集模式)
🎬 超分辨率功能
  • 基于 Anime4K:使用 Anime4K 开源算法实现实时视频超分辨率
  • 多种模式
    • 效率档:使用轻量级模型,性能优先,适合中低端设备
    • 质量档:使用高质量模型,画质优先,需要较强的 GPU 性能
  • 实时处理:在播放过程中实时提升视频清晰度
📚 Bangumi 集成
  • 用户系统:Bangumi账号登录,同步用户信息
  • 收藏管理:同步和管理Bangumi收藏列表
  • 推荐内容
    • 热门动漫推荐
    • 时间胶囊(动态时间线)
  • 每日放送:查看每周番剧更新日历
  • 排行榜:支持多种排序方式和时间筛选
  • 动漫详情
    • 详细信息展示
    • 角色介绍
    • 评论系统
    • 相关推荐
    • 标签分类
⚙️ 数据源管理
  • 支持自定义数据源配置
  • 灵活的数据源添加、编辑、删除
  • 多数据源切换
  • XPath 爬虫配置支持

🖼️ 应用截图

桌面端
桌面端截图1 桌面端截图2 桌面端截图3 桌面端截图4 桌面端截图5 桌面端截图6
移动端
移动端截图1 移动端截图2 移动端截图3 移动端截图4 移动端截图5 移动端截图6
数据源管理
数据源管理列表 添加数据源

🛠️ 编译与启动

以下步骤适用于在本地从源码编译并运行 AnimeFlow 客户端。

环境要求
工具 版本要求
Flutter 3.47.2(见 pubspec.yaml
Dart SDK >= 3.3.4
Android 构建 JDK 17、Android SDK
iOS 构建 macOS + Xcode
桌面端 Windows / macOS / Linux 对应平台工具链

安装 Flutter 后执行:

flutter doctor

确保目标平台(Android / iOS / Windows 等)显示为可用。

1. 获取源码并安装依赖
git clone https://github.com/openAnimeFlow/AnimeFlow.git
cd AnimeFlow
flutter pub get
2. 配置 API 签名密钥

客户端请求 AnimeFlow 服务端时需要携带签名头,密钥通过编译期变量注入。

方式 A:命令行直接传入(适合临时调试)

flutter run \
  --dart-define=ANIME_FLOW_APP_ID=your_app_id \
  --dart-define=ANIME_FLOW_SECRET=your_secret

方式 B:使用配置文件

在项目根目录创建 dart_defines.json(勿提交到 Git):

{
  "ANIME_FLOW_APP_ID": "your_app_id",
  "ANIME_FLOW_SECRET": "your_secret"
}

运行或编译时附加:

flutter run --dart-define-from-file=dart_defines.json

方式 C:IntelliJ IDEA / Android Studio (推荐)

  1. 右上角 Edit Configurations…
  2. 选择 Flutter 运行配置
  3. Additional run args 中填入:
--dart-define-from-file=dart_defines.json

或直接写:

--dart-define=ANIME_FLOW_APP_ID=your_app_id --dart-define=ANIME_FLOW_SECRET=your_secret

修改 --dart-define 后需完全重启应用(Hot Restart 不会重新加载编译期变量)。

3. 代码生成(可选)

项目已提交 .g.dart 等生成文件,日常运行通常无需执行。若你修改了 Riverpod、go_routerHive 等注解代码,需重新生成:

dart run build_runner build --delete-conflicting-outputs
4. 启动调试

查看可用设备:

flutter devices

在指定平台运行(按需替换 -d 参数):

# Windows
flutter run -d windows --dart-define-from-file=dart_defines.json

# Android(真机或模拟器)
flutter run -d android --dart-define-from-file=dart_defines.json

# macOS
flutter run -d macos --dart-define-from-file=dart_defines.json

# Linux
flutter run -d linux --dart-define-from-file=dart_defines.json

# iOS(需 macOS + Xcode)
flutter run -d ios --dart-define-from-file=dart_defines.json
5. 联调本地服务端

默认开发环境 API 地址为 http://127.0.0.1:1024(见 lib/http/api_path.dart 中的 AnimeFlowApi.animeFlowApiDev)。

联调步骤:

  1. 启动 AnimeFlow Service 后端(默认端口 1024
  2. 确保服务端 .env 与客户端 dart_defines.json 中的 AppId / Secret 一致
  3. 按上文方式启动客户端

Android 模拟器访问本机服务时,若 127.0.0.1 无法连通,需将 API 地址改为 10.0.2.2:1024(Android 模拟器访问宿主机的特殊地址)。

6. 编译发布包
# Android(按架构分包)
flutter build apk --split-per-abi --release --dart-define-from-file=dart_defines.json

# Windows
flutter build windows --release --dart-define-from-file=dart_defines.json

# macOS
flutter build macos --release --dart-define-from-file=dart_defines.json

# Linux
flutter build linux --release --dart-define-from-file=dart_defines.json

# iOS(需 macOS,签名配置见 Apple 开发者文档)
flutter build ios --release --dart-define-from-file=dart_defines.json

Release 包输出目录:

平台 输出路径
Android build/app/outputs/flutter-apk/
Windows build/windows/x64/runner/Release/
macOS build/macos/Build/Products/Release/
Linux build/linux/x64/release/bundle/

📖 使用指南

添加数据源
  1. 进入 设置数据源管理
  2. 点击右上角添加按钮
  3. 填写数据源配置信息:
    • 版本号
    • 名称(唯一标识)
    • 图标链接
    • 网站链接
    • 搜索链接(使用 {keyword} 作为搜索关键字占位符)
    • 搜索内容列表 XPath
    • 搜索列表名称 XPath
    • 搜索列表链接 XPath
    • 线路名称 XPath
    • 剧集列表 XPath
    • 剧集链接 XPath
  4. 保存配置
使用超分辨率
  1. 在播放界面,点击底部控制栏的 超分辨率 按钮
  2. 选择超分辨率模式:
    • 关闭:不使用超分辨率,节省性能
    • 效率档:推荐用于中低端设备或低分辨率视频源
    • 质量档:推荐用于高性能设备,可获得最佳画质提升
  3. 选择后立即生效

提示

  • 超分辨率功能对 GPU 性能要求较高,如果播放卡顿,建议选择效率档或关闭
  • 对低分辨率视频源使用超分辨率效果更明显
  • 质量档可能会造成设备卡顿,建议在独立显卡设备上使用

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

本项目采用私有许可证,仅供学习和研究使用。

🙏 致谢

特别感谢 Anime4K 本项目使用 Anime4K 进行实时超分辨率处理。

特别感谢 Bangumi 本项目使用了 Bangumi 开放 API 以提供番剧元数据和用户数据同步。

特别感谢 DandanPlayer 本项目使用了 dandanplayer 开放 API 以提供弹幕体验。

特别感谢 trace.moe 本项目使用了 trace.moe 提供的图片识别番剧功能。


注意:本项目仅供学习交流使用,请遵守相关法律法规,尊重版权。