Skip to content

Navigation Menu

Sign in
Sign up

Latest commit

History

637 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation


Enhance Your Discord with Proper Embeds for Social Media Links.

πŸ› οΈ Usage

Send a message containing a X/Twitter, Instagram, Reddit, Threads, Pixiv, Bluesky, Bilibili, YouTube community post, Pinterest Pin, TikTok, Tumblr, Twitch, or public DeviantArt deviation/Sta.sh link, and the bot will remove your message or just the embed and automatically convert it to its fixed link respectively, replying with the fixed link and label of who sent it.

Tip

You can suppress automatic conversion for a specific link by surrounding it with < > (e.g., <https://x.com/status/123...>). FixEmbed will leave that message alone (no edits or deletions).

Commands:

  • /fix [link] - Convert one or more links into polished FixEmbed links (works in DMs and user-installed contexts)
  • /help - View all commands and supported services
  • /invite - Install FixEmbed to your account or add it to a server
  • /settings - Configure bot settings for your server
  • /status - View live first-party, fallback, and latency health for every supported platform
  • /premium - View and manage your Premium subscription
  • /activate / /deactivate - Toggle link conversion for specific channels
  • Right-click message β†’ Apps β†’ Fix Embed - Convert links in any message

🌟 Why Choose FixEmbed?

  • Comprehensive Platform Support: Supports X/Twitter, Instagram, Reddit, Threads, Pixiv, Bluesky, Bilibili, YouTube Community Posts, Pinterest Pins, TikTok videos, Tumblr posts, Twitch clips/VODs/channels, and public DeviantArt deviations and Sta.sh links.
  • Rich Platform-Aware Cards: Preserves creator identity, platform-specific context, mixed image/video posts, and complete media galleries when the source exposes them.
  • Sensitive-Media Controls: Source-marked NSFW and spoiler media is hidden by default. Servers can show each type independently, channels can override either setting, and Discord NSFW channels show both by default.
  • User-Installable: Install to your personal account and use /fix or the context menu anywhereβ€”even in servers where the bot isn't added!
  • User-Friendly Configuration: Easy setup with customizable settings for individual servers.
  • Reliable Performance: Ensures consistent embed functionality across all platforms.
  • Live Reliability Diagnostics: View current first-party/fallback mode and latency in Discord, with a public status dashboard, bounded platform probes, coalesced refreshes, and safe stale-data handling during brief probe failures.
  • Privacy-Safe Conversion Quality: Reliability highlights local rich-card rate, link fallbacks, recent p95 build latency, and bounded failure categories without retaining links, post content, or member data.
  • Discord Delivery Diagnostics: Reliability separates direct sends, component-to-link rescues, complete delivery failures, pending queue depth, and recent p95 delivery latency without retaining channel, message, or member data.
  • Permission-Aware Delivery: If delete or suppress mode lacks Manage Messages, FixEmbed keeps the original and still replies with the fixed card; Settings, Debug, and Reliability explain the recovery.
  • Continuous Embed Conformance: Scheduled privacy-safe canaries verify live metadata, evaluate cards against reviewed cold-latency budgets, build the real Discord Components V2 card for every supported platform, and fetch a bounded byte from approved rendered media targets so slow or broken cards surface before users report them.
  • Advanced X Regression Coverage: Production canaries continuously exercise X carousels, GIFs, videos, translations, and unavailable quoted-post context instead of testing only a simple text post.
  • DeviantArt Artwork Cards: Public deviations and Sta.sh links render as Discord Components V2 cards with the artist's profile picture, artwork title and media, original publication time, views, favorites, comments, downloads, copyright context, sensitive-media spoilers, and dedicated DeviantArt/download application emojis.
  • Direct-First Embeds: FixEmbed fetches source-platform data through its bot runtime or Cloudflare Worker and renders every supported service as a bot-authored Components V2 card. External embed services are used only as emergency fallbacks.
  • Fast Repeated Links: Successful cards are reused briefly at the edge with privacy-safe hashed keys; failures and distinct translation/layout options are never mixed.
  • Richer X Posts: First-party X embeds preserve polls, quotes, Community Notes, long-form notes/articles, link cards, videos, GIFs, and complete photo carousels.
  • Complete Instagram Carousels: Components V2 cards preserve up to ten images in source order, normalize trusted Instagram media through FixEmbed, and attach the gallery for fast, reliable Discord delivery.

πŸ“‹ Key Features

  1. Multi-Platform Support:

    • X/Twitter
    • Instagram
    • Reddit
    • Threads
    • Pixiv
    • Bluesky
    • Bilibili
    • YouTube Community Posts
    • Pinterest Pins
    • TikTok Videos
    • Tumblr Posts
    • Twitch Clips, VODs, and Channels
    • DeviantArt Deviations and Sta.sh Links
      • Public artwork cards preserve artist attribution and profile imagery, signed media, engagement statistics, copyright context, safety state, and the original publication time.
  2. User-Installable App:

    • Install FixEmbed to your personal account
    • Use /fix [link] or right-click β†’ Apps β†’ Fix Embed anywhere
    • Works in DMs, group chats, and servers
  3. Customizable Settings:

    • Activate or deactivate services per channel or server-wide.
  4. Direct Message Capability:

    • Use the bot privately by sending links directly.
  5. Easy Hosting Options:

    • Host the bot yourself using Docker.
  6. Link Suppression:

    • Prevent automatic conversion by wrapping links in < >.
  7. Multi-Language Support:

    • Available in 8 languages: English, Spanish, Portuguese, French, German, Japanese, Korean, and Chinese.
    • Change language via /settings β†’ Language.
  8. Free Post Translation:

    • Choose a default language in /settings β†’ Translation for every supported platform.
    • Successful translations replace primary and quoted-post text and add Translated from [language] Β· Link to the card footer.
    • X links can still use /en, /es, or another two-letter language code as a per-link override.
  9. X Layout Modifiers:

    • Append /gallery for media-and-author-only cards or /mosaic to force native multi-image attachments.
    • Modifiers can be combined, such as https://x.com/user/status/123/es/mosaic.

πŸ’Ž Premium

Make FixEmbed fit your server with FixEmbed Premium for 1ドル.99/month. Use /premium in Discord to subscribe and manage your server's subscription.

Perks include:

  • 🎨 Custom Social Card Colors β€” Choose a custom accent color for every supported Components V2 social card
  • πŸ–ΌοΈ Social Card Controls β€” Show or hide available engagement stats and hashtags, and choose full or compact captions
  • 🏷️ Server-Branded Footers β€” Display your server's current name and an optional server emoji while retaining subtle via FixEmbed attribution
  • πŸ€– Bot and Webhook Link Fixing β€” Automatically process supported links posted by bots and webhooks, not just members
  • 🚫 Member and Role Exclusions β€” Exclude selected members or roles from automatic conversion while keeping manual /fix usage available
  • πŸ“Š Private 30-Day Analytics β€” Review aggregate rich-card and fallback counts by platform without storing URLs, post text, usernames, message IDs, or channel IDs
  • ✨ Cleaner Automatic Posts β€” Remove the "Sent by" attribution for a more streamlined appearance
  • πŸ’Ž Supporters Role β€” Receive the Supporters role in the FixEmbed Support Server while Premium is active
  • ❀️ Support FixEmbed β€” Help fund hosting, maintenance, platform updates, and new features

Premium adds server customization and operational controls; media quality, playback, carousels, GIF support, and reliability fixes remain available to everyone.

πŸš€ Install FixEmbed

🐳 Host FixEmbed Yourself

You can host the bot yourself using Docker:

cp .env.example .env
# Fill in BOT_TOKEN and PREMIUM_SKU_ID in .env, then:
docker pull kenhendricks00/fixembed:latest
docker run --env-file .env -d kenhendricks00/fixembed:latest

For SparkedHost or another file-based Python host, use the sparkedhost-deployment-<commit> artifact from a successful Quality checks workflow run. Extract the complete fixembed-sparkedhost.zip into the bot root as one deployment while preserving the host's existing .env and database. The archive contains every root Python module plus required runtime metadata, and its included manifest records the expected size and SHA-256 checksum of every file so partial or modified bundles fail verification.

You can build and verify the same deterministic bundle locally:

python scripts/build_sparkedhost_bundle.py
python scripts/build_sparkedhost_bundle.py --verify dist/fixembed-sparkedhost.zip

Operators can run the same semantic production canaries used by FixEmbed:

python conformance.py --manifest conformance/production.json --fail-on-degraded

The bounded JSON report contains case IDs, platform names, source mode, latency, and fixed outcome codes only. It never includes source URLs, post content, usernames, rendered cards, or raw upstream errors. The canary builds cards locally for validation and never posts them to Discord.

πŸ’¬ Support

If you need support or have any questions, you can join the support server or open an issue on GitHub.
Note: If it's a technical issue, be sure to have debug info ready by using /settings, then click Debug.

Members of the support server automatically receive the Voter role after voting for FixEmbed on Top.gg.

πŸŽ‰ Quick Links

πŸ“œ Credits

Fallback services & acknowledgements

FixEmbed uses first-party platform data whenever available. When a platform blocks or limits access, it may use:

These services are not affiliated with or endorsed by FixEmbed.

License

Copyright (c) 2024-2026 Kenneth Hendricks.

FixEmbed is licensed under the GNU Affero General Public License v3.0 or later. If you modify FixEmbed and make the modified version available to users over a network, you must offer those users the corresponding source code under the same license. Modified versions must preserve applicable legal notices and identify their changes as required by the license.

About

A Discord bot that fixes the lack of embed of support in Discord.

Topics

Resources

Stars

46 stars

Watchers

3 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /