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

Xiaohongshu / RedNote 動画・画像ダウンロード API

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

xhslink.com と xhslink.cn の共有 URL をノート処理前に解決し、投稿メディアだけをマッピングして作者アバターを画像一覧に混在させません。

RedNoteとXiaohongshu(小紅書)の動画ダウンロードに対応し、記載された短縮URLも処理できます。

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

エンドポイント

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

対応URL形式

  • xiaohongshu.com/explore/{id}
  • xiaohongshu.com/discovery/item/{id}
  • rednote.com/explore/{id}
  • xhslink.com/{path}
  • xhslink.cn/{path}

利用可能な例

  • https://www.xiaohongshu.com/discovery/item/67f75b07000000000b0154b3
  • https://www.xiaohongshu.com/explore/671e2c6500000000210016b9
  • https://www.rednote.com/explore/6a51ee42000000001702879f
  • http://xhslink.com/o/2CxGwu8nSPx

このプラットフォームのレスポンス内容

画像ノートは全コンテンツ画像と first-frame 候補を、動画ノートは動画と関連画像を元の順序で返します。

公開済みプラットフォームデータ項目

対象投稿の最終レスポンスに含まれるその他の公開項目も、機密情報を再帰的に除去したうえで保持します。以下の項目は現在の platformDataVersion 内で安定しています。

項目説明
data.mediaobject正規化された画像、動画、音声、タイトル、サムネイル、再生時間。
data.platformDataVersionstringRedNote / Xiaohongshu(小紅書)の公開データ契約バージョン。現在は1です。
data.platformData.note_idstring対象投稿の公開識別子です。大きな数値の精度を失わないよう文字列として保存します。
data.platformData.titlestring対象投稿に公開表示されるタイトル、本文、説明です。
data.platformData.descstring対象投稿に公開表示されるタイトル、本文、説明です。
data.platformData.typestring対象投稿のプラットフォームレスポンスに含まれる公開項目です。
data.platformData.userobject対象投稿の投稿者に関する公開プロフィール項目です。連絡先や認証情報は含みません。
data.platformData.images_listarray対象投稿の画像、カバー、カルーセル項目です。配列順はプラットフォームの返却順を維持します。
data.platformData.video_info_v2object動画の再生候補、画質、コーデック、サイズ、メディアURLに関する情報です。
data.platformData.interact_infoobject再生、いいね、コメント、保存、共有など公開されているエンゲージメント指標です。
data.platformData.native_voice_infoobject対象投稿で公開されている楽曲、オリジナル音声、分離音声の情報です。
{
  "status": 200,
  "data": {
    "media": {
      "platform": "xiaohongshu",
      "title": "公開投稿の例",
      "thumbnail": "https://public-cdn.example/cover.jpg",
      "duration": 18,
      "images": [],
      "videos": [
        {
          "url": "https://public-cdn.example/video.mp4",
          "quality": "1080p",
          "mimeType": "video/mp4",
          "width": 1920,
          "height": 1080,
          "hasAudio": true,
          "source": "direct"
        }
      ],
      "audios": []
    },
    "platformData": {
      "note_id": "67f75b07000000000b0154b3",
      "title": "Example public RedNote post",
      "desc": "Example note description",
      "type": "video",
      "user": {
        "user_id": "creator-id",
        "nickname": "Example creator"
      },
      "images_list": [
        {
          "width": 1080,
          "height": 1440,
          "url": "https://media.example/image.jpg"
        }
      ],
      "interact_info": {
        "liked_count": "120",
        "collected_count": "24"
      }
    },
    "platformDataVersion": "1"
  },
  "msg": "success"
}

ダウンロードとプロキシの注意点

Xiaohongshu Referer とブラウザー User-Agent を付けてバックエンド取得します。CDN のリファラー、Cookie、期限、地域制限に注意します。

制限と動作

プロフィール、検索、コレクション、非公開・削除済みノート、ログイン限定、地域で利用できない内容には対応しません。

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

ダウンロード可能なメディアを返した場合のみ1クレジットを消費します。認証、入力検証、権限、コンテンツ利用不可、メディアなし、外部サービス障害は課金されません。

トラブルシューティング

  • 公開ページに必要なアクセスパラメータを含む完全な URL を保持します。
  • ブラウザーから CDN を直接呼ばずバックエンドでプロキシします。
  • 短縮 URL やメディア URL が期限切れなら再解析します。

よくある質問

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

いいえ。ダウンロード可能なメディアを返した場合のみ1クレジットを消費します。

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

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

関連ガイド

対話型APIリファレンス

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

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

POST

試してみる

ダウンロード可能なメディアを返す成功リクエストは 1 credit を消費します。失敗時は課金されません。

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

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/xiaohongshu/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": {      "note_id": "string",      "title": "string",      "desc": "string",      "type": "string",      "user": {},      "images_list": [        null      ],      "video_info_v2": {},      "interact_info": {},      "native_voice_info": {}    },    "platformDataVersion": "1"  },  "msg": "success"}