Material Link Re-signing

Download links returned by the search APIs carry a 24-hour expiring signature. After expiry, no paid re-search is needed — use this API to batch re-sign fresh download links for materials you have already obtained. Free, unlimited, synchronous.

💡 Grant model: once a material appears in the results of any of your search calls, it is permanently granted to you — you can re-sign its download link with this API at any time, free of charge and without limit. Re-signing creates no task record and consumes no quota.

Use together with General Material Search and Video Clip Search: search "finds and grants", this API "re-fetches after expiry".

Re-signing API

Basic Information

ItemValue
MethodPOST
Path/task/material_resign
Content-Typeapplication/json
AuthenticationAuthorization header (raw API Key)
Response modeSynchronous (not an async task)
BillingFree, no task record, no usage cap

⚠️ Note: currently only video materials (clip source mp4) can be re-signed. For expired image / audio links, simply run the search again to get fresh links (grants for these are recorded as well; once re-signing is extended to them the same free flow applies).

Request Parameters (Body)

ParameterTypeRequiredDefaultDescription
clip_idsarray<string>Yes—Material id list, up to 500 per call; strings are recommended (ids are big integers that lose precision as JavaScript numbers; numeric values are also accepted)

Request Example

curl -X POST https://api.ai-mcn.tv:10000/task/material_resign \
  -H "Authorization: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "clip_ids": ["537489015178247", "537489015178248"]
  }'

Success Response Example

{
  "code": 200,
  "msg": "success",
  "data": {
    "clips": [
      {
        "clip_id": "537489015178247",
        "url": "https://api.ai-mcn.tv:9000/nmcn/material/video_clip/raw/537489015178247.mp4?expires=1787414400&sign=..."
      }
    ],
    "missing": [
      { "clip_id": "537489015178248", "reason": "not granted" }
    ]
  }
}

Response Parameters

FieldTypeDescription
clipsarraySuccessfully re-signed materials, each with a freshly signed source download link (valid 24h, re-sign again after expiry)
clips[].clip_idstringMaterial id
clips[].urlstringSource download link (mp4, freshly signed)
missingarrayRejected materials with per-item reasons; other materials in the batch are unaffected
missing[].clip_idstringMaterial id
missing[].reasonstringRejection reason: not granted (the material never appeared in your search results) / invalid clip_id / material removed from library

Error Codes

HTTP / codeMeaning
400Invalid parameters (clip_ids missing, empty, or over 500 items)
401Authentication failed (API Key missing or invalid)
6401 / 6402Upstream search service error / timeout, retry later

ℹ️ Info: a "not granted" entry in missing usually means either — (1) the material never appeared in your search results (run a search once to obtain the grant); or (2) it was searched before the grant ledger existed — re-run the same search once to backfill the grant.