DEV Community

meng xipeng
meng xipeng

Posted on

TikTok Creative Center Trends Changed: How to Get This Week's Trending TikToks (With Transcripts)

If you scrape TikTok Creative Center's trending lists, you may have noticed your script quietly stopped returning data. The old creative_radar_api/v1/popular_trend/... endpoints for trending hashtags, videos, sounds and creators now answer {"code": 0, "data": null, "msg": "deprecated"}, even with a valid signature, and the Creative Center itself has moved to a new app.

This tutorial shows what's still reachable without logging in, a short Python script that gets this week's trending US videos from the new endpoint, and a no-code route that also transcribes those videos and pulls the creator's contact email from their bio.

Disclosure: I built the Apify actor used in options 1 and 2 (TikTok Transcript Scraper). Option 3 doesn't use it.

What changed in October 2026

I checked this on 27 Oct 2026:

  • The old URLs (/business/creativecenter/inspiration/popular/...) now redirect to a new app at ads.tiktok.com/creative/creativeCenter/trends.
  • The old trend endpoints return "deprecated". Only the Top Ads endpoints on the old app still work.
  • Logged out, the new Trends page shows the top 3 hashtags per country, and a Video tab backed by a new, unsigned endpoint: ads.us.tiktok.com/CreativeOne/Report/CreativeCenterGetTopContentsList.
  • That video endpoint returns 4 videos per call, US only. Asking for page 2 or a bigger limit returns the same 4, and Japan, Vietnam, Thailand, Indonesia and the UK came back empty. "Go to TikTok One to view more" is the login wall.

Combining the sort orders, the five content categories and the organic-only filter gives 81 distinct trending US videos for the week ending 25 Oct. Earlier weeks also work, at least 4 back.

What the trending videos look like

I transcribed 25 of them on Apify's cloud:

  • 22 had TikTok's own captions, 1 was transcribed with Whisper AI, and 2 had no speech (music only).
  • 23 of 25 were marked as ads. Sorting by views mostly surfaces sponsored posts: the top Technology & Finance video had 16.4M weekly views, of which only 840K were organic.
  • Sorting by engagement rate gives a different picture: small videos (2K-12K weekly views) with engagement rates above 50 %.
  • 14 of 25 creator bios contained an email address, mostly management or talent-agency inboxes. That's the contact a brand needs when it wants to work with a creator who is trending right now.

What you get per video

