Kitaplığınızdaki her video için video transkripsiyon API'si

Video dosyaları ya da YouTube, Google Drive ve Vimeo bağlantıları gönderin; otomatik dil algılama özelliğiyle 75 dilde konuşmacı etiketleri ve zaman damgaları içeren aranabilir metinler elde edin. Tek bir videoyu veya tüm kitaplığınızı metne dönüştürün, ardından küresel kitleler için metinleri ve altyazıları çevirin.
Dosyalar ve video bağlantıları
Toplu transkripsiyon
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 tercih ediliyor
Yetenekler

Video transkripsiyon API'sinin özellikleri

Video dosyaları veya bağlantıları gönderin ve kitaplığınızdaki her video için konuşmacıların ve zaman damgalarının yer aldığı bir metin elde edin. Aynı projeyle her metin çevirilere, altyazılara ve dublajlı bir sürüme dönüştürülür.

Bir dosyadan veya bağlantıdan videoları metne dönüştürün

Video dosyaları yükleyin veya YouTube, Google Drive, Vimeo, S3 ya da doğrudan bir bağlantı paylaşın. API, sizin tarafınızdan herhangi bir indirme adımına gerek kalmadan videonun kendisini alır.

Etiketlenmiş birden fazla 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ı metne dönüştürün. Kaynak dili boş bırakın, böylece her videonun dili otomatik olarak algılansın.

Aranabilir metinler

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

Birden fazla dilde metinler

Her segment ayrıca 135'ten fazla dil ve bölge seçeneğindeki çevirisini de barındırır; böylece tek bir metin, diğer dillerdeki küresel kitlelere hizmet eder.

.srt ve .vtt formatında altyazılar

Her proje ayrıca işitme engelli veya sesi kapalı olan izleyiciler için segmentlere göre zamanlanmış hedef dilde altyazı dosyaları döndürür.

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

Metni 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, metin çevrildiğinde aynı terimlerin tutarlı kalmasını sağlar.

Sınır olmadan büyüyün

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 transkripsiyonu aynı anda çalıştırın.
İş başında görün

Tek bir metinden beş farklı dil sürümüne

Bu klipteki konuşma metni; altyazıları ve orijinal arka plan sesleriyle birlikte İngilizce, Fransızca, Almanca, Portekizce ve İspanyolca versiyonlarına dönüştürüldü.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
İş Akışı

Video bağlantısından konuşma metnine üç adımda

Projeyi oluşturduğunuzda aynı anda transkripsiyon, çeviri, altyazılar ve dublajlı versiyon hazırlanır. Konuşma metnini düzelttikten sonra /generate uç noktasını (endpoint) kullanın.
1

Videoyu gönderin

Bir video dosyasını çok parçalı form verisi (multipart form data) olarak yükleyin veya YouTube, Google Drive, Vimeo, S3 ya da doğrudan bir bağlantı paylaşın. Herhangi bir ücret ödemeden bir medya kimliği (ID) ve video meta verilerini elde edersiniz.

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

Projeyi oluşturun

Medya kimliğini video_id olarak ve hedef dili belirtin. Otomatik dil algılama için kaynak dili boş bırakın. Transkripsiyon hemen başlar.video_id

POST /v2/projects
3

Metni okuyun

Çevrilen medyanın işlenmesi devam ederken kaydı dizine eklemeye (indexlemeye) başlayabilmeniz için konuşma metni bölümlerini hazır olur olmaz okuyun. Proje tamamlandığında altyazı ve medya dosyalarını indirin.

GET /v2/projects/{id}/transcription
Transkripsiyon canlı yayınlarda değil, kaydedilmiş videolarda çalışır. İşlem süresi videonun uzunluğuna ve konuşmacı sayısına göre değişir: Örneğin 3 dakika 47 saniyelik bir video 165 saniyede tamamlanmıştır.
Sizin için tasarlandı

