Chcete-li zjistit, zda konkrétní video na TikToku získává reakce, porovnávejte jeho veřejné metriky s předchozím snímkem. Jednorázové vyhledávání ukáže již nashromážděná zhlédnutí a reakce; opakované shromažďování stejných nalezených videí umožní sledovat změny mezi dvěma spuštěními. Níže najdete jednoduchý funkční postup v Pythonu: vyhledání, uložení metrik do CSV a výpočet rozdílu.
Co tento monitoring vlastně měří?
Postup se hodí marketérovi, analytikovi nebo vývojáři, který potřebuje seznam nalezených videí k určitému tématu a ověřitelnou historii pozorování. Tým může například pravidelně sledovat videa o uvedení produktu nebo konkrétního dotazu publika a zjišťovat, která videa od minulé kontroly získala více zhlédnutí, lajků, komentářů či sdílení.

Základní jednotkou porovnání je video identifikované pomocí aweme_id. U každého záznamu se ukládá čas sběru, identifikátor, popis, URL, jméno autora a dostupné čítače. Následně se dva snímky spárují podle identifikátoru. Přírůstek zhlédnutí jednoho videa se tak nesměšuje s celkovým počtem zhlédnutí jiného.
Výsledek popisuje pouze videa vrácená konkrétním vyhledávacím dotazem při konkrétním spuštění. Výsledky vyhledávání se mohou měnit a některá pole statistik mohou chybět. Proto je užitečné uchovávat samotné snímky i čas sběru a považovat přehled za sledování již nalezených videí, nikoli za úplný katalog příspěvků k danému tématu.
Jak funguje sběr přes API?
Dokumentace TikTok Scraper API popisuje trasu GET /searchVideo. Povinným parametrem pro vyhledávání je řetězec keyword; mezi další parametry patří count, region, sort_by a date_posted. Klíč API se předává jako license_key. Dokumentace uvádí základní adresu https://tiktok.evelode.com.
Odpověď obsahuje vnější stav a objekt tiktok. Vyhledaná videa mohou být v tiktok.aweme_list nebo uvnitř tiktok.search_item_list[].aweme_info. Níže uvedený obslužný kód podporuje obě struktury. Metriky se načítají z statistics, včetně polí play_count, digg_count, comment_count a share_count; chybějící hodnota se uloží jako prázdná, nikoli jako nula.
Dokumentace tras uvádí pro procházení výsledků vyhledávání parametr cursor a u parametrů date_posted a sort_by vypisuje povolené možnosti. Pro jednoduchý opakovatelný monitoring stačí nejprve získat jednu stránku výsledků a uložit odpověď; stránkování přidávejte jen v případě potřeby. Pokud je potřeba, předávejte získaný kurzor beze změny.
Funkční příklad v Pythonu
Nainstalujte knihovnu requests příkazem python -m pip install requests a nastavte klíč v proměnné prostředí JSONSCRAPER_TIKTOK_LICENSE_KEY. Skript přijímá vyhledávací frázi jako argument a přidává nalezené snímky do jednoho souboru CSV. Kód je kompatibilní s Pythonem 3.8 a novějším.
import csv
import os
import sys
from datetime import datetime, timezone
from pathlib import Path
import requests
BASE_URL = "https://tiktok.evelode.com/searchVideo"
CSV_PATH = Path("tiktok_video_snapshots.csv")
FIELDS = [
"collected_at", "aweme_id", "author", "description", "share_url",
"play_count", "digg_count", "comment_count", "share_count",
]
def extract_items(payload):
"""Support the observed search response layouts."""
data = payload.get("tiktok") or {}
items = data.get("aweme_list") or []
if items:
return items
found = []
for result in data.get("search_item_list") or []:
info = result.get("aweme_info")
if info:
found.append(info)
return found
def main():
key = os.environ.get("JSONSCRAPER_TIKTOK_LICENSE_KEY")
if not key:
raise SystemExit("Set JSONSCRAPER_TIKTOK_LICENSE_KEY first")
if len(sys.argv) < 2:
raise SystemExit('Usage: python collect.py "search phrase"')
params = {
"license_key": key,
"keyword": sys.argv[1],
"count": 20,
"region": "US",
"sort_by": "relevance",
"date_posted": "this-week",
}
response = requests.get(BASE_URL, params=params, timeout=30)
response.raise_for_status()
payload = response.json()
if payload.get("status") != "ok":
raise RuntimeError("API returned a non-ok outer status")
data = payload.get("tiktok") or {}
items = extract_items(payload)
collected_at = datetime.now(timezone.utc).isoformat()
rows = []
for item in items:
stats = item.get("statistics") or {}
author = item.get("author") or {}
rows.append({
"collected_at": collected_at,
"aweme_id": item.get("aweme_id"),
"author": author.get("unique_id") or author.get("nickname"),
"description": item.get("desc"),
"share_url": item.get("share_url"),
"play_count": stats.get("play_count"),
"digg_count": stats.get("digg_count"),
"comment_count": stats.get("comment_count"),
"share_count": stats.get("share_count"),
})
write_header = not CSV_PATH.exists()
with CSV_PATH.open("a", newline="", encoding="utf-8") as file:
writer = csv.DictWriter(file, fieldnames=FIELDS)
if write_header:
writer.writeheader()
writer.writerows(rows)
print("Saved", len(rows), "returned videos")
print("has_more:", data.get("has_more"), "cursor:", data.get("cursor"))
if __name__ == "__main__":
main()
Spusťte například python collect.py "dotaz na produkt". Knihovna vloží řetězec s klíčem do parametrů URL; skript jej nevypisuje do terminálu. Nezapisujte celé URL požadavku do veřejně přístupných protokolů, protože obsahuje klíč. V produkčním systému používejte úložiště tajných údajů a omezte přístup k souboru se snímky.
Jak vypočítat přírůstek mezi spuštěními?
Skript záměrně zapisuje všechna pozorování, místo aby předchozí hodnoty přepisoval. Následující jednoduchý analyzátor spáruje poslední dva snímky každého videa a vypíše rozdíl v čítačích. Pokud u některé metriky chybí hodnota v jednom ze dvou záznamů, výsledek je označen jako nedostupný.

