Upload Audio & Video
Scriptix provides multiple methods to upload media files for transcription. This guide covers all available upload options and best practices.
Upload Methods Overview
Scriptix supports the following upload methods through the Uppy file uploader:
| Method | Description | Implementation |
|---|---|---|
| Local Files | Upload from your computer | Drag & drop or browse |
| Webcam | Record video directly | @uppy/webcam |
| Microphone | Record audio directly | @uppy/audio |
| Screen Capture | Record screen with audio | @uppy/screen-capture |
| Cloud Storage | Import from cloud providers | Google Drive, Dropbox, OneDrive, Box, Zoom |
| URL | Import from direct media links | Custom URL plugin |
File Size Limits
Maximum file size enforced in the upload component:
- Client-side limit: 10 GB per file
- Server configuration: 20 GB (production), 10 GB (staging)
const maxFileSize = 10 * 1024 * 1024 * 1024; // 10GB client-side check
Supported File Formats
Audio Formats
Verified supported audio formats:
- MP3 (.mp3)
- WAV (.wav)
- M4A (.m4a)
- AAC (.aac)
- OGG (.ogg)
- FLAC (.flac)
- WMA (.wma)
- AIFF (.aiff)
Video Formats
Verified supported video formats:
- MP4 (.mp4)
- MOV (.mov)
- AVI (.avi)
- MKV (.mkv)
- WebM (.webm)
- M4V (.m4v)
- 3GP (.3gp)
- FLV (.flv)
- WMV (.wmv)
- TS (.ts)
See Supported Formats for complete details.
Upload Protocol: TUS Resumable Uploads
All file uploads use the TUS protocol for resumable uploads:
Features:
- Resumable - Interrupted uploads can resume from where they stopped
- Chunked - Files uploaded in 50 MB chunks
- Reliable - Retry logic with delays (0s, 3s, 5s, 10s, 20s, 30s, 60s)
- Persistent - Fingerprints stored for resuming across sessions
.use(Tus, {
endpoint: `${API_BASE_URL}/api/v3/files/`,
retryDelays: [0, 3000, 5000, 10000, 20000, 30000, 60000],
chunkSize: 50 * 1024 * 1024, // 50MB chunks
storeFingerprintForResuming: true
})
Method 1: Upload from Computer
Drag and Drop
- Open the upload dialog
- Drag your audio or video file from your file explorer
- Drop it onto the upload area
- The file begins uploading automatically
Browse Files
- Click the Browse Files button in the upload dialog
- Navigate to your file location
- Select one or more files
- Click Open
- Upload begins automatically
Method 2: Record with Webcam
Record video directly in your browser.
Configuration
- Modes: Video with audio
- Video MIME type: video/webm (broad browser support)
- Video source dropdown: Hidden for simplified UI
- Recording length: Displayed
Steps
- Open the upload dialog
- Click the Webcam icon
- Grant camera and microphone permissions when prompted
- Click the record button to start recording
- Click stop when finished
- Select language
- Preview your recording
- Submit to upload
Browser Requirements
Requires browser support for MediaDevices API and getUserMedia. See System Requirements for details.
Method 3: Record Audio with Microphone
Record audio-only content directly in your browser.
Configuration
- Audio source dropdown: Hidden for simplified UI
- Format: Browser-dependent (typically webm or ogg)
Steps
- Open the upload dialog
- Click the Microphone or Audio icon
- Grant microphone permission when prompted
- Click the record button to start
- Speak into your microphone
- Click stop when finished
- Select language
- Review the recording
- Submit to upload
Method 4: Screen Capture
Record your screen with audio - ideal for tutorials, presentations, and demos.
Configuration
- Video MIME type: video/webm
- Screen sharing options: Controlled by browser
- Entire screen
- Application window
- Browser tab
Steps
- Open the upload dialog
- Click the Screen Capture icon
- Grant screen sharing permission
- Choose what to share (screen, window, or tab)
- Click the record button
- Perform your screen actions
- Click stop when finished
- Select the language
- Preview the recording
- Submit to upload
Browser Support
Works on Chrome, Edge, and Firefox. Requires getDisplayMedia API support.
Method 5: Import from Cloud Storage
Import files directly from cloud storage providers.
Supported Providers
Based on installed Uppy plugins:
- Google Drive -
@uppy/google-drive - Dropbox -
@uppy/dropbox - OneDrive -
@uppy/onedrive - Box -
@uppy/box - Zoom -
@uppy/zoom
How It Works
- Click the icon for your cloud provider
- Authenticate with your cloud account (first time only)
- Navigate through your folders
- Select the file(s) to import
- Files upload directly from cloud storage to Scriptix
Benefit: No need to download files to your computer first.
Method 6: Import from URL
Import media files from direct URLs.
Requirements
- Direct URL to a media file
- File must be publicly accessible
- No authentication required
Steps
- Open the upload dialog
- Click the URL or Link icon
- Paste the direct media URL
- Click Import or Submit
- Scriptix fetches and uploads the file
Upload Configuration
After selecting files, configure transcription settings:
Language Selection
Required: Select the spoken language from the dropdown.
The language parameter is passed to the STT session API:
{
language: string // Required
}
For supported languages, see Language Selection.
Speaker Diarization
Optional: Enable to automatically identify different speakers.
Toggle to enable/disable speaker identification:
{
diarization: boolean // Optional, defaults to organization setting
}
Default value comes from organization settings.
Document Type
Specify the type of document to create:
- transcript - Standard transcript
- caption - Subtitle/caption file
document: {
document_type: 'document' | 'caption',
filename: string
}
File Management
Allowed File Types
The upload component dynamically adjusts allowed file types based on document type:
For transcripts:
- Video and audio formats
For captions:
- Video, audio, and subtitle formats (.srt, .vtt, .sbv, .ttml, .html)
For alignment:
- Video, audio, and document formats (.txt, .docx, .pdf, .doc, .html)
Upload State Management
The upload component tracks:
uploading- Upload in progressisPaused- Upload pausedhasFiles- Files added to uploaderresultUppy- Upload results
Error Handling
File Size Exceeded
If a file exceeds the 10 GB client-side limit:
- Error message displayed (from translation key:
file-size-exceed) - File not added to upload queue
Upload Failures
TUS protocol automatically retries failed uploads with increasing delays:
- Retry attempts: 7 times
- Delays: 0s, 3s, 5s, 10s, 20s, 30s, 60s
Best Practices
File Preparation
- Check audio quality - Ensure clear audio before uploading
- Use appropriate formats - MP3 for audio, MP4 for video
- File naming - Use descriptive names for easy organization
Uploading
- Stable connection - Use wired connection for large files
- Resume capability - Don't restart - use TUS resume if interrupted
- Folder organization - Select target folder before uploading
Recording
- Test first - Record a short test before long sessions
- Monitor levels - Check audio levels during recording
- Quiet environment - Minimize background noise
Troubleshooting
Upload Fails
Check:
- File format is supported
- File size under 10 GB
- Stable internet connection
- Browser permissions granted
See Troubleshooting > Upload Issues
Recording Permissions Denied
Solution:
- Grant permissions when browser prompts
- Check browser settings for camera/microphone access
- Ensure no other application is using the device
Cloud Storage Connection Issues
Solution:
- Re-authenticate with the cloud provider
- Check file permissions (must be accessible)
- Verify cloud provider account status
Technical Details
Upload Endpoint
TUS uploads go to:
POST {API_BASE_URL}/api/v3/files/
With authentication header:
Authorization: Bearer {token}
File Fingerprinting
Each file gets a unique fingerprint for resumable uploads:
fingerprint: ['tus', file.name, file.type, file.size, uuid].join('-')
UUIDs are generated per file and stored for the session lifecycle.
Next Steps
After uploading your file:
- Automatic Transcription - Learn about the processing phase
- Transcript Editor Interface - Master the editing tools
Related Documentation:
- System Requirements - Browser compatibility
- Troubleshooting - Common issues
- FAQ - Frequently asked questions
Ready to upload? Choose your method above and start transcribing!