跳转至

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

将视频文件下载并保存到本地:

video.save("output/episode01.mp4")

save_bytes() -> bytes

获取视频文件的字节数据:

data = video.save_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}")

快捷属性

以下属性是对 extraparsed 的快捷访问:

属性 类型 等价于
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