shorts-from-peaks(从峰值生成短视频)
工具执行顺序
search_videos(query, n, shorts)- 搜索YouTube,按观看次数和病毒式传播潜力对结果排序,并存储它们及其顶部峰值。list_sources显示已存储的内容。优先选择官方或授权来源。get_peaks(video_id)- 获取已存储源视频的热力图峰值。无热力图则说明情况;建议其他来源或手动窗口,切勿虚构峰值。create_clip_project(video_id, peak_rank=1, hook_text)- 根据峰值创建编辑器草稿,或传入start/end秒数为手动窗口(直接运行)。render_project(video_id, hook_text, custom_script)- 在后台渲染草稿(直接运行);轮询get_job(job_id)。其checks_failed列表显示失败的合规检查项。- 修复失败的检查,然后通过
queue_add(project_id)请求添加到队列(需确认)。ui_open("editor", video_id)向用户展示编辑器。
- 无热力图,或用户上传/拥有较长的链接:
autoclip_source(url, length, max_clips, prompt, create_drafts)从转录中找到最佳时刻并返回排名后的片段(轮询get_job);若create_drafts=true,则这些片段直接进入编辑器。
读取峰值
- 值为归一化的0-1。峰值是局部最大值 >= 0.8;相隔不足10秒的峰值合并为一个。
- 忽略视频前5%内的尖峰(片头伪影)。仅保留按值排序的前3个峰值。
- 为每个峰值报告
起始-结束时间、峰值数值、排名,并附带视频标题和URL。
剪辑窗口
- 总时长15-30秒(硬性最大30秒:合规检查拒绝更长的)。
- 峰值前3-5秒开始剪辑,以便观众看到铺垫;峰值后2-4秒结束,完成高潮。在句子或动作边界处剪切。
- 限制在视频时长内。从不使用来自单个第三方片段超过50%的运行时:添加B-roll、图像或数据卡片。
- 每个Shorts只包含一个时刻。最多两个峰值,且仅当它们是同一故事线索。
钩子(前3秒)
- 一个提问、一个赌注或一个令人惊讶的主张,读作第一帧的旁白,同时配有大的屏幕标题(最多6个词)。
- 仅使用标题、描述或转录中呈现的事实;将传闻标记为“RUMOR”。
- 旁白:句子 ≤ 8个词,约2.5词/秒,钩子 -> 背景 -> 峰值处的高潮 -> 简短的行动号召。原始视频音频保持低音量或关闭;由旁白主导。
转换检查(五项必须全部通过;参见 docs/LEGAL.md)
narration:存在原始旁白。visual_layers:至少添加2层视觉元素(文本、图像/贴纸、B-roll、数据卡片)。text_overlay:钩子或文本在屏幕上显示。duration:30秒或更短。source_credit:在每个平台说明中标注来源。 如果任何一项失败,修复项目并重新渲染;重新渲染会使之前的任何批准失效。
字幕和文本
- 逐词字幕,每组2-4个词,粗体无衬线字体,白色加黑色轮廓,活动词高亮显示。
- 保持字幕远离屏幕底部约12%和两侧约6%的区域(平台UI)。仅当频道风格使用表情符号时才使用。
标题、说明、标签
- 标题/第一行 = 钩子,不超过80个字符。一句背景说明。
- 3-5个标签:1个小众、1-2个主题、1个广泛。不使用被禁止或误导性标签。
- 始终包含
Source: <频道> - <URL>。 - 模板:
references/clip-brief.md。
AI披露
合成旁白(TTS)或AI视觉素材在批准前必须设置每篇帖子的AI披露标志,并在上传时添加平台自身的AI标签。在确认卡片中提醒用户。
禁止行为
- 发布未编辑的原始片段、超过30秒的片段,或没有旁白的片段。
- 使用用户标记为屏蔽的来源,或设置为私有、会员专属、需登录才能观看的来源。
- 未经用户确认就添加到队列、安排或删除。