Kitaplığınızdaki her video için video deşifre API'si

Video dosyaları veya YouTube, Google Drive ve Vimeo bağlantıları gönderin; 75 dilde konuşmacı etiketleri ve zaman damgaları içeren, aranabilir deşifre metinlerini otomatik dil algılama özelliğiyle edinin. Tek bir videoyu veya tüm kitaplığınızı deşifre edin, ardından küresel kitleler için deşifre metinlerini ve altyazıları çevirin.
Dosyalar ve video bağlantıları
Toplu deşifre
REST + Python SDK
link in, transcript out
OAuth 2.0
# 1. send the video as a link - YouTube, Google Drive, Vimeo, S3 or direct URL
curl -X POST https://api.rask.ai/api/library/v1/media/link \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"link": "https://youtu.be/...", "name": "camera review"}'

# 2. create the project - the language of the video is detected automatically
curl -X POST https://api.rask.ai/v2/projects \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"es-mx\"}"
GET /v2/projects/{project_id}/transcription
plain text
# The transcript as plain text with timestamps and speakers
curl -s https://api.rask.ai/v2/projects/$ID/transcription -H "Authorization: Bearer $TOKEN" \
  | jq -r '.segments[] | "\(.start) \(.speaker): \(.src.text)"'
Küresel ekipler tarafından kullanılmaktadır
Yetenekler

Video deşifre API'sinin işlevleri

Video dosyaları veya bağlantıları gönderin ve kitaplığınızdaki her video için konuşmacıları ve zaman damgalarını içeren bir deşifre metni edinin. Aynı proje, her deşifre metnini çevirilere, altyazılara ve dublajlı bir sürüme dönüştürür.

Videoları bir dosyadan veya bağlantıdan deşifre edin

Video dosyaları yükleyin veya YouTube, Google Drive, Vimeo, S3 veya doğrudan bir bağlantı gönderin. API, video indirme adımıyla sizin uğraşmanıza gerek kalmadan videonun kendisini alır.

Etiketlenmiş birden çok konuşmacı

Farklı konuşmacıların yer aldığı röportajlar, paneller ve web seminerleri, her segmentte bir konuşmacı etiketiyle döner; böylece kimin ne söylediğini her zaman bilirsiniz.

Otomatik dil algılama

İngilizce dahil 75 kaynak dilde videoları deşifre edin. Kaynak dili boş bırakın, her videonun dili otomatik olarak algılansın.

Aranabilir deşifre metinleri

Her segmentin bir başlangıç ve bitiş zamanı vardır; böylece kullanıcılar bir videonun metin içeriğinde arama yapabilir ve doğrudan bir ifadenin söylendiği ana atlayabilir.

Birden çok dilde deşifre metinleri

Her segment ayrıca 135'ten fazla dil ve bölge seçeneğinden herhangi birinde kendi çevirisini taşır, böylece tek bir deşifre metni farklı dillerdeki küresel kitlelere hizmet eder.

.srt ve .vtt formatında altyazılar

Her proje, işitme engelli veya sesi kapalı olan izleyiciler için segmentlere zamanlanmış şekilde hedef dilde altyazı dosyaları da sunar.

Düz metin veya yapılandırılmış veri

Deşifre metnini JSON segmentleri olarak okuyun veya arama dizinleri, makaleler, program açıklamaları ve notlar için metni düz metin halinde birleştirin.

Teknik terimleri düzeltin

API aracılığıyla herhangi bir segmentteki isimleri, ürün terimlerini ve teknik jargonu düzeltin. Bir sözlük, deşifre metni çevrildiğinde aynı terimlerin tutarlı kalmasını sağlar.

Sınırsız ölçeklendirin

Oran sınırı, eşzamanlılık kotası veya anahtar başına kısıtlama yoktur. Birden fazla videoda veya tüm kitaplığınızda toplu deşifreyi paralel olarak çalıştırın.
Çalışırken görün

Tek bir deşifre metninden beş dil sürümüne

