一个用于Jellyfin内容管理、迁移和维护的Kotlin Multiplatform工具箱,提供命令行和图形界面两种版本。
🤖 本项目由 Claude Code 创建
使用 Anthropic 的 AI 助手进行完整开发,展示了 AI 辅助编程的强大能力。
- 🎬 导入导出 - 喜爱的电影和演员列表
- 🔄 智能迁移 - 跨服务器数据迁移,智能匹配内容
- 🔍 重复检测 - 发现并管理重复的电影内容
- 📋 内容预览 - 可视化浏览导出的数据
- 📊 详细日志 - 完整的操作过程追踪
- 📱 高DPI适配 - 完美支持高分辨率屏幕
- 🌐 跨平台 - 支持 Windows、macOS、Linux
- 🖥️ 双界面 - 图形界面(GUI)和命令行(CLI)
- Kotlin Multiplatform - 现代化的跨平台架构
- Compose Desktop - 原生的桌面UI体验
- Material Design 3 - 现代化的设计语言
- Ktor Client - 高性能的HTTP客户端
- kotlinx.serialization - 类型安全的数据序列化
- Claude Code AI - AI 辅助开发,提升代码质量
- Java 11 或更高版本
- Jellyfin服务器和有效的API Token
- 登录Jellyfin Web界面
- 进入 设置 > API密钥
- 点击 "+" 创建新的API密钥
- 复制生成的Token
# 构建所有版本
./build-gui.sh
# 或者只构建JAR文件
./gradlew jvmJar图形界面版本提供直观的操作体验:
# 运行GUI版本
./jellyfin-tools-gui
# 或直接运行JAR
java -cp build/libs/jtools-jvm-1.0.0.jar com.jtools.jellyfin.gui.MainKtGUI版本功能:
- 🎨 现代界面设计 - 左侧导航栏布局,直观易用
- 📱 多功能页面 - 主界面/日志/预览/重复检测/设置/关于六大功能页面
- 📊 智能状态栏 - 实时显示操作状态和进度指示
- 📝 专业日志系统 - 独立日志页面,支持实时和详细模式切换
- 🔧 可视化配置 - 图形化的连接配置和偏好设置
- 📁 文件管理 - 便捷的文件导入导出对话框
- 📱 UI缩放 - 完美适配高分辨率屏幕,缩放设置自动保存
- 🔍 重复检测 - 可视化显示重复电影,一键打开Jellyfin页面
- 👁️ 内容预览 - 导出文件的可视化预览,电影和演员分类展示
- ⚡ 响应式设计 - Material Design 3,完美适配不同屏幕尺寸
- 🤖 AI驱动 - 全程由Claude Code AI辅助开发,代码质量优异
命令行版本适合自动化和脚本使用:
./jellyfin-tools-cli test -s http://your-jellyfin-server:8096 -t your-api-token./jellyfin-tools-cli export -s http://your-jellyfin-server:8096 -t your-api-token -o favorites.json可选参数:
-u, --user: 指定用户ID(默认使用第一个用户)
./jellyfin-tools-cli import -s http://your-jellyfin-server:8096 -t your-api-token -i favorites.json-s, --server: Jellyfin服务器URL(必需)-t, --token: API Token(必需)-u, --user: 用户ID(可选,默认使用第一个用户)
-o, --output: 输出文件路径(必需)
-i, --input: 输入文件路径(必需)
导出的JSON文件包含以下信息:
{
"exportDate": "2024-01-01T12:00:00",
"serverUrl": "http://jellyfin-server:8096",
"userId": "user-id",
"favoriteMovies": [
{
"id": "movie-id",
"name": "电影名称",
"originalTitle": "原始标题",
"overview": "简介",
"productionYear": 2023,
"genres": ["动作", "科幻"],
"communityRating": 8.5,
"people": [...]
}
],
"favoritePeople": [
{
"id": "person-id",
"name": "演员姓名",
"type": "Actor",
"role": "角色名"
}
]
}可以构建适用于不同操作系统的原生安装包:
./gradlew packageMsi./gradlew packageDmg./gradlew packageDeb./gradlew packageDistributionForCurrentOSsrc/
├── commonMain/kotlin/ # 共享代码
│ ├── config/ # 配置类
│ ├── model/ # 数据模型
│ ├── api/ # API客户端
│ └── service/ # 业务逻辑
├── jvmMain/kotlin/ # JVM平台代码
│ ├── cli/ # 命令行界面
│ └── gui/ # 图形界面
│ ├── components/ # UI组件
│ ├── state/ # 状态管理
│ └── theme/ # 主题样式
├── jsMain/kotlin/ # JavaScript平台代码
└── nativeMain/kotlin/ # Native平台代码
./gradlew jvmTest./gradlew build# 运行GUI开发版本
./gradlew runDistributable- API限制: 工具在导入时会添加延迟以避免触发API限制
- 匹配策略: 优先使用ID匹配,失败时回退到名称搜索
- 错误处理: 导入过程中的错误会被记录但不会中断整个过程
- 备份建议: 在导入前建议备份目标Jellyfin实例
- 检查服务器URL是否正确(包含协议 http:// 或 https://)
- 确认API Token有效
- 检查网络连接和防火墙设置
- 确保目标服务器有相同的媒体文件
- 检查用户权限
- 查看错误日志了解具体失败原因
本项目完全由 Claude Code 创建,这是 Anthropic 推出的 AI 编程助手。Claude Code 具备以下能力:
- 🔧 全栈开发 - 从架构设计到功能实现的完整开发流程
- 🎨 UI/UX设计 - 现代化的用户界面设计和用户体验
- 📚 技术选型 - 合理选择和组合现代化技术栈
- 🐛 调试能力 - 快速定位和解决复杂的技术问题
- 📖 文档编写 - 详细的代码文档和用户指南
这个项目展示了 AI 在软件开发领域的巨大潜力,从零开始构建了一个功能完整、用户友好的桌面应用程序。
- ✨ 零人工干预 - 完全由 AI 独立设计和开发
- 🏗️ 现代架构 - 采用最新的 Kotlin Multiplatform 技术
- 🎯 用户导向 - 注重用户体验和界面美观
- 🧪 质量保证 - 包含完整的错误处理和边界情况考虑
- 📈 持续优化 - 根据用户反馈不断改进功能
MIT License
欢迎提交Issue和Pull Request!