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
- 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ç.
- 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.
- İ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.