# Send Social Media Data Extractor to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- 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.
## Suggested prompts
### New install

```text
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.
```
### Upgrade existing

```text
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.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "social-media-extractor",
    "name": "Social Media Data Extractor",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/g4dr/social-media-extractor",
    "canonicalUrl": "https://clawhub.ai/g4dr/social-media-extractor",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/social-media-extractor",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=social-media-extractor",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/social-media-extractor"
    },
    "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."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/social-media-extractor",
    "downloadUrl": "https://openagent3.xyz/downloads/social-media-extractor",
    "agentUrl": "https://openagent3.xyz/skills/social-media-extractor/agent",
    "manifestUrl": "https://openagent3.xyz/skills/social-media-extractor/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/social-media-extractor/agent.md"
  }
}
```
## Documentation

### Overview

This skill enables Claude to extract public data from Instagram, TikTok, and Reddit
for trend analysis, content research, competitor monitoring, and audience insights —
powered by the Apify platform.

🔗 Sign up for Apify here: https://www.apify.com/?fpr=dx06p

### What This Skill Does

Extract public posts, hashtags, and profiles from Instagram
Scrape trending videos, comments, and creator stats from TikTok
Pull posts, threads, comments, and subreddit data from Reddit
Aggregate data across platforms for unified trend analysis
Output structured JSON data ready for analysis, dashboards, or export

### Step 1 — Get Your Apify API Token

Go to https://www.apify.com/?fpr=dx06p and create a free account
Once logged in, navigate to Settings → Integrations

Direct link: https://console.apify.com/account/integrations


Copy your Personal API Token — format: apify_api_xxxxxxxxxxxxxxxx
Store it as an environment variable:
export APIFY_TOKEN=apify_api_xxxxxxxxxxxxxxxx

Free tier includes $5/month of free compute — enough for regular trend monitoring runs.

### Step 2 — Install the Apify Client

npm install apify-client

### Instagram

Actor IDPurposeapify/instagram-scraperScrape posts, hashtags, profiles, reelsapify/instagram-hashtag-scraperExtract posts by hashtagapify/instagram-comment-scraperPull comments from a specific post

### TikTok

Actor IDPurposeapify/tiktok-scraperScrape videos, profiles, hashtag feedsapify/tiktok-hashtag-scraperTrending content by hashtagapify/tiktok-comment-scraperComments from a specific video

### Reddit

Actor IDPurposeapify/reddit-scraperPosts and comments from subredditsapify/reddit-search-scraperSearch Reddit by keyword

### Extract Instagram Posts by Hashtag

import ApifyClient from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });

const run = await client.actor("apify/instagram-hashtag-scraper").call({
  hashtags: ["trending", "viral", "fyp"],
  resultsLimit: 50
});

const { items } = await run.dataset().getData();

// Each item contains:
// { id, shortCode, caption, likesCount, commentsCount,
//   timestamp, ownerUsername, url, hashtags[] }

