YouTube Scraper avatar

YouTube Scraper

Pricing

from $0.20 / 1,000 collected records

Go to Apify Store
YouTube Scraper

YouTube Scraper

Scrape YouTube search results, videos, Shorts, live streams, channels with social links, playlists, community posts, comments with nested replies and transcripts. Full search filters, exact counts, fast and low cost.

Pricing

from $0.20 / 1,000 collected records

Rating

0.0

(0)

Developer

Coder

Coder

Maintained by Community

Actor stats

2

Bookmarked

50

Total users

15

Monthly active users

11 days ago

Last modified

Share

Scrape YouTube search results, videos, Shorts, live streams, channels, playlists and community posts into clean JSON, CSV or Excel. Get exact views, likes and comment counts, full descriptions with links, hashtags, tags, publish times, channel details with every social link, comments with nested replies, transcripts, chapters and YouTube's AI video summaries. Every YouTube search filter is built in - no YouTube account, no login and no API key needed.

Use it for market and competitor research, influencer discovery and outreach, content and trend analysis, brand monitoring, audience and sentiment research (comments), AI / LLM datasets (transcripts) and analytics dashboards.


What you get

InputYou get
Search termVideos, Shorts, live streams, channels and playlists from YouTube search, with any combination of YouTube's filters
Channel link or @handleThe channel's videos, Shorts and streams (latest, popular or oldest first), its community posts and playlists, and the full channel profile
Playlist linkThe playlist's details and its videos in order
Video, Short or live linkThat video with full details
Community post linkThe post, with its comments
YouTube search linkThe results of that search, with the filters already in the link

Results are saved in five tables, so each kind of data opens as its own clean spreadsheet: Videos (videos, Shorts and streams), Channels, Comments, Posts and Playlists.

Every video includes

SectionFields
BasicsID, URL, type (video / short / stream), title, full description, links found in the description, hashtags, tags, thumbnail
NumbersExact view count, like count and comment count, whether comments are turned off
Time & lengthDuration, exact publish time, live start / end times, scheduled start, current viewers for live streams
DetailsCategory, language, made for kids, age-restricted, unlisted, license (standard / Creative Commons), HD / SD, 360°, 3D, captions available, paid promotion, region restrictions, topics, recording location
ChannelChannel ID, name, handle, URL
Add-onsChapters, YouTube's AI summary, members-only flag, collaborators, Shorts sound, transcripts (see below)

Channel details (optional)

Name, handle, description, all social and website links (Instagram, X/Twitter, TikTok, Facebook, Discord, websites ...), country, join date, subscribers, total views, video count, verified and artist badges, whether a business email is listed, avatar, banner, keywords and the channel's tabs.

Comments with nested replies

Every comment and reply is one row with the text, author (name, channel, avatar, verified, is the channel owner), exact like count, reply count, exact publish time, edited, pinned and creator heart. Replies are collected up to 6 levels deep (replies to replies), and each row carries replyLevel, parentId and rootId so you can rebuild every thread.

Transcripts

The video's captions as plain text, timed segments (start, duration, text) or SRT subtitles, in the languages you choose. Manual captions are preferred over auto-generated ones, and every video also lists all the caption languages it has.


Input

FieldWhat it does
Search termsKeywords to search, one per row
YouTube links or channel handlesAny YouTube link or @handle. Add a tab to a channel link (/videos, /shorts, /streams, /posts, /playlists) to scrape only that tab
Maximum videos / Shorts / live streamsHow many of each to collect per search term, channel or playlist. 0 skips that kind
Maximum channels / playlists from searchAlso collect channels or playlists that match a search term
Search filtersSort by (relevance, popularity), upload date (today, this week, this month, this year), duration (under 3, 3-20, over 20 minutes) and features (HD, 4K, subtitles, Creative Commons, 360°, VR180, 3D, HDR, location, purchased) - the same options as YouTube's filter panel
Channel videos orderLatest, popular or oldest first
Published afterKeep only items published after a date (2026-09-01) or within a period (7 days, 3 months)
Add channel detailsOne channel row for every channel you entered and every collected video's channel, with social links (charged per channel)
Maximum community posts / playlists per channelCollect a channel's posts and playlists
Add chapters and AI summaryChapters, YouTube's AI summary, members-only flag and collaborators
Add Shorts soundThe sound or song a Short uses
Add transcriptsCaptions, with language preference and format
CommentsMaximum comments per video or post, order (top / newest), reply depth (0-6), replies per comment and a "published after" date
CountryThe country YouTube shows results for

