--- name: cs-video-download description: 下载用户提供的抖音或其他在线视频链接,统一保存并校验媒体文件。用于“帮我下载视频”、Videdown 下载、视频链接归档;不自动扩展为转写、发布或视频制作。 --- # CS 视频下载 接到明确的视频下载请求直接执行,无需再次确认。默认保存到 `~/Downloads/Videdown`;用户指定目录时遵从用户。文件命名为 `标题-平台视频ID.mp4`,重复文件先验证再复用,不覆盖已有文件。 ## 获取媒体 1. 用户指定 Videdown 时先通过可用的原生 UI 工具操作 Videdown。解析完成才点击下载,检查真实保存文件,不把解析中或下载按钮当成完成。 2. Videdown 或 yt-dlp 返回抖音 403 / fresh cookies 时,不循环重试。用浏览器控制工具打开原链接,在可播放页面读取 DOM 中 `video.currentSrc`,同时记录标题、原始页面地址和视频 ID。只读取浏览器当前实际加载的媒体地址,不复用旧的临时地址。 3. 使用下方脚本下载读取到的 HTTP(S) 媒体地址。默认 Referer 是原视频页面。`blob:` 地址不能传给 curl,改用浏览器支持的媒体下载接口;若仍无法获取则报告具体阻碍。 4. 若浏览器要求登录,保留页面请用户完成登录;不绕过验证码、安全提示、付费或访问权限。 ```bash python3 /scripts/download_media.py --media-url '浏览器读取的媒体地址' --source-url '原始视频页面' --title '视频标题' --video-id '平台视频ID' ``` 依赖:Python 3.10+、curl、FFmpeg(含 ffprobe);缺少时报告具体依赖,不自动安装。将 `` 替换为当前 Skill 的真实路径。可用 `--output-dir` 指定其他目录,或用 `CS_VIDEO_DOWNLOAD_DIR` 设置默认归档位置。 脚本创建统一目录、下载到临时文件、检查音视频流、完整解码,通过后才生成最终文件和 `.source.json` 来源记录。下载失败不留下伪装成完成的 MP4。来源记录不保存临时签名 URL、Cookie 或凭据。 浏览器交互遵守当前工具文档,脚本仅负责下载已经获取的媒体地址。不要用脚本提取浏览器私有存储。 ## 交付 返回可点击的绝对路径、时长、分辨率、文件大小和验证结果。下载与转写分开:此 skill 的完成条件是媒体归档成功,后续内容任务按用户请求和适用限制处理。