Retrieving digital assets...
Convert videos from any source to modern formats and HLS, with seamless cloud-to-cloud delivery
A powerful video conversion Actor that transforms videos between formats using FFmpeg. Supports multiple input sources, output destinations, and advanced video processing features.
{
"inputType": "url",
"videoUrl": "https://example.com/video.mp4",
"outputFormat": "mp4",
"videoCodec": "h264",
"audioCodec": "aac",
"quality": "medium",
"outputDestination": "apify"
}
{
"inputType": "url",
"videoUrl": "https://api.example.com/protected/video.mp4",
"urlAuthType": "bearer",
"urlAuthBearerToken": "your-api-token",
"outputFormat": "mp4"
}
{
"inputType": "url",
"videoUrl": "https://secure.example.com/video.mp4",
"urlAuthType": "basic",
"urlAuthUsername": "user",
"urlAuthPassword": "pass",
"outputFormat": "webm"
}
{
"inputType": "url",
"videoUrl": "https://api.example.com/video.mp4",
"urlAuthType": "header",
"urlAuthHeaderName": "X-API-Key",
"urlAuthHeaderValue": "your-api-key",
"outputFormat": "mp4"
}
{
"inputType": "googleDrive",
"googleDriveFileId": "1abc123def456",
"googleDriveCredentials": {
"private_key": "-----BEGIN PRIVATE KEY-----...",
"client_email": "service@project.iam.gserviceaccount.com"
},
"outputFormat": "mp4"
}
{
"inputType": "dropbox",
"dropboxFileUrl": "https://www.dropbox.com/s/abc123/video.mp4?dl=0",
"dropboxAccessToken": "your-dropbox-token",
"outputFormat": "webm"
}
{
"inputType": "url",
"videoUrl": "https://example.com/video.mp4",
"outputFormat": "hls",
"videoCodec": "h264",
"audioCodec": "aac"
}
{
"outputDestination": "s3",
"s3Bucket": "my-video-bucket",
"s3Region": "us-east-1",
"s3AccessKeyId": "AKIA...",
"s3SecretAccessKey": "...",
"s3Path": "converted/video.mp4"
}
{
"outputDestination": "gcs",
"gcsBucket": "my-gcs-bucket",
"gcsCredentials": {
"type": "service_account",
"project_id": "your-project",
"private_key": "-----BEGIN PRIVATE KEY-----...",
"client_email": "service@project.iam.gserviceaccount.com"
},
"gcsPath": "videos/output.mp4"
}
{
"outputDestination": "dropbox",
"dropboxAccessToken": "your-dropbox-token",
"dropboxPath": "/Videos/converted.mp4"
}
Sends JSON payload with video URL and metadata:
{
"webhookUrl": "https://api.example.com/webhook",
"webhookHeadersJson": "{\"Authorization\": \"Bearer webhook-secret\"}"
}
Sends multipart form data with actual video file attached:
{
"webhookUrl": "https://api.example.com/upload",
"webhookSendFile": true,
"webhookFileFieldName": "video",
"webhookHeadersJson": "{\"Authorization\": \"Bearer webhook-secret\"}"
}
{
"status": "success",
"downloadUrl": "https://api.apify.com/v2/key-value-stores/.../records/video.mp4",
"outputProvider": "apify",
"inputFormat": "mp4",
"outputFormat": "webm",
"duration": 120.5,
"fileSize": 15234567,
"executionTime": 45.2,
"thumbnails": [],
"timestamp": "2024-01-15T10:30:00.000Z",
"metadata": {
"videoCodec": "vp9",
"audioCodec": "opus",
"resolution": "1920x1080"
}
}
{
"trimStart": "00:00:30",
"trimEnd": "00:02:00"
}
{
"watermarkEnabled": true,
"watermarkType": "text",
"watermarkText": "© My Company",
"watermarkPosition": "bottom-right",
"watermarkOpacity": "0.8",
"watermarkFontSize": 24,
"watermarkFontColor": "white"
}
{
"watermarkEnabled": true,
"watermarkType": "image",
"watermarkImageUrl": "https://example.com/logo.png",
"watermarkPosition": "top-left",
"watermarkOpacity": "0.5"
}
{
"thumbnailsEnabled": true,
"thumbnailsCount": 5,
"thumbnailsFormat": "jpg",
"thumbnailsWidth": 640
}
{
"gifPreviewEnabled": true,
"gifPreviewStartTime": "00:00:05",
"gifPreviewDuration": 3,
"gifPreviewWidth": 480,
"gifPreviewFps": 10
}
{
"audioVolume": "1.5",
"audioNormalize": true,
"audioReplaceUrl": "https://example.com/music.mp3"
}
HLS is the default output format. Simply set outputFormat to hls:
{
"inputType": "url",
"videoUrl": "https://example.com/video.mp4",
"outputFormat": "hls",
"videoCodec": "h264",
"audioCodec": "aac"
}
The extractor feature allows you to split a video file into separate video, audio, and subtitle tracks. This is useful for:
{
"inputType": "url",
"videoUrl": "https://example.com/movie.mkv",
"extractorEnabled": true,
"extractorExtractVideo": true,
"extractorExtractAudio": true,
"extractorExtractSubtitles": true
}
{
"inputType": "url",
"videoUrl": "https://example.com/video.mp4",
"extractorEnabled": true,
"extractorExtractVideo": false,
"extractorExtractAudio": true,
"extractorExtractSubtitles": false,
"extractorAudioFormat": "mp3",
"extractorAudioBitrate": "320k"
}
{
"inputType": "url",
"videoUrl": "https://example.com/concert.mp4",
"extractorEnabled": true,
"extractorExtractVideo": false,
"extractorExtractAudio": true,
"extractorAudioFormat": "flac"
}
{
"inputType": "url",
"videoUrl": "https://example.com/video.mp4",
"extractorEnabled": true,
"extractorExtractVideo": true,
"extractorExtractAudio": false,
"extractorVideoCodec": "copy"
}
When extraction is complete, the output includes URLs for each extracted track:
{
"status": "success",
"extractedTracks": {
"videoUrl": "https://api.apify.com/v2/key-value-stores/.../records/video_video.mp4",
"audioUrl": "https://api.apify.com/v2/key-value-stores/.../records/video_audio.mp3",
"subtitleUrls": [
{
"url": "https://api.apify.com/v2/key-value-stores/.../records/video_subtitle_eng.srt",
"language": "eng",
"title": "English",
"index": 0
}
]
},
"streamInfo": {
"hasVideo": true,
"hasAudio": true,
"hasSubtitles": true,
"streams": {
"video": [{ "codec": "h264", "width": 1920, "height": 1080 }],
"audio": [{ "codec": "aac", "channels": 2, "sampleRate": "48000" }],
"subtitle": [{ "codec": "subrip", "language": "eng" }]
}
}
}
| Parameter | Type | Default | Description |
|---|---|---|---|
extractorEnabled | Boolean | false | Enable extractor mode |
extractorExtractVideo | Boolean | true | Extract video track (without audio) |
extractorExtractAudio | Boolean | true | Extract audio track |
extractorExtractSubtitles | Boolean | true | Extract subtitle/caption tracks |
extractorVideoCodec | String | copy | Video codec (h264, h265, vp9, copy) |
extractorAudioFormat | String | mp3 | Audio format (mp3, aac, wav, flac, ogg, opus) |
extractorAudioBitrate | String | - | Audio bitrate (e.g., 128k, 320k) |
extractorSubtitleFormat | String | srt | Subtitle format (srt, ass, vtt) |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
inputType | String | Yes | url | url, dropbox, googleDrive, cloudStorage, apifyStorage |
videoUrl | String | Conditional | - | Video URL (required for url input) |
urlAuthType | String | No | none | none, bearer, basic, header |
outputFormat | String | Yes | hls | mp4, mov, webm, mkv, avi, gif, hls |
videoCodec | String | No | h264 | h264, h265, vp8, vp9, av1, copy |
audioCodec | String | No | aac | aac, mp3, opus, vorbis, copy, none |
quality | String | No | medium | low, medium, high, veryhigh |
preset | String | No | medium | FFmpeg preset (affects speed/quality) |
outputDestination | String | No | apify | apify, s3, gcs, dropbox |
webhookUrl | String | No | - | Webhook URL for notifications |
webhookSendFile | Boolean | No | false | Send video file in webhook |
The Actor saves results to:
outputDestination is apify){
"status": "success",
"inputSource": "url",
"inputFormat": "mp4",
"outputFormat": "webm",
"outputUrl": "https://api.apify.com/v2/key-value-stores/.../records/video.webm",
"outputDestination": "apify",
"fileSize": 12345678,
"videoDuration": 120.5,
"executionTime": 45.2,
"thumbnails": [],
"timestamp": "2024-01-15T10:30:00.000Z"
}
MIT