YouTube Scraper โ Videos, Shorts, Downloads, Comments & Leads
Pricing
from $4.00 / 1,000 research results
YouTube Scraper โ Videos, Shorts, Downloads, Comments & Leads
Collect YouTube videos, Shorts, channels, comments and replies, native subtitles, downloadable files, public emails and sponsor evidence. Simple input; no user cookies.
Pricing
from $4.00 / 1,000 research results
Rating
5.0
(1)
Developer
Kelopr_bk
Maintained by CommunityActor stats
1
Bookmarked
71
Total users
27
Monthly active users
4.5 hours
Issues response
4 days ago
Last modified
Categories
Features
Share
๐ฌ YouTube Research Studio
Videos. Shorts. Channels. Conversations. Creator contacts. Downloadable files.
Turn public YouTube pages into structured research data with one Actor and one short input form. Search a topic, research a channel, follow a playlist, collect comment threads, export native captions, download a public video or audio file, or find public creator contacts and sponsorship evidence.
No user cookies, YouTube account, YouTube API key, or external storage account required. Results stream into the dataset as they finish. Native caption files and media files are saved in the runโs Apify key-value store.
๐ Start in three steps
- Choose a mode.
- Add your targets, one URL, ID, handle, or phrase per entry.
- Set Maximum results and start the run.
{"mode": "videos","targets": ["https://www.youtube.com/@NASA"],"maxResults": 20}
maxResults is a global limit on unique records saved across the whole run. Duplicate targets, failed pages, and inaccessible videos are not paid result rows. In Comments mode, both comments and replies count toward that limit.
๐งญ Choose the right mode
| Mode | Starting points | One result represents |
|---|---|---|
๐ฌ videos | Search phrases, video URLs/IDs, channel handles/URLs/IDs, playlists | One public video with available video and channel metadata |
โก shorts | Shorts URLs/IDs, channels, search phrases | One short-form video |
๐ด live | Channel stream tabs, video URLs/IDs, search phrases | One stream or completed stream recording; ongoing streams can have no final duration |
๐บ channels | Channels, video URLs to resolve their creators, search phrases | One public channel profile |
๐ฌ comments | Videos, channels, playlists | One comment or reply, with its author and parent relationship |
๐ transcripts | Videos, channels, playlists | One accessible native transcript, including timestamped segments and export links |
๐ฅ downloads | Videos, channels, playlists | One completed downloadable video or audio file and its metadata |
๐ค leads | Channels/videos or search phrases; optional similar-creator discovery | One enriched creator lead with the original contact, audience and sponsor fields |
For channels and playlists, collection follows available continuation pages until the result limit, spending limit, source exhaustion, or a reported source restriction. Private, deleted, age-gated, members-only, unavailable, and endless live media are handled as source issues rather than empty product rows.
๐ฌ Video, Shorts and live research
Available fields include:
| Group | Fields |
|---|---|
| Identity | id, videoId, type, url, videoUrl, title, input, order |
| Content | description, text, keywords, hashtags, descriptionLinks, emails, public social URLs |
| Audience | viewCount, likes, likesAreApproximate, commentsCount, numberOfSubscribers |
| Publication | date, publishDate, duration, durationSeconds, category, location |
| Visuals | thumbnailUrl, thumbnails, channelAvatarUrl, channelBannerUrl |
| Channel | channelId, channelName, channelUrl, channelUsername, channelDescription, channelDescriptionLinks, channelJoinedDate, channelLocation, channelTotalVideos, channelTotalViews, isChannelVerified, aboutChannelInfo |
| Playback | isLive, isLiveContent, isUpcoming, liveBroadcastDetails, isFamilySafe, isAgeRestricted, playabilityStatus |
| Navigation | chapters, public mostReplayed heatmap markers, playlistId, playlistTitle, playlistIndex |
| Captions | captionTracks, optional subtitles, captionLanguages, captionUrls, transcriptText, transcriptionUrl |
| Transparency | metadataSource, fieldStatus, scrapedAt |
includeChannelDetails is enabled by default and adds the public profile to video results. Channels are reused within a run, so fifty videos from one creator do not cause fifty identical profile lookups.
Exact counts are preferred when exposed. Rounded public counters remain rounded; missing counts are null, not invented zeros. A channelโs published location is not a measured audience location. YouTube does not publicly expose a reliable private monetization flag or exact dislike totals; the Actor does not guess them.
Search and playlist examples
{"mode": "videos","targets": ["electric cars", "https://www.youtube.com/@NASA"],"maxResults": 50,"includeChannelDetails": true}
{"mode": "shorts","targets": ["@NASA"],"maxResults": 10}
To follow a playlist, provide its public /playlist?list=... URL in targets. A video URL containing both v and list addresses that video; use a playlist URL when you want to expand the list.
๐ฌ Comments and replies
{"mode": "comments","targets": ["https://www.youtube.com/watch?v=jNQXAC9IVRw"],"maxResults": 100,"maxCommentsPerVideo": 100,"includeReplies": true,"sortComments": "top"}
Choose top or newest. Replies preserve parentCommentId and isReply. Each row includes commentId, comment text, author name/channel/avatar, public likes, reply count, published-time text, available pinned/hearted/verification signals, and a direct comment URL.
The per-video limit includes replies. YouTube can expose fewer comments than its headline count because some comments are held, removed, hidden, or unavailable in the selected order. Relative publication labels are retained as publishedTimeText; they are not presented as exact timestamps.
๐ Native transcripts and subtitle files
{"mode": "transcripts","targets": ["https://www.youtube.com/watch?v=jNQXAC9IVRw"],"maxResults": 1,"subtitleLanguage": "en"}
Use a language code such as en, es, or pt-BR; use any to accept an available original track. A successful transcript includes:
- Full native text and timestamped segments with
startSecondsanddurationSeconds. - Available language information and the source of the track.
- TXT, SRT and WebVTT download links.
- The source video and available channel metadata.
The Actor reads public manual or automatic YouTube captions. It does not generate AI speech recognition, translations, summaries, or visual descriptions. A video without an accessible requested-language track creates a source diagnostic rather than a transcript result.
For captions alongside video research, set includeSubtitles: true in a video mode. The additional caption operation is charged only when an accessible transcript is saved. It is off by default.
๐ฅ Video and audio downloads
{"mode": "downloads","targets": ["https://www.youtube.com/watch?v=jNQXAC9IVRw"],"maxResults": 1,"downloadType": "video","maxHeight": 720,"maxFileSizeMb": 50}
For audio, set downloadType to audio. maxHeight is an upper bound rather than a promise that every source exposes that resolution. Available source formats determine codecs and container; no computationally expensive audio transcoding is silently enabled.
Download rows include downloadedFileUrl, fileKey, fileSizeBytes, fileSizeMb, a SHA-256 integrity hash, container/format, measured resolution and codecs, audio availability, duration and storage notice. The completed media is inspected before delivery. The file itself is stored with the run, so no S3 credentials are needed.
Files follow your Apify storage retention and access settings. Export them before the run storage expires. Public availability can change; signed upstream playback URLs expire and are not a permanent replacement for a saved file. Ongoing live streams, DRM-protected media and private content are not downloaded.
๐ค Creator leads and sponsorship research
The original creator research engine remains available in leads mode. It finds public emails, phones, websites, social profiles, regional and language signals, engagement samples, sponsorship evidence and explainable similar creators.
{"mode": "leads","targets": ["@mkbhd", "https://www.youtube.com/@veritasium"],"maxResults": 2,"enrichmentDepth": "balanced"}
{"mode": "leads","targets": ["home coffee equipment reviewers"],"maxResults": 20,"enrichmentDepth": "deep"}
{"mode": "leads","targets": ["@mkbhd"],"leadStrategy": "similar","maxResults": 10,"enrichmentDepth": "balanced"}
Use channel/video targets or search phrases within one lead run. fast, balanced, and deep retain their original enrichment behavior. Old API inputs using scrapeType, channels, searchQueries, seedChannels, and the original optional lead settings continue to work; existing integrations do not need to migrate immediately.
Business emails hidden behind YouTubeโs sign-in/reveal button are not presented as extracted addresses. Public website and description evidence is kept separately from domain guesses. Sponsor evidence includes source links and disclosure signals; inferred activity or illustrative value is clearly distinct from verified commercial revenue.
โ๏ธ Simple input reference
| Field | Default | Use |
|---|---|---|
mode | videos | Select the workflow |
targets | Your list | Up to 1,000 starting targets, one per entry |
maxResults | 20 | Total unique saved records, up to 5,000 |
includeChannelDetails | true | Include public profiles with video results |
includeSubtitles | false | Add accessible native captions to video results |
subtitleLanguage | en | Caption language or any |
maxCommentsPerVideo | 100 | Comments/replies per video |
includeReplies | true | Follow reply threads in Comments mode |
sortComments | top | top or newest |
downloadType | video | video or audio |
maxHeight | 720 | Maximum requested video height |
maxFileSizeMb | 50 | Per-file transfer ceiling, up to 500 MB |
leadStrategy | auto | Direct/search targets or similar creators |
enrichmentDepth | balanced | Creator lead enrichment preset |
๐ Results, files and diagnostics
Open Videos & Shorts, Comments & replies, Transcripts, Files, or the existing creator lead/contact/sponsor views. Apify also provides All fields. Export the dataset as JSON, CSV or Excel, or read it with the Apify API while the run is still working.
The OUTPUT record in the default key-value store reports the effective options, saved count, source issues, per-target progress, stop reason, source request count and timing. The separate errors dataset contains source diagnostics. Those diagnostics do not trigger a successful-result event.
Invalid input ends cleanly with a correction message before source collection. A successful run with zero rows can mean a source had no accessible matching content. The summary explains whether the run hit a result limit, spending limit, source restriction, or pagination boundary.
๐ API access and streaming
The Actor keeps its original API identifier. Start an asynchronous run with your own Apify token:
curl --request POST \'https://api.apify.com/v2/acts/trakk~youtube-channel-email-sponsor-leads/runs?maxTotalChargeUsd=1' \--header "Authorization: Bearer $APIFY_TOKEN" \--header 'Content-Type: application/json' \--data '{"mode":"videos","targets":["@NASA"],"maxResults":20}'
The response contains defaultDatasetId and defaultKeyValueStoreId. Read /v2/datasets/{defaultDatasetId}/items?format=json with the same authentication while the run is working; there is no need to wait for its final status. The run summary is available at /v2/key-value-stores/{defaultKeyValueStoreId}/records/OUTPUT. Download and caption records contain the generated file links.
๐ณ Pricing
The Pricing tab shows the prices active for your account and Apify plan. Platform usage is included; you do not separately pay the Actorโs compute or managed proxy usage.
Reduced tariffs
| Operation | Rate after the announced pricing transition |
|---|---|
| Research results: videos, Shorts, streams, channels, comments and base result rows | $1.50 / 1,000 on Free, falling to $0.70 / 1,000 on Diamond |
| Complete creator lead, including the research-result and creator-research events | $5 / 1,000 on Free, falling to $4 / 1,000 on higher tiers; the original total lead rates are retained |
| Accessible native transcript | Additional $0.50 / 1,000 on Free, with lower tier rates |
| Completed video or audio file | Additional $0.003 per file |
| Media transfer | $0.0006 per MB transferred, rounded across the run |
| Actor start | $0.001 per allocated GB; $0.002 at the default 2 GB |
Pricing transition: new paid events follow Apifyโs notice period. Until the announced rates activate, the original result/start rates apply, native captions and tiny downloads have no additional operation fee, and public downloads are limited to 1 MB per file. The run summary reports that effective limit. Full configured file limits apply automatically once metered pricing is active. Always check the Pricing tab for the prices active on your account.
- A small Actor Start charge applies when a run starts, including a run with no results.
- A successful research result covers one saved video, Short, stream, channel, comment/reply, transcript row or completed download row.
- Creator research adds the deeper contact and sponsor work to a creator lead.
- Native transcript is an additional operation only when accessible caption text is successfully saved.
- Download completed covers preparation and delivery only when the complete file and result row are saved.
- Media transfer is charged by MB actually transferred, rounded to whole MB across the run. It can include transferred bytes before a user aborts or a transfer stops; an error record itself is not charged as a successful result.
The Actor checks the remaining run budget before saving or starting a heavy operation, and stops further work when its charge limit is reached. Choose a realistic maximum charge for the requested result count and file sizes. A spending ceiling is a limit, not an upfront bill.
๐ Data notes
Public YouTube responses vary by video, country, session and availability. A null value means the source did not expose a supported value; it does not mean zero. Fields such as native captions, locations, chapters, replay heatmaps, collaborators and disclosures only exist on some videos.
Translated and AI analysis fields are not populated with invented text. Private revenue, hidden emails, private audience demographics, exact dislikes and account-only content are outside the public-data contract. This Actor is independent of YouTube and Google.
๐ Detailed creator lead field guide
The following tables describe the existing enriched creator fields returned by leads mode, including their evidence and interpretation.
๐ฆ Output schema โ what data do you get?
One dataset row represents one successfully processed creator. The schema stays consistent across all three workflows.
| Schema group | Fields |
|---|---|
| ๐บ Identity | channelId, channelName, channelHandle, channelUrl, avatarUrl, isVerified, description, keywords, country, joinedDate, channelLinkTitles, channelLinkUrls |
| ๐ Region verification | targetRegion, channelCountryCode, regionMatch, regionMatchStatus, regionMatchSource |
| ๐ฃ๏ธ Content language | primaryContentLanguage, contentLanguages, contentLanguageConfidencePercent, contentLanguageCoveragePercent, contentLanguageSource |
| ๐ Discovery source | sourceMode, sourceInput, sourceQuery, sourceSeedChannel, sourceSeedChannelId, searchRank |
| ๐ Audience | subscriberCount, totalViews, videoCount, avgRecentViews, viewRatePercent, uploadFrequencyPerMonth, latestVideoDate |
| ๐ง Emails | primaryEmail, primaryEmailRole, primaryEmailValidation, primaryEmailConfidence, primaryEmailSourceType, primaryEmailSourceUrl, emails, emailCount, emailRoles, emailValidations, emailSourceTypes, emailSourceUrls |
| ๐ Other contacts | phones, phoneCount, primaryPhone, phoneSourceTypes, phoneSourceUrls, websiteUrl, websiteUrls, websiteCount, socialUrls, socialLinkCount, instagramUrl, xUrl, tiktokUrl, linkedinUrl, githubUrl, discordUrl, telegramUrl, whatsappUrl, facebookUrl, twitchUrl |
| ๐ค Sponsors | sponsorReadinessScore, contactPriorityScore, sponsoredVideosFound, sponsoredVideoRatePercent, sponsorBrands, sponsorshipSignals, latestSponsoredAt, sponsorEvidence, sponsorEvidenceUrls |
| ๐ Lead qualification | leadTier, leadStatus, recommendedContactMethod, qualificationReasons, qualificationMethod |
| ๐งฌ Lookalikes | similarityScore, similarityBreakdown, sharedTopics, similarityReasons, audienceSimilarity, similarityMethod |
| ๐ฌ Enrichment | recentVideosScanned, recentVideosDetailed, recentVideoIds, recentVideoTitles, videoEnrichmentStatus, pinnedCommentStatus, pinnedCommentVideoId, pinnedCommentAuthor, pinnedCommentText, pinnedCommentUrls |
| ๐ ๏ธ Quality status | contactStatus, hasEmail, hasAnyContact, hasLinks, externalLinkCount, hasHiddenEmail, protectedEmailStatus, alternativeEmailSourceTypes, contactFormUrl, contactFormUrls, secondaryChannelScanStatus, secondaryChannelsScanned, archivedContactSearchStatus, archivedContactVideosScanned, contactEnrichmentStatus, contactPagesScanned, contactSourcesAttempted, contactSourceFailures, status, scrapedAt |
Example output object
All values below are fictional examples.
{"channelName": "Demo Creator","channelUrl": "https://www.youtube.com/@demo_creator","subscriberCount": 184000,"avgRecentViews": 42600,"targetRegion": "US","channelCountryCode": "US","regionMatchStatus": "matched","primaryContentLanguage": "en","primaryEmail": "partnerships@example.test","emailCount": 1,"primaryEmailRole": "partnerships","primaryEmailValidation": "not_checked","phones": ["+12025550104"],"phoneCount": 1,"contactStatus": "EMAIL_AVAILABLE","websiteUrls": ["https://example.test/contact"],"sponsorReadinessScore": 84,"sponsoredVideosFound": 2,"sponsoredVideoRatePercent": 40.0,"sponsorBrands": ["Example Brand"],"sponsorEvidenceUrls": ["https://www.youtube.com/watch?v=DEMO_VIDEO_ID"],"leadTier": "A","recommendedContactMethod": "email","similarityScore": 91,"sharedTopics": ["camera", "reviews", "technology"],"similarityReasons": ["Shares 3 public topic(s) with the seed: camera, reviews, technology"],"status": "success"}
Sponsor evidence object schema
Each sponsorEvidence item has this shape:
{"videoId": "DEMO_VIDEO_ID","videoTitle": "Example sponsored video","videoUrl": "https://www.youtube.com/watch?v=DEMO_VIDEO_ID","publishedAt": "2026-08-01T00:00:00+00:00","brands": ["Example Brand"],"signals": ["sponsored by", "paid promotion disclosure"],"confidence": 95,"evidenceText": "Sponsored by Example Brand."}
How contact fields should be read
primaryEmailis the highest-priority public email found, not simply the first address on a page.primaryEmailRolelabels likely use:partnerships,business,management,booking,creator,personal,press,support,jobs,legal, orunknown.primaryEmailValidationchecks the email domain/MX setup. It does not send a message and cannot guarantee that an individual mailbox accepts mail.primaryEmailValidationScopestates this on every row:domain_mail_records_onlywhen the check ran,not_checkedwhen it did not.- The Creators with an email filter keeps only creators whose address sits on a domain that can receive mail. Addresses on domains with no mail records, and disposable domains, no longer satisfy the filter; they are still listed as secondary evidence when a deliverable address exists. Inconclusive checks (a DNS timeout) count as deliverable, because a timeout is not evidence against an address.
primaryEmailSourceUrlandphoneSourceUrlslet you verify contact evidence at its public source.channelLinkTitlesstays aligned withchannelLinkUrls, preserving the labels published on the channel.websiteUrlsandsocialUrlsseparate public creator sites from social profiles; the count fields make CRM filtering easier.hasHiddenEmail: truemeans YouTube indicates a protected business-email form exists. YouTube's logged-out response contains only โSign in to see email addressโ; the exact protected value is not present, so the Actor does not claim to reveal it or bypass login/CAPTCHA.- In Deep mode,
protectedEmailStatus: alternative_public_email_foundmeans the Actor found an independently public email in channel/video text, a linked secondary channel, a creator-linked site/profile, structured page data, or an older contact-oriented upload. The correspondingprimaryEmailSourceUrlremains the evidence. protectedEmailStatus: youtube_protected_onlymeans all bounded public alternatives were checked but no current source-backed email was found. The Actor keeps social links, websites andcontactFormUrlas alternative outreach routes.- Stale third-party email lists and guessed mailbox patterns are not promoted into
primaryEmail. - Creator-owned websites found in public video descriptions can be checked when their domain matches the channel identity. Unrelated sponsor sites are not treated as creator contact sources.
How sponsor evidence works
Recent video metadata and descriptions are checked for paid-promotion disclosure and phrases such as sponsored by, paid partnership, affiliate link, use code, and #ad.
Always review the evidence URL before making a business decision: these are strong public signals, not a legal determination that a sponsorship occurred.
๐ Audience samples and clearer sponsorship signals
The Audience & disclosure signals output tab adds statistics from the recent videos actually analyzed. These fields reuse the collected video data and do not enable another paid service.
| Field | Meaning |
|---|---|
medianRecentViews | Median of the available view counts; useful when one viral upload distorts the average |
minRecentViews, maxRecentViews | Lowest and highest known view count in that sample |
recentViewSampleSize | Number of analyzed videos with a usable view count, including a real zero |
recentViewCoveragePercent | Share of analyzed videos with a known view count; unavailable when no videos were analyzed |
recentVideoViewCounts | Published view counts aligned with recentVideoIds; unavailable entries remain empty |
recentVideoDurationsSeconds | Available duration in seconds, aligned with the same video IDs |
paidPromotionDisclosuresFound | Videos in the sample where a paid-promotion disclosure was observed |
explicitSponsorTextVideosFound | Videos with qualifying sponsor or paid-partnership wording |
affiliateSignalVideosFound | Videos with explicit affiliate-link wording |
discountCodeSignalVideosFound | Videos with promo-code or use-code wording |
These signal groups can overlap. An affiliate link or discount code does not, by itself, prove a paid sponsorship. A zero means no qualifying evidence was found in the analyzed sample; it is not proof that a creator has never accepted sponsorships. Review sponsorEvidenceUrls, the selected depth and enrichment status before interpreting coverage.
The existing avgRecentViews, sponsorship scores and source evidence remain available. Missing view counts are excluded from the statistics instead of being converted to zero.
๐ต How the illustrative video value is calculated
estimatedSponsoredVideoValueUsd remains a hypothetical media-value calculation, not a creator quote or measured income. assumedSponsoredVideoCpmUsd exposes its assumed CPM of 20 USD. sponsoredVideoValueMethod: illustrative_views_x_assumed_cpm and sponsoredVideoValueIsEstimate: true identify that assumption. Actual rates depend on the creator, audience, campaign and negotiation.
๐ฅ Shared agency emails and distinct creator channels
deduplicateEmails defaults to true, preserving the existing one-creator-per-primary-email behavior.
Set it to false when you want distinct channels even if they share an agency or management mailbox. Channel identity deduplication still applies. Each delivered creator is a normal paid result under the existing pricing; a shared address does not make that creator row free.
{"scrapeType": "keywordDiscovery","searchQueries": ["coffee brewing creators"],"enrichmentDepth": "balanced","contactFilter": "contactableOnly","deduplicateEmails": false,"maxResults": 20}
๐ International inputs and contact quality
Channel handles may contain supported non-Latin characters. Normal YouTube channel URLs, channel IDs and video links remain supported. You can also use a descriptive Unicode leadMemoryName; repeated equivalent names retain a stable memory. Check any input-normalization warnings in Run summary.
Invalid numeric controls, contradictory subscriber limits and unsupported filters or markets are rejected before source collection. Use the supported GB market code for the United Kingdom. Unsupported values are not silently used to broaden a search.
Email validation remains a domain-level check. A domain explicitly declaring that it accepts no email is marked invalid_domain and cannot satisfy emailOnly. This does not verify an individual mailbox or send any email.
Already accepted dataset writes finish before normal cancellation is propagated. Resumed runs retain channel deduplication; if previously delivered leads cannot be checked, the Actor stops with a diagnostic instead of silently collecting and charging the same creators again.
A raw handle or alternate channel URL can require a profile lookup to resolve its identity. Creators already present in the selected lead memory are then excluded before video and website enrichment.
Balanced allows up to 30 seconds for its video-enrichment phase and each website phase so slower public sources have time to return their available fields. It still analyzes up to five recent videos by default. Explicit timeout settings remain respected, and source failures remain visible in the coverage fields.
Fast keeps its one-video scope and leaves website/profile enrichment off by default. Its network deadline is 30 seconds and video-enrichment deadline is 16 seconds, allowing available responses to finish. These are upper bounds; they are not a guaranteed completion time. Explicit user settings remain respected.