FLUTTER ECOSYSTEM

openAnimeFlow/AnimeFlow

크로스 플랫폼 애니메이션 시청 및 추적 소프트웨어. Bangumi 서비스와 연동하여 사용자 수집 데이터를 동기화하고, 담담플레이와 연동하여 자막 경험을 제공하며, 원활한 시청 경험을 제공합니다.

애니메플로 프로젝트 이미지
Stars
221
Forks
20
최근 푸시(UTC)
2026. 9. 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 提供的图片识别番剧功能。


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