MCPcopy Create free account
hub / github.com/TanStack/ai / getVideoJobStatus

Function getVideoJobStatus

packages/ai/src/activities/generateVideo/index.ts:584–685  ·  view source on GitHub ↗
(options: {
  adapter: TAdapter & { kind: typeof kind }
  jobId: string
})

Source from the content-addressed store, hash-verified

582 * ```
583 */
584export async function getVideoJobStatus<
585 TAdapter extends VideoAdapter<string, any, any, any>,
586>(options: {
587 adapter: TAdapter & { kind: typeof kind }
588 jobId: string
589}): Promise<{
590 status: 'pending' | 'processing' | 'completed' | 'failed'
591 progress?: number
592 url?: string
593 error?: string
594 usage?: TokenUsage
595}> {
596 const { adapter, jobId } = options
597 const requestId = createId('video-status')
598 const startTime = Date.now()
599
600 aiEventClient.emit('video:request:started', {
601 requestId,
602 provider: adapter.name,
603 model: adapter.model,
604 requestType: 'status',
605 jobId,
606 timestamp: startTime,
607 })
608
609 // Get status first
610 const statusResult = await adapter.getVideoStatus(jobId)
611
612 // If completed, also get the URL
613 if (statusResult.status === 'completed') {
614 try {
615 const urlResult = await adapter.getVideoUrl(jobId)
616 aiEventClient.emit('video:request:completed', {
617 requestId,
618 provider: adapter.name,
619 model: adapter.model,
620 requestType: 'status',
621 jobId,
622 status: statusResult.status,
623 progress: statusResult.progress,
624 url: urlResult.url,
625 duration: Date.now() - startTime,
626 timestamp: Date.now(),
627 })
628 if (urlResult.usage) {
629 aiEventClient.emit('video:usage', {
630 requestId,
631 model: adapter.model,
632 usage: urlResult.usage,
633 timestamp: Date.now(),
634 })
635 }
636 return {
637 status: statusResult.status,
638 progress: statusResult.progress,
639 url: urlResult.url,
640 ...(urlResult.usage ? { usage: urlResult.usage } : {}),
641 }

Callers 4

server-fns.tsFile · 0.90
api.video.tsFile · 0.90

Calls 5

nowMethod · 0.80
createIdFunction · 0.70
emitMethod · 0.45
getVideoStatusMethod · 0.45
getVideoUrlMethod · 0.45

Tested by

no test coverage detected