jsonscraper
Trhy
Zpět do magazínu

Jak najít videa TikToku s rostoucí mírou zapojení bez porovnávání celkových zhlédnutí

Zaznamenávejte metriky stejných nalezených videí v časových rozestupech a počítejte přírůstky odděleně od celkové popularity

Redakční zásady Nahlásit chybu

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í.

Článek: Jak najít videa TikToku s rostoucí mírou zapojení bez porovnávání celkových zhlédnutí
Shrnutí: Podrobný postup v Pythonu shromažďuje videa TikToku nalezená podle dotazu, ukládá údaje o zhlédnutích a reakcích do CSV a při dalším spuštění vypočítá změny u stejných videí.
Role obrázku: titulní obrázek — ústřední myšlenka
Sekce: Co tento monitoring vlastně měří?
Vizuální motiv: Redakční fotografie tištěných listů s anonymizovanými řádky ID krátkých videí a dvěma časovými značkami
Porovnání dvou snímků metrik stejného videa podle jeho identifikátoru.© jsonscraper · vytvořeno pomocí AI

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ý.

Článek: Jak najít videa TikToku s rostoucí mírou zapojení bez porovnávání celkových zhlédnutí
Shrnutí: Podrobný postup v Pythonu shromažďuje videa TikToku nalezená podle dotazu, ukládá údaje o zhlédnutích a reakcích do CSV a při dalším spuštění vypočítá změny u stejných videí.
Role obrázku: doprovodná ilustrace 2 — jiný konkrétní aspekt
Sekce: Jak vypočítat přírůstek mezi spuštěními?
Vizuální motiv: Infografika v ruštině zobrazující postup: vyhledávání klíčového slova na TikToku → vrácené video
Cesta dat od výsledků vyhledávání k porovnání dvou uložených snímků.© jsonscraper · ilustrace vytvořená pomocí AI
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 tiktok ověřte, že vnější stav odpovědi je ok.
  • 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í.

Lidé

Pro tento článek zatím nejsou uvedeni žádní lidé.

Pokračujte ve čteníJak analyzovat témata tvůrců na TikToku: praktický pracovní postup v Pythonu
Přečtěte si další článek

Proměňte přečtené ve funkční integraci

Prozkoumejte API sociálních dat jsonscraper, testujte požadavky a sestavte další workflow.

Prozkoumat API