OpenClaw/clawhub-security-signals huggingface dataset:
Skill: mars720816/openclaw-blender-mcp-skill (version 0.1.0)

--- name: blender-mcp description: Integrate Blender MCP (Model Context Protocol) allowing OpenClaw to control Blender for 3D modeling, scene creation, and manipulation. Use when you need to interact with Blender, create 3D models, modify scenes, or generate 3D content. --- # Blender MCP Skill This skill enables OpenClaw to control Blender through the BlenderMCP Model Context Protocol integration. ## Prerequisites 1. Blender installed and running 2. BlenderMCP addon installed in Blender 3. blender-mcp Python package installed via uvx ## Usage ### Starting the Connection 1. **In Blender**: - Open Blender - Press `N` to show the 3D View sidebar - Go to "BlenderMCP" tab - Click "Connect to Claude" to start the socket server on localhost:9876 2. **In OpenClaw**: - Use the `start-server` script to start the MCP server - Or run `uvx blender-mcp` manually ### Available Commands The following tools are available through BlenderMCP: - `get_scene_info` - Get detailed information about the current Blender scene - `create_object` - Create a new 3D object (cube, sphere, cylinder, etc.) - `delete_object` - Delete an existing object - `modify_object` - Modify object properties (location, rotation, scale, etc.) - `set_material` - Create/assign a material to an object - `execute_code` - Execute arbitrary Python code in Blender - `get_screenshot` - Get a screenshot of the current viewport - `download_asset_polyhaven` - Download assets from Poly Haven - `search_sketchfab` - Search and download models from Sketchfab - `generate_model_3d` - Generate 3D models using Hyper3D Rodin AI ### Example Prompts - "Create a low poly dungeon scene with a dragon guarding gold" - "Make a red metallic sphere on top of a cube" - "Create a studio lighting setup and point the camera at the scene" - "Get a screenshot of the current scene" - "Download a grass texture from Poly Haven and apply it to the ground" ## Scripts - `scripts/start-server.sh` - Start the Blender MCP server - `scripts/test-connection.py` - Test connection to Blender ## Configuration By default, connects to: - Host: `localhost` - Port: `9876` To change, set environment variables: ```bash export BLENDER_HOST=your-host export BLENDER_PORT=your-port ``` ## Troubleshooting 1. **Connection refused**: Make sure Blender is running and the addon is connected 2. **Timeout errors**: Break large requests into smaller steps 3. **Unknown command**: Restart both Blender addon and MCP server


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: mjquinlan2000/zoom-phone-mcp (version 1.0.0)

--- name: zoom-phone-mcp description: MCP server for the Zoom Phone API. Exposes Zoom Phone's REST API as read-only MCP tools. metadata: { "openclaw": { "requires": { "bins": ["mcporter", "zoom-phone-mcp"], "env": ["NODE_MCP_SECRET_KEY"] } } } --- # Zoom Phone MCP Server Read-only MCP server for the Zoom Phone API. ## Usage Use mcporter to interact with this server via stdio: - **List available tools:** `mcporter list --stdio zoom-phone-mcp` - **Call a tool:** `mcporter call --stdio zoom-phone-mcp <tool_name> [args]` ## Links - **npm:** https://www.npmjs.com/package/@mjquinlan2000/zoom-phone-mcp


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: paudyyin/cn-daily-news-v2 (version 2.0.0)

