curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "happyhorse-1.0-video-edit",
"prompt": "Have the character in the video wear the striped sweater from the image",
"video_urls": [
"https://cdn.example.com/source.mp4"
],
"image_urls": [
"https://cdn.example.com/sweater.jpg"
],
"quality": "720p",
"keep_original_sound": true
}
'{
"created": 1761313744,
"id": "task-unified-1761313744-h1edgh12",
"model": "happyhorse-1.0-video-edit",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 2400,
"video_duration": 6
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 1608660,
"user_group": "default"
}
}{
"error": {
"code": "missing_video_urls",
"message": "happyhorse-1.0-video-edit requires video_urls or video_url",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to model: happyhorse-1.0-video-edit",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}HappyHorse 1.0 Video-Edit
- HappyHorse 1.0 Videobearbeitung, nimmt 1 Quellvideo und Textanweisungen für Stilübertragung, lokales Ersetzen usw. entgegen
- Akzeptiert optional 0–5 Referenzbilder zur Stil- / Subjektführung
durationwird nicht unterstützt: Ausgabevideo-Dauer =min(Eingabevideo-Dauer, 15), vom Modell bestimmtaspect_ratiowird nicht unterstützt: Ausgabe-Seitenverhältnis entspricht dem Quellvideo- Spezielle Abrechnungsregel:
(Eingabevideo-Dauer + Ausgabevideo-Dauer) × Auflösungs-Stückpreis; das Modell schneidet Eingaben über 15 Sekunden auf 15 Sekunden ab - Asynchroner Verarbeitungsmodus, verwenden Sie die zurückgegebene Aufgaben-ID zur Statusabfrage
- Generierte Video-Links sind 24 Stunden gültig, bitte rechtzeitig speichern
curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "happyhorse-1.0-video-edit",
"prompt": "Have the character in the video wear the striped sweater from the image",
"video_urls": [
"https://cdn.example.com/source.mp4"
],
"image_urls": [
"https://cdn.example.com/sweater.jpg"
],
"quality": "720p",
"keep_original_sound": true
}
'{
"created": 1761313744,
"id": "task-unified-1761313744-h1edgh12",
"model": "happyhorse-1.0-video-edit",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 2400,
"video_duration": 6
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 1608660,
"user_group": "default"
}
}{
"error": {
"code": "missing_video_urls",
"message": "happyhorse-1.0-video-edit requires video_urls or video_url",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to model: happyhorse-1.0-video-edit",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}Autorisierungen
##Alle Schnittstellen erfordern eine Authentifizierung mit Bearer Token##
API Key erhalten:
Besuchen Sie die API-Key-Verwaltungsseite, um Ihren API Key zu erhalten
Im Anfrage-Header hinzufügen:
Authorization: Bearer YOUR_API_KEY
Body
Name des Videogenerierungsmodells
happyhorse-1.0-video-edit "happyhorse-1.0-video-edit"
Bearbeitungsanweisungstext, erforderlich
Längengrenzen:
- Chinesisch: bis zu
2500Zeichen - Nicht-Chinesisch: bis zu
5000Zeichen - Überschüssiger Inhalt wird automatisch abgeschnitten
Prompt-Tipps:
- Verwenden Sie Bearbeitungsanweisungen statt kreativer Beschreibungen
- Beispiele:
Ersetze die Kleidung des Protagonisten durch den gestreiften Pullover im Bild,Ersetze den Videohintergrund durch verschneite Berge
"Have the character in the video wear the striped sweater from the image"
Quellvideo-URL zum Bearbeiten, erforderlich, nur 1 (das erste Element des Arrays wird verwendet)
Videoanforderungen:
- Unterstützte Formate: MP4, MOV (H.264-Codierung empfohlen)
- Dauer:
3~60Sekunden - Das Modell schneidet Eingaben über
15Sekunden automatisch auf die ersten15Sekunden ab - Auflösung: lange Kante ≤
2160px, kurze Kante ≥320px - Seitenverhältnis:
1:2.5~2.5:1 - Dateigröße: ≤
100MB - Bildrate: >
8fps - Video-URL muss öffentlich zugänglich (HTTP oder HTTPS) sein; private OSS-, Intranet- oder authentifizierte Links werden nicht unterstützt
Kompatible Felder: video_url / video werden ebenfalls akzeptiert (niedrigere Priorität als video_urls)
1 element["https://cdn.example.com/source.mp4"]
Referenzbild-URL-Array, optional, 0 ~ 5 Bilder
Wird zur Stil- / Subjektführung verwendet.
Bildanforderungen:
- Unterstützte Formate: JPEG, JPG, PNG, WEBP
- Auflösung: Breite und Höhe ≥
300px - Seitenverhältnis:
1:2.5~2.5:1 - Dateigröße: ≤
10MB - Bild-URLs müssen öffentlich zugänglich (HTTP oder HTTPS) sein
5["https://cdn.example.com/sweater.jpg"]
Ob der Originalton des Eingabevideos beibehalten werden soll, Standard ist false
Optionen:
true: Originalton des Eingabevideos beibehaltenfalse: Originalton verwerfen; das Modell generiert neuen Ton
false
Videoauflösungsstufe, Standard ist 720p
Optionen:
720p: Standardauflösung, dies ist der Standardwert1080p: HD-Auflösung
Abrechnungshinweis: Die Auflösungsstufe wirkt sich direkt auf die Abrechnung aus
720p, 1080p "720p"
Zufalls-Seed, Standard ist zufällig
Details:
- Bereich:
1~2147483647 - Ein fester Seed reduziert parameterbedingte Variationen beim Iterieren über Prompts und verbessert die Reproduzierbarkeit
1 <= x <= 214748364742
HTTPS-Callback-URL nach Aufgabenabschluss
Callback-Zeitpunkt:
- Wird ausgelöst, wenn die Aufgabe abgeschlossen, fehlgeschlagen oder abgebrochen ist
- Wird nach Abschluss der Abrechnungsbestätigung gesendet
Sicherheitseinschränkungen:
- Nur HTTPS-Protokoll wird unterstützt
- Callbacks an private IP-Adressen sind verboten (127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x usw.)
- URL-Länge darf
2048Zeichen nicht überschreiten
Callback-Mechanismus:
- Timeout:
10Sekunden - Bis zu
3Wiederholungsversuche nach Fehler (jeweils nach1/2/4Sekunden) - Format des Callback-Antwort-Bodys entspricht dem Antwortformat der Task-Query-API
- Ein 2xx-Statuscode gilt als Erfolg; andere Statuscodes lösen Wiederholungsversuche aus
"https://your-domain.com/webhooks/video-task-completed"
Antwort
Videogenerierungsaufgabe erfolgreich erstellt
Zeitstempel der Aufgabenerstellung
1761313744
Aufgaben-ID
"task-unified-1761313744-h1edgh12"
Tatsächlich verwendeter Modellname
"happyhorse-1.0-video-edit"
Spezifischer Aufgabentyp
video.generation.task Aufgabenfortschritt in Prozent (0-100)
0 <= x <= 1000
Aufgabenstatus
pending, processing, completed, failed, cancelled "pending"
Detaillierte Informationen zur Videoaufgabe
Show child attributes
Show child attributes
Ausgabetyp der Aufgabe
text, image, audio, video "video"
Nutzungs- und Abrechnungsinformationen
Show child attributes
Show child attributes