Download Returns 404
Why your download returns 404 and how to fix it
Download Returns 404
If you're getting a 404 error when trying to download your processed video, there are several possible causes.
1. Using the Wrong API Endpoint
FFmpeg Micro has gone through several API versions. Make sure you're using the current endpoint:
✅ Current API (v1)
# Get download URL
curl -X GET "https://api.ffmpeg-micro.com/v1/transcodes/JOB_ID/download" \
-H "Authorization: Bearer YOUR_API_KEY"
❌ Deprecated Endpoints
These older endpoints may still work but could be removed in the future:
# Old v1/jobs endpoint (deprecated)
GET /v1/jobs/:id/download
# Old api/jobs endpoint (deprecated)
GET /api/jobs/:id/download
Solution: Update your code to use /v1/transcodes/:id/download
2. Job Output Has Expired
Processed video files are automatically deleted after 7 days to save storage costs.
How to Check Expiration
curl -X GET "https://api.ffmpeg-micro.com/v1/transcodes/JOB_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
Response:
{
"id": "JOB_ID",
"status": "completed",
"completedAt": "2025-01-01T00:00:00Z",
"outputUrl": "gs://...",
"expiresAt": "2025-01-08T00:00:00Z" // 7 days after completion
}
If expiresAt is in the past, the file has been deleted.
Solution for Expired Files
You have two options:
Preventing Expiration
If you need to keep processed videos longer than 7 days:
3. Job Is Not Complete
You can't download a video until the transcode job is complete.
Check Job Status
curl -X GET "https://api.ffmpeg-micro.com/v1/transcodes/JOB_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
Status values:
queued — waiting to startprocessing — currently transcodingcompleted — ready to download ✅failed — job failed, check error messageSolution
Wait until status is completed before attempting to download. You can:
4. Invalid Job ID
Double-check that you're using the correct job ID. Common mistakes:
Solution
The job ID is returned when you create the transcode:
curl -X POST "https://api.ffmpeg-micro.com/v1/transcodes" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputs": [{"url": "gs://your-bucket/video.mp4"}],
"outputFormat": "mp4",
"preset": {"quality": "medium"}
}'
Response:
{
"id": "abc123-def456-ghi789", // ← This is your job ID
"status": "queued",
...
}
Save this ID to download the video later.
5. Network or Permissions Issue
If the signed download URL itself returns 404:
Solution
Request a fresh download URL:
curl -X GET "https://api.ffmpeg-micro.com/v1/transcodes/JOB_ID/download" \
-H "Authorization: Bearer YOUR_API_KEY"
This generates a new signed URL valid for 1 hour.
Quick Debugging Checklist
/v1/transcodes/:id/downloadcompletedStill Having Issues?
Contact support at javid@ffmpeg-micro.com with:
Can't find what you're looking for?