Video Creation Process

Learn the steps and key endpoints for creating videos with the Visla Open API.

Setup Open API Key/Secret

Visla provides an API key and secret for secure access to the OpenAPI. These credentials must be included in your API request headers using an encrypted format. For detailed authentication and encryption guidelines, see authenticated interactions

Video Creation Methods

Visla’s OpenAPI supports multiple ways to create videos depending on your input type — webpage, text script, or document.

Webpage to Video

Provide a webpage URL in your request, and Visla will automatically extract the content and generate a video. This is the simplest way to create videos directly from online articles or landing pages. For full request and response details, see webpage to video

Script to Video

Submit your own text script to generate a video. Visla uses your provided text as narration and visual guidance to create a cohesive video automatically. For full request and response details, see script to video

Document to Video

For document-based video creation, the process involves three steps:

Get Upload URL

The first step is to obtain a pre-signed URL for file upload. This URL will be used to securely upload your document file to S3.

  • Parameters:
    • mediaType: Document type ("pdf" or "ppt")
    • suffix: File extension ("pdf", "pptx", "ppt")
  • Purpose: Generate a secure, temporary URL for file upload
  • Response: Returns upload URL and asset ID

Upload File to S3

Once you have the upload URL, you must upload your document file directly to S3 using HTTP PUT method

  • Method: HTTP PUT
  • URL: Use the exact uploadUrl from step 1 response
  • Headers:
    • Content-Type: Set appropriate MIME type (application/octet-stream, application/pdf, application/vnd.ms-powerpoint, etc.)
    • Do NOT include authentication headers for S3 upload
  • Body: Raw binary file data
  • Timeout: Complete upload within 10 minutes (URL expires after 600 seconds)
  • Security: Uses pre-signed URL for secure, time-limited access
# Correct way to upload to S3

with open("document.pdf", "rb") as file:
    response = requests.put(
        upload_url,  # URL from step 1
        data=file.read(),  # Raw binary data
        headers={
            "Content-Type": "application/octet-stream"
        }
    )
    
if response.status_code == 200:
    print("Upload successful")
else:
    print(f"Upload failed: {response.status_code}")

File Constraints

  • PDF: 100MB file size
  • PPTX: 100MB file size
  • Supported formats: PDF, PPTX, PPT

Create Video from Document

The third step creates a video project using the uploaded document URL

Key Workflow Steps

StepEndpointPurposeWait Time
1GET /openapi/v1/project/get-asset-upload-urlGet S3 upload URLInstant
2PUT {uploadUrl}Upload PDF to S310s–2min
3POST /openapi/v1/project/doc-to-videoCreate project & wait for editing status2–10min
4POST /openapi/v1/project/{projectUuid}/export-videoExport videoAsync via webhook

Video Status Lifecycle

Understanding the project status is crucial for successful integration:

StatusDescriptionNext Action
initProject created; initial setup in progress. AI is analyzing document content.Wait (typically 1–2 minutes)
preparationBasic configuration is being set (sound, avatar, subtitles, etc.) and initial video generation begins.Wait while video is generated (typically 3–10 minutes)
generated_videosVideo content is being created.Wait 5–15 minutes
editingProject is ready for preview.Proceed with editing or exporting
errorThe process failed.

After creating a video project, the Get Project Info API should be called repeatedly in a loop to check the project’s status. Once the status shows editing, it indicates that the project has finished being created and is ready for further actions.

Clip Status Lifecycle

After exporting a project, monitoring the clip status lifecycle ensures you know exactly when the video is ready for use:

StatusDescriptionTypical Use Case
initClip just created; initial setup in progressImmediately after export request
downloadingDownloading source contentProcessing remote assets
uploadingUploading to storageFile transfer in progress
processingVideo processing in progressEncoding, compression, etc.
publishingFinalizing and publishingMaking clip available
completedClip ready for download or viewingFully processed and available
failedProcessing failedAn error occurred during processing

Once a project is exported to a clip, the clip goes through a series of statuses that reflect its progress. The Get Clip Info API should be called repeatedly to monitor these statuses. The lifecycle ends when the status reaches completed, indicating that the video is fully processed and ready for use.