jsonscraper
Рынки
К журналу

Как выявить повторяющиеся вопросы о продукте в TikTok

Соберите публичные видео по нескольким запросам, объедините их и превратите найденные формулировки в очередь для поддержки или контент-команды.

Редакционная политика Сообщить об ошибке

Если покупатели задают один и тот же вопрос в нескольких TikTok-видео, команде поддержки полезно получить список исходных роликов и формулировок, которые можно проверить. Начать можно со сбора результатов поиска по нескольким запросам, объединения по ID видео и передачи выборки на ручную разметку.

Ниже — Python-сценарий, который собирает возвращённые результаты и создаёт CSV со ссылками, описаниями роликов и поисковыми фразами, по которым найден каждый ролик. Он помогает увидеть пересечения между поисками; сам по себе он не определяет семантически похожие вопросы. Это решение принимает специалист или отдельный классификатор с последующей проверкой.

Какой вопрос должен решить сбор

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

Article: Как выявить повторяющиеся вопросы о продукте в TikTok
Summary: Показываем, как с помощью TikTok Scraper API получить видео по нескольким поисковым фразам, извлечь подписи и ссылки, убрать дубли и сформировать выборку для проверки повторяющихся вопросов — без подмены отсутствующих метрик нулями.
Image role: cover — the central idea
Section: Какой вопрос должен решить сбор
Visual subject: Editorial still life, a practical paper-based map of public short-video research: several video-link
Ссылки на публикации помогают проверить контекст и вручную сгруппировать подтверждённые вопросы.© 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. Ключ читается из переменной окружения и не выводится.

Article: Как выявить повторяющиеся вопросы о продукте в TikTok
Summary: Показываем, как с помощью TikTok Scraper API получить видео по нескольким поисковым фразам, извлечь подписи и ссылки, убрать дубли и сформировать выборку для проверки повторяющихся вопросов — без подмены отсутствующих метрик нулями.
Image role: supporting illustration 2 — a different specific aspect
Section: Готовый сборщик на Python
Visual subject: Infographic in Russian showing verified workflow steps: three keyword querie
Схема показывает две формы элементов поискового ответа и путь нормализации до 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, которого ещё нет в журнале. Это логика внешней оркестрации, а не функция endpoint поиска. Команда получает очередь ссылок для анализа, а не готовое заключение о причинах поведения покупателей.

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

Полезный итог — проверяемый набор видео, связанных с конкретными поисковыми выражениями. Он помогает выбрать материал для ручного разбора и сохранить источники каждой принятой в контент-план темы.

Персоны

Для этой статьи персоны пока не указаны.

Читайте дальшеКак анализировать темы TikTok-креаторов: практический пайплайн на Python
Читать следующую статью

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

Изучайте API социальных данных jsonscraper, тестируйте запросы и создавайте новые процессы.

Смотреть API