Usage
The AI Summary module provides the ability to retrieve intelligent analysis content from playback videos, including playback outlines, subtitle parsing, and interactive quizzes.
Main Methods
| Method | Function |
|---|---|
getPlaybackOutline |
Get playback outline data |
getOutlineContent |
Get outline detailed content |
getAISubtitleContent |
Get AI subtitle content |
parseAISubtitleContent |
Parse SRT format subtitles |
getAIPlaybackQuestionData |
Get interactive quiz data |
Usage Example
// 获取回放大纲
const outline = await aiCore.aiSummary.getPlaybackOutline({
id: 'video-123',
type: 'playback', // 'record' 或 'playback'
});
if (outline) {
console.log('视频摘要:', outline.introduction);
console.log('分段数量:', outline.outlineContent.length);
}
// 获取并解析字幕
const subtitleContent = await aiCore.aiSummary.getAISubtitleContent(
'https://example.com/subtitle.srt',
);
const parsedSubtitles = aiCore.aiSummary.parseAISubtitleContent(subtitleContent);
// 获取互动答题
const questionData = await aiCore.aiSummary.getAIPlaybackQuestionData(
'https://example.com/questions.json',
);
Get Playback Outline Content
Description: Get the detailed content of the playback outline via the outline URL, including summary and segmented summaries.
API Method: getOutlineContent(outlineUrl: string): Promise<PlaybackOutlineData>
Parameter Description:
- outlineUrl: The API URL for the outline data, type
string, required.
Return Value Description: Playback outline data, containing introduction (summary) and outlineContent (segmented summaries), type Promise<PlaybackOutlineData>. Detailed type description is as follows:
| Property Name | Description | Type |
|---|---|---|
introduction |
Summary content | string |
outlineContent |
Segmented summaries | PlaybackOutlineContentItem[] |
Example:
const summaryModule = new AISummaryModule();
const outlineUrl = 'https://api.example.com/outline/123';
try {
const outlineData = await summaryModule.getOutlineContent(outlineUrl);
console.log('大纲摘要:', outlineData.introduction);
console.log('分段数量:', outlineData.outlineContent.length);
} catch (error) {
console.error('获取大纲内容失败:', error);
}
Get Playback Outline Data
Description: Get the corresponding outline data based on the playback ID and type. First, obtain the outline URL via the API, then use getOutlineContent to get the detailed content.
API Method: getPlaybackOutline(options: PlaybackOutlineOptions): Promise<undefined | PlaybackOutlineData>
Parameter Description:
- options: Parameters for fetching, including playback ID and type, type
PlaybackOutlineOptions, required. Detailed type description is as follows:
| Parameter Name | Description | Type | Required | Default Value |
|---|---|---|---|---|
id |
Playback ID | string |
Yes | - |
type |
Playback type | string |
Yes | - |
Return Value Description: Playback outline data. Returns undefined if no outline is found, type Promise<undefined | PlaybackOutlineData>.
Example:
const summaryModule = new AISummaryModule();
// 获取录制文件的大纲
const recordOptions = {
id: 'file_123456',
type: 'record' as const,
};
const recordOutline = await summaryModule.getPlaybackOutline(recordOptions);
if (recordOutline) {
console.log('录制文件大纲:', recordOutline.introduction);
}
// 获取回放视频的大纲
const playbackOptions = {
id: 'video_789012',
type: 'playback' as const,
};
const playbackOutline = await summaryModule.getPlaybackOutline(playbackOptions);
if (playbackOutline) {
console.log('回放视频大纲分段:', playbackOutline.outlineContent.length);
}
Get Subtitle Content
Description: Get the AI-generated subtitle text content (usually in SRT format) via the subtitle URL.
API Method: getAISubtitleContent(url: string): Promise<string>
Parameter Description:
- url: The API URL for the subtitle data, type
string, required.
Return Value Description: Subtitle text content (string format), type Promise<string>.
Example:
const summaryModule = new AISummaryModule();
const subtitleUrl = 'https://api.example.com/subtitle/123.srt';
try {
const subtitleContent = await summaryModule.getAISubtitleContent(subtitleUrl);
console.log('字幕内容:', subtitleContent);
// 通常返回 SRT 格式文本,可以进一步使用 parseAISubtitleContent 解析
const parsedItems = summaryModule.parseAISubtitleContent(subtitleContent);
console.log('解析后的字幕条目数:', parsedItems.length);
} catch (error) {
console.error('获取字幕内容失败:', error);
}
Parse Subtitles
Description: Parse SRT format subtitle text into a structured array of subtitle entries.
API Method: parseAISubtitleContent(content: string): AISubtitleParsedItem[]
Parameter Description:
- content: Subtitle text in SRT format, type
string, required.
Return Value Description: Parsed array of subtitle entries, each containing start time, end time, text content, and index, type AISubtitleParsedItem[].
Example:
const summaryModule = new AISummaryModule();
const srtContent = `
1
00:00:01,000 --> 00:00:04,000
欢迎观看本视频
2
00:00:05,000 --> 00:00:08,000
今天我们将学习 AI 技术
`;
const parsedItems = summaryModule.parseAISubtitleContent(srtContent);
console.log('解析结果:', parsedItems);
// 输出示例:
// [
// {
// start: 1000,
// end: 4000,
// text: '欢迎观看本视频',
// index: '1'
// },
// {
// start: 5000,
// end: 8000,
// text: '今天我们将学习 AI 技术',
// index: '2'
// }
// ]
// 使用解析后的数据
parsedItems.forEach(item => {
console.log(`时间: ${item.start}-${item.end}ms, 内容: ${item.text}`);
});
Get Interactive Quiz List
Description: Get the list of interactive quizzes from the playback video via the quiz data URL.
API Method: getAIPlaybackQuestionData(url: string): Promise<PlaybackQuestionData>
Parameter Description:
- url: The API URL for the interactive quiz data (JSON format), type
string, required.
Return Value Description: Interactive quiz data, containing a list of questions, type Promise<PlaybackQuestionData>. Detailed type description is as follows:
| Property Name | Description | Type |
|---|---|---|
questions |
Question list | PlaybackQuestionItem[] |
Example:
const summaryModule = new AISummaryModule();
const questionUrl = 'https://api.example.com/questions/123.json';
try {
const questionData = await summaryModule.getAIPlaybackQuestionData(questionUrl);
console.log('问题数量:', questionData.questions.length);
questionData.questions.forEach((question, index) => {
console.log(`问题 ${index + 1}: ${question.question}`);
console.log(`类型: ${question.type}, 答案: ${question.answer}`);
console.log(`弹题时间: ${question.questionTriggerTime}秒`);
question.selectOptions.forEach(option => {
console.log(` 选项 ${option.option}: ${option.content}`);
});
});
} catch (error) {
console.error('获取答题数据失败:', error);
}
