No-Code Integrations

Connect VideoConduit to Zapier, Make, n8n, and other automation platforms.

How VideoConduit Works with No-Code Tools

VideoConduit’s REST API and webhook system make it straightforward to integrate with any automation platform. The pattern is the same regardless of which tool you use:

1
Trigger

Send an HTTP request to create a job (POST to any endpoint)

2
Wait

The job processes in the background on VideoConduit’s servers

3
Callback

Webhook delivers the result to your automation tool

4
Action

Use the result (download URL, transcript, etc.) in your workflow

No Custom App Needed

VideoConduit works with every platform's built-in HTTP/webhook modules. You don't need a dedicated VideoConduit app or plugin — just standard HTTP requests and webhook receivers.

Zapier Integration

Zapier’s “Webhooks by Zapier” app handles both sending requests to VideoConduit and receiving webhook callbacks. Here’s how to set up a complete workflow.

Step 1: Set Up a Webhook Trigger (Receive Results)

Create a new Zap and choose Webhooks by ZapierCatch Hook as the trigger. Zapier gives you a unique URL like https://hooks.zapier.com/hooks/catch/123456/abcdef/. Copy this URL — you’ll register it with VideoConduit so results are sent here.

Step 2: Register the Webhook URL

Register your Zapier catch hook URL as a VideoConduit webhook endpoint so it receives job results:

curl -X POST "https://videoconduit.com/v1/webhooks" \
  -H "Authorization: Bearer vc_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://hooks.zapier.com/hooks/catch/123456/abcdef/",
    "events": ["job.completed", "job.failed"]
  }'

Alternative: Per-Job Webhooks

Instead of registering a global webhook, you can pass webhook_url directly in each job request. This is useful if you have different Zaps for different job types.

Step 3: Submit Jobs via Zapier Action

Add an action step using Webhooks by ZapierCustom Request:

{
  "method": "POST",
  "url": "https://videoconduit.com/api/v1/download",
  "headers": {
    "Authorization": "Bearer vc_your_api_key",
    "Content-Type": "application/json"
  },
  "body": {
    "url": "{{steps.trigger.url}}",
    "quality": "720p"
  }
}

Example Workflow

Google Sheets → VideoConduit → Google Sheets: When a new row is added to a Google Sheet with a YouTube URL, download the video and store the download link back in the sheet.

  1. Trigger: Google Sheets → “New Spreadsheet Row”
  2. Action: Webhooks by Zapier → “Custom Request” to POST /v1/download with the URL from the row and webhook_url set to your Catch Hook
  3. Trigger: (Second Zap) Webhooks by Zapier → “Catch Hook” receives the completed job
  4. Action: Google Sheets → “Update Spreadsheet Row” with download_url from the webhook payload

Make (Integromat) Integration

Make uses the Webhooks module to receive callbacks and the HTTP module to send API requests.

Step 1: Set Up a Custom Webhook

Add a WebhooksCustom webhook module as your scenario trigger. Make generates a URL like https://hook.eu1.make.com/abcdefg123456. Register this URL as a VideoConduit webhook endpoint (same cURL as the Zapier example above, just swap the URL).

Step 2: Send Requests with the HTTP Module

Add an HTTPMake a request module:

{
  "url": "https://videoconduit.com/api/v1/transcribe",
  "method": "POST",
  "headers": [
    {"name": "Authorization", "value": "Bearer vc_your_api_key"},
    {"name": "Content-Type", "value": "application/json"}
  ],
  "body": "{\"url\": \"{{1.url}}\", \"language\": \"en\"}"
}

Example Scenario

Google Drive → VideoConduit → Google Drive: Watch a Google Drive folder for new text files containing video URLs, process each via VideoConduit, and save transcripts to another folder.

  1. Trigger: Google Drive → “Watch Files in a Folder”
  2. Action: Google Drive → “Download a File” (read the URL from the text file)
  3. Action: HTTP → “Make a request” to POST /v1/transcribe
  4. Trigger: (Second scenario) Custom Webhook receives the completed transcript
  5. Action: Google Drive → “Upload a File” with the transcript data

n8n Integration

n8n’s Webhook node and HTTP Request node provide everything you need for VideoConduit integration.

Step 1: Create a Webhook Node

