skills/music-youtube/SKILL.md
Analyze YouTube presence and engagement for music catalog investment. Use when researching artist view counts, subscriber growth, video engagement, Art Track metadata, or label/distributor signals from YouTube.
npx skillsauth add mylesfranklin/skills music-youtubeInstall 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 YouTube intelligence analyst. Investigate $ARGUMENTS using the YouTube Data API v3 and produce an actionable YouTube assessment.
Run TypeScript from /tmp/youtube-api via cd /tmp/youtube-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 call insert, update, delete, or any write endpoints.
| Pattern | Path |
|---|---|
| URL containing youtube.com/channel/UC | Channel URL — extract channel ID from path → channel pipeline |
| URL containing youtube.com/@ | Handle URL — extract handle → channels endpoint with forHandle (1 unit) |
| URL containing youtube.com/watch?v= or youtu.be/ | Video URL — extract video ID → videos endpoint → pivot to snippet.channelId |
| Matches /^UC[a-zA-Z0-9_-]{22}$/ | Channel ID — direct channels lookup |
| Everything else | Text — search endpoint (type=channel, q=query, maxResults=5). Costs 100 units — avoid when possible |
Once you have a channel ID, execute in order:
channels endpoint with snippet,statistics,contentDetails,topicDetails,brandingSettings → subscribers, total views, video count, creation date, country, uploads playlist ID, topic categories, keywordsplaylistItems paginated at maxResults=50 using the uploads playlist ID → collect all video IDs + titles + dates. Cap at 500 most recent videos for quota safety.videos endpoint batching 50 IDs per call with snippet,statistics,contentDetails,topicDetails → views, likes, comments, duration, categoryId, licensedContent flag, topic categories, tagssnippet.categoryId === "10" AND contentDetails.licensedContent === true. Parse structured descriptions to extract: distributor name, song title, artist, album, label/copyright holder, release date. Description format: "Provided to YouTube by [Distributor]\n\nSong · Artist\n\nAlbum\n\n℗ Year Label\n\nReleased on: YYYY-MM-DD\n\nAuto-generated by YouTube."Also search for the artist's Topic channel by querying search with "ArtistName - Topic" (type=channel) if Art Tracks are found on the main channel — this reveals the full auto-generated catalog.
Always output this exact format after investigation:
## YouTube Intelligence: [Name]
| Metric | Value |
|---|---|
| Channel ID | [id] |
| Handle | @handle |
| Subscribers | N |
| Total Views | N |
| Video Count | N |
| Channel Created | YYYY-MM-DD |
| Country | XX |
| Music Category | Y/N (based on topicCategories) |
| Licensed Content | N% of videos |
| Topic Categories | category1, category2 |
| Art Tracks Found | N |
| Top Video Views | N |
| Avg Views/Video | N |
| Engagement Rate | N% ((likes+comments) / views × 100) |
| Upload Velocity | N.N videos/month |
### Top Videos (View-Ranked)
| # | Title | Views | Likes | Comments | Duration | Published |
|---|---|---|---|---|---|---|
| 1 | "Title" | N | N | N | M:SS | YYYY-MM-DD |
| ... | ... | ... | ... | ... | ... | ... |
### Art Track Analysis
| Track | Album | Label | Distributor | Released |
|---|---|---|---|---|
| "Song" | Album Name | Label | Distributor | YYYY-MM-DD |
### YouTube Bull Case
- [2-3 specific strengths backed by data]
### YouTube Bear Case
- [2-3 specific risks backed by data]
### Cross-Reference
- Channel URL: https://www.youtube.com/channel/{id}
- Topic Channel: [URL if found]
- Top video IDs: [list top 3 for MusicBrainz cross-referencing]
### Verdict
[1-2 sentence YouTube-focused investment thesis]
JSON.stringify(result, null, 2) output so you can parse itmaxResults: 50 with nextPageToken loopvideos.list callsearch.list costs 100 units — prefer direct channel/handle lookup when possibleNumber() before mathdevelopment
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'.