Ana içeriğe geç

Ajanlar ve Betikler için Otomatik Yazıya Çevirme

Otomatik deşifre, kaydedilmiş sesi düzenlenebilir metne dönüştürür. Uygulama video sesini cihazında hazırlar; ajanlar hazırlanmış sesi REST veya MCP ile gönderebilir.

Hushscript’te otomatik deşifre, mevcut bir ses kaydını düzenlenebilir bir deşifreye dönüştürür. Tarayıcı uygulamasında yerel bir videoyla da başlayabilirsin: Hushscript sesini cihazında hazırlar ve çevrimiçi tanıma için yalnızca o sesi gönderir. Sonucu kendin incelersin ve düzeltirsin; bu, insan tarafından düzeltilen ya da onaylı bir deşifre hizmeti değildir.

Otomatik yazıya çevirme nasıl çalışır

  1. Kaydı hazırla. Bir ses dosyası kullan, desteklenen bir ses bağlantısını içe aktar ya da tarayıcı uygulamasında sesini kaydet. Video kayıtlarında, uygulamanın sesi cihazında hazırlayabilmesi için yerel bir dosya seç.
  2. Gönder ve deşifreyi bekle. Yükleme ve durum takibini uygulama halleder. Bir ajan, hazırlanmış sesi REST API ile parçalar halinde yükleyebilir ya da izinle sınırlı MCP araçlarını kullanabilir, ardından deşifre hazır olana kadar işi kontrol eder.
  3. İncele ve dışa aktar. Deşifreyi ve konuşmacı etiketlerini uygulamada düzenle ya da metni API ile al. Bir ajanın jetonu da, verilen izinler dahilinde deşifreyi dışa aktarabilir.

Ses ve video için otomatik yazıya çevirme yazılımı

Hushscript’in otomatik deşifre yazılımı, kaydedilmiş konuşmayı aranabilir, düzenlenebilir ve dışa aktarılabilir metne çevirir. Uygulamadaki ses kaydı girişi, deşifreden önce ses kaydı almana da olanak tanır. Deşifresiz, tek başına bir kayıt dosyası için ücretsiz ses kayıt aracını kullan.

Otomatik video deşifresi, uygulama sesi yerelde ayıkladıktan veya dönüştürdükten sonra aynı metin iş akışını izler. Aşağıdaki REST yükleme örneği hazırlanmış sesle başlar; yerel video dosyanı uygulamaya vermek için videoyu metne çevirme sayfasındaki tarayıcı iş akışını kullan.

Otomatik yazıya çevirmeyi ücretsiz deneyebilir miyim?

Evet. Herkese açık önizleme, giriş yapmadan önce tek bir dosyadan, desteklenen bir ses bağlantısından veya tarayıcı kaydından beş dakikaya kadarını deşifre eder; tarayıcı sesi hazırladıktan sonra yerel bir video da işe yarar. Tam deşifre için hesap gerekir: uygun bir kişisel hesap kart doğrulamasından sonra 30 ücretsiz dakika alır (nasıl işlediği için fiyatlandırma sayfasına bak); makine hesabı hoş geldin dakikalarını atlar ve kayıt sırasında satın aldığı paketle başlar.

Yazıya çevirme otomasyonunu API veya MCP ile çalıştır

Tarayıcı uygulaması, kayıtlarla doğrudan çalışmak içindir. Deşifre otomasyonu için REST API ve MCP sunucusu, bir ajanın hazırlanmış sesi yüklemesine, işleri kontrol etmesine, deşifreleri almasına ve sonuçları dışa aktarmasına izin verir. Bir ajan, insan bir hesap sahibi olmadan, ödeme öncelikli bir akışla kendi hesabını açabilir; barındırılan ödeme sayfası yine de tarayıcı gerektirir ve kartı çıkaran banka bir doğrulama adımı isteyebilir. Bir kişi de bunun yerine uygulamada mevcut bir hesaptan izinle sınırlı bir jeton oluşturabilir. Bu anlatım, makine hesabını kayıttan kimlik bilgisini yenilemeye kadar izler.

Kaydol

POST /v1/agent/accounts başsız (headless) bir kayıt başlatır. Henüz hesap, çerez ya da jeton yoktur: yalnızca bekleyen bir satın alma vardır.

