EasyDown API Docs
各平台视频下载 API

Twitter / X 视频下载 API

使用 Twitter / X 视频下载 API 解析已支持的公开链接,返回视频、图片、音频和清理敏感字段后的平台全量数据。

x.com 与 twitter.com 的 status 链接进入同一 REST 流程,大整数帖子 ID 始终按字符串处理,并保留全部媒体规格。

同时适用于 X 视频下载和 Twitter 视频下载场景,可接收 x.com 与 twitter.com 链接。

当你既需要稳定的可下载媒体,又需要平台专属字段时,使用此接口。

接口地址

POST https://api.easydown.org/api/v1/platforms/twitter/parse

支持的 URL 格式

  • x.com/{user}/status/{id}
  • twitter.com/{user}/status/{id}
  • x.com/i/status/{id}
  • x.com/u/{user}/{id}
  • 复制后 /status 后带空格的 X 状态链接

可用示例

  • https://x.com/i/status/2064933214720803143
  • https://x.com/Taozhishuishui/status/2041638397358260556/video/1
  • https://x.com/u/Dodger316/2070421188644347912
  • https://x.com/lindsavva69132/status /2091460944987816084/video/1

该平台响应会返回什么

视频帖子可能返回多种码率和尺寸;图片帖子会保留全部正文图片,不会用缩略图替代原媒体。

已发布的平台数据字段

接口会保留目标作品最终响应中的其他公开字段,并递归删除敏感字段。下表字段在当前 platformDataVersion 内保持稳定。

字段类型说明
data.mediaobject统一的图片、视频、音频、标题、封面和时长。
data.platformDataVersionstringTwitter / X的公开数据契约版本,当前为 1
data.platformData.id_strstring目标作品在平台中的公开标识,请按字符串保存以避免大整数精度丢失。
data.platformData.textstring目标作品公开展示的标题、正文或说明文字。
data.platformData.full_textstring目标作品公开展示的标题、正文或说明文字。
data.platformData.userobject目标作品作者的公开资料字段,不包含联系方式或鉴权信息。
data.platformData.mediaobject平台公开返回的播放状态、格式或补充元数据。
data.platformData.metricsobject平台公开展示的播放、点赞、评论、收藏或分享等互动统计。

真实调用样例

示例链接
https://x.com/Taozhishuishui/status/2041638397358260556/video/1
Endpoint
/api/v1/platforms/twitter/parse
本次扣费
1 credits
缓存
HIT
采集时间
2026-09-17T05:08:19.613Z

通用格式

通用接口会把同一个媒体对象直接放在 `data` 中返回。

/api/v1/parse response
{
  "status": 200,
  "data": {
    "platform": "twitter",
    "title": "【NSFW原创】【阳具调教】【性沦陷教学】 【@XPeach_Lord教学】【桃门】\n想必大家也都挺好奇如何达到是17次/8min的高潮的效果的,本期就是前戏过程。\n可以见到从开始的勉强纳入,到第5分钟失控,就这样渐进调教,视频结束时A点失守后逐渐沦陷。\n(上篇) https://t.co/SsH6GObNbz",
    "thumbnail": "https://pbs.twimg.com/amplify_video_thumb/2041600872153804803/img/DGcrmhdZesdS8hse.jpg",
    "duration": 0,
    "images": [],
    "videos": [
      {
        "url": "https://video.twimg.com/amplify_video/2041600872153804803/vid/avc1/320x568/iITUUBeBrCGVEG0l.mp4?tag=21",
        "quality": "632kbps",
        "mimeType": "video/mp4",
        "width": 0,
        "height": 0,
        "hasAudio": true,
        "source": "direct",
        "headers": {}
      },
      {
        "url": "https://video.twimg.com/amplify_video/2041600872153804803/vid/avc1/480x852/VIhohHzSf7ArG6lz.mp4?tag=21",
        "quality": "950kbps",
        "mimeType": "video/mp4",
        "width": 0,
        "height": 0,
        "hasAudio": true,
        "source": "direct",
        "headers": {}
      },
      {
        "url": "https://video.twimg.com/amplify_video/2041600872153804803/vid/avc1/720x1280/gBsBLXqQxHI3BGZP.mp4?tag=21",
        "quality": "2176kbps",
        "mimeType": "video/mp4",
        "width": 0,
        "height": 0,
        "hasAudio": true,
        "source": "direct",
        "headers": {}
      }
    ],
    "audios": []
  },
  "msg": "success"
}

平台完整格式

平台专用接口会同时返回通用媒体结构和清理后的平台完整数据。

