Supported links in Discord

The public hosted Linky supports Instagram, TikTok, X/Twitter, YouTube, Bluesky, Reddit, Twitch clips, Facebook Reels and videos, and public article previews. Erome albums are a self-hosted feature and are not available through the public bot invite. It processes new messages in enabled channels, or the link you explicitly choose with /fix. Social rewrites remove tracking query strings and preserve fragments. YouTube keeps its video ID and valid start time.

PlatformAccepted linksPreview service
X / TwitterHTTPS post links on x.com, www.x.com, twitter.com, www.twitter.com and mobile.twitter.com, including status media paths.fixupx.com, then vxtwitter.com
InstagramPost, reel, reels and TV paths, plus resolvable Instagram /share/ URLs. Profiles stay unchanged.fkinstagram.com (Instagram7), then oginstagram.com
TikTokVideo, photo and supported mobile share links. Profiles and index pages stay unchanged.tnktok.com
YouTubeHTTPS video, Shorts, live-video, embed and youtu.be share links, plus public /post/ text and image posts. Channels and playlist-only links stay unchanged.Native video previews, optional Data API statistics and public-page community cards
BlueskyPublic bsky.app/profile/actor/post/id links. Profiles and feeds stay unchanged.bskx.app, then fxbsky.app
RedditPublic reddit.com posts, redd.it short links and resolvable app shares, including www, old and mobile hosts.vxreddit.com; app shares that Reddit refuses can resolve through rxddit.com first
Twitch clipsclips.twitch.tv links and twitch.tv/channel/clip links. Streams and VODs stay unchanged.fxtwitch.seria.moe
FacebookPublic facebook.com/reel/id and facebook.com/page/videos/id links, including m. and web. hosts, plus resolvable /share/r/ and /share/v/ mobile shares. Photo and text posts, /watch?v= and fb.watch links stay unchanged.facebed.com
ArticlesPublic HTTPS article pages that supply usable article metadata. Homepages, sign-in pages and unsupported pages stay unchanged.Publisher-supplied headline, publisher, short excerpt and optional image/date
Erome (self-host only)HTTPS erome.com/a/album-id links in server channels allowed by the admin's Erome channel setting.First video, or first supported image in an image-only album. Eligible originals use a hosted gallery with Load next item; attachment fallback is available. Automatic previews follow Replace or Reply mode.

Accepted mobile subdomains are removed when the preview provider needs its main domain. A rewritten short TikTok URL may still depend on the original redirect and the provider resolving it.

The table shows the configured provider order. When one provider misses several distinct posts that a supported alternate successfully previews, Linky can temporarily try the alternate first. It continues limited recovery checks and keeps the original fallback options. Repeated retries of one unavailable post do not establish a provider outage.

For exact URL examples and platform-specific troubleshooting, see Instagram previews, TikTok previews, and X previews and tweet translation.

Public article previews #

Share a public article URL in an enabled channel, or use /fix link: or Apps → Fix with Linky. Linky reads the page's article metadata and creates a card with its headline and publisher. The card can include a description of up to 300 characters, an image and the publication date when the publisher supplies them. Original post opens the article.

This works across article websites that expose usable metadata. A page must identify itself as an article through Open Graph (og:type=article) or supported structured data (Article, NewsArticle or BlogPosting). It is not a general webpage screenshot service. Pages without usable metadata stay unchanged. Linky does not sign in, bypass paywalls, translate articles, generate summaries or check whether their claims are true.

Share up to three article URLs in one message, separately from social and other links. Discord does not combine Linky's article cards with native link previews in one response. If one requested article cannot be prepared, Linky keeps the source instead of replacing it with a partial set of cards.

With Articles enabled, an unavailable public website link in a mixed message can also keep the whole message unchanged, including otherwise supported social links. Share the social link separately to fix it.

An admin can choose Articles in the /setup Platforms menu or use /settings articles:false to turn article processing off. Article previews use the same channel scope, personal /autofix preference, bypass rules and Replace or Reply mode as other links. Replace removes the source only after the cards, copied attachments and unchanged source/settings pass the delivery checks. Manual fixes keep the source. Remove stays owner-only, and channel members can open Original post and Details.

The hosted bot handles the lookup; members do not need an API key or separate hosting. The publisher can still block or change its public page. Article troubleshooting and data handling.

YouTube previews #

