TikTok Viral Scanner - Hashtags, Sounds & Trends avatar

TikTok Viral Scanner - Hashtags, Sounds & Trends

Pricing

from $2.63 / 1,000 video scrapeds

Go to Apify Store
TikTok Viral Scanner - Hashtags, Sounds & Trends

TikTok Viral Scanner - Hashtags, Sounds & Trends

Scan TikTok for viral trends, hashtags, sounds, and video data. Track creators, engagement metrics, and trending content.

Pricing

from $2.63 / 1,000 video scrapeds

Rating

5.0

(3)

Developer

viralanalyzer

viralanalyzer

Maintained by Community

Actor stats

0

Bookmarked

9

Total users

5

Monthly active users

7 days ago

Last modified

Share

🎵 TikTok Viral Scanner — Profile & Video Scraper (No API Key)

🔗 View on Apify Store | 🇺🇸 English | 🇧🇷 Português

Scrape TikTok profiles and hashtags with real engagement metrics: views, likes, comments, shares, bookmarks, music info, hashtags, and cover images. PlaywrightCrawler-based multi-strategy extraction with XHR interception, embedded JSON, direct API, and DOM fallback. No API key needed.

✨ Features

  • Real engagement metrics — Play count, likes, comments, shares, bookmarks (collectCount)
  • Music metadata — Song name, artist, music ID for each video
  • Hashtags & challenges — Extracted from descriptions and challenge tags (deduplicated)
  • Cover images — Multiple cover image URLs per video (static, origin, dynamic)
  • Author info — Username, nickname, follower count, following count, total hearts
  • Hashtag page scraping — Scrape trending hashtag pages (e.g., #foodtok)
  • 4-strategy cascade — XHR intercept, embedded JSON (REHYDRATION/SIGI), direct API, DOM fallback
  • Stealth browsing — Webdriver flag removal, resource blocking, anti-bot bypass
  • Residential proxy — Built-in US residential proxy with automatic fallback
  • CAPTCHA handling — Detects and attempts to bypass verification pages
  • Global timeout — 4-minute safety limit to stay within Apify QA requirements
  • Debug data — Screenshots and HTML dumps saved to KV Store on failure

📥 Input

ParameterTypeRequiredDefaultDescription
profilesstring[]YesTikTok usernames (with or without @) or hashtags (#trending). Examples: "@khaby.lame", "charlidamelio", "#foodtok"
maxItemsintegerNo10Maximum videos to scrape per profile or hashtag (1-100)
cookiesobject[]NoOptional cookies for authentication (JSON array)

Input Example

{
"profiles": [
"@khaby.lame",
"charlidamelio",
"#foodtok"
],
"maxItems": 10
}

📤 Output

FieldTypeDescription
idstringTikTok video ID
webVideoUrlstringFull video URL (https://www.tiktok.com/@user/video/{id})
descstringVideo description/caption
createTimenumberUnix epoch timestamp
createTimeISOstringISO 8601 timestamp
playCountnumberNumber of views/plays
diggCountnumberNumber of likes
commentCountnumberNumber of comments
shareCountnumberNumber of shares
collectCountnumberNumber of bookmarks/favorites
coversstring[]Array of cover image URLs (static, origin, dynamic)
durationnumberVideo duration in seconds
hashtagsstring[]Hashtag names from description and challenges (deduplicated)
musicMetaobjectMusic info: { musicName, musicAuthor, musicId }
authorobjectAuthor info: { username, nickname, followerCount, followingCount, heartCount }
scrapedAtstringISO 8601 timestamp of when the video was scraped

Output Example

{
"id": "7340921845012938018",
"webVideoUrl": "https://www.tiktok.com/@khaby.lame/video/7340921845012938018",
"desc": "When they make it satisfying #comedy #khaby #satisfying",
"createTime": 1709225400,
"createTimeISO": "2024-02-29T14:30:00.000Z",
"playCount": 48200000,
"diggCount": 3100000,
"commentCount": 18500,
"shareCount": 95000,
"collectCount": 210000,
"covers": [
"https://p16-sign-va.tiktokcdn.com/obj/tos-maliva-p-0068/cover1.jpg",
"https://p16-sign-va.tiktokcdn.com/obj/tos-maliva-p-0068/origin.jpg"
],
"duration": 15,
"hashtags": ["comedy", "khaby", "satisfying"],
"musicMeta": {
"musicName": "original sound",
"musicAuthor": "Khabane lame",
"musicId": "7340921845012938019"
},
"author": {
"username": "khaby.lame",
"nickname": "Khabane lame",
"followerCount": 162400000,
"followingCount": 78,
"heartCount": 2400000000
},
"scrapedAt": "2026-03-06T12:00:00.000Z"
}

📋 Use Cases

  • Viral Content Analysis — Identify top-performing videos by engagement metrics
  • Competitor Monitoring — Track competitor profiles and content strategies
  • Hashtag Research — Discover trending content under specific hashtags
  • Influencer Analytics — Evaluate creator performance (followers, hearts, engagement rate)
  • Content Inspiration — Find winning formats, music, and hooks in your niche
  • Market Research — Analyze audience interests through hashtag and topic trends

❓ FAQ

Q: Does this actor work with hashtag pages, not just profiles? A: Yes. You can pass hashtags with a # prefix (e.g., "#foodtok") in the profiles input. The actor will navigate to the hashtag page and extract videos from there.

Q: Why do some videos show 0 play count? A: If the primary strategies (XHR intercept, embedded JSON, direct API) fail and the actor falls back to DOM extraction (Strategy 4), videos will have IDs and URLs but no engagement metrics. This typically happens when TikTok detects automation.

Q: What is the 4-strategy cascade? A: The actor tries four extraction methods: (1) XHR interception captures API responses during page load, (2) embedded JSON from REHYDRATION/SIGI_STATE/NEXT_DATA script tags, (3) direct API call to /api/post/item_list/ using the user's secUid, (4) DOM link extraction as a last resort.

Q: How long does a typical run take? A: The actor has a 4-minute global timeout. A single profile with 10 videos typically completes in 30-60 seconds. Multiple profiles run sequentially with a single browser concurrency.

Q: Do I need a TikTok API key or developer account? A: No. The actor uses Playwright to visit TikTok pages like a regular browser and intercepts the API responses that TikTok loads automatically. No official API access is needed.

💰 Pricing

This actor uses Pay Per Event (PPE) pricing:

MetricCost
video-scraped$0.10 per video extracted

Example: Scraping 2 profiles x 10 videos = 20 videos = $2.00.

📝 Changelog

v1.3 (Current)

  • Performance optimization for Apify QA compliance (< 5 min execution)
  • domcontentloaded instead of networkidle (TikTok never reaches networkidle)
  • Reduced scrolls (6 instead of 12) — XHR intercept captures data during load
  • Faster retries and navigation timeouts (30s navigation, 1 max retry)
  • Resource blocking for media, fonts, and stylesheets

v1.2

  • 4-strategy cascade extraction (XHR intercept, embedded JSON, direct API, DOM fallback)
  • Hashtag page scraping support (#hashtag input)
  • Deep video item search in any JSON structure
  • Modal/overlay auto-dismiss
  • CAPTCHA detection and retry

v1.0

  • Profile video scraping with PlaywrightCrawler
  • Residential proxy with stealth mode
  • Contract validation on all output items

🎵 TikTok Viral Scanner — Scraper de Perfis e Vídeos (Sem API Key)

🔗 View on Apify Store | 🇺🇸 English | 🇧🇷 Português

Extraia dados de perfis e hashtags do TikTok com métricas reais de engajamento: visualizações, curtidas, comentários, compartilhamentos, favoritos, música, hashtags e imagens de capa. Extração multi-estratégia com PlaywrightCrawler usando interceptação XHR, JSON embutido, API direta e fallback DOM. Sem necessidade de API key.

✨ Funcionalidades

  • Métricas reais de engajamento — Visualizações, curtidas, comentários, compartilhamentos, favoritos (collectCount)
  • Metadados de música — Nome da música, artista, ID da música para cada vídeo
  • Hashtags e desafios — Extraídos de descrições e tags de desafios (deduplicados)
  • Imagens de capa — Múltiplas URLs de capa por vídeo (estática, original, dinâmica)
  • Info do autor — Username, apelido, seguidores, seguindo, total de curtidas
  • Scraping de páginas de hashtag — Extraia páginas de hashtags em alta (ex: #foodtok)
  • Cascata de 4 estratégias — Interceptação XHR, JSON embutido (REHYDRATION/SIGI), API direta, fallback DOM
  • Navegação stealth — Remoção de flag webdriver, bloqueio de recursos, bypass anti-bot
  • Proxy residencial — Proxy residencial US integrado com fallback automático
  • Tratamento de CAPTCHA — Detecta e tenta contornar páginas de verificação
  • Timeout global — Limite de segurança de 4 minutos para conformidade com QA do Apify
  • Dados de debug — Screenshots e dumps HTML salvos no KV Store em caso de falha

📥 Entrada

ParâmetroTipoObrigatórioPadrãoDescrição
profilesstring[]SimUsernames do TikTok (com ou sem @) ou hashtags (#trending). Exemplos: "@khaby.lame", "charlidamelio", "#foodtok"
maxItemsinteiroNão10Máximo de vídeos por perfil ou hashtag (1-100)
cookiesobjeto[]NãoCookies opcionais para autenticação (array JSON)

Exemplo de Entrada

{
"profiles": [
"@khaby.lame",
"charlidamelio",
"#foodtok"
],
"maxItems": 10
}

📤 Saída

CampoTipoDescrição
idstringID do vídeo no TikTok
webVideoUrlstringURL completa do vídeo (https://www.tiktok.com/@user/video/{id})
descstringDescrição/legenda do vídeo
createTimenumberTimestamp Unix epoch
createTimeISOstringTimestamp ISO 8601
playCountnumberNúmero de visualizações/plays
diggCountnumberNúmero de curtidas
commentCountnumberNúmero de comentários
shareCountnumberNúmero de compartilhamentos
collectCountnumberNúmero de favoritos/bookmarks
coversstring[]Array de URLs de imagens de capa (estática, original, dinâmica)
durationnumberDuração do vídeo em segundos
hashtagsstring[]Nomes de hashtags da descrição e desafios (deduplicados)
musicMetaobjectInfo da música: { musicName, musicAuthor, musicId }
authorobjectInfo do autor: { username, nickname, followerCount, followingCount, heartCount }
scrapedAtstringTimestamp ISO 8601 de quando o vídeo foi extraído

Exemplo de Saída

{
"id": "7340921845012938018",
"webVideoUrl": "https://www.tiktok.com/@khaby.lame/video/7340921845012938018",
"desc": "When they make it satisfying #comedy #khaby #satisfying",
"createTime": 1709225400,
"createTimeISO": "2024-02-29T14:30:00.000Z",
"playCount": 48200000,
"diggCount": 3100000,
"commentCount": 18500,
"shareCount": 95000,
"collectCount": 210000,
"covers": [
"https://p16-sign-va.tiktokcdn.com/obj/tos-maliva-p-0068/cover1.jpg",
"https://p16-sign-va.tiktokcdn.com/obj/tos-maliva-p-0068/origin.jpg"
],
"duration": 15,
"hashtags": ["comedy", "khaby", "satisfying"],
"musicMeta": {
"musicName": "original sound",
"musicAuthor": "Khabane lame",
"musicId": "7340921845012938019"
},
"author": {
"username": "khaby.lame",
"nickname": "Khabane lame",
"followerCount": 162400000,
"followingCount": 78,
"heartCount": 2400000000
},
"scrapedAt": "2026-03-06T12:00:00.000Z"
}

📋 Casos de Uso

  • Análise de Conteúdo Viral — Identifique vídeos de melhor desempenho por métricas de engajamento
  • Monitoramento de Concorrentes — Acompanhe perfis e estratégias de conteúdo dos concorrentes
  • Pesquisa de Hashtags — Descubra conteúdo em alta sob hashtags específicas
  • Analytics de Influenciadores — Avalie performance de criadores (seguidores, curtidas, taxa de engajamento)
  • Inspiração de Conteúdo — Encontre formatos, músicas e ganchos vencedores no seu nicho
  • Pesquisa de Mercado — Analise interesses do público através de tendências de hashtags e tópicos

❓ Perguntas Frequentes

P: Este actor funciona com páginas de hashtag, não apenas perfis? R: Sim. Você pode passar hashtags com prefixo # (ex: "#foodtok") na entrada profiles. O actor navegará até a página da hashtag e extrairá os vídeos de lá.

P: Por que alguns vídeos mostram 0 visualizações? R: Se as estratégias primárias (interceptação XHR, JSON embutido, API direta) falharem e o actor recorrer à extração DOM (Estratégia 4), os vídeos terão IDs e URLs mas sem métricas de engajamento. Isso geralmente acontece quando o TikTok detecta automação.

P: O que é a cascata de 4 estratégias? R: O actor tenta quatro métodos de extração: (1) interceptação XHR captura respostas da API durante o carregamento da página, (2) JSON embutido de script tags REHYDRATION/SIGI_STATE/NEXT_DATA, (3) chamada direta à API /api/post/item_list/ usando o secUid do usuário, (4) extração de links DOM como último recurso.

P: Quanto tempo leva uma execução típica? R: O actor tem um timeout global de 4 minutos. Um único perfil com 10 vídeos geralmente completa em 30-60 segundos. Múltiplos perfis executam sequencialmente com concorrência de browser única.

P: Preciso de uma chave de API ou conta de desenvolvedor do TikTok? R: Não. O actor usa Playwright para visitar páginas do TikTok como um navegador normal e intercepta as respostas da API que o TikTok carrega automaticamente. Nenhum acesso à API oficial é necessário.

💰 Preços

Este actor usa precificação Pay Per Event (PPE):

MétricaCusto
video-scraped$0.10 por vídeo extraído

Exemplo: Extrair 2 perfis x 10 vídeos = 20 vídeos = $2.00.

🔗 Actors Relacionados

📝 Changelog

v1.3 (Atual)

  • Otimização de performance para conformidade com QA do Apify (< 5 min de execução)
  • domcontentloaded em vez de networkidle (TikTok nunca atinge networkidle)
  • Scrolls reduzidos (6 em vez de 12) — interceptação XHR captura dados durante carregamento
  • Retentativas e timeouts de navegação mais rápidos (30s navegação, 1 retentativa máx)
  • Bloqueio de recursos para mídia, fontes e stylesheets

v1.2

  • Cascata de 4 estratégias de extração (interceptação XHR, JSON embutido, API direta, fallback DOM)
  • Suporte a scraping de páginas de hashtag (entrada #hashtag)
  • Busca profunda de itens de vídeo em qualquer estrutura JSON
  • Auto-dismiss de modais/overlays
  • Detecção de CAPTCHA e retentativa

v1.0

  • Scraping de vídeos de perfil com PlaywrightCrawler
  • Proxy residencial com modo stealth
  • Validação de contrato em todos os itens de saída