/api/v1/platforms/twitter/parse
{
  "status": 200,
  "data": {
    "media": {
      "platform": "twitter",
      "title": "【NSFW原创】【阳具调教】【性沦陷教学】 【@XPeach_Lord教学】【桃门】\n想必大家也都挺好奇如何达到是17次/8min的高潮的效果的,本期就是前戏过程。\n可以见到从开始的勉强纳入,到第5分钟失控,就这样渐进调教,视频结束时A点失守后逐渐沦陷。\n(上篇) https://t.co/SsH6GObNbz",
      "thumbnail": "https://pbs.twimg.com/amplify_video_thumb/2041600872153804803/img/DGcrmhdZesdS8hse.jpg",
      "duration": 0,
      "images": [],
      "videos": [
        {
          "url": "https://video.twimg.com/amplify_video/2041600872153804803/vid/avc1/320x568/iITUUBeBrCGVEG0l.mp4?tag=21",
          "quality": "632kbps",
          "mimeType": "video/mp4",
          "width": 0,
          "height": 0,
          "hasAudio": true,
          "source": "direct",
          "headers": {}
        },
        {
          "url": "https://video.twimg.com/amplify_video/2041600872153804803/vid/avc1/480x852/VIhohHzSf7ArG6lz.mp4?tag=21",
          "quality": "950kbps",
          "mimeType": "video/mp4",
          "width": 0,
          "height": 0,
          "hasAudio": true,
          "source": "direct",
          "headers": {}
        },
        {
          "url": "https://video.twimg.com/amplify_video/2041600872153804803/vid/avc1/720x1280/gBsBLXqQxHI3BGZP.mp4?tag=21",
          "quality": "2176kbps",
          "mimeType": "video/mp4",
          "width": 0,
          "height": 0,
          "hasAudio": true,
          "source": "direct",
          "headers": {}
        }
      ],
      "audios": []
    },
    "platformData": {
      "likes": 54553,
      "created_at": "Tue Apr 07 22:05:00 +0000 2026",
      "status": "active",
      "text": "【NSFW原创】【阳具调教】【性沦陷教学】 【@XPeach_Lord教学】【桃门】\n想必大家也都挺好奇如何达到是17次/8min的高潮的效果的,本期就是前戏过程。\n可以见到从开始的勉强纳入,到第5分钟失控,就这样渐进调教,视频结束时A点失守后逐渐沦陷。\n(上篇) https://t.co/SsH6GObNbz",
      "display_text": "【NSFW原创】【阳具调教】【性沦陷教学】 【@XPeach_Lord教学】【桃门】\n想必大家也都挺好奇如何达到是17次/8min的高潮的效果的,本期就是前戏过程。\n可以见到从开始的勉强纳入,到第5分钟失控,就这样渐进调教,视频结束时A点失守后逐渐沦陷。\n(上篇)",
      "retweets": 3183,
      "bookmarks": 23572,
      "quotes": 30,
      "reply_to": null,
      "replies": 197,
      "lang": "zh",
      "in_reply_to_screen_name": null,
      "in_reply_to_status_id_str": null,
      "in_reply_to_user_id_str": null,
      "sensitive": true,
      "views": "2957748",
      "conversation_id": "2041638397358260556",
      "entities": {
        "media": [
          {
            "additional_media_info": {
              "monetizable": false
            },
            "display_url": "pic.x.com/SsH6GObNbz",
            "expanded_url": "https://x.com/Taozhishuishui/status/2041638397358260556/video/1",
            "ext_media_availability": {
              "status": "Available"
            },
            "id_str": "2041600872153804803",
            "indices": [
              133,
              156
            ],
            "media_key": "13_2041600872153804803",
            "media_results": {
              "result": {
                "media_key": "13_2041600872153804803"
              }
            },
            "media_url_https": "https://pbs.twimg.com/amplify_video_thumb/2041600872153804803/img/DGcrmhdZesdS8hse.jpg",
            "original_info": {
              "focus_rects": [],
              "height": 1280,
              "width": 720
            },
            "sizes": {
              "large": {
                "h": 1280,
                "resize": "fit",
                "w": 720
              },
              "medium": {
                "h": 1200,
                "resize": "fit",
                "w": 675
              },
              "small": {
                "h": 680,
                "resize": "fit",
                "w": 383
              },
              "thumb": {
                "h": 150,
                "resize": "crop",
                "w": 150
              }
            },
            "type": "video",
            "url": "https://t.co/SsH6GObNbz",
            "video_info": {
              "aspect_ratio": [
                9,
                16
              ],
              "duration_millis": 474918,
              "variants": [
                {
                  "content_type": "application/x-mpegURL",
                  "url": "https://video.twimg.com/amplify_video/2041600872153804803/pl/UJcuKrOyPlFXE_KS.m3u8?tag=21"
                },
                {
                  "bitrate": 632000,
                  "content_type": "video/mp4",
                  "url": "https://video.twimg.com/amplify_video/2041600872153804803/vid/avc1/320x568/iITUUBeBrCGVEG0l.mp4?tag=21"
                },
                {
                  "bitrate": 950000,
                  "content_type": "video/mp4",
                  "url": "https://video.twimg.com/amplify_video/2041600872153804803/vid/avc1/480x852/VIhohHzSf7ArG6lz.mp4?tag=21"
                },
                {
                  "bitrate": 2176000,
                  "content_type": "video/mp4",
                  "url": "https://video.twimg.com/amplify_video/2041600872153804803/vid/avc1/720x1280/gBsBLXqQxHI3BGZP.mp4?tag=21"
                }
              ]
            }
          }
        ],
        "user_mentions": [
          {
            "id_str": "1434021907909599238",
            "indices": [
              23,
              35
            ],
            "name": "桃桃大王(大号)",
            "screen_name": "XPeach_Lord"
          }
        ],
        "hashtags": [],
        "symbols": [],
        "timestamps": [],
        "urls": []
      },
      "conversation_control": {
        "policy": null
      },
      "initial_tweets": null,
      "author": {
        "rest_id": "3145035893",
        "name": "桃汁水水",
        "screen_name": "Taozhishuishui",
        "image": "https://pbs.twimg.com/profile_images/1986486933443469312/fKhObBUD_normal.jpg",
        "blue_verified": true,
        "verification": null,
        "sub_count": 348228
      },
      "media": {
        "video": [
          {
            "media_url_https": "https://pbs.twimg.com/amplify_video_thumb/2041600872153804803/img/DGcrmhdZesdS8hse.jpg",
            "variants": [
              {
                "content_type": "application/x-mpegURL",
                "url": "https://video.twimg.com/amplify_video/2041600872153804803/pl/UJcuKrOyPlFXE_KS.m3u8?tag=21"
              },
              {
                "bitrate": 632000,
                "content_type": "video/mp4",
                "url": "https://video.twimg.com/amplify_video/2041600872153804803/vid/avc1/320x568/iITUUBeBrCGVEG0l.mp4?tag=21"
              },
              {
                "bitrate": 950000,
                "content_type": "video/mp4",
                "url": "https://video.twimg.com/amplify_video/2041600872153804803/vid/avc1/480x852/VIhohHzSf7ArG6lz.mp4?tag=21"
              },
              {
                "bitrate": 2176000,
                "content_type": "video/mp4",
                "url": "https://video.twimg.com/amplify_video/2041600872153804803/vid/avc1/720x1280/gBsBLXqQxHI3BGZP.mp4?tag=21"
              }
            ],
            "aspect_ratio": [
              9,
              16
            ],
            "duration": 474918,
            "original_info": {
              "focus_rects": [],
              "height": 1280,
              "width": 720
            },
            "id": "2041600872153804803"
          }
        ]
      },
      "id": "2041638397358260556"
    },
    "platformDataVersion": "1"
  },
  "msg": "success"
}