Bu klibin dökümü İngilizce, Fransızca, Almanca, Portekizce ve İspanyolca versiyonlarına dönüştürüldü; her birinde altyazılar ve orijinal arka plan sesi yer alıyor.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
İş Akışı

Video bağlantısından metin dökümüne üç adım

Projeyi oluşturduğunuzda metin dökümü, ardından çeviri, altyazılar ve dublajlı sürüm aynı anda başlar. Metin dökümünü düzelttikten sonra /generate uç noktasını kullanın.
1

Videoyu gönderin

Çok parça form verisi olarak bir video dosyası yükleyin ya da YouTube, Google Drive, Vimeo, S3 veya doğrudan bir bağlantı gönderin. Herhangi bir ücret ödemeden önce bir medya kimliği ve video üst verisi elde edersiniz.

POST /api/library/v1/media/link
2

Projeyi oluşturun

Medya kimliğini video_id olarak ve hedef dili iletin. Otomatik dil algılama için kaynak dili boş bırakın. Metin dökümü hemen başlar.video_id

POST /v2/projects
3

Metni okuyun

Çevrilen medya işlenmeye devam ederken kaydı dizine eklemeye başlayabilmeniz için metin dökümü parçalarını hazır olur olmaz okuyun. Proje tamamlandığında altyazı ve medya dosyalarını indirin.

GET /v2/projects/{id}/transcription
Metin dökümü canlı yayınlarda değil, kaydedilmiş videolarda çalışır. İşlem süresi video uzunluğuna ve konuşmacı sayısına göre değişiklik gösterir: gözlemlenen bir testte, 3:47 dakikalık bir video 165 saniyede tamamlanmıştır.
Sizin etrafınızda tasarlandı

Listemizde yer almayan bir dilde veya yoğun bir hacimde mi döküm yapıyorsunuz? Ekibimizle görüşün

Yüksek hacimli metin dökümü, listede olmayan bir kaynak dil, arama dizininizin beklediği bir metin dökümü formatı veya kendi depolama alanınıza teslimat: ekibimiz ihtiyaçlarınızı ve mevcut seçenekleri inceler.

Diller ve sesler

Genel katalogda yer almayan bir kaynak dile mi ihtiyacınız var? Gereksinimlerinizi ve mevcut seçenekleri ekibimizle görüşün.

Teslimat ve entegrasyon

Webhook’lar, kendi kuyruğunuza aktarım, doğrudan S3’ünüze teslimat, özel uç noktalar. İş akışınızın nasıl beslenmesini beklediğinizi bize bildirin.

Hacim ve işleme kapasitesi

Parti büyüklükleri, işlem başına hedef diller ve işleme önceliği, sabit ürün sınırları değil, sözleşme şartlarıdır.

Güvenlik ve barındırma

Veri saklama yeri, SSO ve SAML, saklama kuralları ve güvenlik incelemesi desteği, kurumsal adaptasyon sürecinin bir parçası olarak ele alınır.
Kullanım örnekleri

Video metin dökümü API'sini kimler kullanır?

İçinde video barındıran platformlar

Öğrenim yönetim sistemleri (LMS) ve müşteri eğitimi platformları, içerik üreticisi ve video platformları, web zaten ve sanal etkinlik araçları, video barındırma ve iş akışı yazılımları, dijital adaptasyon platformları, canlı alışveriş. Ürününüzün bir özelliği olarak video yüklemelerine aranabilir metin dökümleri ve altyazılar ekleyin.

Yerelleştirme ve prodüksiyon ajansları

Müşteri videolarını toplu olarak metne dönüştürün, inceleyenlere konuşmacı etiketleriyle birlikte metin dökümünü sunun ve aynı projelerden altyazı ile çeviriler teslim edin.

Şirket içi kesintisiz video prodüksiyonu

Uluslararası perakende ve e-ticaret, küresel franchise'lar, medya yayıncıları, şirket içi üniversiteler, içerik üreticileri. Her videoyu aranabilir ve erişilebilir hale getirin, ayrıca metin dökümlerini makaleler ve açıklamalar için yeniden kullanın.
Müşteri hikayeleri

