EasyDown API Docs
プラットフォーム別動画API

Twitter / X 動画ダウンロード API

Twitter / Xの対応する公開URLを解析し、ダウンロード可能な動画・画像・音声と、機密項目を除去したプラットフォームデータを取得します。URL形式、レスポンス項目、エラー、実装例を掲載しています。

x.com と twitter.com の status URL を同じ REST フローで処理し、大きな投稿 ID は文字列のまま、全メディア候補を保持します。

x.comとtwitter.comの両方を受け付けるX / Twitter動画ダウンロード機能の実装に適しています。

安定したダウンロードメディアに加えてプラットフォーム固有項目が必要な場合に使用します。

エンドポイント

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投稿URL

利用可能な例

  • 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再生、いいね、コメント、保存、共有など公開されているエンゲージメント指標です。

実レスポンス例

サンプルURL
https://x.com/Taozhishuishui/status/2041638397358260556/video/1
Endpoint
/api/v1/platforms/twitter/parse
消費 credits
1 credits
Cache
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 を転送してバックエンド取得します。選択 URL が期限切れなら再解析します。

制限と動作

プロフィール、検索、Spaces、コミュニティ、Broadcast、非公開・削除済み投稿、CDN 直 URL には対応しません。

公開コンテンツのみ対象です。非公開、削除済み、年齢・地域制限、ライブ配信、その他利用できないコンテンツは解析に失敗する場合があります。失敗時にクレジットは消費されません。

Twitter / X の成功解析は 1 credits です。失敗、非対応、認証失敗、権限エラー、メディアなし、外部サービス障害のレスポンスは 0 credits です。 X-Credits-Charged は成功レスポンスで実際に消費した credits を返します。

トラブルシューティング

  • 一つの投稿 ID を含む status URL を送信します。
  • 配列位置だけでなく画質とサイズで videos[] を選択します。
  • メディアが無効になったら元 status を再解析します。

よくある質問

失敗したリクエストは課金されますか?

いいえ。ダウンロード可能なメディアを返した場合のみ、プラットフォーム別 credits を消費します。

正しい公開URLでも失敗するのはなぜですか?

投稿が削除済み、非公開、地域制限、ライブ、メディアなし、または外部サービスが一時的に利用できない可能性があります。

関連ガイド

対話型APIリファレンス

以下のcurl、JavaScript、Pythonの例とスキーマは、本番環境のOpenAPI 3.1契約から生成されます。

「Try it」パネルはapi.easydown.orgへ直接リクエストします。トークンはページのメモリだけに保持され、再読み込みすると消去されます。

POST

試してみる

ダウンロード可能なメディアを返す成功レスポンスはプラットフォーム別に課金されます。失敗時は課金されません。

トークンはこのページのメモリにだけ保持され、再読み込みまたは終了時に消去されます。

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"}