影片反推提示詞 API
分析影片擷取詳細鏡頭分解和提示詞的 API。
線上體驗:https://nanophoto.ai/zh-TW/video-reverse-prompt
端點
POST /api/sora-2/reverse-prompt認證
Authorization: Bearer YOUR_API_KEY積分
每次分析消耗 1 積分(僅 API 呼叫;網頁端免費)。
請求
請求標頭
| 請求標頭 | 值 |
|---|---|
Content-Type | application/json |
Authorization | Bearer YOUR_API_KEY |
請求主體參數
| 參數 | 類型 | 必填 | 描述 |
|---|---|---|---|
videoSource | string | 是 | 影片來源類型:youtube、url 或 file |
locale | string | 否 | 輸出語言(預設:en)。支援:en、zh、zh-TW、ja、ko、es、fr、de、pt、ru、ar |
videoUrl | string | 條件必填 | 影片連結。YouTube 連結(當 videoSource 為 youtube 時)或直接 .mp4 連結(當 videoSource 為 url 時) |
videoFile | string | 條件必填 | Base64 編碼的影片檔案(當 videoSource 為 file 時必填) |
videoFileName | string | 否 | 上傳影片的原始檔名 |
範例
YouTube 影片
curl -X POST "https://nanophoto.ai/api/sora-2/reverse-prompt" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-raw '{
"videoSource": "youtube",
"locale": "zh-TW",
"videoUrl": "https://www.youtube.com/watch?v=W-15-UmGP5s"
}'影片 URL
curl -X POST "https://nanophoto.ai/api/sora-2/reverse-prompt" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-raw '{
"videoSource": "url",
"locale": "zh-TW",
"videoUrl": "https://static.nanophoto.ai/demo/sk2-ad.mp4"
}'檔案上傳(Base64)
讀取影片檔案並編碼為 Base64,然後透過 videoFile 欄位傳入。
import { readFile } from "node:fs/promises";
const videoBuffer = await readFile("your-video.mp4");
const videoBase64 = videoBuffer.toString("base64");
const response = await fetch("https://nanophoto.ai/api/sora-2/reverse-prompt", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer YOUR_API_KEY",
},
body: JSON.stringify({
videoSource: "file",
locale: "zh-TW",
videoFile: videoBase64,
videoFileName: "your-video.mp4",
}),
});
// 串流讀取回應
const reader = response.body!.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
process.stdout.write(decoder.decode(value));
}- 僅支援
.mp4格式 - 最大檔案大小:30 MB(Base64 編碼前)
videoFile的值可以是純 Base64 字串,也可以是 Data URL(如data:video/mp4;base64,...)
回應
成功 - 串流輸出
API 回傳串流文字回應(Content-Type: text/plain; charset=utf-8)。AI 分析在生成時即時串流輸出,包含 Markdown 表格格式的詳細鏡頭分解。
輸出內容包括:
- 鏡號、景別/角度、攝影機運動
- 詳細畫面描述
- 音訊分析(BGM、音效、旁白)
- 每個鏡頭的時長
- 整體總結
錯誤
{
"success": false,
"error": "AI service temporarily unavailable. Please try again later.",
"errorCode": "AI_SERVICE_ERROR"
}錯誤碼
| errorCode | HTTP 狀態碼 | 描述 |
|---|---|---|
LOGIN_REQUIRED | 401 | 需要認證 |
API_KEY_RATE_LIMIT_EXCEEDED | 429 | 超出速率限制 |
INSUFFICIENT_CREDITS | 402 | 積分不足 |
INVALID_INPUT | 400 | 缺少必填參數 |
INVALID_YOUTUBE_URL | 400 | YouTube URL 無效 |
INVALID_VIDEO_URL | 400 | 影片 URL 無效 |
INVALID_FORMAT | 400 | MP4 格式無效 |
FILE_TOO_LARGE | 400 | 檔案超過 30MB |
VIDEO_DOWNLOAD_FAILED | 400 | 影片下載失敗 |
VIDEO_PROCESSING_FAILED | 422 | 影片處理失敗 |
AI_SERVICE_ERROR | 503 | AI 服務不可用 |
SERVICE_UNAVAILABLE | 503 | 服務配置問題 |
INTERNAL_ERROR | 500 | 內部伺服器錯誤 |
NanoPhoto.AI文檔