YouTube Trending Scraper
Get the most-viewed YouTube videos for any topic, no login or key. Rows carry views, titles, channels, duration, thumbnails. $0.40 per 1,000 videos.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
keywords,maxItems,notionConnector(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.0004 per video = $0.4 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Video returned | Charged once per video returned. Failed/empty runs are not charged. | $0.0004 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-04, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
keywords | Topics to find the most-viewed (trending) videos for. | array |
maxItems | Max videos to collect. Charged per video. | integer |
notionConnector | Optional. Deliver results to your connected Notion via Apify MCP connectors. | string |
notionParentId | Optional Notion database/data-source id. | string |
What you get
A structured dataset — each result includes fields like:
titlechannelNameviewCountTextpublishedTimeTexturlExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in YouTube & Creator Tools
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
YouTube Channel Email Scraper
Find the business emails creators publish in their YouTube channel description, plus their linked site's contact pages. $1.50 per 1,000 channels.
YouTube Scraper
Search YouTube or scrape a channel: title, channel, views, publish date, length and thumbnail. No API key or quota. $0.135 per 1,000 videos.
YouTube Channel Monitor — New Upload Tracker
Watch YouTube channels and get only their new uploads: title, URL, publish date, views, thumbnail. $0.01 per new video.
YouTube Video & Audio Downloader
Download YouTube videos as MP4 up to 8K, audio as MP3 or subtitles as .srt. No login or API key. You pay per megabyte delivered.
YouTube Video Uploader
Upload videos to your YouTube channel from a URL with OAuth. Set title, tags, category, thumbnail, privacy and publish time. $0.05 per upload.
AI Viral Clip Cutter — Long Video to Shorts
Turn a long podcast or interview into ranked vertical clips. AI scores each moment and captions follow every word. $0.20 per clip row, samples included.
Where this tool sits
- Categories
- YouTube & Creator Tools
- Platforms
- YouTube
YouTube Trending Scraper: the most-viewed videos on YouTube for any topic you name
Give it a list of topics and get back the videos with the highest view counts for each one: title, channel, view count, age, duration, thumbnail and the watch URL. No account, no API key, no quota.
Read this before you buy, because the name promises something YouTube no longer offers. YouTube retired the standalone Trending feed, so there is nothing left to read. What this does instead is search each topic and sort by views, which means the ranking is all-time, not this week. Ask it for "music" and the top of the list is a video with a hundred million views from three months ago, not the clip everyone is sharing today. If what you need is what is rising right now, this is the wrong purchase, however cheap it is.
| Input | Topics or keywords, one per line |
| Output | One row per video |
| Ceiling | 2,000 videos per run |
| Account needed | None from you |
| Price | $0.40 per 1,000 videos, flat on every plan |
🔥 What YouTube Trending Scraper does
One search per topic, sorted by view count, paged until it has what you asked for or the topic runs out. Give it five topics and a limit of 100 and it works down the list, stopping the moment the total is reached, so put the topic you care about most first.
Numbers come back exactly as YouTube prints them, as text: 115,768,253 views, 3 months ago, 4:21. That is deliberate. YouTube never publishes a real timestamp on a search result, only a phrase, and parsing "3 months ago" into a date would be inventing precision that was never there. You get the string YouTube showed, and you decide what to do with it.
A video that appears under two of your topics is returned once and counted once.
📥 What you give it
{
"keywords": ["music", "gaming", "ai"],
"maxItems": 100
}
| Field | Default | What it is |
|---|---|---|
keywords | none | One topic per line. Required: with an empty list the run stops on BAD_INPUT without collecting anything. |
maxItems | 50 | Total videos across every topic, not per topic. Up to 2,000. This is what you pay for. |
proxyConfiguration | Apify network on | The default is fine for YouTube. Leave it alone unless you have your own servers you want the traffic to leave through. |
notionConnector | none | Optional. Deliver the rows to a Notion workspace you have connected to Apify. |
notionParentId | none | The Notion database to write them into, when you use the connector. |
📤 What you get back
A real row from a real run. The thumbnail link is cut short so the block stays readable:
{
"ok": true,
"videoId": "OQac93ARgQE",
"title": "TUL8TE, Saint Levant - Nano I تووليت، ساينت ليفانت - نانو (Official Music Video)",
"url": "https://www.youtube.com/watch?v=OQac93ARgQE",
"channelName": "TUL8TE",
"channelId": "UC5a1OK2lI0Q2x2jyJSDyc7A",
"viewCountText": "115,768,253 views",
"publishedTimeText": "3 months ago",
"lengthText": "4:21",
"thumbnail": "https://i.ytimg.com/vi/OQac93ARgQE/hq720.jpg?sqp=...",
"mode": "trending"
}
| Field | What it is |
|---|---|
videoId | The 11-character id. It survives a title change, so key on it rather than the URL. |
viewCountText | What YouTube printed. On a live stream it reads N watching instead of a view count. |
publishedTimeText | YouTube's own phrase, like 3 months ago. Empty on a live stream, which has not been published yet. |
lengthText | Duration as shown, 4:21. Live streams have none. |
channelId | The UC... id, or an empty string when the byline is a collaboration rather than one channel. Measured at 41 of 45 rows carrying an id on one run. |
thumbnail | The largest still YouTube offered. Signed and time limited, so download what you want to keep. |
🧾 Reading the output
| Row | How to spot it | Billed |
|---|---|---|
| A video | ok: true with a videoId | yes |
| A diagnostic | ok: false with an errorCode and the topic it belongs to | no |
A diagnostic row does not stop the run. The other topics carry on.
| Code | What it means |
|---|---|
BLOCKED | YouTube refused that request after the retries. |
RATE_LIMITED | YouTube asked us to slow down. The run backs off and retries before giving up on a topic. |
SERVER_ERROR | YouTube answered with an error of its own. Usually passes. |
NOT_FOUND | The request came back 404. |
NETWORK | The connection failed on the way to YouTube. |
NO_RESULTS | The search worked and that topic had nothing to return. |
BAD_INPUT | No topics were given, so there was nothing to search. |
▶️ How to run it
1. Open YouTube Trending Scraper and click Try for free. 2. Type your topics into Topics / keywords, one per line, most important first. 3. Set Max videos low while you are testing, since that is what you pay for. 4. Click Start. 5. Download the dataset as JSON, CSV or Excel, or pull it from the Apify API.
💰 How much does it cost?
$0.40 per 1,000 videos. Flat on every Apify plan, no volume tiers.
You pay per video returned, so the bill follows Max videos rather than how many topics you typed. A video found under two topics counts once. Diagnostic rows are not charged, and a topic that returns nothing adds nothing to the bill.
💡 What people use it for
- Sizing a niche before making anything: what does the top of this topic actually look like, and how
big are the numbers.
- Finding the channels that own a subject, by grouping rows on
channelName. - Filling a content calendar with formats that already worked, rather than guesses.
- Building a watchlist: take the
videoIdvalues and feed them to a transcript or comment run.
🚧 What it does not do
- It is not this week's trending. The ranking is all-time views for the topic. YouTube retired
the feed that would have answered the other question.
- No description, no like count, no comment count. The search payload does not carry them. Pull
those separately if you need them.
- No dates.
publishedTimeTextis YouTube's phrase, not a timestamp, and nothing here turns one
into the other.
- News-shaped topics come back full of live streams, which have
N watchingwhere the view
count goes and no publish date or duration at all.
- A collaboration byline leaves
channelIdempty, because YouTube gives that row no single
channel to point at. channelName still fills in.
- 2,000 videos per run, and
maxItemscounts across every topic together. - If YouTube decides to answer a sorted request in relevance order anyway, the rows come back in
that order and nothing on the row flags it.
🧭 Which YouTube actor do you need?
| If you want | Use |
|---|---|
| The most-viewed videos for a topic | This one |
| A keyword search in YouTube's own order, or a channel's uploads | YouTube Scraper |
| Shorts from a channel or a keyword | YouTube Shorts Scraper |
| Only the new uploads from a watch list | YouTube Upload Monitor |
| The video, audio or subtitle file itself | YouTube Downloader Pro |
❓ Questions people ask
Do I need a YouTube API key? No. No key, no OAuth, no quota to manage.
Why is a three-month-old video at the top? Because the sort is total views, and an older video has had longer to collect them. That is what "most viewed for this topic" means here.
Can I get exact numbers instead of text? Not from this one. viewCountText carries the digits YouTube printed, so 115,768,253 views parses cleanly enough, but the age never will.
Does it cover a country or a language? Not as a setting. Phrase the topic in the language you want and you mostly get that language back.
Is scraping YouTube legal? This reads public search results, the same ones a signed-out visitor sees. Apify's write-up on the legality of web scraping is a reasonable starting point, and we are not lawyers.
Can I run it on a schedule? Yes, though remember the ranking moves slowly. Weekly tells you more than hourly.
🆘 If something breaks
Open the Issues tab on the actor page. Include the topics you used and the run id. Any diagnostic rows in your dataset already name the reason.