Reddit

The Reddit module allows GoSuki to automatically track and import your saved posts and liked content from Reddit.

gosuki+

Overview

The Reddit module periodically polls the Reddit API to synchronize your “Saved” posts and, optionally, your “Upvoted” posts into your GoSuki bookmark database.

  • Scheduled Sync: Posts are imported based on a configurable sync interval.
  • Description Mapping: The body of a Reddit post is automatically mapped to the bookmark’s description field.
  • Subreddit Tagging: Posts are automatically tagged with the name of the subreddit they originated from.

Configuration

Configuration for the Reddit module is handled in the [reddit] section of your config.toml.

Config Options

  • client-id (string): Your Reddit API client ID.
  • client-secret (string): Your Reddit API client secret.
  • username (string): Your Reddit account username.
  • password (string): Your Reddit account password.
  • sync-interval (duration): How often to sync posts (default: 1h).
  • include-likes (boolean): If true, also imports posts you have upvoted (default: false).
  • fetch-comments (boolean): If true, fetches comments for archival (default: true).
  • fetch-media (boolean): If true, extracts media URLs for archival (default: false).
  • comment-fetch-delay (duration): Delay between comment requests to avoid rate limits (default: 2s).
  • max-concurrent-api (int): Maximum number of concurrent API requests (default: 3).

Environment Variables

Alternatively, you can provide credentials via environment variables:

  • REDDIT_CLIENT_ID
  • REDDIT_CLIENT_SECRET
  • REDDIT_USERNAME
  • REDDIT_PASSWORD

Advanced Archival
beta

For users utilizing GoSuki’s archival capabilities, the Reddit module provides rich metadata beyond a simple link.

Archival Data

When a post is archived, GoSuki captures:

  • The full markdown body of the post.
  • Threaded comments via the Reddit JSON API.
  • Media URLs (if fetch-media is enabled).
  • Metadata including author, subreddit, and creation date.

Rate-Limit Handling

To ensure stability and respect Reddit’s API limits, the module implements:

  • 429 Handling: If a 429 Too Many Requests response is received, the module respects the Retry-After header.
  • Exponential Backoff: Failed comment fetches are queued and retried with an exponential backoff strategy across poll cycles.

Stable Hashing

To prevent unnecessary archive updates, GoSuki uses Stable Hashing. The system excludes volatile fields (such as the post’s current Score or Upvote Ratio) when calculating the content hash, ensuring that an archive is only updated when the actual text or comment tree changes.

Module Status

You can verify if the Reddit module is active by running:

gosuki modules list

In the output, the reddit module will be marked as (Gosuki+).