import csv
from collections import defaultdict
from pathlib import Path
rows_by_video = defaultdict(list)
with Path("tiktok_video_snapshots.csv").open(encoding="utf-8", newline="") as file:
for row in csv.DictReader(file):
if row["aweme_id"]:
rows_by_video[row["aweme_id"]].append(row)
metrics = ("play_count", "digg_count", "comment_count", "share_count")
for video_id, snapshots in rows_by_video.items():
snapshots.sort(key=lambda row: row["collected_at"])
if len(snapshots) < 2:
continue
previous, latest = snapshots[-2], snapshots[-1]
changes = {}
for metric in metrics:
old, new = previous[metric], latest[metric]
changes[metric] = int(new) - int(old) if old and new else None
print(video_id, changes, latest["share_url"])
Rozdíl odpovídá změně mezi dvěma uloženými hodnotami, nikoli rychlosti růstu se zaručenou pravidelností. Pokud se spuštění konají v různých intervalech, přidejte výpočet doby mezi hodnotami collected_at a porovnávejte přírůstek za skutečně uplynulou dobu. Čítače se mohou mezi pozorováními měnit; uložené časové značky ukazují, kdy byly použité hodnoty získány.
Jak automatizovat a interpretovat přehled?
Pro denní přehled naplánujte sběr na serveru nebo v CI, určete stálý seznam vyhledávacích frází a ukládejte data do CSV nebo řádky načítejte do databáze. Při opakovaném spuštění odstraňte případné duplicity v rámci jednoho snímku podle aweme_id. Pro dlouhodobou historii uchovávejte původní JSON spolu s normalizovanými sloupci; usnadní to nové zpracování, pokud se změní struktura přehledu.
V tabulce se hodí zobrazit ID a URL videa, autora, popis, čas sběru a rozdíly u jednotlivých metrik. Řazení podle přírůstku zhlédnutí odpovídá na otázku šíření, zatímco přírůstky komentářů nebo sdílení mohou odhalit jiný druh reakce. Neslučujte tyto ukazatele do jednoho žebříčku bez jasně stanoveného pravidla: každý čítač vyjadřuje něco jiného.
Plánovač může odesílat přehled e-mailem, do tabulky nebo interního kanálu, ale tento krok zajišťuje vaše infrastruktura — výše uvedený příklad pouze shromažďuje a analyzuje data. Pro úplnější sběr můžete procházet stránky výsledků, ukládat kurzor a cyklus ukončit, když API oznámí, že další stránky nejsou k dispozici. Kurzorem vyhledávání je neprůhledná hodnota z odpovědi; sami jej nevypočítávejte. Ani procházení všech stránek nezaručuje úplný seznam všech odpovídajících příspěvků, pouze popisuje vrácené výsledky.
Očekávaným praktickým výsledkem je reprodukovatelný záznam pozorování a tabulka změn u nalezených videí. Pomůže zjistit, u kterých příspěvků se mezi kontrolami změnily veřejné čítače, a předat konkrétní odkazy odborníkovi k věcnému rozboru. Podrobnosti o produktu a přístup k API najdete na stránce TikTok Scraper API.
Co zkontrolovat před naplánovaným spuštěním?
- Před zpracováním objektu
tiktokověřte, že vnější stav odpovědi jeok. - Ověřte obě možné struktury položek výsledků vyhledávání; chybějící seznam má vést k prázdnému sběru, nikoli k chybě.
- Uchovávejte původní hodnoty a časové značky. Chybějící metrika zůstává prázdná.
- Nastavte stejné dotazy a parametry, aby se snímky daly lépe porovnávat; změny těchto nastavení zaznamenávejte spolu s přehledem.
- Sledujte četnost spuštění, chyby HTTP a velikost historie a dodržujte příslušná pravidla platformy i požadavky na zpracování dat.
Shrnuto: pro sledování výsledků stačí opakovat stejné vyhledávání, identifikovat videa podle aweme_id a porovnávat uložené metriky v čase. Tento přístup odpovídá na úzce vymezenou praktickou otázku — u kterých již nalezených videí se mezi dvěma kontrolami změnily veřejné čítače — a ponechává původní data k dispozici pro audit i další zpracování.