58 lines
1.4 KiB
Go
58 lines
1.4 KiB
Go
// Package model 提供播客和剧集的数据模型
|
||
package model
|
||
|
||
import (
|
||
"time"
|
||
)
|
||
|
||
// TranscriptFormat 表示转录文件的格式
|
||
type TranscriptFormat string
|
||
|
||
const (
|
||
// TranscriptFormatJSON 表示JSON格式的转录
|
||
TranscriptFormatJSON TranscriptFormat = "json"
|
||
// TranscriptFormatSubrip 表示SRT格式的转录
|
||
TranscriptFormatSubrip TranscriptFormat = "subrip"
|
||
// TranscriptFormatUnsupported 表示不支持的格式
|
||
TranscriptFormatUnsupported TranscriptFormat = "unsupported"
|
||
)
|
||
|
||
// TranscriptURL 表示播客中包含的转录URL
|
||
type TranscriptURL struct {
|
||
// 转录的URL
|
||
URL string `json:"url,omitempty"`
|
||
|
||
// 转录的类型:json或srt
|
||
Type TranscriptFormat `json:"type,omitempty"`
|
||
|
||
// 转录的语言
|
||
Language string `json:"language,omitempty"`
|
||
|
||
// 如果设置为captions,表示这是一个闭合字幕文件
|
||
Rel string `json:"rel,omitempty"`
|
||
}
|
||
|
||
// Transcript 表示一个转录
|
||
type Transcript struct {
|
||
// 字幕列表
|
||
Subtitles []Subtitle `json:"subtitles,omitempty"`
|
||
}
|
||
|
||
// Subtitle 表示转录中的一行
|
||
type Subtitle struct {
|
||
// 字幕的索引(顺序)
|
||
Index int `json:"index,omitempty"`
|
||
|
||
// 字幕的开始时间
|
||
Start time.Duration `json:"start,omitempty"`
|
||
|
||
// 字幕的结束时间
|
||
End time.Duration `json:"end,omitempty"`
|
||
|
||
// 字幕的文本内容
|
||
Data string `json:"data,omitempty"`
|
||
|
||
// 发言人(可选)
|
||
Speaker string `json:"speaker,omitempty"`
|
||
}
|