Request a tool
All toolsMCP serverRequest a toolPlatformsCategories
YouTube Scraper icon

YouTube Scraper

Scrape YouTube videos by keyword or channel without the API. Get titles, views, publish dates, watch URLs and channel data. No key or cookies needed.

Run this in the cloudRun on Apify →

YouTube & Creator Tools

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust searchQueries, channelUrls, maxItems (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Inputs

FieldWhat it doesType
searchQueriesKeywords to search YouTube for, one per line (e.g. "lofi hip hop", "python tutorial"). Each query returns up to Max videos. Leave empty if you only want channelarray
channelUrlsYouTube channels to pull videos from, one per line. Accepts full channel URLs (e.g. https://www.youtube.com/@LofiGirl, https://www.youtube.com/c/ChannelName, htarray
maxItemsMaximum number of videos to return per search query and per channel. Pagination via continuation tokens is used to reach this number. Values up to a few hundredinteger
notionConnectorOptional. Write each video as a page into your Notion when the run finishes. Authorize a Notion connector once in Settings → API & Integrations → MCP connectorsstring
notionParentIdOptional. The Notion data source ID of the database to write into (only used if a Notion connector is set). Leave empty to create the pages privately in your wostring

What you get

A structured dataset — each result includes fields like:

channelIdchannelNamelengthTextmodepublishedTimeTextthumbnailtitleurlvideoIdviewCountText

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

18 ready-to-run use cases

YouTube Content Gap Finder: Search Results Scraper

YouTube keyword research for creators: scrape the top-ranking videos for any search term with views and channel size to spot low-competition content gaps.

YouTube Title Scraper: Top Video Titles by Keyword

Reverse-engineer high-CTR YouTube titles. This scraper returns the top-performing video titles and view counts for any keyword so you can copy what works.

YouTube Channel Scraper for RAG Transcript Corpus

Scrape every video URL and title from an expert YouTube channel to build a domain-specific transcript corpus for RAG pipelines and LLM grounding.

Scrape YouTube Channel Videos to Repurpose to Blogs

Export a YouTube channel's videos with views and metadata, then repurpose the top performers into blog posts, newsletters, and Shorts scripts.

YouTube Comment Scraper for Video Idea Research

Scrape a YouTube channel's videos and mine the comments for recurring viewer questions and requests that point straight to your next video ideas.

YouTube Brand Mention Tracker for Social Listening

Social listening on YouTube: search a brand or product name to collect every video, view count, and channel discussing it for sentiment and PR monitoring.

YouTube Influencer Finder by Niche for Outreach

Search any niche on YouTube and collect candidate creator channels with subscriber counts and engagement to vet for influencer marketing and sponsorships.

Find Low-Competition High-RPM YouTube Niches

Niche validation for new channels: search high-RPM topics like finance, AI, and B2B to see who ranks, their channel size, and views before you commit.

YouTube Shorts Scraper for Dropshipping Research

Spot winning products early. Search viral product and gadget queries on YouTube to collect high-view Shorts and videos for dropshipping and ecommerce research.

Scrape Multiple YouTube News Channels for Research

Build a YouTube news dataset for media research: pull recent videos across many news outlet channels with titles, dates, and views for diffusion analysis.

Benchmark Competitor YouTube Channels Side by Side

Competitor analysis on YouTube: scrape rival channels to compare upload frequency, format mix, and view performance, then shape your own content strategy.

Find Sponsor-Ready YouTube Creators in Your Niche

Find YouTube creators already making review and unboxing videos in your category, with channels and views, to target the best sponsorship-fit accounts.

YouTube Podcast Scraper: Full Episode List for AI

Index a podcast channel's full episode catalog from YouTube to power a searchable transcript archive, episode index, or Q&A bot over the back catalog.

Discover Rising YouTube Channels in a New Niche

Search an emerging topic on YouTube to surface rising creators and fast-growing videos as an early signal before the niche gets saturated.

Scrape a YouTube Channel's Videos by @handle

Enter a YouTube @handle like @LofiGirl to pull the channel's full video list with views, titles, publish dates, and watch URLs as a clean dataset.

Monitor a YouTube Channel's Latest Uploads

Watch any channel like MrBeast for its newest videos, view counts, and publish times on a schedule, so you catch every new upload as it lands.

Scrape Multiple YouTube Channels at Once

Bulk YouTube channel scraping: pull recent videos from several channels like MKBHD and Linus Tech Tips together to compare output side by side as a dataset.

Search YouTube for Product Review Videos

See which 'AirPods Pro 2 review' videos rank on YouTube, who made them, and how many views each pulled, all exported as a clean dataset.

YouTube Scraper

Scrape YouTube videos by search keyword or by channel (URL, @handle, or UC… id) using YouTube's internal InnerTube (youtubei/v1) JSON API. No API key, no cookies, no login. Auto-paginates via continuation tokens to reach your requested item count.

For every video it returns: videoId, title, watch url, channelName, channelId, viewCountText, publishedTimeText, lengthText, and the largest thumbnail.

What it does

  • Search mode — give one or more keywords; each query returns up to maxItems matching videos.
  • Channel mode — give one or more channels; each returns up to maxItems of its newest videos.

You can use either mode or both in a single run. Results are de-duplicated by videoId across all queries and channels, so you never pay for the same video twice in one run.

Input

FieldTypeDescription
searchQueriesstring[]Keywords to search, one per line. Optional if you supply channelUrls.
channelUrlsstring[]Channel URLs, @handles, or raw UC… ids. Optional if you supply searchQueries.
maxItemsintegerMax videos per query and per channel (1–1000, default 50).
proxyConfigurationobjectProxy for all requests. Residential Apify Proxy is strongly recommended — YouTube blocks datacenter/cloud IPs aggressively.

You must provide at least one of searchQueries or channelUrls. If both are empty the actor pushes an uncharged BAD_INPUT diagnostic row (it does not crash).

Example input

{
  "searchQueries": ["lofi hip hop", "python tutorial"],
  "channelUrls": ["https://www.youtube.com/@LofiGirl", "UCSJ4gkVC6NrvII8umztf0Ow"],
  "maxItems": 50,
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Output

Each successful video is one dataset row with ok: true:

{
  "ok": true,
  "videoId": "n61ULEU7CO0",
  "title": "lofi hip hop radio - beats to relax/study to",
  "url": "https://www.youtube.com/watch?v=n61ULEU7CO0",
  "channelName": "Lofi Girl",
  "channelId": "UCSJ4gkVC6NrvII8umztf0Ow",
  "viewCountText": "123,456 views",
  "publishedTimeText": "2 years ago",
  "lengthText": "1:02:33",
  "thumbnail": "https://i.ytimg.com/vi/n61ULEU7CO0/hqdefault.jpg",
  "mode": "search"
}

Nullable / empty fields

YouTube's modern channel grid uses a different layout than search results, so a few fields can come back as an empty string "" depending on which layout a video uses:

  • channelId — may be empty for some channel-grid videos (the grid layout does not always carry the id).
  • viewCountText, publishedTimeText, lengthText — may be empty for live streams, premieres, or radio-style "videos" that have no view count or fixed duration.
  • thumbnail — falls back to https://i.ytimg.com/vi/<videoId>/hqdefault.jpg if no source URL is present, so it is rarely empty.

videoId, title, and url are always present on ok: true rows.

Pricing

This actor charges per returned video (pay-per-result). You are charged only for genuine ok: true video rows.

  • Blocked, rate-limited, network-error, and empty (NO_RESULTS) runs are never charged. When something goes wrong the actor pushes an ok: false diagnostic row with an errorCode instead of charging you.

Diagnostics

On any failure the actor pushes a diagnostic row (ok: false) carrying a clear errorCode rather than silently returning nothing:

errorCodeMeaning
BAD_INPUTNo searchQueries or channelUrls were provided.
BLOCKEDYouTube blocked the request (anti-bot / 403). Use a residential proxy.
RATE_LIMITEDHit a 429. The actor backed off and retried; lower volume or add a proxy.
SERVER_ERRORYouTube returned a 5xx. Usually transient — retry later.
NO_RESULTSThe request succeeded but matched no videos for your input.
NETWORKA network error reaching YouTube.

Troubleshooting

  • Got NO_RESULTS or BLOCKED for a channel you know has videos? YouTube blocks cloud/datacenter IPs aggressively. Enable Apify Proxy with the RESIDENTIAL group and re-run — this resolves the large majority of empty/blocked results.
  • RATE_LIMITED on large runs? A high maxItems (toward 1000) requires many paginated requests. Lower maxItems, run fewer queries per run, or keep the residential proxy on.
  • Channel won't resolve (BAD_INPUT: could not resolve channel)? Double-check the handle/URL, or pass the raw UC… channel id directly.