ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Workflows
  3. Analyse quotidienne des sentiments des commentaires TikTok
Workflow

Analyse quotidienne des sentiments des commentaires TikTok

Surveillance quotidienne des sentiments des commentaires TikTok pour les mentions de marque. Suivez les mentions positives, négatives et concurrentes dans les commentaires vidéo.

Commencez gratuitementDocumentation API

Aperçu

Ce workflow surveille quotidiennement les commentaires des vidéos TikTok pour les mentions de marque et les signaux de sentiment. Il recherche des vidéos mentionnant votre marque, récupère leurs commentaires, classe les mentions en positives, négatives ou neutres, et suit les mentions des concurrents. Le résultat est un rapport de sentiment quotidien qui remplace les outils d'écoute sociale coûtant plus de 500 $/mois.

Déclencheur

Planification Cron (quotidien à 9h00 UTC)

Planification

S'exécute quotidiennement à 9h00 UTC

Étapes du workflow

1

Rechercher des vidéos liées à la marque

Utiliser l'API Scavio TikTok search/videos pour trouver des vidéos récentes mentionnant votre marque ou produit.

2

Récupérer les commentaires pour chaque vidéo

Appeler l'endpoint video/comments pour chaque vidéo pertinente afin d'obtenir des données structurées des commentaires.

3

Filtrer les mentions de marque

Analyser le texte des commentaires pour les mots-clés de marque, les noms de concurrents et les indicateurs de sentiment.

4

Classifier le sentiment

Utiliser la correspondance de mots-clés pour classer chaque mention comme positive, négative ou neutre en fonction des mots contextuels.

5

Générer un rapport de sentiment quotidien

Compiler le nombre de mentions, la répartition des sentiments et les commentaires notables dans un rapport quotidien.

Implémentation Python

Python
import requests
import json
from pathlib import Path
from datetime import datetime

API_KEY = "your_scavio_api_key"
BASE_URL = "https://api.scavio.dev/api/v1/tiktok"
BRAND = "yourbrand"
COMPETITORS = ["competitor1", "competitor2"]
POSITIVE_WORDS = ["love", "amazing", "best", "great", "awesome", "perfect", "recommend"]
NEGATIVE_WORDS = ["hate", "worst", "terrible", "awful", "broken", "scam", "avoid", "disappointing"]

def search_videos(query: str) -> list[dict]:
    res = requests.post(
        f"{BASE_URL}/search/videos",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={"query": query},
        timeout=15,
    )
    res.raise_for_status()
    return res.json().get("videos", [])

def get_comments(video_id: str) -> list[dict]:
    res = requests.post(
        f"{BASE_URL}/video/comments",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={"video_id": video_id},
        timeout=15,
    )
    res.raise_for_status()
    return res.json().get("comments", [])

def classify_sentiment(text: str) -> str:
    lower = text.lower()
    pos = sum(1 for w in POSITIVE_WORDS if w in lower)
    neg = sum(1 for w in NEGATIVE_WORDS if w in lower)
    if pos > neg:
        return "positive"
    if neg > pos:
        return "negative"
    return "neutral"

def run():
    videos = search_videos(BRAND)
    mentions = {"positive": [], "negative": [], "neutral": [], "competitor": []}

    for video in videos[:20]:
        video_id = video.get("id", "")
        if not video_id:
            continue
        comments = get_comments(video_id)
        for comment in comments:
            text = comment.get("text", "")
            lower = text.lower()
            if BRAND.lower() in lower:
                sentiment = classify_sentiment(text)
                mentions[sentiment].append({
                    "text": text[:200],
                    "likes": comment.get("likes", 0),
                    "video_id": video_id,
                })
            for comp in COMPETITORS:
                if comp.lower() in lower:
                    mentions["competitor"].append({"text": text[:200], "competitor": comp, "video_id": video_id})

    date = datetime.utcnow().strftime("%Y-%m-%d")
    report = {
        "date": date,
        "videos_scanned": min(len(videos), 20),
        "positive": len(mentions["positive"]),
        "negative": len(mentions["negative"]),
        "neutral": len(mentions["neutral"]),
        "competitor_mentions": len(mentions["competitor"]),
        "top_positive": sorted(mentions["positive"], key=lambda x: x["likes"], reverse=True)[:5],
        "top_negative": sorted(mentions["negative"], key=lambda x: x["likes"], reverse=True)[:5],
    }
    Path(f"tiktok_sentiment_{date}.json").write_text(json.dumps(report, indent=2))
    print(f"Sentiment: +{report['positive']} / -{report['negative']} / ~{report['neutral']} | Competitor: {report['competitor_mentions']}")