Listemizde yer almayan bir dilde veya yüksek hacimde transkripsiyon mu gerekiyorsa? Ekibimizle konuşun

Yüksek hacimli transkripsiyon, listede olmayan bir kaynak dil, arama dizininizin beklediği bir metin 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? Gereksinimleriniz ve mevcut seçenekler hakkında 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 konumu, SSO ve SAML, saklama kuralları ve güvenlik incelemesi desteği kurumsal süreçlerin bir parçası olarak yürütülür.
Kullanım örnekleri

Video transkripsiyon API'sini kimler kullanır?

İçinde video barındıran platformlar

LMS ve müşteri eğitimi platformları, içerik üreticisi ve video platformları, webinarlar ve sanal etkinlik araçları, video barındırma ve iş akışı SaaS çözümleri, dijital adaptasyon platformları, canlı alışveriş. Ürününüzün bir özelliği olarak video yüklemelerine aranabilir konuşma metinleri ve altyazılar ekleyin.

Yerelleştirme ve prodüksiyon ajansları

Müşteri videolarını toplu olarak metne dönüştürün, inceleme yapanlara konuşmacı etiketleriyle birlikte metni sağlayın ve aynı projelerden altyazı ile çeviri sunun.

Şirket içi kesintisiz video üretimi

Uluslararası perakende ve e-ticaret, küresel franchise'lar, medya yayıncıları, kurumsal akademiler, içerik üreticileri. Her videoyu aranabilir ve erişilebilir hale getirin, ayrıca konuşma metinlerini makaleler ve açıklamalar için yeniden kullanın.
Müşteri hikayeleri

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

Şirketlerin Rask ile videoları nasıl yerelleştirdiğini kendi rakamlarıyla görün.
ok
ok
Kod

Video transkripsiyon API kod örnekleri

Her dilde eksiksiz bir örnek: Videoları bağlantı veya dosya olarak gönderin, bekleyin, ardından düz metin transkriptlerini 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
Resmi SDK Python'dır. Node, PHP ve cURL sekmeleri, aynı uç noktaları kullanan düz HTTP örnekleridir.
İlerleme

Bir video transkripsiyon projesinin ilerleme durumu nasıl raporlanır?

Her video, belgelenmiş durumlara sahip bir projeye dönüşür, böylece toplu bir işlemdeki her videonun ilerlemesini görebilirsiniz. Yalnızca üç grup üzerinde işlem yapmanız gerekir.

Başarılı, burada durun

merging_done
Son medya ve altyazı dosyaları hazır. Bölümleri hazır olur olmaz transkripti 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
Eşleşenlerle birlikte _done durumlar. Bunlar, aşamalı bir ilerleme arayüzüne kolayca uyarlanır.

Başarısız, durun ve rapor edin

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 sorgulamayı tamamen atlayın

Bizi bir webhook uç noktasına yönlendirin; her durum değişikliği bir POST isteği olarak gelsin, böylece kuyruğunuz her değişimi anında işleme alsın. Webhook teslimi, kurumsal entegrasyon sürecinin bir parçasıdır.
Belgeleri okuyun
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
Çıktı

Her video için ne elde edersiniz?

Tamamlanan her proje; konuşma metnini JSON segmentleri olarak, hedef dilde SRT ve VTT formatındaki 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
Nedir?
/transcription
JSON
Her segment için konuşmacı etiketi, zaman damgaları, kaynak metin ve çeviri
translation_srt_path
.srt
Hedef dilde, segmentlere 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
Orijinal arka plan sesiyle birleştirilmiş çevrilmiş konuşma
original_video
MP4
Referans olması için saklandığı şekliyle orijinal 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 insan müdahalesi gerektirir. Tek bir istekle bir segmentin metnini, zamanlamasını veya konuşmacısını düzeltin, ardından çevrilen versiyonu yeniden oluşturun; ücretlendirme, çalıştırma başına minimum bir dakika olmak üzere yalnızca değiştirilen segmentler üzerinden yapılır.