curl -X POST https://api.hushscript.com/v1/agent/accounts \
  -H "Content-Type: application/json" \
  -d '{
    "contact_email": "ops@example-agent.dev",
    "pack_id": "300min",
    "accept_terms_version": "2026-10-20",
    "agent": {
      "name": "research-crawler",
      "platform": "langgraph",
      "contact_url": "https://example-agent.dev/bots/research-crawler"
    }
  }'
{
  "signup_id": "hsr1:eu:4c3a1f9e7b2d4e6f8a0c1b2d3e4f5061",
  "claim_secret": "cs_9f3d2a1b7e6c4f5a8b9d0e1f2a3b4c5d",
  "checkout_url": "https://checkout.stripe.com/c/pay/cs_test_a1B2c3D4e5F6",
  "pack": "300min",
  "amount": 599,
  "currency": "usd",
  "expires_at": 1789112400
}

contact_email yalnızca makbuz ve bildirimler içindir, asla giriş için değildir. pack_id, 45min, 300min, 900min, 1800min, 6000min değerlerinden biridir; amount veya currency alanlarını asla kendin gönderme, ikisi de sunucuda paketten türetilir. Kayıt sırasında yalnızca en küçük iki paket, 45min ve 300min, satın alınabilir. Daha büyük bir pack_id reddedilir ve ret yanıtı, bu hesabın şu anda ne satın alabileceğini listeleyen details.allowed_packs alanını taşır; böylece çağıran taraf tahmin yürütmeden yeniden deneyebilir. Diğer paketler hacimle değil, hesabın yaşıyla açılır: aşağıdaki Yeni bir hesap ne satın alabilir bölümüne bak. accept_terms_version, sunucunun geçerli politika sürümüyle tam olarak eşleşmelidir; aksi halde çağrı, gövdesinde geçerli değeri belirten policy_version_stale hatasıyla başarısız olur. İsteğe bağlı bir data_region ipucu, yalnızca ağ konumunun zaten ima ettiği bölgeyle uyuştuğunda dikkate alınır. İsteğe bağlı bir dry_run: true, Stripe oturumu açmadan ve ücret almadan her şeyi doğrular; signup_id değeri dry_ önekiyle başlar ve asla talep edilemez.

claim_secret yalnızca bu yanıtta, tam olarak bir kez gösterilir. Hushscript yalnızca hash’ini saklar. Talep çağrısından önce onu kaybetmek, kaydı kaybetmek demektir: talep gizli bilgisi için kurtarma yolu yoktur. Ödenmiş ama talep edilmemiş bir kayıt aşağıda anlatılan iade sürecine girer; sorgulama yoluyla geri alınamaz.

Ödemeyi kendi tarayıcında tamamla

checkout_url, barındırılan bir Stripe Checkout sayfasıdır. Kayıt bu adım için bir tarayıcı gerektirir ve bunun bir kişinin tarayıcısı olması şart değildir: bir ajan onu kendi otomasyonuyla yürütebilir (kart alanlarını doldurur, gönderir, yönlendirmeyi izler). Hushscript her iki durumda da kart bilgilerini asla görmez; onları Stripe görür. Bunu bitirmek ve ardından talep etmek için süre 30 dakikadır, yukarıdaki expires_at.

Saatlik bir tarama, ödenmiş ama talep edilmemiş kayıtları 30 dakikalık talep süresinin ve bir saatlik ek tolerans süresinin ardından kontrol eder. Dakikalar yalnızca talep anında eklendiği için tam iade dener. Başarısız iade denemeleri yeniden denenir ve elle işlem gerektirebilir; iadenin belirli bir saatte ulaşacağı garanti edilmez.

Hesabı talep et

POST /v1/agent/accounts/{signup_id}/claim, ödenmiş ama talep edilmemiş bir kaydı tek bir çağrıda gerçek bir hesaba dönüştürür.

curl -X POST https://api.hushscript.com/v1/agent/accounts/hsr1:eu:4c3a1f9e7b2d4e6f8a0c1b2d3e4f5061/claim \
  -H "Content-Type: application/json" \
  -d '{"claim_secret": "cs_9f3d2a1b7e6c4f5a8b9d0e1f2a3b4c5d"}'
{
  "user_id": "usr_7d1a2b3c4d5e6f708192a3b4c5d6e7f8",
  "pat": "hsr1:eu:pat.k3n2j1.8f7e6d5c4b3a29180716253443526170",
  "scopes": [
    "transcripts:read",
    "transcripts:write",
    "transcribe",
    "account:read",
    "export",
    "billing",
    "pat:rotate"
  ],
  "balance_seconds": 18000
}