Share a YouTube video normally after enabling Linky. Its native video preview stays in one message, with a compact counts button showing available views, likes and comment count. Click it for exact counts in a private reply. A Top comment button opens an attributed excerpt privately, selected by YouTube's relevance order. These replies suppress mentions and extra link previews. Playback depends on Discord and YouTube.

Standard watch links, youtu.be shares, Shorts and live-video links are supported. Valid t or start timestamps are preserved. A YouTube channel page or a playlist without a video is not processed. At most three distinct videos receive statistics in one message, and the extras must fit Discord's message limit.

Counts are snapshots, not live counters. Private button replies use a recent API lookup that can be cached for five minutes. Linky removes its YouTube buttons after 24 hours while keeping the video, Original post and Remove controls. If Discord cannot be reached, cleanup is retried. Missing metrics are omitted; disabled or unavailable comments leave the counts visible. A failed video lookup leaves the original YouTube message alone. Private, deleted or restricted videos may not be available.

The hosted bot handles API access. People adding Linky do not need a Google account or API key. An admin can select Preview only, Counts, or Counts and top comment through /settings youtube_display. Preview only leaves native video messages alone and makes no video API calls; public community cards remain available. Counts skips comment requests. Manual /fix actions use native YouTube previews without statistics. Self-hosted copies need an operator-supplied key for statistics.

Bluesky, Reddit and Twitch clips #

Share the full public post or clip URL. Bluesky post links use /profile/actor/post/id. Reddit supports /r/community/comments/id/title, user-post paths and canonical /comments/id URLs; redd.it links and resolvable app shares also work. Galleries and unresolved shares remain unchanged. Twitch supports clip URLs, including a channel's /clip/ path; it does not process livestream or VOD pages.

Bluesky has two provider candidates. Reddit and Twitch currently use one each, so a failed preview leaves the original and offers a retry through the same provider. Provider availability can change. A successful metadata check does not establish playback in every Discord client.

Facebook Reels and videos #

Share a public Facebook Reel or page video URL, such as facebook.com/reel/id or facebook.com/page/videos/id; m. and web. hosts work too. Linky rewrites it to Facebed at facebed.com, which supplies the video for Discord's preview; playback still depends on Discord and your client. Mobile /share/r/ and /share/v/ links first resolve through the same bounded, cookie-free lookup as other mobile shares.

Linky needs a video in Discord's preview before it replaces the original. If Facebook shows a login wall, or the video is private or unavailable, the original message stays. Photo and text posts, /watch?v= links and fb.watch links are not supported. Facebook currently has one provider and no alternate, so Retry uses Facebed again.

Facebook is on by default, including in servers that already use Linky. An admin can turn it off with /settings facebook:false or the /setup Platforms menu, and restore it with /settings facebook:true. As with Instagram and TikTok, Linky waits up to eight seconds for a Facebook preview to appear.

Manual fixes, the hosted bot, or self-hosting? #

For an occasional Instagram, TikTok or X link, you can edit its hostname yourself using the examples in the platform guides. Linky automates that step for a Discord server. Admins can choose Replace mode or keep originals with Reply mode through /settings.

OptionWhat you doWhat you maintain
Manual link fixChange the hostname for each supported URL you share.No bot or hosting. The preview still depends on the provider.
Personal Linky commandsAdd Linky to your account and use /fix or Apps → Fix with Linky.No hosting. Server and channel command restrictions still apply.
Hosted LinkyAdd the existing bot and have an admin enable it with /setup.Channel permissions. The operator runs the bot.
Self-hosted LinkyRun the public code using your own Discord application.Hosting, credentials, configuration and software updates.

The hosted bot is free and requires no download. Add Linky to a server or your account, or follow the self-hosting guide to operate your own instance. Every option depends on Discord and third-party preview services.

English tweet translation #

When the operator enables translation, Linky requests an English version through the FxEmbed API. Translated text replaces the original text in Linky's presentation, with a small note naming the source language. Media stays with the post.

Long translations can continue across cards or use a text attachment. A failed lookup falls back to the native preview. Translation can be wrong; use the original post when the exact wording matters.

The operator makes tweet translation available, and each server can turn it off through /settings translate_tweets:false. General Discord chat, TikTok captions and YouTube comments are not translated.

YouTube community posts #

Public YouTube /post/ links can show the creator, text and ordered images without an API key. Linky reads the public YouTube page without signing in. Polls, quizzes, video attachments, unavailable posts and unrecognized page formats keep their source. These cards have no video counts or top-comment button. Public-page changes can break extraction independently of the video API.