下载与代理建议

后端下载时携带 X Referer 与浏览器 User-Agent,大文件透传 Range;所选规格过期后重新解析。

限制与行为

不支持主页、搜索页、Spaces、社区、Broadcast、私密帖子、已删除帖子和 CDN 直链。

仅支持公开内容。私密、已删除、年龄限制、地区限制、直播或其他不可用内容可能解析失败,失败不消耗额度。

Twitter / X 成功解析一次扣 1 credits。失败、不支持、鉴权失败、权限错误、无媒体和上游故障响应均扣 0 credits。 X-Credits-Charged 会返回本次成功响应实际扣除的 credits。

故障排查

  • 提交包含单个帖子 ID 的 status URL。
  • 按清晰度和尺寸选择 videos[],不要只依赖数组位置。
  • 媒体规格失效时重新解析原始 status。

常见问题

失败请求会消耗额度吗?

不会。只有 API 成功返回可下载媒体后才按平台费率扣 credits。

为什么有效的公开链接仍可能失败?

作品可能已经删除、设为私密、存在地区限制、属于直播、没有可下载媒体,或上游服务暂时不可用。

相关指南

交互式 API 参考

下方 curl、JavaScript、Python 示例和接口模式定义均由生产 OpenAPI 3.1 契约生成。

在线调试面板会直接请求 api.easydown.org。Token 只保存在当前页面内存中,刷新后立即清除。

POST

在线调试

成功返回可下载媒体会按平台费率扣费;失败请求不扣费。

Token 仅保存在当前页面内存中,关闭或刷新页面后立即清除。

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/api/v1/platforms/twitter/parse" \  -H "Content-Type: application/json" \  -d '{}'
{  "status": 200,  "data": {    "media": {      "platform": "tiktok",      "title": "string",      "thumbnail": "string",      "duration": 0,      "images": [        {          "url": "http://example.com",          "width": 0,          "height": 0        }      ],      "videos": [        {          "url": "http://example.com",          "quality": "string",          "mimeType": "string",          "width": 0,          "height": 0,          "hasAudio": true,          "source": "direct",          "headers": {            "property1": "string",            "property2": "string"          }        }      ],      "audios": [        {          "url": "http://example.com",          "quality": "string",          "mimeType": "string",          "bitrate": 0,          "source": "direct",          "headers": {            "property1": "string",            "property2": "string"          }        }      ]    },    "platformData": {      "id_str": "string",      "text": "string",      "full_text": "string",      "user": {},      "media": {},      "metrics": {}    },    "platformDataVersion": "1"  },  "msg": "success"}