Un post de r/redditstock a couvert les procès Reddit contre Anthropic/SerpAI/Oxylabs — soulignant que les données de Reddit sont un territoire contesté. Ce tutoriel construit un tracker de sentiment boursier légal basé sur API en utilisant l'endpoint Reddit de Scavio.
Prérequis
- Clé API Scavio
- Python 3.8+
- Clé API LLM pour la notation du sentiment
Parcours
Étape 1: Rechercher des mentions de tickers sur Reddit
Utilisez l'endpoint Reddit de Scavio pour des données structurées de threads.
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def reddit_sentiment(ticker):
return requests.post('https://api.scavio.dev/api/v1/search',
headers=H,
json={'platform': 'reddit', 'query': f'{ticker} stock',
'sort': 'new', 'time_range': 'day'}).json()Étape 2: Noter le sentiment avec un LLM
Soumettez les titres des threads et les meilleurs commentaires à un LLM.
from anthropic import Anthropic
client = Anthropic()
def score_sentiment(threads):
titles = '\n'.join([t['title'] for t in threads[:20]])
return client.messages.create(model='claude-sonnet-4-6', max_tokens=100,
messages=[{'role': 'user', 'content': f'Rate overall sentiment for this stock ticker (bullish/neutral/bearish) based on these Reddit thread titles. One word answer + confidence 1-10.\n\n{titles}'}]).content[0].textÉtape 3: Suivre le sentiment dans le temps
Journal quotidien pour l'analyse des tendances.
import json, datetime
def log_sentiment(ticker, sentiment, thread_count):
with open(f'sentiment/{ticker}.jsonl', 'a') as f:
f.write(json.dumps({'date': str(datetime.date.today()),
'ticker': ticker, 'sentiment': sentiment,
'thread_count': thread_count}) + '\n')Étape 4: Planifier des exécutions quotidiennes
Tâche cron pour le suivi quotidien du sentiment.
# crontab: 0 18 * * 1-5 python sentiment_tracker.py
# Runs at market close (6 PM) on weekdays
# Tracks 10 tickers: 10 × 2 credits = $0.10/dayExemple Python
# Legal approach: Scavio's Reddit endpoint returns structured data
# via API, not scraping. No ToS violation risk.
# 10 tickers × 2 credits/call × 20 trading days = 400 credits/mo = $2/moExemple JavaScript
const reddit = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST', headers: {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'},
body: JSON.stringify({platform: 'reddit', query: `${ticker} stock`, sort: 'new'})
});Sortie attendue
Daily stock sentiment tracker: Reddit mentions per ticker, LLM sentiment scoring, JSONL trend log. Legal API-based approach.