Aby wyodrębnić publiczne filmy na TikToku ze wzmiankami o marce i wyraźnymi sformułowaniami reklamowymi, zbierz wyniki dla kilku zapytań, wyodrębnij opisy i oznacz słowa-klucze. Efektem będzie plik CSV z linkami i dostępnymi wskaźnikami, czyli kolejka do weryfikacji przez człowieka, a nie automatyczny werdykt o zgodności z zasadami.
Taki proces przyda się agencji porównującej kampanię z briefem albo wewnętrznemu zespołowi prowadzącemu listę publicznych wzmianek. Pomaga uporządkować wyniki wyszukiwania i zachować przesłanki, na podstawie których analityk zdecyduje, który film otworzyć i sprawdzić.
Czego dokładnie szukać w filmach?
Przy weryfikacji reklam ważne są zarówno relacja autora z marką, jak i sposób jej ujawnienia przy rekomendacji. Wytyczne FTC dla influencerów wyjaśniają, że istotna relacja może mieć charakter finansowy, zawodowy, osobisty lub rodzinny, a jej ujawnienie powinno być widoczne i zrozumiałe. W przypadku rekomendacji wideo FTC wskazuje, że informacja powinna znaleźć się w samym filmie, a nie tylko w opisie. Dlatego opis pomaga w sortowaniu, ale sam w sobie nie pokazuje, co widz zobaczył w kadrze ani usłyszał w nagraniu audio.
Zakres tego skryptu jest węższy: wyszukuje w zwróconych wynikach filmy, których opisy zawierają frazy związane z marką i możliwe oznaczenia, takie jak „reklama”, „sponsor” lub „partnerstwo”. Słownik należy dostosować do języka i terminologii kampanii. Jeśli w opisie nie ma danego oznaczenia, otwórz film i sprawdź jego treść: dopasowanie tekstu nie rozstrzyga, czy informacja została umieszczona w samym nagraniu.
Jak zamienić wyniki wyszukiwania w kolejkę do weryfikacji?
Przygotuj krótką listę zapytań: nazwę marki, kampanii i popularną pisownię nazwy produktu. Uruchamiaj zapytania osobno i zapisuj ich treść przy wynikach. Dzięki temu zespół będzie mógł sprawdzić, za pomocą którego zapytania znaleziono film, i w razie potrzeby powtórzyć zbieranie danych.