Gerçek ekipler, ölçülebilir sonuçlar

Şirketlerin Rask ile videolarını kendi rakamlarıyla nasıl yerelleştirdiği.
ok
ok
Kod

Video metin dökümü API kod örnekleri

Her dilde eksiksiz bir örnek: videoları bağlantı veya dosya olarak gönderin, bekleyin, ardından düz metin dökümlerini kaydedin veya zaman damgasına göre arayın.
# pip install git+ssh://[email protected]/braskai/rask-sdk.git@main
import asyncio
from rask_sdk import clients, enums, schemas

VIDEOS = ["https://youtu.be/aaa", "https://youtu.be/bbb", "https://vimeo.com/123"]

async def transcribe(client, i, link):
    media = await client.create_media_link(data=schemas.MediaCreateLink(link=link))
    while media.status is enums.MediaStatus.PROCESSING:
        await asyncio.sleep(5)
        media = await client.get_media(media_id=media.id)
    job = await client.create_project(data=schemas.ProjectCreate(video_id=media.id, dst_lang="en-us"))
    while job.status is not enums.ProjectStatus.MERGING_DONE:
        await asyncio.sleep(10)
        job = await client.get_project(project_id=job.id)
    t = await client.get_project_transcription(project_id=job.id)
    with open(f"video_{i}.txt", "w") as f:   # plain text, one segment per line
        f.write("\n".join(f"{s.speaker}: {s.src.text}" for s in t.segments))

async def main():
    client = clients.RaskSDKClient(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)
    await asyncio.gather(*(transcribe(client, i, v) for i, v in enumerate(VIDEOS)))   # no rate limits

asyncio.run(main())
github.com/braskai/rask-sdk
bulk, async
import os, time, requests

AUTH = "https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token"
API  = "https://api.rask.ai"

token = requests.post(AUTH, auth=(CLIENT_ID, CLIENT_SECRET),
                      data={"grant_type": "client_credentials"}).json()["access_token"]
h = {"Authorization": f"Bearer {token}"}

media = requests.post(f"{API}/api/library/v1/media/link", headers=h,
                      json={"link": "https://youtu.be/..."}).json()

project = requests.post(f"{API}/v2/projects", headers=h,
                        json={"video_id": media["id"], "dst_lang": "es-mx"}).json()

while project["status"] != "merging_done":
    time.sleep(10)
    project = requests.get(f"{API}/v2/projects/{project['id']}", headers=h).json()

print(project["translated_video"])
requests
no SDK required
// no dependencies, Node 18+ global fetch
const API = 'https://api.rask.ai';
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
const auth = await fetch('https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token', {
  method: 'POST',
  headers: { Authorization: 'Basic ' + btoa(`${CLIENT_ID}:${CLIENT_SECRET}`) },
  body: new URLSearchParams({ grant_type: 'client_credentials' }),
}).then((r) => r.json());
const h = { Authorization: `Bearer ${auth.access_token}`, 'Content-Type': 'application/json' };
const call = (method, path, body) => fetch(API + path, { method, headers: h, body: body && JSON.stringify(body) }).then((r) => r.json());

let media = await call('POST', '/api/library/v1/media/link', { link: 'https://drive.google.com/file/d/...' });
while (media.status === 'processing') { await sleep(5000); media = await call('GET', `/api/library/v1/media/${media.id}`); }

let p = await call('POST', '/v2/projects', { video_id: media.id, dst_lang: 'fr-fr' });
while (p.status !== 'merging_done') { await sleep(10000); p = await call('GET', `/v2/projects/${p.id}`); }

