YouTube Sponsorship & Brand-Safety Monitor avatar

YouTube Sponsorship & Brand-Safety Monitor

Pricing

from $5.00 / 1,000 video analyzeds

Go to Apify Store
YouTube Sponsorship & Brand-Safety Monitor

YouTube Sponsorship & Brand-Safety Monitor

Monitor YouTube videos, channels, and searches for sponsorship disclosures, brand and competitor mentions, and evidence-backed brand-safety risks.

Pricing

from $5.00 / 1,000 video analyzeds

Rating

0.0

(0)

Developer

FetchFinch

FetchFinch

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Monitor YouTube videos, channels, and searches for sponsorship disclosures, brand and competitor mentions, and configurable brand-safety risks. Every finding includes the text that triggered it. Transcript findings also include a clickable YouTube timestamp.

No YouTube API key, channel login, cookies, or external AI key is required.

What it does

  • Analyzes direct YouTube video URLs or IDs.
  • Discovers recent uploads from channel URLs, channel IDs, and @handles.
  • Discovers recent videos from YouTube search queries.
  • Detects explicit sponsorship, advertising, affiliate, and promo-code signals.
  • Finds configured brand, product, campaign, and competitor terms.
  • Flags evidence for adult content, violence, drugs, gambling, profanity, and harassment, plus custom risk terms.
  • Uses public caption tracks when available and falls back to title and description analysis when they are not.
  • Persists seen video IDs under a monitorId for efficient scheduled runs.
  • Sends alert records to an optional HTTP webhook.

The Actor does not estimate audience demographics or produce opaque AI claims. It reports deterministic signals with inspectable evidence. These signals are intended to prioritize human review, not make automatic compliance decisions.

Quick start

Analyze one video:

{
"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"brandTerms": ["Acme"],
"competitorTerms": ["Example competitor"]
}

Monitor channels and a search:

{
"monitorId": "weekly-ai-sponsorships",
"channelUrls": ["@OpenAI", "https://www.youtube.com/@GoogleDeepMind"],
"searchQueries": ["AI productivity tools review"],
"maxVideosPerSource": 10,
"lookbackDays": 14,
"brandTerms": ["OpenAI", "ChatGPT"],
"competitorTerms": ["Claude", "Gemini"],
"customRiskTerms": ["security breach", "data leak"],
"minimumAlertRiskLevel": "medium"
}

Monitoring behavior

Set a stable monitorId and run the Actor on an Apify Schedule. The Actor keeps a list of seen video IDs in its named key-value store. Later runs skip those IDs unless forceReprocess is enabled.

First-run options:

  • analyze_all: analyze the current discovery window and save the video IDs.
  • establish_baseline: save current video IDs without analysis. Future runs process only videos that were not present in the baseline.

Leave monitorId empty for stateless one-off runs.

Use a distinct monitor ID for each independent source and rules configuration. Running the same monitor ID concurrently is not recommended because the last state write wins.

Evidence and risk scoring

The Actor searches title, description, and the selected caption track. Matching is case-insensitive and bounded so a short term does not normally match inside a larger word.

Each evidence object includes:

{
"source": "transcript",
"matchedTerm": "sponsored by",
"text": "...today's video is sponsored by Example...",
"timestampSeconds": 42,
"timestampUrl": "https://www.youtube.com/watch?v=VIDEO_ID&t=42s"
}

Risk levels are deterministic:

  • clear: no configured risk signal was found.
  • low: a low-severity or custom low-weight signal was found.
  • medium: a medium-severity category was found.
  • high: a high-severity category was found or multiple signals crossed the high-risk score threshold.

Context matters. A news report, documentary, or educational video may contain a risk term without endorsing the subject. Always review the returned evidence.

Transcript handling

The Actor selects caption tracks in the order given by preferredTranscriptLanguages. If none match, it uses the first public track. Both creator-provided and auto-generated captions are supported.

Full transcript text is not stored by default. Set includeTranscript to true when the downstream workflow needs it. Evidence snippets and timestamps are returned either way. Videos without public captions are analyzed using their title and description.

Output

Each successful dataset row has flat summary fields for filtering and full nested detail:

{
"recordType": "videoAnalysis",
"videoId": "VIDEO_ID",
"title": "Example video",
"videoUrl": "https://www.youtube.com/watch?v=VIDEO_ID",
"channelName": "Example channel",
"sponsorshipDetected": true,
"sponsorshipConfidence": "high",
"brandTermsFound": ["Acme"],
"competitorTermsFound": ["Competitor"],
"riskLevel": "medium",
"riskScore": 25,
"riskCategories": ["gambling"],
"alertTriggered": true,
"alertReasons": ["brand_safety_medium", "sponsorship_detected"],
"video": {},
"analysis": {}
}

Failures for individual sources or videos are written as uncharged error records. A failure does not discard successful results from the same run.

The OUTPUT record in the default key-value store contains the run summary.

Webhook alerts

Set webhookUrl to receive one JSON POST per alerting video. If webhookSecret is provided, the Actor sends it as:

Authorization: Bearer YOUR_SECRET

The secret input is encrypted by Apify. Webhook failures are retried and logged but do not fail an otherwise successful Actor run.

API

Run synchronously and return dataset rows:

curl -X POST \
"https://api.apify.com/v2/acts/fetchfinch~youtube-sponsorship-brand-safety-monitor/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchQueries": ["fintech app review"],
"competitorTerms": ["Competitor One", "Competitor Two"],
"maxVideosPerSource": 10
}'

For scheduled monitoring, save the input as an Actor task, set a monitorId, and attach an Apify Schedule to the task.

Pricing event

The Actor emits one video-analyzed pay-per-event charge for each successful video analysis row written to the dataset. Discovery errors and video errors are not charged. When outputMode suppresses a successful result, that result is not charged.

The launch price is $0.005 per successfully analyzed video. Platform usage is billed separately under the pay-per-event-plus-usage pricing model.

Operational notes

  • YouTube requests use the open-source youtubei.js client and public YouTube responses. This is an unofficial integration and is not endorsed by YouTube.
  • YouTube can change its internal API, response shapes, caption availability, or throttling behavior without notice.
  • Keep concurrency modest. The default of three is intended to reduce bursts.
  • Only analyze content you are permitted to process, and follow applicable laws, platform terms, and organizational policies.
  • Risk findings are keyword-based review signals. They are not legal advice, content moderation decisions, or guarantees of brand suitability.