ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

CLI-Anything 合成素材(Found-Footage)来源甄别实战:证据分级、sources.json 清单与 video_doctor 自动校验

2026/9/10 12:20:34 拓冰建站 浏览量
CLI-Anything 合成素材(Found-Footage)来源甄别实战:证据分级、sources.json 清单与 video_doctor 自动校验 CLI-Anything 合成素材Found-Footage来源甄别实战证据分级、sources.json 清单与 video_doctor 自动校验【免费下载链接】CLI-AnythingCLI-Anything: Making ALL Software Agent-Native -- CLI-Hub: https://clianything.cc/项目地址: https://gitcode.com/GitHub_Trending/cl/CLI-Anything本文以 CLI-Anything 仓库cli-hub-matrix/video-creation矩阵技能体系下的参考模块 source-triage.md 为主体系统讲解剪辑互联网素材、公共领域片段、平台来源媒体或具名场景时必须执行的来源甄别Source Triage方法论从三级证据等级、sources.json/music_sources.json强制字段清单、源音频角色分类到video_doctor.py的 probe / frames / sources 子命令工作流、拒用清单与联系表纪律。读完本文你可以为任何一部依赖网络素材的剪辑建立可下载 ≠ 可用的证据台账并在进入时间线之前自动排查缺失出处、弱证据、低质量、缺音频角色与高风险混音策略等问题。甄别在视频矩阵中的位置为什么必须先于剪辑在 CLI-Anything 的视频创作矩阵中video-creation/SKILL.md 将视频制作拆成可组合的能力capabilitiesvideo.search、video.download、media.analyze、sound.design、text.caption、composite.assemble等并以配方recipe的方式按需组合。其中found-footage-montage配方专门处理从互联网下载片段、策展后再剪辑的场景。source-triage 参考模块正是这条链路上的闸门在video.search能力中SKILL.md 明确要求凡交付物是合成素材found-footage或涉及平台来源声明必须先阅读本参考模块并把每个候选素材分类为直接平台来源 / 可验证的平台来源转存 / 弱镜像在media.analyze能力的 found-footage gate 中SKILL.md 再次要求不要因为素材下载成功就使用它——拒绝清单直接引用本参考模块矩阵在Known gaps中如实声明rights.provenance自动许可证 / TOS / 出处校验器目前是缺口其变通方案就是手工把 URL、创作者、许可证、用途、署名与传输证据写进sources.json/music_sources.json并按本模块的证据等级分级。也就是说source-triage 不是锦上添花的质量建议而是矩阵明确承认缺乏自动化权利校验之后Agent 需要依赖的人工纪律与证据格式。一、三级证据等级与授权边界甄别的第一步是在剪辑之前给每个来源定性。原文档给出了三级证据等级下表完整继承其含义并补充了各等级在实际工作流中的使用建议等级含义使用建议Direct platform source直接平台来源从原始平台或意图中的平台 URL 直接下载当用户提供了 URL、或平台来源已获授权且可访问时优先采用Verified platform-origin transport可验证的平台来源转存经由保留了可信来源元数据的其他主机下载例如带来源信息的 Wikimedia 转码或ytarchive:抓取直接访问平台失败、但传输途径足以向简报证明来源归属时接受Weak mirror弱镜像二次上传、混剪、粉丝剪辑、通用镜像或无法核验的片段仅在用户接受相应风险提示、且最终交付物适合该风险等级时使用与证据分级同等重要的是一条红线原则原文档用一句话概括Downloadability is not permission.可下载不等于已授权。具体约束包括不得绕过 DRM、付费墙、登录限制或访问控制仅当用户已获得访问授权时才允许使用 cookie许可证或用户授权不明时先询问再决定是否用于交付物SKILL.md 的video.search与music.search能力中反复强调同一原则。这一原则在代码层面也被体现为甄别信号sources子命令会把缺少 platform/source URL与缺少 evidence_level作为source_provenance信号单独列出见 video_doctor.py 中sources_doctor的检查逻辑因为出处证据本身就是分类的前提。二、sources.json 强制字段清单一个来源一个对象甄别的载体是结构化清单sources.json。原文档规定每个来源对应一个 JSON 对象字段覆盖来源身份、下载命令、本地文件、探针probe结果、选中区间、音频属性与权利备注。下面完整复刻原文档模板并逐字段注释{ id: source_short_name, platform_url: https://..., transport_url: https://..., evidence_level: direct-platform|verified-transport|weak-mirror, download_command: yt-dlp ..., cookie_file: path or null, local_file: sources/source_short_name.mp4, probe: { duration: 123.45, width: 1920, height: 1080, fps: 30000/1001, video_bitrate: 8000000, audio_bitrate: 160000 }, selected_ranges: [ { start: 12.3, end: 18.8, role: setup|reveal|impact|contrast|proof|payoff, audio_role: silent_or_mute|ambience_keep|dialogue_keep|music_only|mixed_music_speech|needs_separation, source_music_present: none|light|dominant|unknown, speech_needed: false, overlap_policy: mute_source|keep_ambience_low|source_dialogue_foreground|source_music_only|duck_new_music|separate_vocals|reject_range, separation_tool: none|demucs|spleeter|uvr|api, quality_notes: why this range survives triage, risk: watermark/source subtitle/soft crop/etc. } ], creator: name if known, license: license or unknown, rights_notes: authorization/attribution/caveat, quality_caveat: none or specific caveat }各字段的实战含义id/local_file短名需与落盘文件命名保持一致如sources/source_short_name.mp4。甄别工具会用id标识信号来源并在本地文件缺失时给出强信号source_manifestplatform_url/transport_url平台 URL 与实际下载通道分离记录。前者证明声称的出处后者回答到底从哪里拿到。只有 transport_url 而无 platform_url 时doctor 会提示source_provenance信号evidence_level即上一节三级证据等级缺失该字段会被 doctor 标记download_command/cookie_file可复现的下载命令与授权 cookie 路径无授权时填null保证台账可回溯probe媒体事实探针。注意fps用有理数串表示如30000/1001video_doctor.py的parse_rate()会把30000/1001解析为约 29.97实际执行probe子命令可自动生成 duration / width / height / bitrate 等事实selected_ranges[]甄别后真正入选的区间集合也是剪辑与混音的直接依据详见下文creator/license/rights_notes/quality_caveat署名、许可证、授权与质量让步记录——这是矩阵在rights.provenance缺口下唯一可依赖的人工权利台账。原文档同时规定音乐来源需在music_sources.json中记录等价的细节字段URL、创作者、许可证、上传者、版本说明、权利/署名等由music.search/music.download能力负责维护。音频字段的触发条件音频相关字段并不是永远必填。原文档给出的规则是当一个选中区间带有音轨、且成片实际使用任何源声音时才必须分类源音频。据此先听清素材里有什么声音再去混音被前置到甄别阶段而不是留到 sound design 阶段才发现冲突。三、源音频角色分类把混音冲突消灭在选片阶段对于每一段要进入成片的源声音原文档要求在剪辑前完成六类角色判定。下表完整列出其语义与处理决策audio_role语义对应处理silent_or_mute无关紧要的音频、平台片头、会与新加音乐打架的纯 BGM、会与新旁白打架的源评论静音处理ambience_keep无主导音乐或人声的自然环境声保留作为环境底dialogue_keep源人声正是成片所需必须作为前景并配字幕/翻译而不是垫在新旁白底下music_only源音乐就是该时间窗刻意的音乐层此处不要再叠加第二条完整音乐层mixed_music_speech/needs_separation音乐与人声混合或必须分离使用 Demucs、Spleeter、UVR、经批准的 API 进行分离或直接拒绝该区间再考虑加新音乐或旁白与角色分类配套的还有三组字段source_music_presentnone | light | dominant | unknown描述源音乐在区间内的强弱speech_needed布尔值标明该区间是否需要源人声overlap_policy覆盖策略枚举mute_source | keep_ambience_low | source_dialogue_foreground | source_music_only | duck_new_music | separate_vocals | reject_rangeseparation_toolnone | demucs | spleeter | uvr | api当角色是混合音或需要分离时必须给出具体工具否则 doctor 会给出强信号。原文档还特别强调一条容易踩坑的纪律如果源音频仅用于真实性氛围必须证明它就是环境声绝不要把说话声/音乐串音含糊地标注为texture质感。这一条在工具实现里被编码成两组成语料SOURCE_AUDIO_CONFLICT_TERMS如under the music、source texture、retain all source audio被视作冲突描述SOURCE_AUDIO_RESOLUTION_TERMS如mute、duck、separate、demucs、spleeter、uvr、source-only被视作已解决描述——凡提到冲突却没有对应解决用语的区间都会被source_audio_overlap信号点名定义见 video_doctor.py。当角色为dialogue_keep/music_only/mixed_music_speech/needs_separation即前景性声音却没有overlap_policy时doctor 会报出risky_audio_policy当角色是mixed_music_speech/needs_separation却没有分离工具、也没有任何解决用语时会升级为强信号要求你分离、把源人声当前景、静音或换更干净的区间然后再去加旁白/新音乐层。四、甄别工作流probe → 联系表 → sources doctor → 人工裁决原文档给出的甄别工作流共七步可直接照做逐源探针在细看素材之前先获得媒体事实python cli-hub-matrix/video-creation/scripts/video_doctor.py probe sources/source.mp4probe子命令用ffprobe汇总时长、分辨率、帧率、码率、音视频流等事实video_doctor.py 中的probe_doctor加--raw还可输出完整 ffprobe JSON。它的作用是把文件是好的这种主观印象替换成可写入probe字段的客观数字。生成源素材概览联系表contact sheetpython cli-hub-matrix/video-creation/scripts/video_doctor.py frames sources/source.mp4 review/source_nameframes子命令会在输出目录生成first.jpg/middle.jpg/last.jpg、全片抽样联系表默认每 2 秒一帧5×5 拼贴、末 10 秒联系表以及终幕高密度联系表默认取全片后 20% 段可用--final-act-fraction调整并附带画面感知多样性统计video_doctor.py 的frames_doctor。这是后续判断静态镜头、卡片、硬字幕、水印的视觉底稿。起草sources.json后运行来源医生python cli-hub-matrix/video-creation/scripts/video_doctor.py sources sources.json --root .sources_doctor会逐一检查清单中的每个条目video_doctor.py 中sources_doctor产出结构化信号。阅读医生信号作为深入调查的提示词。原文档明确doctor 不是权利核验器它只是调查提示——它检查的是证据是否缺失、是否矛盾、是否自洽而非你是否有权使用。给可能可用的区间标注叙事角色。原文档规定没有角色的区间不构成入选素材a range without a role is not selected footage。角色的意义可参见 story-structure-audio.md 中每个片段都要有叙事职责setup / reveal / escalation / contrast / proof / impact / payoff的装配规则并与 SKILL.md 的 assembly discipline 保持一致。为选中区间或高密度动作段生成联系表。在进入时间线之前拒绝坏区间不要等问题留到调色、裁剪、字幕或 NLE 特效阶段去补救。sources doctor 到底检查什么把工具实现与文档信号类别对应起来sources子命令实际执行的核查包括对应sources_doctor中的检查分支信号主题触发条件对应原文档信号类别source_manifest条目缺本地文件字段、或引用的文件不存在stale path陈旧文件 / 缺失出处source_probeffprobe 探针失败文件完整性source_quality分辨率低于 720p宽 1280 或高 720低质量来源source_provenance缺 platform_url 或 evidence_level缺失出处证据source_rights缺 license 或 rights_notes权利备注缺失source_selection无选中区间、区间缺 start/end、endstart、end 超出源时长、区间无叙事角色弱区间source_range_review选中区间缺少 source-text/watermark/质量风险备注风险未记录source_text_occupancy提到硬字幕/台标/水印/平台 UI 却无缓解用语未缓解的文本风险source_audio_role有音轨的区间缺音频角色、或使用了非标准角色值缺失音频角色source_audio_overlap前景性声音缺 overlap_policy、混合音缺分离方案、冲突描述无缓解用语风险音频重叠策略报告本身会给出signals数组、agent_instruction与逐条investigate建议加--json可输出机器可读 JSON。正如模块与工具注释反复强调的报告是证据与调查信号不是 pass/fail 判决sources_doctor的agent_instruction原文即 Use this as a provenance and source-selection investigation, not as a license verdict。甄别阶段之后音频医生的复核入口甄别阶段填好的音频角色不会就此沉睡。在quality.review阶段运行音频医生时可以把这些台账直接喂回去做重叠复核video_doctor.py 的audio_doctorpython cli-hub-matrix/video-creation/scripts/video_doctor.py audio final.mp4 qc/audio \ --sources-manifest sources.json \ --music-manifest music_sources.json \ --sound-design sound_design.md它会从 manifest 中读取audio_role、overlap_policy与时间窗在声明的重叠窗口自动导出 WAV 片段供人工试听并提示叠了两层音乐床、源评论压在新闻旁白下、标称环境声其实是说话声/音乐声等典型事故。这正是甄别阶段分类 → 混音阶段自动复核的闭环价值好台账能让最终质检自动定位可疑的混音窗口。五、硬字幕、台标与平台 UI记录风险与缓解措施当源素材带有硬编码字幕、广播图形、水印或平台 UI时原文档要求在选中区间中记录风险与缓解方式安全区放置safe-zone placement、裁剪crop、遮罩/模糊mask/blur、替换replacement或写清可接受的书面理由。source doctor 会专门标记提到文本类风险却缺少缓解备注的区间即source_text_occupancy信号。工具把这一条具体化了SOURCE_TEXT_TERMS词表覆盖hardcoded subtitle、source subtitle、burned subtitles、broadcast graphic、lower third、ticker、watermark、platform ui、logo bug、chinese subtitle、caption collision等SOURCE_TEXT_MITIGATION_TERMS词表覆盖safe zone、crop、mask、blur、replace、avoid、upper、side、acceptable、intentional等。若风险描述命中前者而未命中后者就会产生未缓解信号提示你去补上明确处理方案。这一机制也呼应了 captions.md 中不要把作者字幕叠在源字幕之上的字幕纪律。六、拒用清单这些区间直接拒绝或裁剪/遮罩原文档给出了一份可直接抄录进工作流 SOP 的拒用清单。对以下情况应拒绝对应区间或裁剪/遮罩下表整理为症状 → 处理取向症状处理取向分辨率对成片格式过低除非故意要低清质感拒绝或换源无法支撑节拍的静态镜头拒绝倒计时卡片、排行榜卡片、来源标题卡、片尾字幕、赞助商卡片或大号硬编码数字拒绝与成片字幕打架的硬编码字幕拒绝或处理后只保留一套字幕无法证明合理、也无法安全裁剪的水印或平台 UI拒绝与另一选中区间内容重复除非是刻意 callback拒绝重复段偏离主题的动作、错误角色/队伍/物体、或通用素材感拒绝简报要求真实 YouTube/Bilibili/来源出处而平台证据薄弱拒绝应保持干净音乐的素材却混有人声/SFX 串音拒绝源音乐叠在新音乐层下却无仅源音频 / ducking / 静音 / 分离决策拒绝或先决策源评论叠在新旁白下——必须只保留一个前景人声或分离/替换源音频拒绝或分离这份清单与 SKILL.mdmedia.analyze的 found-footage gate 一一呼应扫描倒计时卡、片尾、硬字幕、水印、大号排名数字与来源标题卡并对低分辨率、静态、重复、卡片堆砌、字幕主导或跑题的素材执行同样的拒绝/裁剪/遮罩策略。七、联系表纪律与报告可追溯性对于合成素材剪辑原文档要求在review/目录或同级目录持续维护四类联系表每个原始源一份概览表一份全部选中区间表装配完成后一份最终使用区间表final used-ranges对预告片 / 体育 / 音乐类剪辑额外留一份高密度终幕表取样尺寸要符合该类型的最终片段规格。两条硬性纪律随之而来报告必须指名最终使用的确切源文件与区间Reports must name the exact final source files and ranges used如果某源在评审后被替换必须重新生成联系表并同步更新 manifest防止报告指向过期文件。这条精确终态路径纪律在矩阵中是一贯的render-doctor.md参考模块同样要求从最终路径重新生成帧、更新报告并扫描陈旧路径。甄别阶段的 manifest 与联系表若维护到位后续 render doctor / audio doctor 的自动化检查才有可靠的事实底座。小结把甄别当成剪辑的第一道闸门综合来看source-triage 参考模块教给 Agent 的是一套可复制的工程纪律分级每个来源先归入直接平台来源 / 可验证转存 / 弱镜像三级可下载不等于已授权立台账把所有证据写进sources.json/music_sources.json的结构化字段补齐 URL、命令、probe、选中区间、角色、权利与质量让步先探后看probe先拿媒体事实frames先生成联系表机器初筛 人工裁决sources子命令把缺失出处、陈旧文件、弱区间、低质量、缺音频角色、风险重叠策略等问题变成调查信号——但最终裁决权在阅读证据的人/Agent 手里doctor 永不代行是否可用的判断前置拒绝把坏区间挡在时间线之前别让问题一路漏到调色、裁剪、字幕与 NLE 特效阶段闭环复核甄别产出的音频角色台账在 final quality review 阶段回喂给audio doctor自动定位源音频与新音乐/旁白的重叠窗口。这套流程的关键输入文件与工具都可以在当前仓库直接查阅与运行方法全文见 source-triage.md能力上下文见 video-creation/SKILL.md甄别、探针、联系表与音频复核的自动化工具有 video_doctor.pyprobe/frames/sources/audio等子命令叙事角色与装配规则可对照 story-structure-audio.md 与 sound-design.md。【免费下载链接】CLI-AnythingCLI-Anything: Making ALL Software Agent-Native -- CLI-Hub: https://clianything.cc/项目地址: https://gitcode.com/GitHub_Trending/cl/CLI-Anything创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考