feat(video): add downloading status and metadata to video types

Add new video status types for downloading state and include metadata in OpenAIVideoBase. This allows better tracking of video processing stages and provides access to video metadata.
This commit is contained in:
icarus 2025-10-12 02:40:04 +08:00
parent 014247f983
commit 6d22a635f2

View File

@ -4,7 +4,7 @@ import { Provider } from './provider'
// Only OpenAI (Responses) is supported for now.
export type VideoEndpointType = 'openai'
export type VideoStatus = 'queued' | 'in_progress' | 'completed' | 'failed'
export type VideoStatus = 'queued' | 'in_progress' | 'completed' | 'downloading' | 'downloaded' | 'failed'
interface VideoBase {
id: string
@ -14,6 +14,7 @@ interface VideoBase {
interface OpenAIVideoBase {
type: 'openai'
metadata: OpenAI.Videos.Video
}
export interface VideoQueued extends VideoBase {
@ -22,11 +23,20 @@ export interface VideoQueued extends VideoBase {
export interface VideoInProgress extends VideoBase {
status: 'in_progress'
/** integer percent */
progress: number
}
export interface VideoCompleted extends VideoBase {
status: 'completed'
}
export interface VideoDownloading extends VideoBase {
status: 'downloading'
/** integer percent */
progress: number
}
export interface Videodownloaded extends VideoBase {
status: 'downloaded'
fileId: string
}
@ -38,11 +48,19 @@ export interface VideoFailed extends VideoBase {
export interface OpenAIVideoQueued extends VideoQueued, OpenAIVideoBase {}
export interface OpenAIVideoInProgress extends VideoInProgress, OpenAIVideoBase {}
export interface OpenAIVideoCompleted extends VideoCompleted, OpenAIVideoBase {}
export interface OpenAIVideoDownloading extends VideoDownloading, OpenAIVideoBase {}
export interface OpenAIVideoDownloaded extends Videodownloaded, OpenAIVideoBase {}
export interface OpenAIVideoFailed extends VideoFailed, OpenAIVideoBase {
error: OpenAI.Videos.Video['error']
}
export type OpenAIVideo = OpenAIVideoQueued | OpenAIVideoInProgress | OpenAIVideoCompleted | OpenAIVideoFailed
export type OpenAIVideo =
| OpenAIVideoQueued
| OpenAIVideoInProgress
| OpenAIVideoCompleted
| OpenAIVideoDownloading
| OpenAIVideoDownloaded
| OpenAIVideoFailed
export type Video = OpenAIVideo
@ -62,6 +80,7 @@ export type CreateVideoParams = OpenAICreateVideoParams
interface CreateVideoBaseResult {
type: VideoEndpointType
video: unknown
}
export interface OpenAICreateVideoResult extends CreateVideoBaseResult {