Google Short Videos Scraper – Shorts, Reels & TikTok Results
Pricing
from $0.80 / 1,000 video returneds
Google Short Videos Scraper – Shorts, Reels & TikTok Results
Scrape Google’s Short videos tab as data: every short video Google lists for a search across YouTube Shorts, TikTok, Instagram Reels, Facebook, X, LinkedIn and Reddit — link, title, creator, duration, thumbnail, description and date. Filter by platform and time. No API key, no browser. Unofficial.
Pricing
from $0.80 / 1,000 video returneds
Rating
0.0
(0)
Developer
Simple Actor
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape Google's Short videos tab as structured data. Type what you would type into Google, and every short video Google lists for it comes back as a row — from YouTube Shorts, TikTok, Instagram Reels, Facebook, X, LinkedIn and Reddit in one result set — with the video's link on its own platform, its title, creator, platform, duration, Google's thumbnail, the description Google carries for it and the publish date where Google shows one. In Google's own order.
Built for trend and content research, creator and competitor monitoring, social listening, short-form SEO, and building datasets of what the world is watching on a topic. Every filter from the tab's Tools menu is here: platform, time, high quality and closed captions.
No API key, no login, no browser, no account of yours involved. Twelve videos arrive per request; a search usually finishes within a minute, and reads of many pages run several at a time.
$0.80 per 1,000 videos, plus $0.006 for each search Google answers — about $0.016 for a typical 12-video search. Apify platform usage included, nothing else to pay. A search that cannot be read is never charged.
Unofficial. Not affiliated with, endorsed by, or sponsored by Google or any of the platforms whose videos it lists.
Features
- Every platform in one search — Google ranks YouTube Shorts, TikTok,
Instagram Reels, Facebook, X, LinkedIn and Reddit videos together, and so
do the rows.
videoUrlis the video's address on its own platform, andvideoIdits ID there. - Who made it, how long it is —
creator,platform,durationanddurationSecondson every row. - Google's thumbnail, no extra fetch —
thumbnailUrlis Google's own frame of the video, inline as adata:URL that displays in any<img>tag. About a quarter of videos also carrypreviewUrl, a short silent MP4 preview Google made. - A description and a date —
descriptionis what Google carries for the video;publishedAtis the publish date Google shows, as an ISO date, with the text Google wrote indateText. Google shows dates for YouTube videos and few others. - Every Tools-menu filter — one platform at a time, time (past hour to past year), high quality, closed captions, and SafeSearch.
- As deep as Google goes — twelve videos a request, paged until you have what you asked for or Google runs out, which is somewhere around 350–450 videos for most searches.
- Many searches in one run — one per line, each with its own rows.
- Paste a Google link — a link copied from your browser's Short videos tab is read with its own search terms and filters.
- Country and language — search as Google does from another country.
- Runs stay green. A search that cannot be read becomes an error row, so one bad line never costs the rest of the job.
Input
{"queries": ["easy pasta recipe"], // one search per line"maxItems": 12, // videos per search (12 = one request)"platform": "any", // any | youtube | tiktok | instagram | facebook | x | linkedin | reddit"timeRange": "any", // any | hour | day | week | month | year"highQuality": false,"closedCaptions": false,"safeSearch": false,"country": "US","language": "en"}
Google's operators work in the search terms:
{"queries": ["\"air fryer\" recipe","iphone tips -android","https://www.google.com/search?q=golden+retriever+puppies&udm=39"]}
| Field | Type | Default | What it does |
|---|---|---|---|
queries | array | — | Search terms, one per line, or links copied from Google's Short videos tab. |
maxItems | integer | 12 | Videos per search, up to 400. Twelve arrive per request; Google runs out at roughly 350–450. |
platform | string | any | Only one platform: youtube, tiktok, instagram, facebook, x, linkedin or reddit. |
timeRange | string | any | hour, day, week, month or year. |
highQuality | boolean | false | Google's "High quality" filter. |
closedCaptions | boolean | false | Google's "Closed captioned" filter. |
safeSearch | boolean | false | Have Google filter explicit videos out. |
country | string | US | Two-letter code: US, GB, DE, IN… |
language | string | en | en, de, fr, es, pt-BR, ja… |
A pasted Google link keeps its own filters; the filter fields apply to links that carry none, and to every plain search.
How many videos
Google lists twelve videos per request, so the default of 12 is a single request. Ask for more and further requests are made until you have them or Google runs out — for most searches that is somewhere around 350 to 450 videos, the same point where the Short videos tab stops scrolling in a browser. Reading stops there on its own.
Output
One item per video, in the run's dataset:
{"type": "video","position": 1,"title": "Google's AI Is Getting Ridiculous…","videoUrl": "https://www.youtube.com/shorts/VvUAgcp0v2M","platform": "YouTube","domain": "youtube.com","creator": "Andres Vidoza","duration": "1:15","durationSeconds": 75,"description": "I gave Gemini the busy work. It gave me my time back. Buy back your time with Google AI Pro and your 24/7 personal AI agent within Gemini.","publishedAt": "2026-09-17","dateText": "Sep 17, 2026","thumbnailUrl": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdHx8kKDQsJCYxJx8fLT0tMTU3Ojo6Iys/RD84QzQ5OjcBCgoKDQwNGg8PGjclHyU3Nzc3Nzc3…","previewUrl": null,"videoId": "VvUAgcp0v2M","query": "google","searchUrl": "https://www.google.com/search?q=google&udm=39&hl=en&gl=US","page": 1,"retrievedAt": "2026-09-24T07:12:31.000Z"}
| Field | What it is |
|---|---|
videoUrl, videoId | The video's link on its own platform, and its ID there — a YouTube video ID, TikTok video number, Instagram reel code… |
platform, domain | The platform's name as Google shows it, and the link's host. |
creator | The channel, account or page that posted the video. |
duration, durationSeconds | The video's length as Google shows it, and in seconds. |
title, description | The title Google shows, and the description Google carries — the video's own, or its platform page's summary, shortened. |
publishedAt, dateText | The publish date as an ISO date and as Google wrote it, when Google shows one. |
thumbnailUrl | Google's thumbnail, inline as a data: URL (a JPEG of about 10KB). |
previewUrl | A short silent MP4 preview Google made, on about a quarter of videos. |
position, page | Google's rank, 1 first, and which request of the search it came from. |
query, searchUrl | The search, and the Google address it was read from. |
A search that could not be read is its own row with type: "error", an
error code and an errorDescription. The run itself stays green either way,
and its status message says how many searches could not be read — so if you
run on a schedule, check for type: "error" rows rather than trusting the run
status.
An empty dataset means the searches were read and Google lists no short videos for them. It never means a search could not be made; that arrives as an error row instead.
How to use
From Apify Console
- Open the Actor and click Try for free / Start.
- Put one search per line into Search terms — or paste a link from your browser's Google Short videos tab.
- Set Videos per search. 12 is one request; Google has roughly 350–450 for most searches.
- Pick a Platform or Time filter if you want one, exactly as in the tab's Tools menu.
- Click Start, then open the Dataset tab — the Videos view shows a thumbnail of each — and export as JSON, CSV or Excel.
From the API
curl -s "https://api.apify.com/v2/acts/simple.actor~google-short-videos/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"queries": ["easy pasta recipe"], "platform": "tiktok", "maxItems": 24}'
With the JavaScript client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('simple.actor/google-short-videos').call({queries: ['easy pasta recipe', 'air fryer recipe'],timeRange: 'month',maxItems: 36,});const { items } = await client.dataset(run.defaultDatasetId).listItems();// items[].videoUrl is the video on its platform; items[].creator is who posted it.
Use cases
- Trend and content research — what short-form video exists on a topic
right now, across every platform at once, with
timeRangefor what is new. - Creator and competitor monitoring — which creators Google surfaces for your keywords, and how often, on a schedule.
- Short-form SEO — see which videos rank in Google's Short videos tab for your terms, and where yours sit.
- Social listening — brand, product or event mentions in short video, with the description and the creator on every row.
- Datasets — hundreds of videos per term with a stable
videoIdto deduplicate, a thumbnail to display, anddurationSecondsto filter on. - Local research — how a topic looks in another country's results, with
countryandlanguage.
Pricing
Simple pay-per-result pricing — no subscription.
| Event | Price |
|---|---|
| Video returned | $0.0008 |
| Search answered, once per search | $0.006 |
| Run start (Apify's standard start event) | $0.00005 |
What that comes to:
- A search at the default depth, 12 videos: about $0.016.
- A narrow search that finds three videos: about $0.0084.
- A hundred videos from one search: about $0.086.
- 1,000 videos: $0.80, plus $0.006 for each search they came from.
Error rows are never charged: a search that could not be read costs nothing. A search Google answers is charged once whether it lists videos or none, because Google is asked either way and "no short videos" is a real answer.
Limits worth knowing
- Google stops at roughly 350–450 videos a search. That is where the tab stops scrolling in a browser too; asking for more returns what Google has.
- One platform at a time. Google's Source filter takes one platform; asked for two, it ignores the filter. Run one search per platform instead.
- Dates are Google's. Google shows a publish date for YouTube videos and
few others; where it shows none,
publishedAtanddateTextarenull. Dates are parsed intopublishedAtfor English and numeric forms; in other languagesdateTextstill carries the text. - No view counts. Google's Short videos tab does not show them, so the rows cannot either.
- A very specific or misspelled search is not flagged. Google loosens a search it has little for and shows related videos without saying so.
FAQ
Is scraping Google's short video results legal? Results come from Google and are subject to Google's terms, and the videos belong to their creators and platforms. This Actor returns links and descriptions, not copies of the videos. Searches go through Apify's Google SERP proxy, which is the sanctioned route to Google's results pages.
Do I need a Google API key or a search API account? No. There is no key, no login, no browser and no quota of your own to manage.
Does it download the videos? No. Each row carries the video's link on its platform and Google's thumbnail; fetch the video with a downloader for that platform if you need the file.
Why is the thumbnail a data: URL?
Because that is how Google's page carries it — embedded, not served from an
address — so it works without another request and never goes stale. It
displays in any <img> tag and in Apify's dataset view.
How do I know a search failed if the run stays green?
Check for rows with type: "error" — that is the failure channel by design, so
one bad search never costs the rest of the job. The run's status message also
counts how many searches could not be read.
Results come from Google and are subject to Google's terms. Searches use Apify's Google SERP proxy. Unofficial, and not affiliated with Google or with any platform whose videos appear in the results.