Embed TikTok videos and slideshows on Discord with just s/i/n
Note
Have a feature you want to see in fxTikTok or want to report a bug? Make an issue! I would love to hear your feedback.
Click here to preview how fxTikTok looks in action
![]() |
|---|
Comparing tiktok.com vs. tnktok.com embeds on Discord |
![]() |
|---|
| Slideshow embeds |
![]() |
|---|
| Direct image/video support |
Using fxTikTok is easy on Discord. Fix ugly and unresponsive embeds by sending your TikTok link and then typing s/i/n
When you send s/i/n in Discord, it modifies your most recent message using the sed format. Specifically, it replaces the first occurrence of the second parameter (i) in the message with the third parameter (n).
| Before | After |
|---|---|
| tiktok.com | tnktok.com |
Tip
If you run a Discord server, I highly recommend adding FixTweetBot to your server. It automatically modifies links to use embed fixers like fxTikTok, and is highly customizable.
You can customize embeds using subdomains or URL query parameters:
| Mode | Subdomain | Query Parameter | Description |
|---|---|---|---|
| Direct | d.tnktok.com |
?isDirect=true |
Shows only the media without statistic clutter. |
| Captions | a.tnktok.com |
?addDesc=true |
Adds the video caption/description to the top (Discord hides og:description on videos). |
| High Quality | hq.tnktok.com |
?hq=true |
Enables H.265/HEVC playback for higher quality (defaults to H.264 for compatibility). |
Modes can be combined by chaining subdomains (e.g. hq.a.tnktok.com) or query parameters (e.g. ?hq=true&addDesc=true). Note that Direct and Captions cannot be used together.
We check all the boxes for being one of the best TikTok embedding services with many features that others don't have. Here's a table comparing our service, tnktok.com, with the other TikTok embedding services as well as TikTok's default embeds.
| fxTikTok | Default TikTok | kkScript | tfxktok.com | EmbedEZ | |
|---|---|---|---|---|---|
| Embed playable videos | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ |
| Embed multi-image slideshows | ☑️ | ❌ | ❌ | ☑️ | ☑️ |
| Open source | ☑️ | ❌ | ❔ | ❌ | ❌ |
| Supports direct embeds | ☑️ | ❌ | ❔ | ❌ | ❌ |
| Shows like, shares, comments | ☑️ | ☑️ | ❌ | ☑️ | ☑️ |
| Removes tracking for redirects | ☑️ | ❌ | ❌ | ☑️ | ☑️ |
| Support for multi-continent short URLs | ☑️ | ☑️ | ❌ | ❌ | ☑️ |
| Support for h265/high quality | ☑️ | ❌ | ❌ | ❌ | ❌ |
| Last commit | N/A | N/A | N/A |
The following embed services are not listed due to being unmaintained or simply not working:
- tiktxk.com
- vxtiktok.com (redirecting to kkScript)
By default, when setting up a new fxTikTok instance, the default offload server is offload.tnktok.com.
To setup your own, just compile and run offload.ts which will start on port 8787.
# Install all necessary dependencies
pnpm install
# Start your server
bun run src/offload.tsI recommend configuring this to your own domain alongside a reverse proxy like nginx and on top of Cloudflare with protection on.
Next, deploy your Worker with the button below and follow the instructions.
Once done, go to "Settings" and change your offload server under "Variables and Secrets":
fxTikTok exposes Prometheus metrics at /metrics! This is only exposed only when METRICS_ENABLED=true is set in your environment varialbes.
Example Prometheus scrape config:
scrape_configs:
- job_name: fxtiktok
metrics_path: /metrics
static_configs:
- targets:
- your-api-domain.example.comUseful exported metrics:
fxtiktok_requests_total{route,method,status_class}fxtiktok_request_duration_seconds_bucket{route,method,le}fxtiktok_request_duration_seconds_sum{route,method}fxtiktok_request_duration_seconds_count{route,method}fxtiktok_unhandled_exceptions_total{route,method,exception_type}




