YouTube Hashtag Scraper
Pricing
Pay per event
YouTube Hashtag Scraper
Pricing
Pay per event
Rating
0.0
(0)
Developer
SR
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape YouTube videos by hashtag at scale. Give this actor a list of hashtags and it returns every video YouTube surfaces under each one, with full metadata: titles, channels, view counts, durations, thumbnails, publish dates, and more. It talks directly to YouTube's internal InnerTube web API, so there is no official API key to manage, no OAuth flow, and no daily quota to burn through.
Hashtags are how discovery works on YouTube now. Campaigns, challenges, product launches, and trends all cluster under a tag. This actor turns that cluster into structured data you can filter, sort, and pipe into a spreadsheet or database.
What you get
Every row is one video. For each hashtag you request, you get back:
- Video identity:
video_id,url,title,description, and a shortdescription_snippet - The tag that matched:
hashtag(the exact hashtag this video was found under) - Channel data:
channel_name,channel_id,channel_url, andchannel_subscribers - Timing:
published_text(like "3 weeks ago"),published_date, andis_live - Engagement:
view_count,like_count,comment_count - Format:
duration_seconds,duration_text,category,thumbnail_url - Run metadata:
fetched_in_secondsper video
Fields like like_count, comment_count, channel_subscribers, published_date, and category are only populated when you enable fetch_details (see Input below).
Why scrape YouTube hashtags
YouTube has a Data API, but it does not expose hashtag feeds. You can search for a keyword, list a channel's uploads, or read a playlist, but there is no official endpoint that says "give me every video tagged #blackfriday." The hashtag landing pages you see in the YouTube app are rendered from an internal API that the public Data API never touches. If you want that data, you have to go get it yourself.
That gap matters because hashtags are where intent lives. When a brand runs a campaign, when a creator starts a challenge, or when a topic starts trending, the videos organize themselves under a shared tag. Tracking that tag over time tells you how a trend is spreading, who is participating, and which videos are pulling the views. A keyword search cannot do this cleanly, because keyword results mix in old and unrelated content. A hashtag feed is the creators' own signal of what a video is about.
This actor reads that feed directly. You pass hashtags with or without the #, and it walks YouTube's InnerTube pagination to pull as many videos as you ask for, up to 1000 per hashtag. Because it uses the same web endpoints the browser uses, there is no key, no quota, and no per-project rate limit to negotiate.
Input
| Field | Type | Required | Description |
|---|---|---|---|
hashtags | array of strings | Yes | Hashtags to scrape. Include the # or leave it off, both work (e.g. ["shorts", "#gaming"]). |
max_results | integer | No | Videos to return per hashtag, 1 to 1000. |
fetch_details | boolean | No | When true, fetches each video's page for like_count, comment_count, channel_subscribers, exact published_date, and category. Slower but richer. |
country | string | No | Country code for the YouTube region (e.g. US, GB, DE). |
language | string | No | Language code for titles and metadata (e.g. en, es, de). |
A minimal run needs only hashtags. Turn on fetch_details when you need engagement numbers or exact dates; leave it off when you only need the fast feed-level fields.
Output
Each dataset item is one video. Here is a real row with fetch_details enabled:
{"video_id": "dQw4w9WgXcQ","url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","title": "Our #blackfriday deals are live","description": "Full breakdown of every discount in this year's sale. #blackfriday #deals","description_snippet": "Full breakdown of every discount in this year's sale.","hashtag": "#blackfriday","channel_name": "Example Store","channel_id": "UCabc123def456","channel_url": "https://www.youtube.com/channel/UCabc123def456","channel_subscribers": 128000,"published_text": "2 days ago","published_date": "2026-07-11","view_count": 45210,"like_count": 1830,"comment_count": 214,"duration_seconds": 187,"duration_text": "3:07","category": "People & Blogs","thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg","is_live": false,"fetched_in_seconds": 0.42}
The hashtag field tells you which of your input tags matched this video, so when you scrape several hashtags in one run you can still group and compare results per tag.
Use cases
Trend researchers want to know how a topic moves. Scrape a hashtag on a schedule, store the view_count and published_date for each video, and you can chart how fast a trend is growing, when it peaked, and which videos drove the spike. Because you get channel_subscribers, you can also tell whether a trend is being carried by big channels or by a long tail of small creators.
Campaign and UGC monitors live and die by hashtag participation. If your brand launched #mychallenge, this actor gives you every public video using it: who posted, how many views they pulled, how engaged their audience was via like_count and comment_count, and when they published. That is your user-generated-content leaderboard, refreshed on demand, without asking creators to tag you manually.
Social listening and competitive intelligence teams track the hashtags their competitors own. Pull a rival's branded tag weekly and you see their content cadence, their best-performing videos, and which creators are amplifying them. Cross-reference category and duration_text to understand what format is landing.
Content discovery and curation is the simplest use. Editors and community managers scrape a niche hashtag, sort by view_count, and surface the strongest recent videos to feature, react to, or license. The description_snippet and thumbnail_url fields make it easy to preview candidates without opening YouTube at all.
How it compares
| This actor | streamers/youtube-video-scraper-by-hashtag | |
|---|---|---|
| Price per video | $0.0016 | $0.002 |
| Price per 1000 videos | $1.60 | $2.00 |
| Volume discount | Same low rate at every volume | None, flat rate |
| Max videos per hashtag | 1000 | Comparable |
| Optional engagement details | Yes, via fetch_details | Yes |
| API key required | No | No |
We charge 20 percent less per video and we beat the competitor at every volume, because their rate is flat and never drops. Whether you pull 100 videos or 100,000, you pay $1.60 per thousand.
Pricing
Pay-per-event, so you only pay for what you actually scrape.
- $0.0016 per video returned ($1.60 per 1000 videos)
- $0.002 per run actor-start fee
There is no monthly subscription and no minimum. A run that returns 500 videos across your hashtags costs $0.002 + (500 x $0.0016) = $0.802.
Limits and gotchas
- Hashtag feeds are bounded by YouTube. A hashtag page only exposes a finite number of videos. If a tag is small, you will get fewer than your
max_resultscap, and that is YouTube's limit, not the actor's. fetch_detailsadds one request per video. It pulls each video's page for likes, comments, subscribers, exact date, and category. Expect runs to take noticeably longer with it on. Leave it off when feed-level fields are enough.- Engagement fields are empty without
fetch_details.like_count,comment_count,channel_subscribers,published_date, andcategoryonly populate in detail mode. The feed itself does not carry them. - Free-tier runs are capped at 10 results per run. Upgrade to a paid Apify plan to remove the cap and pull the full 1000 per hashtag.
view_countandlike_countare point-in-time. They reflect the moment of scraping. For trend tracking, run on a schedule and store snapshots.published_textis relative,published_dateis exact. The feed gives you fuzzy strings like "3 weeks ago"; the exactpublished_dateonly arrives withfetch_details.- Region and language shift results.
countryandlanguagechange which videos YouTube surfaces and in what language the metadata comes back. Set them deliberately.
FAQ
How do I find YouTube videos by hashtag?
Enter one or more hashtags in the hashtags input, with or without the #, and run the actor. It reads YouTube's internal hashtag feed and returns every video it surfaces, up to 1000 per tag, with full metadata for each.
Can I track a campaign hashtag on YouTube over time?
Yes. Schedule the actor to run daily or weekly on your campaign hashtag and store each run's output. Because every row carries view_count, published_date, and channel_subscribers, you can chart participation and reach as the campaign unfolds.
Do I need a YouTube API key or Google account? No. The actor uses YouTube's InnerTube web API, the same endpoints the website uses. There is no API key, no OAuth, and no daily quota to manage.
How many videos can I get per hashtag?
Up to 1000, set via max_results. The real ceiling is whatever YouTube exposes for that specific hashtag, so smaller tags will return fewer.
Why are like counts and subscriber numbers missing from my results?
Those fields only populate when you enable fetch_details. The plain hashtag feed does not include engagement or subscriber data, so the actor fetches each video's page to get them when detail mode is on.
Related Actors
- Youtube Scraper - Scrape YouTube videos by search term, channel, or video URL.
- Youtube Shorts Scraper - Scrape YouTube Shorts from any channel with full engagement data.
- Youtube Comments - Scrape all comments from any YouTube video.