🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Artist Research

by @pozmac

Performs in-depth artist analysis combining Spotify API and external web data to report streaming stats, market position, and monetization potential.

Versionv1.0.0
Downloads677
TERMINAL
clawhub install artist-research

πŸ“– About This Skill

Artist Research β€” Skill for OpenClaw

Comprehensive artist analysis using Spotify API (Feb 2026 Development Mode limits) + web data sources. Generates professional reports with streaming data, market positioning, and monetization potential.

When to Use

  • User asks about an artist's performance, potential, or market position
  • User requests music industry analysis or artist comparison
  • User wants streaming data, chart history, or audience demographics
  • User is evaluating signing, managing, or collaborating with an artist
  • Prerequisites

  • Spotify API credentials in .env (SPOTIPY_CLIENT_ID, SPOTIPY_CLIENT_SECRET, SPOTIPY_REDIRECT_URI)
  • spotipy and python-dotenv packages installed
  • Internet access for web_fetch data sources
  • Methodology

    Step 1: Spotify API Data Collection

    Run spotify_api_lookup.py with artist name or ID. Collects:

  • Artist metadata (name, images, URI, genres)
  • Discography (albums, singles, track listings)
  • Related artists (for market positioning)
  • Search results for artist tracks
  • NOTE: Since Feb 2026, Development Mode does NOT return:

  • followers, popularity (for artists)
  • popularity (for tracks/albums)
  • top-tracks endpoint (REMOVED)
  • bulk fetch endpoints (REMOVED)
  • See references/spotify-endpoints-2026.md for full list.

    Step 2: External Data Sources (web_fetch)

    | Source | URL Pattern | Data Available | Reliability | |--------|-------------|----------------|-------------| | kworb.net | kworb.net/spotify/artist/{ID}.html | Chart history, total streams, peak positions, per-track streams | ⭐⭐⭐⭐⭐ Best source | | kworb.net | kworb.net/spotify/track/{ID}.html | Individual track daily streams | ⭐⭐⭐⭐⭐ | | Spotify Profile | open.spotify.com/artist/{ID} | Monthly listeners (visible in browser), verification status | ⭐⭐⭐⭐ (requires browser for ML) | | Google | Google search artist name + "monthly listeners" | AI overview with context | ⭐⭐⭐ | | Instagram | instagram.com/{handle} | Follower count, engagement | ⭐⭐⭐ (requires browser) |

    Sources that DON'T work with web_fetch (JS-heavy):

  • songstats.com (returns empty)
  • chosic.com (404)
  • chartmasters.org (404/broken)
  • tunemunk.com (no useful data)
  • Step 3: Data Synthesis

    Combine all sources into a structured report:

    ## ARTIST ANALYSIS: [Name]

    PROFILE

  • Spotify ID, verified status, profile completeness
  • Monthly listeners (from web/browser)
  • Followers (not available via API since Feb 2026)
  • DISCOGRAPHY

  • Albums/singles count, release timeline
  • Featured appearances and collaborations
  • Label/distribution info
  • STREAMING PERFORMANCE (from kworb.net)

  • Total tracked streams
  • Top tracks by streams
  • Chart peaks (country-specific)
  • Average streams per release
  • MARKET POSITION

  • Related artists comparison
  • Genre positioning
  • Audience tier classification
  • MONETIZATION ANALYSIS

  • Estimated monthly streaming revenue
  • Concert potential (based on ML tier)
  • Sync licensing opportunities
  • Merch potential
  • RECOMMENDATIONS

  • Specific growth opportunities
  • Release strategy suggestions
  • Collaboration targets
  • Step 4: Report Output

    Save report as:

  • reports/artist-report-{name}-{date}.md for storage
  • Present summary in chat with key metrics
  • Scripts

    All scripts are in this skill directory. Usage:

    # Step 1: Spotify API data
    python spotify_api_lookup.py "Artist Name"
    python spotify_api_lookup.py --id SPOTIFY_ID

    Step 2: kworb.net data (automated via web_fetch in main flow)

    Step 3: Full report (combines all sources)

    python generate_report.py "Artist Name"

    Data Tiers β€” Artist Classification

    | Tier | Monthly Listeners | Revenue Potential | Examples | |------|-------------------|-------------------|----------| | Underground | 0-5K | 200-1K PLN/mo | local acts | | Emerging | 5-20K | 1-4K PLN/mo | first buzz | | Developing | 20-60K | 4-12K PLN/mo | growing fanbase | | Established Indie | 60-200K | 12-40K PLN/mo | MichaΕ‚ AnioΕ‚, schafter | | Top Indie | 200-500K | 40-100K PLN/mo | Quebonafide tier | | Mainstream | 500K-2M | 100-400K PLN/mo | Dawid PodsiadΕ‚o | | Star | 2M-10M | 400K-2M PLN/mo | sanah, PRO8L3M | | Mega-star | 10M+ | 2M+ PLN/mo | global acts |

    Revenue Estimation Formula

    Monthly streaming revenue = Monthly Streams Γ— $0.003-0.005 (per stream)
    Concert revenue = (Capacity Γ— Ticket Price Γ— 0.7) per show
    Sync licensing = 5K-50K PLN per placement (one-time)
    

    Spotify API β€” Available vs Removed (Feb 2026)

    βœ… Available Endpoints

  • GET /artists/{id} β€” Artist metadata (limited fields)
  • GET /artists/{id}/albums β€” Artist's albums
  • GET /albums/{id} β€” Album details
  • GET /albums/{id}/tracks β€” Album tracks
  • GET /tracks/{id} β€” Track details
  • GET /search β€” Search (max 10 results)
  • GET /me/player/currently-playing β€” Now playing
  • GET /me/player/recently-played β€” Recent tracks
  • GET /me/top/{type} β€” User's top artists/tracks
  • GET /me β€” Current user profile
  • GET /me/playlists β€” User's playlists
  • POST /me/playlists β€” Create playlist
  • PUT/DELETE /me/library β€” Save/remove items
  • Full player control endpoints
  • ❌ Removed/Restricted Endpoints

  • GET /artists/{id}/top-tracks β€” REMOVED
  • GET /artists (bulk) β€” REMOVED
  • GET /tracks (bulk) β€” REMOVED
  • GET /albums (bulk) β€” REMOVED
  • GET /users/{id} β€” REMOVED
  • GET /users/{id}/playlists β€” REMOVED
  • GET /browse/new-releases β€” REMOVED
  • GET /browse/categories β€” REMOVED
  • GET /markets β€” REMOVED
  • ⚠️ Removed Fields

  • Artist: followers, popularity
  • Track: popularity, available_markets, linked_from
  • Album: popularity, label, available_markets, album_group
  • User: country, email, followers, product, explicit_content
  • Error Handling

    | Error | Cause | Solution | |-------|-------|----------| | 403 on /top-tracks | Endpoint removed Feb 2026 | Use kworb.net | | 404 on artist ID | Invalid ID or regional restriction | Check ID, try search | | Missing followers/popularity | Dev Mode restriction | Use kworb.net or SfA | | Encoding error (cp1250) | Polish characters in output | Replace emojis with [OK]/[!] | | web_search 404 | Token limit exceeded | Use web_fetch instead |

    Notes

  • Always cross-reference data from multiple sources
  • kworb.net is the most reliable source for streaming numbers
  • Spotify for Artists (SfA) dashboard has the richest data but requires manual access
  • web_search is currently unavailable (token limit) β€” use web_fetch on known URLs
  • Polish artist names may cause encoding issues β€” use ASCII-safe output
  • Version History

  • v1.0 (2026-03-16) β€” Initial skill creation, post-Spotify Feb 2026 changes
  • ⚑ When to Use

    TriggerAction
    - User requests music industry analysis or artist comparison
    - User wants streaming data, chart history, or audience demographics
    - User is evaluating signing, managing, or collaborating with an artist

    βš™οΈ Configuration

  • Spotify API credentials in .env (SPOTIPY_CLIENT_ID, SPOTIPY_CLIENT_SECRET, SPOTIPY_REDIRECT_URI)
  • spotipy and python-dotenv packages installed
  • Internet access for web_fetch data sources
  • πŸ“‹ Tips & Best Practices

  • Always cross-reference data from multiple sources
  • kworb.net is the most reliable source for streaming numbers
  • Spotify for Artists (SfA) dashboard has the richest data but requires manual access
  • web_search is currently unavailable (token limit) β€” use web_fetch on known URLs
  • Polish artist names may cause encoding issues β€” use ASCII-safe output