KI-Dubbing API

Übersetzen und synchronisieren Sie Ihre Videos mit der KI-Synchronisierungs-API. Automatische Synchronisierung von Videos in über 33 Sprachen mit Stimmenklonen
33+ Sprachen
Klonen von Stimmen
REST-API
AI Dubbing Voice Tracks
DE
PT
ES
33+ Sprachen
99.9%
Betriebszeit
Mehr als 500.000 Nutzer vertrauen darauf

Leistungsstarke API-Funktionen

Alles, was Sie brauchen, um professionelle AI-Vertonung in Ihre Anwendungen zu integrieren
Globale Reichweite

33+ Sprachen

Unterstützung für die gängigsten Sprachen der Welt, darunter Englisch, Portugiesisch, Spanisch, Französisch, Deutsch, Chinesisch, Japanisch und andere.
Authentische Stimmen

Klonen von Stimmen

Bewahren Sie die Originalstimmen der Sprecher mit der fortschrittlichen AI Klonen von Stimmen Technologie für authentische Synchronisationsergebnisse.
Schnell & Zuverlässig

Schnelle Bearbeitung

Erledigen Sie Ihre Synchronisationsprojekte in Minuten, nicht in Stunden. Mit unserer optimierten KI-Verarbeitungspipeline erhalten Sie schnell Ergebnisse.
99.9%
Betriebszeit
<300ms
Reaktionszeit
24/7
Unterstützung

AI-Synchronisations-API-Arbeitsablauf

Integrieren Sie AI-Synchronisation in Ihre Anwendung mit nur wenigen API-Aufrufen
01

Upload-URL abrufen & Datei hochladen

Rufen Sie eine vordefinierte URL über die API ab und laden Sie dann Ihre Videodatei mit einer PUT-Anforderung hoch. Unterstützung für MP4, MOV, AVI und weitere Formate.
API Request
# 1. Get upload URL
curl -X GET "https://dubsmart.ai/api/v1/upload" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "region": "EU",
    "fileExtension": "mp4"
  }'

# 2. Upload file using returned URL
curl -X PUT "PRESIGNED_URL_FROM_STEP_1" \
  -H "Content-Type: video/mp4" \
  --data-binary @video.mp4
02

Projekt erstellen

Erstellen Sie ein Synchronisationsprojekt mit Zielsprachen und Spracheinstellungen. Unterstützung für mehrere Sprachen in einer Anfrage.
API Request
curl -X POST "https://dubsmart.ai/api/v1/project" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": {"path": "uploaded_file_key"},
    "targetLanguages": ["es", "fr", "de"],
    "voice": "voiceCloning"
  }'
03

Projekt bearbeiten

Ändern Sie die Projekteinstellungen, Titel, Lautsprecher und Hintergrundlautstärke nach Bedarf.
API Request
curl --request PUT \
  --url https://dubsmart.ai/api/v1/project \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "title": "Updated Project Title",
  "speakers": [
    "Speaker 1",
    "Speaker 2"
  ],
  "backgroundVolume": 0.5,
  "id": "64f8a2b1c3d4e5f6a7b8c9d0"
}'
04

Ergebnisse herunterladen

Laden Sie Ihre synchronisierten Video- oder Audiodateien herunter. Holen Sie sich einzelne Segmente oder komplette synchronisierte Inhalte.
API Request
curl -X GET "https://dubsmart.ai/api/v1/project/PROJECT_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"

AI-Vertonungs-API-Endpunkte

Vollständige API-Referenz mit Beispielen für alle Endpunkte
GET
/upload

URL der hochgeladenen Datei abrufen

Abrufen der vordefinierten URL für den Datei-Upload und Rückgabe des Dateischlüssels
Request
JSON
{
  "region": "EU",
  "fileExtension": "mp4"
}
Response
JSON
{
  "url": "https://storage.dubsmart.ai/...",
  "key": "uploads/user_id/filename.mp4"
}
POST
/voices

