video-downloader
短视频下载器 — 支持抖音、小红书、快手、视频号、B站、YouTube、Instagram 等主流平台无水印视频下载。
Install
npx skills add https://github.com/redfox-data/redfox-community/tree/main/skills/video-downloader
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install redfox-data-redfox-community@llmmart
git clone https://github.com/redfox-data/redfox-community.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole redfox-data/redfox-community collection as a plugin from our marketplace. Git is the plain clone.
README
短视频下载器 / video-downloader
简介
贴上短视频链接就能拿到无水印下载直链,抖音、小红书、快手、B站、YouTube、Instagram 等十多个平台都认,视频和图文都能下载,复制到浏览器就能保存。不用装插件、不用开会员,贴一个链接搞定一个视频,不会让你折腾半天还下载到带水印的版本。
核心价值
- 贴链即得不费劲:贴上分享链接就能拿到无水印下载直链,一个链接搞定,不用到处找工具。
- 视频干净无水印:返回的都是无水印视频,收藏、剪辑、二次创作都能直接拿去用。
- 十多个平台全覆盖:抖音、小红书、快手、视频号、B站、YouTube、Instagram、X、TikTok、Threads、Facebook、Vimeo,手机分享链接和电脑网页链接都能识别。
- 图文也能下载:除了视频,图文帖子里的所有图片也能一并下载保存,按序号自动命名。
- 贴链即下进度可见:配置 API Key 后贴上链接即可下载,进度条实时显示,大文件也不怕。
适用对象
- 🎬 创作者 / 剪辑师 — 快速保存各平台上的视频素材,用于二次创作
- 📚 内容收藏者 — 把喜欢的视频、图文备份到本地,不怕原帖被删
- 🔍 运营 / 研究者 — 下载竞品或热点内容,慢慢分析
功能特性
核心功能
- 视频解析:粘贴任意支持平台的视频链接,一键解析出无水印视频下载链接。
- 图文下载:支持图文类型内容,自动下载所有图片并按序号命名。
- 跨平台支持:覆盖抖音、小红书、快手、视频号、B站、YouTube、Instagram、X、TikTok、Threads、Facebook、Vimeo 等十多个主流平台。
- 链接自适应:手机分享短链、电脑网页链接等多种格式都能自动识别。
- 进度显示:下载过程有进度条和百分比,大文件也不怕。
支持平台
| 平台 | 链接格式示例 |
|---|---|
| 🎵 抖音 | https://v.douyin.com/xxxx |
| 📕 小红书 | http://xhslink.com/xxx |
| 📱 快手 | https://v.kuaishou.com/xxxx |
| 📺 视频号 | https://weixin.qq.com/sph/xxxx |
| 📺 B站 | https://b23.tv/xxxx |
| ▶️ YouTube | https://youtu.be/xxx |
https://www.instagram.com/p/xxx |
|
| 🐦 X (Twitter) | https://x.com/xxx/status/xxx |
| 🎵 TikTok | https://www.tiktok.com/@xxx/video/xxx |
| 🧵 Threads | https://www.threads.net/@xxx/post/xxx |
https://www.facebook.com/xxx/videos/xxx |
|
| 🎬 Vimeo | https://vimeo.com/xxxxx |
密钥获取与安全说明
- 本技能需要使用环境变量:
REDFOX_API_KEY。 REDFOX_API_KEY由 红狐 hub (https://redfox.hk) 提供。- 请前往 红狐 hub 注册账号,获取
REDFOX_API_KEY。 - 配置设备环境变量
REDFOX_API_KEY后使用本技能。 - 在提供密钥前,请先确认密钥来源、可用范围、有效期及是否支持重置/撤销。
- 禁止在代码、提示词、日志或输出文件中硬编码/明文暴露密钥。
使用指南
直接用自然语言描述需求,无需记忆命令。
常用说法速查
| 意图 | 示例话术 | 效果 |
|---|---|---|
| 下载抖音视频 | 「下载这个视频 https://v.douyin.com/xxxxxx/」 | 解析链接并下载无水印视频 |
| 保存小红书内容 | 「帮我把这条小红书存下来 http://xhslink.com/xxx」 | 解析后下载视频或图文 |
| 下载 YouTube 视频 | 「下载这条 YouTube 视频 https://youtu.be/xxx」 | 解析并下载视频文件 |
| 保存 Instagram 帖子 | 「把这个 IG 帖子存下来 https://www.instagram.com/p/xxx」 | 解析并下载视频或图文 |
输出示例
解析完成后,你将收到如下格式的结果:
✅ 下载完成!
📱 平台:抖音 📝 标题:视频标题 🎬 类型:Video
文件已保存到 ~/Downloads/QoderVideos/视频标题.mp4 (12.3 MB)
使用场景
| 场景 | 角色 | 示例问法 | 收益 |
|---|---|---|---|
| 素材收集 | 剪辑师 | 「下载这条抖音视频」 | 快速拿到无水印素材,直接进剪辑流程 |
| 内容备份 | 收藏者 | 「保存这个小红书帖子」 | 原帖删除也不怕,本地永久留存 |
| 热点分析 | 运营 | 「把这个爆款视频下下来」 | 离线反复观看,拆解爆款逻辑 |
| 跨平台存档 | 研究者 | 「下载这几个平台的视频」 | 十多个平台都能下载,一个工具搞定 |
Skill manifest
短视频下载器
通过 redfox.hk API 解析并下载主流短视频平台的无水印视频/图文。
能力概述
- 平台支持:抖音、小红书、快手、视频号、B站、YouTube、Instagram、X(Twitter)、TikTok、Threads、Facebook、Vimeo 等主流平台
- 内容类型:视频(mp4)、图文(jpg/png,暂不支持小红书图文)
- 输入方式:粘贴页面分享链接即可(每次仅限一个链接,不支持批量上传)
- 去水印:API 自动返回无水印直链
链接使用规范
支持的链接格式
本工具仅接受以下平台的页面分享链接,传入前会自动校验链接是否匹配支持的格式:
| 平台 | 链接格式示例 |
|---|---|
| 🎵 抖音 | https://v.douyin.com/xxxx / douyin.com/video/xxx |
| 📕 小红书 | http://xhslink.com/xxx / xhslink.cn/xxx |
| 📱 快手 | https://v.kuaishou.com/xxxx |
| 📺 视频号 | https://weixin.qq.com/sph/xxxx |
| 📺 B站 | https://b23.tv/xxxx / bilibili.com/video/xxx |
| ▶️ YouTube | https://youtu.be/xxx / youtube.com/watch?v=xxx |
https://www.instagram.com/p/xxx |
|
| 🐦 X (Twitter) | https://x.com/xxx/status/xxx |
| 🎵 TikTok | https://www.tiktok.com/@xxx/video/xxx |
| 🧵 Threads | https://www.threads.net/@xxx/post/xxx |
https://www.facebook.com/xxx/videos/xxx |
|
| 🎬 Vimeo | https://vimeo.com/xxxxx |
❌ 非上述格式的链接(如直接视频地址、未知平台链接等)会被拦截,不会调用 API,避免浪费。
使用方式
示例命令
下载抖音视频:
python3 "$SKILL_PATH/assets/downloader.py" "https://www.douyin.com/jingxuan?modal_id=7597329042169220398"
其他平台类似:
python3 "$SKILL_PATH/assets/downloader.py" "https://youtu.be/xxxxxx"
python3 "$SKILL_PATH/assets/downloader.py" "https://www.instagram.com/p/xxxxxx"
首次使用
使用前需配置 REDFOX_API_KEY(前往 redfox.hk 注册获取,格式 ak_xxxxxxxx)。
配置方式(任选其一):
| 方式 | 命令 |
|---|---|
| 环境变量(推荐) | export REDFOX_API_KEY=ak_你的密钥 |
| 命令行参数 | python3 "$SKILL_PATH/assets/downloader.py" "<链接>" --api-key ak_你的密钥 |
| 配置文件 | echo '{"api_key":"ak_你的密钥"}' > ~/.qoder/apis/redfox.json |
特色功能
| 功能 | 说明 |
|---|---|
| 无水印下载 | API 自动返回无水印直链,无需手动处理 |
| 图文下载 | 支持图文类型下载所有图片(暂不支持小红书图文) |
| 跨平台支持 | 覆盖抖音、小红书、快手、视频号、B站、YouTube、Instagram 等十多主流平台 |
| 链接自适应 | 支持短链、分享链、网页链接等多种格式 |
| 进度显示 | 下载过程实时显示进度条和百分比 |
| 多端兼容 | 支持手机端分享链接和 PC 端网页链接 |
常见使用场景
| 场景 | 示例链接 | 说明 |
|---|---|---|
| 抖音视频去水印保存 | https://v.douyin.com/xxxxxx/ |
下载无水印视频到本地 |
| 小红书视频下载 | http://xhslink.com/o/xxxxxx |
下载无水印视频 |
| 快手视频收藏 | https://v.kuaishou.com/xxxxxx |
保存喜欢的视频作品 |
| B站高画质下载 | https://b23.tv/xxxxxx |
下载最佳画质+音质视频 |
| YouTube 视频下载 | https://youtu.be/xxxxxx |
下载 YouTube 视频 |
| Instagram 视频/图文 | https://www.instagram.com/p/xxxxxx |
下载 Instagram 内容 |
| 内容二次创作 | 任意支持平台 | 下载素材用于剪辑创作 |
| 离线备份 | 任意支持平台 | 备份收藏的作品到本地 |
支持的作品链接格式
| 平台 | 链接格式 | 说明 |
|---|---|---|
| 抖音(Douyin) | https://v.douyin.com/xxxxxx/ |
手机分享链接 / PC 网页链接 |
| 小红书(Xiaohongshu) | http://xhslink.com/o/xxxxxx |
短链分享链接 |
| 快手(Kuaishou) | https://v.kuaishou.com/xxxxxx |
手机分享链接 |
| 视频号(WeChat Channels) | 微信内分享链接 | 需复制微信内的链接 |
| B站(Bilibili) | https://b23.tv/xxxxxx |
短链分享链接 |
| YouTube | https://youtu.be/xxxxxx |
短链 / 网页链接 |
https://www.instagram.com/p/xxxxxx |
帖子 / Reels 链接 | |
| X(Twitter) | https://x.com/xxx/status/xxx |
推文视频链接 |
| TikTok | https://www.tiktok.com/@xxx/video/xxx |
TikTok 视频链接 |
https://www.facebook.com/xxx/videos/xxx |
Facebook 视频链接 | |
| Threads | https://www.threads.net/@xxx/post/xxx |
Threads 链接 |
| Vimeo | https://vimeo.com/xxxxxx |
Vimeo 视频链接 |
常见问题
Q:如何获取自己的 API Key? A:前往 redfox.hk 注册即可获取 Token。
Q:下载的视频有水印吗? A:没有。API 返回的是无水印直链。
Q:支持图文下载吗? A:支持图文类型下载(暂不支持小红书图文)。图文内容会自动下载所有图片,并按序号命名。
Q:可以批量上传多个链接吗? A:不支持。每次只能输入一个链接,批量上传会导致解析失败。
Q:链接提示解析失败怎么办? A:确认链接是否完整、是否已过期。短链有时效性,建议重新复制分享链接。
了解更多
本工具基于 redfox.hk 的 parseWork/parse 接口构建。前往官网查看更多 API 能力和使用文档。
Files (redfox-community)
-
assets
-
downloader.py 14 KB
#!/usr/bin/env python3 """ Qoder Video Downloader - API 版本 使用 redfox.hk API 解析并下载无水印视频/图文 支持:抖音、小红书、快手、视频号、B站、YouTube、Instagram、X、TikTok、Threads、Facebook、Vimeo 等 Usage: python3 downloader.py <url> [--api-key <key>] [--output-dir <path>] """ import argparse import json import os import re import sys import warnings from pathlib import Path import requests # Suppress urllib3 OpenSSL warning on macOS warnings.filterwarnings("ignore", category=Warning) warnings.filterwarnings("ignore", message=".*NotOpenSSLWarning.*") API_URL = "https://redfox.hk/story/api/parseWork/parse" CONFIG_DIR = Path.home() / ".qoder" / "apis" CONFIG_FILE = CONFIG_DIR / "redfox.json" ENV_KEY = "REDFOX_API_KEY" PLATFORM_MAP = { "dy": "抖音", "xhs": "小红书", "xhsw": "小红书", "ks": "快手", "bili": "B站", } GREEN = "\033[92m" YELLOW = "\033[93m" RED = "\033[91m" CYAN = "\033[96m" BOLD = "\033[1m" RESET = "\033[0m" def info(msg): print(f"{GREEN}[✓]{RESET} {msg}") def warn(msg): print(f"{YELLOW}[!]{RESET} {msg}") def error(msg): print(f"{RED}[✗]{RESET} {msg}") def step(msg): print(f"{CYAN}[→]{RESET} {msg}") def get_api_key(cli_key=None): """Get API key with priority: CLI arg > env var > config file.""" if cli_key: return cli_key env_key = os.environ.get(ENV_KEY) if env_key: return env_key if CONFIG_FILE.exists(): try: data = json.loads(CONFIG_FILE.read_text()) key = data.get("api_key") if key: return key except (json.JSONDecodeError, OSError): pass return None def require_api_key(cli_key=None): """Resolve API key or exit with configuration guidance.""" api_key = get_api_key(cli_key=cli_key) if api_key: return api_key print(f"{RED}╔══════════════════════════════════════════════════╗{RESET}") print(f"{RED}║ 未配置 API Key,请通过以下方式之一配置: ║{RESET}") print(f"{RED}║ ║{RESET}") print(f"{RED}║ export REDFOX_API_KEY=ak_你的密钥 ║{RESET}") print(f"{RED}║ python3 downloader.py <url> --api-key ak_xxx ║{RESET}") print(RED + "║ echo '{\"api_key\":\"ak_你的密钥\"}' > ~/.qoder/apis/redfox.json ║" + RESET) print(f"{RED}║ ║{RESET}") print(f"{RED}║ 注册获取 Key: https://redfox.hk/settings/api-keys ║{RESET}") print(f"{RED}╚══════════════════════════════════════════════════╝{RESET}") sys.exit(1) def save_api_key(api_key): """Persist API key to config file.""" CONFIG_DIR.mkdir(parents=True, exist_ok=True) CONFIG_FILE.write_text(json.dumps({"api_key": api_key}, indent=2)) os.chmod(CONFIG_FILE, 0o600) # secure file permissions info(f"API Key saved to {CONFIG_FILE}") def sanitize_filename(name): """Remove or replace characters unsafe for filenames.""" if not name: return None name = re.sub(r'[\\/*?:"<>|]', "", name) name = name.strip().replace(" ", "_") name = name[:120] # limit length return name or None def download_file(session, url, filepath, desc="Downloading"): """Download a file with progress display.""" try: resp = session.get(url, stream=True, timeout=120) resp.raise_for_status() total = int(resp.headers.get("content-length", 0)) downloaded = 0 with open(filepath, "wb") as f: for chunk in resp.iter_content(chunk_size=8192): if chunk: f.write(chunk) downloaded += len(chunk) if total > 0: pct = int(downloaded * 100 / total) bar = "█" * (pct // 5) + "░" * (20 - pct // 5) print(f"\r {bar} {pct}%", end="", flush=True) print() return True except requests.exceptions.RequestException as e: error(f"Download failed: {e}") return False def is_valid_share_url(url): """Check if the URL is a valid sharing link from supported platforms. Returns (is_valid: bool, platform_name: str or None). """ # Domain -> Platform mapping for known sharing link patterns platform_patterns = [ # 抖音 Douyin (r'(https?://)?(www\.)?v\.douyin\.com/', '抖音'), (r'(https?://)?(www\.)?douyin\.com/(video|jingxuan|note)/', '抖音'), (r'(https?://)?(www\.)?douyin\.com\/user\/', '抖音'), # 小红书 Xiaohongshu (r'(https?://)?(www\.)?xhslink\.(com|cn)/', '小红书'), (r'(https?://)?(www\.)?xiaohongshu\.com/', '小红书'), (r'(https?://)?(www\.)?xhslink\.com/', '小红书'), # 快手 Kuaishou (r'(https?://)?(www\.)?v\.kuaishou\.com/', '快手'), (r'(https?://)?(www\.)?kuaishou\.com/', '快手'), # 视频号 WeChat Channels (r'(https?://)?weixin\.qq\.com/sph/', '视频号'), # B站 Bilibili (r'(https?://)?(www\.)?b23\.tv/', 'B站'), (r'(https?://)?(www\.)?bilibili\.com/video/', 'B站'), # YouTube (r'(https?://)?(www\.)?youtu\.be/', 'YouTube'), (r'(https?://)?(www\.)?youtube\.com/watch\?', 'YouTube'), (r'(https?://)?(www\.)?youtube\.com/shorts/', 'YouTube'), # Instagram (r'(https?://)?(www\.)?instagram\.com/p/', 'Instagram'), (r'(https?://)?(www\.)?instagram\.com/reel/', 'Instagram'), # X / Twitter (r'(https?://)?(www\.)?x\.com/\w+/status/', 'X (Twitter)'), (r'(https?://)?(www\.)?twitter\.com/\w+/status/', 'X (Twitter)'), # TikTok (r'(https?://)?(www\.)?tiktok\.com/@', 'TikTok'), # Threads (r'(https?://)?(www\.)?threads\.net/@', 'Threads'), # Facebook (r'(https?://)?(www\.)?facebook\.com/.*/videos/', 'Facebook'), (r'(https?://)?(www\.)?fb\.com/.*/videos/', 'Facebook'), # Vimeo (r'(https?://)?(www\.)?vimeo\.com/\d+', 'Vimeo'), ] for pattern, name in platform_patterns: if re.search(pattern, url, re.IGNORECASE): return True, name return False, None def show_url_guide(): """Show supported platform URL formats.""" print(f"\n{YELLOW}╔══════════════════════════════════════════════════════════╗{RESET}") print(f"{YELLOW}║ 链接格式不支持或无法识别,请检查是否传入了正确的分享链接 ║{RESET}") print(f"{YELLOW}╠══════════════════════════════════════════════════════════╣{RESET}") print(f"{YELLOW}║ 支持的链接格式: ║{RESET}") print(f"{YELLOW}║ 🎵 抖音 v.douyin.com/xxx ║{RESET}") print(f"{YELLOW}║ 📕 小红书 xhslink.com/xxx 或 xhslink.cn/xxx ║{RESET}") print(f"{YELLOW}║ 📱 快手 v.kuaishou.com/xxx ║{RESET}") print(f"{YELLOW}║ 📺 视频号 weixin.qq.com/sph/xxx ║{RESET}") print(f"{YELLOW}║ 📺 B站 b23.tv/xxx 或 bilibili.com/video/xxx ║{RESET}") print(f"{YELLOW}║ ▶️ YouTube youtu.be/xxx 或 youtube.com/watch?v=xxx ║{RESET}") print(f"{YELLOW}║ 📷 Instagram instagram.com/p/xxx ║{RESET}") print(f"{YELLOW}║ 🐦 X/Twitter x.com/xxx/status/xxx ║{RESET}") print(f"{YELLOW}║ 🎵 TikTok tiktok.com/@xxx/video/xxx ║{RESET}") print(f"{YELLOW}║ 🧵 Threads threads.net/@xxx/post/xxx ║{RESET}") print(f"{YELLOW}║ 📘 Facebook facebook.com/xxx/videos/xxx ║{RESET}") print(f"{YELLOW}║ 🎬 Vimeo vimeo.com/xxxxxx ║{RESET}") print(f"{YELLOW}╚══════════════════════════════════════════════════════════╝{RESET}") print() def main(): parser = argparse.ArgumentParser( description="短视频下载器 - 使用 redfox.hk API 下载无水印视频", formatter_class=argparse.RawDescriptionHelpFormatter, epilog=""" Examples: python3 downloader.py https://v.douyin.com/xxxxxx/ python3 downloader.py https://b23.tv/xxxxxx --api-key ak_xxxxx python3 downloader.py https://xhslink.com/o/xxxxxx -o ~/Videos 也可通过环境变量 REDFOX_API_KEY 配置密钥: export REDFOX_API_KEY=ak_xxxxx python3 downloader.py <url> """, ) parser.add_argument("url", help="视频/图文链接") parser.add_argument("--api-key", help="API Key(格式 ak_xxx,不传则读取环境变量或配置文件)") parser.add_argument("-o", "--output-dir", help="输出目录(默认 ~/Downloads/QoderVideos)") parser.add_argument( "--save-key", action="store_true", help="将本次传入的 API Key 保存到配置文件", ) args = parser.parse_args() # ── Banner ── banner = f"""{CYAN}{BOLD} ╔══════════════════════════════════════╗ ║ Qoder Video Downloader (API) ║ ║ 视频下载去水印工具 ║ ╚══════════════════════════════════════╝{RESET} """ print(banner) # ── API Key ── api_key = require_api_key(cli_key=args.api_key) # Save key if requested if args.save_key: if not args.api_key: warn("--save-key 需要同时传入 --api-key") sys.exit(1) save_api_key(api_key) # ── URL ── url = args.url.strip().strip('"').strip("'") if not url.startswith(("http://", "https://")): url = "https://" + url step(f"URL: {url}") # ── URL validation ── is_valid, platform = is_valid_share_url(url) if not is_valid: error("链接格式不支持,无法进行去水印下载") show_url_guide() sys.exit(1) info(f"检测到平台: {platform}") # ── Call API ── step("Calling redfox.hk API...") session = requests.Session() session.headers.update({ "Content-Type": "application/json", "X-API-KEY": api_key, }) try: resp = session.post(API_URL, json={"url": url, "source": "短视频下载器-SkillHub"}, timeout=30) result = resp.json() except requests.exceptions.RequestException as e: error(f"API request failed: {e}") sys.exit(1) except json.JSONDecodeError: error(f"API returned invalid JSON: {resp.text[:200]}") sys.exit(1) code = result.get("code") msg = result.get("msg", "") # 成功 code 以 2 开头(如 200、2000),其余为错误 if not str(code).startswith("2"): if code == 3106: error("缺少 API Key") elif code == 3107: error("API Key 无效或已失效,请检查是否正确") print(" 配置方式:export REDFOX_API_KEY=ak_你的密钥") print(" 获取 Key:https://redfox.hk/settings/api-keys?source=github") elif code == 400: error(f"请求参数错误: {msg}") else: error(f"API error (code {code}): {msg}") sys.exit(1) data = result.get("data") if not data: error("API returned empty data") sys.exit(1) aweme_type = data.get("awemeType") platform = data.get("platform", "unknown") title = data.get("title", "untitled") print() info(f"Platform: {PLATFORM_MAP.get(platform, platform)}") info(f"Title: {title[:80]}") # ── Output directory ── output_dir = args.output_dir or str(Path.home() / "Downloads" / "QoderVideos") os.makedirs(output_dir, exist_ok=True) # ── Download ── downloaded_files = [] if aweme_type == "video": video_url = data.get("videoUrl") if not video_url: error("API did not return video URL") sys.exit(1) safe_title = sanitize_filename(title) or f"video_{platform}" filename = f"{safe_title}.mp4" filepath = os.path.join(output_dir, filename) info(f"Type: Video") step("Downloading video...") if download_file(session, video_url, filepath): downloaded_files.append(filepath) elif aweme_type == "photo": image_urls = data.get("imageUrls") or [] if not image_urls: error("API did not return image URLs") sys.exit(1) safe_title = sanitize_filename(title) or f"photo_{platform}" total = len(image_urls) info(f"Type: Photo (共 {total} 张)") for i, img_url in enumerate(image_urls, 1): ext = os.path.splitext(img_url.split("?")[0])[1] or ".jpg" filename = f"{safe_title}_{i}{ext}" filepath = os.path.join(output_dir, filename) step(f"Downloading image {i}/{total}...") if download_file(session, img_url, filepath): downloaded_files.append(filepath) else: error(f"Unknown awemeType: {aweme_type}") sys.exit(1) # ── Result ── if downloaded_files: print(f"\n{GREEN}{BOLD}✓ Download complete!{RESET}") for f in downloaded_files: size_mb = os.path.getsize(f) / (1024 * 1024) print(f" {f} ({size_mb:.1f} MB)") sys.exit(0) else: print(f"\n{RED}{BOLD}✗ Download failed{RESET}") sys.exit(1) if __name__ == "__main__": main()
-
-
presentation.html 47.3 KB · in bundle
-
README.en.md 4.8 KB
# Video Downloader / video-downloader --- ## Introduction Paste a short video link and get watermark-free download URLs instantly — Douyin, Xiaohongshu, Kuaishou, Bilibili, YouTube, Instagram, and 12+ platforms all recognized. Videos and image posts can all be downloaded. Copy the link into your browser to save. No plugins, no subscriptions — one link does it all, and you won't end up with a watermarked version. **Core Value** - **Paste and go**: paste a share link and get watermark-free download URLs right away — one link does it all, no need to hunt for different tools. - **Clean, watermark-free**: every returned video is watermark-free, ready for collecting, editing, or remixing. - **12+ platforms covered**: Douyin, Xiaohongshu, Kuaishou, WeChat Channels, Bilibili, YouTube, Instagram, X, TikTok, Threads, Facebook, Vimeo — mobile share links and desktop web links all recognized. - **Image posts too**: beyond videos, all images in a post can be downloaded and saved together with sequential naming. - **Paste and download with progress**: after configuring your API Key, paste a link and download. Progress bar shown in real time, even for large files. **Who Is It For** - 🎬 **Creators / Editors** — quickly save video clips from any platform for secondary creation - 📚 **Content Collectors** — back up favorite videos and image posts locally, safe from deleted content - 🔍 **Operators / Researchers** — download competitor or trending content for analysis --- ## Features ### Core Features - **Video Parsing**: paste a video link from any supported platform to parse out watermark-free download URLs. - **Image Download**: supports image-type posts, automatically downloads all images with sequential naming. - **Cross-Platform Support**: covers Douyin, Xiaohongshu, Kuaishou, WeChat Channels, Bilibili, YouTube, Instagram, X, TikTok, Threads, Facebook, Vimeo, and more. - **Link Auto-Detection**: mobile share links, desktop web links, and various formats are all auto-recognized. - **Progress Display**: download progress bar and percentage shown in real time, even for large files. ### Supported Platforms | Platform | Link Format Example | |----------|-------------------| | 🎵 Douyin | `https://v.douyin.com/xxxx` | | 📕 Xiaohongshu | `http://xhslink.com/xxx` | | 📱 Kuaishou | `https://v.kuaishou.com/xxxx` | | 📺 WeChat Channels | `https://weixin.qq.com/sph/xxxx` | | 📺 Bilibili | `https://b23.tv/xxxx` | | ▶️ YouTube | `https://youtu.be/xxx` | | 📷 Instagram | `https://www.instagram.com/p/xxx` | | 🐦 X (Twitter) | `https://x.com/xxx/status/xxx` | | 🎵 TikTok | `https://www.tiktok.com/@xxx/video/xxx` | | 🧵 Threads | `https://www.threads.net/@xxx/post/xxx` | | 📘 Facebook | `https://www.facebook.com/xxx/videos/xxx` | | 🎬 Vimeo | `https://vimeo.com/xxxxx` | --- ## API Key & Security - This skill requires the environment variable: `REDFOX_API_KEY`. - `REDFOX_API_KEY` is provided by [RedFoxHub](https://redfox.hk/settings/api-keys?source=github) (`https://redfox.hk`). - Please register at [RedFoxHub](https://redfox.hk?source=github) to obtain your `REDFOX_API_KEY`. - Configure the `REDFOX_API_KEY` environment variable on your device before using this skill. - Before providing your key, confirm its source, scope, validity period, and whether it can be reset/revoked. - Never hardcode or expose the key in code, prompts, logs, or output files. --- ## Usage Guide Just describe what you want in natural language — no commands to memorize. ### Quick Reference | Intent | Example | Result | | ------ | ------- | ------ | | Download a Douyin video | "Download this video https://v.douyin.com/xxxxxx/" | Parses the link and downloads the watermark-free video | | Save a Xiaohongshu post | "Help me save this post http://xhslink.com/xxx" | Parses and downloads video or images | | Download a YouTube video | "Download this YouTube video https://youtu.be/xxx" | Parses and downloads the video file | | Save an Instagram post | "Save this IG post https://www.instagram.com/p/xxx" | Parses and downloads video or images | ### Output Example After parsing, you will receive a result like: > ✅ Download complete! > > 📱 Platform: Douyin > 📝 Title: Video title > 🎬 Type: Video > > File saved to ~/Downloads/QoderVideos/video_title.mp4 (12.3 MB) --- ## Use Cases | Scenario | Role | Example | Benefit | | -------- | ---- | ------- | ------- | | Material collection | Editor | "Download this Douyin video" | Get watermark-free footage, straight into your editing workflow | | Content backup | Collector | "Save this Xiaohongshu post" | Keep it locally forever, even if the original is deleted | | Trend analysis | Operator | "Download this viral video" | Watch offline repeatedly and break down what makes it viral | | Cross-platform archiving | Researcher | "Download videos from these platforms" | 12+ platforms supported, one tool does it all | -
README.md 4.6 KB
# 短视频下载器 / video-downloader --- ## 简介 贴上短视频链接就能拿到无水印下载直链,抖音、小红书、快手、B站、YouTube、Instagram 等十多个平台都认,视频和图文都能下载,复制到浏览器就能保存。不用装插件、不用开会员,贴一个链接搞定一个视频,不会让你折腾半天还下载到带水印的版本。 **核心价值** - **贴链即得不费劲**:贴上分享链接就能拿到无水印下载直链,一个链接搞定,不用到处找工具。 - **视频干净无水印**:返回的都是无水印视频,收藏、剪辑、二次创作都能直接拿去用。 - **十多个平台全覆盖**:抖音、小红书、快手、视频号、B站、YouTube、Instagram、X、TikTok、Threads、Facebook、Vimeo,手机分享链接和电脑网页链接都能识别。 - **图文也能下载**:除了视频,图文帖子里的所有图片也能一并下载保存,按序号自动命名。 - **贴链即下进度可见**:配置 API Key 后贴上链接即可下载,进度条实时显示,大文件也不怕。 **适用对象** - 🎬 **创作者 / 剪辑师** — 快速保存各平台上的视频素材,用于二次创作 - 📚 **内容收藏者** — 把喜欢的视频、图文备份到本地,不怕原帖被删 - 🔍 **运营 / 研究者** — 下载竞品或热点内容,慢慢分析 --- ## 功能特性 ### 核心功能 - **视频解析**:粘贴任意支持平台的视频链接,一键解析出无水印视频下载链接。 - **图文下载**:支持图文类型内容,自动下载所有图片并按序号命名。 - **跨平台支持**:覆盖抖音、小红书、快手、视频号、B站、YouTube、Instagram、X、TikTok、Threads、Facebook、Vimeo 等十多个主流平台。 - **链接自适应**:手机分享短链、电脑网页链接等多种格式都能自动识别。 - **进度显示**:下载过程有进度条和百分比,大文件也不怕。 ### 支持平台 | 平台 | 链接格式示例 | |------|-------------| | 🎵 抖音 | `https://v.douyin.com/xxxx` | | 📕 小红书 | `http://xhslink.com/xxx` | | 📱 快手 | `https://v.kuaishou.com/xxxx` | | 📺 视频号 | `https://weixin.qq.com/sph/xxxx` | | 📺 B站 | `https://b23.tv/xxxx` | | ▶️ YouTube | `https://youtu.be/xxx` | | 📷 Instagram | `https://www.instagram.com/p/xxx` | | 🐦 X (Twitter) | `https://x.com/xxx/status/xxx` | | 🎵 TikTok | `https://www.tiktok.com/@xxx/video/xxx` | | 🧵 Threads | `https://www.threads.net/@xxx/post/xxx` | | 📘 Facebook | `https://www.facebook.com/xxx/videos/xxx` | | 🎬 Vimeo | `https://vimeo.com/xxxxx` | --- ## 密钥获取与安全说明 - 本技能需要使用环境变量:`REDFOX_API_KEY`。 - `REDFOX_API_KEY` 由 [红狐 hub](https://redfox.hk/settings/api-keys?source=github) (`https://redfox.hk`) 提供。 - 请前往 [红狐 hub](https://redfox.hk?source=github) 注册账号,获取 `REDFOX_API_KEY`。 - 配置设备环境变量 `REDFOX_API_KEY` 后使用本技能。 - 在提供密钥前,请先确认密钥来源、可用范围、有效期及是否支持重置/撤销。 - 禁止在代码、提示词、日志或输出文件中硬编码/明文暴露密钥。 --- ## 使用指南 直接用自然语言描述需求,无需记忆命令。 ### 常用说法速查 | 意图 | 示例话术 | 效果 | | ---- | -------- | ---- | | 下载抖音视频 | 「下载这个视频 https://v.douyin.com/xxxxxx/」 | 解析链接并下载无水印视频 | | 保存小红书内容 | 「帮我把这条小红书存下来 http://xhslink.com/xxx」 | 解析后下载视频或图文 | | 下载 YouTube 视频 | 「下载这条 YouTube 视频 https://youtu.be/xxx」 | 解析并下载视频文件 | | 保存 Instagram 帖子 | 「把这个 IG 帖子存下来 https://www.instagram.com/p/xxx」 | 解析并下载视频或图文 | ### 输出示例 解析完成后,你将收到如下格式的结果: > ✅ 下载完成! > > 📱 平台:抖音 > 📝 标题:视频标题 > 🎬 类型:Video > > 文件已保存到 ~/Downloads/QoderVideos/视频标题.mp4 (12.3 MB) --- ## 使用场景 | 场景 | 角色 | 示例问法 | 收益 | | ---- | ---- | -------- | ---- | | 素材收集 | 剪辑师 | 「下载这条抖音视频」 | 快速拿到无水印素材,直接进剪辑流程 | | 内容备份 | 收藏者 | 「保存这个小红书帖子」 | 原帖删除也不怕,本地永久留存 | | 热点分析 | 运营 | 「把这个爆款视频下下来」 | 离线反复观看,拆解爆款逻辑 | | 跨平台存档 | 研究者 | 「下载这几个平台的视频」 | 十多个平台都能下载,一个工具搞定 | -
SKILL.md 5.8 KB
--- name: video-downloader description: 短视频下载器 — 支持抖音、小红书、快手、视频号、B站、YouTube、Instagram 等主流平台无水印视频下载。 --- # 短视频下载器 通过 [redfox.hk](https://redfox.hk/settings/api-keys?source=github) API 解析并下载主流短视频平台的无水印视频/图文。 --- ## 能力概述 - **平台支持**:抖音、小红书、快手、视频号、B站、YouTube、Instagram、X(Twitter)、TikTok、Threads、Facebook、Vimeo 等主流平台 - **内容类型**:视频(mp4)、图文(jpg/png,暂不支持小红书图文) - **输入方式**:粘贴**页面分享链接**即可(每次仅限一个链接,不支持批量上传) - **去水印**:API 自动返回无水印直链 --- ## 链接使用规范 ### 支持的链接格式 本工具仅接受以下平台的**页面分享链接**,传入前会自动校验链接是否匹配支持的格式: | 平台 | 链接格式示例 | |------|-------------| | 🎵 抖音 | `https://v.douyin.com/xxxx` / `douyin.com/video/xxx` | | 📕 小红书 | `http://xhslink.com/xxx` / `xhslink.cn/xxx` | | 📱 快手 | `https://v.kuaishou.com/xxxx` | | 📺 视频号 | `https://weixin.qq.com/sph/xxxx` | | 📺 B站 | `https://b23.tv/xxxx` / `bilibili.com/video/xxx` | | ▶️ YouTube | `https://youtu.be/xxx` / `youtube.com/watch?v=xxx` | | 📷 Instagram | `https://www.instagram.com/p/xxx` | | 🐦 X (Twitter) | `https://x.com/xxx/status/xxx` | | 🎵 TikTok | `https://www.tiktok.com/@xxx/video/xxx` | | 🧵 Threads | `https://www.threads.net/@xxx/post/xxx` | | 📘 Facebook | `https://www.facebook.com/xxx/videos/xxx` | | 🎬 Vimeo | `https://vimeo.com/xxxxx` | > ❌ 非上述格式的链接(如直接视频地址、未知平台链接等)会被拦截,不会调用 API,避免浪费。 --- ## 使用方式 ### 示例命令 下载抖音视频: ```bash python3 "$SKILL_PATH/assets/downloader.py" "https://www.douyin.com/jingxuan?modal_id=7597329042169220398" ``` 其他平台类似: ```bash python3 "$SKILL_PATH/assets/downloader.py" "https://youtu.be/xxxxxx" python3 "$SKILL_PATH/assets/downloader.py" "https://www.instagram.com/p/xxxxxx" ``` ### 首次使用 使用前需配置 `REDFOX_API_KEY`(前往 [redfox.hk](https://redfox.hk/settings/api-keys?source=github) 注册获取,格式 `ak_xxxxxxxx`)。 配置方式(任选其一): | 方式 | 命令 | |------|------| | **环境变量**(推荐) | `export REDFOX_API_KEY=ak_你的密钥` | | **命令行参数** | `python3 "$SKILL_PATH/assets/downloader.py" "<链接>" --api-key ak_你的密钥` | | **配置文件** | `echo '{"api_key":"ak_你的密钥"}' > ~/.qoder/apis/redfox.json` | --- ## 特色功能 | 功能 | 说明 | |------|------| | **无水印下载** | API 自动返回无水印直链,无需手动处理 | | **图文下载** | 支持图文类型下载所有图片(暂不支持小红书图文) | | **跨平台支持** | 覆盖抖音、小红书、快手、视频号、B站、YouTube、Instagram 等十多主流平台 | | **链接自适应** | 支持短链、分享链、网页链接等多种格式 | | **进度显示** | 下载过程实时显示进度条和百分比 | | **多端兼容** | 支持手机端分享链接和 PC 端网页链接 | --- ## 常见使用场景 | 场景 | 示例链接 | 说明 | |------|----------|------| | 抖音视频去水印保存 | `https://v.douyin.com/xxxxxx/` | 下载无水印视频到本地 | | 小红书视频下载 | `http://xhslink.com/o/xxxxxx` | 下载无水印视频 | | 快手视频收藏 | `https://v.kuaishou.com/xxxxxx` | 保存喜欢的视频作品 | | B站高画质下载 | `https://b23.tv/xxxxxx` | 下载最佳画质+音质视频 | | YouTube 视频下载 | `https://youtu.be/xxxxxx` | 下载 YouTube 视频 | | Instagram 视频/图文 | `https://www.instagram.com/p/xxxxxx` | 下载 Instagram 内容 | | 内容二次创作 | 任意支持平台 | 下载素材用于剪辑创作 | | 离线备份 | 任意支持平台 | 备份收藏的作品到本地 | ### 支持的作品链接格式 | 平台 | 链接格式 | 说明 | |------|----------|------| | 抖音(Douyin) | `https://v.douyin.com/xxxxxx/` | 手机分享链接 / PC 网页链接 | | 小红书(Xiaohongshu) | `http://xhslink.com/o/xxxxxx` | 短链分享链接 | | 快手(Kuaishou) | `https://v.kuaishou.com/xxxxxx` | 手机分享链接 | | 视频号(WeChat Channels) | 微信内分享链接 | 需复制微信内的链接 | | B站(Bilibili) | `https://b23.tv/xxxxxx` | 短链分享链接 | | YouTube | `https://youtu.be/xxxxxx` | 短链 / 网页链接 | | Instagram | `https://www.instagram.com/p/xxxxxx` | 帖子 / Reels 链接 | | X(Twitter) | `https://x.com/xxx/status/xxx` | 推文视频链接 | | TikTok | `https://www.tiktok.com/@xxx/video/xxx` | TikTok 视频链接 | | Facebook | `https://www.facebook.com/xxx/videos/xxx` | Facebook 视频链接 | | Threads | `https://www.threads.net/@xxx/post/xxx` | Threads 链接 | | Vimeo | `https://vimeo.com/xxxxxx` | Vimeo 视频链接 | --- ## 常见问题 **Q:如何获取自己的 API Key?** A:前往 [redfox.hk](https://redfox.hk/settings/api-keys?source=github) 注册即可获取 Token。 **Q:下载的视频有水印吗?** A:没有。API 返回的是无水印直链。 **Q:支持图文下载吗?** A:支持图文类型下载(暂不支持小红书图文)。图文内容会自动下载所有图片,并按序号命名。 **Q:可以批量上传多个链接吗?** A:不支持。每次只能输入一个链接,批量上传会导致解析失败。 **Q:链接提示解析失败怎么办?** A:确认链接是否完整、是否已过期。短链有时效性,建议重新复制分享链接。 --- ## 了解更多 本工具基于 [redfox.hk](https://redfox.hk/settings/api-keys?source=github) 的 `parseWork/parse` 接口构建。前往官网查看更多 API 能力和使用文档。 -
短视频下载器_Skill_审核演示.pdf 703.7 KB · in bundle
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.