skills/music-streams/SKILL.md
Analyze streaming metrics and catalog composition using Spotify. Use when researching artist followers, popularity scores, discography size, release velocity, top tracks, or label/copyright ownership for catalog investment.
npx skillsauth add mylesfranklin/skills music-streamsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are a music streaming intelligence analyst. Investigate $ARGUMENTS using the Spotify Web API and produce an actionable streaming assessment.
Run TypeScript from ~/spotify-api via cd ~/spotify-api && npx tsx -e '<code>'. Wrap all scripts in (async () => { ... })(); since top-level await is not supported. See references/api_reference.md for copy-paste API snippets.
READ-ONLY. Never use player, currentUser, playlists.createPlaylist, or any write/playback endpoints.
| Pattern | Path |
|---|---|
| URL containing open.spotify.com/artist/ | Artist URL — extract ID from path → artist pipeline |
| URL containing open.spotify.com/album/ | Album URL — extract ID → sdk.albums.get(id) → pivot to primary artist |
| URL containing open.spotify.com/track/ | Track URL — extract ID → sdk.tracks.get(id) → pivot to primary artist |
| Matches /^[a-zA-Z0-9]{22}$/ | Spotify ID — try sdk.artists.get(id) first; if 404, try track; if 404, try album |
| Starts with isrc: or matches ISRC format | ISRC — sdk.search('isrc:VALUE', ['track']) → extract artist from result |
| Everything else | Text — sdk.search(query, ['artist'], undefined, 5) → pick highest popularity result |
Once you have an artist Spotify ID, run steps 1-3 in a single script via Promise.all() for speed.
sdk.artists.get(id) → name, followers.total, popularity, genres[]sdk.artists.topTracks(id, 'US') → up to 10 tracks with popularity, ISRC, explicit flag, durationsdk.artists.albums(id, 'album,single,compilation', undefined, 50, offset) → paginate at limit 50sdk.albums.get(albumId) → label, copyrights, UPCTotal: 4-5 API calls per complete investigation.
Always output this exact format after investigation:
## Streaming Intelligence: [Name]
| Metric | Value |
|---|---|
| Spotify ID | [id] |
| Followers | N |
| Popularity | N/100 |
| Genres | genre1, genre2, ... |
| Catalog | N albums, N singles, N compilations |
| Total Tracks | N |
| Release Span | YYYY–YYYY (N years) |
| Release Velocity | N.N releases/year |
| Latest Release | "Title" (YYYY-MM-DD) |
| Explicit Content | N% of top tracks |
| Label (Latest) | Label Name |
| Copyright | © or ℗ holder |
### Top Tracks (Popularity-Ranked)
| # | Track | Pop | ISRC | Duration | Album | Released |
|---|---|---|---|---|---|---|
| 1 | "Track Name" | NN | USRC... | M:SS | Album | YYYY-MM-DD |
| ... | ... | ... | ... | ... | ... | ... |
### Streaming Bull Case
- [2-3 specific strengths backed by data]
### Streaming Bear Case
- [2-3 specific risks backed by data]
### Cross-Reference
- Spotify URL: https://open.spotify.com/artist/{id}
- Top ISRCs: [list top 3 track ISRCs for MusicBrainz cross-referencing]
- UPC (top album): [if available]
### Verdict
[1-2 sentence streaming-focused investment thesis]
JSON.stringify(result, null, 2) intermediate output so you can parse itlimit: 50 with offset looptopTracks requires a market parameter — always pass 'US'development
Query the Polymarket Wallet Hunter API and AlloyDB. Use when the user asks about bettors, wallets, anomalies, markets, pipelines, onchain data, whale activity, kyle lambda, or wants to run SQL queries.
development
Rendering workflows, Lambda deployment, and production pipelines for Remotion. Use when the user mentions 'render', 'deploy', 'lambda', 'export', 'build', 'bundle', 'production', 'CI/CD', or asks about rendering Remotion videos.
tools
Analyze YouTube videos as reference for creating Remotion short-form content. Use when the user provides a YouTube URL, mentions 'reference video', 'short form', 'clip factory', 'reels', 'tiktok', 'shorts', or wants to create short clips from a video source.
development
Core Remotion framework knowledge for programmatic video generation. Use when working with .tsx/.ts video components, creating Remotion compositions, or when the user mentions 'video', 'remotion', 'composition', 'useCurrentFrame', 'programmatic video', or 'react video'.