YouTube Sponsorship & Brand-Safety Monitor
Pricing
from $5.00 / 1,000 video analyzeds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
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
monitorIdfor 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.jsclient 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.