Stimmen erhalten

Abrufen von verfügbaren AI-Stimmen mit Filteroptionen
Request
JSON
{
  "limit": 50,
  "filter": {
    "language": "en",
    "gender": "female",
    "accent": "american"
  }
}
Response
JSON
{
  "items": [
    {
      "id": "voice_id_1",
      "name": "Anna",
      "value": "anna_en_v2",
      "language": "en",
      "provider": "elevenlabs"
    }
  ],
  "nextCursor": "next_cursor_value"
}
POST
/custom-voices

Benutzerdefinierte Stimmen erhalten

Abrufen von benutzerdefinierten Stimmen
Request
JSON
{
  "limit": 10,
  "cursor": "cursor_value"
}
Response
JSON
{
  "items": [
    {
      "id": "custom_voice_id",
      "name": "My Custom Voice",
      "examplePath": "https://..."
    }
  ],
  "nextCursor": "next_cursor_value"
}
POST
/project

Projekt erstellen

Erstellen Sie ein neues Synchronisationsprojekt mit Videodatei und Zielsprachen
Request
JSON
{
  "input": {
    "path": "uploaded_file_key",
    "type": "LOCAL_FILE",
    "voice": "voiceCloning",
    "textCheck": false
  },
  "targetLanguages": ["es", "fr", "de"],
  "title": "My Dubbing Project",
  "speakersAmount": 2
}
Response
JSON
{
  "id": "64f8a2b1c3d4e5f6a7b8c9d0",
  "groupId": "64f8a2b1c3d4e5f6a7b8c9d1",
  "base": {
    "title": "My Dubbing Project",
    "state": "Pending",
    "progress": 0
  },
  "targetLanguage": "es",
  "groupProjects": [
    {"id": "64f8a2b1c3d4e5f6a7b8c9d0", "targetLanguage": "es"},
    {"id": "64f8a2b1c3d4e5f6a7b8c9d2", "targetLanguage": "fr"},
    {"id": "64f8a2b1c3d4e5f6a7b8c9d3", "targetLanguage": "de"}
  ]
}
GET
/project

Projekte erhalten

Liste aller Synchronisationsprojekte mit Paginierung abrufen
Request
JSON
{
  "cursor": "64f8a2b1c3d4e5f6a7b8c9d0",
  "limit": 10
}
Response
JSON
{
  "items": [
    {
      "id": "64f8a2b1c3d4e5f6a7b8c9d0",
      "base": {
        "title": "My Dubbing Project",
        "state": "Done",
        "progress": 100
      },
      "targetLanguage": "es",
      "createdAt": "2024-01-15T10:30:00Z"
    }
  ],
  "nextCursor": "64f8a2b1c3d4e5f6a7b8c9d4"
}
PUT
/project

Projekt bearbeiten

Aktualisieren der Projekteinstellungen, des Titels, der Lautsprecher und der Hintergrundlautstärke
Request
JSON
{
  "title": "Updated Project Title",
  "speakers": [
    "Speaker 1",
    "Speaker 2"
  ],
  "backgroundVolume": 0.5,
  "id": "64f8a2b1c3d4e5f6a7b8c9d0"
}
Response
JSON
true
DELETE
/project

Projekt löschen

Dauerhaftes Löschen eines Synchronisationsprojekts
Request
JSON
{
  "id": "64f8a2b1c3d4e5f6a7b8c9d0"
}
Response
JSON
true
GET
/project/{id}

Projekt nach ID abrufen

Detaillierte Informationen über ein bestimmtes Projekt einschließlich der Segmente
Request
JSON
GET /project/64f8a2b1c3d4e5f6a7b8c9d0
Response
JSON
{
  "id": "64f8a2b1c3d4e5f6a7b8c9d0",
  "base": {
    "title": "My Dubbing Project",
    "state": "Done",
    "progress": 100
  },
  "segments": [
    {
      "id": "64f8a2b1c3d4e5f6a7b8c9d5",
      "text": "Hello world",
      "translatedText": "Hola mundo",
      "start": 0.0,
      "end": 1.5,
      "speakerId": 0,
      "resultUrl": "https://..."
    }
  ],
  "videoResult": {
    "value": "https://...",
    "state": "Done"
  }
}
POST
/project/regenerate