Real values from the run (the Technology & Finance #1 video for the week ending 25 Oct):

Field Example
url, authorUsername https://www.tiktok.com/@owennurminen/video/7676518404357999903
trendWeekEnding, trendRank, trendCategories 2026-10-25T00:00:00Z, 1, ["Technology & Finance"]
weeklyViews, lifetimeViews, organicViews 16434109, 97959655, 840503
engagementRate 0.0011
creatorFollowers, creatorEmails 137350, [] (filled for 14 of 25 videos)
transcriptSource, language tiktok_captions, en
hook If you're a young guy with motion. One of my friends just put me onto something
transcript [{"start": 0.1, "end": 1.38, "text": "If you're a young guy with motion."}, …]
playCount, likeCount, isAd 100000000, 104300, true (from the video page)

Option 1: No code (Apify Console)

  1. Open the actor page and click Try for free. Apify's free plan includes monthly platform credit; the actor itself is pay-per-event (current price on the Store page), and videos without speech aren't charged.
  2. Turn on Trending US videos. Optionally set Weeks of trending videos (1-5) and Trending categories (Beauty & Care, Fashion, Food & Beverage, Lifestyle & Leisure, Technology & Finance).
  3. Leave TikTok videos empty, or add your own links to transcribe them in the same run.
  4. Click Start. The Trending US videos tab of the results shows rank, views, engagement, followers, creator emails and the transcript, ready to export as CSV, JSON or Excel.

Option 2: Python

pip install apify-client, then take your API token from Apify Console → Settings → Integrations.

from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")

run = client.actor("axlymxp/tiktok-transcript-scraper").call(run_input={
    "trendingVideos": True,
    "trendingWeeks": 1,                        # 1-5 weekly rankings
    "trendingCategories": ["Fashion", "Beauty & Care"],
    "outputFormat": "both",                    # segments + one joined string
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["trendRank"], item["weeklyViews"], item["url"])
    print("  emails:", item["creatorEmails"])
    print("  hook:", item["hook"])
Enter fullscreen mode Exit fullscreen mode

Find creators to pitch

rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())
leads = [r for r in rows if r.get("creatorEmails")]
for r in sorted(leads, key=lambda r: r["creatorFollowers"] or 0, reverse=True):
    print(f'{r["creatorFollowers"]:>10,}  @{r["authorUsername"]}  {", ".join(r["creatorEmails"])}')
Enter fullscreen mode Exit fullscreen mode

Option 3: DIY, the new endpoint with no signing

The Video tab's endpoint needs no user-sign, no cookies and no login, just browser-like headers. With curl_cffi (pip install curl_cffi):

from curl_cffi import requests

BASE = "https://ads.us.tiktok.com/CreativeOne/Report"
HEADERS = {"Origin": "https://ads.tiktok.com", "Referer": "https://ads.tiktok.com/", "agw-js-conv": "str"}
s = requests.Session(impersonate="chrome124")

week_end = s.get(f"{BASE}/GetTopContentsOverview", headers=HEADERS).json()["lastWeeklyEndTimestamp"]

params = {
    "countryCode": "US", "contentLabelIDs": "",   # "" = all categories, "11003" = Fashion, ...
    "orderByMetric": 1,                           # 1 = views, 2 = engagement rate
    "organicOnly": "false", "periodDimension": 3, # 3 = weekly
    "periodEndTimestamp": week_end, "page": 1, "limit": 20,
}
data = s.get(f"{BASE}/CreativeCenterGetTopContentsList", params=params, headers=HEADERS).json()

for item in data["entityInfos"]:
    info, author = item["itemInfo"], item["itemAuthorInfo"]
    url = f'https://www.tiktok.com/@{author["handlerName"]}/video/{info["itemID"]}'
    print(item["itemMetrics"]["videoViews"], url)
print(data["pagination"])
Enter fullscreen mode Exit fullscreen mode

It prints four videos and {'hasMore': True, 'limit': 4, 'page': 1, 'pageCount': 25, 'totalCount': 100}. Things I ran into:

  • totalCount: 100 is a tease. Logged out, page and limit are ignored. To get more distinct videos, vary orderByMetric (1-3; 4 and 5 return nothing), contentLabelIDs (11002 Beauty & Care, 11003 Fashion, 11010 Food & Beverage, 11013 Lifestyle & Leisure, 11015 Technology & Finance) and organicOnly. That's 36 calls for about 80 videos.
  • Each item carries itemAuthorInfo.bio, so a regex for email addresses gives you creator contacts without visiting each profile.
  • Pace your calls. After a quick burst of around 40 requests, my connection to the host started failing at the TLS handshake for a while. One request every 2 seconds was fine.
  • The videoURL in the response expires, so to transcribe a video, open its TikTok page and use the caption track there, as in my earlier TikTok transcript tutorial.

Scheduling and integrations

Schedule a weekly run on Monday (the weekly ranking ends on Sunday 00:00 UTC) to collect each week's trending videos, transcripts and creator contacts into Google Sheets, Slack or a webhook.

FAQ

Why only the US? Logged out, the endpoint returns videos for the US only; other regions came back empty in my tests. Hashtags are available for 27 countries, but only the top 3 each.

Are the creator emails personal data? They come from public profile bios and are mostly business contacts, but they're still personal data under GDPR/CCPA. Use them for relevant business outreach and respect opt-outs.

Is it legal? These are public pages read without logging in. How you use the data is on you: respect TikTok's terms and privacy law.

Questions or a run that doesn't work? Open an issue on the actor page and I'll take a look.

Top comments (0)