Talep etmek tam olarak bir hesap oluşturur, arkasında sentetik ve çözümlenemez bir giriş kimliği bulunur; istek kaç kez yeniden denenirse denensin ödenmiş paketi tam olarak bir kez verir. Bir PAT üretir: yukarıdaki pat değeri.

Yanıt kaybolursa aynı claim_secret ile çağrıyı tekrarlayın. Talepten sonraki bir saat içinde ve verdiği jeton hiç kullanılmamışken, yeniden deneme aynı hesap için aynı yanıt biçimiyle ve yeni bir pat ile 201 döndürür. Kaybolan jeton çalışmaz hale gelir. Jetonun ilk kullanımından sonra ya da o saat dolduktan sonra yeniden deneme agent_claim_invalid yanıtı verir. Hâlâ süren bir talebin üzerine binen bir yeniden deneme, Retry-After başlığıyla birlikte 429 rate_limited alabilir; o süre kadar bekleyip yeniden deneyin.

Bu ilk jeton deşifre edebilir, deşifreleri okuyup düzenleyebilir, dışa aktarabilir, hesap bakiyesini okuyabilir, dakika satın alabilir ve kendini yenileyebilir. Insights, bağlam, kuruluş veya ayar yazma izinlerini vermez. MCP sunucusu yalnızca jetonun izinlerinin kapsadığı araçları sunar.

Yanlış bir gizli bilgi, bilinmeyen bir signup_id, iade edilmiş bir kayıt, süresi dolmuş bir kayıt ve jetonu zaten kullanılmış ya da saati geçmiş bir tekrar talep, hepsi aynı agent_claim_invalid hatasını verir. Çağıran taraf bunları yanıttan ayırt edemez; bu bilerek böyledir. Ödeme durumu yalnızca gizli bilginin kendisi doğrulandıktan sonra devreye girer: henüz sonuçlanmamış bir Checkout Session, bunun yerine wrong_state yanıtı verir.

Yukarıdaki balance_seconds, başlangıç bakiyesinin tamamıdır. Ajan hesapları, bir kişinin ilk hesabındaki gibi hoş geldin bonusu ya da kart doğrulamasından ücretsiz dakika almaz; yalnızca ödedikleri paketle başlar. Bu bilinçli bir tercihtir: hesap, var olmadan önce zaten ödenmişti.

Daha fazla dakika satın al

Buradan itibaren hesap, /developers sayfasının eksiksiz belgelediği /v1/ yüzeyini kullanır.

curl -X POST https://api.hushscript.com/v1/billing/purchase \
  -H "Authorization: Bearer hsr1:eu:pat.k3n2j1.8f7e6d5c4b3a29180716253443526170" \
  -H "Content-Type: application/json" \
  -d '{
    "pack": "300min",
    "quick_payment_method_id": "pm_1PqR2sT3uV4wX5yZ",
    "idempotency_key": "purchase-2026-09-11-01"
  }'
{
  "balance_seconds": 36000
}

Bu, yukarıdaki talep yanıtının zaten verdiği billing iznini gerektirir. Talep ayrıca jetonda ve hesapta faturalandırmayı etkinleştirir; bir kişinin oluşturduğu jeton için billing izni ve her iki faturalandırma anahtarının da açık olması gerekir. PAT faturalandırma çağrıları, Stripe’ı çağıran faturalandırma rotalarının tamamında, Stripe isteklerinden önce uygulanan, hesap başına dakikada 60 istekten oluşan daha sıkı bir sınırı paylaşır.

Yeni bir hesap ne satın alabilir

Paket boyutu, hesabın ne kadar harcadığına değil, ödemesi tamamlanmış işlemlerin yaşına göre açılır. Bir satın alma, kendi ödeme tarihinin üzerinden 7 gün geçmeden bir sonraki katman için sayılmaz; bu yüzden yepyeni bir hesap hızlıca satın alarak büyük paketlere ulaşamaz.

7 günü geçmiş, ödemesi tamamlanmış işlemler Satın alabileceği paketler
Henüz yok, yeni bir talep dahil 45min, 300min
En az 45 dakikalık 900min ve 1800min eklenir
En az 15 saatlik 6000min eklenir