Projekt "Regenerieren

Audio für das gesamte Projekt oder bestimmte Segmente neu generieren
Request
JSON
{
  "id": "64f8a2b1c3d4e5f6a7b8c9d0",
  "segmentsForRegenerating": ["segment_id_1", "segment_id_2"],
  "cloneVoice": true
}
Response
JSON
true
POST
/project/speaker

Lautsprecher hinzufügen

Einen neuen Sprecher zum Projekt hinzufügen
Request
JSON
{
  "projectId": "64f8a2b1c3d4e5f6a7b8c9d0",
  "voice": "voice_id"
}
Response
JSON
200 OK
DELETE
/project/speaker

Lautsprecher entfernen

Einen Sprecher aus dem Projekt entfernen
Request
JSON
{
  "projectId": "64f8a2b1c3d4e5f6a7b8c9d0",
  "speakerId": 0
}
Response
JSON
200 OK
POST
/segment

Segment erstellen

Hinzufügen eines neuen Sprachsegments zu einem bestehenden Projekt
Request
JSON
{
  "projectId": "64f8a2b1c3d4e5f6a7b8c9d0",
  "text": "New segment text",
  "translatedText": "Texto del nuevo segmento",
  "start": 10.5,
  "end": 12.0,
  "speakerId": 0,
  "voice": "voiceCloning"
}
Response
JSON
{
  "id": "64f8a2b1c3d4e5f6a7b8c9d6",
  "projectId": "64f8a2b1c3d4e5f6a7b8c9d0",
  "text": "New segment text",
  "translatedText": "Texto del nuevo segmento",
  "start": 10.5,
  "end": 12.0,
  "speakerId": 0,
  "state": "Pending"
}
PUT
/segment

Segment bearbeiten

Aktualisieren von Segmenttext-, Zeit- oder Sprachparametern
Request
JSON
{
  "id": "64f8a2b1c3d4e5f6a7b8c9d6",
  "projectId": "64f8a2b1c3d4e5f6a7b8c9d0",
  "text": "Updated segment text",
  "translatedText": "Texto actualizado del segmento",
  "start": 10.0,
  "end": 12.5,
  "speakerId": 0,
  "voice": "voiceCloning"
}
Response
JSON
{
  "id": "64f8a2b1c3d4e5f6a7b8c9d6",
  "text": "Updated segment text",
  "translatedText": "Texto actualizado del segmento",
  "start": 10.0,
  "end": 12.5,
  "speakerId": 0,
  "state": "Pending"
}
DELETE
/segment

Segment löschen

Entfernen eines Sprachsegments aus einem Projekt nach ID
Request
JSON
{
  "id": "64f8a2b1c3d4e5f6a7b8c9d6",
  "projectId": "64f8a2b1c3d4e5f6a7b8c9d0"
}
Response
JSON
true

AI-Synchronisations-API-Codebeispiele

Gebrauchsfertige Code-Beispiele in mehreren Programmiersprachen
JavaScript Example
// JavaScript/Node.js Example
const axios = require('axios');
const fs = require('fs');

const API_KEY = 'your_api_key_here';
const BASE_URL = 'https://dubsmart.ai/api/v1';

