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

TikTok: перетворіть результати пошуку на щотижневий список тем для підтримки

Сценарій Python збирає знайдені відео, нормалізує обидва формати відповіді API та формує таблицю для ручного маркування запитань клієнтів.

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

Команді підтримки потрібен список публічних відео TikTok, у яких люди обговорюють незрозумілу функцію або ставлять запитання про продукт. Ручний пошук складно повторювати однаково, а відповіді API пошуку можуть зберігати відео в різних частинах JSON. Нижче наведено мінімальний сценарій Python, який запитує результати за ключовими словами, об’єднує обидві структури, усуває дублікати за ID та зберігає знайдені записи у CSV.

Що дасть сценарій

На виході ви отримаєте таблицю з ID відео, посиланням, описом, часом публікації, автором і доступними лічильниками реакцій. Команда підтримки або маркетингу зможе вручну позначити теми, на які потрібно відповісти, для яких слід оновити інструкцію або які варто перевірити у власній CRM. Таблиця відображає саме результати API за заданими запитами; вважайте її робочою вибіркою для аналізу, а не вичерпним каталогом усіх обговорень.

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

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

Що запитувати та як побудована відповідь

Для пошуку відео jsonscraper документує GET-маршрут /searchVideo на хості https://tiktok.evelode.com. Обов’язковий параметр — keyword; також можна передати count, регіон, сортування, період публікації та курсор наступної сторінки. Наприклад, пошук можна повторювати за кількома заздалегідь визначеними фразами: назвою функції, поширеним формулюванням помилки й коротким запитанням про налаштування. Параметри та допустимі значення наведено у довіднику TikTok API.

У пошуку є важлива для парсера особливість: масив aweme_list може бути порожнім, тоді як знайдені об’єкти містяться в search_item_list, а в кожному з них — aweme_info. Тому наведений нижче обробник перевіряє обидві форми. Приклад відповіді та поля, зафіксовані під час перевірки 25 жовтня 2026 року, наведено в первинній специфікації jsonscraper; поля статистики можуть бути відсутні, тож код не підставляє вигаданих значень.

Підготуйте ключ і список запитів

Збережіть ключ у змінній середовища JSONSCRAPER_TIKTOK_LICENSE_KEY, а не у вихідному файлі. У командній оболонці Linux або macOS це можна зробити так:

export JSONSCRAPER_TIKTOK_LICENSE_KEY="ваш_ключ"

Установіть бібліотеку для запитів і підготуйте файл queries.txt з одним пошуковим виразом у кожному рядку, наприклад назва продукту налаштування і назва функції не працює. Формулювання слід добирати відповідно до мови аудиторії та зберігати в окремому списку, щоб щотижневі вивантаження порівнювали ті самі запити.

python -m pip install requests

Зберіть і нормалізуйте знайдені відео

Приклад сумісний із Python 3.8+. Він виконує один запит для кожної фрази з обмеженням кількості результатів, перевіряє HTTP-помилки й статус у відповіді, а потім зберігає лише поля, які справді наявні. Повторні збіги об’єднуються за aweme_id, а всі запити, за якими знайдено відео, записуються в поле keywords. Окреме поле collected_at_utc фіксує час отримання даних для порівняння з наступними запусками.

Стаття: TikTok: перетворіть результати пошуку на щотижневий список тем для підтримки
Короткий опис: Налаштуйте регулярний збір відео TikTok за запитами про продукт і отримуйте дедуплікований CSV із посиланнями, описами та доступними публічними показниками. Такий список допоможе команді підтримки розібрати теми, які варто перевірити за наявними матеріалами й зверненнями клієнтів.
Роль зображення: додаткова ілюстрація 2 — інший конкретний аспект
Розділ: Зберіть і нормалізуйте знайдені відео
Схема показує обидві структури відповіді пошуку, об’єднання пошукових міток і фіксацію часу збору перед вивантаженням у CSV.© jsonscraper · ілюстрацію створено за допомогою ШІ
import csv
import os
import sys
from datetime import datetime, timezone

import requests

BASE_URL = "https://tiktok.evelode.com/searchVideo"
API_KEY = os.environ.get("JSONSCRAPER_TIKTOK_LICENSE_KEY")

