jsonscraper
Mercados
Voltar ao jornal

TikTok: transforme resultados de busca em uma lista semanal de temas para o suporte

Um script em Python coleta vídeos encontrados, normaliza duas estruturas de resposta da API e cria uma planilha para classificação manual de dúvidas de clientes.

Política editorial Comunique um erro

A equipe de suporte precisa de uma lista de vídeos públicos do TikTok em que as pessoas discutem uma função pouco clara ou fazem perguntas sobre o produto. A busca manual é difícil de repetir de forma consistente, e as respostas da API de busca podem armazenar vídeos em diferentes partes do JSON. Abaixo está um script básico em Python que consulta resultados por palavras-chave, combina as duas estruturas, remove duplicatas por ID e salva os registros encontrados em um CSV.

O que o script vai produzir

O resultado será uma tabela com o ID do vídeo, o link, a descrição, o horário de publicação, o autor e os contadores de interação disponíveis. A equipe de suporte ou de marketing poderá marcar manualmente quais temas exigem uma resposta, uma atualização das instruções ou uma verificação no próprio CRM. A tabela reflete apenas os resultados retornados pela API para as consultas definidas; trate-a como uma amostra de trabalho para análise, não como um catálogo completo de todas as discussões.

Artigo: TikTok: transforme resultados de busca em uma lista semanal de temas para o suporte
Resumo: Configure a coleta recorrente de vídeos do TikTok por consultas relacionadas ao produto e gere um CSV sem duplicatas, com links, descrições e métricas públicas disponíveis. Essa lista ajuda a equipe de suporte a analisar temas que merecem ser verificados nos materiais existentes e nas solicitações dos clientes.
Papel da imagem: capa — a ideia central
Seção: O que o script vai produzir
Assunto visual: foto editorial, física
Os vídeos encontrados repetidamente são reunidos em uma fila verificável para análise de temas de suporte.© jsonscraper · criado com IA

O script resolve a coleta e a classificação inicial. Ele não determina automaticamente se uma descrição é uma dúvida, uma reclamação ou uma piada: é melhor adicionar essa classificação após uma revisão manual ou com um classificador separado, registrando o texto original e o motivo da decisão.

O que consultar e como a resposta é estruturada

Para buscar vídeos, a jsonscraper documenta a rota GET /searchVideo no host https://tiktok.evelode.com. O parâmetro obrigatório é keyword; é possível informar count, região, ordenação, período de publicação e o cursor da página seguinte. Por exemplo, a busca pode ser repetida para várias frases predefinidas: o nome de uma função, uma formulação comum de erro e uma pergunta breve sobre configuração. Os parâmetros e seus valores permitidos estão listados na documentação da API do TikTok.

Há uma particularidade importante para o analisador: o array aweme_list pode estar vazio, enquanto os objetos encontrados ficam em search_item_list, cada um contendo aweme_info. Por isso, o processador abaixo verifica as duas formas. Um exemplo de resposta e os campos observados na verificação de 25 de outubro de 2026 constam na especificação primária da jsonscraper; os campos de estatísticas podem estar ausentes, por isso o código não inventa valores.

Prepare a chave e a lista de consultas

Armazene a chave na variável de ambiente JSONSCRAPER_TIKTOK_LICENSE_KEY, e não no arquivo de código-fonte. No terminal do Linux ou macOS, faça assim:

export JSONSCRAPER_TIKTOK_LICENSE_KEY="sua_chave"

Instale a biblioteca de requisições e prepare um arquivo queries.txt com uma expressão de busca por linha, por exemplo, nome do produto configuração e nome da função não funciona. Escolha as formulações de acordo com o idioma do público e mantenha uma lista separada para que as coletas semanais comparem sempre as mesmas consultas.

python -m pip install requests

Faça a coleta e normalize os vídeos encontrados

O exemplo é compatível com Python 3.8 ou superior. Ele faz uma solicitação para cada frase, com um limite de resultados, verifica erros HTTP e o status geral e, em seguida, salva apenas os campos realmente presentes. As correspondências repetidas são combinadas por aweme_id, e todas as consultas em que um vídeo foi encontrado são registradas no campo keywords. O campo separado collected_at_utc registra o horário da coleta para permitir a comparação com execuções futuras.