Reddedilen bir satın alma, körlemesine başarısız olmak yerine geçerli kümeyi details.allowed_packs içinde belirtir. Kayıt çağrısı bu tablonun ilk satırını uygular; yukarıdaki anlatımın daha büyük bir paket değil 300min almasının nedeni budur. Bu kademelerden bağımsız olarak, kayan 24 saatlik bir harcama sınırı, itiraz süresini henüz geçmemiş bakiyenin ne kadar hızlı harcanabileceğini sınırlar. Kayıttaki satın alma, hesabın kayan 24 saatteki üç satın alma denemesine sayılır; rezervasyondan sonra reddedilen denemeler de sayılır.

Yazıya çevir

Yükleme ve deşifre etme, diğer her hesapla aynı çok parçalı (multipart) akıştır. API örneği hazırlanmış sesi gönderir; yerel bir videonun kaynak dosyasını yüklemez.

curl -X POST https://api.hushscript.com/v1/uploads \
  -H "Authorization: Bearer hsr1:eu:pat.k3n2j1.8f7e6d5c4b3a29180716253443526170" \
  -H "Content-Type: application/json" \
  -d '{
    "size_bytes": 48213504,
    "duration_seconds": 1860,
    "title": "weekly-standup-2026-09-11",
    "idempotency_key": "upload-2026-09-11-01"
  }'
{
  "job_id": "job_3a2b1c0d9e8f7a6b5c4d3e2f1a0b9c8d",
  "part_urls": [
    { "n": 1, "url": "https://r2.hushscript.com/uploads/job_3a2b1c0d.../part-1?X-Amz-Signature=..." }
  ]
}

Her parçayı kendi ön imzalı (presigned) URL’sine PUT et, ardından aynı işin /complete adresine, bu şekilde gönderilen her parçanın n ve etag değerleriyle POST at. Sonra işi yokla:

curl https://api.hushscript.com/v1/jobs/job_3a2b1c0d9e8f7a6b5c4d3e2f1a0b9c8d \
  -H "Authorization: Bearer hsr1:eu:pat.k3n2j1.8f7e6d5c4b3a29180716253443526170"
{
  "id": "job_3a2b1c0d9e8f7a6b5c4d3e2f1a0b9c8d",
  "state": "done",
  "transcript_id": "trs_6f5e4d3c2b1a0908f7e6d5c4b3a29180"
}
curl https://api.hushscript.com/v1/transcripts/trs_6f5e4d3c2b1a0908f7e6d5c4b3a29180 \
  -H "Authorization: Bearer hsr1:eu:pat.k3n2j1.8f7e6d5c4b3a29180716253443526170"
{
  "id": "trs_6f5e4d3c2b1a0908f7e6d5c4b3a29180",
  "language": "en",
  "duration_seconds": 1860,
  "body": "..."
}

Kimlik bilgisini yenile

Bir makine hesabının parolası ve kullanılabilir bir posta kutusu yoktur; bu yüzden bir PAT sızarsa ya da sadece yenilenmesi gerekirse “parolamı unuttum” gibi bir yol yoktur. Yenileme (rotation) o yoldur.

curl -X POST https://api.hushscript.com/v1/agent/credentials/rotate \
  -H "Authorization: Bearer hsr1:eu:pat.k3n2j1.8f7e6d5c4b3a29180716253443526170"
{
  "pat": "hsr1:eu:pat.p9q8r7.1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d",
  "pat_id": "p9q8r7",
  "scopes": [
    "transcripts:read",
    "transcripts:write",
    "transcribe",
    "account:read",
    "export",
    "billing",
    "pat:rotate"
  ],
  "expires_at": null
}

Çağrı gövde almaz. İsteği doğrulayan jeton için bir ardıl üretir. Ardıl, öncekinin izinlerini, faturalandırma iznini, adını, istemci etiketini ve son kullanma politikasını korur. Bu rota, çağıranın kendi jetonundan başka hiçbir şeye dokunmaz: hesaptaki başka bir kimlik bilgisini listeleyemez, üretemez veya iptal edemez. Bir makine hesabının sahip olduğu tek kimlik bilgisi kurtarma yolu budur; bu yüzden eski jeton atılmadan önce yenile, sonra değil.

Eski jeton hemen iptal edilmez. Yenilemeden sonra yalnızca tek bir iş için çalışır: yenileme çağrısını tekrar yapmak. Bu, yeni jeton ilk başarılı isteğini yapana kadar ya da bir saat geçene kadar, hangisi önce olursa, sürer. Diğer tüm rotalarda eski jeton hemen 401 yanıtı verir.