if not API_KEY:
    raise SystemExit("Установіть JSONSCRAPER_TIKTOK_LICENSE_KEY")


def get_items(tiktok):
    """Витягує відео з обох задокументованих форм відповіді пошуку."""
    items = list(tiktok.get("aweme_list") or [])
    for entry in tiktok.get("search_item_list") or []:
        info = entry.get("aweme_info") if isinstance(entry, dict) else None
        if info:
            items.append(info)
    return items


with open("queries.txt", encoding="utf-8") as query_file:
    queries = [line.strip() for line in query_file if line.strip()]

collected_at = datetime.now(timezone.utc).isoformat()
videos = {}

for keyword in queries:
    response = requests.get(
        BASE_URL,
        params={
            "license_key": API_KEY,
            "keyword": keyword,
            "count": 30,
            "region": "US",
            "sort_by": "relevance",
        },
        timeout=30,
    )
    response.raise_for_status()
    payload = response.json()

    if payload.get("status") != "ok":
        print("Статус API для запиту неуспішний:", keyword, file=sys.stderr)
        continue

    tiktok = payload.get("tiktok") or {}
    for item in get_items(tiktok):
        video_id = item.get("aweme_id")
        if not video_id:
            continue

        if video_id not in videos:
            author = item.get("author") or {}
            stats = item.get("statistics") or {}
            videos[video_id] = {
                "aweme_id": video_id,
                "keywords": [keyword],
                "description": item.get("desc"),
                "share_url": item.get("share_url"),
                "create_time": item.get("create_time"),
                "author": author.get("unique_id") or author.get("nickname"),
                "play_count": stats.get("play_count"),
                "digg_count": stats.get("digg_count"),
                "comment_count": stats.get("comment_count"),
                "share_count": stats.get("share_count"),
                "collected_at_utc": collected_at,
            }
        elif keyword not in videos[video_id]["keywords"]:
            videos[video_id]["keywords"].append(keyword)

columns = [
    "aweme_id", "keywords", "description", "share_url", "create_time",
    "author", "play_count", "digg_count", "comment_count", "share_count",
    "collected_at_utc",
]
with open("tiktok_support_review.csv", "w", newline="", encoding="utf-8-sig") as output:
    writer = csv.DictWriter(output, fieldnames=columns)
    writer.writeheader()
    for video in videos.values():
        row = dict(video)
        row["keywords"] = " | ".join(row["keywords"])
        writer.writerow(row)

print("Збережено знайдених унікальних відео:", len(videos))

Запит надсилається через параметр params, тому бібліотека коректно кодує текстові фрази в URL. Ключ при цьому передається в параметрі запиту, як зазначено в документації; не виводьте повний URL запиту в журнал застосунку. Для діагностики зберігайте HTTP-код відповіді, назву пошукової фрази та час запуску, але не записуйте секрети й персональні дані, які не потрібні для завдання.

Як читати CSV без хибних висновків

Стовпець keywords містить усі фрази, за якими було знайдено відео; collected_at_utc допомагає відрізнити час публікації від часу збору. ID зручний для усунення дублікатів, а посилання — для перевірки людиною. Порожній лічильник означає, що поле було відсутнє в конкретній відповіді, а не те, що його значення дорівнює нулю.

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

Запустіть збір за розкладом

Спочатку запускайте сценарій вручну й перевірте кілька рядків і посилань. Потім додайте його до cron, завдання CI або сценарію автоматизації, який уміє запускати процес Python. Для регулярних звітів зберігайте кожне вивантаження або додавайте рядки до сховища з унікальним ключем відео й датою знімка. Так команда зможе відрізнити нові знайдені публікації від повторних спостережень і відстежувати, як між запусками змінюються доступні лічильники.

Параметр cursor призначений для прокручування видачі; його потрібно передавати з відповіді попереднього виклику. У наведеному мінімальному варіанті пагінацію навмисно не включено: обмежений набір запитів простіше перевіряти й відтворювати. Якщо додасте сторінки, зберігайте курсор без змін, зупиняйтеся за прапорцем наявності продовження та встановіть верхню межу кількості викликів за один запуск. Запит API повертає вибірку; не трактуйте кількість рядків як повне охоплення TikTok.

Практичні обмеження використання

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

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

Люди

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

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

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

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

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