Add a Webhook node as the trigger for your workflow. n8n gives you a URL like https://your-n8n.example.com/webhook/abc123. Register this URL with VideoConduit as a webhook endpoint.

Step 2: Use the HTTP Request Node

Add an HTTP Request node with these settings:

  • Method: POST
  • URL: https://videoconduit.com/api/v1/download
  • Authentication: Header Auth — Name: Authorization, Value: Bearer vc_your_api_key
  • Body Content Type: JSON
  • Body: {"url": "{{$json.url}}", "quality": "720p"}

Example Workflow

Webhook → VideoConduit → Slack: Receive a webhook trigger, download a video via VideoConduit, and send a Slack notification with the download link.

  1. Trigger: Webhook node receives a request containing a video URL
  2. Action: HTTP Request node calls POST /v1/download
  3. Wait: A second Webhook node (separate workflow) catches the VideoConduit callback
  4. Action: Slack node sends a message with the download_url from the webhook payload

Generic Webhook Integration

Any platform that supports incoming webhooks can receive VideoConduit job results. Here’s what you need to know.

Setting Up a Webhook Endpoint

Register your webhook receiver URL via the API or the dashboard:

curl -X POST "https://videoconduit.com/v1/webhooks" \
  -H "Authorization: Bearer vc_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-platform.example.com/webhook-receiver",
    "events": ["job.completed", "job.failed"]
  }'

Webhook Payload Format

Every webhook delivery sends a JSON payload with the event type and job data:

{
  "event": "job.completed",
  "timestamp": "2025-01-15T12:00:00Z",
  "data": {
    "job_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "job_type": "download",
    "status": "completed",
    "source_url": "https://youtube.com/watch?v=dQw4w9WgXcQ",
    "download_url": "https://dl.videoconduit.com/files/a1b2c3d4.mp4",
    "result_data": {
      "title": "...",
      "format": "mp4",
      "filesize": 15234567
    },
    "credits_charged": 1,
    "created_at": "2025-01-15T10:00:00Z",
    "completed_at": "2025-01-15T12:00:00Z"
  }
}

For the full webhook reference, see the Webhooks guide.

Signature Verification

Every delivery includes an X-VideoConduit-Signature header with an HMAC-SHA256 signature. If your platform supports custom header validation, use it to verify the signature against your webhook secret. See the signature verification guide for code examples in Python, JavaScript, PHP, Go, and Ruby.

Retry Behavior

VideoConduit expects a 2xx response within 10 seconds. Failed deliveries retry up to 3 times with exponential backoff: 1 minute, 5 minutes, then 30 minutes after the initial attempt. All deliveries are logged and visible via GET /v1/webhooks/{id}/deliveries.

Common Patterns

Poll-Based Pattern

If your platform doesn’t support incoming webhooks, you can poll for job status instead. After submitting a job, periodically check its status:

curl "https://videoconduit.com/api/v1/jobs/JOB_ID" \
  -H "Authorization: Bearer vc_your_api_key"

Poll every 10–15 seconds. When status changes to completed or failed, the job is done. Most platforms have a “delay” or “wait” step you can use between polls.

Batch Processing

Submit up to 25 URLs at once via POST /v1/batch. Each job in the batch triggers its own webhook delivery when complete, so your automation tool receives one callback per finished job.

curl -X POST "https://videoconduit.com/api/v1/batch" \
  -H "Authorization: Bearer vc_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": [
      "https://youtube.com/watch?v=video1",
      "https://youtube.com/watch?v=video2"
    ],
    "job_type": "download",
    "quality": "720p"
  }'

Error Handling

Always check the event field in webhook payloads. A job.failed event means the job encountered an error — credits are automatically refunded. The data.error_message field contains details about what went wrong. In your automation, add a conditional branch to handle failures (e.g., send an alert, retry with different parameters, or log the error).

Rate Limiting

When submitting multiple jobs in a loop, add a short delay (1–2 seconds) between requests to stay within your plan’s rate limits. Check the X-RateLimit-Remaining response header to see how many requests you have left in the current window. See the Rate Limits guide for limits by plan.

Credit Usage

Each job consumes credits from your account. Check your credit balance in the dashboard before running large batch workflows. Use the /v1/info endpoint (1 credit) to validate URLs before submitting higher-cost jobs.

This site uses only essential cookies required for the service to function (session authentication and security). We do not use analytics, tracking, or advertising cookies. Learn more