YouTube Scraper: Likes & Dislikes, Comments, Viral Moments
Pricing
from $2.00 / 1,000 results
YouTube Scraper: Likes & Dislikes, Comments, Viral Moments
Scrape YouTube search, channels (by name), playlists and videos with no API key: views, exact likes, estimated dislikes (Return YouTube Dislike, opt-in), top comments in each row, hashtags, links. No login. Export to CSV, JSON or Excel, or use via MCP in Claude and Cursor.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Yugenox Corp
Maintained by CommunityActor stats
0
Bookmarked
34
Total users
15
Monthly active users
a day ago
Last modified
Categories
Share
βΆοΈ YouTube Scraper β Videos, Transcripts, Channels, Comments & Dislikes
Pull YouTube data in bulk β without the API limits, without logging in. Search for videos, scrape an entire channel by name, get full transcripts, comments, likes and dislikes, chapters, and full metadata β or find creators to work with, complete with their Instagram and TikTok handles. Clean, structured data ready for Excel, JSON, your app or your LLM. π¬
π« No login Β· π No API key Β· π€ No setup Β· β‘ Fast Β· π Any video, channel, or topic Β· π΅ Pay only for the rows you get
π‘οΈ Proxy: transcripts and full video details need Apify Residential proxies (the default); if your Apify plan doesn't include them, the run still returns videos through Apify datacenter proxies and its status message tells you what came back empty.
π§ What can it do?
There are 7 simple ways to use it. Pick whichever fits β you can even mix them in one run.
| You want⦠| Use this input | Example |
|---|---|---|
| π Videos about a topic | Search terms | "lofi hip hop" |
| πΊ A creator's whole channel (videos, Shorts or Live) | Channels | "Fireship" |
| π§ A playlist's videos | Start URLs | a playlist link |
| #οΈβ£ A hashtag's videos | Hashtags | "lofi" |
| πΉ Specific videos | Start URLs | one or more video links |
| π§βπ€ Creators to partner with (one row per channel) | Find creators | "home workout" |
| π©³ Shorts | Search terms + includeShorts | "funny cat shorts" |
Every video comes back with the same rich data: title, views, likes, dislikes, duration, upload date, channel, subscribers, description, hashtags, description links, chapters, the true comment total and engagement metrics β plus optional transcripts, comments, and the Video Intelligence pack (most-replayed moments, music, sponsors).
Narrow any search with upload date, length, features (HD, subtitles, Creative Commons, 4K, liveβ¦), country and language filters, and sorting (relevance, upload date, view count, rating).
π Quick start (30 seconds)
- Pick an input β type a search term, a channel name, or paste a YouTube link.
- Set Max items β how many videos you want.
- (Optional) Turn on transcripts, comments, dislikes, or the Video Intelligence pack.
- Click Start. Download as JSON, CSV, or Excel.
That's it. No account, no keys, nothing to configure.
π The ways to use it β with examples
1οΈβ£ Search for videos π
Type keywords, just like the YouTube search bar. Get the top matching videos.
{ "searchTerms": ["apify tutorial"], "maxItems": 50 }
2οΈβ£ Scrape a whole channel πΊ (great for creators!)
Just type the channel name β no URL needed. Get every video with full stats. Perfect for tracking your own channel or a competitor's.
{ "channels": ["Fireship"], "maxItems": 100 }
You can also use an @handle or a channel URL, pick the Shorts or Live tab, sort by popular or oldest, and only take videos published after a date:
{ "channels": ["@RickAstleyYT", "MrBeast"], "channelContent": ["videos", "shorts"], "channelSortBy": "popular", "maxItems": 200 }
Max items applies to each tab. The example above asks for two tabs, so each channel returns up to 200 videos plus up to 200 Shorts β up to 400 rows per channel, 800 for the two. Pick one tab, or lower Max items, to keep a run smaller.
Channel rows also carry an outlier score β the video's views divided by the channel's median views. 2.5 means "this video did 2.5x the channel's normal". Great for spotting what worked.
3οΈβ£ Scrape a playlist or a hashtag π§ #οΈβ£
Playlists go in Start URLs; hashtags have their own Hashtags field ("lofi", "#lofi" or a
youtube.com/hashtag/β¦ link). Hashtag rows carry hashtagVideoCount, the hashtag's total.
{ "startUrls": ["https://www.youtube.com/playlist?list=PLxxxxxx"], "hashtags": ["lofi"], "maxItems": 100 }
4οΈβ£ Scrape specific videos πΉ
{ "startUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"] }
5οΈβ£ Get transcripts π
Turn on Include transcripts and every video gets its full transcript text, plus subtitles as SRT (or WebVTT, plain text, or timed segments). Metadata + transcript + dislikes, in one row: $3.50 per 1,000 videos with a transcript ($2.00 for the row + $1.50 for the transcript). A video without captions costs only the row.
By default you get the video's main track (the manual subtitles in the spoken language, else the
auto-generated ones). List languages in Subtitle languages to get those tracks instead, or use
"*" for every track (a TED talk has 20+). availableSubtitles always lists every track.
{ "startUrls": ["https://www.youtube.com/watch?v=PkZNo7MFNFg"], "includeSubtitles": true, "subtitleLanguages": ["en"], "subtitleFormat": "segments" }
6οΈβ£ Find creators π§βπ€ (influencer & lead lists)
Type what the creators talk about. You get one row per channel: country, joined date, total views, subscribers, every link from their About page, their Instagram and TikTok usernames, whether they list a business email, any email they published publicly, and how active they are (last upload, uploads in the last 30 days, median views).
{ "findCreators": ["home workout"], "maxItems": 50, "minSubscribers": 10000, "maxSubscribers": 500000, "creatorCountries": ["US", "CA"], "activeWithinDays": 30 }
Tip: feed the instagramUsername column straight into our Instagram Scraper to get their Instagram posts and engagement too.
β Add comments, dislikes and insights to any of the above π¬πβ¨
{"channels": ["Fireship"],"maxItems": 50,"maxComments": 20,"maxReplies": 5,"includeDislikes": true,"includeVideoInsights": true}
βοΈ All input options
| Field | What it does | Default |
|---|---|---|
| π Search terms | Keywords to search on YouTube | β |
| πΊ Channels | Channel name, @handle, or URL β all their videos | β |
| π Start URLs | Video, channel, playlist, or search links | β |
| #οΈβ£ Hashtags | Hashtags (lofi, #lofi or a hashtag link) β the videos on the hashtag page | β |
| π§βπ€ Find creators | Keywords β one row per matching channel | β |
| π’ Max items | How many videos per search / channel tab / playlist / hashtag (channels per creator keyword). Channels: per tab β 2 tabs = up to 2Γ Max items per channel | 10 |
π§Ύ Full video details (enrich) | Full metadata for every video. Off = fast search-feed fields only | on |
| π Include transcripts | Transcript text + subtitles (manual and auto-generated). +$0.0015 per video that comes back with transcript text | off |
| π Subtitle languages | Languages to download, in order of preference. Empty = the main track (the one YouTube's player turns on); * = every track | main track |
| ποΈ Subtitle format | srt, vtt, text or segments | srt |
π·οΈ Full details (includeDetails) | Category, tags, exact duration (Shorts too), exact publish time | off |
| π Include dislikes | Add an estimated dislike count | off |
| π¬ Max comments per video | Number of top comments to pull (0 = none). commentsTruncated says when fewer came back than YouTube had | 0 |
| βοΈ Comment order | top or newest | top |
| π§΅ Max replies per comment | Reply threads, nested under each comment. Most-replied comments first, up to 20 reply pages (~200 replies) per video | 0 |
| β¨ Video Intelligence pack | Most-replayed moments, music credits, sponsor signals | off |
| π Include related videos | With the pack: the related videos YouTube shows | off |
| π Upload date | any, hour, today, week, month, year | any |
| βοΈ Sorting order | relevance, date, views, rating | relevance |
| β±οΈ Video length | any, under4, 4to20, over20 | any |
| ποΈ Video features | hd, subtitles, creativeCommons, 3d, live, purchased, 4k, 360, location, hdr, vr180 | none |
| π Deep search | Keep paging each search term until Max items unique videos (see below) | off |
| π©³ Include Shorts | Also collect YouTube Shorts from search results | off |
| π’ Max Shorts | Cap Shorts per search (0 excludes them) | no cap |
| π‘ Max live streams | Cap live streams per search (0 excludes them) | no cap |
| π Country / π£οΈ Language | Rank results for a country; show search results in a language | US / en |
| πΊ Channel tabs | videos, shorts, streams | videos |
| βοΈ Channel sort | newest, popular, oldest | newest |
| π Published after | Only channel videos from this date on (2026-08-01, 30 days, 12 hours, 7d). A value the actor can't read stops the run before anything is scraped | β |
| πͺͺ Add channel About data to videos | Channel country, joined date, total views, links, socials on every video row | off |
| π₯ Min / Max subscribers, π Creator countries, β³ Active within (days), π Only creators with contact info | Creator finder filters | β |
| π‘οΈ Proxy / Proxy strategy | See "Which proxy should I use?" below | Residential / configured |
π« Save "not found" rows in the dataset (errorRowsInDataset) | Also save inputs and videos that return nothing as dataset rows with error and note, the way earlier versions did. Each such row is billed as one result (see "When an input returns nothing") | off |
(You need at least one of: Search terms, Channels, Start URLs, Hashtags, or Find creators.)
π©³ A note on Shorts
Shorts are off by default in search. YouTube returns them in a separate shelf from normal videos, so
turning includeShorts on genuinely changes which videos a search gives you β existing runs keep
their long-form-only results unless you opt in.
{ "searchTerms": ["funny cat shorts"], "maxItems": 20, "includeShorts": true }
Shorts rows carry isShort: true and a shortsUrl. Note that YouTube stops returning the Shorts
shelf when an upload-date filter or a non-default sort order is applied. For a channel's Shorts, use
Channel tabs β shorts.
π Filtering and sorting examples
{ "searchTerms": ["ai news"], "dateFilter": "week", "sortBy": "date", "maxItems": 50 }
{ "searchTerms": ["python tutorial"], "lengthFilter": "over20", "videoFeatures": ["subtitles"], "maxItems": 100 }
{ "searchTerms": ["λ¨Ήλ°©"], "country": "KR", "language": "ko", "maxItems": 30 }
Search filters apply to search terms only β not to direct channel, playlist, or video URLs.
π How deep does a search go?
A plain search term (relevance order, no filters, no Shorts) returns YouTube's first two result pages β about 40 videos β even with a higher Max items; sorted or filtered searches keep paging toward Max items. That is the depth this actor has always had, so existing runs return (and cost) the same. For a large keyword pull, turn on Deep search: every term then pages until Max items unique videos, and you are billed for each of those rows.
{ "searchTerms": ["drake"], "maxItems": 500, "deepSearch": true }
π Daily monitoring
Schedule the actor with Published after set to a relative age such as 2 days, and each run
returns only the new videos from the channels you follow. Older videos are skipped, and you are not
charged for them. A channel with nothing new returns no rows at all, so a quiet day costs only the run start.
With Full video details off, only the channel page's relative dates ("2 weeks ago") are known. A video is then returned only when that date is surely inside the window β one whose date could fall on either side of the cutoff, or that has no date (the Shorts tab), is skipped. Keep Full video details on for exact dates.
π€ What you get (output)
One clean row per video. Here's a real example:
{"id": "dQw4w9WgXcQ","title": "Rick Astley - Never Gonna Give You Up (Official Video)","url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","thumbnailUrl": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg","viewCount": 1792628321,"likes": 19243762,"dislikes": 514894,"duration": "3:33","date": "Oct 24, 2009","channelName": "Rick Astley","channelUrl": "https://www.youtube.com/@RickAstleyYT","numberOfSubscribers": 4520000,"text": "The official video for βNever Gonna Give You Upβ...","publishedAt": "2009-10-24","hashtags": ["RickAstley", "NeverGonnaGiveYouUp"],"descriptionLinks": [{ "url": "https://RickAstley.lnk.to/_listenYD", "text": "Listen" }],"commentsCount": 3,"comments": [{"author": "@YouTube","text": "can confirm: he never gave us up","likes": 268000,"replyCount": 412,"publishedTime": "2 years ago"}],"fromYTUrl": "https://www.youtube.com/@RickAstleyYT","scrapedAt": "2026-07-14T12:00:00.000Z"}
π Every field explained
| Field | Description |
|---|---|
π id, π url | Video ID and link |
π·οΈ title | Video title |
πΌοΈ thumbnailUrl | Highest-res thumbnail |
π viewCount | Number of views |
π likes | Exact like count |
π dislikes | Estimated dislikes (only if enabled) |
β±οΈ duration | Video length (e.g. 3:33) |
π
date | Upload date, as YouTube displays it (e.g. Oct 24, 2009) |
π publishedAt | Upload date normalised to YYYY-MM-DD (null for relative dates) |
#οΈβ£ hashtags | Hashtags parsed from the description |
π descriptionLinks | Links in the description as { url, text } β socials, contact, sponsors |
π©³ isShort, shortsUrl | Present on Shorts |
πΊ channelName, channelUrl, channelId | Channel info |
π numberOfSubscribers | Channel subscriber count |
β
isChannelVerified, πΌοΈ channelAvatarUrl, π€ collaborators | Verified badge, channel picture, co-creators on collab videos |
π text | Full video description |
π chapters | Chapters as { title, startSeconds } |
π¬ totalCommentsCount | The video's real comment total |
π engagementRate, likeToViewRatio, viewsPerDay, daysSincePublished | Engagement metrics, computed from the row. viewsPerDay uses the video's exact age (hours count); the three rates are null while a video is live or upcoming (YouTube then shows people watching/waiting, not views) |
ποΈ hasTranscript | Whether the video has a transcript |
π·οΈ category, keywords, durationSeconds, publishedAtExact, isFamilySafe, isUnlisted | (with Full details) |
π¬ commentsCount, comments, commentsTruncated | Comments: author, text, likes, replies, time, pinned / hearted / verified flags, replies (with Max replies). commentsTruncated: true = the list stopped early (a page YouTube would not serve, the run's deadline, or the size limit below) |
π£οΈ availableSubtitles, subtitles | Subtitle tracks and their content (with transcripts) |
π transcript, transcriptLanguage, transcriptIsAutoGenerated | Full transcript text (with transcripts) |
π₯ mostReplayed, viralMoments | Most-replayed graph, and the top moments with the words spoken and a clip link (Video Intelligence) |
π΅ musicCredits | Songs credited in the video (Video Intelligence) |
π€ sponsorSignals | Likely sponsorship, brands, promo codes, affiliate links β a heuristic read of the description and chapters, not a disclosure (Video Intelligence) |
π relatedVideos | Related videos (Video Intelligence + related) |
π― outlierScore, channelMedianViews | Views Γ· the channel's median views (channel rows) |
#οΈβ£ hashtagVideoCount | How many videos the hashtag has (hashtag rows) |
πͺͺ channelCountry, channelJoinedDate, channelTotalViews, channelLinks, channelSocialLinks, channelHasBusinessEmail, channelPublicEmails | (with Add channel About data) |
βοΈ truncated, truncatedFields | Only on a row that would pass Apify's 9 MB item limit: it was trimmed to fit, dropping (in this order) replies, subtitleFormats (vtt/text/segments β srt stays), subtitles (all but the transcript's track), comments (the tail). A row that still can't fit is listed in FAILED_INPUTS as ITEM_TOO_LARGE and not charged |
π fromYTUrl | Where this result came from |
π
scrapedAt | When it was scraped |
Creator rows (recordType: "channel", from Find creators) carry channelName, handle, url,
country, joinedDate, numberOfSubscribers, totalViews, totalVideos, socialLinks,
instagramUsername, tiktokUsername, hasBusinessEmail, publicEmails, lastUploadAgo,
uploadsLast30Days and recentMedianViews. uploadsLast30Days is approximate: it counts the latest uploads
whose YouTube date ("3 weeks ago") is surely within 30 days β "1 month ago" means 30β59 days, so it is not counted.
Use the Transcripts, Creators and Video Intelligence tabs of the dataset for ready-made views.
π« When an input returns nothing
A dead end doesn't fail your run and isn't charged. It goes into the ERRORS record of the run's
key-value store (Storage β Key-value store in the Console), and the run's status message counts it,
for example Done β 57 items; 1 not found or empty (CHANNEL_DOES_NOT_EXIST), see ERRORS, not charged.
Each entry has the input or url, an error code and a note:
error | What happened |
|---|---|
NO_RESULTS | The search returned no videos |
DATE_FILTER_TOO_STRICT | No videos match the upload-date, length or feature filters you chose |
CHANNEL_DOES_NOT_EXIST | No channel matches that name, handle or URL, or it was terminated |
CHANNEL_HAS_NO_VIDEOS | The channel exists but has no public videos on the tabs you picked |
NO_VIDEOS | The playlist or hashtag page is empty |
NO_VALID_START_URLS | The link isn't a YouTube video, channel, playlist or search URL (a hashtag link goes in Hashtags) |
NOT_FOUND | The page couldn't be loaded |
VIDEO_UNAVAILABLE | The video is private, deleted or doesn't exist |
Earlier versions saved these as dataset rows and billed each as one result. If your integration reads
them from the dataset, turn on Save "not found" rows in the dataset (errorRowsInDataset) to keep
that behaviour; those rows are then billed as results again.
Inputs YouTube temporarily blocked even after several retries are listed separately, in
FAILED_INPUTS, and aren't charged either (see the FAQ). A playlist whose paging stops partway (a later
page blocked or broken) keeps the videos it already listed (normal results) and is listed in
FAILED_INPUTS too (INCOMPLETE_LISTING or TEMPORARILY_BLOCKED, with how many it listed), so a
short playlist is never silent.
Every run also writes a RUN_REPORT record to the same key-value store: how it ended (status:
ok, partial-timeout, charge-limit, all-inputs-failed, input-error, no-input,
no-proxy-access, proxy-denied or crashed), the status message, items saved, inputs completed,
skipped inputs and "not found" entries counted by code, and the run's timeout.
A run that can't scrape anything (every input blocked, an unreadable Published after, no proxy
access) still finishes as Succeeded, with 0 items, no result charges, and the reason and the fix in its
status message β check the status message or RUN_REPORT, not only the run status.
π΅ Pricing
You pay per result. There's no subscription and no minimum, and it's the same price on every Apify plan.
| Event | When it's charged | Price |
|---|---|---|
| Result | Each row in your dataset: one video, or one channel from Find creators | $0.002 ($2.00 per 1,000) |
| Transcript | Each video that comes back with transcript text. Only with Include transcripts on | $0.0015 ($1.50 per 1,000) |
| Actor start | Once per run, per GB of memory (1 GB is enough) | $0.00005 |
Included in the result price: comments and replies (no per-comment fee), estimated dislikes, chapters, engagement metrics, full details, channel About data, the Video Intelligence pack, search filters and sorting.
Never charged:
- a video without captions, even with Include transcripts on: it's a normal result with
transcript: null, and no transcript event; - inputs and videos that return nothing (see "When an input returns nothing" above);
- inputs YouTube temporarily blocked (FAILED_INPUTS), and rows too big to save;
- videos older than Published after.
Examples:
| Job | Cost |
|---|---|
| 100 videos from one channel | $0.20 |
| 100 videos with 20 comments each and estimated dislikes | $0.20 |
| 100 videos with transcripts (all captioned) | $0.35 |
| 1,000 videos with transcripts, 800 of them captioned | $2.00 + $1.20 = $3.20 |
Set a maximum charge on the run and the actor stops when it's reached. It never scrapes a row it can't bill, and a video with a transcript is only delivered if the budget covers both events.
π‘ Who is this for?
- π₯ Creators β track your channel's performance, or study competitors' videos, views, and engagement
- π£ Marketers & brands β find influencers with contact info, monitor mentions, analyze what's trending
- βοΈ Clip & Shorts editors β find the moments viewers rewatch, with the exact words and a timestamped link
- π¬ Researchers β study topics, opinions, and comment sentiment at scale
- π€ AI & data teams β feed transcripts, metadata and comments into your pipelines
- π’ Agencies β build reports, creator lists and dashboards from live YouTube data
β FAQ
Do I need a YouTube account or API key? No. It uses YouTube's public data. Nothing to log in to, nothing to set up.
Can I really scrape a channel just by its name?
Yes! Type "Fireship" (or an @handle, or a channel URL) in the Channels field and it pulls all their videos with full stats. This is the easiest way to do channel analytics.
Can it get dislikes? Yes, as an estimate. YouTube removed public dislikes in 2021, so we use the community Return YouTube Dislike database β accurate for older videos, a solid estimate for newer ones. Turn on Include dislikes to add it.
Can I get comments?
Yes. Set Max comments per video to how many you want (e.g. 20). Each comment includes the author, text, likes, reply count, time, and whether it's pinned or hearted by the creator. Set Max replies per comment to get the reply threads too. Comments are included in the row price β no per-comment fee.
Can I get transcripts?
Yes. Turn on Include transcripts: you get the full transcript text in transcript and the subtitles in subtitles (SRT by default). Pick languages with Subtitle languages. Each video that comes back with transcript text costs $0.0015 on top of its result ($3.50 per 1,000 videos in total). Videos without captions return transcript: null, with no error and no transcript charge.
What if a channel doesn't exist or a search finds nothing?
The run still succeeds and you aren't charged for it. The input is listed in the ERRORS record of the run's key-value store with a code such as CHANNEL_DOES_NOT_EXIST or NO_RESULTS, and the status message says how many there were. See "When an input returns nothing".
Where do creator emails come from?
Only from what the creator published publicly on their channel β the About description and links. We also tell you whether YouTube lists a business email for the channel (hasBusinessEmail), but we never reveal hidden business emails: that needs a signed-in account and a captcha, and this actor never signs in.
Why was one of my inputs skipped? Once in a while YouTube temporarily blocks a request even after several retries on fresh IP addresses. Instead of failing your whole run, the actor skips that one input, keeps everything else, and lists it in the FAILED_INPUTS record of the run's key-value store (with the time and the reason). You are not charged for skipped inputs. Just run those again later.
How many videos can I scrape? Thousands per input β for search terms, turn on Deep search to go past the first ~40 results. Very large runs may fluctuate depending on YouTube. If your run is about to hit its timeout, the actor stops a little early and saves everything it has, instead of timing out β with short timeouts too (a 30-second run stops starting new videos at about 22 seconds), and the status message tells you when the timeout cut the run short.
Which proxy should I use?
Keep the default (Apify Residential). The Proxy strategy option decides where requests go: configured (default) sends everything through that proxy; auto sends YouTube's JSON endpoints through fast Apify datacenter proxies and uses your proxy only for the video player, switching back automatically if datacenter IPs get blocked.
My Apify plan has no Residential proxies. Will it still work? Yes. The run switches to Apify datacenter proxies on its own and still returns videos, channels, comments and search results. YouTube often refuses transcripts and full video details on datacenter IPs, so those can come back empty; the status message says how many videos were affected. To get them, enable residential proxies in Apify Console β Proxy, or set the Proxy input to your own residential proxy URLs. If no proxy can be used at all, the run stops right away with 0 results (nothing billed for results), and the status message says what to change.
What does a run cost? $0.002 per result row ($2.00 per 1,000 videos), plus $0.0015 for each video that comes back with transcript text when Include transcripts is on, plus a start fee of $0.00005 per GB of memory. Comments, replies, dislikes, chapters and the Video Intelligence pack are included in the row price. Inputs that return nothing and temporarily blocked inputs cost nothing. If you set a maximum charge for the run, the actor stops when it's reached β it never scrapes data you won't be billed for. Full table: "Pricing" above.
Is it legal to scrape YouTube? This Actor only collects publicly available data: video, channel and comment data that anyone can see on YouTube without signing in. Collecting publicly available data is generally legal, but you're responsible for how you use it. Results can include channel names and, if you request comments, commenters' public channel names, and that counts as personal data. You must follow privacy laws such as GDPR, PIPEDA and CCPA, as well as YouTube's terms. If you're unsure, check with a lawyer. More on this: Is web scraping legal?
What about the creator contact data? The creator finder returns contact details only when the creator published them on their public channel page. That is still personal data under GDPR and PIPEDA: have a lawful basis before you use it (for example, legitimate interest in a relevant business offer), tell people where you got their details, honour opt-outs, and follow anti-spam laws such as CAN-SPAM and CASL.
Does it access any private data? No. Everything comes from pages YouTube shows to any visitor without logging in. It never uses a login, never touches private or restricted accounts, and never reaches password-protected areas.
π Notes
- Scrapes publicly available data only.
- Please respect copyright and privacy laws (e.g. GDPR, PIPEDA) when handling personal data like comments and creator contact details.
sponsorSignalsis a heuristic, not a statement that a video is sponsored.- Not affiliated with YouTube.
Questions, a bug, or a feature you'd like? Open an issue on the actor's Issues tab.