openAnimeFlow/AnimeFlow
跨平台看番 、追番软件,对接Bangumi服务同步用户收藏数据,对接弹弹Play提供弹幕体验,为您提供流畅的观影体验
- Stars
- 221
- Forks
- 20
- Last push (UTC)
- Sep 18, 2026
- Project status
- Active
Technical topics
Dependencies used
Dependency list 69 items
- flutter
{"sdk":"flutter"} - flutter_localizations
{"sdk":"flutter"} - intl
^0.20.2 - cupertino_icons
^1.0.8 - flutter_svg
^2.2.3 - cached_network_image
^3.4.1 - shimmer
^3.0.0 - photo_view
^0.15.0 - lottie
^3.3.3 - bot_toast
^4.1.3 - media_kit
{"git":{"url":"https://github.com/Predidit/media-kit.git","ref":"78d4cce7b49d5b6b918f78b18ec1fbb7c400b9da","path":"./media_kit"}} - media_kit_video
{"git":{"url":"https://github.com/Predidit/media-kit.git","ref":"78d4cce7b49d5b6b918f78b18ec1fbb7c400b9da","path":"./media_kit_video"}} - media_kit_libs_video
{"git":{"url":"https://github.com/Predidit/media-kit.git","ref":"78d4cce7b49d5b6b918f78b18ec1fbb7c400b9da","path":"./libs/universal/media_kit_libs_video"}} - fvp
^0.38.1 - canvas_danmaku
0.3.3 - screen_brightness_platform_interface
^2.1.0 - screen_brightness_android
^2.1.3 - screen_brightness_ios
^2.1.2 - flutter_volume_controller
^2.0.1 - webview_flutter
^4.13.0 - flutter_inappwebview_platform_interface
^1.4.0-beta.3 - flutter_inappwebview_ios
^1.2.0-beta.3 - flutter_inappwebview_macos
^1.2.0-beta.3 - flutter_inappwebview_android
{"git":{"url":"https://github.com/pichillilorenzo/flutter_inappwebview.git","ref":"v6.2.0-beta.3","path":"flutter_inappwebview_android"}} - webview_windows
{"git":{"url":"https://github.com/Predidit/flutter-webview-windows.git","ref":"2b3306d2bfb9f22cbb328743b60e547cf50f0c3c"}} - desktop_webview_window
{"git":{"url":"https://github.com/Predidit/linux_webview_window.git","ref":"b429f8ba6b8a99cd0f7eb5fe8d1621f325635c3d"}} - dio
^5.10.0 - cookie_jar
^4.0.9 - crypto
^3.0.6 - html
^0.15.6 - xpath_selector
^3.0.2 - xpath_selector_html_parser
^3.0.1 - antlr4
^4.13.2 - flutter_riverpod
^3.2.1 - riverpod_annotation
^4.0.2 - go_router
^17.1.0 - flutter_secure_storage
^10.0.0 - hive_ce
^2.19.3 - hive_ce_flutter
^2.3.4 - path_provider
^2.1.5 - path
^1.9.1 - gal
^2.3.2 - open_file
^4.0.0 - package_info_plus
^8.3.1 - file_picker
^8.1.7 - flutter_foreground_task
^11.0.1 - device_info_plus
^11.3.0 - battery_plus
^7.1.1 - connectivity_plus
^6.0.5 - window_manager
^0.5.1 - url_launcher
^6.3.2 - flutter_opencc_plus
^0.1.3 - logger
^2.6.2 - synchronized
^3.4.1+2 - share_plus
^12.0.2 - flutter_markdown_plus
^1.0.7 - image_picker
^1.2.1 - crop_your_image
^2.0.0 - flutter_testDevelopment
{"sdk":"flutter"} - flutter_lintsDevelopment
^6.0.0 - riverpod_lintDevelopment
^3.1.3 - build_runnerDevelopment
^2.13.1 - hive_ce_generatorDevelopment
1.11.0 - riverpod_generatorDevelopment
^4.0.3 - go_router_builderDevelopment
^4.3.0 - rename_appDevelopment
^1.6.5 - change_app_package_nameDevelopment
^1.5.0 - flutter_launcher_iconsDevelopment
^0.14.4 - flutter_native_splashDevelopment
^2.4.7
Rankings
Original README
English project snapshot. Visit GitHub for the latest content.
Expand / collapse project README
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 爬虫配置支持
🖼️ 应用截图
桌面端
移动端
数据源管理
🛠️ 编译与启动
以下步骤适用于在本地从源码编译并运行 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 (推荐)
- 右上角 Edit Configurations…
- 选择 Flutter 运行配置
- 在 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_router、Hive 等注解代码,需重新生成:
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)。
联调步骤:
- 启动 AnimeFlow Service 后端(默认端口
1024) - 确保服务端
.env与客户端dart_defines.json中的 AppId / Secret 一致 - 按上文方式启动客户端
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/ |
📖 使用指南
添加数据源
- 进入 设置 → 数据源管理
- 点击右上角添加按钮
- 填写数据源配置信息:
- 版本号
- 名称(唯一标识)
- 图标链接
- 网站链接
- 搜索链接(使用
{keyword}作为搜索关键字占位符) - 搜索内容列表 XPath
- 搜索列表名称 XPath
- 搜索列表链接 XPath
- 线路名称 XPath
- 剧集列表 XPath
- 剧集链接 XPath
- 保存配置
使用超分辨率
- 在播放界面,点击底部控制栏的 超分辨率 按钮
- 选择超分辨率模式:
- 关闭:不使用超分辨率,节省性能
- 效率档:推荐用于中低端设备或低分辨率视频源
- 质量档:推荐用于高性能设备,可获得最佳画质提升
- 选择后立即生效
提示:
- 超分辨率功能对 GPU 性能要求较高,如果播放卡顿,建议选择效率档或关闭
- 对低分辨率视频源使用超分辨率效果更明显
- 质量档可能会造成设备卡顿,建议在独立显卡设备上使用
🤝 贡献
欢迎提交 Issue 和 Pull Request!
📄 许可证
本项目采用私有许可证,仅供学习和研究使用。
🙏 致谢
特别感谢 Anime4K 本项目使用 Anime4K 进行实时超分辨率处理。
特别感谢 Bangumi 本项目使用了 Bangumi 开放 API 以提供番剧元数据和用户数据同步。
特别感谢 DandanPlayer 本项目使用了 dandanplayer 开放 API 以提供弹幕体验。
特别感谢 trace.moe 本项目使用了 trace.moe 提供的图片识别番剧功能。
注意:本项目仅供学习交流使用,请遵守相关法律法规,尊重版权。