|
- import {
- createTranscriptFetcher,
- VideoType,
- createSummarizer,
- BaseTranscriptItem,
- OPENAI_API_VERSION,
- } from '@modal-sh/webvideo-transcript-summary-core';
-
- import * as config from '../../config';
-
- export interface TranscriptService {
- getVideoTranscript(
- videoType: VideoType,
- ...etcParams: Parameters<ReturnType<typeof createTranscriptFetcher>>
- ): Promise<BaseTranscriptItem[]>;
- normalizeVideoTranscriptText(text: BaseTranscriptItem[]): Promise<string>;
- }
-
- export class TranscriptServiceImpl implements TranscriptService {
- async getVideoTranscript(
- videoType: VideoType,
- ...etcParams: Parameters<ReturnType<typeof createTranscriptFetcher>>
- ) {
- const transcriptFetcher = createTranscriptFetcher({ type: videoType });
- return transcriptFetcher(...etcParams);
- }
-
- async normalizeVideoTranscriptText(text: BaseTranscriptItem[]) {
- const summarizer = createSummarizer({
- apiKey: config.openAi.apiKey,
- organizationId: config.openAi.organizationId,
- apiVersion: OPENAI_API_VERSION,
- });
-
- return summarizer.normalize(text);
- }
- }
|