async function waitForExport(
projectId: string,
pollInterval = 5000,
timeout = 600000
) {
const startTime = Date.now();
while (Date.now() - startTime < timeout) {
const status = await getExportStatus(projectId);
if (status.status === 'completed') {
return status;
}
if (status.status === 'failed') {
throw new Error(`Export failed: ${status.error}`);
}
console.log(`Export ${status.status}... (${Math.round((Date.now() - startTime) / 1000)}s elapsed)`);
await new Promise(resolve => setTimeout(resolve, pollInterval));
}
throw new Error('Export timeout after 10 minutes');
}
// Use it
const result = await waitForExport('prj_abc123xyz');
console.log('✓ Video ready!');
console.log(`Download: ${result.download_url}`);
console.log(`Took ${result.duration_seconds} seconds`);