Compétence de recherche Reddit
Routage complet de la recherche Reddit via les méthodes les plus fiables. Vous savez exactement quels outils fonctionnent, lesquels ne fonctionnent pas, et quand les utiliser.
Déclencheur
/reddit-research analyze r/homelab engagement
/reddit-research what subs does u/example_user post in
/reddit-research find deleted posts in r/SUBNAME
/reddit-research discover subreddits about topic X
search reddit for discussions about X
check reddit metrics for these subreddits
Classement des méthodes — une seule route fonctionne, les autres sont mortes
Re-testé le 2026-09-19. Arctic Shift est la seule source fonctionnelle. Tout le reste est bloqué. L’échelle ci-dessous n’est pas une cascade de repli gracieuse ; trois de ses quatre barreaux sont absents, et le mode d’échec important est de substituer silencieusement un barreau mort par une recherche web et de présenter le résultat comme des données Reddit.
| Route | Statut 2026-09-19 | Preuve |
|---|---|---|
| API Arctic Shift | FONCTIONNE — la seule | curl .../api/posts/search?subreddit=selfhosted → 200, objets complets de publications |
reddit.com .json via curl | MORT — 403 | blocage au niveau du harnais ; le User-Agent navigateur n’aide pas |
| WebFetch / WebSearch sur reddit.com | MORT | WebSearch renvoie 400 domains not accessible |
| Playwright sur old.reddit.com | INDISPONIBLE | nécessite le serveur MCP Playwright, qui échoue systématiquement à se connecter |
Arctic Shift — la route principale et, en pratique, la seule
- Base :
https://arctic-shift.photon-reddit.com/api - Simple
curl. Pas d’authentification, pas de navigateur, pas de mur de preuve de travail. - Voit les publications supprimées, supprimées par les mods et filtrées comme spam — la seule chose qu’aucune autre route ne peut faire.
Utilisez-la pour tout : recherche historique, métriques, activité utilisateur, règles, ton, récupération de contenu supprimé.
Quatre pièges qui ruineront silencieusement une exécution. Tous vérifiés par un appel en direct.
- Les noms de paramètres ne sont pas évidents et les mauvaises hypothèses génèrent une erreur fatale. Le texte intégral utilise
title=ouselftext=sur/posts/search, etbody=sur/comments/search.qrenvoie{"error":"Unknown query parameter: 'q'"}.sortn’accepte queasc/desc. {"error":"Timeout. Maybe slow down a bit"}renvoyé en moins d’une seconde est une LIMITE DE TAUX, pas une requête lente. Quatre appels non espacés suffisent à la déclencher. Réessayer avec un-mplus long ou une fenêtre plus étroite ne change rien. Espacez les appels d’environ 4 s, et reculez exponentiellement (8→120 s) sur cette erreur.- Sur toute erreur, la réponse est
{"data":null,...}. Un code qui accède directement àjson.data.lengthlève une exception sur la réponse de limite de taux au lieu de la signaler. Vérifiez quedatan’est pas null avant de l’utiliser, et remontezerrorlorsqu’il est défini. - Les publications de moins de 36 h environ portent
hide_score:trueetscore:1— filtrez-les avant de calculer une métrique, sinon les chiffres sont fictifs. Il n’y a pas de tri par score : récupérez large et triez côté client.
Quand Reddit ne peut vraiment pas répondre
Si la question nécessite un classement en direct, un nombre d’abonnés actuel ou une vue connectée, Arctic Shift ne peut pas la servir et rien d’autre n’est disponible. Dites-le dans le livrable. Ne laissez pas un workflow renvoyer un sentiment nul et être interprété comme "rien trouvé" — deux recherches précédentes ont brûlé 206 agents sans produire de données Reddit avant que cela ne soit diagnostiqué.
Ces substituts sont vérifiés et constituent le repli honnête pour "que disent les praticiens", à condition d’étiqueter la source comme non-Reddit :
- Hacker News (meilleur substitut) :
https://hn.algolia.com/api/v1/search?query=<termes>&tags=story(ou&tags=comment), puishttps://hn.algolia.com/api/v1/items/<objectID>pour l’arbre complet des commentaires. Exigez que chaque citation porte son identifiant de commentaire et soit re-vérifiée pour confirmer l’existence de la chaîne. - Lobsters :
https://lobste.rs/search?q=<termes>&what=stories&order=relevance - Stack Exchange :
https://api.stackexchange.com/2.3/search/advanced?order=desc&sort=votes&q=<termes>&site=stackoverflow
Méthodes qui ne fonctionnent pas — ne jamais tenter
| Méthode | Pourquoi | Résultat |
|---|---|---|
curl / WebFetch vers reddit.com (tout chemin, y compris .json) | blocage au niveau du harnais ; un User-Agent navigateur ne le contourne pas | 403 |
WebSearch avec site:reddit.com ou allowed_domains:["reddit.com"] | domaine non autorisé | 400 domains not accessible |
Flux RSS Reddit (.rss) via curl | bloqué spécifiquement | 403 |
oauth.reddit.com sans jeton | redirige vers HTML | 301 → HTML |
| Mirrors redlib / safereddit / libreddit | écran de preuve de travail Anubis, nécessite JS | page de défi, 0 publication |
api.pullpush.io (successeur de Pushshift) | en panne | 502 |
Proxy r.jina.ai devant old.reddit.com | le proxy renvoie 200 contenant le propre 403 de Reddit | corps 403 |
Ne gaspillez pas une exécution à redécouvrir ces points. Si Arctic Shift ne peut pas répondre, rien ici ne le peut.
Référence API
Points de terminaison, champs de réponse et pièges pour les deux sources : references/api.md. Lisez-le avant de construire un appel ; ne reconstruisez pas un point de terminaison de mémoire.
Métriques d’engagement
Les quatre métriques (calculées à partir des données Arctic Shift)
| Métrique | Formule | Mesure |
|---|---|---|
| Ratio commentaires/upvotes (cmtRatio) | avgCmts / avgScore | Profondeur de discussion |
| Ratio d’upvotes | champ upvote_ratio (0-1) | Approbation de la communauté |
| Moyenne de commentaires par publication | sum(num_comments) / count | Niveau d’activité |
| Score moyen par publication | sum(score) / count | Portée/visibilité |
Calcul
const posts = data.data.filter(p => !p.hide_score && p.score > 1);
const avgScore = posts.reduce((s, p) => s + p.score, 0) / posts.length;
const avgCmts = posts.reduce((s, p) => s + p.num_comments, 0) / posts.length;
const cmtRatio = avgCmts / avgScore;
const avgUpvoteRatio = posts.reduce((s, p) => s + p.upvote_ratio, 0) / posts.length;
Niveaux de profondeur de discussion
| Niveau | Seuil | Signification |
|---|---|---|
| S | >= 0.70 | Très conversationnel |
| A | >= 0.25 | Discussion forte |
| B | >= 0.10 ou moyenne cmts >= 10 | Modéré, mérite de s’engager |
| C | 0.05-0.10 | Plutôt passif / sub de portée |
| D | < 0.05 | Faible engagement |
| E | moyenne cmts < 1 | Mort ou fortement restreint |
Évaluation du ton
Évaluez à partir des données de publications déjà récupérées (pas d’appels supplémentaires) :
- Valeurs de
link_flair_text— jours thématiques, catégories, indicateurs explicites - Motifs de titre — style de langage, normes
selftextdes publications les mieux notées — signaux culturels- Distribution des scores — ce que la communauté récompense réellement
Triez les publications récupérées par score côté client. Les 10 à 20 premières révèlent les valeurs de la communauté.
Workflows standard
Une recette minimale par demande récurrente — analyser un subreddit, étudier un utilisateur, trouver des fils, découvrir des subs, vérifier par lot, récupérer des publications supprimées, détecter un shadowban : references/workflows.md.
Diagramme de décision
Besoin de données Reddit ?
|
+-- Publications historiques, commentaires, métriques, activité utilisateur, règles, contenu supprimé ?
| --> Arctic Shift. C’est toutes les questions que la compétence peut réellement répondre.
|
+-- Classements en direct, nombre d’abonnés actuel, ou vue connectée ?
| --> NON DISPONIBLE. reddit.com est 403 pour curl et WebFetch ; WebSearch
| refuse le domaine ; Playwright nécessite un serveur MCP généralement en panne.
| Dites-le dans le livrable. Ne substituez pas silencieusement par une recherche web.
|
+-- Vérification de shadowban ?
| --> NON DISPONIBLE pour la même raison (nécessitait /user/NAME/about.json).
|
+-- "Que disent les praticiens à propos de X", où Reddit n’était qu’un moyen ?
| --> HN Algolia / Lobsters / Stack Exchange, étiqueté comme non-Reddit.
|
+-- Publier, commenter, MP, modmail ?
--> Impossible via les outils de recherche. Utilisez l’interface native de Reddit.
La règle de l’écart honnête : une question que cette compétence ne peut pas répondre est signalée comme non répondable, avec la raison. Une exécution qui renvoie zéro donnée Reddit et ne dit pas pourquoi est interprétée comme "rien trouvé", ce qui est une affirmation différente et fausse.
Limites du périmètre
- Cette compétence est une recherche EN LECTURE SEULE. Pas de publication, commentaire ou opération d’écriture.
- Si la tâche nécessite une publication ou des actions sur un compte, informez l’utilisateur qu’elle doit être effectuée via l’interface de Reddit ou un client authentifié.