Example input

{
"searchQueries": ["ai tools for students"],
"startUrls": ["https://www.youtube.com/@mkbhd"],
"maxResults": 20,
"maxResultsShorts": 10,
"searchUploadDate": "month",
"searchFeatures": ["hd", "subtitles"],
"includeChannelInfo": true,
"includeTranscripts": true,
"transcriptLanguages": ["en"],
"maxComments": 50,
"maxReplyDepth": 2
}

Example output

Video

{
"type": "video",
"id": "DkUuOr21v4s",
"url": "https://www.youtube.com/watch?v=DkUuOr21v4s",
"title": "Xiaomi 18 Pro Max: They've Done It Again!",
"description": "If one-upping the iPhone was a sport, Xiaomi would be Lebron James.\n\nMKBHD Merch: http://shop.MKBHD.com ...",
"descriptionLinks": ["http://shop.MKBHD.com", "https://goo.gl/B3AWV5"],
"hashtags": [],
"tags": ["Xiaomi", "Xiaomi 18 Pro", "Xiaomi 18 Pro Max", "18 Pro Max"],
"thumbnailUrl": "https://i.ytimg.com/vi/DkUuOr21v4s/uhddefault.jpg",
"viewCount": 7607998,
"likeCount": 90294,
"commentCount": 5167,
"commentsTurnedOff": false,
"duration": "11:56",
"durationSeconds": 716,
"publishedAt": "2026-09-24T22:26:18Z",
"category": "Science & Technology",
"language": "en",
"isLive": false,
"madeForKids": false,
"isAgeRestricted": false,
"license": "standard",
"definition": "hd",
"hasCaptions": true,
"hasPaidPromotion": false,
"topics": ["Technology"],
"channel": {
"id": "UCBJycsmduvYEL83R_U4JriQ",
"name": "Marques Brownlee",
"handle": "@mkbhd",
"url": "https://www.youtube.com/@mkbhd"
},
"chapters": [],
"aiSummary": "Marques Brownlee examines the Xiaomi 18 Pro Max, exploring its hardware upgrades including a new privacy display, advanced camera system ...",
"transcripts": [
{
"language": "en",
"languageName": "English",
"isAutoGenerated": false,
"text": "So this is the new iPhone 18 Pro Max, and this is the new Xiaomi... 18 Pro Max. ..."
}
],
"availableTranscriptLanguages": ["en", "ja", "pt", "ru", "tr", "vi"],
"source": { "input": "@mkbhd", "type": "channel", "tab": "videos", "position": 1 },
"scrapedAt": "2026-09-26T13:42:31Z"
}

Channel

{
"type": "channel",
"id": "UCBJycsmduvYEL83R_U4JriQ",
"url": "https://www.youtube.com/@mkbhd",
"name": "Marques Brownlee",
"handle": "@mkbhd",
"links": [
{ "title": "Twitter", "url": "http://twitter.com/MKBHD" },
{ "title": "Instagram", "url": "http://instagram.com/MKBHD" },
{ "title": "Reddit", "url": "http://reddit.com/r/MKBHD" },
{ "title": "Discord", "url": "http://discord.gg/MKBHD" }
],
"country": "United States",
"joinedAt": "2008-03-21",
"subscriberCount": 21300000,
"viewCount": 5701982926,
"videoCount": 1853,
"isVerified": true,
"hasBusinessEmail": true,
"avatarUrl": "https://yt3.googleusercontent.com/...",
"bannerUrl": "https://yt3.googleusercontent.com/...",
"keywords": ["MKBHD", "MarquesBrownlee", "Marques", "Brownlee"],
"tabs": ["Home", "Videos", "Shorts", "Live", "Shows", "Playlists", "Posts", "Store"]
}

