YouTube Channel Videos & Stats Scraper
Pricing
from $0.70 / 1,000 video scrapeds
YouTube Channel Videos & Stats Scraper
Scrape all videos from YouTube channels. Get titles, views, duration, publish dates, thumbnails, and optional enriched stats (likes, comments, category, tags).
Pricing
from $0.70 / 1,000 video scrapeds
Rating
0.0
(0)
Developer
LurkAPI
Actor stats
1
Bookmarked
4
Total users
3
Monthly active users
a day ago
Last modified
Categories
Share
Enter any YouTube channel and get a clean list of every video with metadata and stats. No coding required.
๐ฌ What it does
Give it one or more YouTube channels (or playlists), and it will:
- Pull every video from each channel with title, views, duration, publish date, and thumbnail
- Filter and sort by content type, date range, title keywords, or view count
- Return structured results you can export as JSON, CSV, or Excel
You can scrape up to 200 channels per run, with up to 5,000 videos each. Results appear in real time in the Output tab as they are scraped.
๐ How to use it
Step 1: Enter your channels
Add one or more YouTube channels. Supported formats:
@mkbhd(handle)https://www.youtube.com/@mkbhd(channel URL)UCBJycsmduvYEL83R_U4JriQ(channel ID)https://www.youtube.com/playlist?list=PLDIoUOhQQPl...(playlist URL)PLDIoUOhQQPl...(playlist ID)- Any video URL (the scraper will find its channel automatically and scrape all videos from it, not just the linked video)
Step 2: Configure your filters
- Content Type: All content, videos only, Shorts only, or livestreams only.
- Sort By: Newest first (default), oldest first, or most viewed.
- Published After / Before: Only get videos from a specific date range.
- Title Filter: Only keep videos whose title contains specific keywords. Separate multiple keywords with commas (e.g.
review, unboxing). - Max Videos Per Channel: Default is 50. Set to 0 for unlimited (up to 5,000).
Step 3: Run it
Click Start. Results appear in real time in the Output tab. You do not have to wait for the full run to finish. When done, export your results from the Output tab.
For developers
You can call this tool through the Apify API:
{"channels": ["@mkbhd", "@veritasium"],"maxVideosPerChannel": 100,"contentType": "all","sortBy": "newest","includeVideoStats": true,"concurrency": 3}
๐ Incremental scraping
If you scrape the same channels regularly, pass video IDs from your previous run to the skipVideoIds input. The scraper will skip those videos and only return new ones. This saves time and cost on repeated runs.
Example workflow:
- Run the scraper for
@mkbhdwithmaxVideosPerChannel: 100 - Save the
videoIdcolumn from the results - Next week, run again with the same channel and pass the saved IDs in
skipVideoIds - Only new videos since your last run will be returned
๐ Output
Every result includes a status field. When it says "Success", the video was scraped correctly. If something went wrong, the status will tell you what happened and what to do about it.
Free fields (every video)
| Field | Description |
|---|---|
| status | "Success" or an error message explaining what went wrong |
| channelName | Channel name |
| channelHandle | Channel handle (e.g. "@mkbhd") |
| channelId | YouTube channel ID |
| channelUrl | Link to the channel |
| subscriberCount | Subscriber count (e.g. "20.9M") |
| totalChannelViews | Total views across all channel videos (e.g. "5,347,960,537") |
| totalChannelVideos | Total number of videos on the channel (e.g. "1,814") |
| channelCountry | Channel country (e.g. "United States") |
| channelJoinedDate | When the channel was created (e.g. "Mar 21, 2008") |
| isVerified | Whether the channel has a verified badge |
| videoId | YouTube video ID |
| videoUrl | Direct link to the video |
| title | Video title |
| thumbnailUrl | Link to the video thumbnail |
| viewCount | View count as a number |
| viewCountText | View count as text (e.g. "3.4M views") |
| publishedText | When it was published (e.g. "2 days ago") |
| duration | Video length (e.g. "12:34") |
| durationSeconds | Video length in seconds |
| contentType | "video", "short", "livestream-active", "livestream-completed", or "livestream-upcoming" |
| playlistId | Playlist ID (only when scraping a playlist) |
| playlistTitle | Playlist title (only when scraping a playlist) |
| scrapedAt | When this data was collected (ISO timestamp) |
Video Stats add-on (paid)
Enable Include Video Stats to get these extra fields per video:
| Field | Description |
|---|---|
| description | Full video description |
| likeCount | Number of likes |
| commentCount | Number of comments |
| category | YouTube category (e.g. "Science & Technology") |
| tags | Array of video tags |
| publishedDate | Exact publish date (e.g. "Apr 1, 2026") |
๐ Proxy settings
By default, the scraper uses Apify's datacenter proxies.
- Automatic (default): Apify selects the best proxy.
- Datacenter: Fast and cheap. Works for most runs.
- Residential: Use if you get frequent blocks or empty results. Recommended for large runs (500+ videos).
- Own proxies: Provide your own proxy URLs.
- No proxy: Disable proxies. There will be no IP rotation if you get blocked.
๐ฐ Pricing
| What you pay for | Price | When it's charged |
|---|---|---|
| Base (every video) | $1.00 per 1,000 videos | For each video in the output |
| Video Stats add-on | $0.25 per 1,000 videos | Only when the add-on is enabled |
Example: Scraping 2 channels with 500 videos each (1,000 total) costs $1.00. With Video Stats enabled, it costs $1.25.
๐ก Good to know
- Start small: Try a single channel with 10-20 videos first to test your filters before running large batches.
- Use incremental scraping for repeated runs to avoid paying for the same videos twice.
- Shorts have limited metadata: The Shorts feed does not include publish dates or duration. Enable Video Stats to get exact publish dates for Shorts.
- Video URL input resolves to the full channel: If you paste a video URL, the scraper will find its channel and scrape all channel videos, not just that one video.
- Playlists have limited channel data: When scraping playlists, subscriber count and channel metadata come from each video's author, not from a channel page.
- Results are stored in your Apify storage. How long they are kept depends on your Apify plan.
โ FAQ
Why are some fields empty (null)?
Fields like description, likeCount, category, and tags require the Video Stats add-on. Enable it in the input to get those fields. Some fields like publishedDate (exact date) also require the add-on. The free publishedText field gives you a relative date (e.g. "2 days ago").
Why did my run return no results? Check that the channel URL or handle is correct. If the channel has no public videos, or all videos were filtered out by your date/title filters, you will see a message explaining what happened. Try removing filters to confirm the channel has content.
Which proxy should I use? Start with the default (datacenter). If you get frequent blocks or empty results, switch to residential proxies in the Proxy Configuration section.
Can I scrape playlists?
Yes. Paste a playlist URL or playlist ID (starting with "PL") in the channels input. Videos from playlists include playlistId and playlistTitle in the output.
๐ Other tools you might like
- YouTube Transcript Download - Extract transcripts and captions in SRT, VTT, JSON, or plain text.
- YouTube Comments Scraper - Extract comments and replies with language detection.
- YouTube Channel Email Scraper - Find contact emails and social links from channels.
โ๏ธ Disclaimer
This tool is intended for personal, research, and educational use. You are responsible for complying with YouTube's Terms of Service and applicable laws in your jurisdiction. The developer is not liable for misuse. Data availability depends on YouTube at run time.
Keywords: youtube channel scraper, youtube video scraper, youtube stats, channel videos, youtube data extraction, youtube api