jsonscraper
Ринки
До журналу

Як виявити повторювані запитання про продукт у TikTok

Зберіть публічні відео за кількома запитами, об’єднайте їх і перетворіть знайдені формулювання на чергу для служби підтримки або контент-команди.

Редакційна політика Повідомити про помилку

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

Нижче наведено сценарій Python, який збирає отримані результати й створює CSV-файл із посиланнями, описами роликів і пошуковими фразами, за якими знайдено кожен ролик. Він допомагає побачити перетини між результатами пошуку, але сам по собі не визначає семантично схожі запитання. Це має зробити фахівець або окремий класифікатор із подальшою перевіркою.

Яке завдання має розв’язати збір даних

Припустімо, команда продає термокухоль і хоче з’ясувати, про що запитують у публічних відео. Запит «термокухоль протікає» може повертати відео зі скаргами, оглядами та інструкціями. Запит «як мити термокухоль» дасть іншу вибірку. Кілька фраз формують робочий набір прикладів для аналізу службою підтримки та планування контенту.

Стаття: Як виявити повторювані запитання про продукт у TikTok
Підсумок: Показуємо, як за допомогою TikTok Scraper API отримати відео за кількома пошуковими фразами, витягти описи й посилання, усунути дублікати та сформувати вибірку для перевірки повторюваних запитань — не підмінюючи відсутні метрики нулями.
Роль зображення: обкладинка — центральна ідея
Розділ: Яке завдання має розв’язати збір даних
Візуальний об’єкт: редакційний натюрморт, практична карта дослідження публічних коротких відео на папері: кілька посилань на відео
Посилання на публікації допомагають перевірити контекст і вручну згрупувати підтверджені запитання.© jsonscraper · створено за допомогою ШІ

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

Такий процес стане у пригоді розробнику, який автоматизує збір даних, і аналітику, якому потрібен відтворюваний набір для аналізу. Зв’язок з оригінальним роликом дає змогу перевірити висновок до того, як змінювати інструкцію чи готувати новий матеріал.

Які дані повертає пошук

Маршрут /searchVideo і його параметри перелічено в довіднику TikTok API. Обов’язковий параметр — keyword; серед додаткових зазначено count, cursor, region, date_posted, sort_by і cache_timeout. Для автентифікації запиту використовується параметр license_key. У прикладі нижче застосовано пошукову фразу та розмір сторінки.

Перевірена форма відповіді містить верхньорівневий status та об’єкт tiktok. Елементи можуть містити ID, опис, посилання, дані про автора та статистику, зокрема кількість переглядів і коментарів. Деякі поля можуть бути відсутні: тому у CSV такі значення залишаються порожніми, а не перетворюються на нуль.

Пошукова відповідь підтримує дві структури: елементи можуть міститися в aweme_list або всередині search_item_list[].aweme_info. Нормалізатор обробляє обидва варіанти. Код також перевіряє наявність об’єкта tiktok, щоб не сприйняти неочікувану форму відповіді як успішний пошук із порожніми результатами.

Готовий збирач на Python

Приклад сумісний із Python 3.8+ і бібліотекою requests. Він надсилає по одному запиту для кожної фрази, перевіряє HTTP-відповідь і статус API, об’єднує записи за ID, зберігає пошукові фрази, що збіглися, і записує дані у CSV. Ключ зчитується зі змінної середовища й не виводиться.

Стаття: Як виявити повторювані запитання про продукт у TikTok
Підсумок: Показуємо, як за допомогою TikTok Scraper API отримати відео за кількома пошуковими фразами, витягти описи й посилання, усунути дублікати та сформувати вибірку для перевірки повторюваних запитань — не підмінюючи відсутні метрики нулями.
Роль зображення: допоміжна ілюстрація 2 — інший конкретний аспект
Розділ: Готовий збирач на Python
Візуальний об’єкт: інфографіка українською мовою з перевіреними етапами процесу: три запити за ключовими словами
Схема показує дві форми елементів пошукової відповіді та шлях нормалізації до CSV для ручної перевірки.© jsonscraper · ілюстрація, створена за допомогою ШІ
import csv
import os
import sys
import requests

BASE_URL = "https://tiktok.evelode.com/searchVideo"
KEY = os.environ.get("JSONSCRAPER_TIKTOK_LICENSE_KEY")
QUERIES = [
    "термокружка протекает",
    "как мыть термокружку",
    "термокружка не держит тепло",
]

if not KEY:
    sys.exit("Задайте JSONSCRAPER_TIKTOK_LICENSE_KEY")