Share community posts separately from other supported links. In a controlled Discord check on September 18, 2026, adding community cards prevented an X link in the same message from generating its native preview. Linky keeps a mixed message's original and explains how to split the links instead of retrying providers. Community-only requests can include up to five posts within the combined ten-card and 6,000-character limits; a gallery is never silently cut to fit.

Instagram /share/, Facebook /share/r/ and /share/v/, and Reddit /r/name/s/, /u/name/s/ or /user/name/s/ shares resolve through allowed public HTTPS redirects on their own platform. If Reddit refuses an app-share lookup with HTTP 403, 429 or a server error, Linky sends the share path, without its query string, to the FixReddit resolver at rxddit.com and continues only if it redirects to a Reddit post; vxReddit still makes the preview. Reddit redd.it/POST_ID and mobile post URLs need no lookup. Expired, private or unsafe redirects keep the original; Linky does not sign into these services.

In a September 18, 2026 check from Linky’s host, Instagram resolved the tested share, while Reddit refused the app-share request with HTTP 403. On September 29, the same host reproduced that 403 and resolved the reported Reddit app share through the rxddit.com fallback. These results concern the tested links and host, not every public post. Full /comments/ URLs and redd.it links skip the share lookup, so they still help when an app share stays unchanged.

English Instagram captions #

Choose /settings instagram_presentation:standard, compact or media-first. Standard keeps translated captions within 300 characters; Compact uses 120. Media-first requests a caption-free provider preview and skips caption translation. Native captions in Standard or Compact when translation is unavailable remain controlled by the provider. Attribution, Original post and owner-only Remove remain in every mode.

Instagram captions have a separate /settings translate_instagram switch when translation is available from the operator. Linky's English excerpt is one paragraph of up to 300 characters in Standard or 120 in Compact, including an ellipsis when shortened, with a small source-language label. The author, gallery media and Original post link remain; no full-caption text attachment is added. Native captions shown without translation remain controlled by the provider. It translates captions only, without reading text inside images or transcribing audio. See the Instagram translation guide for availability, limits and data handling.

Message limits #

Automatic fixing skips polls, stickers, forwards, pinned messages, voice messages and thread starters. Bots, webhooks and DMs do not trigger it. Linky does not scan history; only existing tracked replies follow source edits and deletions, for up to 30 days. Explicit manual commands can fix a selected link without enabling a server.

In Replace mode, Linky waits briefly for a useful preview tied to each rewritten post, checks attachments, and rechecks the source and settings before deleting it. Known videos require video metadata; translated text delivered as a caption does not need a separate native embed. Failed previews try a vetted alternate where available. Otherwise the original stays with a Retry notice. Discord sends and deletes are separate requests, so errors can leave duplicates. Reply mode keeps the original and its attachments.

On fresh automatic posts, Shared by can notify the original sharer in both Replace and Reply mode. Replace also allows explicit user tags that Discord recognized in the source; Reply allows only the sharer. Manual fixes, retries, refreshes, failure notices and progress updates stay quiet. Quoted/provider text, role tags and @everyone/@here never add recipients. Mention behavior and @silent.

Use /autofix enabled:false to stop automatic fixing of your messages in this server, including its threads. The response is private and the preference survives restarts. /autofix enabled:true restores automatic fixing wherever the server allows it. Manual /fix, Apps → Fix with Linky and an explicit Retry remain available; turning automatic fixing back on does not scan old messages.

Use !nolinky to skip a message. Links in angle brackets, code or spoilers stay unchanged. Only the original sharer can use Remove on automatic previews; only the requester can remove manual previews.

Other public preview buttons are shared with channel members. Original post, YouTube counts and the top comment are available to anyone who can view the preview; counts and comments open private replies. Retry preview and self-hosted galleries' Load next item require current permission to view and send messages in the channel, with no active timeout, and retain their existing rate limits. Using a shared button does not transfer Remove ownership. Private command and setup controls keep their own access rules.

Erome video albums #

Run your own instance for Erome. You provide the Discord application, bot host and any media storage or workers. The public hosted bot does not prepare these previews. The limits below describe the optional self-hosted feature; self-hosting does not mean every website or file format works. Self-hosting guide.

Share an Erome album link in an enabled server channel or use /fix. Linky starts with the first video from the first album, or the first supported image if the album has no video. Erome defaults to age-restricted channels and threads in them. An admin with Manage Server permission can use /settings erome_channels:all to allow ordinary server channels too, or select age-restricted to restore the default. The same saved policy applies to manual previews. DMs are excluded.