Comment (a reply)

{
"type": "comment",
"id": "UgwbFVC25OjzrbY9iYB4AaABAg.AatakisKOuLAatdb_dHJlU",
"text": "That is a great way of using these tools as a supportive study tool for students!",
"author": {
"name": "@TeachersTechHQ",
"channelId": "UCM3mutT2jaaAIrqiMqom11g",
"isVerified": false,
"isChannelOwner": true,
"url": "https://www.youtube.com/@TeachersTechHQ"
},
"likeCount": 1,
"replyCount": 0,
"replyLevel": 1,
"parentId": "UgwbFVC25OjzrbY9iYB4AaABAg",
"rootId": "UgwbFVC25OjzrbY9iYB4AaABAg",
"publishedAt": "2026-09-18T09:41:02Z",
"isEdited": false,
"hasCreatorHeart": false,
"isPinned": false,
"videoId": "cIScTGWMrgg",
"videoTitle": "AI Tools for Teachers: How Students Can Use AI to Learn, Not Just Get Answers?"
}

Pricing

You pay only for results you receive - never for searches, filters, retries or items that turned out to be private or deleted.

ResultPrice per 1,000
Video, Short or stream (full details)$1.50
Channel (full profile with social links)$2.00
Comment or reply (any level)$0.50
Transcript (one video, one language)$2.00
Community post$1.00
Playlist details$1.00
Chapters + AI summary add-on (per video)$1.00
Shorts sound add-on (per Short)$0.50

Prices are for the Apify Free plan; paid Apify plans get lower prices automatically. Search filters and date filters are free. You can set a maximum cost per run in the run options - the Actor stops cleanly when it is reached.

Free plan

On Apify's free plan a run uses up to 5 search terms or links and up to 20 results of each kind per search term, channel or playlist (20 comments per video). Every feature works, so you can try all of them before upgrading.

Good to know

  • Transcripts are returned in the languages each video actually has. YouTube does not offer machine-translated captions to automated tools, so a language the video does not have is skipped.
  • Chapters are YouTube's own (creator or auto-generated). YouTube does not show them on every request; the Actor retries, and a video with no chapters returns an empty list.
  • Community post comments have no exact time: YouTube only shows "3 days ago" for them, so they get estimatedPublishedAt (worked out from publishedTimeText) and an empty publishedAt. Video comments have exact times in publishedAt.
  • Community posts have an estimatedPublishedAt worked out from YouTube's "3 weeks ago" (publishedTimeText): exact time for posts under a day old, the date only for older ones. YouTube shows no exact post time anywhere.
  • Poll results (percentages) are only shown by YouTube after voting, so polls include the choices and total votes.
  • Channel emails are behind YouTube's sign-in and captcha. The channel row tells you whether a business email is listed (hasBusinessEmail).
  • Private, removed and members-only content is skipped and not charged.

FAQ

Do I need a YouTube account or API key? No. Everything is public data, collected without logging in.

Can I scrape a whole channel? Yes - set Maximum videos (and Shorts / live streams) high enough. Use "Published after" to collect only recent uploads.

How do I get only a channel's Shorts? Paste the channel link with /shorts at the end, e.g. https://www.youtube.com/@mkbhd/shorts.

Can I use my own YouTube search? Yes - filter the results on youtube.com, copy the address and paste it as a link. Its filters are kept.

How do I rebuild comment threads? Group comment rows by rootId; each reply's parentId is the comment it answers and replyLevel is its depth. replyCount is YouTube's own number: every reply below that comment, at all levels (so a reply with 1 answer that itself has 4 answers shows 5).

Can I export to Excel or CSV? Yes - every table can be downloaded as JSON, CSV, Excel, XML or HTML, or read through the Apify API.