元数据:
import { Input, Output } from "@/typings/sora2_text_to_video/sora2_text_to_video";
import axios from 'axios';
export async function handler({ input, logger }: Args<Input>): Promise<Output> {
try {
const apiKey = input['YOUR_YIJIA_API_KEY'];
const prompt = input['prompt'];
const model = input['model'];
const input_reference = input['input_reference'];
// 提交视频生成请求
const requestData = {
model: model,
prompt: prompt,
size:apiKey,
input_reference:input_reference
};
const createResponse = await axios.post('http://ai.yijiarj.cn/v1/videos', requestData, {
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
}
});
logger.info('Create video response:', createResponse.data);
// 返回视频ID和初始状态
return {
status: "成功",
video_id: createResponse.data.id,
};
} catch (error) {
if (axios.isAxiosError(error)) {
logger.error('API Error Details:', {
status: error.response?.status,
data: error.response?.data,
headers: error.response?.headers
});
} else {
logger.error('Unexpected Error:', error);
}
throw new Error(`Failed to create video: ${error instanceof Error ? error.message : String(error)}`);
}
};元数据
import { Input, Output } from "@/typings/sora2_get_video/sora2_get_video";
import axios from 'axios';
export async function handler({ input, logger }: Args<Input>): Promise<Output> {
try {
const apiKey = input['YOUR_YIJIA_API_KEY'];
const videoId = input['video_id'];
// 获取视频信息请求
const getResponse = await axios.get(`http://ai.yijiarj.cn/v1/videos/${videoId}`, {
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
}
});
logger.info('Get video response:', getResponse.data);
// 返回视频信息和状态
return {
video_url: getResponse.data.url // 假设API返回视频信息
};
} catch (error) {
if (axios.isAxiosError(error)) {
logger.error('API Error Details:', {
status: error.response?.status,
data: error.response?.data,
headers: error.response?.headers
});
} else {
logger.error('Unexpected Error:', error);
}
throw new Error(`Failed to get video: ${error instanceof Error ? error.message : String(error)}`);
}
};