Skip to main content

HappyHorse ビデオ編集 API リファレンス

HappyHorse ビデオ編集モデルは、動画と参照画像を入力として受け取り、テキストの指示に基づいてスタイル変換や部分的な置換などの編集タスクを実行します。

利用可能なリージョン

モデル、エンドポイント URL、API キーがすべて同じリージョンに属していることを確認してください。リージョンをまたいだ呼び出しは失敗します。
このトピックのサンプルコードは、シンガポールリージョンに適用されます。
Alibaba Cloud Model Studio は、中国 (北京) およびシンガポールリージョン向けに、ワークスペース専用のドメインをリリースしました。新しい専用ドメインは、推論リクエストに対してより優れたパフォーマンスと高い安定性を提供します。新しいドメインへの移行を推奨します:
  • 中国 (北京):https://dashscope.aliyuncs.com から https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com
  • シンガポール:https://dashscope-intl.aliyuncs.com から https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
{WorkspaceId} は、ご利用のワークスペース ID です。Alibaba Cloud Model Studio コンソールの [ワークスペース詳細] ページで確認できます。既存のドメインも引き続き完全に機能します。

HTTP リクエスト

ビデオ編集タスクは時間がかかるため (通常 1~5 分)、API は非同期呼び出しを使用します。ワークフローは、以下で説明するように「タスクの作成 -> 結果のポーリング」の 2 つのステップで構成されます:

ステップ 1:タスクを作成してタスク ID を取得

  • シンガポール
  • 米国 (バージニア)
  • 中国 (北京)
  • ドイツ (フランクフルト)
  • 日本 (東京)
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
{WorkspaceId} を実際の ワークスペース ID に置き換えてください。
  • タスクの作成後、返された task_id を使用して結果をクエリします。 task_id は 24 時間有効です。 重複するタスクを作成しないでください。代わりに、ポーリングを使用して結果を取得してください。
  • 初心者向けのガイダンスについては、「Postman または cURL を使用した API の呼び出し」をご参照ください。

リクエストパラメーター

ヘッダー
Content-Type string (必須)リクエストのコンテンツタイプ。application/json である必要があります。Authorization string (必須)Model Studio API キーでリクエストを認証します。例:Bearer sk-xxxx。X-DashScope-Async string (必須)非同期処理を有効にします。HTTP リクエストは非同期呼び出しのみをサポートします。enable である必要があります。
このリクエストヘッダーがない場合、「current user api does not support synchronous calls」というエラーが返されます。
リクエストボディ
model string (必須)モデル名。固定値:happyhorse-1.0-video-edit。input object (必須)編集する動画、参照画像、プロンプトなどの入力情報。

プロパティ

prompt string (必須)スタイル変換や部分的な置換など、意図する編集を記述するテキストプロンプト。任意の言語をサポートします。最大 5,000 文字 (中国語以外) または 2,500 文字 (中国語)。この制限を超えたコンテンツは自動的に切り捨てられます。media array (必須)編集する動画やオプションの参照画像を含むメディアアセットのリスト。配列には、厳密に 1 つの video 要素と、オプションで 0~5 個の reference_image 要素を含める必要があります。

要素のプロパティ

type string (必須)メディアアセットのタイプ。次のいずれかである必要があります:
  • video:必須。編集する動画。
  • reference_image:任意。参照画像。
アセットの制限:
  • 動画:ちょうど 1 つ。
  • 参照画像:0~5 個。
url string (必須)メディアアセットの URL。

動画入力 (type=video)

編集する動画の一般公開されている URL。動画の要件:
  • フォーマット:MP4、MOV (H.264 エンコーディングを推奨)。
  • 動画時間:3~60 秒。
  • 解像度:長辺が 4,096 px を超えず、短辺が 360 px 以上であること。
  • アスペクト比:1:2.5~2.5:1。
  • ファイルサイズ:最大 100 MB。
  • フレームレート:8 fps を超えること。
