{
  "schemaVersion": "1.0",
  "item": {
    "slug": "jellyfin-control",
    "name": "Jellyfin Control",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Titunito/jellyfin-control",
    "canonicalUrl": "https://clawhub.ai/Titunito/jellyfin-control",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/jellyfin-control",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=jellyfin-control",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "cli.js",
      "jellyfin.js",
      "package.json",
      "README.md",
      "SKILL.md",
      "tv.js"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/jellyfin-control"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/jellyfin-control",
    "agentPageUrl": "https://openagent3.xyz/skills/jellyfin-control/agent",
    "manifestUrl": "https://openagent3.xyz/skills/jellyfin-control/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/jellyfin-control/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Jellyfin Control",
        "body": "A robust skill to control Jellyfin playback and TV power via CLI."
      },
      {
        "title": "Features",
        "body": "🎯 One-Command Play: tv play \"Breaking Bad\" — turns on TV, launches Jellyfin, finds the next episode, and plays it.\nSmart Resume: Automatically finds the next unplayed episode for series.\nResume Position: Resumes Movies/Episodes exactly where left off (with Seek fallback for LG WebOS/Tizen).\nDevice Discovery: Auto-detects controllable sessions (TVs, Phones, Web).\nRemote Control: Full playback control (play, pause, stop, next, prev, volume, mute).\nTV Power & Apps: Turn TV on/off, launch apps — works with or without Home Assistant.\nTwo TV Backends: Home Assistant integration or direct WebOS (LG TVs, no HA needed).\nAndroid TV Support: Direct ADB backend for Chromecast w/ Google TV, Nvidia Shield, Fire TV, Mi Box — no HA needed.\nThree connection modes: Home Assistant (any TV), direct WebOS (LG), direct ADB (Android TV/Fire TV)."
      },
      {
        "title": "Minimal setup (Jellyfin only, no TV control)",
        "body": "{\n  \"skills\": {\n    \"entries\": {\n      \"jellyfin-control\": {\n        \"env\": {\n          \"JF_URL\": \"http://YOUR_IP:8096\",\n          \"JF_API_KEY\": \"your-api-key-here\",\n          \"JF_USER\": \"your-username\"\n        }\n      }\n    }\n  }\n}"
      },
      {
        "title": "With Home Assistant (recommended for TV control)",
        "body": "{\n  \"skills\": {\n    \"entries\": {\n      \"jellyfin-control\": {\n        \"env\": {\n          \"JF_URL\": \"http://192.168.1.50:8096\",\n          \"JF_API_KEY\": \"your-jellyfin-api-key\",\n          \"JF_USER\": \"victor\",\n          \"HA_URL\": \"http://192.168.1.138:8123\",\n          \"HA_TOKEN\": \"your-ha-long-lived-token\",\n          \"HA_TV_ENTITY\": \"media_player.lg_webos_tv_oled48c34la\",\n          \"TV_MAC\": \"AA:BB:CC:DD:EE:FF\"\n        }\n      }\n    }\n  }\n}"
      },
      {
        "title": "Direct WebOS (LG TV, no Home Assistant needed)",
        "body": "{\n  \"skills\": {\n    \"entries\": {\n      \"jellyfin-control\": {\n        \"env\": {\n          \"JF_URL\": \"http://192.168.1.50:8096\",\n          \"JF_API_KEY\": \"your-jellyfin-api-key\",\n          \"JF_USER\": \"victor\",\n          \"TV_IP\": \"192.168.1.100\",\n          \"TV_MAC\": \"AA:BB:CC:DD:EE:FF\"\n        }\n      }\n    }\n  }\n}\n\nFirst time with WebOS direct: The TV will show a pairing prompt. Accept it and save the TV_CLIENT_KEY the skill prints — add it to your env to skip the prompt next time."
      },
      {
        "title": "Direct ADB (Android TV / Fire TV / Chromecast with Google TV, no HA needed)",
        "body": "{\n  \"skills\": {\n    \"entries\": {\n      \"jellyfin-control\": {\n        \"env\": {\n          \"JF_URL\": \"http://192.168.1.50:8096\",\n          \"JF_API_KEY\": \"your-jellyfin-api-key\",\n          \"JF_USER\": \"victor\",\n          \"ADB_DEVICE\": \"192.168.1.100:5555\",\n          \"TV_MAC\": \"AA:BB:CC:DD:EE:FF\"\n        }\n      }\n    }\n  }\n}\n\nFirst time with ADB: Enable Developer Options on your TV (Settings → About → tap Build Number 7 times), then enable Network/USB debugging. First connection will show \"Allow debugging?\" on the TV — accept it. Requires adb installed on the OpenClaw host (sudo apt install adb)."
      },
      {
        "title": "Jellyfin (required)",
        "body": "VariableRequiredDescriptionJF_URLYesBase URL of your Jellyfin server, e.g. http://192.168.1.50:8096JF_API_KEYYesAPI key from Jellyfin Dashboard → Advanced → API KeysJF_USERNoUsername — used to resolve user ID for user-specific endpointsJF_USER_IDNoUser ID directly — avoids needing to call /UsersJF_PASSNoPassword — only if authenticating by user session"
      },
      {
        "title": "TV Control (optional — choose one backend)",
        "body": "VariableBackendDescriptionTV_BACKENDAllForce backend: homeassistant, webos, androidtv, or autoTV_PLATFORMHAForce platform: webos or androidtv (auto-detected from entity)HA_URLHAHome Assistant URL, e.g. http://192.168.1.138:8123HA_TOKENHAHA long-lived access token (Profile → Long-Lived Access Tokens)HA_TV_ENTITYHAEntity ID of your TV, e.g. media_player.lg_webos_tv_oled48c34laTV_IPWebOSLG TV IP address for direct WebOS SSAP connectionTV_CLIENT_KEYWebOSPairing key (printed on first connection — save it!)ADB_DEVICEAndroidTVTV address for ADB, e.g. 192.168.1.100:5555TV_MACAllTV MAC address for Wake-on-LAN (needed to turn on TV)TV_JELLYFIN_APPAllOverride Jellyfin app ID (auto: org.jellyfin.webos / org.jellyfin.androidtv)TV_BOOT_DELAYAllSeconds to wait after TV wake (default: 10)TV_APP_DELAYAllSeconds to wait after launching Jellyfin (default: 8)\n\nAuto-detection: If TV_BACKEND is auto (default):\n\nHA_URL + HA_TOKEN + HA_TV_ENTITY set → Home Assistant backend\nADB_DEVICE set → direct ADB (Android TV)\nTV_IP set → direct WebOS (LG)\nNothing set → TV commands disabled, Jellyfin-only mode"
      },
      {
        "title": "🎯 One-Command Play (the magic)",
        "body": "Turn on TV → launch Jellyfin → find next episode → play it. All in one command:\n\nnode skills/jellyfin-control/cli.js tv play \"Breaking Bad\"\nnode skills/jellyfin-control/cli.js tv play \"The Matrix\"\n\nThe skill validates the content exists BEFORE turning on the TV (fail fast)."
      },
      {
        "title": "Resume / Play Smart",
        "body": "If TV and Jellyfin are already running:\n\nnode skills/jellyfin-control/cli.js resume \"Breaking Bad\"\nnode skills/jellyfin-control/cli.js resume \"Matrix\" --device \"Chromecast\""
      },
      {
        "title": "TV Control",
        "body": "node skills/jellyfin-control/cli.js tv on           # Turn on (Wake-on-LAN)\nnode skills/jellyfin-control/cli.js tv off          # Turn off\nnode skills/jellyfin-control/cli.js tv launch       # Launch Jellyfin app\nnode skills/jellyfin-control/cli.js tv launch com.webos.app.hdmi1  # Launch specific app\nnode skills/jellyfin-control/cli.js tv apps         # List installed apps"
      },
      {
        "title": "Remote Control",
        "body": "node skills/jellyfin-control/cli.js control pause\nnode skills/jellyfin-control/cli.js control play\nnode skills/jellyfin-control/cli.js control next\nnode skills/jellyfin-control/cli.js control vol 50"
      },
      {
        "title": "Search Content",
        "body": "node skills/jellyfin-control/cli.js search \"Star Wars\""
      },
      {
        "title": "Library Stats & Scan",
        "body": "node skills/jellyfin-control/cli.js stats\nnode skills/jellyfin-control/cli.js scan            # requires admin API key"
      },
      {
        "title": "User History (requires admin API key)",
        "body": "node skills/jellyfin-control/cli.js history\nnode skills/jellyfin-control/cli.js history jorge --days 7"
      },
      {
        "title": "Choosing a TV Backend",
        "body": "FeatureHome AssistantDirect WebOSDirect ADB (Android TV)No BackendTV brandsAny (via HA)LG onlyAndroid TV, Fire TV, CCwGTV—Turn on (WoL)✅✅✅ (WoL or ADB wakeup)—Turn off✅✅✅—Launch apps✅✅✅—List apps✅ (via HA logs)✅ (direct output)✅ (direct output)—Extra dependencyNonenpm install wsapt install adbNoneSetup complexityMedium (need HA)Low (TV IP + MAC)Low (enable ADB on TV)NoneJellyfin playback✅✅✅✅\n\nRecommendation:\n\nAlready have Home Assistant? → Use HA backend (most versatile, any TV brand)\nLG WebOS TV, no HA? → Use direct WebOS backend\nAndroid TV / Fire TV / Chromecast with Google TV, no HA? → Use direct ADB backend\nNo smart TV control needed? → Skip TV config, resume works if Jellyfin app is already open"
      },
      {
        "title": "Security Notes",
        "body": "API keys only in openclaw.json env — never in workspace files, .env files, or markdown docs.\nHA tokens are long-lived and powerful. Create a dedicated HA user with limited permissions if possible.\nTV_CLIENT_KEY (WebOS) is sensitive — it allows full control of your TV. Treat it like a password.\nADB access grants full control of your Android TV. Ensure your network is secured — anyone on the same network could connect via ADB if debugging is enabled.\nAdmin operations (history, scan) require an admin-level Jellyfin API key and will fail gracefully with 403 if permissions are insufficient."
      },
      {
        "title": "Architecture",
        "body": "lib/jellyfin.js — Jellyfin REST API (auth, search, sessions, playback control)\nlib/tv.js — TV control abstraction (HA backend, WebOS backend, Wake-on-LAN)\ncli.js — User-friendly CLI with all commands"
      },
      {
        "title": "Workflow: Agent says \"Play Star Trek on TV\"",
        "body": "Agent → cli.js tv play \"Star Trek\"\n         │\n         ├── 1. Search Jellyfin for \"Star Trek\" (fail fast)\n         ├── 2. Find next unplayed episode\n         ├── 3. Wake-on-LAN → TV turns on\n         ├── 4. Wait 10s for boot\n         ├── 5. Launch Jellyfin app (HA or WebOS)\n         ├── 6. Wait 8s for session registration\n         ├── 7. Find Jellyfin session (retry 3x)\n         └── 8. Play episode on session"
      }
    ],
    "body": "Jellyfin Control\n\nA robust skill to control Jellyfin playback and TV power via CLI.\n\nFeatures\n🎯 One-Command Play: tv play \"Breaking Bad\" — turns on TV, launches Jellyfin, finds the next episode, and plays it.\nSmart Resume: Automatically finds the next unplayed episode for series.\nResume Position: Resumes Movies/Episodes exactly where left off (with Seek fallback for LG WebOS/Tizen).\nDevice Discovery: Auto-detects controllable sessions (TVs, Phones, Web).\nRemote Control: Full playback control (play, pause, stop, next, prev, volume, mute).\nTV Power & Apps: Turn TV on/off, launch apps — works with or without Home Assistant.\nTwo TV Backends: Home Assistant integration or direct WebOS (LG TVs, no HA needed).\nAndroid TV Support: Direct ADB backend for Chromecast w/ Google TV, Nvidia Shield, Fire TV, Mi Box — no HA needed.\nThree connection modes: Home Assistant (any TV), direct WebOS (LG), direct ADB (Android TV/Fire TV).\nQuick Start\nMinimal setup (Jellyfin only, no TV control)\n{\n  \"skills\": {\n    \"entries\": {\n      \"jellyfin-control\": {\n        \"env\": {\n          \"JF_URL\": \"http://YOUR_IP:8096\",\n          \"JF_API_KEY\": \"your-api-key-here\",\n          \"JF_USER\": \"your-username\"\n        }\n      }\n    }\n  }\n}\n\nWith Home Assistant (recommended for TV control)\n{\n  \"skills\": {\n    \"entries\": {\n      \"jellyfin-control\": {\n        \"env\": {\n          \"JF_URL\": \"http://192.168.1.50:8096\",\n          \"JF_API_KEY\": \"your-jellyfin-api-key\",\n          \"JF_USER\": \"victor\",\n          \"HA_URL\": \"http://192.168.1.138:8123\",\n          \"HA_TOKEN\": \"your-ha-long-lived-token\",\n          \"HA_TV_ENTITY\": \"media_player.lg_webos_tv_oled48c34la\",\n          \"TV_MAC\": \"AA:BB:CC:DD:EE:FF\"\n        }\n      }\n    }\n  }\n}\n\nDirect WebOS (LG TV, no Home Assistant needed)\n{\n  \"skills\": {\n    \"entries\": {\n      \"jellyfin-control\": {\n        \"env\": {\n          \"JF_URL\": \"http://192.168.1.50:8096\",\n          \"JF_API_KEY\": \"your-jellyfin-api-key\",\n          \"JF_USER\": \"victor\",\n          \"TV_IP\": \"192.168.1.100\",\n          \"TV_MAC\": \"AA:BB:CC:DD:EE:FF\"\n        }\n      }\n    }\n  }\n}\n\n\nFirst time with WebOS direct: The TV will show a pairing prompt. Accept it and save the TV_CLIENT_KEY the skill prints — add it to your env to skip the prompt next time.\n\nDirect ADB (Android TV / Fire TV / Chromecast with Google TV, no HA needed)\n{\n  \"skills\": {\n    \"entries\": {\n      \"jellyfin-control\": {\n        \"env\": {\n          \"JF_URL\": \"http://192.168.1.50:8096\",\n          \"JF_API_KEY\": \"your-jellyfin-api-key\",\n          \"JF_USER\": \"victor\",\n          \"ADB_DEVICE\": \"192.168.1.100:5555\",\n          \"TV_MAC\": \"AA:BB:CC:DD:EE:FF\"\n        }\n      }\n    }\n  }\n}\n\n\nFirst time with ADB: Enable Developer Options on your TV (Settings → About → tap Build Number 7 times), then enable Network/USB debugging. First connection will show \"Allow debugging?\" on the TV — accept it. Requires adb installed on the OpenClaw host (sudo apt install adb).\n\nEnvironment Variables\nJellyfin (required)\nVariable\tRequired\tDescription\nJF_URL\tYes\tBase URL of your Jellyfin server, e.g. http://192.168.1.50:8096\nJF_API_KEY\tYes\tAPI key from Jellyfin Dashboard → Advanced → API Keys\nJF_USER\tNo\tUsername — used to resolve user ID for user-specific endpoints\nJF_USER_ID\tNo\tUser ID directly — avoids needing to call /Users\nJF_PASS\tNo\tPassword — only if authenticating by user session\nTV Control (optional — choose one backend)\nVariable\tBackend\tDescription\nTV_BACKEND\tAll\tForce backend: homeassistant, webos, androidtv, or auto\nTV_PLATFORM\tHA\tForce platform: webos or androidtv (auto-detected from entity)\nHA_URL\tHA\tHome Assistant URL, e.g. http://192.168.1.138:8123\nHA_TOKEN\tHA\tHA long-lived access token (Profile → Long-Lived Access Tokens)\nHA_TV_ENTITY\tHA\tEntity ID of your TV, e.g. media_player.lg_webos_tv_oled48c34la\nTV_IP\tWebOS\tLG TV IP address for direct WebOS SSAP connection\nTV_CLIENT_KEY\tWebOS\tPairing key (printed on first connection — save it!)\nADB_DEVICE\tAndroidTV\tTV address for ADB, e.g. 192.168.1.100:5555\nTV_MAC\tAll\tTV MAC address for Wake-on-LAN (needed to turn on TV)\nTV_JELLYFIN_APP\tAll\tOverride Jellyfin app ID (auto: org.jellyfin.webos / org.jellyfin.androidtv)\nTV_BOOT_DELAY\tAll\tSeconds to wait after TV wake (default: 10)\nTV_APP_DELAY\tAll\tSeconds to wait after launching Jellyfin (default: 8)\n\nAuto-detection: If TV_BACKEND is auto (default):\n\nHA_URL + HA_TOKEN + HA_TV_ENTITY set → Home Assistant backend\nADB_DEVICE set → direct ADB (Android TV)\nTV_IP set → direct WebOS (LG)\nNothing set → TV commands disabled, Jellyfin-only mode\nUsage\n🎯 One-Command Play (the magic)\n\nTurn on TV → launch Jellyfin → find next episode → play it. All in one command:\n\nnode skills/jellyfin-control/cli.js tv play \"Breaking Bad\"\nnode skills/jellyfin-control/cli.js tv play \"The Matrix\"\n\n\nThe skill validates the content exists BEFORE turning on the TV (fail fast).\n\nResume / Play Smart\n\nIf TV and Jellyfin are already running:\n\nnode skills/jellyfin-control/cli.js resume \"Breaking Bad\"\nnode skills/jellyfin-control/cli.js resume \"Matrix\" --device \"Chromecast\"\n\nTV Control\nnode skills/jellyfin-control/cli.js tv on           # Turn on (Wake-on-LAN)\nnode skills/jellyfin-control/cli.js tv off          # Turn off\nnode skills/jellyfin-control/cli.js tv launch       # Launch Jellyfin app\nnode skills/jellyfin-control/cli.js tv launch com.webos.app.hdmi1  # Launch specific app\nnode skills/jellyfin-control/cli.js tv apps         # List installed apps\n\nRemote Control\nnode skills/jellyfin-control/cli.js control pause\nnode skills/jellyfin-control/cli.js control play\nnode skills/jellyfin-control/cli.js control next\nnode skills/jellyfin-control/cli.js control vol 50\n\nSearch Content\nnode skills/jellyfin-control/cli.js search \"Star Wars\"\n\nLibrary Stats & Scan\nnode skills/jellyfin-control/cli.js stats\nnode skills/jellyfin-control/cli.js scan            # requires admin API key\n\nUser History (requires admin API key)\nnode skills/jellyfin-control/cli.js history\nnode skills/jellyfin-control/cli.js history jorge --days 7\n\nChoosing a TV Backend\nFeature\tHome Assistant\tDirect WebOS\tDirect ADB (Android TV)\tNo Backend\nTV brands\tAny (via HA)\tLG only\tAndroid TV, Fire TV, CCwGTV\t—\nTurn on (WoL)\t✅\t✅\t✅ (WoL or ADB wakeup)\t—\nTurn off\t✅\t✅\t✅\t—\nLaunch apps\t✅\t✅\t✅\t—\nList apps\t✅ (via HA logs)\t✅ (direct output)\t✅ (direct output)\t—\nExtra dependency\tNone\tnpm install ws\tapt install adb\tNone\nSetup complexity\tMedium (need HA)\tLow (TV IP + MAC)\tLow (enable ADB on TV)\tNone\nJellyfin playback\t✅\t✅\t✅\t✅\n\nRecommendation:\n\nAlready have Home Assistant? → Use HA backend (most versatile, any TV brand)\nLG WebOS TV, no HA? → Use direct WebOS backend\nAndroid TV / Fire TV / Chromecast with Google TV, no HA? → Use direct ADB backend\nNo smart TV control needed? → Skip TV config, resume works if Jellyfin app is already open\nSecurity Notes\nAPI keys only in openclaw.json env — never in workspace files, .env files, or markdown docs.\nHA tokens are long-lived and powerful. Create a dedicated HA user with limited permissions if possible.\nTV_CLIENT_KEY (WebOS) is sensitive — it allows full control of your TV. Treat it like a password.\nADB access grants full control of your Android TV. Ensure your network is secured — anyone on the same network could connect via ADB if debugging is enabled.\nAdmin operations (history, scan) require an admin-level Jellyfin API key and will fail gracefully with 403 if permissions are insufficient.\nArchitecture\nlib/jellyfin.js — Jellyfin REST API (auth, search, sessions, playback control)\nlib/tv.js — TV control abstraction (HA backend, WebOS backend, Wake-on-LAN)\ncli.js — User-friendly CLI with all commands\nWorkflow: Agent says \"Play Star Trek on TV\"\nAgent → cli.js tv play \"Star Trek\"\n         │\n         ├── 1. Search Jellyfin for \"Star Trek\" (fail fast)\n         ├── 2. Find next unplayed episode\n         ├── 3. Wake-on-LAN → TV turns on\n         ├── 4. Wait 10s for boot\n         ├── 5. Launch Jellyfin app (HA or WebOS)\n         ├── 6. Wait 8s for session registration\n         ├── 7. Find Jellyfin session (retry 3x)\n         └── 8. Play episode on session"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Titunito/jellyfin-control",
    "publisherUrl": "https://clawhub.ai/Titunito/jellyfin-control",
    "owner": "Titunito",
    "version": "1.3.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/jellyfin-control",
    "downloadUrl": "https://openagent3.xyz/downloads/jellyfin-control",
    "agentUrl": "https://openagent3.xyz/skills/jellyfin-control/agent",
    "manifestUrl": "https://openagent3.xyz/skills/jellyfin-control/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/jellyfin-control/agent.md"
  }
}