Do zbierania danych nadaje się TikTok Scraper API jsonscraper. Udokumentowana trasa GET /searchVideo znajduje się pod adresem https://tiktok.evelode.com i przyjmuje parametry keyword, count, date_posted, sort_by, region oraz cursor. W zaobserwowanej odpowiedzi dane TikToka zawierały filmy w search_item_list[].aweme_info; aweme_list mogło być puste. Poniższy parser sprawdza oba miejsca.
Klucz przekazuje się w parametrze license_key. Przechowuj go w zmiennej środowiskowej, a nie w skrypcie ani repozytorium. Dokumentacja tras TikToka zawiera nazwy parametrów wyszukiwania; aby pobrać następną stronę, użyj zwróconego cursor. Zapisuj liczbę przetworzonych obiektów i samo zapytanie: paginacja pozwala kontynuować pobieranie wyników, ale sama nie potwierdza kompletności zbioru.
Minimalny przykład w Pythonie
Skrypt wykonuje po jednym zapytaniu dla każdej frazy, zbiera obie udokumentowane formy wyników, usuwa duplikaty według identyfikatora filmu, oznacza słowa w opisie i zapisuje plik CSV. Zainstaluj requests poleceniem python -m pip install requests, ustaw zmienną środowiskową JSONSCRAPER_TIKTOK_LICENSE_KEY i uruchom plik. Przykład jest zgodny z Pythonem 3.8 lub nowszym.
import csv
import os
import sys
import requests
BASE_URL = "https://tiktok.evelode.com/searchVideo"
KEY = os.environ.get("JSONSCRAPER_TIKTOK_LICENSE_KEY")
if not KEY:
raise SystemExit("Set JSONSCRAPER_TIKTOK_LICENSE_KEY first")
QUERIES = ["Example Brand", "Example Product", "Example Campaign"]
MARKERS = ("#реклама", "реклама", "спонсор", "партнерство", "партнёрство", "#ad", "sponsored")
def videos_from(payload):
data = payload.get("tiktok") or {}
videos = data.get("aweme_list") or []
if not videos:
videos = [
item.get("aweme_info")
for item in (data.get("search_item_list") or [])
if isinstance(item, dict) and isinstance(item.get("aweme_info"), dict)
]
return [video for video in videos if isinstance(video, dict)]
rows = {}
for query in QUERIES:
response = requests.get(
BASE_URL,
params={"keyword": query, "count": 20, "date_posted": "this-month", "license_key": KEY},
timeout=30,
)
response.raise_for_status()
payload = response.json()
if payload.get("status") != "ok":
print("Unexpected API status for query:", query, file=sys.stderr)
continue
for video in videos_from(payload):
video_id = video.get("aweme_id")
if not video_id:
continue
author = video.get("author") or {}
stats = video.get("statistics") or {}
caption = video.get("desc") or ""
matched = [word for word in MARKERS if word in caption.casefold()]
row = rows.setdefault(str(video_id), {
"video_id": str(video_id),
"url": video.get("share_url") or "",
"author": author.get("unique_id") or author.get("nickname") or "",
"caption": caption,
"queries": set(),
"disclosure_markers": set(),
"play_count": stats.get("play_count"),
"digg_count": stats.get("digg_count"),
"comment_count": stats.get("comment_count"),
"review_status": "manual_review",
})
row["queries"].add(query)
row["disclosure_markers"].update(matched)
with open("tiktok_disclosure_review.csv", "w", newline="", encoding="utf-8-sig") as file:
fields = ["video_id", "url", "author", "caption", "queries", "disclosure_markers",
"play_count", "digg_count", "comment_count", "review_status"]
writer = csv.DictWriter(file, fieldnames=fields)
writer.writeheader()
for row in rows.values():
row["queries"] = " | ".join(sorted(row["queries"]))
row["disclosure_markers"] = " | ".join(sorted(row["disclosure_markers"]))
writer.writerow(row)
print("Saved", len(rows), "unique returned videos")
Przed zapisaniem kodu sprawdź status odpowiedzi zewnętrznej, a następnie dane w tiktok. Normalizator odczytuje obie lokalizacje filmów. Aby pobrać kolejną stronę, możesz przekazać otrzymany cursor w następnym zapytaniu bez przekształceń; ten minimalny przykład celowo ograniczono do jednej strony na zapytanie.
Co znajdzie się w pliku CSV?
Każdy wiersz łączy identyfikator i link do filmu, dostępny identyfikator autora, opis, frazy wyszukiwania i dopasowane oznaczenia. Jeśli odpowiedź zawiera liczbę wyświetleń, polubień i komentarzy, zostaną zapisane jako kontekst pomocny przy ustalaniu kolejności weryfikacji. Te pola mogą być nieobecne; skrypt pozostawia je puste zamiast wpisywać zera.
Następnie otwórz film, sprawdź, czy oznaczenie znajduje się w nagraniu i czy jest widoczne, a wynik zapisz według uzgodnionych kategorii, na przykład „znaleziono”, „wymaga dalszej weryfikacji” lub „nie wykryto podczas oglądania”. Sam kod wyszukuje dokładne oznaczenia tekstowe w opisie; nie analizuje obrazu ani dźwięku i nie rozstrzyga o zgodności z zasadami.
W przypadku regularnego procesu uruchamiaj zbieranie danych według harmonogramu, zapisuj czas zapytania i przechowuj pierwotny JSON wraz z plikiem CSV. Ogranicz listę zapytań do niezbędnych fraz i określ czas przechowywania zebranych danych. Polityka odpowiedzialnego zbierania danych jsonscraper zaleca rozsądną częstotliwość zapytań, minimalizację danych i weryfikowanie wyników AI przed podjęciem dalszych działań.
Efektem jest powtarzalna kolejka publicznych filmów do ręcznej weryfikacji oznaczeń reklamowych: dopasowania z wyszukiwania i dostępne metryki pomagają ustalić, co otworzyć jako pierwsze, a ocenę samego filmu pozostawiają osobie weryfikującej. Nazwy parametrów można sprawdzić w dokumentacji TikTok API, a informacje o produkcie na stronie TikTok Scraper API.