Automatic Erome previews follow the server's Replace or Reply mode. Replace deletes the original Discord message only after the complete preview and attachment checks succeed and Linky rechecks the source and settings. The repost preserves attribution and source links, including Original post buttons. Reply mode, manual /fix, Apps → Fix with Linky and Retry keep the source message. A failed preview, changed source or missing permission leaves it in place.

This setting does not enable new channels: /setup controls where automatic fixing runs. /settings erome:false disables automatic Erome previews. Linky does not scan the video's content.

Erome's CDN can reject Discord's direct requests, so Linky's host delivers the video. Eligible MP4 sources appear in a Discord video gallery using a hosted media URL. Linky finishes downloading, validating and saving the complete file before sharing it. This path accepts files up to 24 MiB, five minutes and 60 fps, with H.264/yuv420p video and AAC audio when present. The original video and audio remain unchanged. Native dimensions can reach 1920×1080 for landscape video or 1080×1920 for portrait video: a 720p source stays 720p, and a native 1080p source stays 1080p.

JPEG and PNG album images are also supported, up to 8 MiB each, 8192 pixels on either side and 33,554,432 pixels total. Linky checks the complete image and preserves its original bytes. Animated PNG, GIF, WebP, video posters and images outside the album's media containers are excluded. These limits apply to image attachments as well as hosted galleries; an image must also fit the destination's upload allowance when attached.

Larger or incompatible videos, mixed-platform messages, messages with source attachments to copy, and failed hosted preparation use the attachment path. Source attachments must be copied and checked before replacement. Its video input limit is 64 MiB and five minutes. Compatible H.264/AAC media with a known size can be preserved without re-encoding when it fits the upload allowance. Other videos are compressed, keeping source resolution up to 1920×1080 or 1080×1920 without upscaling. Compression can reduce quality. Output normally stays 1 MiB below the destination's allowance, capped at 63 MiB. Manual commands use the allowance Discord supplies for the interaction; automatic previews use the server's allowance.

On a self-hosted instance's media gallery in a server channel, Load next item adds one remaining item from the album at a time. Channel members with current permission to view and send messages, and no active timeout, can use it. The original sharer or manual requester keeps ownership of the gallery and its Remove button. It remains available after a successful automatic replacement removes the source message. Reply and message-context sessions still check their existing source. The gallery stops at 10 items or 192 MiB total, and unavailable items may prevent further loading. Existing items stay available if adding another fails. The control lasts up to 24 hours and expires when the bot restarts; a fresh manual fix starts a new session. It is not available on attachment-only previews or private manual responses. Original post always opens the full source album.

Media preparation takes turns between eligible servers and keeps each server's queued jobs in order. At most one preparation runs per server, with up to two waiting per server and eight waiting across the bot. Original preparation and attachment encoding can overlap across different servers when their resource limits allow it. A Discord delivery attempt, including its queue wait, has a two-minute limit. Album-button requests have the same limit. A full queue or expired request leaves the source untouched.

Slow requests show their current stage, such as waiting for a slot, downloading, preparing media or waiting for Discord. Suitable attachment inputs download and encode together; other files finish downloading first. A new album can still take more than a minute. Repeated requests can share work, and eligible hosted originals can be reused after checking the current album, source validator and stored file. Source changes or a missing file require preparation again. See retention and reuse for the separate caches and storage limits.

When a public preview includes Details, channel members can open its delivery path, outcome and stage timings in a reply visible only to the person clicking. Details on private responses or in DMs stay requester-only. Every lookup remains tied to its exact message and location. Records last up to seven days and can expire earlier when the local history fills. Timings can overlap; Discord metadata confirms that Discord supplied preview information, not that playback works on every device.

Both delivery paths preserve source album links in the repost and respect the server's channel policy and posting mode. Self-hosted copies use attachment delivery unless their operator configures original-media hosting. The bot needs Attach Files permission, and Replace also needs Manage Messages. Erome, the hosting services and Discord affect preparation and playback; no fixed response time is promised.

See Erome data handling and use /diagnose link: to check the channel restriction and limits.

External services #

Preview services and Discord control the final embed. Deleted, private, restricted or temporarily unavailable posts may not render. Linky cannot promise that every rewritten URL will show a playable preview.

Get help with a link that did not work.

Updated