Yeni jetonu taşıyan yanıt kaybolursa, yeni jeton kullanılmamışken eski jetonla yenileme çağrısını tekrarlayın. Aynı pat_id için yeni bir gizli değer alırsınız ve önceki yeni gizli değer çalışmaz hale gelir.

Yeni jeton bir kez çalışana kadar eski jetonu saklayın. Ardından hemen yeni jetonla GET /v1/account gibi tek bir çağrı yapın. Bu ilk başarılı istek eski jetonu kalıcı olarak devre dışı bırakır.

Hatalar

Durum Kod Slug Anlamı
401 2000 unauthorized Eksik veya geçersiz bearer jetonu
403 2023 pat_scope_missing Jeton bu çağrının gerektirdiği izne sahip değil ya da hesapta faturalandırma kapalı
403 4021 pat_purchase_requires_app Kayıtlı bir kart belirtilmedi veya ücretlendirme reddedildi; hiçbir şey ücretlendirilmedi
403 4023 pat_purchase_requires_authentication Kartı çıkaran banka, çağıranın tamamlayamayacağı bir doğrulama istiyor; kartın kendisi sorunsuz
402 3001 insufficient_balance İşi kabul etmeye yetecek bakiye yok
429 5000 rate_limited Çok fazla istek; Retry-After süresini bekle

Bu hatalar ajan kaydı ve satın alma denetimlerini kapsar. Satın alma sınırı, bir insan hesabındaki PAT satın alımlarına da uygulanır; insan oturumuyla yapılan satın alma bunun dışındadır.

Durum Kod Slug Anlamı
409 4035 agent_signup_pending Bu contact_email için bir kayıt hâlâ açık. Talep edilmesini, iade edilmesini veya süresinin dolmasını bekle ya da farklı bir adres kullan
401 4036 agent_claim_invalid Yanlış gizli bilgi, bilinmeyen kayıt, iade edilmiş, süresi dolmuş ya da zaten talep edilmiş olup jetonu kullanılmış veya saati geçmiş. Bilerek aynı
403 4037 agent_pack_locked Bu hesabın katmanı bu paketi henüz kabul etmiyor. details.allowed_packs taşır; bunlardan biriyle yeniden dene
429 4038 agent_purchase_capped Son 24 saatte 3 satın alma denemesi; rezervasyondan sonraki başarısızlıklar ve ajan hesabının kayıt satın alması dahil. Kimlik bilgileri genelinde hesap başına sayılır, bu yüzden yenileme sıfırlamaz. details.retry_after_seconds taşır

Talep gizli bilgisinin kendisi doğrulandıktan sonra, ödemesi yapılmamış bir Checkout Session, agent_claim_invalid yerine wrong_state (4001) yanıtı verir. Eksiksiz katalog OpenAPI belgesidir.

Sınırlar

Çağrılar dakikada 1.200 ile sınırlıdır. Bir ajan hesabında bu bütçe tek tek jetonlara değil, hesabın kendisine aittir: yenileme zincirindeki her kimlik bilgisi aynı bütçeden harcar, bu yüzden bir PAT’ı yenilemek ardıla yeni bir kota vermez. Stripe’a ulaşan PAT faturalandırma çağrıları, hesap başına dakikada 60’lık daha sıkı bir sınırı paylaşır. Buna kart ekleme kurulumu ve satın alma, varsayılan kartın değiştirilmesi ve kartın kaldırılması ile kart listesindeki önbellek ıskalamaları dahildir; denetim Stripe çağrısından önce çalışır. Yukarıdaki 24 saatlik satın alma sınırı da aynı şekilde, kimlik bilgisi başına değil hesap başına sayılır.

Daha fazla bilgi

Bu sayfa hesap yaşam döngüsünü kapsar: hesap açmak, bakiye yüklemek ve kimlik bilgisini geçerli tutmak. Hesabın ardından yapabileceği her şey için, eksiksiz OpenAPI belgesi dahil REST API sayfasına ya da aynı hesabı ham HTTP yerine araçlar üzerinden kullanan MCP sunucusu sayfasına bak.

Uygulamada yazıya çevir ya da ajanına kendi hesabını ver

Uygun kişisel hesaplar, başarılı kart doğrulamasından sonra veya daha önce verilmemişse ilk satın alımlarıyla bir kez 30 ücretsiz dakika alabilir. Ajan hesapları, kayıt sırasında satın aldıkları dakika paketiyle başlar.

30 ücretsiz dakikayla başlayın