YouTube Scraper โ€” Videos, Shorts, Downloads, Comments & Leads avatar

YouTube Scraper โ€” Videos, Shorts, Downloads, Comments & Leads

Pricing

from $4.00 / 1,000 research results

Go to Apify Store
YouTube Scraper โ€” Videos, Shorts, Downloads, Comments & Leads

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

Kelopr_bk

Maintained by Community

Actor stats

1

Bookmarked

71

Total users

27

Monthly active users

4.5 hours

Issues response

4 days ago

Last modified

Features

Limited permissions

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

  1. Choose a mode.
  2. Add your targets, one URL, ID, handle, or phrase per entry.
  3. 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

ModeStarting pointsOne result represents
๐ŸŽฌ videosSearch phrases, video URLs/IDs, channel handles/URLs/IDs, playlistsOne public video with available video and channel metadata
โšก shortsShorts URLs/IDs, channels, search phrasesOne short-form video
๐Ÿ”ด liveChannel stream tabs, video URLs/IDs, search phrasesOne stream or completed stream recording; ongoing streams can have no final duration
๐Ÿ“บ channelsChannels, video URLs to resolve their creators, search phrasesOne public channel profile
๐Ÿ’ฌ commentsVideos, channels, playlistsOne comment or reply, with its author and parent relationship
๐Ÿ“ transcriptsVideos, channels, playlistsOne accessible native transcript, including timestamped segments and export links
๐Ÿ“ฅ downloadsVideos, channels, playlistsOne completed downloadable video or audio file and its metadata
๐Ÿค leadsChannels/videos or search phrases; optional similar-creator discoveryOne 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:

GroupFields
Identityid, videoId, type, url, videoUrl, title, input, order
Contentdescription, text, keywords, hashtags, descriptionLinks, emails, public social URLs
AudienceviewCount, likes, likesAreApproximate, commentsCount, numberOfSubscribers
Publicationdate, publishDate, duration, durationSeconds, category, location
VisualsthumbnailUrl, thumbnails, channelAvatarUrl, channelBannerUrl
ChannelchannelId, channelName, channelUrl, channelUsername, channelDescription, channelDescriptionLinks, channelJoinedDate, channelLocation, channelTotalVideos, channelTotalViews, isChannelVerified, aboutChannelInfo
PlaybackisLive, isLiveContent, isUpcoming, liveBroadcastDetails, isFamilySafe, isAgeRestricted, playabilityStatus
Navigationchapters, public mostReplayed heatmap markers, playlistId, playlistTitle, playlistIndex
CaptionscaptionTracks, optional subtitles, captionLanguages, captionUrls, transcriptText, transcriptionUrl
TransparencymetadataSource, 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 startSeconds and durationSeconds.
  • 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

FieldDefaultUse
modevideosSelect the workflow
targetsYour listUp to 1,000 starting targets, one per entry
maxResults20Total unique saved records, up to 5,000
includeChannelDetailstrueInclude public profiles with video results
includeSubtitlesfalseAdd accessible native captions to video results
subtitleLanguageenCaption language or any
maxCommentsPerVideo100Comments/replies per video
includeRepliestrueFollow reply threads in Comments mode
sortCommentstoptop or newest
downloadTypevideovideo or audio
maxHeight720Maximum requested video height
maxFileSizeMb50Per-file transfer ceiling, up to 500 MB
leadStrategyautoDirect/search targets or similar creators
enrichmentDepthbalancedCreator 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