出力動画の時間:3~15 秒。
  • 入力動画が 15 秒以下の場合、出力動画は入力と同じ長さになります。
  • 入力動画が 15 秒を超える場合、システムは自動的に最初の 15 秒のみを使用するため、出力動画の最大長は 15 秒になります。

画像入力 (type=reference_image)

参照画像の URL または Base64 エンコードされたデータ。画像の要件:
  • フォーマット:JPEG、JPG、PNG、WEBP。
  • 解像度:幅と高さの両方が 300 px 以上であること。
  • アスペクト比:1:2.5~2.5:1。
  • ファイルサイズ:最大 20 MB。
サポートされている入力フォーマット:
  1. 公開 URL:
  2. Base64 エンコードされた画像文字列:
    • フォーマット:data:{MIME_type};base64,{base64_data}。
    • 例:data:image/png;base64,GDU7MtCZzEbTbmRZ...... (デモンストレーションのために省略)。

      Base64 エンコーディングデータ形式

      フォーマット: data:{MIME_type};base64,{base64_data} 。
      • {base64_data}:画像ファイルの Base64 エンコード文字列。
      • {MIME_type}:画像のメディアタイプ。ファイル形式と一致する必要があります。

      画像フォーマット

      MIME タイプ

      JPEG

      image/jpeg

      JPG

      image/jpeg

      PNG

      image/png

      WEBP

      image/webp

parameters object (任意)解像度などのビデオ編集パラメーター。

プロパティ

resolution string (任意)生成される動画の解像度。有効値:
  • 1080P (デフォルト)
  • 720P
watermark boolean (任意)生成された動画にウォーターマークを追加するかどうか。ウォーターマークは右下に「Happy Horse」というテキストで表示されます。デフォルトは true です。
  • true (デフォルト)
  • false
audio_setting string (任意)オーディオコントロール。
  • auto (デフォルト):モデルによって決定されます。
  • origin:入力動画の元のオーディオを保持します。
seed integer (任意)乱数シードは [0, 2147483647] の範囲の整数である必要があります。指定しない場合、ランダムなシードが生成されます。シードを固定すると再現性が向上します。モデルの生成は確率的であるため、同じシードでも同一の結果が保証されるわけではありません。
  • ビデオ編集 (命令 + 参照画像)
# 以下の URL はシンガポールリージョン用です。呼び出す際は、{WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
    -H 'X-DashScope-Async: enable' \
    -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
    -H 'Content-Type: application/json' \
    -d '{
    "model": "happyhorse-1.0-video-edit",
    "input": {
        "prompt": "Make the horse-headed humanoid character in the video wear the striped sweater from the image",
        "media": [
            {
                "type": "video",
                "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260409/dozxak/Wan_Video_Edit_33_1.mp4"
            },
            {
                "type": "reference_image",
                "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260415/hynnff/wan-video-edit-clothes.webp"
            }
        ]
    },
    "parameters": {
        "resolution": "720P"
    }
}'

レスポンスパラメーター

output objectタスクの出力情報。

プロパティ

task_id stringタスク ID。24 時間クエリに有効です。task_status stringタスクのステータス。

列挙値

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN:タスクが存在しないか、ステータスが不明です。
request_id stringトレースとトラブルシューティングのための一意のリクエスト識別子。code stringエラーコード。リクエストが失敗した場合にのみ返されます。「エラーコード」をご参照ください。message string詳細なエラーメッセージ。リクエストが失敗した場合にのみ返されます。「エラーコード」をご参照ください。
  • 成功レスポンス
  • エラーレスポンス