Bölüm düzeyinde düzenleme

Bölüm düzeyinde düzenleme
Her proje, dökümünü düzenlenebilir segmentler olarak sunar; böylece yanlış anlaşılan bir isim, manuel döküm yerine tek bir düzeltme isteğiyle çözülür.
Metni ve bölümlerini alın
Kaynak metni güncelleyin ve yeniden çevirelim
Kendi ifadelerinizi kullanmak için çevrilmiş metni doğrudan düzenleyin
Zaman damgalarını ayarlayın, bölüm ekleyin veya silin
Herhangi bir konuşmacıya atanmış sesi değiştirin

Terminoloji sözlükleri

Terminoloji sözlükleri
Bir sözlük ekleyin ve ürün adları ile teknik terimlerin her çevrilen metinde aynı okunmasını sağlayın veya bilinçli olarak orijinal dilde kalmasına izin verin.

Bir sözlük tek bir dil çiftini kapsar ve o 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ı sözlük_sürümü, böylece daha sonra yapılan düzenlemeler tamamlanan çalışmayı habersiz değiştirmez.
Girdi

Desteklenen dosya biçimleri

Video dosyalarını yedi formatta, ses kayıtlarını ise dört 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 dakika ücretlendirilmeden reddedilir.

Video

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

Ses

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

Harcama yapmadan önce üstveri

Medya uç noktası süreyi, dosya boyutunu, video codec bileşenini, kare hızını, çözünürlüğü, ses codec bileşenini, örnekleme hızını ve kanal yerleşimini döndürür. Projeler video dakikası üzerinden faturalandırıldığı için bir dosyayı önceden doğrulayın ve maliyeti tahmin edin.
Güvenlik ve uyumluluk

Denetlenen kontroller altındaki videolarınız ve metinleriniz

Brask Inc, SOC 2 Type II sertifikasına sahiptir, GDPR kapsamında faaliyet gösterir ve güvenlik ekibiniz için Trust Center'da canlı kontrol durumunu yayınlar.

Sertifikalar

SOC 2 Type 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 aktarma, sağlayıcıya 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'lar
Özel hesap yöneticisi

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. Ekiplerin ayrıca konuşmacı etiketlerine, altyazılara ve diğer dillere ihtiyacı vardır. İşte iki farklı şekilde yapılmış aynı iş.
İ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 indirip dönüştürün
Birden fazla konuşmacı için konuşmacı etiketleri
Dahil olanlar
Konuşmacı tanıma 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 bir çeviri API'si
.srt ve .vtt formatında altyazılar
Dahil olanlar
Bir altyazı aracı veya kendi dosya oluşturucunuz
Teknik terimleri düzeltme
Segment başına bir düzeltme isteği
Kopyaları her araçta ayrı ayrı düzenleyin
Videonun dublajlı versiyonu
Aynı projeye dahildir
Bir TTS sağlayıcısı ve kendi ses mikslemeniz
İstek sınırları
Yok
Her sağlayıcının kendi belirlediği sınırlar
Canlı toplantılar için gerçek zamanlı altyazılar
Akış tabanlı bir konuşmadan 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
Mevcut değil
Sıkça Sorulan Sorular

Video dökümü API'si: sık sorulan sorular

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

Rask'ın bir video dökümü API'si var mı?

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

Aynı anda birden fazla videonun dökümünü alabilir miyim?

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

Hangi diller destekleniyor?

Döküm ne kadar doğru?

Dökümü düz metin olarak alabilir miyim?

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

Toplantı dökümleri alınabilir mi?

Maksimum dosya boyutu var mı?

Video dökümü nasıl ücretlendirilir?

Ücretsiz bir katman var mı?

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

Tek bir öğleden sonra dublaja başlayın

İlk talebinizi bugün oluşturun; toplu alım koşullarına veya başka hiç kimsenin bulamadığı bir dille ilgileniyorsanız bizimle iletişime geçin.