---
name: "video-downloader"
description: "Download videos from Douyin, Kuaishou, Xiaohongshu, and Bilibili by sharing link. Invoke when user provides a share link from these platforms and asks to download/save the video locally."
---

# Video Downloader

下载抖音/快手/小红书/B站视频。基于 `yt-dlp` 引擎，无需手动找 cookie，支持从浏览器自动读取登录状态。

## Supported Platforms

- 抖音 (Douyin) — `v.douyin.com` / `www.douyin.com`
- 快手 (Kuaishou) — `v.kuaishou.com` / `www.kuaishou.com`
- 小红书 (Xiaohongshu) — `xhslink.com` / `www.xiaohongshu.com`
- 哔哩哔哩 (Bilibili) — `www.bilibili.com/video/BVxxxx` / `b23.tv`

## When to Invoke

当用户提供来自以上平台的分享链接，并表达下载/保存意图时调用（如"下载这个视频"、"帮我保存"、"存到本地"）。

## How to Use

脚本与本 `SKILL.md` 同目录。安装后 skill 目录一般为 `~/.claude/skills/video-downloader/`（Codex / OpenClaw 对应 `~/.codex/skills/`、`~/.openclaw/skills/`）。在 skill 目录下执行，或把 `downloader.py` 换成该目录的绝对路径：

```bash
python downloader.py <share-link> [-o <output-dir>] [--cookies-from-browser chrome|edge|firefox]
```

- `<share-link>`: 平台分享链接（短链接或完整链接均可，可包含分享文字，脚本会自动提取URL）
- `-o, --output`: 输出目录，默认 `./downloads`
- `--cookies-from-browser`: 从指定浏览器读取 cookie（需要浏览器已登录对应平台），可选值：`chrome`、`edge`、`firefox`、`brave`、`opera`、`safari`、`vivaldi`

### Examples

```bash
# 基本用法（公开视频可能直接下载）
python downloader.py "https://v.douyin.com/abc123/"

# 从 Chrome 读取 cookie（遇到反爬/需要登录时加这个参数）
python downloader.py "https://v.douyin.com/XC1j9sEtDQU/" --cookies-from-browser chrome

# B站视频，指定输出目录
python downloader.py "https://www.bilibili.com/video/BV1xx411x7xx" -o "D:\videos" --cookies-from-browser edge
```

## Dependencies

首次使用前安装：

```bash
pip install -r requirements.txt
```

仅依赖 `yt-dlp`。

## Cookie 说明

**不再需要手动查找 cookie！** 如果下载失败（遇到平台反爬限制），只需确保你的浏览器（Chrome/Edge/Firefox 等）已经登录了对应平台的网页版，然后在命令中加 `--cookies-from-browser chrome`（或你的浏览器名）即可，yt-dlp 会自动从浏览器读取登录 cookie。

注意事项：
- 使用 `--cookies-from-browser` 时浏览器应已关闭（避免数据库锁定）
- 大部分公开视频不需要 cookie；需要登录的视频（年龄限制、私密、仅粉丝可见等）必须使用 cookie
