Social Media Sentiment Analyzer
Pricing
from $3.00 / 1,000 post analyzeds
Social Media Sentiment Analyzer
Analyze social media sentiment for any keyword, hashtag, or brand across Reddit, YouTube, X/Twitter, and Instagram. Returns per-post sentiment, emotion, aspect breakdown, language, and toxicity, plus an AI brand-health report with top praise, complaints, and crisis signals.
Pricing
from $3.00 / 1,000 post analyzeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
Social Media Sentiment Analyzer — AI Emotion, Aspects & Brand Health
Analyze social media sentiment for any keyword, hashtag, or brand across Reddit, YouTube, X/Twitter, and Instagram in one run. Give it a search term — it pulls fresh public posts and comments, scores each with AI (sentiment, emotion, aspect-based breakdown, language, optional toxicity), and produces an aggregate brand-health report (0–100 score, top praise, top complaints, crisis signals, recommendations).
Unlike comment scrapers that just bolt "sentiment" onto the title, this actor does real per-post analysis and an LLM-written intelligence report — and it stays reliable by orchestrating dedicated, battle-tested scrapers under the hood instead of fighting anti-bot itself.
When to use it
- Social listening & brand monitoring — what are people saying about your product, campaign, or competitor right now?
- Launch / campaign tracking — measure reception across platforms in one pass.
- Market & audience research — themes, emotions, and aspects behind the numbers.
- Community & brand safety — optional toxicity scoring per post.
- AI agents (MCP) — a single tool call: keyword in, structured sentiment + report out.
Not for: scraping one specific profile's full post history (use the platform-specific scrapers), or monitoring brand perception inside AI assistants like ChatGPT/Gemini (use AI Search Brand Monitor).
What you get
The dataset's first record is the aggregate report, followed by one record per analyzed post.
Brand-health report (record 1)
| Field | Description |
|---|---|
brandHealthScore | 0–100 overall sentiment health (100 = overwhelmingly positive) |
headline | One-line summary of overall sentiment |
summary | 3–5 sentence narrative for a quick skim |
sentimentBreakdown | positive / neutral / negative / mixed counts + percentages |
emotionDistribution | Emotion tallies (joy, anger, fear, sadness, surprise, disgust, trust, anticipation) |
topPraise / topComplaints | Up to 5 themes each, with frequency + an example quote |
crisisSignals | Reputational risks (boycotts, lawsuits, viral negativity, safety) with severity |
recommendations | Actionable next steps |
platformCounts | Posts analyzed per platform |
Per-post records
| Field | Description |
|---|---|
platform | reddit / youtube / twitter / instagram |
text, author, title, sourceUrl, publishedAt | The post and its metadata |
engagement | likes / comments / shares / score (per platform) |
sentiment, sentimentScore, confidence | Label, −1…+1 score, 0–1 confidence |
emotions | Detected emotions (AI engine) |
aspects | Aspect-based sentiment — which specific topics are positive/negative (AI engine) |
language | Detected ISO 639-1 language (AI engine) |
toxicity | 0–1 toxicity score (AI engine, when enabled) |
Pricing (Pay-Per-Event)
| Event | Price |
|---|---|
| Actor start | $0.002 |
| Post analyzed | $0.003 each |
| AI brand-health report | $0.10 per run |
A typical run of 100 posts with a report costs about $0.40 in this actor's charges.
Heads-up on scraping costs: this actor calls dedicated scrapers (Reddit, YouTube, X, Instagram) to fetch the posts. Those scrapers have their own per-result fees billed separately to your account. The cost cap and logs in this actor cover only its own analysis charges — set
maxItemsto bound volume on both sides.
Platforms & credentials
| Platform | Works out of the box | Needs |
|---|---|---|
| ✅ Yes | — | |
| YouTube | ✅ Yes | — (searches videos → analyzes their comments) |
| X / Twitter | ⚠️ Opt-in | xAuthToken + xCt0 cookies from your logged-in x.com session |
| ⚠️ Opt-in | instagramSessionCookies from your logged-in instagram.com session |
Selected platforms without credentials are skipped with a warning — the run still succeeds on the rest.
Sentiment engine
- AI (default) — an LLM (Claude Haiku or GPT-4o-mini) scores each post with sentiment, emotion, aspects, language, and optional toxicity. Multilingual. Uses the actor's managed key, or bring your own (
llmApiKey) for Anthropic or OpenAI. - Lexicon — a fast offline word-list scorer (polarity only, English). Set
engine: "lexicon"for cheap, high-volume runs or when you don't want an LLM in the loop.
If the AI engine is selected but no key is available, the actor automatically falls back to lexicon with a warning — runs never hard-fail over a missing key.
Example input
{"query": "ChatGPT","platforms": ["reddit", "youtube"],"maxItems": 100,"timeRange": "7d","engine": "llm","includeToxicity": false,"includeReport": true,"responseFormat": "detailed"}
Run via API (JavaScript)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('khadinakbar/social-media-sentiment-analyzer').call({query: 'Tesla',platforms: ['reddit', 'youtube'],maxItems: 150,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]); // the brand-health report
Run via API (Python)
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("khadinakbar/social-media-sentiment-analyzer").call(run_input={"query": "Tesla","platforms": ["reddit", "youtube"],"maxItems": 150,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items[0]) # the brand-health report
Use with AI agents (MCP)
This actor is MCP-ready. Exposed through the Apify MCP server, an AI agent can call it with a single query and receive a structured report plus per-post sentiment — ideal for "what's the sentiment around X right now?" questions. The first dataset record is the report; sample a few post records for detail.
How it works
The actor is an orchestrator: it calls dedicated, maintained scrapers for each platform in parallel, normalizes their output into a common shape, runs the sentiment engine in batches, and synthesizes the report. This keeps reliability high (each scraper owns its own anti-bot handling) and lets the actor focus on analysis.
Part of a brand-intelligence cluster:
- Brand Sentiment Analyzer — mention monitoring across Reddit, Google News, and Trustpilot reviews.
- AI Search Brand Monitor — how AI assistants (ChatGPT, Gemini, Claude) describe your brand.
- Underlying scrapers: Reddit Posts & Comments, YouTube Search, YouTube Comments, X/Twitter, Instagram Hashtag.
FAQ
Do I need an OpenAI/Anthropic key? No — the AI engine uses a managed Anthropic key by default. Provide llmApiKey only if you want to use your own quota or OpenAI.
Why are X and Instagram opt-in? Both require a logged-in session cookie to read public content reliably. Paste your cookies into the encrypted credential fields to enable them.
How do I bound cost? Set maxItems (caps analyzed posts and roughly the scraping volume) and optionally maxCostUsd (hard cap on this actor's own charges).
Does it support non-English content? Yes, with the AI engine — it detects language per post and scores multilingual text. The lexicon engine is English-only.
What if a platform returns nothing? The run still succeeds; the platform shows 0 in platformCounts and a note is added to warnings.
Legal & responsible use
This actor analyzes publicly available social media content for research, monitoring, and analytics. You are responsible for complying with each platform's Terms of Service and applicable laws (including data-protection regulations such as GDPR/CCPA) when using the data. Provide only credentials you are authorized to use. Do not use this actor to harass, profile, or target individuals. Sentiment and toxicity scores are automated estimates and may be imperfect — treat them as signals, not ground truth.