Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SAVE_PATH | Yes | 数据存储路径 - 存储草稿的操作数据 | |
| OUTPUT_PATH | Yes | 导出路径 - 生成的剪映草稿文件存放位置 |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| rules | 制作视频的规范,这一步必须执行,方便了解如何规范的使用工具制作视频 |
| create_draft | 创建草稿 Args: draft_name: str 草稿名称 width: int,视频宽度,默认1920 height: int,视频高度,默认1080 fps: int,帧率,默认30 |
| export_draft | 导出草稿为剪映项目,导出到本地剪映的草稿路径下 Args: draft_id: 草稿ID,必须是已存在的草稿 jianying_draft_path: 导出路径 |
| create_track | 创建轨道 Args: draft_id: 草稿ID track_type: 轨道类型,支持 "video", "audio", "text", 一个轨道可以有多个素材,如video轨道想添加两个视频,使用同一个track_id就可以 track_name: 轨道名称,同类型轨道名不能相同 |
| add_video_segment | 添加视频片段到指定轨道,须注意target_timerange和source_timerange的使用规则 Args:
track_id: 轨道ID,通过create_track获得
material: 视频文件路径,包括文本文件路径或者url
target_start_end: 片段在轨道上的目标时间范围,格式如 "1s-4.2s",表示在轨道上从1s开始,到4.2s结束,target_start_end参数描述的是轨道上的时间范围,同一轨道中不可有重复时间段,即0s-4.2s和4s-5s,第一段素材最后0.2s与第二段素材重叠了,只能是0s-4.2s和4.ss-5s
source_start_end: 从源视频文件中截取的时间范围,格式如 "1s-4.2s",表示从源视频的1s开始截取,到4.2s结束(可选),source_start_end参数描述的是素材本身取的时长,默认取全部时长,一般情况下不设置,除非用户说明,若素材时长为5s,用户需要取其中1s-5s的内容,才配置
speed: ( Returns: ToolResponse: 包含操作结果的响应,格式为 {"success": bool, "message": str, "data": dict, "video_segment_id": str} Examples: # 基本用法 add_video_segment("track_id", "/path/to/video.mp4", "0s-5s") # 指定源时间范围
add_video_segment("track_id", "/path/to/video.mp4", "0s-3s", source_timerange="10s-3s")
# 设置播放速度和音量
add_video_segment("track_id", "/path/to/video.mp4", "0s-5s", speed=2.0, volume=0.8)
# 设置图像调节
add_video_segment("track_id", "/path/to/video.mp4", "0s-5s",
clip_settings={"alpha": 0.8, "scale_x": 1.2, "rotation": 45}) |
| add_video_animation | 为视频片段添加动画效果 Args: video_segment_id: 视频片段ID,通过add_video_segment获得 animation_type: 动画类型,支持 "IntroType", "OutroType", "GroupAnimationType" animation_name: 动画名称,如 "上下抖动", "向上滑动" 等,可以使用find_effects_by_type工具,资源类型选择IntroType、OutroType、GroupAnimationType,从而获取动画类型有哪些 duration: 动画持续时间,格式如 "1s"(可选) |
| add_video_transition | 为视频片段添加转场效果,注意两视频间添加转场应该在前一个添加转场,即video_segment_id使用前一个视频 Args: video_segment_id: 视频片段ID,通过add_video_segment获得 transition_type: 转场类型名称,可以使用find_effects_by_type工具,资源类型选择TransitionType,从而获取转场类型有哪些 duration: 转场持续时间,格式如 "1s"(可选) |
| add_video_keyframe | 为视频片段添加关键帧 Args:
video_segment_id: 视频片段ID,通过add_video_segment获得
property_name: 属性名称,可选参数如下:
position_x:右移为正, 此处的数值应该为 # 在1秒时设置旋转角度
add_video_keyframe("video_segment_id", "rotation", "1s", 45.0)
# 在2秒时设置透明度
add_video_keyframe("video_segment_id", "alpha", "2s", 0.5) |
| add_video_filter | 为视频片段添加滤镜效果 Args: video_segment_id: 视频片段ID,通过add_video_segment获得 filter_type: 滤镜类型名称,可以使用find_effects_by_type工具,资源类型选择filter_type,从而获取滤镜类型有哪些 intensity: 滤镜强度,范围0-100,默认100.0 |
| add_video_background_filling | 为视频片段添加背景填充效果 Args: video_segment_id: 视频片段ID,通过add_video_segment获得 fill_type: 填充类型,"blur"表示模糊,"color"表示颜色 blur: 模糊程度,范围0.0-1.0,仅在fill_type为"blur"时有效,默认0.0625 剪映中的四档模糊数值分别为0.0625, 0.375, 0.75和1.0 color: 填充颜色,格式为'#RRGGBBAA',仅在fill_type为"color"时有效,默认"#00000000" |
| add_video_mask | 为视频片段添加蒙版效果 Args: video_segment_id: 视频片段ID,通过add_video_segment获得 mask_type: 蒙版类型名称,可以使用find_effects_by_type工具,资源类型选择mask_type,从而获取蒙版类型有哪些 center_x: 蒙版中心点X坐标(以素材的像素为单位),默认0.0(素材中心) center_y: 蒙版中心点Y坐标(以素材的像素为单位),默认0.0(素材中心) size: 蒙版的主要尺寸,以占素材高度的比例表示,默认0.5 rotation: 蒙版顺时针旋转的角度,默认0.0 feather: 蒙版的羽化参数,取值范围0~100,默认0.0 invert: 是否反转蒙版,默认False rect_width: 矩形蒙版的宽度,仅在蒙版类型为矩形时有效,以占素材宽度的比例表示 round_corner: 矩形蒙版的圆角参数,仅在蒙版类型为矩形时有效,取值范围0~100 |
| add_video_effect | 为视频片段添加特效 Args: video_segment_id: 视频片段ID,通过add_video_segment获得 effect_type: 特效类型名称,可以使用find_effects_by_type工具,资源类型选择VIDEO_SCENE、VIDEO_CHARACTER,从而获取特效类型有哪些 params: 特效参数列表(可选),参数范围0-100,具体参数数量和含义取决于特效类型 |
| add_text_segment | 添加文本片段到指定轨道 Args: track_id: 轨道ID,通过create_track获得 text: 文本内容 target_start_end: 片段在轨道上的目标时间范围,格式如 "1s-4.2s",表示在轨道上从1s开始,到4.2s结束 font: 字体类型名称(可选) style: 字体样式字典(可选),哪些需要修改就填哪些字段 默认style = { "size": 6.0,# 字体大小, 默认为6.0 "bold": False,# 是否加粗, 默认为否 "italic": False,# 是否斜体, 默认为否 "underline": False,# 是否加下划线, 默认为否 "color": (1.0, 1.0, 1.0), # 字体颜色, RGB三元组, 取值范围为[0, 1], 默认为白色 "alpha": 1.0,# 字体不透明度, 取值范围[0, 1], 默认不透明 "align": 0, # 对齐方式, 0: 左对齐, 1: 居中, 2: 右对齐, 默 认为左对齐 "vertical": False,#是否为竖排文本, 默认为否 "letter_spacing": 0,# 字符间距, 定义与剪映中一致, 默认为0 "line_spacing": 0,# 行间距, 定义与剪映中一致, 默认为0 "auto_wrapping": False,# 是否自动换行, 默认关闭 "max_line_width": 0.82 # 每行最大行宽占屏幕宽度比例, 取值范围为[0, 1], 默认为0.82 } clip_settings: 图像调节设置字典(可选),哪些需要修改就填哪些字段 默认 clip_settings = { "alpha": 1.0, # 图像不透明度, 0-1. 默认为1.0. "flip_horizontal": False, # 是否水平翻转. 默认为False. "flip_vertical": False, # 是否垂直翻转. 默认为False. "rotation": 0.0, # 顺时针旋转的角度, 可正可负. 默认为0.0. "scale_x": 1.0, # 水平缩放比例. 默认为1.0. "scale_y": 1.0, # 垂直缩放比例. 默认为1.0. "transform_x": 0.0, # 水平位移, 单位为半个画布宽. 默认为0.0. "transform_y": 0.0 # 垂直位移, 单位为半个画布高. 默认为0.0.但强烈建议修改为-0.8(这样字幕是在正下方,不影响视频观感) } border: 文本描边参数字典(可选),哪些需要修改就填哪些字段 stroke_style = { "alpha": 1.0, # 描边不透明度, 取值范围[0, 1], 默认为1.0 "color": (0.0, 0.0, 0.0), # 描边颜色, RGB三元组, 取值范围为[0, 1], 默认为黑色 "width": 40.0 # 描边宽度, 与剪映中一致, 取值范围为[0, 100], 默认为40.0 } background: 文本背景参数字典(可选),哪些需要修改就填哪些字段 默认 background = { "color": "#000000", # 背景颜色, 格式为'#RRGGBB' (默认为黑色) "style": 1, # 背景样式, 1和2分别对应剪映中的两种样式, 默认为1 "alpha": 1.0, # 背景不透明度, 与剪映中一致, 取值范围[0, 1], 默认为1.0 "round_radius": 0.0, # 背景圆角半径, 与剪映中一致, 取值范围[0, 1], 默认为0.0 "height": 0. 14, # 背景高度, 与剪映中一致, 取值范围为[0, 1], 默认为0.14 "width": 0.14, # 背景宽度, 与剪映中一致, 取值范围为[0, 1], 默认为0.14 "horizontal_offset": 0.5, # 背景水平偏移, 与剪映中一致, 取值范围为[0, 1], 默认为0.5 "vertical_offset": 0.5 # 背景竖直偏移, 与剪映中一致, 取值范围为[0, 1], 默认为0.5 } Examples: # 基础文本 add_text_segment("track_id", "Hello World", "0s-5s") # 带样式的文本
add_text_segment("track_id", "标题文本", "0s-3s",
style={"size": 12.0, "bold": True, "color": (1.0, 0.0, 0.0)})
# 带描边的文本
add_text_segment("track_id", "描边文本", "2s-7s",
border={"width": 20.0, "color": (0.0, 0.0, 0.0)})
# 带背景的文本
add_text_segment("track_id", "背景文本", "5s-10s",
background={"color": "#FF0000", "alpha": 0.8}) |
| add_text_animation | 为文本片段添加动画效果 Args: text_segment_id: 文本片段ID,通过add_text_segment获得 animation_type: 动画类型,支持以下类型: - "TextIntro": 入场动画 - "TextOutro": 出场动画 - "TextLoopAnim": 循环动画 animation_name: 动画名称,如 "复古打字机", "弹簧", "色差故障", "淡入", "淡出" 等,可以使用find_effects_by_type工具,资源类型选择TextIntro、TextOutro、TextLoopAnim,从而获取动画类型有哪些 duration: 动画持续时间(可选),格式如 "1s", "500ms" |
| add_audio_segment | 添加音频片段到指定轨道,须注意 target_start_end和 source_start_end 的使用规则 Args: track_id: 轨道ID,通过create_track获得 material: 音频文件路径,支持本地文件路径或URL target_start_end: 片段在轨道上的目标时间范围,格式如 "0s-4.2s",表示在轨道上从0s开始,持续4.2s,target_start_end参数描述的是轨道上的时间范围,同一轨道中不可有重复时间段,即0s-4.2s和4s-5s,第一段素材最后0.2s与第二段素材重叠了,只能是0s-4.2s和4.ss-5s source_start_end: 从源音频文件中截取的时间范围,格式如 "1s-4.2s",表示从源音频的1s开始截取,到4.2s结束(可选),source_start_end参数描述的是素材本身取的时长,默认取全部时长,一般情况下不设置,除非用户说明,若素材时长为5s,用户需要取其中1s-5s的内容,才配置 speed: 播放速度,默认为1.0。此项与source_timerange同时指定时,将覆盖target_timerange中的时长(可选) volume: 音量,默认为1.0 change_pitch: 是否跟随变速改变音调,默认为False |
| add_audio_effect | 为音频片段添加特效 Args: audio_segment_id: 音频片段ID,通过add_audio_segment获得 effect_type: 特效类型,支持以下类型: - "AudioSceneEffectType": 场景音效(如雨声、风声等) - "ToneEffectType": 音调特效(如机器人、电音等) - "SpeechToSongType": 语音转歌声特效(如Lofi、流行等) effect_name: 特效名称,如 "雨声", "机器人", "Lofi", "电音", "回声" 等,可以使用find_effects_by_type工具,资源类型选择AudioSceneEffectType、ToneEffectType、SpeechToSongType,从而获取特效类型有哪些 params: 特效参数列表(可选),参数范围0-100,具体参数数量和含义取决于特效类型,一般不做修改 |
| add_audio_fade | 为音频片段添加淡入淡出效果 Args: audio_segment_id: 音频片段ID,通过add_audio_segment获得 in_duration: 音频淡入时长,格式如 "1s", "500ms", "0.5s" out_duration: 音频淡出时长,格式如 "1s", "500ms", "0.5s" |
| add_audio_keyframe | 为音频片段添加音量关键帧 Args: audio_segment_id: 音频片段ID,通过add_audio_segment获得 time_offset: 关键帧的时间偏移量,格式如 "0s", "1.5s", "500ms" volume: 音量在time_offset处的值,范围通常0.0-1.0,也可以大于1.0实现增益效果 |
| find_effects_by_type | 根据类型查找剪映特效资源 Args: effect_type: 特效类型,支持以下类型: - "VIDEO_SCENE": 视频画面特效 - "ToneEffectType": 音频音色特效 - "AudioSceneEffectType": 音频场景特效 - "filter_type": 滤镜特效 - "SpeechToSongType": 语音转歌曲特效 - "mask_type": 蒙版特效 - "TransitionType": 转场特效 - "Font": 字体 - "TextIntro": 文字入场动画 - "TextOutro": 文字出场动画 - "TextLoopAnim": 文字循环动画 - "GroupAnimationType": 组合动画 - "VIDEO_CHARACTER": 视频人物特效 - "IntroType": 视频/图片入场动画 - "OutroType": 视频/图片出场动画 is_vip: 是否只获取VIP资源,None表示获取所有 limit: 返回数量限制,None表示返回全部 keyword: 模糊匹配关键词,用于搜索特效名称 |
| parse_media_info | 解析媒体文件信息 Args: media_path: 媒体文件路径或URL,支持本地文件和网络URL,不论任何类型的文件都可以,视频可返回时长、分辨率,图片可返回尺寸 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |