Polyv Help Center

Help Center

Usage

Updated: 2026-01-19 09:16:42

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);
}
联系客服,在线咨询