import { ClipSenseClient } from './dist/client.js';
const API_KEY = 'cs_sk_runaway_89ef42482bf7754eb7a7929738cb05d4';
const TEST_DIR = '/Users/jerlitaburanday/Downloads';
// Test videos in different formats
const TEST_VIDEOS = [
{ path: `${TEST_DIR}/test-format.mp4`, format: 'MP4' },
{ path: `${TEST_DIR}/Q 10.mov`, format: 'MOV' },
{ path: `${TEST_DIR}/test-format.webm`, format: 'WebM' },
{ path: `${TEST_DIR}/test-format.avi`, format: 'AVI' },
{ path: `${TEST_DIR}/test-format.mkv`, format: 'MKV' },
];
async function testFormat(videoPath, format) {
console.log(`\n${'='.repeat(60)}`);
console.log(`๐งช Testing ${format} format`);
console.log(`${'='.repeat(60)}`);
console.log(`File: ${videoPath}\n`);
try {
const client = new ClipSenseClient(API_KEY);
const startTime = Date.now();
console.log('โณ Uploading and analyzing...');
const result = await client.analyzeVideo(videoPath, 'Describe what you see in this video briefly.');
const duration = ((Date.now() - startTime) / 1000).toFixed(1);
console.log(`\nโ
${format} - SUCCESS (${duration}s)`);
console.log(`Job ID: ${result.jobId}`);
console.log(`\nAnalysis preview:`);
console.log(result.analysis.substring(0, 200) + '...\n');
return { format, success: true, duration, jobId: result.jobId };
} catch (error) {
console.error(`\nโ ${format} - FAILED`);
console.error(`Error: ${error.message}`);
if (error.response) {
console.error(`Status: ${error.response.status}`);
console.error(`Data:`, JSON.stringify(error.response.data, null, 2));
}
return { format, success: false, error: error.message };
}
}
async function runAllTests() {
console.log('\n๐ ClipSense Multi-Format Test Suite');
console.log(`Testing ${TEST_VIDEOS.length} video formats\n`);
const results = [];
for (const video of TEST_VIDEOS) {
const result = await testFormat(video.path, video.format);
results.push(result);
// Wait 5 seconds between tests to avoid rate limiting
if (video !== TEST_VIDEOS[TEST_VIDEOS.length - 1]) {
console.log('\nโฑ๏ธ Waiting 5 seconds before next test...');
await new Promise(resolve => setTimeout(resolve, 5000));
}
}
// Print summary
console.log('\n' + '='.repeat(60));
console.log('๐ TEST SUMMARY');
console.log('='.repeat(60));
const successful = results.filter(r => r.success);
const failed = results.filter(r => !r.success);
console.log(`\nโ
Passed: ${successful.length}/${TEST_VIDEOS.length}`);
successful.forEach(r => {
console.log(` - ${r.format}: ${r.duration}s (${r.jobId.substring(0, 20)}...)`);
});
if (failed.length > 0) {
console.log(`\nโ Failed: ${failed.length}/${TEST_VIDEOS.length}`);
failed.forEach(r => {
console.log(` - ${r.format}: ${r.error}`);
});
}
console.log('\n' + '='.repeat(60));
if (failed.length === 0) {
console.log('๐ All formats supported!');
} else {
console.log('โ ๏ธ Some formats failed. Review errors above.');
process.exit(1);
}
}
runAllTests();