task_id を保存して、タスクのステータスと結果をクエリします。
{
    "output": {
        "task_status": "PENDING",
        "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
    },
    "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}

ステップ 2:タスク ID で結果をクエリ

  • シンガポール
  • 米国 (バージニア)
  • 中国 (北京)
  • ドイツ (フランクフルト)
  • 日本 (東京)
GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
  • ポーリング:ビデオ編集には数分かかります。適切な間隔 (例:15 秒) でポーリングメカニズムを使用して結果を確認してください。
  • タスクステータスのフロー:PENDING (キュー登録済み) → RUNNING (処理中) → SUCCEEDED / FAILED。
  • task_id の有効期限:task_id は 24 時間後に有効期限が切れます。有効期限が切れると、結果を取得できなくなり、API は UNKNOWN のタスクステータスを返します。

リクエストパラメーター

ヘッダー
Authorization string (必須)Model Studio API キーでリクエストを認証します。例:Bearer sk-xxxx。
パスパラメーター
task_id string (必須)タスクの ID。
  • タスク結果のクエリ
{task_id} を、前の API 呼び出しで返された task_id の値に置き換えます。task_id は、クエリに対して 24 時間有効です。{WorkspaceId} を、実際の ワークスペース ID に置き換えます。
curl -X GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id} \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"

レスポンスパラメーター

outputobjectタスクの出力情報。

プロパティ

task_id stringタスク ID。24 時間クエリに有効です。task_status stringタスクのステータス。

列挙値

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN:タスクが存在しないか、ステータスが不明です。
ポーリング中の状態遷移:
  • PENDING → RUNNING → SUCCEEDED または FAILED。
  • 最初のクエリステータスは通常 PENDING または RUNNING です。
  • ステータスが SUCCEEDED に変わると、レスポンスには生成された動画の URL が含まれます。
  • ステータスが FAILED の場合は、エラーメッセージを確認してタスクをリトライしてください。
submit_time stringタスクが送信された時刻。時刻は UTC+08:00 で、フォーマットは YYYY-MM-DD HH:mm:ss.SSS です。scheduled_time stringタスクが実行された時刻。時刻は UTC+08:00 で、フォーマットは YYYY-MM-DD HH:mm:ss.SSS です。end_time stringタスクが完了した時刻。時刻は UTC+08:00 で、フォーマットは YYYY-MM-DD HH:mm:ss.SSS です。video_url string生成された動画の URL。task_status が SUCCEEDED の場合にのみ返されます。24 時間有効です。動画は H.264 エンコーディングの MP4 フォーマットです。orig_prompt stringリクエストパラメーター prompt に対応する元の入力プロンプトです。code stringエラーコード。リクエストが失敗した場合にのみ返されます。「エラーコード」をご参照ください。message string詳細なエラーメッセージ。リクエストが失敗した場合にのみ返されます。「エラーコード」をご参照ください。
usage object使用量の統計。成功した結果のみがカウントされます。

プロパティ

duration float生成された動画の合計動画時間で、課金に使用されます。SR integer生成された動画の解像度ティア。output_video_duration float出力動画の長さ (秒)。input_video_duration float入力動画の長さ (秒)。video_count integer生成された動画の数。常に 1 です。
request_id stringトレースとトラブルシューティングのための一意のリクエスト識別子。
  • タスク成功
  • タスク失敗
  • タスククエリの期限切れ
動画 URL は 24 時間のみ有効で、その後自動的に消去されます。生成された動画は速やかに保存してください。
{
    "request_id": "c11018a8-3f83-9591-a636-xxxxxx",
    "output": {
        "task_id": "051c7b40-b2c5-4341-aee4-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2026-04-26 14:13:14.373",
        "scheduled_time": "2026-04-26 14:13:14.419",
        "end_time": "2026-04-26 14:14:13.679",
        "orig_prompt": "Dress the horse-headed humanoid character in the video in the striped sweater from the image",
        "video_url": "https://dashscope-result.oss-cn-beijing.aliyuncs.com/xxxx.mp4"
    },
    "usage": {
        "duration": 13.24,
        "input_video_duration": 6.62,
        "output_video_duration": 6.62,
        "video_count": 1,
        "SR": 720
    }
}

エラーコード

モデルの呼び出しが失敗し、エラーメッセージが返された場合は、「エラーコード」で解決策をご参照ください。