{
  "schemaVersion": "1.0",
  "item": {
    "slug": "spotify-cli",
    "name": "Spotify",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ShawnPana/spotify-cli",
    "canonicalUrl": "https://clawhub.ai/ShawnPana/spotify-cli",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/spotify-cli",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=spotify-cli",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "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. 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. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "spotify-cli",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-10T03:04:54.717Z",
      "expiresAt": "2026-05-17T03:04:54.717Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=spotify-cli",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=spotify-cli",
        "contentDisposition": "attachment; filename=\"spotify-cli-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "spotify-cli"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/spotify-cli"
    },
    "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/spotify-cli",
    "agentPageUrl": "https://openagent3.xyz/skills/spotify-cli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/spotify-cli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/spotify-cli/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. 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. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Spotify CLI",
        "body": "A simple command-line interface for controlling Spotify playback from a Raspberry Pi (or any Linux system)."
      },
      {
        "title": "Requirements",
        "body": "Python 3\nSpotify Premium account\nspotipy Python library\nSpotify app open on another device (phone, computer, or web player)"
      },
      {
        "title": "1. Install dependencies",
        "body": "pip3 install spotipy --break-system-packages"
      },
      {
        "title": "2. Create a Spotify Developer App",
        "body": "Go to https://developer.spotify.com/dashboard\nLog in and click \"Create App\"\nSet Redirect URI to http://127.0.0.1:8888/callback\nCopy the Client ID and Client Secret"
      },
      {
        "title": "3. Create config file",
        "body": "mkdir -p ~/.config/spotify-cli\ncat << EOF > ~/.config/spotify-cli/config\nSPOTIPY_CLIENT_ID=your_client_id\nSPOTIPY_CLIENT_SECRET=your_client_secret\nSPOTIPY_REDIRECT_URI=http://127.0.0.1:8888/callback\nEOF\n\nThe script automatically loads credentials from ~/.config/spotify-cli/config."
      },
      {
        "title": "4. Install the script",
        "body": "sudo cp spotify /usr/local/bin/spotify\nsudo chmod +x /usr/local/bin/spotify"
      },
      {
        "title": "5. Authenticate",
        "body": "Run any command (e.g., spotify status). On first run, you'll get a URL to open in your browser. After authorizing, copy the redirect URL (even if the page doesn't load) and paste it when prompted."
      },
      {
        "title": "Commands",
        "body": "CommandDescriptionspotify search <query>Search for songs (shows top 5 results)spotify play <song>Search and play a songspotify pausePause playbackspotify resumeResume playbackspotify nextSkip to next trackspotify prevPrevious trackspotify statusShow currently playing trackspotify devicesList available Spotify devices"
      },
      {
        "title": "Examples",
        "body": "# Search for a song\nspotify search \"stairway to heaven\"\n\n# Play a song (tip: include artist for better results)\nspotify play \"stairway to heaven led zeppelin\"\n\n# Check what's playing\nspotify status\n\n# Control playback\nspotify pause\nspotify resume\nspotify next"
      },
      {
        "title": "Best Practices (for AI agents)",
        "body": "When using this tool on behalf of a user:\n\nAlways search first before playing. Use spotify search \"query\" to see results.\nVerify the match - confirm with the user that the search results match what they were looking for.\nThen play - once confirmed, use spotify play \"exact song name artist\" with the correct title/artist from the search results.\n\nThis avoids playing the wrong song due to Spotify's fuzzy search matching.\n\nExample workflow:\n\n# User asks: \"play voice actor u projected 2\"\n\n# Step 1: Search first\nspotify search \"voice actor u projected 2\"\n# Results show: \"U Projected 2 - Voice Actor, Yarrow.co\"\n\n# Step 2: Confirm with user that this is the right song\n\n# Step 3: Play with exact match\nspotify play \"U Projected 2 Voice Actor\""
      },
      {
        "title": "Notes",
        "body": "This CLI controls playback on an existing Spotify session. You need Spotify open on another device (phone, computer, or https://open.spotify.com).\nThe CLI sends commands to that device - audio plays there, not on the Pi.\nRequires Spotify Premium for playback control."
      },
      {
        "title": "\"No active device found\"",
        "body": "Open Spotify on your phone/computer and play something, then try again."
      },
      {
        "title": "\"No devices found\"",
        "body": "Make sure Spotify is open on at least one device and logged into the same account."
      },
      {
        "title": "Auth token expired",
        "body": "Delete ~/.cache-* files and re-authenticate."
      }
    ],
    "body": "Spotify CLI\n\nA simple command-line interface for controlling Spotify playback from a Raspberry Pi (or any Linux system).\n\nRequirements\nPython 3\nSpotify Premium account\nspotipy Python library\nSpotify app open on another device (phone, computer, or web player)\nInstallation\n1. Install dependencies\npip3 install spotipy --break-system-packages\n\n2. Create a Spotify Developer App\nGo to https://developer.spotify.com/dashboard\nLog in and click \"Create App\"\nSet Redirect URI to http://127.0.0.1:8888/callback\nCopy the Client ID and Client Secret\n3. Create config file\nmkdir -p ~/.config/spotify-cli\ncat << EOF > ~/.config/spotify-cli/config\nSPOTIPY_CLIENT_ID=your_client_id\nSPOTIPY_CLIENT_SECRET=your_client_secret\nSPOTIPY_REDIRECT_URI=http://127.0.0.1:8888/callback\nEOF\n\n\nThe script automatically loads credentials from ~/.config/spotify-cli/config.\n\n4. Install the script\nsudo cp spotify /usr/local/bin/spotify\nsudo chmod +x /usr/local/bin/spotify\n\n5. Authenticate\n\nRun any command (e.g., spotify status). On first run, you'll get a URL to open in your browser. After authorizing, copy the redirect URL (even if the page doesn't load) and paste it when prompted.\n\nCommands\nCommand\tDescription\nspotify search <query>\tSearch for songs (shows top 5 results)\nspotify play <song>\tSearch and play a song\nspotify pause\tPause playback\nspotify resume\tResume playback\nspotify next\tSkip to next track\nspotify prev\tPrevious track\nspotify status\tShow currently playing track\nspotify devices\tList available Spotify devices\nExamples\n# Search for a song\nspotify search \"stairway to heaven\"\n\n# Play a song (tip: include artist for better results)\nspotify play \"stairway to heaven led zeppelin\"\n\n# Check what's playing\nspotify status\n\n# Control playback\nspotify pause\nspotify resume\nspotify next\n\nBest Practices (for AI agents)\n\nWhen using this tool on behalf of a user:\n\nAlways search first before playing. Use spotify search \"query\" to see results.\nVerify the match - confirm with the user that the search results match what they were looking for.\nThen play - once confirmed, use spotify play \"exact song name artist\" with the correct title/artist from the search results.\n\nThis avoids playing the wrong song due to Spotify's fuzzy search matching.\n\nExample workflow:\n\n# User asks: \"play voice actor u projected 2\"\n\n# Step 1: Search first\nspotify search \"voice actor u projected 2\"\n# Results show: \"U Projected 2 - Voice Actor, Yarrow.co\"\n\n# Step 2: Confirm with user that this is the right song\n\n# Step 3: Play with exact match\nspotify play \"U Projected 2 Voice Actor\"\n\nNotes\nThis CLI controls playback on an existing Spotify session. You need Spotify open on another device (phone, computer, or https://open.spotify.com).\nThe CLI sends commands to that device - audio plays there, not on the Pi.\nRequires Spotify Premium for playback control.\nTroubleshooting\n\"No active device found\"\n\nOpen Spotify on your phone/computer and play something, then try again.\n\n\"No devices found\"\n\nMake sure Spotify is open on at least one device and logged into the same account.\n\nAuth token expired\n\nDelete ~/.cache-* files and re-authenticate."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ShawnPana/spotify-cli",
    "publisherUrl": "https://clawhub.ai/ShawnPana/spotify-cli",
    "owner": "ShawnPana",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/spotify-cli",
    "downloadUrl": "https://openagent3.xyz/downloads/spotify-cli",
    "agentUrl": "https://openagent3.xyz/skills/spotify-cli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/spotify-cli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/spotify-cli/agent.md"
  }
}