const { segments } = await call('GET', `/v2/projects/${p.id}/transcription`);
const index = segments.map((s) => ({ t: s.start, speaker: s.speaker, text: s.src.text, fr: s.dst.text }));
console.log(JSON.stringify(index, null, 2));   // ready for your search index
fetch, Node 18+
plain HTTP
# 1. token (valid 1 hour - cache and reuse it)
TOKEN=$(curl -s -X POST https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" -d "grant_type=client_credentials" | jq -r .access_token)

# 2. upload a local video file
VIDEO_ID=$(curl -s -X POST "https://api.rask.ai/api/library/v1/media?kind=video" \
  -H "Authorization: Bearer $TOKEN" -F "[email protected]" | jq -r .id)

# 3. create the project once the media status is ready
ID=$(curl -s -X POST https://api.rask.ai/v2/projects \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"de-de\", \"num_speakers\": 3}" | jq -r .id)

# 4. when status is merging_done, save the transcript as plain text
curl -s https://api.rask.ai/v2/projects/$ID/transcription -H "Authorization: Bearer $TOKEN" \
  | jq -r '.segments[].src.text' > webinar.txt
local video file
multipart upload
<?php
use GuzzleHttp\Client;

$http = new Client(['base_uri' => 'https://api.rask.ai']);
$json = fn($r) => json_decode($r->getBody(), true);
$auth = $json((new Client)->post('https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token',
    ['auth' => [$clientId, $clientSecret], 'form_params' => ['grant_type' => 'client_credentials']]));
$h = ['Authorization' => 'Bearer ' . $auth['access_token']];

$media = $json($http->post('/api/library/v1/media/link', ['headers' => $h, 'json' => [
    'link' => 'https://vimeo.com/123456']]));
while ($media['status'] === 'processing') {
    sleep(5);
    $media = $json($http->get("/api/library/v1/media/{$media['id']}", ['headers' => $h]));
}

$p = $json($http->post('/v2/projects', ['headers' => $h, 'json' => [
    'video_id' => $media['id'], 'dst_lang' => 'pt-br']]));
while ($p['status'] !== 'merging_done') {
    sleep(10);
    $p = $json($http->get("/v2/projects/{$p['id']}", ['headers' => $h]));
}

$t = $json($http->get("/v2/projects/{$p['id']}/transcription", ['headers' => $h]));
file_put_contents('video.txt', implode("\n", array_map(fn($s) => $s['src']['text'], $t['segments'])));
Guzzle 7
plain HTTP
Python resmi SDK'dır. Node, PHP ve cURL sekmeri, aynı uç noktalara yönelik saf HTTP örnekleridir.
İlerleme

Bir video metin dökümü projesi ilerlemeyi nasıl bildirir?

Her video, belgelenmiş durumlara sahip bir projeye dönüşür; böylece toplu bir çalışmadaki her video için ilerlemeyi gösterebilirsiniz. Yalnızca üç grupla ilgilenmeniz gerekir.

Başarılı, burada durun

merging_done
Nihai medya ve altyazı dosyaları hazır. Bölümleri kullanılabilir duruma gelir gelmez metin dökümünü daha erken okuyabilir ve dizine ekleyebilirsiniz.

Devam ediyor, sorgulamaya devam edin

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
Ayrıca eşleşen _done durumlar. Bunlar, aşamalı bir ilerleme arayüzüne kolayca uyarlanabilir.

Başarısızlık, dur ve bildir

failed
upload_failed
transcription_failed
translation_failed
voiceover_failed
merging_failed
no_audio
no_words
forbidden_link
no_audio, no_words and forbidden_link are specific enough to show directly to your own user, for example a video without speech.
Plain text transcript, two speakers
jq -r on /transcription
00:00:00,320  SPEAKER_00  Welcome back. Today we test three cameras in low light.
00:00:06,180  SPEAKER_01  I brought the footage from last week's night shoot.
00:00:10,940  SPEAKER_00  Let's start with the smallest sensor, the hardest case.
00:00:15,500  SPEAKER_01  At ISO 6400 the noise is visible, but the colors hold up.

Veya durum kontrolünü tamamen atlayın

Bize bir webhook uç noktası gösterin; her durum değişikliği bir POST olarak gelir, böylece kuyruğunuz her değişimi gerçekleştiği anda işler. Webhook teslimi, kurumsal sisteme geçiş sürecinin bir parçasıdır.
Belgeleri okuyun
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
Çıktı

Her video için elde ettikleriniz

Tamamlanan her proje; metin dökümünü JSON bölümleri olarak, hedef dilde SRT ve VTT formatında altyazı dosyalarını, ayrıca çevrilen video ve sesi sunar. İndirme bağlantıları önceden imzalanmıştır ve bir saat boyunca geçerlidir.
Alan
Biçim
Ne işe yarar
/transcription
JSON
Her bölüm için konuşmacı etiketi, zaman damgaları, kaynak metin ve çeviri
translation_srt_path
.srt
Hedef dilde, bölümlere göre zamanlanmış altyazılar
translation_vtt_path
.vtt
Web oynatıcıları için WebVTT formatında aynı altyazılar
translated_video
MP4
Seslendirmeli çevrilmiş video
translated_audio
WAV
Çevrilen konuşmanın orijinal arka plan sesiyle birleştirilmiş hali
original_video
MP4
Referans olması için saklandığı şekliyle kaynak videonuz
Kontrol

Metindeki isimleri ve teknik terimleri düzeltin

Otomatik deşifre, bir videonun büyük kısmını halleder. İsimler, aksanlar ve teknik terimler bazen bir insanın müdahalesini gerektirir. Tek bir istekle bir bölümün metnini, zamanlamasını veya konuşmacısını düzeltin, ardından çevrilmiş sürümü yeniden oluşturun. Ücretlendirme, çalışma başına en az bir dakika olmak üzere yalnızca değiştirilen bölümler üzerinden yapılır.

Bölüm düzeyinde düzenleme

Bölüm düzeyinde düzenleme
Her proje, metnini düzenlenebilir bölümler olarak sunar; böylece yanlış anlaşılan bir isim için manuel deşifre yapmak yerine tek bir düzeltme isteği gönderebilirsiniz.
Metni ve bölümlerini alın
Kaynak metni düzenleyin, biz de yeniden çevirelim
Kendi ifadelerinizi korumak için çevrilmiş metni doğrudan düzenleyin
Zaman damgalarını ayarlayın, yeni bölümler ekleyin veya mevcut bölümleri silin
Herhangi bir konuşmacıya ait sesi değiştirin

Terminoloji sözlükleri

Terminoloji sözlükleri
Bir sözlük ekleyin; böylece ürün isimleri ve teknik terimler her çevrilmiş metinde aynı okunur veya bilerek orijinal dillerinde kalır.

Bir sözlük tek bir dil çiftini kapsar ve hedef dilin tüm bölgesel varyantlarında geçerlidir; böylece tek bir İspanyolca sözlük es-mx ve es-es benzer şekilde hizmet eder. Proje kayıtları glossary_version, böylece sonraki düzenlemeler tamamlanan çalışmaları asla habersiz değiştirmez.
Girdi

Desteklenen dosya biçimleri

Video dosyalarını yedi, ses kayıtlarını dört farklı formatta deşifre edin veya YouTube, Google Drive ya da Vimeo gibi büyük platformlardan bir bağlantı gönderin. Desteklenmeyen dosyalar, hiçbir süre ücreti yansıtılmadan reddedilir.

Video

7 biçim
.mp4
.mov
.mkv
.avi
.webm
.m4v
.3gp

Ses

4 biçim
.mp3
.wav
.flac
.m4a

Harcama yapmadan önce verileri inceleyin

Medya uç noktası süreyi, dosya boyutunu, video kodeğini, kare hızını, çözünürlüğü, ses kodeğini, örnekleme hızını ve kanal düzenini döndürür. Projeler video dakikası üzerinden ücretlendirildiği için dosyayı önceden doğrulayın ve maliyeti tahmin edin.
Güvenlik ve uyumluluk

Denetlenen güvenlik kontrolleri altındaki videolarınız ve metinleriniz

Brask Inc, SOC 2 Tip II sertifikasına sahiptir, GDPR kurallarına uygun olarak faaliyet gösterir ve güvenlik ekibiniz için Güvenlik Merkezi'nde güncel kontrol durumunu yayınlar.

Sertifikalar

SOC 2 Tip II
GDPR
CAI ve C2PA üyesi

Şifreleme

Aktarım sırasında TLS 1.2
Bekleme durumunda AES-256
SSE-S3 yönetilen anahtarlar
En az 12 ayda bir anahtar değişimi

İçeriğiniz

Kapalı yapay zeka ortamı
Genel modelleri eğitmek için asla kullanılmaz
Tam dışa aktarım, sisteme bağımlılık yok

Erişim

SSO ve SAML
Rol tabanlı erişim kontrolü
OAuth 2.0 istemci kimlik bilgileri

Kurumsal

Veri konumu seçenekleri
Özel SLA'ler
Özel müşteri temsilcisi

Ses hakları

Kullanım haklarına sahip sentetik sesler
Onaya dayalı ses klonlama
Yapay zeka güvenlik kontrolleri, insan denetimi
Karşılaştırma

Parçalardan oluşturulmuş bir deşifre iş akışına karşı Rask API

Bir videonun metni nadiren nihai sonuçtur. Ekipler ayrıca konuşmacı etiketlerine, altyazılara ve diğer dillere ihtiyaç duyar. İşte aynı çalışmanın iki farklı yolla yapılışı.
İhtiyacınız olanlar
Rask API
Parçalardan oluşturulmuş
YouTube, Drive, Vimeo veya S3'ten video bağlantıları
Doğrudan kabul edilir
Önce indirin ve dönüştürün
Birden fazla konuşmacı için konuşmacı etiketleri
Dahil olanlar
Konuşmacı ayrıştırma eklentisi veya manuel etiketleme
Her videonun dili
Otomatik olarak algılanır
Dosya başına ayarlanır veya ayrı ayrı algılanır
Diğer dillerdeki metinler
135'ten fazla dil ve bölge seçeneği
Her dil için ayrı bir çeviri API'si
.srt ve .vtt formatında altyazılar
Dahil olanlar
Bir altyazı aracı veya kendi dosya düzenleyiciniz
Teknik terimlerin düzeltilmesi
Bölüm başına bir düzeltme isteği
Her araçtaki kopyaları düzenleyin
Videonun dublajlı versiyonu
Aynı projeye dahildir
Bir TTS sağlayıcısı ve kendi ses miksajınız
İstek sınırları
Yok
Her sağlayıcının uyguladığı kurallara göre
Canlı toplantılar için gerçek zamanlı altyazılar
Canlı ses akışı metne dönüştürme API'si kullanın
Bazı sağlayıcılarda yerleşik olarak bulunur
Henüz kimsenin desteklemediği bir dil
Biz geliştiriyoruz
Kullanılamıyor
Sıkça Sorulan Sorular

Video transkripsiyon API'si: sık sorulan sorular

Aradığınızı bulamadınız mı? Satış departmanıyla iletişime geçin.

Rask'ın bir video transkripsiyon API'si var mı?

Bir YouTube videosunu veya video bağlantısını metne dönüştürebilir miyim?

Tek seferde birden fazla videoyu metne dönüştürebilir miyim?

Birden fazla konuşmacı nasıl yönetilir?

Hangi diller destekleniyor?

Döküm ne kadar doğru?

Metni düz metin olarak alabilir miyim?

Yapay zeka özetleri, ana konular veya duygu analizi oluşturuyor mu?

Toplantıları metne dönüştürebilir mi?

Maksimum dosya boyutu var mı?

Video transkripsiyonu nasıl ücretlendirilir?

Ücretsiz bir plan var mı?

API erişimini ve API anahtarını nasıl alabilirim?

Tek bir öğleden sonra dublaj yapmaya başlayın

İlk isteğinizi bugün oluşturun ve toplu kullanım koşullarına veya kimsenin bilmediği bir dile ihtiyacınız olduğunda bizimle iletişime geçin.