Reddit est l'endroit où se déroulent les discussions authentiques sur les produits. Les utilisateurs partagent des opinions non filtrées sur les outils, services et entreprises, sans le vernis marketing des canaux officiels. Surveiller ces mentions vous donne un avertissement précoce des réclamations clients, des retours sur les produits et des comparaisons concurrentielles. Ce tutoriel construit un système de surveillance en temps réel de Reddit qui recherche les mentions de marque, suit les nouveaux posts, les note en fonction de l'engagement et génère des alertes exploitables.
Prérequis
- Python 3.8 ou supérieur
- Bibliothèque requests installée
- Une clé API Scavio
- Noms de marque et noms de produits à surveiller
Parcours
Étape 1: Définir les cibles de surveillance
Listez toutes les variantes de nom de marque, noms de produits et noms de concurrents à suivre. Incluez les fautes d'orthographe courantes.
MONITOR = {
"brand": ["mycompany", "my-company", "mycompany.io"],
"product": ["myproduct", "my product"],
"competitors": ["competitor-a", "competitor-b"],
}Étape 2: Rechercher chaque mot-clé sur Reddit
Interrogez le point de terminaison de recherche Reddit de Scavio pour chaque mot-clé, trié par date pour capter les publications récentes.
def search_reddit(keyword: str) -> list[dict]:
r = requests.post(
"https://api.scavio.dev/api/v1/reddit/search",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"query": keyword, "sort": "new"},
timeout=30
)
r.raise_for_status()
return r.json()["data"]["posts"]Étape 3: Noter les publications en fonction de l'engagement
Calculez un score d'engagement basé sur les votes positifs, le nombre de commentaires et le niveau d'activité du subreddit.
def engagement_score(post: dict) -> int:
score = int(post.get("score", 0) or 0)
comments = int(post.get("num_comments", 0) or 0)
return score + comments * 3Étape 4: Générer un rapport d'alerte
Combinez toutes les mentions, dédupliquez, triez par score d'engagement et générez une liste d'alertes classées par priorité.
def monitor_all() -> list[dict]:
all_posts = []
seen_ids = set()
for category, keywords in MONITOR.items():
for kw in keywords:
posts = search_reddit(kw)
for p in posts:
if p["id"] not in seen_ids:
seen_ids.add(p["id"])
p["category"] = category
p["matched_keyword"] = kw
p["engagement"] = engagement_score(p)
all_posts.append(p)
return sorted(all_posts, key=lambda x: x["engagement"], reverse=True)Exemple Python
import os
import requests
API_KEY = os.environ["SCAVIO_API_KEY"]
KEYWORDS = ["scavio", "scavio api", "scavio.dev"]
def search(kw: str) -> list[dict]:
r = requests.post("https://api.scavio.dev/api/v1/reddit/search",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"query": kw, "sort": "new"}, timeout=30)
r.raise_for_status()
return r.json()["data"]["posts"]
def monitor():
seen = set()
all_posts = []
for kw in KEYWORDS:
for p in search(kw):
if p["id"] not in seen:
seen.add(p["id"])
all_posts.append(p)
all_posts.sort(key=lambda x: int(x.get("score", 0) or 0), reverse=True)
for p in all_posts[:10]:
print(f"[{p.get('score', 0):>4}] r/{p['subreddit']}: {p['title']}")
print(f" {p['url']}")
if __name__ == "__main__":
monitor()Exemple JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
const KEYWORDS = ["scavio", "scavio api"];
async function search(kw) {
const r = await fetch("https://api.scavio.dev/api/v1/reddit/search", {
method: "POST",
headers: { Authorization: `Bearer ${API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({ query: kw, sort: "new" })
});
return (await r.json()).data.posts;
}
async function main() {
const seen = new Set();
const posts = [];
for (const kw of KEYWORDS) {
for (const p of await search(kw)) {
if (!seen.has(p.id)) { seen.add(p.id); posts.push(p); }
}
}
posts.sort((a, b) => (b.score || 0) - (a.score || 0));
posts.slice(0, 10).forEach(p => console.log(`[${p.score}] r/${p.subreddit}: ${p.title}`));
}
main().catch(console.error);Sortie attendue
[ 47] r/SaaS: Has anyone used scavio for SERP data? Review inside
https://reddit.com/r/SaaS/comments/...
[ 23] r/devtools: scavio vs serpapi for building AI agents
https://reddit.com/r/devtools/comments/...
[ 12] r/webdev: Scavio API - real-time search for developers
https://reddit.com/r/webdev/comments/...