Kaynaklar · Geliştiriciler

API belgesi

Betikler ve n8n, Make, Zapier gibi araçlar Nopsai'yi bu uçlarla kullanır. Bir konu gönder, iş sıraya girsin; bitince indir.

Anahtar

Her isteğe API anahtarını X-Anahtar başlığıyla ekle. Anahtarını hesap ayarlarından alırsın; şifren gibi sakla, kimseyle paylaşma. Aşağıdaki örneklerde ADRES sana verilen API adresidir.

1 · Konudan video üret

Yönetmen konuya göre anlatımı, sahneleri ve temayı seçer; iş sıraya girer.

curl -X POST https://ADRES/api/v1/videolar \
  -H "X-Anahtar: stk_..." -H "Content-Type: application/json" \
  -d '{"konu": "Oynaklık nedir"}'

Yanıtta id gelir. İsteğe bağlı alanlar:

AlanNe yapar
baslikVideo adı (yoksa konu)
temagece, lacivert, komur, zeytin, kagit
seslendirmefalse → sessiz (yalnız müzik)
sadece_kurgutrue → üretmeden kurguyu döndürür; düzenleyip plan ile geri gönderebilirsin
plan + satirlarKonu yerine tam kurgu (panelde kurulanla aynı biçim)

2 · Durumu sor

curl https://ADRES/api/v1/videolar/ID -H "X-Anahtar: stk_..."

durum sırasıyla sirada → uretiliyor → montaj → bitti olur (ya da hata, iptal). hazir true olunca indir_url ve kapak_url dolar. Bir video yaklaşık 5 dakika sürer; 15–30 saniyede bir sormak yeterli.

AlanAçıklama
id, baslikİşin kimliği ve adı
durum, asama, ilerlemeNerede olduğu ve yüzdesi
video_snVideonun süresi (saniye)
hazir, indir_url, kapak_urlBitince indirme ve kapak adresleri
hataHata olduysa nedeni

3 · İndir

curl -L -o video.mp4 "https://ADRES/api/video/ID?indir=true" -H "X-Anahtar: stk_..."

Diğer uçlar

GET /api/v1/videolar?benim=true&limit=20Son videolar (yalnız seninkiler, en çok 100)
POST /api/v1/videolar/ID/iptalSıradaki işi iptal eder

Python örneği

import time, requests
ADRES, ANAHTAR = "https://ADRES", "stk_..."
h = {"X-Anahtar": ANAHTAR}
iş = requests.post(f"{ADRES}/api/v1/videolar", json={"konu": "Her gün 214 hisse"}, headers=h).json()
while True:
    d = requests.get(f"{ADRES}/api/v1/videolar/{iş['id']}", headers=h).json()
    if d["durum"] in ("bitti", "hata", "iptal"): break
    time.sleep(20)
if d["hazir"]:
    open("video.mp4", "wb").write(requests.get(ADRES + d["indir_url"], headers=h).content)

Kurallar

  • Marka ve içerik kuralları otomasyonda da geçerlidir: kurala aykırı yazı içeren istek 400 döner ve üretilmez.
  • konu en fazla 60 karakter, baslik en fazla 80 karakter olarak alınır.
  • Üretilen her video, plandaki hakkından düşer; ne bir hak sayılır?