跳到主要内容
项目档案应用项目

FxEmbed:基于 Cloudflare Workers 的 X/Twitter 和 Bluesky 增强嵌入服务 - 安装配置与使用教程

FxEmbed/FxEmbed:FxEmbed 是一个基于 Cloudflare Workers 的 TypeScript 服务,通过转换 X/Twitter 和 Bluesk本页整理它解决什么问题、适用场景、安装方式和使用方法。

5,055TypeScriptStar 于 2026年3月17日2026年9月19日 更新

AI 总结

FxEmbed 是一个基于 Cloudflare Workers 的 TypeScript 服务,通过转换 X/Twitter 和 Bluesky 链接前缀,在 Discord、Telegram 等平台生成支持视频、投票、多图、翻译等功能的增强嵌入,注重用户隐私。

中文项目介绍

FxEmbed 是一个开源的链接转换服务,旨在解决 X/Twitter 和 Bluesky 等社交媒体平台在 Discord、Telegram 等第三方平台嵌入时功能受限的问题。通过简单的链接前缀修改(如将 twitter.com 改为 fxtwitter.com),用户可以获取完整的富媒体嵌入体验,包括视频播放、投票显示、多图展示、帖子翻译、直接媒体链接、图片马赛克合并以及简洁画廊视图等功能。 该项目基于 Cloudflare Workers 构建,使用 TypeScript 编写,采用 Hono 框架处理请求,利用 i18next 实现多语言支持,并通过配置驱动的方式支持多品牌(FxTwitter、FixupX、FxBluesky 等)独立运营。其核心价值在于无需用户安装任何插件或应用,仅通过修改链接即可在各类聊天平台获得接近原生的浏览体验,同时注重用户隐私,不收集个人数据。 适用场景包括:在 Discord 服务器分享 Twitter 投票并查看实时结果;在 Telegram 群组分享 Bluesky 多图帖子并保持原图质量;获取社交媒体视频或图片的直接文件链接用于下载;将多张图片合并为一张马赛克图片以节省展示空间;或使用画廊视图仅展示媒体和作者信息。

详细信息与使用说明

1. 项目定位与用途

FxEmbed 是一个基于 Cloudflare Workers 的链接转换服务,作为 FxTwitter、FixupX 和 FxBluesky 的托管平台,通过修改社交媒体链接前缀,在 Discord、Telegram 等第三方平台生成增强的富媒体嵌入。它允许用户在不离开聊天应用的情况下,完整查看视频、投票、多图、翻译等内容,提供接近原生的浏览体验。项目采用 TypeScript 开发,注重用户隐私,支持多语言国际化,并通过配置实现多品牌运营。

2. 解决的问题

原生 X/Twitter 和 Bluesky 嵌入在 Discord、Telegram 等平台存在严重功能缺失:视频无法播放、投票仅显示静态图片、多图帖子只能看到第一张、无法直接获取媒体文件、缺少翻译支持等。FxEmbed 通过解析原始帖子数据并生成优化的 Open Graph 卡片和 HTML,完整还原这些富媒体功能。同时,它解决了用户需要在不同平台间切换查看完整内容的痛点,所有增强功能仅通过修改链接前缀即可实现,无需安装额外软件或注册账户。

3. 适用场景

- 社交媒体内容分享:在 Discord 频道分享 X/Twitter 投票、视频、多图帖子,确保所有成员能直接互动查看。 - 媒体获取:需要下载 Twitter 或 Bluesky 视频/图片时,通过直接媒体链接(d. 前缀或文件后缀)获取原始文件。 - 内容简化:使用画廊视图(g. 前缀)仅展示媒体和作者信息,适用于需要最小化嵌入的场景;使用马赛克模式(m. 前缀)将多图合并为单张图片节省空间。 - 跨语言交流:通过添加语言代码(如 /en)自动翻译帖子,方便非母语用户理解内容。 - 开发者集成:作为服务被其他应用调用,提供标准化的社交媒体嵌入增强方案。

4. 安装方式

