Skip to content
Back to skills

Video Assets

ASecurity

视频外部素材规划、搜索、下载和合规归档。获取图片、视频、音乐、音效并转码,记录具体来源和许可证。触发词:下载素材、找音乐、找音效、找图片、找视频、准备 B-roll 素材。

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 19, 2026
ai-agentspythonbash

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 19, 2026

npx -y skills add Huanyu-Hibiki/Huanyu-Skills --skill video-assets --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Video Assets?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Video Assets
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/huanyu-hibiki-video-assets/badge)](https://www.skillsdirectory.com/skills/huanyu-hibiki-video-assets)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: video-assets
description: 视频外部素材规划、搜索、下载和合规归档。获取图片、视频、音乐、音效并转码,记录具体来源和许可证。触发词:下载素材、找音乐、找音效、找图片、找视频、准备 B-roll 素材。
argument-hint: "[project-path] [asset-request-path]"
allowed-tools: Bash(*), Read, Write, Edit, Glob, Grep
---

# /video-assets

## 两类能力的边界

| Skill | 负责 | 不负责 |
|---|---|---|
| 搜索下载 | 按描述搜索、下载图片/视频、下载 YouTube 指定片段、简单裁剪 | 不替用户判断最终 B-roll、不会自动保证每个来源适合商用 |
| 合规归档 | 读取请求、核验具体许可证、转码、整理目录、维护 manifest | 不创作 Remotion 动画、不编辑主视频 |

实现脚本统一位于 `<合集根>/scripts/video-assets/`:

- `media_cli.py`:图片、Stock 视频、YouTube 搜索/下载/裁切;
- `normalize_asset.py`:音频、视频和图片标准化并追加许可证 manifest。

## 流程

🔴 **CHECKPOINT:下载任何第三方素材前,展示本轮下载清单(来源、预计数量、许可证判断)并等用户确认;许可证不明的高风险来源单独列出。**

1. 优先读取 `assets/requests/asset_request_list.md`;没有则询问素材类型、用途、时长、画幅、情绪、许可证和项目路径。
2. 按来源聚类需求,先做 metadata search,再下载确认项,避免逐条反复抓取。
3. **检索与降级链**:检索词用英文视觉概念词(从中文分镜翻译 2-3 个,不直译名词);同一镜头**先搜视频、搜不到再降级搜图片**(同源同 key),图片也找不到才登记进 `missing_materials`——图片撑镜头必须靠相机动,是次选不是并列项。
4. **分辨率下限**:素材分辨率 ≥ 画幅 × 最大预期缩放(1080p 画幅 + 1.15 缓推 → 宽 ≥2208px;1.8× 放大 → ≥3456px)。低于下限的素材登记风险,放大会糊。
5. **技术准入探针(下载完成即测,不信任标称)**:运行 `probe_source.py` 实测最小边分辨率 / 时长 / 关键帧最大间隔——stock 平台的"HD/large"档常见 **640×360 放大假高清**;关键帧间隔 >5s 会让渲染 seek 冻结(探针会给出重编码命令,统一 `-g 30 -keyint_min 30` 重编码后归档)。不达标的素材进 `missing_materials` / 未完成清单或走升级链(换词→换库→AI 生成→才问用户),**不进渲染队列**。
6. **授权偏好**:优先免署名源(Pexels/Pixabay/Mixkit 类);要求署名的来源(CC BY 系)先向用户确认署名成本再下载,不默默接进清单。
7. 每项第三方素材记录来源网站、页面 URL、下载 URL、标题、作者、许可证、商用许可、署名要求、下载日期和风险。
8. **证据截图存档**:承载关键事实的来源页(数据、引用、授权条款页)逐一截图存 `assets/licenses/evidence/`——只存链接不留证据,源站改版后就无法自证。
9. 许可证不清楚时标记 blocked,不放进消费者目录。
10. 用 FFmpeg 标准化音乐、音效、Stock 视频和用户提供的需要处理的副本。
11. 更新 `assets/licenses/media_asset_manifest.json` 和 `assets/logs/ffmpeg_commands.md`。
12. 输出素材摘要和未解决风险,等待用户确认高风险或付费来源。

## CLI 示例

```bash
uv run --project "<合集根>" python "<合集根>/scripts/video-assets/media_cli.py" status
uv run --project "<合集根>" python "<合集根>/scripts/video-assets/media_cli.py" search "城市夜景" --type video
uv run --project "<合集根>" python "<合集根>/scripts/video-assets/media_cli.py" video "城市夜景" --duration 30 --output "<项目>/assets/incoming"
uv run --project "<合集根>" python "<合集根>/scripts/video-assets/media_cli.py" youtube "<URL>" --start 60 --end 90 --output "<项目>/assets/incoming"
# 技术准入探针(下载后必跑;不达标不进渲染队列)
uv run --project "<合集根>" python "<合集根>/scripts/video-assets/probe_source.py" \
  "<项目>/assets/incoming/clip1.mp4" "<项目>/assets/incoming/clip2.mp4" --min-side 1080
uv run --project "<合集根>" python "<合集根>/scripts/video-assets/normalize_asset.py" "<项目>/assets/incoming/source.mp4" \
  --project "<项目>" --type stock-video --asset-id ASSET-001 \
  --source-site Pexels --source-url "<具体页面 URL>" \
  --license "Pexels License" --commercial-use
```

## 失败模式与恢复

| 触发条件 | 一线修复 | 仍失败兜底 |
|---|---|---|
| 搜索无结果或结果全不相关 | 换中英双语关键词、放宽筛选条件重搜 | 列出替代来源路线(Stock→用户自录→Remotion 自制)让用户选 |
| 下载失败/超时 | 重试一次并换镜像或清晰度档位 | 记录到 `assets/logs/`,标记该请求 blocked,不阻塞其余条目 |
| 许可证页面无法打开或信息不全 | 该素材标记 `blocked`,不进消费者目录 | 🔴 换素材;不允许「平台一般免费」当许可证证明 |
| YouTube 片段已被删除或地区限制 | 告知用户并给出可替代的官方来源 | 不用其他渠道绕过访问限制 |
| 用户提供的素材格式异常(如 8DoF/HEVC) | `normalize_asset.py` 转码为标准规格 | 转码失败时保留原文件并在 manifest 标注风险 |

## 禁止

- 下载版权不明的电影、电视剧、付费内容、DRM 内容;
- 用 `yt-dlp` 绕过访问控制或网站条款;
- 把素材下载到 Skill 目录、工作区根目录或 Remotion 工程;
- 让 Remotion 直接读取 raw 下载;
- 将“平台一般免费”当作具体文件的许可证证明。

## 默认标准化

| 类型 | 交付标准 |
|---|---|
| 音乐 | WAV、48kHz、立体声、PCM 16-bit |
| 音效 | WAV、48kHz、立体声、PCM 16-bit,按需求裁剪 |
| Stock 视频 | MP4、H.264、`yuv420p`、30fps、1080p,B-roll 默认去音频 |
| 图片 | 原始高分辨率文件 + 用途和来源记录 |

Files in this skill

  • SKILL.md5.9 KB
  • test-prompts.json760 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…