Artigo: TikTok: transforme resultados de busca em uma lista semanal de temas para o suporte
Resumo: Configure a coleta recorrente de vídeos do TikTok por consultas relacionadas ao produto e gere um CSV sem duplicatas, com links, descrições e métricas públicas disponíveis. Essa lista ajuda a equipe de suporte a analisar temas que merecem ser verificados nos materiais existentes e nas solicitações dos clientes.
Papel da imagem: ilustração complementar 2 — um aspecto específico diferente
Seção: Faça a coleta e normalize os vídeos encontrados
O diagrama mostra as duas estruturas da resposta de busca, a combinação das etiquetas de consulta e o registro do horário da coleta antes da exportação para CSV.© jsonscraper · ilustração gerada por IA
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("Defina JSONSCRAPER_TIKTOK_LICENSE_KEY")


def get_items(tiktok):
    """Extrai vídeos das duas formas documentadas de resposta da busca."""
    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("Status da API malsucedido para a consulta:", 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("Total de vídeos únicos encontrados e salvos:", len(videos))

A solicitação é enviada por meio do parâmetro params, então a biblioteca codifica corretamente as frases de texto na URL. A chave fica no parâmetro de consulta, conforme descrito na documentação; não imprima a URL completa da solicitação nos registros do aplicativo. Para diagnóstico, registre o código da resposta HTTP, o nome da frase pesquisada e o horário da execução, mas exclua segredos e dados pessoais que não sejam necessários para a tarefa.

Como interpretar o CSV sem tirar conclusões indevidas

A coluna keywords contém todas as frases para as quais o vídeo foi encontrado; collected_at_utc permite diferenciar o horário de publicação do horário da coleta. O ID facilita a remoção de duplicatas, e o link permite a verificação por uma pessoa. Um contador vazio significa que o campo estava ausente na resposta específica, não que seu valor fosse zero.

Para uma primeira classificação, adicione à cópia de trabalho do CSV as colunas tema, tipo de sinal, resposta necessária e link para material interno. As opções de tema devem corresponder ao seu produto, por exemplo, instalação, pagamento, compatibilidade ou solução de problemas. Esse esquema transforma a coleta em uma fila de análise e permite verificar a decisão com base no vídeo original.

Agende a coleta

Comece executando o script manualmente e verifique algumas linhas e links. Depois, adicione-o ao cron, a uma tarefa de CI ou a um fluxo de automação capaz de executar um processo Python. Para relatórios regulares, salve cada coleta ou acrescente as linhas a um armazenamento com uma chave única para o vídeo e a data da captura. Assim, a equipe poderá diferenciar novas publicações encontradas de observações repetidas e acompanhar as mudanças nos contadores disponíveis entre as execuções.

O parâmetro cursor é previsto para percorrer os resultados e deve ser transmitido a partir da resposta da chamada anterior. A paginação foi intencionalmente omitida neste exemplo básico: um conjunto limitado de consultas é mais fácil de verificar e reproduzir. Se você adicionar páginas, armazene o cursor sem interpretá-lo, pare de acordo com o indicador de continuidade e defina um limite máximo de chamadas por execução. A solicitação à API retorna uma amostra; não interprete o número de linhas como cobertura completa do TikTok.

Limites práticos de uso

Os resultados da busca são adequados para encontrar vídeos com base em formulações já conhecidas pela equipe. Eles ajudam a reunir material para classificação, mas não substituem as solicitações recebidas, a análise do próprio site ou a verificação do contexto do vídeo. A descrição pode não conter a essência do vídeo, e as métricas disponíveis refletem o estado dos dados no momento da coleta. Registre os temas e as conclusões separadamente dos campos originais para que os funcionários possam revisar a classificação.

Antes de iniciar o monitoramento recorrente, defina quem tem acesso à coleta, por quanto tempo os dados serão armazenados e para que finalidade as informações públicas serão usadas. Armazene apenas os campos necessários para analisar o produto e prefira links para as publicações originais em vez de copiar arquivos de mídia. Para consultar e verificar as opções de integração disponíveis, consulte a página da TikTok Scraper API e a documentação da rota de busca.

Pessoas

Nenhuma pessoa listada para este artigo ainda.

Continue lendoComo verificar leads do TikTok no IG antes de enviá-los ao CRM
Leia o próximo artigo

Transforme o que lê numa integração funcional

Explore as APIs de dados sociais da jsonscraper, teste pedidos e crie o seu próximo fluxo de trabalho.

Explorar APIs