Blancoda goat

Plugin · Vencord · TypeScript

GIF Validator

GIF Validator is a free Vencord userplugin that finds broken or dead URLs in your Discord favorite GIFs and removes them after you confirm a checkbox list. It validates each URL with HEAD requests from Vencord's main process and saves through Discord's own settings API, with no token handling and no self-bot HTTP calls.

Inspired by jakeayy/gif-validator, a Bun CLI that does the same job from outside Discord. The plugin version avoids self-bot territory entirely and runs through your already-authenticated desktop client.

  • Runs inVencord
  • Token handlingNone
  • PriceFree

How the check works

How it checks, what you see, and where it falls short.

  • How it works

    • Reads favorites from Discord's in-memory FrecencyUserSettings store
    • Validates URLs via main-process HEAD requests (CORS-free)
    • Falls back to GET Range: bytes=0-0 on 405 responses
    • Re-numbers order 0..n-1 after deletion to keep favorites tidy
    • Saves via USER_SETTINGS_PROTO_UPDATE with partial: true
    • Concurrency limiter capped at 8 to avoid Tenor / Discord rate limits
    GIF Validator01
  • UI

    • Validate button injected into the GIF picker subview header
    • Toolbox action and settings-panel button as alternate entry points
    • Three-state modal: idle, running with progress bar, done with checkbox list
    • Broken GIFs pre-checked, valid ones inspectable via toggle
    • Cancel mid-validation preserves whatever results landed so far
    • Theme-aware text color via Discord's CSS variables (dark + light)
    GIF Validator02
  • Settings

    • concurrency (default 2): parallel HEAD requests, clamped to 8
    • timeoutMs (default 8000): per-request timeout
    • requireImageOrVideoContentType (default on): strict MIME check
    • treatRedirectsAsValid (default on): native bridge follows redirects
    GIF Validator03
  • Limitations

    • Tenor placeholders, some removed GIFs return 200 with a generic image
    • Hosts with browser-fingerprint checks may report false-broken
    • Schema drift, if Discord renames favoriteGifs the plugin reports "couldn't read favorites"
    GIF Validator04

Before you install

Short answers to what people ask first.

What is GIF Validator?

GIF Validator is a free Vencord userplugin that scans your Discord favorite GIFs, flags URLs that no longer respond, and removes dead entries after you confirm a checkbox list.

Is it safe to use?

Yes. It runs inside your already-authenticated Discord desktop client, reads favorites from Discord's in-memory settings store, and saves through Discord's own action creators. It does not handle tokens or impersonate self-bot HTTP APIs.

How does validation work?

The plugin issues concurrent HEAD requests from Vencord's main process (with GET Range fallback on HTTP 405), shows a confirmation modal listing broken GIFs, and re-numbers order indices after any deletion.

Inspired by jakeayy/gif-validator (Bun CLI). Built as a userplugin for Vencord.

View source on GitHub

Clean your GIFs