1. 项目定位与用途
FxEmbed 是一个基于 Cloudflare Workers 的链接转换服务,作为 FxTwitter、FixupX 和 FxBluesky 的托管平台,通过修改社交媒体链接前缀,在 Discord、Telegram 等第三方平台生成增强的富媒体嵌入。它允许用户在不离开聊天应用的情况下,完整查看视频、投票、多图、翻译等内容,提供接近原生的浏览体验。项目采用 TypeScript 开发,注重用户隐私,支持多语言国际化,并通过配置实现多品牌运营。
FxEmbed/FxEmbed:FxEmbed 是一个基于 Cloudflare Workers 的 TypeScript 服务,通过转换 X/Twitter 和 Bluesk本页整理它解决什么问题、适用场景、安装方式和使用方法。
FxEmbed 是一个基于 Cloudflare Workers 的 TypeScript 服务,通过转换 X/Twitter 和 Bluesky 链接前缀,在 Discord、Telegram 等平台生成支持视频、投票、多图、翻译等功能的增强嵌入,注重用户隐私。
FxEmbed 是一个基于 Cloudflare Workers 的链接转换服务,作为 FxTwitter、FixupX 和 FxBluesky 的托管平台,通过修改社交媒体链接前缀,在 Discord、Telegram 等第三方平台生成增强的富媒体嵌入。它允许用户在不离开聊天应用的情况下,完整查看视频、投票、多图、翻译等内容,提供接近原生的浏览体验。项目采用 TypeScript 开发,注重用户隐私,支持多语言国际化,并通过配置实现多品牌运营。
原生 X/Twitter 和 Bluesky 嵌入在 Discord、Telegram 等平台存在严重功能缺失:视频无法播放、投票仅显示静态图片、多图帖子只能看到第一张、无法直接获取媒体文件、缺少翻译支持等。FxEmbed 通过解析原始帖子数据并生成优化的 Open Graph 卡片和 HTML,完整还原这些富媒体功能。同时,它解决了用户需要在不同平台间切换查看完整内容的痛点,所有增强功能仅通过修改链接前缀即可实现,无需安装额外软件或注册账户。
- 社交媒体内容分享:在 Discord 频道分享 X/Twitter 投票、视频、多图帖子,确保所有成员能直接互动查看。 - 媒体获取:需要下载 Twitter 或 Bluesky 视频/图片时,通过直接媒体链接(d. 前缀或文件后缀)获取原始文件。 - 内容简化:使用画廊视图(g. 前缀)仅展示媒体和作者信息,适用于需要最小化嵌入的场景;使用马赛克模式(m. 前缀)将多图合并为单张图片节省空间。 - 跨语言交流:通过添加语言代码(如 /en)自动翻译帖子,方便非母语用户理解内容。 - 开发者集成:作为服务被其他应用调用,提供标准化的社交媒体嵌入增强方案。
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 格式化代码。
基础链接转换:将 twitter.com 替换为 fxtwitter.com;将 x.com 替换为 fixupx.com;将 bsky.app 替换为 fxbsky.app。功能前缀包括:d. 前缀获取直接媒体文件;m. 前缀生成图片马赛克;g. 前缀生成画廊视图;i. 前缀提供即时视图;t. 前缀仅显示文本内容。翻译功能在帖子链接后添加 /en 等两字母 ISO 语言代码。直接媒体链接还支持添加 .mp4 或 .jpg 文件后缀,多图帖子可指定 photo/N 编号。
FxEmbed 采用 Serverless 架构,所有请求由 Cloudflare Workers 全球边缘节点处理,确保低延迟和高可用性。其设计遵循'配置驱动'原则,通过 .env 和 branding.json 动态管理多租户域名、品牌视觉(图标、颜色)及功能开关,支持 FxTwitter、FixupX、FxBluesky、FixTok 等多个品牌独立运营。技术栈包括 Hono 框架处理路由、i18next-icu 实现 ICU 格式国际化、zod 进行数据验证、@hono/sentry 集成错误监控。构建流程使用 esbuild 压缩打包,并通过 wrangler 部署。项目强调隐私保护,不记录用户数据,所有处理均在请求上下文中即时完成。
FxEmbed 是一个基于 Cloudflare Workers 的链接转换服务。当用户将 X/Twitter 或 Bluesky 链接的前缀改为 fxtwitter.com、fixupx.com 或 fxbsky.app 时,服务会解析原始帖子数据并生成优化的嵌入卡片,使视频可播放、投票可交互、多图完整显示等,所有处理在边缘节点完成,无需注册或安装。
目前支持 X/Twitter 和 Bluesky 平台。功能包括:视频/GIF 嵌入与播放、投票结果展示(含进行中投票)、引用帖子及其媒体显示、多语言自动翻译(添加 /en 等语言代码)、直接媒体文件链接(d. 前缀或 .mp4/.jpg 后缀)、多图合并为马赛克(m. 前缀)、画廊视图(g. 前缀)及文本仅限视图(t. 前缀)。
需 Node.js 环境:克隆仓库后运行 npm install 安装依赖;复制 .env.example 为 .env 并配置域名列表;执行 npm run build 构建;使用 wrangler deploy 部署到 Cloudflare Workers(需 Cloudflare 账户和 wrangler 配置)。详细步骤见项目 README。
项目设计注重用户隐私,不收集或存储个人数据。所有请求处理均为无状态操作,仅临时获取公开的社交媒体数据以生成嵌入内容。服务不设置跟踪器或 Cookie,具体隐私实践可参考项目文档中的'Built with Privacy in Mind'部分。
可能原因包括:原始帖子为私密或受保护内容;平台 API 限制或变更导致数据获取失败;链接格式不正确(如缺少帖子 ID 或路径错误);服务实例的域名配置未包含该链接模式。可检查链接是否符合规范,或查看服务状态页面(status.fxtwitter.com)确认运行正常。