async function createDubbingProject() {
  try {
    // 1. Get upload URL
    const uploadResponse = await axios.get(`${BASE_URL}/upload`, {
      params: {
        region: 'EU',
        fileExtension: 'mp4'
      },
      headers: { 'Authorization': `Bearer ${API_KEY}` }
    });

    // 2. Upload file using presigned URL
    const fileBuffer = fs.readFileSync('video.mp4');
    await axios.put(uploadResponse.data.url, fileBuffer, {
      headers: {
        'Content-Type': 'video/mp4'
      }
    });

    // 3. Create dubbing project
    const projectResponse = await axios.post(`${BASE_URL}/project`, {
      input: {
        path: uploadResponse.data.key,
        type: 'LOCAL_FILE',
        voice: 'voiceCloning',
        textCheck: false
      },
      targetLanguages: ['es', 'fr', 'de'],
      title: 'My Multilingual Video'
    }, {
      headers: { 'Authorization': `Bearer ${API_KEY}` }
    });

    console.log('Project created:', projectResponse.data);
    return projectResponse.data;
  } catch (error) {
    console.error('Error:', error.response?.data || error.message);
  }
}

// Monitor project status
async function checkProjectStatus(projectId) {
  const response = await axios.get(`${BASE_URL}/project/${projectId}`, {
    headers: { 'Authorization': `Bearer ${API_KEY}` }
  });
  
  return response.data;
}
Python Example
# Python Example
import requests
import time

API_KEY = 'your_api_key_here'
BASE_URL = 'https://dubsmart.ai/api/v1'

def create_dubbing_project():
    headers = {'Authorization': f'Bearer {API_KEY}'}
    
    try:
        # 1. Get upload URL
        upload_params = {
            'region': 'EU',
            'fileExtension': 'mp4'
        }
        upload_response = requests.get(
            f'{BASE_URL}/upload',
            params=upload_params,
            headers=headers
        )
        upload_response.raise_for_status()
        
        # 2. Upload file using presigned URL
        with open('video.mp4', 'rb') as file:
            upload_file_response = requests.put(
                upload_response.json()['url'],
                data=file,
                headers={'Content-Type': 'video/mp4'}
            )
            upload_file_response.raise_for_status()
        
        # 3. Create dubbing project
        project_data = {
            'input': {
                'path': upload_response.json()['key'],
                'type': 'LOCAL_FILE',
                'voice': 'voiceCloning',
                'textCheck': False
            },
            'targetLanguages': ['es', 'fr', 'de'],
            'title': 'My Multilingual Video'
        }
        
        project_response = requests.post(
            f'{BASE_URL}/project',
            json=project_data,
            headers=headers
        )
        project_response.raise_for_status()
        
        print('Project created:', project_response.json())
        return project_response.json()
        
    except requests.exceptions.RequestException as e:
        print(f'Error: {e}')
        return None

def monitor_project(project_id):
    headers = {'Authorization': f'Bearer {API_KEY}'}
    
    while True:
        response = requests.get(
            f'{BASE_URL}/project/{project_id}',
            headers=headers
        )
        response.raise_for_status()
        
        project = response.json()
        status = project['base']['state']
        
        print(f'Project status: {status}')
        
        if status == 'Done':
            print('Project completed!')
            return project
        elif status == 'Error':
            print('Project failed!')
            return None
            
        time.sleep(30)  # Check every 30 seconds
cURL Example
# cURL Examples

# 1. Get upload URL
curl -X GET "https://dubsmart.ai/api/v1/upload?region=EU&fileExtension=mp4" \
  -H "Authorization: Bearer YOUR_API_KEY"

# 2. Upload file using presigned URL
curl -X PUT "PRESIGNED_URL_FROM_STEP_1" \
  -H "Content-Type: video/mp4" \
  --data-binary @video.mp4

# 3. Create dubbing project
curl -X POST "https://dubsmart.ai/api/v1/project" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": {
      "path": "uploaded_file_key",
      "type": "LOCAL_FILE",
      "voice": "voiceCloning",
      "textCheck": false
    },
    "targetLanguages": ["es", "fr", "de"],
    "title": "My Multilingual Video"
  }'

# 4. Check project status
curl -X GET "https://dubsmart.ai/api/v1/project/PROJECT_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"

