TikTok Trending Videos Scraper & Hashtag Sound Extractor
Pricing
Pay per usage
TikTok Trending Videos Scraper & Hashtag Sound Extractor
TikTok Trending Videos Scraper collects real-time trending videos from TikTok, including captions, metrics, hashtags, creators, and URLs. Ideal for market research, content insights, and tracking viral trends across any niche.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Scrapier
Maintained by CommunityActor stats
1
Bookmarked
6
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
TikTok Trending Videos Scraper — Hashtags and Sound Metadata
TikTok Trending Videos Scraper & Hashtag Sound Extractor pulls trending videos from 24 countries — or a list of TikTok video URLs you supply — and returns each video's caption, engagement stats, every hashtag it uses, and the exact sound/music track behind it, including music ID, artist, and an original-vs-reused flag. Every response is structured JSON, ready to pass directly to an LLM, index into a vector store, or feed a monitoring pipeline. Built for creators, marketers, and researchers tracking what's trending — and which sounds are driving it.
What is TikTok Trending Videos Scraper & Hashtag Sound Extractor?
TikTok Trending Videos Scraper & Hashtag Sound Extractor discovers trending TikTok videos by country, sort order, and time period — or accepts direct video URLs — and returns each video's metadata alongside its own hashtags[] array and a structured soundMeta{} object (musicId, musicName, musicAuthor, original-sound flag, play URL). That soundMeta object is the Actor's defining feature: it's parsed directly from TikTok's own per-video data, not guessed from the caption, so it's checkable against the video itself. No TikTok account or login is required — the Actor pulls dynamic request headers and page data anonymously through its own headless browser session.
- Discover trending videos by country (24 supported), sort order (views, likes, comments, or shares), and time window (last 7 or 30 days)
- Extract every hashtag per video — name, ID, title, cover — deduplicated from TikTok's own
challenges[]andtextExtra[]fields - Extract structured sound/music metadata per video — track ID, title, artist, original-vs-reused flag, direct play URL, cover art
- Cross-reference each hashtag against TikTok Creative Center's live trending-hashtag list to flag
isTrending,trendRank,usageCount, andviewCount - Bypass discovery entirely and run the identical hashtag/sound extraction against a supplied list of direct TikTok video URLs
- Filter results to videos built on original sounds only
What data can you get with TikTok Trending Videos Scraper & Hashtag Sound Extractor?
The Actor returns three result types per run: the video record itself, a per-video hashtag list, and per-video sound/music metadata.
| Result Type | Extracted Fields | Primary Use Case |
|---|---|---|
| Video | id, item_id, item_url, title, sourceMode, createTimeISO, likes, comments, bookmarks, shares, videoUrl, duration, cover, country_code, region, scrapedAt | Trend tracking, content research, dataset building |
Hashtag (nested in hashtags[]) | id, name, title, cover, isTrending, trendRank, usageCount, viewCount | Hashtag research; confirming which tags on a video are actually trending right now |
Sound/Music (nested in soundMeta) | musicId, musicName, musicAuthor, musicOriginal, playUrl, coverMediumUrl | Sound/music trend research, audio-trend monitoring |
Sound & Music Metadata
Most TikTok video and hashtag scrapers stop at captions, likes, and view counts — the sound behind a video is left as a guess, or ignored entirely. This Actor parses the same itemStruct JSON TikTok's own video page already loads and reads its music{} object directly, returning a structured soundMeta object for every video: musicId (the track's TikTok ID), musicName (track title, or "original sound" when TikTok doesn't supply one), musicAuthor (the artist or creator name), musicOriginal (true/false — original creation vs. a reused/trending track), playUrl (a direct audio link), and coverMediumUrl (album/sound art). Because it's parsed from TikTok's own data rather than inferred or fingerprinted, it's checkable against the video itself. Combine it with the country/sort discovery mode and you can watch which specific tracks are riding a wave of trending videos, not just which hashtags are.
"soundMeta": {"musicId": "7211234567890123456","musicName": "original sound","musicAuthor": "trendcreator","musicOriginal": true,"playUrl": "https://sf16-ies-music.tiktokcdn.com/obj/tos-music/abc.mp3","coverMediumUrl": "https://p16-sign.tiktokcdn-us.com/obj/music_cover1.jpeg"}
Hashtag Trend Cross-Reference
Every hashtag pulled from a video's challenges[]/textExtra[] fields can also be checked against TikTok Creative Center's own live trending-hashtag list. When enabled, each hashtag entry gains isTrending (true/false), trendRank, usageCount (live publish count), and viewCount — sourced from a public, unsigned endpoint, no login required. Use minHashtagUsage to set the publish-count floor a hashtag needs before it counts as a genuine trending match, filtering out noisy near-matches from a video's own tag list.
How does TikTok Trending Videos Scraper & Hashtag Sound Extractor differ from the official TikTok API?
TikTok's own Research API is built for approved academic and non-commercial research use, not for on-demand structured extraction of sound metadata or hashtag trend cross-referencing — and it isn't available to ordinary developers or marketers at all.
| Feature | TikTok Research API | TikTok Trending Videos Scraper & Hashtag Sound Extractor |
|---|---|---|
| Access | Requires an approved application; limited to qualifying institutions | Available to any Apify account, no approval process |
| Commercial use | Restricted under the program's terms | Yes |
| Sound/music metadata | Not exposed as a discrete field | soundMeta{} per video — musicId, musicName, musicAuthor, original flag, playUrl |
| Hashtag trend data | Not a built-in feature | hashtags[] per video plus live trend rank/usage/view cross-reference |
| Direct video-URL lookup | Query-based only | videoUrls input bypasses discovery entirely |
| Setup | Application, review, and approval before any access | An Apify account and API token |
Use the Research API if you already hold academic/institutional approval and need TikTok's own attested dataset. Use this Actor when you need structured hashtag and sound data today, without an approval process, from any Apify account.
How to scrape TikTok with TikTok Trending Videos Scraper & Hashtag Sound Extractor?
- Open the Actor on Apify and start a new run.
- Set the two required fields —
countryCode(default"US") andsortBy(default"vv"for views) — or leave their defaults and instead paste video links intovideoUrlsto bypass discovery entirely. - Set
period(last 7 or 30 days) andmaxItems(1–1000) to control how many trending videos to pull, and toggleincludeHashtags,includeSoundData,includeHashtagTrendCrossReference,onlyOriginalSounds, andminHashtagUsageto control extraction depth. - Start the run.
- Export the dataset as JSON, CSV, Excel, or another Apify-supported format.
{"countryCode": "US","sortBy": "vv","period": "7","maxItems": 20,"includeHashtags": true,"includeSoundData": true,"includeHashtagTrendCrossReference": true}
How to run multiple queries in one job
videoUrls accepts one TikTok video URL per line, and the Actor processes all of them (capped by maxItems) in a single run — the real batching mechanism for this Actor. countryCode, sortBy, and period are each single values, not arrays, so a discovery run only covers one country/sort/period combination at a time; to cover several countries, start one run per country (directly, via the API, or as saved Apify Tasks) rather than expecting a multi-country field.
⬇️ Input
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
countryCode | Yes | string | Country to scrape trending videos for (discovery mode; ignored when videoUrls is supplied). 24 supported country codes. | "US" |
sortBy | Yes | string | Sort discovery results: vv (views), like, comment, repost (shares). | "vv" |
period | No | string | Time window for discovery and for the hashtag trend cross-reference: "7" or "30" days. Default "7". | "7" |
maxItems | No | integer | Max videos to scrape in discovery mode, or max videoUrls to process. 1–1000. Default 10. | 20 |
videoUrls | No | array | One TikTok video URL per line. When set, discovery (countryCode/sortBy/period/maxItems) is skipped and each URL is parsed directly. Default []. | ["https://www.tiktok.com/@username/video/7123456789012345678"] |
includeHashtags | No | boolean | Adds a hashtags[] array (name, id, title, cover) per video. Default true. | true |
includeSoundData | No | boolean | Adds a soundMeta{} object (musicId, musicName, musicAuthor, musicOriginal, playUrl, coverMediumUrl) per video. Default true. | true |
onlyOriginalSounds | No | boolean | Keeps only videos whose sound is confirmed original; videos with unreadable sound data are kept, never dropped. Default false. | false |
minHashtagUsage | No | integer | Minimum live publish count for a trending hashtag to register as a match in the cross-reference. 0 = no threshold. Default 0. | 0 |
includeHashtagTrendCrossReference | No | boolean | Fetches TikTok Creative Center's live trending-hashtag list once per run and adds isTrending/trendRank/usageCount/viewCount to each hashtag. Default true. | true |
includeDetailedVideoData | No | boolean | Legacy field kept for backward compatibility; automatically forced on whenever hashtag or sound extraction is enabled. Default false. | false |
{"countryCode": "US","sortBy": "vv","period": "7","maxItems": 20,"videoUrls": [],"includeHashtags": true,"includeSoundData": true,"onlyOriginalSounds": false,"minHashtagUsage": 0,"includeHashtagTrendCrossReference": true,"includeDetailedVideoData": false}
Common pitfall: minHashtagUsage does not remove hashtags from a video's own hashtags[] list — every hashtag TikTok attached to the video still appears. It only controls which of those hashtags get marked isTrending: true in the cross-reference. If you're expecting a shorter hashtags[] array, raise it in your own downstream filter instead.
⬆️ Output
Output is typed, normalized JSON with a consistent schema across runs, exportable as JSON, CSV, Excel, XML, or RSS through Apify's standard dataset export. hashtags is omitted when includeHashtags is off, and soundMeta is null when TikTok's page has no music object for that video (or omitted when both includeSoundData and onlyOriginalSounds are off).
Scraped results
[{"id": "7345612398765432101","item_id": "7345612398765432101","item_url": "https://www.tiktok.com/@trendcreator/video/7345612398765432101","title": "wait for it... #fyp #dancechallenge","sourceMode": "discovery","createTimeISO": "2026-07-20T14:32:05Z","likes": 482300,"comments": 9120,"bookmarks": 15400,"shares": 33800,"videoUrl": "https://v16-webapp.tiktok.com/video/tos/useast5/abc123.mp4","duration": 27,"cover": "https://p16-sign.tiktokcdn-us.com/obj/cover1.jpeg","country_code": "US","region": "US","hashtags": [{"id": "45678","name": "dancechallenge","title": "Dance Challenge","cover": "https://p16-sign.tiktokcdn-us.com/obj/hashtag_cover1.jpeg","isTrending": true,"trendRank": 2,"usageCount": 184920,"viewCount": 512000000},{"id": "1001","name": "fyp","title": null,"cover": null,"isTrending": false,"trendRank": null,"usageCount": null,"viewCount": null}],"soundMeta": {"musicId": "7211234567890123456","musicName": "original sound","musicAuthor": "trendcreator","musicOriginal": true,"playUrl": "https://sf16-ies-music.tiktokcdn.com/obj/tos-music/abc.mp3","coverMediumUrl": "https://p16-sign.tiktokcdn-us.com/obj/music_cover1.jpeg"},"scrapedAt": "2026-07-25T09:14:02Z"},{"id": "7345600011122233344","item_id": "7345600011122233344","item_url": "https://www.tiktok.com/@musicscout/video/7345600011122233344","title": "this sound is everywhere rn","sourceMode": "discovery","createTimeISO": "2026-07-19T08:02:41Z","likes": 991200,"comments": 24310,"bookmarks": 40210,"shares": 61050,"videoUrl": "https://v16-webapp.tiktok.com/video/tos/useast5/def456.mp4","duration": 15,"cover": "https://p16-sign.tiktokcdn-us.com/obj/cover2.jpeg","country_code": "US","region": "US","hashtags": [{"id": "78901","name": "soundtrend","title": "Sound Trend","cover": "https://p16-sign.tiktokcdn-us.com/obj/hashtag_cover2.jpeg","isTrending": true,"trendRank": 1,"usageCount": 302110,"viewCount": 890000000}],"soundMeta": {"musicId": "7198877665544332211","musicName": "sped up - remix","musicAuthor": "audiolabel_official","musicOriginal": false,"playUrl": "https://sf16-ies-music.tiktokcdn.com/obj/tos-music/def.mp3","coverMediumUrl": "https://p16-sign.tiktokcdn-us.com/obj/music_cover2.jpeg"},"scrapedAt": "2026-07-25T09:14:03Z"},{"id": "7123456789012345678","item_id": "7123456789012345678","item_url": "https://www.tiktok.com/@username/video/7123456789012345678","title": "our brand's product demo","sourceMode": "video-url","createTimeISO": "2026-06-02T17:45:12Z","likes": 5310,"comments": 88,"bookmarks": 210,"shares": 140,"videoUrl": "https://v16-webapp.tiktok.com/video/tos/useast5/ghi789.mp4","duration": 42,"cover": "https://p16-sign.tiktokcdn-us.com/obj/cover3.jpeg","country_code": "US","region": null,"hashtags": [{"id": "5544","name": "productdemo","title": "Product Demo","cover": null,"isTrending": false,"trendRank": null,"usageCount": null,"viewCount": null}],"soundMeta": {"musicId": "7000111222333444555","musicName": "original sound","musicAuthor": "username","musicOriginal": true,"playUrl": "https://sf16-ies-music.tiktokcdn.com/obj/tos-music/ghi.mp3","coverMediumUrl": "https://p16-sign.tiktokcdn-us.com/obj/music_cover3.jpeg"},"scrapedAt": "2026-07-25T09:14:05Z"}]
How can I use the data extracted with TikTok Trending Videos Scraper & Hashtag Sound Extractor?
- Trend and content tracking: social teams pull
country_code+sortByruns on a schedule and watchlikes/comments/sharesdeltas alongsidehashtags[]to see which formats and tags are breaking out first in each market. - Music/sound trend research: labels, artists, and marketers watch
soundMeta.musicIdandmusicAuthoracross runs to spot which specific tracks are gaining video volume before they trend platform-wide, distinguishing originals (musicOriginal: true) from remix/reuse waves. - AI engineers and LLM developers: an agent issues a query (country, sort, or a video URL list), receives structured JSON back, and passes
hashtags[]/soundMetastraight into the model as grounded context for trend-summary or content-brief generation. - Creator discovery: marketers scan
musicAuthoranditem_urlacross a hashtag's video set to find the specific creators driving a trending sound or tag, for outreach or influencer shortlisting.
How do you monitor TikTok sound and hashtag trends over time?
Trend monitoring here means running the same country/sort/period query (or the same videoUrls list) on a schedule and diffing the results against the previous run rather than reading a single snapshot. Between runs, watch hashtags[].trendRank and hashtags[].usageCount for movement — a hashtag climbing in rank or usage count is gaining real traction, not just appearing once. Do the same for soundMeta.musicId: track how many videos in your result set reference the same music ID run over run, and whether musicOriginal skews toward original creations or reused/remixed tracks, which signals whether a sound is being organically created or copied.
A concrete workflow: schedule a run per country/sort combination you track, store each run's dataset, then compare hashtags[] and soundMeta fields against the prior run — alert when a hashtag's trendRank improves sharply or a musicId starts appearing across a growing share of videos. Apify's built-in Scheduler can trigger these runs on a cron interval; the comparison and alerting logic runs downstream, in your own pipeline or a connected Apify integration.
Integrate TikTok Trending Videos Scraper & Hashtag Sound Extractor and automate your workflow
TikTok Trending Videos Scraper & Hashtag Sound Extractor works with any language or tool that can send an HTTP request.
REST API with Python
import requestsTOKEN = "YOUR_APIFY_TOKEN"ACTOR = "scrapier~tiktok-trending-videos-scraper-hashtag-sound-extractor"resp = requests.post(f"https://api.apify.com/v2/acts/{ACTOR}/run-sync-get-dataset-items",params={"token": TOKEN},json={"countryCode": "US", "sortBy": "vv", "maxItems": 20},)for video in resp.json():print(video["title"], video["soundMeta"])
MCP for query-grounded AI agents
The Actor is callable through Apify's Actors MCP Server, which exposes any Apify Actor as a tool over MCP:
npx @apify/actors-mcp-server --actors scrapier/tiktok-trending-videos-scraper-hashtag-sound-extractor
An MCP-compatible agent (Claude Desktop, Claude Code, or another MCP client) issues a query, the tool call runs this Actor, and the agent receives structured JSON — hashtags, sound metadata, and engagement stats — to ground its answer.
Scheduled monitoring and delivery
Apify's built-in Scheduler runs this Actor on a cron interval without manual intervention. Combine it with dataset webhooks or the Apify API to push each run's results to your own storage or alerting pipeline as soon as a run finishes.
Is it legal to scrape TikTok videos?
Yes — scraping publicly accessible TikTok video pages is generally lawful; this Actor returns only what any visitor to a public video page or TikTok's own Creative Center page can already see, including public creator handles, captions, and sound/hashtag metadata. Some fields (video captions, musicAuthor, creator handles in item_url) can identify the individual who posted the content, so if you store this data at scale or profile creators, GDPR/CCPA-style personal-data obligations may apply depending on your jurisdiction and use case. Scraping for one-off research carries a different risk profile than scraping to train models or build lasting profiles of individuals. Consult your legal team for commercial use cases involving bulk data storage.
Frequently asked questions
Which countries can I scrape trending videos from?
countryCode supports 24 markets: Australia, Brazil, Canada, Egypt, France, Germany, Indonesia, Israel, Italy, Japan, Malaysia, Philippines, Russia, Saudi Arabia, Singapore, South Korea, Spain, Taiwan, Thailand, Turkey, UAE, UK, US, and Vietnam. It's ignored when videoUrls is supplied.
What do sortBy and period control?
sortBy orders discovery results by views (vv), likes, comments, or shares (repost); period sets the discovery window to the last 7 or 30 days. Both apply only in discovery mode, not when videoUrls is used.
How does TikTok Trending Videos Scraper & Hashtag Sound Extractor handle TikTok's anti-bot measures?
It captures the dynamic user-sign/web-id/timestamp headers TikTok's discovery endpoint requires by loading TikTok Creative Center in a real headless browser session, then fetches each video's detail page over plain HTTP first, falling back to a full headless-browser render only when the lightweight fetch returns no data.
Does it really extract sound/music metadata, not just guess from the caption?
Yes — soundMeta{} (musicId, musicName, musicAuthor, musicOriginal, playUrl, coverMediumUrl) is parsed from the music{} object in TikTok's own per-video page data, not inferred from the caption. It's null on the rare video where TikTok's page contains no music object.
How does the sound extractor actually work?
It reads the same music{} field already present in the video's own SIGI_STATE/UNIVERSAL_DATA page JSON that TikTok's site loads for every visitor — no audio fingerprinting or third-party recognition service is involved, and no TikTok login is required to read it.
How many results does TikTok Trending Videos Scraper & Hashtag Sound Extractor return per query?
maxItems caps it at 1–1000 (default 10) videos per run. In discovery mode, the actual count depends on TikTok's live discovery endpoint, which has been observed to return no data at all for some accounts/regions — supply videoUrls instead for a reliable, fixed-size result set. The hashtag trend cross-reference is separately capped by TikTok's own anonymous Creative Center tier, which has been observed to expose only a small public preview of trending hashtags per country/period regardless of the requested limit.
How do I monitor trending sounds and hashtags over time?
Schedule a run per query, store the dataset, and compare hashtags[].trendRank/usageCount and soundMeta.musicId frequency against the previous run — a rising rank or a musicId appearing across more videos signals a sound or tag gaining traction.
Does TikTok Trending Videos Scraper & Hashtag Sound Extractor work with Claude, ChatGPT, and AI agent frameworks?
Yes — it's reachable through Apify's Actors MCP Server (npx @apify/actors-mcp-server --actors scrapier/tiktok-trending-videos-scraper-hashtag-sound-extractor) for MCP clients, and callable as a plain HTTP endpoint by any agent framework, enabling grounded agents that retrieve live TikTok data before answering.
How does TikTok Trending Videos Scraper & Hashtag Sound Extractor compare to other TikTok scrapers?
Most TikTok trending/hashtag scrapers return video metadata and engagement counts only. This Actor adds two result types on top: structured per-video soundMeta (track ID, artist, original-vs-reused flag) and a live hashtag trend cross-reference (isTrending/trendRank/usageCount/viewCount), plus a direct video-URL mode that doesn't depend on the discovery feed at all.
Can I use TikTok Trending Videos Scraper & Hashtag Sound Extractor without managing proxies or platform credentials?
Yes — the Actor handles header generation, request routing, and page rendering internally. You supply only your Apify account and API token; no TikTok account, cookies, or proxy configuration is required.
Your feedback
Found a bug or a field that doesn't match this documentation? Let us know through the Actor's Issues tab on Apify or Scrapier's support channel — reports like this get triaged directly against the source code.