Video (视频)¶
Video 模型代表项目中的一个视频文件,通常对应一集动画。
获取视频¶
for video in project.videos():
print(f"S{video.season_number}E{video.episode_number}: {video.name}")
属性¶
| 属性 | 类型 | 说明 |
|---|---|---|
id |
str |
视频唯一标识 |
name |
str |
视频名称 |
description |
str |
视频描述 |
episode_title |
str |
集标题 |
season_number |
int |
季号 |
episode_number |
int |
集号 |
width |
int |
视频宽度(像素) |
height |
int |
视频高度(像素) |
duration |
float |
视频时长(秒) |
ai_classification_status |
AIClassificationStatus |
AI 分类状态 |
video_url |
str |
视频文件 URL |
thumbnail_url |
str |
缩略图 URL |
project_id |
str |
所属项目 ID |
created_at |
datetime |
创建时间 |
updated_at |
datetime |
更新时间 |
方法¶
clips() -> Generator[Clip, None, None]¶
获取视频下的所有片段,按片段序号升序排列:
for clip in video.clips():
print(f"#{clip.index}: [{clip.start_time:.1f}s - {clip.end_time:.1f}s]")
if clip.subtitle:
print(f" 台词: {clip.subtitle}")
save(path) -> None¶
将视频文件下载并保存到本地:
save_bytes() -> bytes¶
获取视频文件的字节数据:
懒加载属性¶
以下属性使用 @cached_property,首次访问时会自动发起 API 请求获取数据,后续访问使用缓存。
extra -> VideoExtra¶
包含视频的扩展信息:资源文件、预测创作者和预测角色。
extra = video.extra
print(f"资源数: {len(extra.resources)}")
print(f"创作者数: {len(extra.creators)}")
print(f"角色数: {len(extra.characters)}")
parsed -> VideoParsed¶
包含视频的解析信息:剧本解析 URL 和香盘表 URL。
parsed = video.parsed
if parsed.script_data_url:
parsed.save_script_data("script.json")
if parsed.prop_list_data_url:
parsed.save_prop_list_data("koubanhyou.json")
script_data -> ScriptData | None¶
解析后的剧本结构化数据:
if video.script_data:
print(f"标题: {video.script_data.title}")
for staff in video.script_data.staffs:
print(f" {staff.role}: {staff.name}")
for script in video.script_data.scripts:
print(f" Cut {script.cut}: 画面={script.screen}, 音频={script.audio}")
koubanhyou_data -> Koubanhyou | None¶
解析后的香盘表(拍摄计划表)数据:
if video.koubanhyou_data:
for cut in video.koubanhyou_data.cut:
print(f"Part {cut.part}, Cut {cut.cut_ids}")
for char in cut.characters:
print(f" 角色: {char.name} ({char.costume})")
for loc in cut.locations:
print(f" 场景: {loc.name}")
快捷属性¶
以下属性是对 extra 和 parsed 的快捷访问:
| 属性 | 类型 | 等价于 |
|---|---|---|
resources |
list[VideoResource] |
video.extra.resources |
creators |
list[PredictCreator] |
video.extra.creators |
characters |
list[PredictCharacter] |
video.extra.characters |
script_data_url |
str | None |
video.parsed.script_data_url |
prop_list_data_url |
str | None |
video.parsed.prop_list_data_url |
辅助模型¶
VideoExtra¶
视频扩展信息容器。
| 属性 | 类型 | 说明 |
|---|---|---|
resources |
list[VideoResource] |
关联的资源文件 |
creators |
list[PredictCreator] |
预测的创作者 |
characters |
list[PredictCharacter] |
预测的角色 |
VideoParsed¶
视频解析信息容器。
| 属性 | 类型 | 说明 |
|---|---|---|
script_data_url |
str | None |
剧本数据 URL |
prop_list_data_url |
str | None |
香盘表数据 URL |
方法:
| 方法 | 返回类型 | 说明 |
|---|---|---|
save_script_data(path) |
None |
保存剧本数据到本地文件 |
save_prop_list_data(path) |
None |
保存香盘表数据到本地文件 |
save_bytes_script_data() |
bytes |
获取剧本数据字节 |
save_bytes_prop_list_data() |
bytes |
获取香盘表数据字节 |
PredictCreator¶
根据剧本预测的创作者信息。
| 属性 | 类型 | 说明 |
|---|---|---|
id |
str |
唯一标识 |
creator_id |
str |
创作者 ID |
name |
str |
创作者名称 |
role |
str |
角色/职位 |
PredictCharacter¶
根据剧本预测的角色信息。
| 属性 | 类型 | 说明 |
|---|---|---|
id |
str |
唯一标识 |
character_id |
str |
角色 ID |
name |
str |
角色名称 |
image_url |
str |
角色图片 URL |