Metinden videoya
Kaynak medya gerekmediğinde metin istemiyle başlayın. seedance-2.0 veya seedance-2.5 seçip modele özgü çıktı ayarlarını kontrol edin.
Video API’leri
Metinden videoya ve referans tabanlı iş akışları için Seedance video API’lerini karşılaştırın. Girdileri, fiyatları, görev sorgulamasını ve tamamlanan videonun alınmasını inceleyin.
Güncel Seedance modelleri tamamlanma tokenlarıyla ücretlendirilir. Süre tahmini kullanımı etkiler, kesin hesap birimi değildir. Sonucu almak veya hatayı bildirmek için görev kimliğini saklayın.
Belirli bir görev için
Kaynak medya gerekmediğinde metin istemiyle başlayın. seedance-2.0 veya seedance-2.5 seçip modele özgü çıktı ayarlarını kontrol edin.
Başlangıç görselini hareket istemiyle canlandırın. Başka girdi modlarının alanlarını karıştırmak yerine seçilen modelin görselden videoya kılavuzunu kullanın.
Çekimin başlangıç ve bitişini yönlendirmek için ilk kareyi ve gerekirse son kareyi sağlayın. Model kılavuzundaki kare rollerini ve medya gereksinimlerini kontrol edin.
Referansları belgelenen görsel, video ve ses rolleriyle birleştirin. En az bir görsel veya video referansı gerekir; yalnızca ses yeterli değildir.
Faturalandırma birimi
Milyon tamamlanma tokenı başına USD. Geçerli ücret modele, çıktı çözünürlüğüne ve video referansı koşullarına bağlıdır.
İşletim sınırları
Entegrasyon kılavuzları
Güncel katalog kapsamı
API kimliklerini, işlemleri, sağlayıcıları ve fiyatları karşılaştırın. Kullanım maliyetlerini tahmin etmeden önce katalog tarihini ve her işlemin faturalandırma birimini kontrol edin.
Seedance 2.0 ile video üretin.
POST /v1/video/seedance Video görevi gönderimi referansı GET /v1/jobs/{id} Görev durumunu sorgulama referansı 480p · Video referansıyla
Resmi fiyat
API Hop fiyatı Tasarruf 5%
480p · Video referansı olmadan
Resmi fiyat
API Hop fiyatı Tasarruf 5%
720p · Video referansıyla
Resmi fiyat
API Hop fiyatı Tasarruf 5%
720p · Video referansı olmadan
Resmi fiyat
API Hop fiyatı Tasarruf 5%
1080p · Video referansıyla
Resmi fiyat
API Hop fiyatı Tasarruf 5%
1080p · Video referansı olmadan
Resmi fiyat
API Hop fiyatı Tasarruf 5%
4k · Video referansıyla
Resmi fiyat
API Hop fiyatı Tasarruf 5%
4k · Video referansı olmadan
Resmi fiyat
API Hop fiyatı Tasarruf 5%
Referans fiyat bağımsız olarak doğrulanmamıştır. Maliyetleri karşılaştırmadan önce sağlayıcının güncel tarifelerini, faturalandırma birimlerini ve geçerli koşullarını kontrol edin.
Seedance 2.5 ile video üretin.
POST /v1/video/seedance Video görevi gönderimi referansı GET /v1/jobs/{id} Görev durumunu sorgulama referansı 480p · Video referansıyla
Resmi fiyat
API Hop fiyatı Tasarruf 2%
480p · Video referansı olmadan
Resmi fiyat
API Hop fiyatı Tasarruf 2%
720p · Video referansıyla
Resmi fiyat
API Hop fiyatı Tasarruf 2%
720p · Video referansı olmadan
Resmi fiyat
API Hop fiyatı Tasarruf 2%
1080p · Video referansıyla
Resmi fiyat
API Hop fiyatı Tasarruf 2%
1080p · Video referansı olmadan
Resmi fiyat
API Hop fiyatı Tasarruf 2%
Referans fiyat bağımsız olarak doğrulanmamıştır. Maliyetleri karşılaştırmadan önce sağlayıcının güncel tarifelerini, faturalandırma birimlerini ve geçerli koşullarını kontrol edin.
İstek örneği
Bu örnekler bir Seedance 2.5 metinden videoya görevi gönderir, jobId değerini saklar ve zaman sınırıyla GET /v1/jobs/{jobId} sorgular. outputResult yalnızca COMPLETED sonrası alınır; FAILED ve CANCELLED ayrı işlenir. Bunlar entegrasyon örnekleridir, üretilmiş video gösterimleri değildir.
# Requires bash, curl and jq. A polling timeout does not cancel the job.
set -euo pipefail
BASE_URL="https://api.apihop.ai"
API_KEY='YOUR_API_KEY'
created=$(curl --fail-with-body --silent --show-error --max-time 30 \
"$BASE_URL/v1/video/seedance" \
-H "Authorization: Bearer $API_KEY" -H 'Content-Type: application/json' \
--data '{"model":"seedance-2.5","prompt":"A calm city street at dawn","duration":5,"resolution":"720p"}')
job_id=$(printf '%s' "$created" | jq -er '.data.jobId | select(. != null) | tostring')
deadline=$((SECONDS + 600))
while (( SECONDS < deadline )); do
job=$(curl --fail-with-body --silent --show-error --max-time 30 \
"$BASE_URL/v1/jobs/$job_id" -H "Authorization: Bearer $API_KEY")
status=$(printf '%s' "$job" | jq -er '.data.status')
case "$status" in
COMPLETED) printf '%s' "$job" | jq -e '.data.outputResult'; exit 0 ;;
FAILED|CANCELLED) printf 'Job %s: %s\n' "$job_id" "$status" >&2; exit 1 ;;
esac
sleep 5
done
printf 'Polling timed out; retain jobId for a later status check: %s\n' "$job_id" >&2
exit 1const baseUrl = "https://api.apihop.ai";
const headers = { Authorization: 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' };
async function request(path, options = {}) {
const response = await fetch(baseUrl + path, { ...options, headers, signal: AbortSignal.timeout(30000) });
if (!response.ok) throw new Error('HTTP ' + response.status);
const result = await response.json();
if (result.success === false) throw new Error(JSON.stringify(result.error));
return result.data;
}
const created = await request('/v1/video/seedance', { method: 'POST', body: JSON.stringify({"model":"seedance-2.5","prompt":"A calm city street at dawn","duration":5,"resolution":"720p"}) });
if (!created?.jobId) throw new Error('Missing data.jobId');
const deadline = Date.now() + 10 * 60 * 1000;
let completed = false;
while (Date.now() < deadline) {
const job = await request('/v1/jobs/' + encodeURIComponent(created.jobId));
if (job.status === 'COMPLETED') {
if (job.outputResult == null) throw new Error('Completed job has no outputResult');
console.log(job.outputResult);
completed = true;
break;
}
if (['FAILED', 'CANCELLED'].includes(job.status)) throw new Error('Job ' + job.status);
await new Promise(resolve => setTimeout(resolve, 5000));
}
if (!completed) throw new Error('Polling timed out; retain jobId for a later status check: ' + created.jobId);import json
import time
import urllib.request
base_url = "https://api.apihop.ai"
headers = {'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json'}
def request(path, body=None):
data = json.dumps(body).encode() if body is not None else None
req = urllib.request.Request(base_url + path, data=data, headers=headers)
with urllib.request.urlopen(req, timeout=30) as response:
result = json.load(response)
if result.get('success') is False:
raise RuntimeError(result.get('error'))
return result['data']
created = request('/v1/video/seedance', json.loads("{\"model\":\"seedance-2.5\",\"prompt\":\"A calm city street at dawn\",\"duration\":5,\"resolution\":\"720p\"}"))
job_id = str(created['jobId'])
deadline = time.monotonic() + 600
while time.monotonic() < deadline:
job = request('/v1/jobs/' + job_id)
if job['status'] == 'COMPLETED':
if job.get('outputResult') is None:
raise RuntimeError('Completed job has no outputResult')
print(job['outputResult'])
break
if job['status'] in ('FAILED', 'CANCELLED'):
raise RuntimeError('Job ' + job['status'])
time.sleep(5)
else:
raise TimeoutError('Polling timed out; retain jobId for a later status check: ' + job_id) Hesap belgelerinizdeki API temel URL’sini kullanıp yer tutucuları değiştirin. API anahtarını Authorization başlığında gönderin; URL’ye veya kaydedilen dosyaya eklemeyin.