Bulk Import Videos
/api/v1/media/videos/bulk-importImport up to 500 videos in a single request. Videos are processed in the background with automatic proxy rotation and rate limiting to avoid detection from platforms like YouTube.
Request
videosarrayrequiredList of videos to import (max 500)
Each video object contains:
url(string, required): Video URL to importtitle(string, optional): Custom title (auto-detected if not provided)
privacyintegerdefault: 2Privacy setting for all videos:
1= Public (visible to everyone)2= Unlisted (accessible via link only)3= Private (only you can view)
Response
successbooleanWhether the bulk import job was created
job_idstringJob ID for tracking progress
total_videosintegerNumber of videos queued for import
messagestringStatus message
Example
- cURL
- Python
- JavaScript
curl -X POST "https://spideriq.ai/api/v1/media/videos/bulk-import" \
-H "Authorization: Bearer cli_abc123:sk_xxx:secret_xxx" \
-H "Content-Type: application/json" \
-d '{
"videos": [
{"url": "https://youtube.com/watch?v=video1", "title": "Product Demo 1"},
{"url": "https://youtube.com/watch?v=video2", "title": "Product Demo 2"},
{"url": "https://youtube.com/watch?v=video3"}
],
"privacy": 2
}'
import requests
url = "https://spideriq.ai/api/v1/media/videos/bulk-import"
headers = {
"Authorization": "Bearer cli_abc123:sk_xxx:secret_xxx",
"Content-Type": "application/json"
}
data = {
"videos": [
{"url": "https://youtube.com/watch?v=video1", "title": "Product Demo 1"},
{"url": "https://youtube.com/watch?v=video2", "title": "Product Demo 2"},
{"url": "https://youtube.com/watch?v=video3"}
],
"privacy": 2
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
print(f"Job ID: {result['job_id']}")
const response = await fetch("https://spideriq.ai/api/v1/media/videos/bulk-import", {
method: "POST",
headers: {
"Authorization": "Bearer cli_abc123:sk_xxx:secret_xxx",
"Content-Type": "application/json"
},
body: JSON.stringify({
videos: [
{url: "https://youtube.com/watch?v=video1", title: "Product Demo 1"},
{url: "https://youtube.com/watch?v=video2", title: "Product Demo 2"},
{url: "https://youtube.com/watch?v=video3"}
],
privacy: 2
})
});
const result = await response.json();
console.log(`Job ID: ${result.job_id}`);
Response Example
{
"success": true,
"job_id": "bulk_1234567890",
"total_videos": 3,
"message": "Bulk import job started"
}
Tracking Progress
Use the returned job_id to check the status of your bulk import:
curl "https://spideriq.ai/api/v1/media/videos/bulk-import/bulk_1234567890" \
-H "Authorization: Bearer cli_abc123:sk_xxx:secret_xxx"
See Bulk Import Status for details on tracking job progress.
Processing Time: Videos are processed with 30-90 second delays between downloads to avoid rate limiting. A batch of 100 YouTube videos may take 1-3 hours to complete.
YouTube Imports: YouTube videos are automatically routed through mobile proxies to bypass bot detection. This may increase processing time but ensures reliable imports.