Install
openclaw skills install @thcjp/jellyfin-control-tool-proopenclaw skills install @thcjp/jellyfin-control-tool-pro功能说明: 本技能涵盖 中文交互、化工作流场景 等核心能力。
媒体控制专业版是面向多设备家庭和小型机构的进阶 Jellyfin 管理工具。在免费版基础控制能力之上,新增多设备管理、多用户配置、定时播放、媒体库自动化与播放统计等高级功能,支持复杂的家庭影院场景。与免费版完全兼容,已有配置可无缝升级.
| 能力 | 免费版 | PRO 版 |
|---|---|---|
| 一键播放 | 是 | 是 |
| 智能续播 | 是 | 是 |
| 设备发现 | 是 | 是 |
| 播放控制 | 是 | 是 |
| 多设备管理 | 否 | 是(同时控制多设备) |
| 多用户管理 | 否 | 是(权限配置) |
| 定时播放 | 否 | Cron 调度 |
| 就寝模式 | 否 | 自动关机 |
| 媒体库扫描 | 否 | 自动扫描整理 |
| 播放统计 | 否 | 历史分析 |
| 智能推荐 | 否 | AI 推荐 |
| 播放列表 | 否 | 自动生成 |
| API 接口 | 否 | REST API |
| 优先支持 | 社区 | 优先响应 |
处理: 解析功能对比的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回功能对比的响应数据,包含状态码、结果和日志.
node skills/jellyfin-control/cli.js multi-device \
--devices "living_room,bedroom,kitchen" \
--action play \
--content "playlist_name"
--devices "living_room,bedroom" \
--content "music_playlist"
python (请参考skill目录中的脚本文件) add \
--name="Alice" \
--permissions="play,search" \
--library-filter="movies,tvshows"
js switch-user "Alice"
python (请参考skill目录中的脚本文件) \
--content "morning_playlist" \
--cron="0 7 * * 1-5" \
--device "bedroom" \
--volume 30 \
--fade-in 60
python (请参考skill目录中的脚本文件) \
--content "sleep_sounds" \
--cron="0 22 * * *" \
--device "bedroom" \
--auto-off 60 \
--fade-out 300
python (请参考skill目录中的脚本文件) \
--schedule="0 3 * * *" \
--libraries "movies,tvshows,music" \
--notify=true
处理: 解析PRO 版独有功能的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回PRO 版独有功能的响应数据,包含状态码、结果和日志.
input_params参数,支持创建/查询/导出操作用input_params参数进行配置.
处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志.
input_params参数,支持创建/查询/导出操作
能力覆盖范围:本skill的核心能力覆盖以下场景关键词:企业级、媒体服务器管理工、支持多设备、媒体库自动化与播、适合家庭影院与小、型机构、核心能力、多设备同时管理与、多用户配置与权限、定时播放与就寝模、媒体库自动扫描与、播放历史统计与分、析报告、智能推荐与播放列、表管理等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.家庭聚会时,需要多个房间同步播放音乐.
--devices "living_room,bedroom,kitchen" \
--content "party_playlist" \
--sync-mode precise
--devices "living_room:50,bedroom:40,kitchen:30"
系统自动同步多个设备的播放进度,支持各房间独立音量控制.
工作日早晨自动播放音乐唤醒.
python (请参考skill目录中的脚本文件) \
--content "morning_classical" \
--cron="0 7 * * 1-5" \
--device "bedroom" \
--volume 20 \
--fade-in 120 \
--fade-out 600 \
--auto-off 30
python (请参考skill目录中的脚本文件) \
--content "weekend_jazz" \
--cron="0 9 * * 6,0" \
--device "bedroom" \
--volume 25
定期扫描整理媒体库,保持元数据更新.
python (请参考skill目录中的脚本文件) \
--schedule="0 3 * * *" \
--libraries "movies,tvshows,music" \
--scan-type "full" \
--fix-metadata \
--download-images \
--notify-email=admin@family.com
python (请参考skill目录中的脚本文件) \
--output=library_report.md \
--include-stats \
--include-duplicates
以下场景媒体控制专业版不适合处理:
需要数据分析、报表生成、统计洞察、数据可视化时使用。不适用于非本工具能力范围的需求.
npm install node-cron winston
pip install apscheduler
{
"skills": {
"entries": {
"jellyfin-control": {
"env": {
"JF_URL": "http://192.168.1.50:8096",
"JF_API_KEY": "your-jellyfin-api-key",
"JF_USER": "admin",
"DEVICES": {
"living_room": {
"backend": "homeassistant",
"ha_entity": "media_player.living_room_tv",
"mac": "AA:BB:CC:DD:EE:FF"
},
"bedroom": {
"backend": "webos",
"ip": "192.168.1.101",
"mac": "11:22:33:44:55:66"
},
"kitchen": {
"backend": "androidtv",
"adb_device": "192.168.1.102:5555",
"mac": "77:88:99:AA:BB:CC"
}
}
}
}
}
}
}
js tv play "Movie" --device "living_room"
jellyfin:
url: http://192.168.1.50:8096
api_key: ${JF_API_KEY}
admin_user: admin
devices:
living_room:
backend: homeassistant
ha_url: http://192.168.1.138:8123
ha_token: ${HA_TOKEN}
ha_entity: media_player.living_room_tv
mac: AA:BB:CC:DD:EE:FF
bedroom:
backend: webos
ip: 192.168.1.101
client_key: ${BEDROOM_CLIENT_KEY}
mac: 11:22:33:44:55:66
kitchen:
backend: androidtv
adb_device: 192.168.1.102:5555
mac: 77:88:99:AA:BB:CC
users:
- name: Alice
permissions: [play, search, control]
library_filter: [movies, tvshows]
- name: Bob
permissions: [play, search]
library_filter: [movies, music]
schedule:
timezone: Asia/Shanghai
storage: ./schedules
library:
auto_scan: true
scan_cron: "0 3 * * *"
fix_metadata: true
download_images: true
analytics:
enabled: true
track_history: true
report_frequency: weekly
storage: ./analytics
python (请参考skill目录中的脚本文件) --port 8000
curl -X POST http://localhost:8000/play \
-d '{"content": "Movie", "device": "living_room"}'
curl -X POST http://localhost:8000/schedule \
-d '{"content": "morning_music", "cron": "0 7 * * 1-5"}'
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
--device | 字符串 | 默认设备 | 设备名称 |
--devices | 字符串 | 无 | 多设备列表 |
--sync-mode | 字符串 | loose | 同步模式 |
--volume | 整数 | 50 | 音量 |
--fade-in | 整数 | 0 | 淡入秒数 |
--fade-out | 整数 | 0 | 淡出秒数 |
--auto-off | 整数 | 0 | 自动关机分钟 |
--cron | 字符串 | 无 | 定时表达式 |
--devices "living_room,bedroom" \
--sync-mode precise \
--buffer 1000
--devices "living_room:50,bedroom:30"
python (请参考skill目录中的脚本文件) \
--content "morning_playlist" \
--cron="0 7 * * 1-5" \
--device "bedroom" \
--fade-in 120 \
--auto-off 30
python (请参考skill目录中的脚本文件) \
--content "sleep_sounds" \
--cron="0 22 * * *" \
--device "bedroom" \
--volume 20 \
--fade-out 600 \
--auto-off 60
python (请参考skill目录中的脚本文件) \
--scan-type full \
--fix-metadata \
--download-images
python (请参考skill目录中的脚本文件) \
--output=report.md \
--include-duplicates \
--include-stats
js sync-play --sync-mode precise
js sync-play --buffer 2000
ping each_device_ip
python (请参考skill目录中的脚本文件) --list
cat ./logs/scheduled_play.log
python (请参考skill目录中的脚本文件) --run-now --task-id=task_001
ls -la /media/library
python (请参考skill目录中的脚本文件) --scan-now
cat ./logs/library_scan.log
python (请参考skill目录中的脚本文件) list
python (请参考skill目录中的脚本文件) check-permissions --user=Alice
python (请参考skill目录中的脚本文件) reset --user=Alice
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| Node.js 14+ | 运行时 | 是 | nodejs.org 下载 |
| Python 3.7+ | 运行时 | 是 | 系统包管理器安装 |
| Jellyfin 服务器 | 媒体服务 | 是 | jellyfin.org 部署 |
| ws | WebSocket 库 | 否(WebOS 时) | npm install ws |
| node-cron | 定时任务 | 否(推荐) | npm install node-cron |
| winston | 日志记录 | 否(推荐) | npm install winston |
| apscheduler | 定时任务 | 否(推荐) | pip install apscheduler |
| adb | Android 调试 | 否(AndroidTV 时) | apt install adb |
| Home Assistant | 智能家居 | 否(HA 后端时) | home-assistant.io 部署 |
| LLM API | API | 是 | 由 Agent 内置 LLM 提供 |
JF_API_KEY=your_jellyfin_api_key
HA_TOKEN=your_ha_long_lived_token
TV_CLIENT_KEY=your_webos_client_key
export SMTP_HOST=smtp.provider.com
export SMTP_PORT=587
export SMTP_USER=notify@family.com
export SMTP_PASSWORD=your_password
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
{
"success": true,
"data": {
"result": "媒体控制专业版处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "jellyfin control pro"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}
| 风险类型 | 防范措施 |
|---|---|
| API密钥泄露 | 通过环境变量配置,禁止硬编码到代码或配置文件中 |
| 命令执行风险 | 仅执行白名单命令,避免拼接用户输入到命令行参数中 |
| 网络通信安全 | 使用HTTPS协议,验证SSL证书有效性 |
| 敏感数据暴露 | 输出结果中不包含密钥、令牌等敏感信息 |
使用前请确认已阅读依赖说明章节,确保运行环境满足安全要求。