curl -X GET \
https://studio.dubformer.ai/api/v1/projects/proj_5f83a14b2ec1b/videos/vid_7a92c36d4fe3c/export \
-H 'Authorization: Bearer YOUR_API_KEY'
import axios from 'axios';
const response = await axios.get(
'https://studio.dubformer.ai/api/v1/projects/proj_5f83a14b2ec1b/videos/vid_7a92c36d4fe3c/export',
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
}
);
console.log(response.data);
[
{
"presignedUrl": "https://df-studio-storage.s3.eu-west-1.amazonaws.com/.../original.mp4?X-Amz-Signature=...",
"filename": "original.mp4",
"modifiedAt": "2026-07-14T09:12:03.000Z",
"expiresAt": "2026-07-15T09:12:03.000Z"
},
{
"presignedUrl": "https://df-studio-storage.s3.eu-west-1.amazonaws.com/.../asr_aligned.vtt?X-Amz-Signature=...",
"filename": "asr_aligned.vtt",
"modifiedAt": "2026-07-14T09:12:03.000Z",
"expiresAt": "2026-07-15T09:12:03.000Z"
}
]
Project Videos
List Export Files
List the downloadable source files of a video with temporary download links
GET
/
api
/
v1
/
projects
/
{projectId}
/
videos
/
{videoId}
/
export
curl -X GET \
https://studio.dubformer.ai/api/v1/projects/proj_5f83a14b2ec1b/videos/vid_7a92c36d4fe3c/export \
-H 'Authorization: Bearer YOUR_API_KEY'
import axios from 'axios';
const response = await axios.get(
'https://studio.dubformer.ai/api/v1/projects/proj_5f83a14b2ec1b/videos/vid_7a92c36d4fe3c/export',
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
}
);
console.log(response.data);
[
{
"presignedUrl": "https://df-studio-storage.s3.eu-west-1.amazonaws.com/.../original.mp4?X-Amz-Signature=...",
"filename": "original.mp4",
"modifiedAt": "2026-07-14T09:12:03.000Z",
"expiresAt": "2026-07-15T09:12:03.000Z"
},
{
"presignedUrl": "https://df-studio-storage.s3.eu-west-1.amazonaws.com/.../asr_aligned.vtt?X-Amz-Signature=...",
"filename": "asr_aligned.vtt",
"modifiedAt": "2026-07-14T09:12:03.000Z",
"expiresAt": "2026-07-15T09:12:03.000Z"
}
]
This endpoint returns the downloadable source-level files of a video (original video, music &
effects, international mix, vocals, original script), each with a temporary presigned download
link.
Only files that are currently available are returned. Files that are still being produced are
omitted, so you can poll this endpoint until the file you need appears in the response.
The original script is the most complete transcript available:
asr_aligned.vtt once the transcription is
reviewed and aligned, otherwise the edited transcript (asr_hitl.vtt) or the automated one (asr_auto.vtt).
Check filename to tell them apart.
Path Parameters
string
required
The unique identifier of the project.
string
required
The unique identifier of the video.
Response
The response is a JSON array of file objects. Each object has the following fields:string
Temporary presigned URL to download the file directly from storage. Valid for 24 hours (see
expiresAt).string
Name of the file, including its extension (e.g.
original.mp4, asr_aligned.vtt).string
ISO timestamp of when the file was last modified.
string
ISO timestamp of when
presignedUrl expires.curl -X GET \
https://studio.dubformer.ai/api/v1/projects/proj_5f83a14b2ec1b/videos/vid_7a92c36d4fe3c/export \
-H 'Authorization: Bearer YOUR_API_KEY'
import axios from 'axios';
const response = await axios.get(
'https://studio.dubformer.ai/api/v1/projects/proj_5f83a14b2ec1b/videos/vid_7a92c36d4fe3c/export',
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
}
);
console.log(response.data);
[
{
"presignedUrl": "https://df-studio-storage.s3.eu-west-1.amazonaws.com/.../original.mp4?X-Amz-Signature=...",
"filename": "original.mp4",
"modifiedAt": "2026-07-14T09:12:03.000Z",
"expiresAt": "2026-07-15T09:12:03.000Z"
},
{
"presignedUrl": "https://df-studio-storage.s3.eu-west-1.amazonaws.com/.../asr_aligned.vtt?X-Amz-Signature=...",
"filename": "asr_aligned.vtt",
"modifiedAt": "2026-07-14T09:12:03.000Z",
"expiresAt": "2026-07-15T09:12:03.000Z"
}
]
{
"error": "Not Found"
}