Якщо покупці обговорюють ваш продукт у TikTok, пошук за назвою бренду може дати команді матеріал для списку повторюваних запитань. Практичний результат — CSV з описом відео, автором, посиланням і доступними лічильниками реакцій. Цей файл можна передати фахівцеві підтримки або використати як вхідні дані для тематичної класифікації.

Для прикладу візьмемо запитання «як користуватися кавоваркою Acme». Скрипт нижче виконує один запит до пошуку TikTok, акуратно дістає відео з двох задокументованих варіантів структури відповіді та зберігає знайдені результати. Потім команда вручну перевіряє описи, об’єднує схожі формулювання й перетворює їх на теми FAQ або підказки для картки товару.
Чому варто перетворити пошук на таблицю
Ручний перегляд результатів пошуку ускладнює повторну перевірку: результати доводиться шукати знову, а нотатки часто залишаються у браузері чи листуванні. Таблиця, яку можна зберегти, дає єдиний робочий список: кожен запис має ідентифікатор відео, посилання, опис, автора й доступні показники. Повторний запуск можна додати до розкладу, а архів JSON допоможе з’ясувати, що саме повернув API під час конкретного запуску.
Тут важливо розуміти обмеження методу: пошук повертає знайдені за запитом результати, а не гарантовано повний каталог усіх згадок. Тому таблиця підходить для пошуку прикладів і спостереження за повторюваними запитаннями; висновки про частоту краще підтверджувати повторними запусками й ручною перевіркою.
Що повертає пошук
У документації TikTok Scraper API маршрут /searchVideo приймає обов’язковий параметр keyword. Серед підтримуваних параметрів також зазначено count, cursor, date_posted, sort_by і region. Для цього сценарію достатньо ключового запиту й кількості результатів.
Відповідь містить зовнішній статус і об’єкт tiktok. У перевіреній схемі відео можуть бути в aweme_list або в елементах search_item_list усередині поля aweme_info. Код враховує обидві форми та дістає лише поля, які справді є у відповіді. Залежно від результату доступні ідентифікатор відео, опис, посилання, ім’я та ID автора, дата публікації, а також лічильники переглядів, уподобань, коментарів і поширень.
Мінімальний збирач на Python
Установіть бібліотеку для запитів і задайте ключ у змінній середовища JSONSCRAPER_TIKTOK_LICENSE_KEY. Код сумісний із Python 3.8+. Він зберігає вихідну відповідь у JSON, а нормалізовані рядки — у CSV. Секрет передається в запиті, але не виводиться на екран.
import csv
import json
import os
from datetime import datetime, timezone
from pathlib import Path
import requests
API_KEY = os.environ["JSONSCRAPER_TIKTOK_LICENSE_KEY"]
KEYWORD = "Acme кофемашина"
response = requests.get(
"https://tiktok.evelode.com/searchVideo",
params={
"license_key": API_KEY,
"keyword": KEYWORD,
"count": 30,
"region": "US",
},
timeout=60,
)
response.raise_for_status()
payload = response.json()
if payload.get("status") != "ok":
raise RuntimeError("TikTok API повернув неочікуваний зовнішній статус")
tiktok = payload.get("tiktok") or {}
items = list(tiktok.get("aweme_list") or [])
for result in tiktok.get("search_item_list") or []:
video = result.get("aweme_info")
if video:
items.append(video)
# Усунення дублікатів зі збереженням порядку першої появи.
unique = {}
for item in items:
video_id = item.get("aweme_id")
if video_id:
unique.setdefault(video_id, item)
stamp = datetime.now(timezone.utc).strftime("%Y%m%dT%H%M%SZ")
Path("data").mkdir(exist_ok=True)
Path(f"data/raw-{stamp}.json").write_text(
json.dumps(payload, ensure_ascii=False, indent=2), encoding="utf-8"
)
columns = [
"video_id", "description", "share_url", "author", "author_id",
"created_at", "views", "likes", "comments", "collected_at"
]
with open("data/videos.csv", "w", newline="", encoding="utf-8") as file:
writer = csv.DictWriter(file, fieldnames=columns)
writer.writeheader()
for item in unique.values():
author = item.get("author") or {}
stats = item.get("statistics") or {}
created = item.get("create_time")
writer.writerow({
"video_id": item.get("aweme_id"),
"description": item.get("desc"),
"share_url": item.get("share_url"),
"author": author.get("nickname"),
"author_id": author.get("uid"),
"created_at": created,
"views": stats.get("play_count"),
"likes": stats.get("digg_count"),
"comments": stats.get("comment_count"),
"collected_at": stamp,
})
print(f"Збережено рядків: {len(unique)}")
Установити залежність можна командою python -m pip install requests. Якщо поле відсутнє в конкретному записі, код залишає відповідну комірку порожньою. Для показників це принципово: порожнє значення означає, що поле не надійшло, і не підмінюється нулем.
Як перетворити CSV на корисний список запитань
Перший етап — фільтр за вмістом опису. Можна шукати слова на кшталт «як», «чому», «не працює», назву моделі й характерні назви деталей. Такий фільтр створює чергу для редакторської перевірки, але сам собою не визначає намір автора: згадка бренду може бути оглядом, жартом або запитанням про сумісність.
Для тематичного групування передавайте класифікатору лише необхідні текстові поля: опис і, якщо це доречно для завдання, знеособлений ідентифікатор запису. Попросіть повернути фіксовані категорії, наприклад «перше ввімкнення», «чищення», «сумісність», «несправність» і «покупка». Зберігайте вихідний опис поруч із категорією, щоб працівник міг перевірити присвоєння та виправити помилку.
Робочий звіт може містити тему, кількість знайдених прикладів, посилання на кілька показових відео й окрему колонку «перевірено людиною». Кількість прикладів у зібраному наборі описує результати цього запиту й періоду збору; вона не дорівнює частці всіх покупців, які стикаються з проблемою.
Пагінація та регулярний запуск
Якщо потрібна наступна сторінка результатів, у документації параметр прокручування зазначено як cursor: передавайте значення курсора з попередньої відповіді в наступний запит. Вважайте його непрозорим токеном і припиняйте обхід, коли у відповіді більше немає результатів або API повідомляє, що наступної сторінки немає. Для обмеженого пілотного запуску варто почати з одного запиту, перевірити склад результатів і лише потім додавати пагінацію.
Щоб регулярно збирати дані, запускайте скрипт за розкладом через планувальник операційної системи або CI. Для кожного запуску зберігайте окремий вихідний JSON і додавайте до таблиці час збору. Коли накопичиться історія, усувайте дублікати записів за ID відео, але зберігайте повторні знімки окремо, якщо завдання передбачає відстеження змін лічильників. Порівнювати лічильники має сенс, лише якщо для того самого запису є кілька знімків.
Зберігайте ключ у менеджері секретів CI або змінній середовища, обмежте доступ до архіву й установіть внутрішній термін зберігання. Перед передаванням матеріалів у систему класифікації перевірте, які поля їй справді потрібні. Це зменшує зайве копіювання даних користувачів і спрощує контроль доступу.
Який результат отримає команда
Після запуску у вас буде архів вихідної відповіді та CSV із знайденими відеозаписами й доступними полями. Команда підтримки зможе перевіряти посилання й збирати повторювані запитання; маркетинг — бачити формулювання, якими аудиторія описує свої потреби; аналітик — повторювати збір і порівнювати спостереження за різні дати.

Для початку сформулюйте вузький запит із назвою продукту й конкретною проблемою, вручну перевірте 20–30 знайдених записів і уточніть словник категорій. Потім можна додати кілька тематичних запитів, розклад і експорт у таблицю чи базу даних. Можливості маршруту й параметри наведено в описі TikTok Scraper API; перш ніж створювати ширший моніторинг, перевірте вибраний запит.