YouTube Hashtag Extractor
Pricing
from $4.99 / 1,000 results
YouTube Hashtag Extractor
Extract hashtags from YouTube videos automatically. Get organized hashtag data in both array and text formats for social media management and content analysis.
Pricing
from $4.99 / 1,000 results
Rating
0.0
(0)
Developer
Coding Frontned
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Share
Extract unique hashtags and useful supporting metadata from current YouTube videos. The actor accepts canonical YouTube links, short links, Shorts, embeds, live links, or bare video IDs; it validates every value before opening a browser.
Video metadata is read from YouTube's first-party web youtubei player and next endpoints after a YouTube watch-page session has been established. It does not rely on third-party metadata services.
Input
| Field | Type | Default | Description |
|---|---|---|---|
videoUrls | array of strings | — | One or more YouTube URLs or bare 11-character IDs. Supported URLs: youtube.com/watch?v=, youtu.be/, youtube.com/shorts/, embed/, and live/. |
videoIds | array of strings | — | Optional additional bare 11-character IDs. It is combined with videoUrls. |
maxItems | integer | 50 | Number of unique videos to process, from 1 to 200. Duplicate IDs are removed before the limit is applied. |
proxyConfiguration | object | — | Optional standard Apify proxy configuration. |
At least one non-empty value in videoUrls or videoIds is required. Invalid, non-YouTube URLs and malformed IDs fail input validation rather than being silently skipped.
Example:
{"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ","https://youtu.be/dQw4w9WgXcQ","jNQXAC9IVRw"],"maxItems": 20,"proxyConfiguration": { "useApifyProxy": true }}
The example contains a duplicate intentionally: it produces one request for dQw4w9WgXcQ and one for jNQXAC9IVRw.
Output
Each successful video produces one dataset item. Fields with null, blank strings, empty arrays, or empty objects are recursively omitted. Every row includes its canonical source URL plus source, provenance, transport, and extraction-method fields. hashtagCount is always present, including when YouTube exposes no hashtags.
{"recordType": "youtube_video_hashtags","videoId": "dQw4w9WgXcQ","url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","originalUrl": "https://youtu.be/dQw4w9WgXcQ","title": "Example video","hashtags": ["#Music", "#Pop"],"hashtagsText": "#Music #Pop","hashtagCount": 2,"videoTags": ["music", "pop"],"channel": {"id": "UC...","name": "Example channel","url": "https://www.youtube.com/channel/UC..."},"statistics": {"viewCount": 123456,"durationSeconds": 212},"metadata": {"category": "Music","publishedDate": "2009-10-25","isFamilySafe": true},"source": "youtube.com","provenance": "public_youtube_web_endpoints","sourceUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","sourceTransport": "browser-first-party-api","extractionMethod": "youtubei-player-next","scrapedAt": "2026-07-29T00:00:00.000Z"}
Hashtags are collected from YouTube's linked title hashtags and the description, then normalized and deduplicated case-insensitively. hashtagCount always reflects the final hashtags list when that list is present.
Reliability and limits
The crawler uses five rotating, realistic desktop fingerprints/user-agent profiles, five bounded Apify-compatible browser sessions, persisted session cookies, and at most two retries per request. A configured proxy is used by those sessions. YouTube can rate-limit, require consent, or alter its private web response formats; some videos may therefore fail after retries.
If no video can be extracted, the run fails rather than completing with an empty successful dataset. If some requested videos succeed and others exhaust retries, the run succeeds with partial status. The default key-value store's OUTPUT record reports the requested, stored, and failed counts and failed video IDs without adding diagnostics to the dataset.