if __name__ == "__main__":
    run()

Implémentation JavaScript

JavaScript
const API_KEY = "your_scavio_api_key";
const BASE_URL = "https://api.scavio.dev/api/v1/tiktok";
const BRAND = "yourbrand";
const POSITIVE = ["love", "amazing", "best", "great", "awesome"];
const NEGATIVE = ["hate", "worst", "terrible", "awful", "broken"];

async function searchVideos(query) {
  const res = await fetch(`${BASE_URL}/search/videos`, { method: "POST", headers: { Authorization: `Bearer ${API_KEY}`, "content-type": "application/json" }, body: JSON.stringify({ query }) });
  return (await res.json()).videos ?? [];
}

async function getComments(videoId) {
  const res = await fetch(`${BASE_URL}/video/comments`, { method: "POST", headers: { Authorization: `Bearer ${API_KEY}`, "content-type": "application/json" }, body: JSON.stringify({ video_id: videoId }) });
  return (await res.json()).comments ?? [];
}

const videos = await searchVideos(BRAND);
let pos = 0, neg = 0, neu = 0;
for (const v of videos.slice(0, 20)) {
  const comments = await getComments(v.id ?? "");
  for (const c of comments) {
    const lower = (c.text ?? "").toLowerCase();
    if (!lower.includes(BRAND.toLowerCase())) continue;
    const p = POSITIVE.filter((w) => lower.includes(w)).length;
    const n = NEGATIVE.filter((w) => lower.includes(w)).length;
    if (p > n) pos++; else if (n > p) neg++; else neu++;
  }
}
console.log(`Sentiment: +${pos} / -${neg} / ~${neu}`);

Plateformes utilisées

TikTok

Découverte de vidéos tendance, créateurs et produits

Questions fréquentes

Ce workflow surveille quotidiennement les commentaires des vidéos TikTok pour les mentions de marque et les signaux de sentiment. Il recherche des vidéos mentionnant votre marque, récupère leurs commentaires, classe les mentions en positives, négatives ou neutres, et suit les mentions des concurrents. Le résultat est un rapport de sentiment quotidien qui remplace les outils d'écoute sociale coûtant plus de 500 $/mois.

Ce workflow utilise un planification cron (quotidien à 9h00 utc). S'exécute quotidiennement à 9h00 UTC.

Ce workflow utilise les plateformes Scavio suivantes : tiktok. Chaque plateforme est appelée via le même point de terminaison API unifié.

Oui. L'offre gratuite de Scavio comprend 50 crédits à l'inscription sans carte bancaire. Cela suffit pour tester et valider ce workflow avant de le passer à l'échelle.

Analyse quotidienne des sentiments des commentaires TikTok

Surveillance quotidienne des sentiments des commentaires TikTok pour les mentions de marque. Suivez les mentions positives, négatives et concurrentes dans les commentaires vidéo.

Obtenez votre clé APILire la documentation
ScavioScavio

API de recherche en temps réel pour agents IA. Recherchez sur toutes les plateformes, pas seulement Google.

Produit

  • Fonctionnalités
  • Tarifs
  • Tableau de bord
  • Affiliés

Développeurs

  • Documentation
  • Référence API
  • Démarrage rapide
  • Intégration MCP
  • SDK Python

Alternatives

  • Alternative à Tavily
  • Alternative à SerpAPI
  • Alternative à Firecrawl
  • Alternative à Exa

Outils

  • Formateur JSON
  • cURL vers code
  • Compteur de jetons
  • Tous les outils

© 2026 Scavio. Tous droits réservés.

Featured on TAAFT
Conditions d'utilisationPolitique de confidentialité