# 5. Download results
curl -X GET "https://dubsmart.ai/api/v1/project/PROJECT_ID" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -o "dubbed_video.mp4"
PHP Example
<?php
// PHP Example
$apiKey = 'your_api_key_here';
$baseUrl = 'https://dubsmart.ai/api/v1';

function createDubbingProject() {
    global $apiKey, $baseUrl;
    
    $headers = [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json'
    ];
    
    try {
        // 1. Get upload URL
        $uploadParams = [
            'region' => 'EU',
            'fileExtension' => 'mp4'
        ];
        
        $uploadResponse = httpRequest(
            $baseUrl . '/upload?' . http_build_query($uploadParams),
            'GET',
            null,
            $headers
        );
        
        // 2. Upload file using presigned URL
        $fileContent = file_get_contents('video.mp4');
        $uploadFileResponse = httpRequest(
            $uploadResponse['url'],
            'PUT',
            $fileContent,
            ['Content-Type: video/mp4']
        );
        
        // 3. Create dubbing project
        $projectData = [
            'input' => [
                'path' => $uploadResponse['key'],
                'type' => 'LOCAL_FILE',
                'voice' => 'voiceCloning',
                'textCheck' => false
            ],
            'targetLanguages' => ['es', 'fr', 'de'],
            'title' => 'My Multilingual Video'
        ];
        
        $projectResponse = httpRequest(
            $baseUrl . '/project',
            'POST',
            $projectData,
            $headers
        );
        
        echo "Project created: " . json_encode($projectResponse);
        return $projectResponse;
        
    } catch (Exception $e) {
        echo "Error: " . $e->getMessage();
        return null;
    }
}

function httpRequest($url, $method, $data, $headers) {
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    
    if ($method === 'POST') {
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    } elseif ($method === 'PUT') {
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    }
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    
    curl_close($ch);
    
    if ($httpCode >= 200 && $httpCode < 300) {
        return json_decode($response, true);
    } else {
        throw new Exception("HTTP Error: " . $httpCode);
    }
}

// Usage
$project = createDubbingProject();
?>

FAQ

Welche Dateiformate unterstützt die API?
Die API unterstützt alle gängigen Videoformate wie MP4, MOV, AVI, MKV, WebM und andere. Bei Audiodateien unterstützen wir MP3, WAV, AAC und andere gängige Formate. Die maximale Dateigröße beträgt 5 GB.
Wie lange dauert die Synchronisation?
Die Verarbeitungszeit hängt von der Videolänge und der Dateigröße ab. Ein 5-minütiges Video wird in der Regel in 1 Minute verarbeitet. Unternehmenskunden erhalten eine bevorzugte Bearbeitung mit kürzeren Bearbeitungszeiten.
Welche Sprachen werden unterstützt?
Wir unterstützen über 33 Zielsprachen, darunter Englisch, Portugiesisch, Spanisch, Französisch, Deutsch, Chinesisch, Japanisch, Koreanisch, Russisch, Arabisch, Hindi und viele mehr. Wir können auch Inhalte aus über 99 Ausgangssprachen erkennen und verarbeiten.
Wie funktioniert das Klonen von Stimmen?
Unsere fortschrittliche KI analysiert die Stimmcharakteristika des Originalsprechers, einschließlich Tonfall, Tonhöhe, Akzent und Sprechstil. Anschließend erzeugt sie synthetische Sprache, die diese einzigartigen Eigenschaften beibehält, während sie in der Zielsprache gesprochen wird.
Kann ich den synchronisierten Inhalt bearbeiten?
Ja! Die API bietet umfassende Bearbeitungsmöglichkeiten. Sie können den übersetzten Text ändern, das Timing anpassen, die Stimmen ändern und bestimmte Segmente neu generieren.
Kann ich die API für kommerzielle Projekte nutzen?
Ja! Alle Pläne erlauben die kommerzielle Nutzung. Die API ist für Produktionsumgebungen konzipiert und wird von großen Inhaltserstellern, Unternehmen und Medienunternehmen weltweit genutzt.