YouTube Sponsor Segment Detector
Pricing
from $0.99 / 1,000 results
YouTube Sponsor Segment Detector
Detect sponsor segments, promo codes, and brand deals in any YouTube video. Returns exact ad timestamps with community vote scores, plus discount codes and percentages pulled from the description, and channel, views, and publish date. No login.
Pricing
from $0.99 / 1,000 results
Rating
0.0
(0)
Developer
Farhan Febrian Nauval
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Share
Detect sponsor segments, promo codes, and brand deals in any YouTube video. For each video you get the exact start and end time of every paid read and self-promotion, with community vote scores, plus the discount codes, percentages, and sponsor links pulled straight from the description — all in clean structured JSON.
Why use this actor
- No account, no login, no API key required — just paste video URLs or a channel and hit Run.
- Exact ad timestamps — know precisely where each sponsor read starts and ends (down to the second), so you can measure ad load, skip past it, or audit brand placements.
- Promo codes and discounts, extracted for you — the description is scanned for coupon codes (e.g.
LTT), percentage discounts (e.g.15% off), and every sponsor link with its brand domain. - Community-verified quality — each segment carries an up/down vote score and a "locked" flag so you can trust the well-reviewed ones and filter out noise.
- Analyze one video, a list, or a whole channel — point it at a channel and it pulls the most recent uploads automatically.
- Stable JSON output suitable for pipelines, spreadsheets, and databases — every row carries
_input,_source, and_scrapedAtfields so you can join results back to your input. - Automatic retries; export to JSON, CSV, or Excel.
How it works
- You provide a list of YouTube videos (IDs or URLs) and/or a channel, and choose which segment types to detect (sponsor, self-promotion, intro, outro, and more).
- For each video the actor looks up the known ad and promotional segments contributed by the viewer community, then reads the video's public details — title, channel, view count, publish date, and description.
- The description is scanned for promo codes, discount percentages, and sponsor links.
- Optionally, it can attach the words spoken during each sponsor read (from the video's captions) and a best-guess brand name.
- Results stream into your dataset, one clean row per video, ready to download.
You do not need to manage scrapers, browsers, or blocks — it is all handled internally.
Input
{"videoUrls": ["https://www.youtube.com/watch?v=S82W3hWDvZA","https://www.youtube.com/watch?v=5xN7ndof4Xc"],"channelUrl": "","maxVideos": 10,"categories": ["sponsor", "selfpromo"],"includeTranscriptMatch": false,"usePrivacyHash": false,"maxItems": 100,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
| Field | Type | Description |
|---|---|---|
videoUrls | array | Videos to analyze. Accepts 11-character IDs, watch URLs, youtu.be/... short links, and Shorts URLs. |
channelUrl | string | Optional. Analyze a channel's most recent uploads. Accepts a handle (@LinusTechTips), channel URL, or channel ID (UC...). |
maxVideos | integer | When a channel is given, how many recent uploads to analyze (default 10). |
categories | array | Which segment types to detect: sponsor, selfpromo, interaction, intro, outro, music_offtopic, filler. Default ["sponsor", "selfpromo"]. |
includeTranscriptMatch | boolean | Attach the spoken words for each sponsor / self-promotion segment plus a best-guess brand. Default false. |
usePrivacyHash | boolean | Look up segments without sending the full video ID. Same results, slightly slower. Default false. |
maxItems | integer | Maximum number of videos to output across all inputs (default 100). |
proxyConfiguration | object | Apify Proxy settings. Residential is recommended. |
Output
One row per video. A video with no known segments is still returned (with an empty segments list) so you can see it was checked.
{"_input": "https://www.youtube.com/watch?v=S82W3hWDvZA","_source": "sponsorblock+innertube-ios","_scrapedAt": "2026-07-10T19:33:12Z","videoId": "S82W3hWDvZA","url": "https://www.youtube.com/watch?v=S82W3hWDvZA","title": "I Hate These...","channelName": "Linus Tech Tips","channelId": "UCXuqSBlHAE6Xw-yeJA0Tunw","viewCount": "1268127","publishDate": "2026-07-06T09:53:00-07:00","uploadDate": "2026-07-06T09:53:00-07:00","category": "Science & Technology","lengthSeconds": "1481","segments": [{"category": "sponsor","actionType": "skip","startSec": 133.196,"endSec": 150.681,"durationSec": 17.485,"votes": 17,"locked": 1,"UUID": "de0a2ea01dcf3b43ff4ec9fa94d64843959d728c96be0ecfb587060fa784398a7","videoDuration": 1480.69},{"category": "intro","actionType": "skip","startSec": 150.481,"endSec": 159.765,"durationSec": 9.284,"votes": 7,"locked": 1,"UUID": "4de1f1defc133c347403e9f238f39bb08d7d13abb402ff7f89ef4f7b55d894007","videoDuration": 1480.69},"... 12 more"],"sponsorCount": 6,"sponsorSecondsTotal": 101.09,"description": {"promoCodes": ["LTT"],"discountPct": [15],"sponsorUrls": [{ "url": "https://saily.com/ltt", "brandHost": "saily.com" },{ "url": "https://geni.us/1et77", "brandHost": "geni.us" },"... 15 more"]}}
| Field | Type | Description |
|---|---|---|
videoId | string | The 11-character YouTube video ID. |
url | string | Canonical watch URL. |
title | string | Video title. |
channelName | string | Channel / uploader name. |
channelId | string | Channel ID (UC...). |
viewCount | string | View count at the moment of scraping. |
publishDate / uploadDate | string | Publish and upload dates. |
category | string | YouTube category (e.g. "Science & Technology"). |
lengthSeconds | string | Video length in seconds. |
segments | array | Detected segments (see below). Empty when the video has none. |
sponsorCount | integer | Number of sponsor + self-promotion segments. |
sponsorSecondsTotal | number | Total seconds of sponsor + self-promotion content. |
description | object | Extracted promoCodes, discountPct, and sponsorUrls ({url, brandHost}). |
Each item in segments:
| Field | Type | Description |
|---|---|---|
category | string | sponsor, selfpromo, intro, outro, filler, etc. |
actionType | string | Recommended handling: skip, mute, full, or poi (point of interest). |
startSec / endSec | number | Segment start and end, in seconds. |
durationSec | number | Segment length in seconds. |
votes | integer | Community vote score (higher = more trusted; negative = disputed). |
locked | integer | 1 if the segment is locked by a moderator. |
UUID | string | Stable identifier for the segment. |
videoDuration | number | Video length the segment was recorded against (may be omitted when unknown). |
spokenText | string | (Only with includeTranscriptMatch) words spoken during the segment. |
matchedBrand | string | (Only with includeTranscriptMatch) best-guess brand mentioned. |
Notes / limits
- Coverage. Segment data comes from SponsorBlock, a community project where viewers submit ad and promotional timestamps. Popular creators (tech reviewers, large channels) have excellent coverage; a smaller or very new video may have no segments yet — it is returned with an empty
segmentslist, not an error. - Vote scores. Prefer segments with positive
votesandlocked: 1for the most reliable results. Negative votes indicate a disputed submission. - Promo codes. Codes and discounts are read from the description text; a video whose sponsor mentions the code only out loud (not in the description) will have an empty
promoCodeslist. - Spoken text.
includeTranscriptMatchdepends on the video having retrievable captions; when captions are unavailable,spokenTextis left empty. Residential proxy improves availability. - Proxy. Residential proxy is recommended because YouTube rate-limits datacenter networks.
Other actors
| Actor | What it does |
|---|---|
| YouTube Video Detail Scraper | Full metadata for any video. |
| YouTube Channel Scraper | Channel stats: subscribers, video count, verified status. |
| YouTube Transcripts Scraper | Full timed transcript / captions for a video. |