lucataco/video-merge
Simple tool to merge together separate video snippets
Prediction
lucataco/video-merge:65c81d0dIDdrv7b27dy5rgc0cmbt3vns09zmStatusSucceededSourceWebHardwareCPUTotal durationCreatedInput
- fps
- 0
- width
- 0
- height
- 0
- keep_audio
- video_files
{ "fps": 0, "width": 0, "height": 0, "keep_audio": true, "video_files": [ "https://replicate.delivery/pbxt/MJTeIs25n8qaOVWQdlCmXZtf7UDO3DCIsl6QKReMHvSj45hB/liberty-day.mp4", "https://replicate.delivery/pbxt/MJTeIinBMvBBUF4xu9ndmsEzfoALtSW8OxoSnsBqThnBAd6b/liberty-night.mp4" ] }Install Replicate’s Node.js client library:npm install replicateImport and set up the client:import Replicate from "replicate"; import fs from "node:fs"; const replicate = new Replicate({ auth: process.env.REPLICATE_API_TOKEN, });Run lucataco/video-merge using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const output = await replicate.run( "lucataco/video-merge:65c81d0d0689d8608af8c2f59728135925419f4b5e62065c37fc350130fed67a", { input: { fps: 0, width: 0, height: 0, keep_audio: true, video_files: ["https://replicate.delivery/pbxt/MJTeIs25n8qaOVWQdlCmXZtf7UDO3DCIsl6QKReMHvSj45hB/liberty-day.mp4","https://replicate.delivery/pbxt/MJTeIinBMvBBUF4xu9ndmsEzfoALtSW8OxoSnsBqThnBAd6b/liberty-night.mp4"] } } ); // To access the file URL: console.log(output.url()); //=> "http://example.com" // To write the file to disk: fs.writeFile("my-image.png", output);To learn more, take a look at the guide on getting started with Node.js.
Install Replicate’s Python client library:pip install replicateImport the client:import replicateRun lucataco/video-merge using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run( "lucataco/video-merge:65c81d0d0689d8608af8c2f59728135925419f4b5e62065c37fc350130fed67a", input={ "fps": 0, "width": 0, "height": 0, "keep_audio": True, "video_files": ["https://replicate.delivery/pbxt/MJTeIs25n8qaOVWQdlCmXZtf7UDO3DCIsl6QKReMHvSj45hB/liberty-day.mp4","https://replicate.delivery/pbxt/MJTeIinBMvBBUF4xu9ndmsEzfoALtSW8OxoSnsBqThnBAd6b/liberty-night.mp4"] } ) # To access the file URL: print(output.url()) #=> "http://example.com" # To write the file to disk: with open("my-image.png", "wb") as file: file.write(output.read())To learn more, take a look at the guide on getting started with Python.
Run lucataco/video-merge using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
curl -s -X POST \ -H "Authorization: Bearer $REPLICATE_API_TOKEN" \ -H "Content-Type: application/json" \ -H "Prefer: wait" \ -d $'{ "version": "lucataco/video-merge:65c81d0d0689d8608af8c2f59728135925419f4b5e62065c37fc350130fed67a", "input": { "fps": 0, "width": 0, "height": 0, "keep_audio": true, "video_files": ["https://replicate.delivery/pbxt/MJTeIs25n8qaOVWQdlCmXZtf7UDO3DCIsl6QKReMHvSj45hB/liberty-day.mp4","https://replicate.delivery/pbxt/MJTeIinBMvBBUF4xu9ndmsEzfoALtSW8OxoSnsBqThnBAd6b/liberty-night.mp4"] } }' \ https://api.replicate.com/v1/predictionsTo learn more, take a look at Replicate’s HTTP API reference docs.
Output
{ "completed_at": "2025-01-13T07:19:45.714499Z", "created_at": "2025-01-13T07:19:14.161000Z", "data_removed": false, "error": null, "id": "drv7b27dy5rgc0cmbt3vns09zm", "input": { "fps": 0, "width": 0, "height": 0, "keep_audio": true, "video_files": [ "https://replicate.delivery/pbxt/MJTeIs25n8qaOVWQdlCmXZtf7UDO3DCIsl6QKReMHvSj45hB/liberty-day.mp4", "https://replicate.delivery/pbxt/MJTeIinBMvBBUF4xu9ndmsEzfoALtSW8OxoSnsBqThnBAd6b/liberty-night.mp4" ] }, "logs": "Moviepy - Building video /tmp/output/output.mp4.\nMoviepy - Writing video /tmp/output/output.mp4\nt: 0%| | 0/259 [00:00<?, ?it/s, now=None]\nt: 10%|▉ | 25/259 [00:00<00:00, 243.30it/s, now=None]\nt: 19%|█▉ | 50/259 [00:00<00:01, 183.19it/s, now=None]\nt: 27%|██▋ | 71/259 [00:00<00:01, 166.66it/s, now=None]\nt: 34%|███▍ | 89/259 [00:00<00:01, 152.75it/s, now=None]\nt: 41%|████ | 105/259 [00:00<00:01, 125.95it/s, now=None]\nt: 46%|████▌ | 119/259 [00:00<00:01, 124.96it/s, now=None]\nt: 51%|█████ | 132/259 [00:01<00:01, 105.27it/s, now=None]\nt: 56%|█████▌ | 144/259 [00:01<00:01, 107.34it/s, now=None]\nt: 60%|██████ | 156/259 [00:01<00:00, 108.90it/s, now=None]\nt: 65%|██████▍ | 168/259 [00:01<00:00, 109.39it/s, now=None]\nt: 69%|██████▉ | 180/259 [00:01<00:00, 90.26it/s, now=None] \nt: 76%|███████▋ | 198/259 [00:01<00:00, 109.48it/s, now=None]\nt: 83%|████████▎ | 214/259 [00:01<00:00, 121.15it/s, now=None]\nt: 88%|████████▊ | 227/259 [00:01<00:00, 123.32it/s, now=None]\nt: 93%|█████████▎| 242/259 [00:01<00:00, 129.88it/s, now=None]\nt: 99%|█████████▉| 256/259 [00:02<00:00, 130.62it/s, now=None]\nMoviepy - Done !\nMoviepy - video ready /tmp/output/output.mp4", "metrics": { "predict_time": 2.919406988, "total_time": 31.553499 }, "output": "https://replicate.delivery/czjl/qapuK6gF2f0gNaaVORND1rSEQkz99ZtBeJ2TdOcQKRWRCnEUA/output.mp4", "started_at": "2025-01-13T07:19:42.795092Z", "status": "succeeded", "urls": { "stream": "https://stream.replicate.com/v1/files/fddq-l4gezuro5ozadkz7zowlpdgigdexpfzj3h56ft32zfvywianxpca", "get": "https://api.replicate.com/v1/predictions/drv7b27dy5rgc0cmbt3vns09zm", "cancel": "https://api.replicate.com/v1/predictions/drv7b27dy5rgc0cmbt3vns09zm/cancel" }, "version": "65c81d0d0689d8608af8c2f59728135925419f4b5e62065c37fc350130fed67a" }Generated inMoviepy - Building video /tmp/output/output.mp4. Moviepy - Writing video /tmp/output/output.mp4 t: 0%| | 0/259 [00:00<?, ?it/s, now=None] t: 10%|▉ | 25/259 [00:00<00:00, 243.30it/s, now=None] t: 19%|█▉ | 50/259 [00:00<00:01, 183.19it/s, now=None] t: 27%|██▋ | 71/259 [00:00<00:01, 166.66it/s, now=None] t: 34%|███▍ | 89/259 [00:00<00:01, 152.75it/s, now=None] t: 41%|████ | 105/259 [00:00<00:01, 125.95it/s, now=None] t: 46%|████▌ | 119/259 [00:00<00:01, 124.96it/s, now=None] t: 51%|█████ | 132/259 [00:01<00:01, 105.27it/s, now=None] t: 56%|█████▌ | 144/259 [00:01<00:01, 107.34it/s, now=None] t: 60%|██████ | 156/259 [00:01<00:00, 108.90it/s, now=None] t: 65%|██████▍ | 168/259 [00:01<00:00, 109.39it/s, now=None] t: 69%|██████▉ | 180/259 [00:01<00:00, 90.26it/s, now=None] t: 76%|███████▋ | 198/259 [00:01<00:00, 109.48it/s, now=None] t: 83%|████████▎ | 214/259 [00:01<00:00, 121.15it/s, now=None] t: 88%|████████▊ | 227/259 [00:01<00:00, 123.32it/s, now=None] t: 93%|█████████▎| 242/259 [00:01<00:00, 129.88it/s, now=None] t: 99%|█████████▉| 256/259 [00:02<00:00, 130.62it/s, now=None] Moviepy - Done ! Moviepy - video ready /tmp/output/output.mp4Prediction
lucataco/video-merge:65c81d0dIDxd3ry91e6srgc0cmbt4ttzpgxmStatusSucceededSourceWebHardwareCPUTotal durationCreatedInput
- fps
- 0
- width
- 0
- height
- 0
- keep_audio
- video_files
{ "fps": 0, "width": 0, "height": 0, "keep_audio": true, "video_files": [ "https://replicate.delivery/pbxt/MJTfbPT7XhL6g8tF72ePFmkLnnSkVT71YwD44cnjF93U8cBI/brusing-hair.mp4", "https://replicate.delivery/pbxt/MJTfb5JZwAKG2goCTC4BqiTUq1fj0iaOWkHqlakRwlQonD6T/brushing-in-reverse.mp4" ] }Install Replicate’s Node.js client library:npm install replicateImport and set up the client:import Replicate from "replicate"; import fs from "node:fs"; const replicate = new Replicate({ auth: process.env.REPLICATE_API_TOKEN, });Run lucataco/video-merge using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const output = await replicate.run( "lucataco/video-merge:65c81d0d0689d8608af8c2f59728135925419f4b5e62065c37fc350130fed67a", { input: { fps: 0, width: 0, height: 0, keep_audio: true, video_files: ["https://replicate.delivery/pbxt/MJTfbPT7XhL6g8tF72ePFmkLnnSkVT71YwD44cnjF93U8cBI/brusing-hair.mp4","https://replicate.delivery/pbxt/MJTfb5JZwAKG2goCTC4BqiTUq1fj0iaOWkHqlakRwlQonD6T/brushing-in-reverse.mp4"] } } ); // To access the file URL: console.log(output.url()); //=> "http://example.com" // To write the file to disk: fs.writeFile("my-image.png", output);To learn more, take a look at the guide on getting started with Node.js.
Install Replicate’s Python client library:pip install replicateImport the client:import replicateRun lucataco/video-merge using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run( "lucataco/video-merge:65c81d0d0689d8608af8c2f59728135925419f4b5e62065c37fc350130fed67a", input={ "fps": 0, "width": 0, "height": 0, "keep_audio": True, "video_files": ["https://replicate.delivery/pbxt/MJTfbPT7XhL6g8tF72ePFmkLnnSkVT71YwD44cnjF93U8cBI/brusing-hair.mp4","https://replicate.delivery/pbxt/MJTfb5JZwAKG2goCTC4BqiTUq1fj0iaOWkHqlakRwlQonD6T/brushing-in-reverse.mp4"] } ) # To access the file URL: print(output.url()) #=> "http://example.com" # To write the file to disk: with open("my-image.png", "wb") as file: file.write(output.read())To learn more, take a look at the guide on getting started with Python.
Run lucataco/video-merge using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
curl -s -X POST \ -H "Authorization: Bearer $REPLICATE_API_TOKEN" \ -H "Content-Type: application/json" \ -H "Prefer: wait" \ -d $'{ "version": "lucataco/video-merge:65c81d0d0689d8608af8c2f59728135925419f4b5e62065c37fc350130fed67a", "input": { "fps": 0, "width": 0, "height": 0, "keep_audio": true, "video_files": ["https://replicate.delivery/pbxt/MJTfbPT7XhL6g8tF72ePFmkLnnSkVT71YwD44cnjF93U8cBI/brusing-hair.mp4","https://replicate.delivery/pbxt/MJTfb5JZwAKG2goCTC4BqiTUq1fj0iaOWkHqlakRwlQonD6T/brushing-in-reverse.mp4"] } }' \ https://api.replicate.com/v1/predictionsTo learn more, take a look at Replicate’s HTTP API reference docs.
Output
{ "completed_at": "2025-01-13T07:20:41.020723Z", "created_at": "2025-01-13T07:20:36.150000Z", "data_removed": false, "error": null, "id": "xd3ry91e6srgc0cmbt4ttzpgxm", "input": { "fps": 0, "width": 0, "height": 0, "keep_audio": true, "video_files": [ "https://replicate.delivery/pbxt/MJTfbPT7XhL6g8tF72ePFmkLnnSkVT71YwD44cnjF93U8cBI/brusing-hair.mp4", "https://replicate.delivery/pbxt/MJTfb5JZwAKG2goCTC4BqiTUq1fj0iaOWkHqlakRwlQonD6T/brushing-in-reverse.mp4" ] }, "logs": "Moviepy - Building video /tmp/output/output.mp4.\nMoviepy - Writing video /tmp/output/output.mp4\nt: 0%| | 0/282 [00:00<?, ?it/s, now=None]\nt: 5%|▌ | 15/282 [00:00<00:01, 148.55it/s, now=None]\nt: 11%|█▏ | 32/282 [00:00<00:01, 160.65it/s, now=None]\nt: 17%|█▋ | 49/282 [00:00<00:01, 126.10it/s, now=None]\nt: 22%|██▏ | 63/282 [00:00<00:01, 123.98it/s, now=None]\nt: 27%|██▋ | 76/282 [00:00<00:01, 104.53it/s, now=None]\nt: 31%|███ | 88/282 [00:00<00:02, 85.02it/s, now=None] \nt: 35%|███▍ | 98/282 [00:01<00:02, 73.06it/s, now=None]\nt: 38%|███▊ | 106/282 [00:01<00:02, 72.24it/s, now=None]\nt: 40%|████ | 114/282 [00:01<00:02, 72.46it/s, now=None]\nt: 44%|████▎ | 123/282 [00:01<00:02, 66.13it/s, now=None]\nt: 46%|████▌ | 130/282 [00:01<00:02, 64.97it/s, now=None]\nt: 49%|████▊ | 137/282 [00:01<00:02, 65.96it/s, now=None]\nt: 52%|█████▏ | 146/282 [00:01<00:01, 70.53it/s, now=None]\nt: 55%|█████▍ | 154/282 [00:01<00:02, 60.43it/s, now=None]\nt: 57%|█████▋ | 162/282 [00:02<00:01, 64.39it/s, now=None]\nt: 60%|█████▉ | 169/282 [00:02<00:01, 64.09it/s, now=None]\nt: 63%|██████▎ | 177/282 [00:02<00:01, 67.39it/s, now=None]\nt: 66%|██████▌ | 185/282 [00:02<00:01, 70.70it/s, now=None]\nt: 68%|██████▊ | 193/282 [00:02<00:01, 71.02it/s, now=None]\nt: 71%|███████▏ | 201/282 [00:02<00:01, 72.10it/s, now=None]\nt: 74%|███████▍ | 209/282 [00:02<00:01, 63.01it/s, now=None]\nt: 77%|███████▋ | 216/282 [00:02<00:01, 64.13it/s, now=None]\nt: 79%|███████▉ | 223/282 [00:02<00:00, 65.29it/s, now=None]\nt: 82%|████████▏ | 230/282 [00:03<00:00, 66.14it/s, now=None]\nt: 84%|████████▍ | 237/282 [00:03<00:00, 67.15it/s, now=None]\nt: 87%|████████▋ | 244/282 [00:03<00:00, 67.66it/s, now=None]\nt: 89%|████████▉ | 251/282 [00:03<00:00, 67.38it/s, now=None]\nt: 92%|█████████▏| 259/282 [00:03<00:00, 70.18it/s, now=None]\nt: 95%|█████████▍| 267/282 [00:03<00:00, 70.01it/s, now=None]\nt: 98%|█████████▊| 275/282 [00:03<00:00, 61.71it/s, now=None]\nMoviepy - Done !\nMoviepy - video ready /tmp/output/output.mp4", "metrics": { "predict_time": 4.85236299, "total_time": 4.870723 }, "output": "https://replicate.delivery/czjl/eHgfinDyvZsx70zQnQEjZUPI0QxoeFUahRP4ZYiwSAXQGOJoA/output.mp4", "started_at": "2025-01-13T07:20:36.168360Z", "status": "succeeded", "urls": { "stream": "https://stream.replicate.com/v1/files/fddq-hrrzxpxrnhiuc66aeyxr7xjgd7g67a3rx7jj4kk2gyuwoiyd7mja", "get": "https://api.replicate.com/v1/predictions/xd3ry91e6srgc0cmbt4ttzpgxm", "cancel": "https://api.replicate.com/v1/predictions/xd3ry91e6srgc0cmbt4ttzpgxm/cancel" }, "version": "65c81d0d0689d8608af8c2f59728135925419f4b5e62065c37fc350130fed67a" }Generated inMoviepy - Building video /tmp/output/output.mp4. Moviepy - Writing video /tmp/output/output.mp4 t: 0%| | 0/282 [00:00<?, ?it/s, now=None] t: 5%|▌ | 15/282 [00:00<00:01, 148.55it/s, now=None] t: 11%|█▏ | 32/282 [00:00<00:01, 160.65it/s, now=None] t: 17%|█▋ | 49/282 [00:00<00:01, 126.10it/s, now=None] t: 22%|██▏ | 63/282 [00:00<00:01, 123.98it/s, now=None] t: 27%|██▋ | 76/282 [00:00<00:01, 104.53it/s, now=None] t: 31%|███ | 88/282 [00:00<00:02, 85.02it/s, now=None] t: 35%|███▍ | 98/282 [00:01<00:02, 73.06it/s, now=None] t: 38%|███▊ | 106/282 [00:01<00:02, 72.24it/s, now=None] t: 40%|████ | 114/282 [00:01<00:02, 72.46it/s, now=None] t: 44%|████▎ | 123/282 [00:01<00:02, 66.13it/s, now=None] t: 46%|████▌ | 130/282 [00:01<00:02, 64.97it/s, now=None] t: 49%|████▊ | 137/282 [00:01<00:02, 65.96it/s, now=None] t: 52%|█████▏ | 146/282 [00:01<00:01, 70.53it/s, now=None] t: 55%|█████▍ | 154/282 [00:01<00:02, 60.43it/s, now=None] t: 57%|█████▋ | 162/282 [00:02<00:01, 64.39it/s, now=None] t: 60%|█████▉ | 169/282 [00:02<00:01, 64.09it/s, now=None] t: 63%|██████▎ | 177/282 [00:02<00:01, 67.39it/s, now=None] t: 66%|██████▌ | 185/282 [00:02<00:01, 70.70it/s, now=None] t: 68%|██████▊ | 193/282 [00:02<00:01, 71.02it/s, now=None] t: 71%|███████▏ | 201/282 [00:02<00:01, 72.10it/s, now=None] t: 74%|███████▍ | 209/282 [00:02<00:01, 63.01it/s, now=None] t: 77%|███████▋ | 216/282 [00:02<00:01, 64.13it/s, now=None] t: 79%|███████▉ | 223/282 [00:02<00:00, 65.29it/s, now=None] t: 82%|████████▏ | 230/282 [00:03<00:00, 66.14it/s, now=None] t: 84%|████████▍ | 237/282 [00:03<00:00, 67.15it/s, now=None] t: 87%|████████▋ | 244/282 [00:03<00:00, 67.66it/s, now=None] t: 89%|████████▉ | 251/282 [00:03<00:00, 67.38it/s, now=None] t: 92%|█████████▏| 259/282 [00:03<00:00, 70.18it/s, now=None] t: 95%|█████████▍| 267/282 [00:03<00:00, 70.01it/s, now=None] t: 98%|█████████▊| 275/282 [00:03<00:00, 61.71it/s, now=None] Moviepy - Done ! Moviepy - video ready /tmp/output/output.mp4Prediction
lucataco/video-merge:65c81d0dID0k3aq4b2a5rga0cmbta8hs7ms4StatusSucceededSourceWebHardwareCPUTotal durationCreatedInput
- fps
- 0
- width
- 0
- height
- 0
- keep_audio
- video_files
{ "fps": 0, "width": 0, "height": 0, "keep_audio": true, "video_files": [ "https://replicate.delivery/pbxt/MJTrCBeGnOzB9vtMYPdSDWjRNnbM1RwJiLzF1HDxXU6VyUUW/water.mp4", "https://replicate.delivery/pbxt/MJTrC6Cb9pKnXHwVNISHvJ9gLhT3mEImFuqlK2ZKNz3U34xN/water-reverse.mp4" ] }Install Replicate’s Node.js client library:npm install replicateImport and set up the client:import Replicate from "replicate"; import fs from "node:fs"; const replicate = new Replicate({ auth: process.env.REPLICATE_API_TOKEN, });Run lucataco/video-merge using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const output = await replicate.run( "lucataco/video-merge:65c81d0d0689d8608af8c2f59728135925419f4b5e62065c37fc350130fed67a", { input: { fps: 0, width: 0, height: 0, keep_audio: true, video_files: ["https://replicate.delivery/pbxt/MJTrCBeGnOzB9vtMYPdSDWjRNnbM1RwJiLzF1HDxXU6VyUUW/water.mp4","https://replicate.delivery/pbxt/MJTrC6Cb9pKnXHwVNISHvJ9gLhT3mEImFuqlK2ZKNz3U34xN/water-reverse.mp4"] } } ); // To access the file URL: console.log(output.url()); //=> "http://example.com" // To write the file to disk: fs.writeFile("my-image.png", output);To learn more, take a look at the guide on getting started with Node.js.
Install Replicate’s Python client library:pip install replicateImport the client:import replicateRun lucataco/video-merge using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run( "lucataco/video-merge:65c81d0d0689d8608af8c2f59728135925419f4b5e62065c37fc350130fed67a", input={ "fps": 0, "width": 0, "height": 0, "keep_audio": True, "video_files": ["https://replicate.delivery/pbxt/MJTrCBeGnOzB9vtMYPdSDWjRNnbM1RwJiLzF1HDxXU6VyUUW/water.mp4","https://replicate.delivery/pbxt/MJTrC6Cb9pKnXHwVNISHvJ9gLhT3mEImFuqlK2ZKNz3U34xN/water-reverse.mp4"] } ) # To access the file URL: print(output.url()) #=> "http://example.com" # To write the file to disk: with open("my-image.png", "wb") as file: file.write(output.read())To learn more, take a look at the guide on getting started with Python.
Run lucataco/video-merge using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
curl -s -X POST \ -H "Authorization: Bearer $REPLICATE_API_TOKEN" \ -H "Content-Type: application/json" \ -H "Prefer: wait" \ -d $'{ "version": "lucataco/video-merge:65c81d0d0689d8608af8c2f59728135925419f4b5e62065c37fc350130fed67a", "input": { "fps": 0, "width": 0, "height": 0, "keep_audio": true, "video_files": ["https://replicate.delivery/pbxt/MJTrCBeGnOzB9vtMYPdSDWjRNnbM1RwJiLzF1HDxXU6VyUUW/water.mp4","https://replicate.delivery/pbxt/MJTrC6Cb9pKnXHwVNISHvJ9gLhT3mEImFuqlK2ZKNz3U34xN/water-reverse.mp4"] } }' \ https://api.replicate.com/v1/predictionsTo learn more, take a look at Replicate’s HTTP API reference docs.
Output
{ "completed_at": "2025-01-13T07:33:23.995591Z", "created_at": "2025-01-13T07:32:50.385000Z", "data_removed": false, "error": null, "id": "0k3aq4b2a5rga0cmbta8hs7ms4", "input": { "fps": 0, "width": 0, "height": 0, "keep_audio": true, "video_files": [ "https://replicate.delivery/pbxt/MJTrCBeGnOzB9vtMYPdSDWjRNnbM1RwJiLzF1HDxXU6VyUUW/water.mp4", "https://replicate.delivery/pbxt/MJTrC6Cb9pKnXHwVNISHvJ9gLhT3mEImFuqlK2ZKNz3U34xN/water-reverse.mp4" ] }, "logs": "Moviepy - Building video /tmp/output/output.mp4.\nMoviepy - Writing video /tmp/output/output.mp4\nt: 0%| | 0/282 [00:00<?, ?it/s, now=None]\nt: 5%|▌ | 15/282 [00:00<00:01, 148.87it/s, now=None]\nt: 12%|█▏ | 33/282 [00:00<00:01, 161.98it/s, now=None]\nt: 18%|█▊ | 50/282 [00:00<00:01, 135.04it/s, now=None]\nt: 23%|██▎ | 64/282 [00:00<00:01, 114.13it/s, now=None]\nt: 27%|██▋ | 76/282 [00:00<00:02, 91.07it/s, now=None] \nt: 30%|███ | 86/282 [00:00<00:02, 87.13it/s, now=None]\nt: 34%|███▍ | 96/282 [00:01<00:02, 75.50it/s, now=None]\nt: 37%|███▋ | 104/282 [00:01<00:02, 73.86it/s, now=None]\nt: 40%|███▉ | 112/282 [00:01<00:02, 63.24it/s, now=None]\nt: 42%|████▏ | 119/282 [00:01<00:02, 64.36it/s, now=None]\nt: 45%|████▍ | 126/282 [00:01<00:02, 63.45it/s, now=None]\nt: 47%|████▋ | 133/282 [00:01<00:02, 65.07it/s, now=None]\nt: 50%|█████ | 142/282 [00:01<00:01, 71.16it/s, now=None]\nt: 53%|█████▎ | 150/282 [00:01<00:01, 71.54it/s, now=None]\nt: 56%|█████▌ | 158/282 [00:02<00:01, 62.04it/s, now=None]\nt: 59%|█████▊ | 165/282 [00:02<00:01, 63.14it/s, now=None]\nt: 61%|██████ | 172/282 [00:02<00:01, 64.10it/s, now=None]\nt: 63%|██████▎ | 179/282 [00:02<00:01, 65.29it/s, now=None]\nt: 66%|██████▌ | 186/282 [00:02<00:01, 65.35it/s, now=None]\nt: 68%|██████▊ | 193/282 [00:02<00:01, 54.50it/s, now=None]\nt: 71%|███████▏ | 201/282 [00:02<00:01, 60.74it/s, now=None]\nt: 74%|███████▍ | 208/282 [00:02<00:01, 61.69it/s, now=None]\nt: 76%|███████▌ | 215/282 [00:02<00:01, 61.90it/s, now=None]\nt: 79%|███████▊ | 222/282 [00:03<00:00, 63.77it/s, now=None]\nt: 81%|████████ | 229/282 [00:03<00:00, 64.06it/s, now=None]\nt: 84%|████████▍ | 237/282 [00:03<00:00, 57.67it/s, now=None]\nt: 87%|████████▋ | 244/282 [00:03<00:00, 60.46it/s, now=None]\nt: 89%|████████▉ | 251/282 [00:03<00:00, 61.65it/s, now=None]\nt: 91%|█████████▏| 258/282 [00:03<00:00, 61.71it/s, now=None]\nt: 94%|█████████▍| 265/282 [00:03<00:00, 62.94it/s, now=None]\nt: 96%|█████████▋| 272/282 [00:03<00:00, 54.43it/s, now=None]\nt: 99%|█████████▉| 280/282 [00:04<00:00, 60.10it/s, now=None]\nMoviepy - Done !\nMoviepy - video ready /tmp/output/output.mp4", "metrics": { "predict_time": 5.158470057, "total_time": 33.610591 }, "output": "https://replicate.delivery/czjl/Lu41cQvSwVLyD9ekZZaAzx76QzpKcZ5cUBf0xWFRTeFHecSQB/output.mp4", "started_at": "2025-01-13T07:33:18.837121Z", "status": "succeeded", "urls": { "stream": "https://stream.replicate.com/v1/files/fddq-qu7uvfufrge2543yrpcsqi72juruba7o4fwuhriekc6hxkwtgviq", "get": "https://api.replicate.com/v1/predictions/0k3aq4b2a5rga0cmbta8hs7ms4", "cancel": "https://api.replicate.com/v1/predictions/0k3aq4b2a5rga0cmbta8hs7ms4/cancel" }, "version": "65c81d0d0689d8608af8c2f59728135925419f4b5e62065c37fc350130fed67a" }Generated inMoviepy - Building video /tmp/output/output.mp4. Moviepy - Writing video /tmp/output/output.mp4 t: 0%| | 0/282 [00:00<?, ?it/s, now=None] t: 5%|▌ | 15/282 [00:00<00:01, 148.87it/s, now=None] t: 12%|█▏ | 33/282 [00:00<00:01, 161.98it/s, now=None] t: 18%|█▊ | 50/282 [00:00<00:01, 135.04it/s, now=None] t: 23%|██▎ | 64/282 [00:00<00:01, 114.13it/s, now=None] t: 27%|██▋ | 76/282 [00:00<00:02, 91.07it/s, now=None] t: 30%|███ | 86/282 [00:00<00:02, 87.13it/s, now=None] t: 34%|███▍ | 96/282 [00:01<00:02, 75.50it/s, now=None] t: 37%|███▋ | 104/282 [00:01<00:02, 73.86it/s, now=None] t: 40%|███▉ | 112/282 [00:01<00:02, 63.24it/s, now=None] t: 42%|████▏ | 119/282 [00:01<00:02, 64.36it/s, now=None] t: 45%|████▍ | 126/282 [00:01<00:02, 63.45it/s, now=None] t: 47%|████▋ | 133/282 [00:01<00:02, 65.07it/s, now=None] t: 50%|█████ | 142/282 [00:01<00:01, 71.16it/s, now=None] t: 53%|█████▎ | 150/282 [00:01<00:01, 71.54it/s, now=None] t: 56%|█████▌ | 158/282 [00:02<00:01, 62.04it/s, now=None] t: 59%|█████▊ | 165/282 [00:02<00:01, 63.14it/s, now=None] t: 61%|██████ | 172/282 [00:02<00:01, 64.10it/s, now=None] t: 63%|██████▎ | 179/282 [00:02<00:01, 65.29it/s, now=None] t: 66%|██████▌ | 186/282 [00:02<00:01, 65.35it/s, now=None] t: 68%|██████▊ | 193/282 [00:02<00:01, 54.50it/s, now=None] t: 71%|███████▏ | 201/282 [00:02<00:01, 60.74it/s, now=None] t: 74%|███████▍ | 208/282 [00:02<00:01, 61.69it/s, now=None] t: 76%|███████▌ | 215/282 [00:02<00:01, 61.90it/s, now=None] t: 79%|███████▊ | 222/282 [00:03<00:00, 63.77it/s, now=None] t: 81%|████████ | 229/282 [00:03<00:00, 64.06it/s, now=None] t: 84%|████████▍ | 237/282 [00:03<00:00, 57.67it/s, now=None] t: 87%|████████▋ | 244/282 [00:03<00:00, 60.46it/s, now=None] t: 89%|████████▉ | 251/282 [00:03<00:00, 61.65it/s, now=None] t: 91%|█████████▏| 258/282 [00:03<00:00, 61.71it/s, now=None] t: 94%|█████████▍| 265/282 [00:03<00:00, 62.94it/s, now=None] t: 96%|█████████▋| 272/282 [00:03<00:00, 54.43it/s, now=None] t: 99%|█████████▉| 280/282 [00:04<00:00, 60.10it/s, now=None] Moviepy - Done ! Moviepy - video ready /tmp/output/output.mp4Prediction
lucataco/video-merge:65c81d0dIDkyqww72bkxrge0cmbtf8rxxgemStatusSucceededSourceWebHardwareCPUTotal durationCreatedInput
- fps
- 0
- width
- 0
- height
- 0
- keep_audio
- video_files
{ "fps": 0, "width": 0, "height": 0, "keep_audio": true, "video_files": [ "https://replicate.delivery/pbxt/MJU1ROJ7cW7HKoKeqEl2kWSPfDMfgjMDd0o6sJSBuDGIq1yI/chaplin-black-n-white.mp4", "https://replicate.delivery/pbxt/MJU1RCQAmGhHJdkDkGcAga8JgIQNihPeaDq2sfOqD4gxG8PW/chaplin-clip-color.mp4" ] }Install Replicate’s Node.js client library:npm install replicateImport and set up the client:import Replicate from "replicate"; import fs from "node:fs"; const replicate = new Replicate({ auth: process.env.REPLICATE_API_TOKEN, });Run lucataco/video-merge using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const output = await replicate.run( "lucataco/video-merge:65c81d0d0689d8608af8c2f59728135925419f4b5e62065c37fc350130fed67a", { input: { fps: 0, width: 0, height: 0, keep_audio: true, video_files: ["https://replicate.delivery/pbxt/MJU1ROJ7cW7HKoKeqEl2kWSPfDMfgjMDd0o6sJSBuDGIq1yI/chaplin-black-n-white.mp4","https://replicate.delivery/pbxt/MJU1RCQAmGhHJdkDkGcAga8JgIQNihPeaDq2sfOqD4gxG8PW/chaplin-clip-color.mp4"] } } ); // To access the file URL: console.log(output.url()); //=> "http://example.com" // To write the file to disk: fs.writeFile("my-image.png", output);To learn more, take a look at the guide on getting started with Node.js.
Install Replicate’s Python client library:pip install replicateImport the client:import replicateRun lucataco/video-merge using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run( "lucataco/video-merge:65c81d0d0689d8608af8c2f59728135925419f4b5e62065c37fc350130fed67a", input={ "fps": 0, "width": 0, "height": 0, "keep_audio": True, "video_files": ["https://replicate.delivery/pbxt/MJU1ROJ7cW7HKoKeqEl2kWSPfDMfgjMDd0o6sJSBuDGIq1yI/chaplin-black-n-white.mp4","https://replicate.delivery/pbxt/MJU1RCQAmGhHJdkDkGcAga8JgIQNihPeaDq2sfOqD4gxG8PW/chaplin-clip-color.mp4"] } ) # To access the file URL: print(output.url()) #=> "http://example.com" # To write the file to disk: with open("my-image.png", "wb") as file: file.write(output.read())To learn more, take a look at the guide on getting started with Python.
Run lucataco/video-merge using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
curl -s -X POST \ -H "Authorization: Bearer $REPLICATE_API_TOKEN" \ -H "Content-Type: application/json" \ -H "Prefer: wait" \ -d $'{ "version": "lucataco/video-merge:65c81d0d0689d8608af8c2f59728135925419f4b5e62065c37fc350130fed67a", "input": { "fps": 0, "width": 0, "height": 0, "keep_audio": true, "video_files": ["https://replicate.delivery/pbxt/MJU1ROJ7cW7HKoKeqEl2kWSPfDMfgjMDd0o6sJSBuDGIq1yI/chaplin-black-n-white.mp4","https://replicate.delivery/pbxt/MJU1RCQAmGhHJdkDkGcAga8JgIQNihPeaDq2sfOqD4gxG8PW/chaplin-clip-color.mp4"] } }' \ https://api.replicate.com/v1/predictionsTo learn more, take a look at Replicate’s HTTP API reference docs.
Output
{ "completed_at": "2025-01-13T07:44:10.670357Z", "created_at": "2025-01-13T07:43:39.935000Z", "data_removed": false, "error": null, "id": "kyqww72bkxrge0cmbtf8rxxgem", "input": { "fps": 0, "width": 0, "height": 0, "keep_audio": true, "video_files": [ "https://replicate.delivery/pbxt/MJU1ROJ7cW7HKoKeqEl2kWSPfDMfgjMDd0o6sJSBuDGIq1yI/chaplin-black-n-white.mp4", "https://replicate.delivery/pbxt/MJU1RCQAmGhHJdkDkGcAga8JgIQNihPeaDq2sfOqD4gxG8PW/chaplin-clip-color.mp4" ] }, "logs": "Moviepy - Building video /tmp/output/output.mp4.\nMoviePy - Writing audio in outputTEMP_MPY_wvf_snd.mp4\nchunk: 0%| | 0/398 [00:00<?, ?it/s, now=None]\nchunk: 29%|██▉ | 116/398 [00:00<00:00, 1156.28it/s, now=None]\nchunk: 62%|██████▏ | 247/398 [00:00<00:00, 1244.84it/s, now=None]\nchunk: 93%|█████████▎| 372/398 [00:00<00:00, 1240.37it/s, now=None]\nMoviePy - Done.\nMoviepy - Writing video /tmp/output/output.mp4\nt: 0%| | 0/451 [00:00<?, ?it/s, now=None]\nt: 15%|█▌ | 68/451 [00:00<00:00, 676.25it/s, now=None]\nt: 30%|███ | 136/451 [00:00<00:00, 440.21it/s, now=None]\nt: 41%|████ | 185/451 [00:00<00:00, 350.88it/s, now=None]\nt: 50%|████▉ | 224/451 [00:00<00:00, 344.93it/s, now=None]\nt: 58%|█████▊ | 261/451 [00:00<00:00, 336.05it/s, now=None]\nt: 66%|██████▌ | 296/451 [00:00<00:00, 286.15it/s, now=None]\nt: 72%|███████▏ | 326/451 [00:00<00:00, 279.90it/s, now=None]\nt: 79%|███████▊ | 355/451 [00:01<00:00, 276.39it/s, now=None]\nt: 85%|████████▌ | 384/451 [00:01<00:00, 240.61it/s, now=None]\nt: 91%|█████████▏| 412/451 [00:01<00:00, 250.00it/s, now=None]\nt: 97%|█████████▋| 438/451 [00:01<00:00, 251.35it/s, now=None]\nMoviepy - Done !\nMoviepy - video ready /tmp/output/output.mp4", "metrics": { "predict_time": 2.568520931, "total_time": 30.735357 }, "output": "https://replicate.delivery/czjl/sy4HIhbSlcrZP1ANhYfWf1yuAQhK3s6qYSgMMMv6F5fUyOJoA/output.mp4", "started_at": "2025-01-13T07:44:08.101836Z", "status": "succeeded", "urls": { "stream": "https://stream.replicate.com/v1/files/fddq-muh6akpzclflc4rhpa7plzdlaeai6vrxkokfm6zfh3a2gaxijaqa", "get": "https://api.replicate.com/v1/predictions/kyqww72bkxrge0cmbtf8rxxgem", "cancel": "https://api.replicate.com/v1/predictions/kyqww72bkxrge0cmbtf8rxxgem/cancel" }, "version": "65c81d0d0689d8608af8c2f59728135925419f4b5e62065c37fc350130fed67a" }Generated inMoviepy - Building video /tmp/output/output.mp4. MoviePy - Writing audio in outputTEMP_MPY_wvf_snd.mp4 chunk: 0%| | 0/398 [00:00<?, ?it/s, now=None] chunk: 29%|██▉ | 116/398 [00:00<00:00, 1156.28it/s, now=None] chunk: 62%|██████▏ | 247/398 [00:00<00:00, 1244.84it/s, now=None] chunk: 93%|█████████▎| 372/398 [00:00<00:00, 1240.37it/s, now=None] MoviePy - Done. Moviepy - Writing video /tmp/output/output.mp4 t: 0%| | 0/451 [00:00<?, ?it/s, now=None] t: 15%|█▌ | 68/451 [00:00<00:00, 676.25it/s, now=None] t: 30%|███ | 136/451 [00:00<00:00, 440.21it/s, now=None] t: 41%|████ | 185/451 [00:00<00:00, 350.88it/s, now=None] t: 50%|████▉ | 224/451 [00:00<00:00, 344.93it/s, now=None] t: 58%|█████▊ | 261/451 [00:00<00:00, 336.05it/s, now=None] t: 66%|██████▌ | 296/451 [00:00<00:00, 286.15it/s, now=None] t: 72%|███████▏ | 326/451 [00:00<00:00, 279.90it/s, now=None] t: 79%|███████▊ | 355/451 [00:01<00:00, 276.39it/s, now=None] t: 85%|████████▌ | 384/451 [00:01<00:00, 240.61it/s, now=None] t: 91%|█████████▏| 412/451 [00:01<00:00, 250.00it/s, now=None] t: 97%|█████████▋| 438/451 [00:01<00:00, 251.35it/s, now=None] Moviepy - Done ! Moviepy - video ready /tmp/output/output.mp4Prediction
lucataco/video-merge:14273448IDsvyj81e341rmc0cqxyx980cjbcStatusSucceededSourceWebHardwareCPUTotal durationCreatedInput
- fps
- 0
- width
- 0
- height
- 0
- keep_audio
- video_files
{ "fps": 0, "width": 0, "height": 0, "keep_audio": true, "video_files": [ "https://replicate.delivery/pbxt/MJTuFKNUCnxWBF5CMfr3Cukd9jNzJ80vf3C4w7xBtofXIbEo/dolphins.mp4", "https://replicate.delivery/pbxt/MJTuG0P6s3QWykwrQeFlAiIxHu70Cte4uKIscu9ISC4HINYH/doplhins-depth.mp4" ] }Install Replicate’s Node.js client library:npm install replicateImport and set up the client:import Replicate from "replicate"; import fs from "node:fs"; const replicate = new Replicate({ auth: process.env.REPLICATE_API_TOKEN, });Run lucataco/video-merge using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const output = await replicate.run( "lucataco/video-merge:14273448a57117b5d424410e2e79700ecde6cc7d60bf522a769b9c7cf989eba7", { input: { fps: 0, width: 0, height: 0, keep_audio: true, video_files: ["https://replicate.delivery/pbxt/MJTuFKNUCnxWBF5CMfr3Cukd9jNzJ80vf3C4w7xBtofXIbEo/dolphins.mp4","https://replicate.delivery/pbxt/MJTuG0P6s3QWykwrQeFlAiIxHu70Cte4uKIscu9ISC4HINYH/doplhins-depth.mp4"] } } ); // To access the file URL: console.log(output.url()); //=> "http://example.com" // To write the file to disk: fs.writeFile("my-image.png", output);To learn more, take a look at the guide on getting started with Node.js.
Install Replicate’s Python client library:pip install replicateImport the client:import replicateRun lucataco/video-merge using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run( "lucataco/video-merge:14273448a57117b5d424410e2e79700ecde6cc7d60bf522a769b9c7cf989eba7", input={ "fps": 0, "width": 0, "height": 0, "keep_audio": True, "video_files": ["https://replicate.delivery/pbxt/MJTuFKNUCnxWBF5CMfr3Cukd9jNzJ80vf3C4w7xBtofXIbEo/dolphins.mp4","https://replicate.delivery/pbxt/MJTuG0P6s3QWykwrQeFlAiIxHu70Cte4uKIscu9ISC4HINYH/doplhins-depth.mp4"] } ) # To access the file URL: print(output.url()) #=> "http://example.com" # To write the file to disk: with open("my-image.png", "wb") as file: file.write(output.read())To learn more, take a look at the guide on getting started with Python.
Run lucataco/video-merge using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
curl -s -X POST \ -H "Authorization: Bearer $REPLICATE_API_TOKEN" \ -H "Content-Type: application/json" \ -H "Prefer: wait" \ -d $'{ "version": "lucataco/video-merge:14273448a57117b5d424410e2e79700ecde6cc7d60bf522a769b9c7cf989eba7", "input": { "fps": 0, "width": 0, "height": 0, "keep_audio": true, "video_files": ["https://replicate.delivery/pbxt/MJTuFKNUCnxWBF5CMfr3Cukd9jNzJ80vf3C4w7xBtofXIbEo/dolphins.mp4","https://replicate.delivery/pbxt/MJTuG0P6s3QWykwrQeFlAiIxHu70Cte4uKIscu9ISC4HINYH/doplhins-depth.mp4"] } }' \ https://api.replicate.com/v1/predictionsTo learn more, take a look at Replicate’s HTTP API reference docs.
Output
{ "completed_at": "2025-07-09T15:10:41.648664Z", "created_at": "2025-07-09T15:08:03.744000Z", "data_removed": false, "error": null, "id": "svyj81e341rmc0cqxyx980cjbc", "input": { "fps": 0, "width": 0, "height": 0, "keep_audio": true, "video_files": [ "https://replicate.delivery/pbxt/MJTuFKNUCnxWBF5CMfr3Cukd9jNzJ80vf3C4w7xBtofXIbEo/dolphins.mp4", "https://replicate.delivery/pbxt/MJTuG0P6s3QWykwrQeFlAiIxHu70Cte4uKIscu9ISC4HINYH/doplhins-depth.mp4" ] }, "logs": "Moviepy - Building video /tmp/output/output.mp4.\nMoviepy - Writing video /tmp/output/output.mp4\nt: 0%| | 0/119 [00:00<?, ?it/s, now=None]\nt: 39%|███▉ | 47/119 [00:00<00:00, 466.81it/s, now=None]\nt: 79%|███████▉ | 94/119 [00:00<00:00, 196.45it/s, now=None]\nMoviepy - Done !\nMoviepy - video ready /tmp/output/output.mp4", "metrics": { "predict_time": 1.679500248, "total_time": 157.904664 }, "output": "https://replicate.delivery/xezq/j1dQ6vrLMKaGMB4eYUt98ZVupnvrOBAECf5eLwwK10YjDHeTB/output.mp4", "started_at": "2025-07-09T15:10:39.969164Z", "status": "succeeded", "urls": { "stream": "https://stream.replicate.com/v1/files/bcwr-w5kbwdqce2jqh6aiaetbpgbqzxpsjke7tbhmns3mpj4j3nafqc4a", "get": "https://api.replicate.com/v1/predictions/svyj81e341rmc0cqxyx980cjbc", "cancel": "https://api.replicate.com/v1/predictions/svyj81e341rmc0cqxyx980cjbc/cancel" }, "version": "14273448a57117b5d424410e2e79700ecde6cc7d60bf522a769b9c7cf989eba7" }Generated inMoviepy - Building video /tmp/output/output.mp4. Moviepy - Writing video /tmp/output/output.mp4 t: 0%| | 0/119 [00:00<?, ?it/s, now=None] t: 39%|███▉ | 47/119 [00:00<00:00, 466.81it/s, now=None] t: 79%|███████▉ | 94/119 [00:00<00:00, 196.45it/s, now=None] Moviepy - Done ! Moviepy - video ready /tmp/output/output.mp4
Want to make some of these yourself?
Run this model