agentsclimarketplace

Hasdata social

Skill HasData/hasdata-claude-plugin/skills/hasdata-social

Public Instagram and YouTube data. Instagram: bio, follower / following counts, post counts, profile picture, recent posts. YouTube: search results, video details, channel pages (videos, shorts, playlists, streams), and full video transcripts. Use this skill when the user wants to look up a public Instagram account, audit a profile, fetch follower stats, search YouTube, pull stats for a video or channel, or get the transcript / subtitles of a YouTube video. Triggers on "Instagram profile for", "follower count for", "look up @<handle>", "Instagram bio for", "search YouTube for", "YouTube channel stats", "views on this video", "transcript of this video", "subtitles for", "summarize this YouTube video", or any public social-platform research. Returns structured JSON.From its SKILL.md

Install
npx -y skills add HasData/hasdata-claude-plugin --skill hasdata-social

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

4.8 KB, as published. Nobody here has run it

hasdata social APIs

Public Instagram profile data plus YouTube search, video, channel, and transcript data.

When to use

  • User asks about a single public Instagram handle: bio, follower / following count, post count, profile pic
  • They want to search YouTube, or pull stats and metadata for a specific video or channel
  • They want the transcript of a YouTube video, for example to summarize or quote it
  • They're researching creators, brands, or competitors on either platform

Transcripts are the cheapest way to get a video's content: fetch the transcript instead of asking the user to watch, then summarize from the text.

For other social platforms (TikTok, X, LinkedIn, Facebook), no dedicated API exists. Fall back to hasdata-scrape on the public profile URL.

APIs in this group

CommandPurposeCost
instagram-profilePublic profile data for a single handle5
youtube-search-apiYouTube search results with duration / date / feature filters10
youtube-video-apiFull data for one video by video ID10
youtube-channel-apiChannel page by ID or handle, per tab (videos, shorts, ...)10
youtube-transcript-apiFull transcript / subtitles for one video10

Quick start

# Instagram profile by handle (no @ symbol)
hasdata instagram-profile --handle "hasdatadotcom" --pretty -o .hasdata/ig-hasdata.json

# Search YouTube, newest first, long-form only
hasdata youtube-search-api --q "web scraping tutorial" --date month --sort-by date \
  --pretty -o .hasdata/yt-search.json

# One video's details, then its transcript
hasdata youtube-video-api --v-param "dQw4w9WgXcQ" --pretty -o .hasdata/yt-video.json
hasdata youtube-transcript-api --v-param "dQw4w9WgXcQ" --pretty -o .hasdata/yt-transcript.json

# Channel uploads by handle
hasdata youtube-channel-api --channel-id "@hasdatadotcom" --tab videos \
  --pretty -o .hasdata/yt-channel.json

Tips

  • Instagram handle is required and must not include the @ symbol. Only public profiles are supported; private accounts return limited data.
  • YouTube video ID is the v= value, 11 characters, not the whole watch URL. For https://www.youtube.com/watch?v=dQw4w9WgXcQ pass dQw4w9WgXcQ.
  • Channel ID accepts either form: the canonical UC… ID or the public @handle.
  • Transcripts: add --type asr for the auto-generated track, or --language-code de for a specific language. The requested track has to exist on the video, so retry without --language-code if it comes back empty.
  • Channel tabs change the response shape: featured (default), videos, shorts, playlists, streams, posts, podcasts, releases.
  • Paginate channel and search results with --pagination-token from the previous response.
  • For bulk work (e.g., 50 creators), fan out with & + wait.

Working with results

# Instagram key stats
jq '{username, fullName, biography, followers: .followersCount, following: .followingCount, posts: .postsCount}' .hasdata/ig.json

# Transcript as plain text, ready to summarize
jq -r '.transcript[].snippet' .hasdata/yt-transcript.json | tr '\n' ' '

# Transcript with timestamps
jq -r '.transcript[] | "\(.startTimeText) \(.snippet)"' .hasdata/yt-transcript.json

# Compare follower counts across multiple profiles
for f in .hasdata/ig-*.json; do
  jq -r '"\(.username)\t\(.followersCount)"' "$f"
done | sort -k2 -n -r

See also

  • hasdata-scrape — for any other social platform's public pages
  • hasdata-search — google-short-videos for cross-platform short-form video research across YouTube, TikTok, and Instagram

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.