Beiträge mit Mindestanzahl von Upvotes über die Reddit-API abrufen

Melden
  1. Standardhafte Posts-Abfrage via Reddit-API
  2. Keine native Filterung nach Upvotes
  3. Beispielablauf für eigene Filterung
  4. Alternative: Verwendung von Pushshift API
  5. Fazit

Die Reddit-API bietet keine direkte Möglichkeit, Beiträge ausschließlich anhand einer Mindestanzahl von Upvotes (Votes, Score) zu filtern. Es gibt keinen offiziellen Parameter wie min_upvotes oder score_min, mit dem man nur Beiträge mit einer bestimmten Mindestanzahl an Upvotes abfragen kann. Stattdessen erfolgt die Filterung üblicherweise clientseitig, nachdem die Daten vom Server bezogen wurden.

Standardhafte Posts-Abfrage via Reddit-API

Typischerweise rufst du Beiträge über Endpunkte wie /r/{subreddit}/new, /r/{subreddit}/hot oder /r/{subreddit}/top ab. Diese Endpunkte unterstützen Parameter wie limit (Anzahl der Beiträge), before, after (für Pagination), sowie t (für Zeitintervalle z.B. day, week beim top-Listing).

Ein Beispiel-Aufruf für die beliebtesten Beiträge der letzten Woche wäre:

https://www.reddit.com/r/de/top.json?t=week&limit=100

Keine native Filterung nach Upvotes

Der wichtigste Punkt ist: Die API liefert eine Liste an Beiträgen, die bereits eine bestimmte Sortierung besitzen (z.B. nach Hotness, Neuheit, Top-Score). Ein exaktes Filtern nach einer Mindestanzahl an Upvotes ist nicht vorgesehen. Wenn Du beispielsweise nur Beiträge mit mindestens 500 Upvotes möchtest, musst Du die Posts abrufen und dann in deinem Programm oder Skript die Beiträge durchlaufen und nach dem Attribut score filtern.

Beispielablauf für eigene Filterung

1. Rufe die gewünschten Beiträge z.B. über /r/{subreddit}/top mit den Parametern limit=100 und ggf. t=all (für die gesamte Zeit) ab.

2. Iteriere über die erhaltenen Beiträge in deinem JSON-Response.

3. Filtere Beiträge, deren data.score (Upvote-Differenz zwischen Up- und Downvotes) die gewünschte Mindestanzahl überschreitet.

Alternative: Verwendung von Pushshift API

Wenn Du eine serverseitige Filterung nach Upvote-Mindestanzahl bevorzugst, kannst Du auch die Pushshift-API nutzen, die historische Reddit-Daten bereitstellt und Filter wie eine Mindestanzahl an score erlaubt. Beispiel:

https://api.pushshift.io/reddit/search/submission/?subreddit=de&score=>=500&size=100

Hiermit würdest Du Beiträge bekommen, die mindestens 500 Punkte haben.

Beachte aber, dass Pushshift von Reddit unabhängig ist und nicht immer die aktuellsten Daten liefert.

Fazit

Die Reddit-API hat keine eingebaute Funktion, um Beiträge direkt nach einer Mindestanzahl an Upvotes zu filtern. Die üblichste Methode ist, Beiträge mit Standardparametern abzurufen und dann clientseitig anhand des score-Werts zu filtern. Für erweiterte Filtermöglichkeiten kann die Pushshift API eine hilfreiche Alternative sein.

0
0 Kommentare