def extract_items(payload):
    data = payload.get("tiktok")
    if not isinstance(data, dict):
        raise RuntimeError("В ответе отсутствует объект tiktok")

    items = list(data.get("aweme_list") or [])
    for entry in data.get("search_item_list") or []:
        video = entry.get("aweme_info") if isinstance(entry, dict) else None
        if isinstance(video, dict):
            items.append(video)
    return items

rows = {}

for query in QUERIES:
    response = requests.get(
        BASE_URL,
        params={"license_key": KEY, "keyword": query, "count": 20},
        timeout=30,
    )
    response.raise_for_status()
    payload = response.json()
    if payload.get("status") != "ok":
        raise RuntimeError("API вернул статус, отличный от ok")

    for item in extract_items(payload):
        video_id = item.get("aweme_id")
        if not video_id:
            continue
        stats = item.get("statistics") or {}
        author = item.get("author") or {}
        row = rows.setdefault(video_id, {
            "video_id": video_id,
            "description": item.get("desc"),
            "share_url": item.get("share_url"),
            "author": author.get("nickname"),
            "play_count": stats.get("play_count"),
            "comment_count": stats.get("comment_count"),
            "matched_queries": set(),
        })
        row["matched_queries"].add(query)

fields = ["video_id", "description", "share_url", "author",
          "play_count", "comment_count", "matched_queries"]
with open("tiktok_questions.csv", "w", newline="", encoding="utf-8-sig") as file:
    writer = csv.DictWriter(file, fieldnames=fields)
    writer.writeheader()
    for row in rows.values():
        output = dict(row)
        output["matched_queries"] = " | ".join(sorted(row["matched_queries"]))
        writer.writerow(output)

Установіть залежність командою python -m pip install requests, задайте JSONSCRAPER_TIKTOK_LICENSE_KEY у середовищі процесу та запустіть файл. Не записуйте ключ у вихідний код, CSV чи журнали. Для запуску за розкладом виконуйте сценарій у захищеному середовищі, де змінна доступна завданню.

Як перетворити CSV на чергу запитань

Після збору перегляньте ролики й вручну виокремте фактичні запитання, а потім згрупуйте підтверджені формулювання за темами, наприклад «герметичність», «догляд» або «збереження тепла». Пошукова фраза допомагає знайти публікацію, але опис відео та збіг запитів не замінюють перевірки контексту.

Якщо ви використовуєте мовну модель, передайте їй опис і попросіть запропонувати коротку тематичну мітку та можливе запитання. Зберігайте поруч вихідний текст, посилання й результат моделі, щоб фахівець міг перевірити підстави для класифікації. Не видавайте запропоноване моделлю формулювання за дослівне запитання, якщо його немає в описі.

Кількість знайдених записів описує лише результати, повернуті для конкретних запитів. Вона не вимірює загальний обсяг обговорень чи попиту. Для внутрішнього звіту зберігайте дату запуску, вихідну фразу, ID та необроблену відповідь API. Так можна порівнювати результати повторних запусків і окремо позначати нові ID.

У прикладі навмисно немає автоматичної пагінації. Для наступних сторінок документація зазначає параметр cursor: його значення беруть із попередньої відповіді й передають далі без перетворення. Одна сторінка містить лише отриману порцію результатів, а не весь пошуковий список.

Що побачить команда

Файл tiktok_questions.csv містить один рядок для кожного унікального ID, знайденого за заданими фразами. Стовпець matched_queries показує, за якими запитами трапився цей ролик. Це зручний спосіб виокремити перетини між результатами пошуку та вибрати приклади для перевірки; класифікацію запитань потрібно виконати окремо.

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

Параметри маршрутів наведено в документації API; спробувати запит можна на демомайданчику TikTok API. Перед регулярним збором перевірте фактичну форму відповіді та зберігайте значення, потрібні для переходу від зведення до конкретного ролика. Опис продукту наведено на сторінці TikTok Scraper API.

Корисний результат — перевірюваний набір відео, пов’язаних із конкретними пошуковими фразами. Він допомагає вибрати матеріали для ручного аналізу та зберегти джерела кожної теми, включеної до контент-плану.

Люди

Для цієї статті ще немає людей.

Продовжуйте читатиЯк аналізувати теми TikTok-креаторів: практичний пайплайн на Python
Читайте наступну статтю

Перетворіть прочитане на робочу інтеграцію

Досліджуйте API соціальних даних jsonscraper, тестуйте запити й створюйте нові процеси.

Переглянути API