OperationRate 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 transcriptAdditional $0.50 / 1,000 on Free, with lower tier rates
Completed video or audio fileAdditional $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 groupFields
๐Ÿ“บ IdentitychannelId, channelName, channelHandle, channelUrl, avatarUrl, isVerified, description, keywords, country, joinedDate, channelLinkTitles, channelLinkUrls
๐ŸŒ Region verificationtargetRegion, channelCountryCode, regionMatch, regionMatchStatus, regionMatchSource
๐Ÿ—ฃ๏ธ Content languageprimaryContentLanguage, contentLanguages, contentLanguageConfidencePercent, contentLanguageCoveragePercent, contentLanguageSource
๐Ÿ”Ž Discovery sourcesourceMode, sourceInput, sourceQuery, sourceSeedChannel, sourceSeedChannelId, searchRank
๐Ÿ“Š AudiencesubscriberCount, totalViews, videoCount, avgRecentViews, viewRatePercent, uploadFrequencyPerMonth, latestVideoDate
๐Ÿ“ง EmailsprimaryEmail, primaryEmailRole, primaryEmailValidation, primaryEmailConfidence, primaryEmailSourceType, primaryEmailSourceUrl, emails, emailCount, emailRoles, emailValidations, emailSourceTypes, emailSourceUrls
๐Ÿ“ž Other contactsphones, phoneCount, primaryPhone, phoneSourceTypes, phoneSourceUrls, websiteUrl, websiteUrls, websiteCount, socialUrls, socialLinkCount, instagramUrl, xUrl, tiktokUrl, linkedinUrl, githubUrl, discordUrl, telegramUrl, whatsappUrl, facebookUrl, twitchUrl
๐Ÿค SponsorssponsorReadinessScore, contactPriorityScore, sponsoredVideosFound, sponsoredVideoRatePercent, sponsorBrands, sponsorshipSignals, latestSponsoredAt, sponsorEvidence, sponsorEvidenceUrls
๐Ÿ† Lead qualificationleadTier, leadStatus, recommendedContactMethod, qualificationReasons, qualificationMethod
๐Ÿงฌ LookalikessimilarityScore, similarityBreakdown, sharedTopics, similarityReasons, audienceSimilarity, similarityMethod
๐ŸŽฌ EnrichmentrecentVideosScanned, recentVideosDetailed, recentVideoIds, recentVideoTitles, videoEnrichmentStatus, pinnedCommentStatus, pinnedCommentVideoId, pinnedCommentAuthor, pinnedCommentText, pinnedCommentUrls
๐Ÿ› ๏ธ Quality statuscontactStatus, 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"
}

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

  • primaryEmail is the highest-priority public email found, not simply the first address on a page.
  • primaryEmailRole labels likely use: partnerships, business, management, booking, creator, personal, press, support, jobs, legal, or unknown.
  • primaryEmailValidation checks the email domain/MX setup. It does not send a message and cannot guarantee that an individual mailbox accepts mail. primaryEmailValidationScope states this on every row: domain_mail_records_only when the check ran, not_checked when 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.
  • primaryEmailSourceUrl and phoneSourceUrls let you verify contact evidence at its public source.
  • channelLinkTitles stays aligned with channelLinkUrls, preserving the labels published on the channel.
  • websiteUrls and socialUrls separate public creator sites from social profiles; the count fields make CRM filtering easier.
  • hasHiddenEmail: true means 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_found means 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 corresponding primaryEmailSourceUrl remains the evidence.
  • protectedEmailStatus: youtube_protected_only means all bounded public alternatives were checked but no current source-backed email was found. The Actor keeps social links, websites and contactFormUrl as 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.

FieldMeaning
medianRecentViewsMedian of the available view counts; useful when one viral upload distorts the average
minRecentViews, maxRecentViewsLowest and highest known view count in that sample
recentViewSampleSizeNumber of analyzed videos with a usable view count, including a real zero
recentViewCoveragePercentShare of analyzed videos with a known view count; unavailable when no videos were analyzed
recentVideoViewCountsPublished view counts aligned with recentVideoIds; unavailable entries remain empty
recentVideoDurationsSecondsAvailable duration in seconds, aligned with the same video IDs
paidPromotionDisclosuresFoundVideos in the sample where a paid-promotion disclosure was observed
explicitSponsorTextVideosFoundVideos with qualifying sponsor or paid-partnership wording
affiliateSignalVideosFoundVideos with explicit affiliate-link wording
discountCodeSignalVideosFoundVideos 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.