console.log(\`Extracted ${items.length} posts\`);

### Extract TikTok Trending Videos by Hashtag

const run = await client.actor("apify/tiktok-hashtag-scraper").call({
  hashtags: ["trending", "lifehack"],
  resultsPerPage: 30,
  shouldDownloadVideos: false
});

const { items } = await run.dataset().getData();

// Each item contains:
// { id, text, createTime, authorMeta, musicMeta,
//   diggCount, shareCount, playCount, commentCount }

### Scrape a Subreddit for Trend Analysis

const run = await client.actor("apify/reddit-scraper").call({
  startUrls: [
    { url: "https://www.reddit.com/r/technology/" },
    { url: "https://www.reddit.com/r/worldnews/" }
  ],
  maxPostCount: 100,
  maxComments: 20,
  sort: "hot"
});

const { items } = await run.dataset().getData();

// Each item contains:
// { title, score, upvoteRatio, numComments, author,
//   created, url, selftext, subreddit, comments[] }

### Multi-Platform Trend Aggregation

const [igRun, ttRun, rdRun] = await Promise.all([
  client.actor("apify/instagram-hashtag-scraper").call({
    hashtags: ["aitools"], resultsLimit: 30
  }),
  client.actor("apify/tiktok-hashtag-scraper").call({
    hashtags: ["aitools"], resultsPerPage: 30
  }),
  client.actor("apify/reddit-search-scraper").call({
    queries: ["AI tools 2025"], maxItems: 30
  })
]);

const [igData, ttData, rdData] = await Promise.all([
  igRun.dataset().getData(),
  ttRun.dataset().getData(),
  rdRun.dataset().getData()
]);

const aggregated = {
  instagram: igData.items,
  tiktok: ttData.items,
  reddit: rdData.items,
  totalPosts: igData.items.length + ttData.items.length + rdData.items.length,
  extractedAt: new Date().toISOString()
};

### Using the REST API Directly

const response = await fetch(
  "https://api.apify.com/v2/acts/apify~tiktok-scraper/runs",
  {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "Authorization": \`Bearer ${process.env.APIFY_TOKEN}\`
    },
    body: JSON.stringify({
      hashtags: ["viral"],
      resultsPerPage: 25
    })
  }
);

const { data } = await response.json();
const runId = data.id;

// Poll for completion
const resultRes = await fetch(
  \`https://api.apify.com/v2/actor-runs/${runId}/dataset/items\`,
  { headers: { Authorization: \`Bearer ${process.env.APIFY_TOKEN}\` } }
);

const posts = await resultRes.json();

### Trend Analysis Workflow

When asked to analyze trends, Claude will:

Identify the target platform(s) and keywords/hashtags
Run the appropriate Apify actor(s) in parallel when multi-platform
Collect all posts with engagement metrics (likes, views, comments, shares)
Sort & rank content by engagement rate or volume
Identify patterns — recurring hashtags, peak posting times, top creators
Return a structured report with top trends, key metrics, and actionable insights

### Output Data Structure (Normalized)

{
  "platform": "tiktok",
  "id": "7302938471029384",
  "text": "This AI tool is insane #aitools #viral",
  "author": "techreviewer99",
  "engagement": {
    "likes": 142300,
    "comments": 4820,
    "shares": 9100,
    "views": 2300000
  },
  "hashtags": ["aitools", "viral"],
  "publishedAt": "2025-02-18T14:32:00Z",
  "url": "https://www.tiktok.com/@techreviewer99/video/7302938471029384"
}

### Best Practices

Always scrape only public content — never attempt to access private profiles
Set reasonable resultsLimit values (50–200) to stay within your Apify quota
For recurring analysis, schedule actor runs using Apify Schedules in the console
Store results in Apify Datasets for persistent access and historical comparison
Use sort: "hot" on Reddit and trending endpoints on TikTok for most relevant data
Add a proxyConfiguration block when scraping at scale to avoid rate limits:
proxyConfiguration: { useApifyProxy: true, apifyProxyGroups: ["RESIDENTIAL"] }

### Error Handling

try {
  const run = await client.actor("apify/tiktok-scraper").call(input);
  const dataset = await run.dataset().getData();
  return dataset.items;
} catch (error) {
  if (error.statusCode === 401) throw new Error("Invalid Apify token");
  if (error.statusCode === 429) throw new Error("Rate limit hit — reduce request frequency");
  if (error.message.includes("timeout")) throw new Error("Actor timed out — try a smaller batch");
  throw error;
}

### Requirements

An Apify account → https://www.apify.com/?fpr=dx06p
A valid Personal API Token from Settings → Integrations
Node.js 18+ for the apify-client package
No platform API keys required — Apify handles all platform access
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: g4dr
- Version: 1.0.0
## Source health
- Status: healthy
- Source download looks usable.
- Yavira can redirect you to the upstream package for this source.
- Health scope: source
- Reason: direct_download_ok
- Checked at: 2026-05-07T17:22:31.273Z
- Expires at: 2026-05-14T17:22:31.273Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/social-media-extractor)
- [Send to Agent page](https://openagent3.xyz/skills/social-media-extractor/agent)
- [JSON manifest](https://openagent3.xyz/skills/social-media-extractor/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/social-media-extractor/agent.md)
- [Download page](https://openagent3.xyz/downloads/social-media-extractor)