1. 克隆仓库到本地:git clone https://github.com/FxEmbed/FxEmbed.git 2. 安装 Node.js 依赖:npm install 3. 配置环境变量:复制 .env.example 为 .env,根据需求修改域名列表(如 STANDARD_DOMAIN_LIST、DIRECT_MEDIA_DOMAINS 等)及 Sentry 配置(可选) 4. 构建项目:npm run build(使用 esbuild 打包 TypeScript 代码到 dist 目录) 5. 部署到 Cloudflare Workers:npm run deploy(需提前安装 wrangler 并登录 Cloudflare 账户,配置 wrangler.toml) 注意:本地测试可使用 npm run build-local 跳过 Sentry 上传;开发时使用 npm run lint:eslint 检查代码风格,npm run prettier 格式化代码。

5. 使用方式

基础链接转换:将 twitter.com 替换为 fxtwitter.com;将 x.com 替换为 fixupx.com;将 bsky.app 替换为 fxbsky.app。功能前缀包括:d. 前缀获取直接媒体文件;m. 前缀生成图片马赛克;g. 前缀生成画廊视图;i. 前缀提供即时视图;t. 前缀仅显示文本内容。翻译功能在帖子链接后添加 /en 等两字母 ISO 语言代码。直接媒体链接还支持添加 .mp4 或 .jpg 文件后缀,多图帖子可指定 photo/N 编号。

6. 补充说明或实现特点

FxEmbed 采用 Serverless 架构,所有请求由 Cloudflare Workers 全球边缘节点处理,确保低延迟和高可用性。其设计遵循'配置驱动'原则,通过 .env 和 branding.json 动态管理多租户域名、品牌视觉(图标、颜色)及功能开关,支持 FxTwitter、FixupX、FxBluesky、FixTok 等多个品牌独立运营。技术栈包括 Hono 框架处理路由、i18next-icu 实现 ICU 格式国际化、zod 进行数据验证、@hono/sentry 集成错误监控。构建流程使用 esbuild 压缩打包,并通过 wrangler 部署。项目强调隐私保护,不记录用户数据,所有处理均在请求上下文中即时完成。

思维导图

FxEmbed
核心功能
视频/GIF 嵌入
投票嵌入
多图处理(直接链接/马赛克/画廊)
帖子翻译
引用显示
技术架构
Cloudflare Workers
Hono 框架
TypeScript
路由分发
媒体处理模块
国际化模块
部署与配置
环境变量 (.env)
品牌配置 (branding.json)
esbuild 构建
wrangler 部署
使用方式
链接前缀转换 (fx/fixup)
功能前缀 (d./m./g./i./t.)
翻译后缀 (/en)
品牌与国际化
多品牌支持 (Twitter/Bluesky/TikTok)
i18next 多语言
Crowdin 本地化

常见问题

FxEmbed 是什么?如何工作?

FxEmbed 是一个基于 Cloudflare Workers 的链接转换服务。当用户将 X/Twitter 或 Bluesky 链接的前缀改为 fxtwitter.com、fixupx.com 或 fxbsky.app 时,服务会解析原始帖子数据并生成优化的嵌入卡片,使视频可播放、投票可交互、多图完整显示等,所有处理在边缘节点完成,无需注册或安装。

支持哪些社交媒体平台和功能?

目前支持 X/Twitter 和 Bluesky 平台。功能包括:视频/GIF 嵌入与播放、投票结果展示(含进行中投票)、引用帖子及其媒体显示、多语言自动翻译(添加 /en 等语言代码)、直接媒体文件链接(d. 前缀或 .mp4/.jpg 后缀)、多图合并为马赛克(m. 前缀)、画廊视图(g. 前缀)及文本仅限视图(t. 前缀)。

如何部署自己的 FxEmbed 实例?

需 Node.js 环境:克隆仓库后运行 npm install 安装依赖;复制 .env.example 为 .env 并配置域名列表;执行 npm run build 构建;使用 wrangler deploy 部署到 Cloudflare Workers(需 Cloudflare 账户和 wrangler 配置)。详细步骤见项目 README。

使用 FxEmbed 是否涉及隐私问题?

项目设计注重用户隐私,不收集或存储个人数据。所有请求处理均为无状态操作,仅临时获取公开的社交媒体数据以生成嵌入内容。服务不设置跟踪器或 Cookie,具体隐私实践可参考项目文档中的'Built with Privacy in Mind'部分。

为什么有些视频或投票无法正常显示?

可能原因包括:原始帖子为私密或受保护内容;平台 API 限制或变更导致数据获取失败;链接格式不正确(如缺少帖子 ID 或路径错误);服务实例的域名配置未包含该链接模式。可检查链接是否符合规范,或查看服务状态页面(status.fxtwitter.com)确认运行正常。