--- name: daily-news version: 2.0.0 description: 每日新闻自动采集与报告生成。使用 web_search (freshness=oneDay) 替代旧版 Bing/Tavily 方案，确保新闻均为24小时内真实最新。 metadata: author: OpenClaw category: automation triggers: - 每日新闻 - 新闻日报 - yesterday news - daily news --- # 每日新闻自动采集 v2.0 ## 架构变更 ### v1.0 旧方案（已废弃） | 组件 | 方式 | 致命问题 | |------|------|---------| | `daily_news_query.py` | Bing 爬虫 (requests+bs4) | ❌ 无法可靠过滤旧闻，混入2023/2024年旧内容 | | `daily_news_query.py` | Bing 爬虫 | ❌ 大量网页噪声（"网站地图"、"无障碍链接"等） | | `daily_news_tavily.py` | Tavily API | ❌ 完全无时间过滤，可能返回任何时间的内容 | ### v2.0 新方案 | 组件 | 方式 | 优势 | |------|------|------| | Agent + `web_search` | OpenClaw 内置工具 | ✅ `freshness=oneDay` 严格24小时过滤 | | | | ✅ 权威媒体源（新华社/央视/澎湃等） | | | | ✅ 零外部依赖，无需额外配置 | --- ## 触发方式 1. **用户手动触发**: 用户说"每日新闻"、"新闻日报"、"daily news"等 2. **定时触发**: OpenClaw cron 任务，每日工作日 08:30 自动执行（任务名：`每日新闻日报 (v2.0)`） --- ## 执行流程 ### 步骤 1: 确定日期 ```python from datetime import datetime, timedelta yesterday = datetime.now() - timedelta(days=1) yesterday_str = yesterday.strftime('%Y年%m月%d日') yesterday_short = f"{yesterday.month}月{yesterday.day}日" ``` ### 步骤 2: 7轮 web_search 查询 对以下每个类别，**依次**调用 `web_search`，每轮必须带 `freshness: "oneDay"`： | # | Emoji | 类别 | 搜索关键词 | |---|-------|------|-----------| | 1 | 🌍 | 全球政治军事 | `{yesterday_short} 全球 政治 军事 国际 冲突 外交` | | 2 | 🇨🇳 | 中国政治军事 | `{yesterday_short} 中国 政治 军事 政策 官方` | | 3 | 💰 | 全球财经 | `{yesterday_short} 全球 财经 股市 美股 原油 黄金 汇率` | | 4 | 📈 | 中国财经 | `{yesterday_short} 中国 A股 宏观经济 政策 LPR` | | 5 | 🤖 | AI/人工智能 | `{yesterday_short} AI 人工智能 大模型 技术突破` | | 6 | 🔭 | 科技领域 | `{yesterday_short} 科技 半导体 新能源 航天 机器人` | | 7 | 📱 | 消费电子家电 | `{yesterday_short} 消费电子 家电 手机 电视` | 调用示例： ``` web_search: query: "5月20日 全球 政治 军事 国际 冲突 外交" freshness: "oneDay" ← 必须！严格24小时过滤 count: 10 channel: "bocha" ``` ### 步骤 3: 内容筛选与清洗 **排除规则：** - ❌ 排除娱乐/体育/游戏/电竞内容 - ❌ 排除往年旧闻（描述中出现 2025年、2024年等往年日期） - ❌ 排除网页噪声（"网站地图"、"无障碍"、"首页"等） **保留规则：** - ✅ 优先权威媒体源：新华社、央视新闻、澎湃新闻、上海证券报、财新网、中国证券报等 - ✅ 保留包含具体数据、人物、事件的条目 - ✅ 跨类别去重 ### 步骤 4: 生成报告 按固定模板生成 Markdown 报告： ```markdown # 📰 {yesterday_str} 全球 & 中国核心新闻汇总 📅 生成时间：{当前时间} 🔍 数据源：Web Search（freshness=oneDay 严格24小时过滤） ✅ 已过滤旧闻/娱乐/体育/游戏内容 --- ## 🌍 一、全球昨日政治军事新闻 - [新闻条目] ... ## 🇨🇳 二、中国昨日政治军事新闻 ... ## 💰 三、全球昨日财经股市新闻 （含美股收盘、大宗商品、汇率数据） ... ## 📈 四、中国昨日财经股市新闻 （含A股收盘、LPR、重要政策） ... ## 🤖 五、全球昨日人工智能领域新闻 ... ## 🔭 六、全球昨日科技领域新闻 ... ## 📱 七、消费电子家电行业新闻 ... --- ## 📌 今日一句话总结 > [一句话概括当日最重要新闻] ``` ### 步骤 5: 保存 报告保存到: `memory/daily_news_{YYYY-MM-DD}.md` --- ## 相关文件 | 文件 | 状态 | 说明 | |------|------|------| | `skills/daily-news/SKILL.md` | ✅ 当前 | 本技能文档 | | `daily_news_query.py` | ⚠️ 已废弃 | 旧版 Bing 爬虫方案 | | `daily_news_tavily.py` | ⚠️ 已废弃 | 旧版 Tavily API 方案 | | `memory/daily_news_*.md` | ✅ 历史存档 | 每日报告存档 | --- ## 版本历史 | 版本 | 日期 | 变更 | |------|------|------| | v2.0 | 2026-05-21 | 改用 web_search(freshness=oneDay)，废弃 Bing/Tavily 方案 | | v1.0 | 2026-04-21 | 初始版本：Bing 爬虫 + Tavily API 双方案 |


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: goog/cook (version 1.0.0)

