The Reddit module allows GoSuki to automatically track and import your saved posts and liked content from Reddit.
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_IDREDDIT_CLIENT_SECRETREDDIT_USERNAMEREDDIT_PASSWORD
Advanced Archivalbeta
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-mediais 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 Requestsresponse is received, the module respects theRetry-Afterheader. - 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 listIn the output, the reddit module will be marked as (Gosuki+).