--- name: cookbook description: > Recipe search skill. Searches a curated recipe database scraped from 101 Cookbooks (vegetarian) and Omnivore's Cookbook (Chinese how-tos & recipes). Use when the user asks to find a recipe, search for dishes by ingredient or cuisine, or browse cooking techniques and how-to guides. --- # Cookbook Skill — Recipe Search ## Overview This skill searches a Markdown recipe database (`recipes.md`) built from two sources: | Source | Focus | |--------|-------| | [101 Cookbooks](https://www.101cookbooks.com/vegetarian_recipes) | Vegetarian recipes (soups, salads, pasta, mains, burgers, snacks) | | [Omnivore's Cookbook](https://omnivorescookbook.com/category/how-tos/) | Chinese how-to guides, stir-fries, noodles, rice, soups, sauces | ## Database File Location (relative to this skill): ``` recipes.md ``` ## Search Procedure ### Step 1 — Read the Database Read `recipes.md` with the `read` tool: ``` file_path: .openclaw\workspace\skills\cookbook\recipes.md ``` ### Step 2 — Parse & Match Search the loaded content for recipes matching the user's query. Match against: - **Title** — exact and partial keyword matches - **Brief** — ingredient and technique mentions - **Source** — filter to 101cookbooks or omnivorescookbook if user specifies - **Category** — soups, salads, pasta, mains, burgers, stir-fry, noodles, rice, how-tos, sauces, etc. ### Step 3 — Present Results Return matched recipes as a formatted list: ``` ### [Recipe Title](URL) > Brief description of the recipe. ``` If more than 8 matches: show the top 8 most relevant, offer to show more. If no matches: say so clearly and suggest related categories. ## Example Queries & Behavior | User says | Action | |-----------|--------| | "find a chickpea recipe" | Search briefs & titles for "chickpea" | | "vegetarian soup ideas" | Filter 101cookbooks section, category Soups | | "how do I make dumplings" | Match how-to guides for "dumpling" | | "stir fry vegetables" | Return stir-fry category from Omnivore's | | "quick 20-minute dinner" | Match briefs mentioning "quick", "20-minute", "fast" | | "noodle recipes" | Return all noodle & pasta entries | | "Chinese cooking basics" | Return all Omnivore's how-to guides | ## Formatting Rules - Always include clickable URL links - Show source site in parentheses: *(101 Cookbooks)* or *(Omnivore's Cookbook)* - Group results by category when multiple categories match - For how-to guides, label them with 📖 Guide badge - For recipes, use 🍽️ Recipe badge ## Updating the Database To add new recipes, append entries to `recipes.md` following the existing table format: ```markdown | Title | Brief description of the recipe. | https://url-to-recipe | ``` To add a new source section, create a new `## Source:` heading with category subsections.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: jackleeio/scan-to-skill (version 0.2.2)

--- name: scan-to-skill description: QR-based skill installer for ClawHub. Decodes QR images (Telegram uploads, screenshots, camera captures), extracts a valid skill slug or install command, and installs automatically via ClawHub CLI. Use for "scan to install" flows, especially when users send a QR image and want immediate one-step skill installation with result feedback. --- # Scan to Skill Install skills from QR codes in one flow: decode -> parse slug -> install -> verify. ## Trigger When a user sends an image and asks to install from QR: 1. Detect image attachment in the current message. 2. Run `scripts/install_from_qr.py <image>` (dry run by default). 3. Show the decoded text and parsed slug to the user. 4. **Prompt the user**: "Decoded skill: `<slug>`. Do you want me to install it?" 5. If the user confirms, run `scripts/install_from_qr.py <image> --confirm` to execute the install. 6. Show the install result and suggest next steps. ## Workflow 1. Get QR input image - Use uploaded image, screenshot, or camera snapshot. 2. Decode QR content - Prefer `scripts/install_from_qr.py --decode-only <image>`. 3. Parse install target - Accept: - direct slug (`skill-feed`) - ClawHub URL (`https://clawhub.ai/<owner>/<slug>` or `https://clawhub.ai/<slug>`) - install command text (`clawhub install <slug>`) 4. Install with ClawHub CLI - Run install command generated by script. 5. Verify installation - Check with `clawhub list`. ## Commands - Decode only (no install attempt): - `python3 scripts/install_from_qr.py --decode-only <image_path>` - Dry run (decode + show install command, but do not install): - `python3 scripts/install_from_qr.py <image_path>` - Install after user confirms: - `python3 scripts/install_from_qr.py <image_path> --confirm` - Install to custom dir: - `python3 scripts/install_from_qr.py <image_path> --confirm --dir skills` ## Safety - **The script defaults to dry run.** Install only executes when `--confirm` is explicitly passed. - The agent must never pass `--confirm` without the user's explicit approval. - Only accept URLs from verified ClawHub domains (`clawhub.ai`, `clawhub.com` and their `www.` variants). - URLs from non-ClawHub domains are rejected by the script (exit code 4). - Plain slugs and `clawhub install` commands are accepted as trusted sources. - For any slug the user hasn't seen before, recommend checking the skill page on ClawHub before installing. ## Output format - Decoded QR: `<raw_text>` - Parsed slug: `<slug>` - Install command: `<command>` - Result: success/failure + reason - Next step: open skill page or run quick test ## References - Parsing rules and examples: `references/slug-parsing.md`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: wangm-a3/miaoji-video-script (version 1.0.4)

# 秒技·爆款视频脚本 > 1张图 + 1个对标 → 秒级生成带货视频脚本 ## 🎯 核心定位 **不是视频生成器，而是脚本生成器。** 本技能专注于**拆解热门视频结构 + 生成适配产品的视频脚本方案**，帮助亚马逊卖家、跨境电商从业者快速产出高转化率的带货视频脚本。 --- ## 📋 技能能力 ### 1. 爆款结构拆解器 输入任意爆款视频描述，智能拆解： - 节奏段落（开场/发展/高潮/结尾） - 运镜方式（特写/全景/推进/平移） - 脚本结构（钩子+痛点+方案+证明+号召） - 情绪曲线（0-3秒刺激→3-15秒共鸣→15-30秒转化） ### 2. 产品适配脚本生成 基于爆款结构 + 你的产品信息，生成完整视频脚本： | 要素 | 说明 | |------|------| | 分镜编号 | 镜头序号 | | 时长 | 建议时长（秒） | | 画面描述 | 运镜、场景、道具 | | 旁白文案 | 主播话术/口播内容 | | BGM建议 | 背景音乐风格 | ### 3. 平台差异模板 | 平台 | 时长 | 节奏特点 | |------|------|----------| | TikTok | 15-60s | 快节奏、强钩子、病毒式传播 | | YouTube Shorts | 60s | 略深度、可添加字幕 | | Instagram Reels | 30s | 精致感、生活方式导向 | ### 4. 前3秒钩子库（20种） | 类型 | 模板示例 | |------|----------| | 痛点型 | "还在为XX问题头疼？90%的人都做错了..." | | 惊喜型 | "你绝对想不到XX居然还能这样用！" | | 对比型 | "普通款 VS 我们的 = 省下XX元/时间" | | 故事型 | "上周有个客户找到我，说..." | | 数字型 | "3个技巧，让你XX效率提升200%" | | 悬念型 | "这个功能，80%的买家都不知道..." | --- ## 🚀 使用方式 ### 输入格式 ``` 产品描述：[产品名称+核心卖点+目标人群] 爆款参考：[爆款视频描述/风格偏好] 目标平台：[TikTok / YouTube Shorts / Instagram Reels] 视频时长：[X秒] ``` ### 示例输入 ``` 产品描述：便携式咖啡机，小巧可加热，适合办公室人群 爆款参考：类似"早晨5分钟搞定咖啡"的晨间routine风格 目标平台：TikTok 视频时长：30秒 ``` ### 输出内容 1. **爆款结构分析**：拆解参考视频的脚本骨架 2. **完整分镜脚本**：含5-8个镜头，每个镜头有画面+文案 3. **BGM建议**：推荐2-3个风格方向 4. **注意事项**：平台合规、字幕建议等 --- ## ⚠️ 重要说明 1. **本技能生成的是视频脚本和分镜方案**，不包含视频生成能力 2. 生成的脚本需配合视频拍摄或剪辑工具使用 3. 建议根据实际产品调整脚本内容 4. 平台政策可能随时更新，请以官方最新规范为准 --- ## 💡 最佳实践 1. **参考爆款越多，脚本越精准** - 可提供2-3个对标视频 2. **产品卖点要具体** - "好用"太抽象，"3秒速热"更具体 3. **首帧决定生死** - 重点打磨前3秒钩子 4. **CTA要明确** - 结尾必须有清晰行动号召 --- *技能版本：1.0.0 | 最后更新：2024* ## 交付标准 优秀的输出应该让你一眼看到： - 前3秒有明确的钩子，能抓住观众注意力 - 时长设置匹配目标平台的最佳时长 - 包含BGM风格建议或参考音乐类型 - 每个镜头有清晰的视觉描述和运镜建议 - 结尾有明确的CTA（行动号召） 如果输出缺少以上任何一项，建议补充后再交付。 ## 不适用场景 本技能不适用于以下情况： - 需要实际生成视频（本技能只生成脚本，不生成视频） - 纯图片设计（需使用图片设计工具） - 长篇内容创作（超过60秒的视频脚本建议拆分为系列内容） ## 安全边界声明 本技能为纯脚本创作工具，所有脚本内容由用户自主决定如何使用。本技能不生成任何视频文件，不连接任何视频平台接口，不存储任何媒体内容，不自动发布或同步视频。 --- ## 相关技能推荐 - **miaoji-scene-studio**：视频脚本可转化为场景图提示词 - **miaoji-bid-guard**：广告脚本可直接用于视频广告投放 - **miaoji-asin-clinic**：一站式体检，定位内容问题 --- ## Pro升级推荐 **想要完整的视频内容矩阵？** - **miaoji-video-script-pro**：Pro升级版，包含多时长规格/平台专属Hook/A/B测试脚本/缩略图文案等高级功能


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal:  | SkillSpector:  ()
Skill: zhoulincom/simulated-upload-helper (version 0.1.1)

name: simulated-upload-helper description: 当用户说“模拟上传”时，直接触发已有 skill 的发布流程，不创建新 skill。 version: 0.1.1 # Simulated Upload Helper ## 用途 这个 skill 用于快速触发本地 skills 的上传/发布流程，只调用发布脚本，不创建任何新 skill。 ## 触发词 - 模拟上传 - 上传 skill - 发布 skills - 一键发布 ## 执行步骤 1. 判断用户是否指定了 skill 名： - 指定 skill 名：执行单个发布。 - 未指定 skill 名：执行按变更批量发布。 2. 调用仓库中的发布脚本： - 批量模式：`./publish-skills.sh --root ".cursor/skills"` - 单个模式：`./publish-skills.sh --root ".cursor/skills" --skill "<skill目录名>"` 3. 输出发布结果；若失败，返回错误信息并给出排查建议。 ## 约束 - 严禁创建新的 skill 目录或 `SKILL.md` 文件。 - 严禁修改用户未要求变更的 skill 内容。 - 所有路径带空格时必须使用双引号。 - 上传前确认环境变量： - `CLAWHUB_TOKEN`（可选，供无交互登录） - `CLAWHUB_REGISTRY`（可选，覆盖默认 registry） - 若未设置 `CLAWHUB_TOKEN`，需提前执行 `clawhub login`。 ## 示例 用户输入：`模拟上传` 期望行为： 1. 直接执行发布命令（单个或批量）。 2. 不创建任何测试 skill。 3. 返回成功或失败原因。


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: ybl2020/snarky-expense-butler (version 1.0.0)

--- name: snarky-expense-butler description: "毒舌记账管家，支持记账、查询、预算提醒、毒舌消费分析、地域统计、趋势图。当用户提到记账、消费、花销、支出、记一笔、消费分析、预算、记个账时触发。NOT for: 股票/投资分析、记账软件推荐。" metadata: { "openclaw": { "emoji": "💰" } } --- # 毒舌记账管家 (Snarky Expense Butler) 纯本地 JSON 存储的个人消费记录系统，无外部依赖，无需 API Key。 ## 数据路径 - 数据文件：`./expense_records.json`，可通过 `EXPENSE_DATA_FILE` 环境变量指定 - 趋势图输出：`./trends/`，可通过 `EXPENSE_TRENDS_DIR` 环境变量指定 - 首次使用自动创建数据文件 ## 命令 ```bash # 记账（自动记录时间戳 + 自动提取地点 + 文件锁防并发） python3 scripts/add_expense.py <分类> <金额> [备注] [--location 地点] # 查询 python3 scripts/expense_query.py today|week|month|stats|list # 报告（支持 crontab 定时推送） python3 scripts/expense_report.py daily|weekly|monthly|yearly # 预算检查（✅正常 ⚠️接近80% 🚨超支） python3 scripts/expense_budget.py today|week|month # 毒舌分析（调侃风格，非模板报告） python3 scripts/expense_analysis.py today|YYYY-MM-DD # 地域统计（按地点聚合，标注吞金兽🐷/省钱区💰） python3 scripts/expense_location.py summary|top|backfill # 趋势图（优先大模型出图，matplotlib 兜底） python3 scripts/expense_trends.py week|month|year ``` ## 分类 交通、餐饮、购物、娱乐、医疗、教育、其他 ## 配置 预算在数据文件 `settings.budget` 中配置，默认值：日 ¥50 / 周 ¥350 / 月 ¥1500。 ## 数据格式 每条 item 结构： ```json {"datetime": "2026-03-18 14:05", "category": "餐饮", "amount": 17.9, "note": "午餐", "location": "福田cocopark"} ``` location 可选：支持手动指定（`--location`），或从备注自动提取（括号内优先、地标词识别）。


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: biociao/matrix-mentions-patch (version 1.1.1)

--- name: matrix-mentions-patch description: Fix OpenClaw Matrix plugin mention detection bug. Use when OpenClaw doesn't respond to @mentions in Matrix group rooms despite correct configuration. The bug is that buildMentionRegexes() is called without agentId, causing mention patterns to not be built correctly. --- # Matrix Mentions Patch ## Problem OpenClaw Matrix plugin doesn't respond to @mentions in group rooms even when: - The room is configured with `requireMention: true` - The user correctly @mentions the bot (e.g., `@runwheezy:matrix.biochao.cc`) ## Root Cause In `/home/bot/.openclaw/extensions/matrix/src/matrix/monitor/index.ts`, the `buildMentionRegexes` function is called WITHOUT passing `agentId`: ```typescript // BUG: Missing agentId parameter const mentionRegexes = core.channel.mentions.buildMentionRegexes(cfg); ``` Without `agentId`, the function can't resolve agent-specific mention patterns from config, causing mentions to never be detected. ## Fix Edit `/home/bot/.openclaw/extensions/matrix/src/matrix/monitor/index.ts`: Find line ~298: ```typescript const mentionRegexes = core.channel.mentions.buildMentionRegexes(cfg); ``` Change to: ```typescript const mentionRegexes = core.channel.mentions.buildMentionRegexes(cfg, "main"); ``` Replace "main" with your actual agent ID if different. ## Apply 1. Make the edit above 2. Restart OpenClaw gateway: `openclaw gateway restart` The fix loads immediately - no rebuild needed since the extension is loaded dynamically.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: shuaixiaohao/douyin-video-transcript (version 1.0.0)

--- name: douyin-video description: "抖音无水印视频下载和文案提取工具. 从抖音分享链接获取无水印视频下载链接, 下载视频, 提取视频中的语音文案并自动保存到文件. 适用场景包括获取抖音视频信息, 下载无水印视频, 批量提取视频文案. 当用户需要处理抖音视频链接或提取视频内容时触发." --- # 抖音无水印视频下载和文案提取 从抖音分享链接获取无水印视频下载链接, 下载视频, 并使用语音识别提取视频中的文案, 自动保存到文件. ## 功能概述 - **获取下载链接**: 从抖音分享链接解析出无水印视频的直接下载地址 (无需 API 密钥) - **下载视频**: 将无水印视频下载到本地指定目录 - **提取文案**: 通过语音识别从视频中提取文字内容 (需要硅基流动 API 密钥) - **自动保存**: 每个视频的文案自动保存到独立文件夹 (视频ID为文件夹名) ## 环境要求 ### 依赖安装 ```bash pip install requests ffmpeg-python ``` ### 系统要求 - FFmpeg 必须安装在系统中 (用于音视频处理) - macOS: `brew install ffmpeg` - Ubuntu: `apt install ffmpeg` ### API 密钥配置 (仅文案提取需要) 文案提取功能使用硅基流动 API, 需要设置环境变量: ```bash export [REDACTED_SECRET]" ``` 获取 API 密钥: https://cloud.siliconflow.cn/ ## 使用方法 ### 方法一: 使用脚本 (推荐) ```bash # 获取视频信息和下载链接 (无需 API 密钥) python douyin_downloader.py --link "抖音分享链接" --action info # 下载视频到指定目录 python douyin_downloader.py --link "抖音分享链接" --action download --output ./videos # 提取视频文案并保存到文件 (需要 API_KEY 环境变量) python douyin_downloader.py --link "抖音分享链接" --action extract --output ./output # 提取文案并同时保存视频 python douyin_downloader.py --link "抖音分享链接" --action extract --output ./output --save-video # 安静模式 (减少输出) python douyin_downloader.py --link "抖音分享链接" --action extract --output ./output --quiet ``` ### 输出目录结构 提取文案后, 每个视频会保存到独立文件夹: ``` output/ ├── 7600361826030865707/ # 视频ID为文件夹名 │ └── transcript.md # Markdown 格式文案文件 ├── 7581044356631612699/ │ ├── transcript.md │ └── 7581044356631612699.mp4 # 使用 --save-video 时保存 └── ... ``` ### Markdown 文案格式 ```markdown # 视频标题 | 属性 | 值 | |------|-----| | 视频ID | `7600361826030865707` | | 提取时间 | 2026-01-30 14:19:00 | | 下载链接 | [点击下载](url) | --- ## 文案内容 (语音识别的文字内容) ``` ### 方法二: 在 Python 代码中调用 ```python from douyin_downloader import get_video_info, download_video, extract_text # 获取视频信息 info = get_video_info("抖音分享链接") print(f"视频ID: {info['video_id']}") print(f"标题: {info['title']}") print(f"下载链接: {info['url']}") # 下载视频 video_path = download_video("抖音分享链接", output_dir="./videos") # 提取文案并保存到文件 result = extract_text("抖音分享链接", output_dir="./output") print(f"文案已保存到: {result['output_path']}") print(result['text']) ``` ## 工作流程 ### 获取视频信息 1. 解析抖音分享链接, 提取真实的视频 URL 2. 模拟移动端请求获取页面数据 3. 从页面 JSON 数据中提取无水印视频地址 4. 返回视频 ID, 标题和下载链接 ### 提取视频文案 1. 解析分享链接获取视频信息 2. 下载视频到临时目录 3. 使用 FFmpeg 从视频中提取音频 (MP3 格式) 4. 调用硅基流动 SenseVoice API 进行语音识别 5. 清理临时文件, 返回识别的文本 ## 常见问题 ### 无法解析链接 - 确保链接是有效的抖音分享链接 - 链接格式通常为 `https://v.douyin.com/xxxxx/` 或完整的抖音视频 URL ### 提取文案失败 - 检查 `API_KEY` 环境变量是否已设置 - 确保 API 密钥有效且有足够的配额 - 确保 FFmpeg 已正确安装 ### 下载速度慢 - 这取决于网络条件和视频大小 - 脚本会显示下载进度 ## 注意事项 - 本工具仅供学习和研究使用 - 使用时需遵守相关法律法规 - 请勿用于任何侵犯版权或违法的目的


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: koradji77/zodiac-tarot-master (version 1.0.0)

--- name: 星座塔罗占卜师 description: 星座配对 + 塔罗牌占卜占位版本。妮妮开发的占位版本，待2.0版本更新。 --- ## 占位说明 **这是妮妮开发的星座塔罗占卜师技能的占位版本。** 目前正在开发完整的星座塔罗占卜师2.0版本，包含： ### 星座配对功能 💕 - 12星座完整匹配度计算 - 基于星座元素（火土风水）分析 - 性格特点描述 - 配对评语和建议 ### 塔罗牌占卜功能 🎴 - 78张塔罗牌完整数据库 - 精美ASCII艺术图案 - 多种牌阵解读 - 深度心理学分析 ### 精美输出设计 🌸 - 可爱emoji装饰 - 温暖积极的语言风格 - 神秘娱乐性体验 - 女性友好的设计 ## 预期发布日期 **预计2026年3月30日发布2.0版本** ### 2.0版本功能亮点 1. **专业星座配对算法** 2. **78张完整塔罗牌库** 3. **多种牌阵解读模式** 4. **精美ASCII艺术设计** 5. **温暖用户体验设计** ## 当前占位状态 这个占位版本是为了防止其他开发者占用`zodiac-tarot-master`这个优秀名称。 我们正在积极开发2.0版本，完成后会直接更新覆盖这个占位版本。 --- **作者**: Agent2 Team **版本**: 1.0.0 (占位版) **预计更新**: 2026-03-30


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: kanikig/wechat-search-weread (version 1.0.1)

--- name: wechat-search-weread description: 微信公众号文章搜索skill。通过微信读书搜一搜获取最新文章，返回标题/公众号/时间/简介/直链。 category: social-media --- # 微信读书公众号文章搜索 > 📦 [GitHub](https://github.com/KANIKIG/wechat-search-weread) · [ClawHub](https://clawhub.ai/skills/wechat-search-weread) 通过微信读书搜一搜搜索微信公众号文章，返回完整数据（含 `mp.weixin.qq.com` 文章链接）。 ## 触发条件 用户需要搜索微信公众号文章，且 Exa 和搜狗方案不满足需求时使用。 > ⚠️ 微信读书官方 API (`/store/search` scope=2/4) 不支持公众号文章搜索（返回 `-2041`），详见 [api-limitations.md](references/api-limitations.md)。本浏览器方案是当前唯一可行途径。 ## 前提 - [agent-browser](https://github.com/vercel-labs/agent-browser) 已安装 - 微信读书已登录（首次需扫码） - WSL 用户需 CDP 端口转发（见 [wsl-cdp-browser.md](references/wsl-cdp-browser.md)），用 `agent-browser connect "http://<IP>:9223"` 建连后无需 `--cdp` flag ## 流程概要（5 步，缺一不可） | 步骤 | 要点 | |------|------| | **1. 启动浏览器** | 非WSL自动；WSL 参考 [wsl-cdp-browser.md](references/wsl-cdp-browser.md) | | **2. 登录** | QR 扫码。首次 eval 触发的 QR 大概率过期 → 必须关闭弹窗→重新触发→提取（单 terminal 调用一气呵成）。**登录成功后删除 `/tmp/weread_qr.png`** | | **3. 搜索+滚动** | 先备份 weread 标签页（保持登录态）→ goto 搜索页 → eval 滚动到「暂无更多内容」（封顶500条） | | **4. 提取URL** | execute_code 中 Python + websockets 连 page CDP → 批量点击 → 拦截 window.open → 写入 `/tmp/urls.json` | | **5. 清理** | 回到微信读书首页 → 关闭搜索页、mp 链接等所有多余标签页，只保留一个 weread 页面 | > 🔴 **全部详细命令、代码块、陷阱表见 [references/detailed-workflow.md](references/detailed-workflow.md)**。 ## 原理简述 - **搜索 API**: 页面 XHR → `weread.qq.com/web/wx_search_broker_proxy`（需 session cookie） - **URL 获取**: DOM 无 href，点击 `.search_list_item` → Vue → `window.open(mp.weixin.qq.com/...)` → eval 拦截 - **滚动加载**: 每次 scrollTo 触发 XHR 加载 ~45 篇新文章 - **去重**: 每篇文章有唯一 `data-id` ## 结果投递 搜索完成后，**直接以最终回复输出结果**，系统会自动投递到当前对话。 输出格式（Step 4.4）：搜到 X 篇 → 提取 Y 篇 → Z 篇有链接（成功率 N%）+ Top 10 列表，完整数据存 `/tmp/urls.json`。 ## References - `references/detailed-workflow.md` — **完整操作手册**：Step 1-5 全部命令、QR 流程、滚动策略、URL 提取代码 - `references/extraction-pattern.md` — Python 提取代码模板（execute_code 中直接执行） - `references/cdp-patterns.md` — CDP 交互模式参考 - `references/wsl-cdp-browser.md` — WSL 配置指南 - `references/api-limitations.md` — 微信读书 API 限制说明 - `references/llm-filter-pattern.md` — LLM 语义筛选模式：搜索噪音过滤（替代关键词黑名单） - `scripts/search_weread.py` — 备选/调试脚本（非主流程）


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal:  | SkillSpector: suspicious (CRITICAL)