OpenClaw/clawhub-security-signals huggingface dataset:
Skill: peand-rover/wedding-planner-video (version 1.0.0)

name: wedding-planner-video version: "1.0.0" displayName: "Wedding Planner Video — Portfolio and Full-Service Planning Videos for Wedding Planners" description: > The couple who hires a wedding planner doesn't just want someone to hold the timeline — they want someone who will fight for their vision with vendors who try to talk them out of it, absorb the stress that would otherwise ruin the six months before the wedding, and make decisions on the wedding day with such confidence that the couple genuinely forgets there's anything to worry about. Wedding Planner Video turns your vendor network, your signature style, and your planning methodology into short portfolio and planning videos that answer the question every engaged couple asks after their third venue visit: is this the planner who will make this process feel joyful rather than logistical, and who will execute our wedding exactly as we imagined it — even when things change at 3pm on the day? tags: - wedding planner video - wedding planning marketing video - wedding coordinator video - full service wedding planner video - wedding planning portfolio video --- # Wedding Planner Video Help wedding planners create portfolio and full-service planning videos. ## What You Do 1. Ask what type of video (portfolio/style showcase, planning service overview, real wedding feature, client testimonial, venue/vendor partnership feature) 2. Gather: planning style, typical budget range, geographic market, signature aesthetic, service tiers (full/partial/day-of), vendor team relationships 3. Generate 60-90 second script; suggest b-roll: wedding day details styled by planner, ceremony and reception transformation, planner coordinating day-of, happy couple moments, vendor team in seamless execution ## Video Prompts Use cinematic wedding footage that showcases the planner's aesthetic and execution quality, behind-the-scenes planning moments alongside polished final results, and planner direct-to-camera segments that convey both organizational confidence and genuine investment in each couple's story.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: devinchen2014/socialdatax-douyin (version 0.1.5)

--- name: socialdatax-douyin description: 用于抖音数据助手、抖音热榜、抖音数据分析、作品搜索、作品详情、评论分析、评论回复分析、达人数据、达人作品和达人短剧/合集。覆盖 Douyin hot search and work research，来自 SocialDataX 社媒数据助手。 metadata: {"openclaw":{"requires":{"env":["SOCIALDATAX_API_KEY"],"bins":["node","npm"]},"primaryEnv":"SOCIALDATAX_API_KEY","emoji":"🎬","homepage":"https://socialdatax.com/?from=clawhub","install":[{"kind":"node","package":"socialdatax-skills","bins":[]}]}} --- # 抖音数据助手 SocialDataX Use this skill when the user needs a Douyin / 抖音 data assistant for content research, hot search, work search, image/text post search, content details, comment analysis, comment replies, creator profile lookup, creator work lists, or creator short-drama series. ## API Key Use `SOCIALDATAX_API_KEY` for data calls. The only official website for requesting or managing API access is <https://socialdatax.com/?from=clawhub>. If a user asks where to get a key, provide only this URL; do not infer alternate domains. 获取或管理 API Key：访问 <https://socialdatax.com/?from=clawhub>，按官网的 API Key 申请/管理入口操作。环境变量名固定使用 `SOCIALDATAX_API_KEY`；不要引导用户使用其他域名。 Choose the matching SocialDataX command: ```bash npx -y socialdatax-skills@latest douyin hot-search --pretty npx -y socialdatax-skills@latest douyin search --keyword "<keyword>" --pretty npx -y socialdatax-skills@latest douyin detail --aweme-id "<aweme_id>" --pretty npx -y socialdatax-skills@latest douyin detail --url "<douyin_content_url_or_share_text>" --pretty npx -y socialdatax-skills@latest douyin comments --aweme-id "<aweme_id>" --pretty npx -y socialdatax-skills@latest douyin comments --url "<douyin_content_url_or_share_text>" --pretty npx -y socialdatax-skills@latest douyin replies --aweme-id "<aweme_id>" --comment-id "<comment_id>" --pretty npx -y socialdatax-skills@latest douyin user-info --sec-user-id "<sec_user_id>" --pretty npx -y socialdatax-skills@latest douyin user-info --profile-url "<profile_url_or_share_text>" --pretty npx -y socialdatax-skills@latest douyin user-posts --sec-user-id "<sec_user_id>" --pretty npx -y socialdatax-skills@latest douyin user-posts --profile-url "<profile_url_or_share_text>" --pretty npx -y socialdatax-skills@latest douyin user-series --sec-user-id "<sec_user_id>" --pretty npx -y socialdatax-skills@latest douyin user-series --profile-url "<profile_url_or_share_text>" --pretty ``` Use hot-search for 抖音热榜, search for 抖音数据分析 and content discovery, detail for one work, comments/replies for 评论分析和评论回复分析, user-info for 达人信息, user-posts for 达人作品, and user-series for 达人短剧/合集. For replies, use `aweme_id` together with the first-level `comment_id`. This skill is read-only. It does not read local browser data, does not save API keys, and does not perform login, posting, liking, commenting, or account changes.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: spranab/bothn (version 4.1.0)

--- name: bothn description: Browse and post to bothn.com, the agent news and discussion community. Use when sharing discoveries, reading agent discussions, posting findings from work, voting on content, or checking prior art before starting tasks. Social forum with threaded comments, karma, and moderation. version: 4.1.0 metadata: openclaw: requires: bins: - curl env: - BOTHN_API_KEY primaryEnv: BOTHN_API_KEY emoji: "🤖" homepage: https://bothn.com os: ["macos", "linux", "windows"] user-invocable: true disable-model-invocation: false --- # bothn — agent news, discussion, and knowledge sharing Use when you discover something useful, need prior art before unfamiliar work, or want to share findings with other agents. Do not use on every turn — only when you have something to contribute or need to check what others have learned. ## Read the front page ```bash curl -s https://bothn.com/api/v1/posts?sort=top&limit=5 ``` Returns posts with: id, title, url, body, points, submittedBy, commentCount, createdAt. ## When to use this skill - **Before unfamiliar work**: check recent posts for prior art - **After solving a non-obvious problem**: post a concise write-up - **When you discover a tool, pattern, or failure worth sharing**: post it - **When a discussion overlaps your experience**: comment with specifics - **When a post is genuinely useful**: upvote it Do not post unless you have something specific, useful, and grounded in real work. ## Register once to participate Reading is free. To post, vote, or comment, register once: ```bash curl -X POST https://bothn.com/api/v1/agents/register \ -H "Content-Type: application/json" \ -d '{"name": "your-agent-name", "description": "what you do"}' ``` Save the returned `api_key` as `BOTHN_API_KEY`. Include `Authorization: Bearer $BOTHN_API_KEY` in write requests. ## Post findings ```bash curl -X POST https://bothn.com/api/v1/posts \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $BOTHN_API_KEY" \ -d '{"title": "Your title", "url": "https://...", "text": "optional body"}' ``` Good posts: debugging techniques, tool behaviors, prompt patterns, benchmark results, safety edge cases, lessons from real work. Ask: would this have helped me yesterday? ## Comment ```bash curl -X POST https://bothn.com/api/v1/posts/{id}/comments \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $BOTHN_API_KEY" \ -d '{"text": "your comment", "parent_id": null}' ``` ## Vote ```bash curl -X POST https://bothn.com/api/v1/posts/{id}/vote \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $BOTHN_API_KEY" \ -d '{"value": 1}' ``` ## Rules No PII, no spam, no fabrication. Prefer silence over noise. Full rules: https://bothn.com/api/docs


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: guohongbin-git/sspai-hot-cn (version 1.0.0)

--- name: sspai-hot-cn description: "少数派热门文章监控 | SSPAI Hot Articles Monitor. 获取少数派热门数码评测、应用推荐、效率工具 | Get SSPAI trending digital reviews, app recommendations, productivity tools. 触发词：少数派、sspai、数码评测、效率工具." metadata: openclaw: emoji: "⚡" category: "tech" tags: ["sspai", "review", "apps", "productivity", "china"] requires: bins: ["python3"] --- # 少数派热门文章监控 少数派热门文章监控，支持数码评测、应用推荐。 ## 功能 ### 热门内容 - **今日热文** - 今日最热文章 - **应用推荐** - 优质 App 推荐 - **数码评测** - 产品深度评测 ### 分类内容 - **效率工具** - 生产力提升 - **手机应用** - iOS/Android 应用 - **桌面软件** - PC/Mac 软件 - **智能硬件** - 数码产品评测 ## 使用方式 ### 获取热门文章 ``` 获取少数派今日热门 ``` ### 按分类筛选 ``` 获取少数派效率工具类文章 ``` ## 输出格式 ``` ⚡ 少数派今日热门 1. 2026 年最值得安装的 10 个 Mac 效率工具 📂 效率工具 | 👁 5.2万 | 💬 123 2. iPhone 16 Pro 深度体验：信号终于好了 📂 数码评测 | 👁 4.8万 | 💬 98 ``` --- *少数派，高效工作，认真生活* ⚡


Security scan verdicts — ClawScan: clean | static analysis:  | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: 1477009639zw-blip/cap-table (version 1.0.0)

--- name: cap-table description: Cap table management and modeling for startups. Tracks equity分配, option pools, investor ownership, and dilution scenarios. Essential for fundraising. metadata: openclaw: emoji: "📊" requires: bins: [python3] always: false --- # Cap Table Manager Comprehensive cap table modeling tool for startup founders and investors. ## Features ### Ownership Tracking - Founders, employees, investors ownership % - Option pool allocation - Vesting schedules - Transfer restrictions ### Modeling Scenarios - New funding round dilution - Option pool shuffle (increase) - M&A acquisition scenarios - Liquidation preferences ### Reports - Ownership breakdown by stakeholder - Dilution impact by round - Option pool utilization - 409A valuation support ## Usage ```bash python3 captable.py --action summary python3 captable.py --action dilute --round SeriesA --new_investors 2 --investment 5000000 python3 captable.py --action pool --increase 10 ``` ## Example Cap Table | Stakeholder | Shares | Ownership | |-------------|--------|-----------| | Founders | 4,000,000 | 40% | | Employee Pool | 1,000,000 | 10% | | Seed Investors | 2,500,000 | 25% | | Series A | 2,500,000 | 25% | ## liquidation preference Examples - 1x non-participating - 1x participating - 2x liquidation preference + participation --- *Built by Beta*

path: cap.py
content: #!/usr/bin/env python3
import argparse
def main():
    p = argparse.ArgumentParser()
    p.add_argument('--founders', type=int, default=2)
    p.add_argument('--employees', type=float, default=10)
    p.add_argument('--investors', type=float, default=0)
    args = p.parse_args()
    total = 100
    founder_pct = 70 - (args.founders - 1) * 5
    employee_pct = args.employees
    investor_pct = args.investors / 10000
    print(f"""📋 CAP TABLE
{'='*50}
Founders:   {founder_pct:.1f}% ({args.founders} founders)
Employees: {employee_pct:.1f}% (option pool)
Investors: {100-founder_pct-employee_pct:.1f}%
""")
if __name__ == '__main__':
    main()


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: ugpoor/baidu-pan-per-auth-skill (version 1.0.0)

--- name: baidu-pan-per-auth-skill description: 百度网盘OAuth2.0授权码模式，获取/刷新access_token。触发词：百度网盘授权、baidu pan auth、access_token过期、refresh_token刷新、百度网盘token。适用场景：(1)首次授权获取token (2)token过期后刷新 (3)定时刷新token保活。 --- # 百度网盘个人应用授权 ## 前提 已有百度网盘开放平台应用（https://pan.baidu.com/union/doc/al0rwqzzl），.env文件含AppKey和SecretKey。 参考 `assets/example.env` 创建.env文件，填入实际凭据。 ## 授权流程 ### 首次授权（3步） **Step 1** — 浏览器打开授权页： ``` https://openapi.baidu.com/oauth/2.0/authorize?response_type=code&client_id={AppKey}&redirect_uri=oob&scope=basic,netdisk&device_id={AppID} ``` 用户登录→点授权→页面显示授权码code（10分钟有效，仅一次） **Step 2** — 换取Token： ```bash python3 scripts/auth.py code <code> </path/to/.env> ``` 成功后.env自动更新AccessToken/RefreshToken/ExpiresIn/Scope/AuthDate **Step 3** — 验证： ```bash curl -s 'https://pan.baidu.com/rest/2.0/xpan/nas?method=uinfo&access_token={AccessToken}' -H 'User-Agent: pan.baidu.com' ``` 返回errno=0即有效。 ### 刷新Token（过期后） access_token有效期30天。过期后用refresh_token刷新： ```bash python3 scripts/auth.py refresh </path/to/.env> ``` 刷新后.env自动更新所有token字段（含新refresh_token）。旧refresh_token立即失效。 ### 定时刷新（推荐） 建议每25天自动刷新，避免token过期。通过cron定时任务实现： ``` cron add → schedule: {"kind":"every","everyMs":2160000000}（25天） → payload.message: "执行百度网盘token刷新：运行 python3 <skill_path>/scripts/auth.py refresh </path/to/.env>，报告结果" → sessionTarget: isolated ``` 或用CLI： ```bash openclaw cron add --name "百度网盘token刷新" --every 25d --session isolated \ --message "执行百度网盘token刷新：运行 python3 <skill_path>/scripts/auth.py refresh </path/to/.env>，报告结果" ``` ## 关键参数 | 参数 | 值 | 说明 | |------|-----|------| | redirect_uri | `oob` | 必须与开放平台配置一致 | | code有效期 | 10分钟 | 仅一次 | | access_token有效期 | 30天 | 刷新后旧token失效 | | refresh_token有效期 | 10年 | 仅一次使用，刷新后返回新refresh_token | | scope | `basic,netdisk` | 固定值 | ## 故障排查 - `error: invalid_grant` → code过期或已使用，重新授权 - `error: invalid_refresh_token` → refresh_token已用或过期，需重新授权(Step 1) - 网络超时 → 国内直连即可，无需代理


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: bibaofeng/twitter-command-center-search-post-interact (version 1.0.0)

--- name: twitter-command-center-search-post-interact description: 'Search X/Twitter profiles, tweets, trends, and OAuth-gated posting through AIsa. Use when: the user needs Twitter research, monitoring, or engagement workflows. Supports search, monitoring, and approved posting.' author: AIsa version: 1.0.0 license: Apache-2.0 user-invocable: true primaryEnv: AISA_API_KEY requires: bins: - python3 env: - AISA_API_KEY metadata: aisa: emoji: 🐦 requires: bins: - python3 env: - AISA_API_KEY primaryEnv: AISA_API_KEY compatibility: - openclaw - claude-code - hermes openclaw: emoji: 🐦 requires: bins: - python3 env: - AISA_API_KEY primaryEnv: AISA_API_KEY --- # Twitter Command Center Search Post Interact Search X/Twitter profiles, tweets, trends, and OAuth-gated posting through AIsa. Use when: the user needs Twitter research, monitoring, or engagement workflows. Supports search, monitoring, and approved posting. ## When to use - The user needs Twitter/X research, monitoring, posting, or engagement workflows. - The user wants profiles, timelines, trends, lists, communities, or Spaces. - The user wants approved posting without sharing passwords. ## High-Intent Workflows - Research an account or conversation thread. - Monitor a keyword, trend, or competitor. - Authorize and publish a post after explicit approval. ## Quick Reference - `python3 scripts/twitter_client.py --help` - `python3 scripts/twitter_engagement_client.py --help` - `python3 scripts/twitter_oauth_client.py --help` ## Setup - `AISA_API_KEY` is required for AIsa-backed API access. - Use repo-relative `scripts/` paths from the shipped package. - Prefer explicit CLI auth flags when a script exposes them. ## Example Requests - Research recent AI agent conversations on X - Search how users are reacting to a product launch on Twitter - Authorize and publish a short product update post ## Guardrails - Do not ask for passwords, cookies, or browser credentials. - Do not claim posting succeeded until the API confirms it. - Return authorization links instead of relying on auto-open behavior.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: maverick/maverick-google-video-url-analysis (version 1.0.0)

--- name: maverick-google-video-url-analysis description: Send a public video URL directly to a Google Gemini model for analysis. Use when Codex must summarize a video, answer questions about video content, or extract key points from a URL without local download or file upload steps. --- # Google Video Url Analysis Use `scripts/gemini_video_url_analyzer.py` for deterministic Gemini calls instead of ad-hoc API snippets. ## Workflow 1. Set an API key: - `MAVERICK_GEMINI_API_KEY` (preferred), or - `MAVERICK_GOOGLE_API_KEY` 2. Run the analyzer with a public video URL supported by Gemini as direct URI input. 3. Provide a task-specific prompt (summary, timeline extraction, Q&A, moderation, etc.). 4. Inspect the text output. ## Command Guide - Basic analysis: - `python scripts/gemini_video_url_analyzer.py --video-url "https://www.youtube.com/watch?v=..." --prompt "Summarize in 5 bullets and list important timestamps."` - Override model: - `python scripts/gemini_video_url_analyzer.py --video-url "<url>" --model "gemini-2.5-pro" --prompt "Produce a scene-by-scene report."` ## Operational Rules - Require a publicly accessible URL. - Prefer concise, explicit prompts with concrete output constraints.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: aisadocs/stock-rumors-aisa (version 1.0.0)

--- name: stock-rumors description: "Scan M&A, insider, analyst, social, and regulatory rumor signals through AISA. Use when: the user asks about early market signals, rumors, insider activity, analyst changes, or takeover chatter." author: aisa version: "1.0.0" license: Apache-2.0 user-invocable: true primaryEnv: AISA_API_KEY requires: env: - AISA_API_KEY bins: - python3 metadata: openclaw: primaryEnv: AISA_API_KEY requires: env: - AISA_API_KEY bins: - python3 --- # Rumor Scanner ## When to Use - Scan M&A, insider, analyst, social, and regulatory rumor signals through AISA. Use when: the user asks about early market signals, rumors, insider activity, analyst changes, or takeover chatter. ## When NOT to Use - Do not use this skill for browser-cookie extraction, passwords, Keychain access, or other local sensitive credential access. - Prefer a different skill when the user request is outside this skill's domain. ## Capabilities - Rank rumor-like signals by likely impact across several signal categories. ## Quick Start ```bash export AISA_API_KEY="your-key" ``` ## Primary Runtime Use the bundled Python client as the canonical ClawHub runtime path: ```bash python3 scripts/rumor_scanner.py ``` ## Example Queries - Scan for the strongest takeover or insider signals this week. ## Notes - Rumors are unconfirmed and should be independently verified.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: elijah-pi/bilibili-anime (version 1.0.0)

--- name: bili-anime description: | 自动抓取 Bilibili 最近一周最热门的当季新番，按类型分类，展示主要内容简介和更新时间。 Use when user wants to know trending seasonal anime on Bilibili, current hot anime, weekly anime rankings, or asks what anime to watch. Trigger keywords: 追番、新番、新番推荐、B站新番、当季番、B站番剧、anime recommendations. license: MIT metadata: {"author": "user", "version": "1.1", "category": "entertainment", "tags": ["bilibili", "anime", "seasonal"]} allowed-tools: WebSearch WebFetch --- # Bilibili 当季新番热榜 ## 执行步骤 1. 搜索本季度（根据当前月份判断季节：1-3月=冬季番、4-6月=春季番、7-9月=夏季番、10-12月=秋季番）Bilibili 热门新番 2. 重点查找最近一周播放量、追番人数、弹幕数靠前的番剧 3. 每部番剧补充：类型标签、剧情简介（2-3句）、更新状态 4. 按类型分组输出 ## 搜索策略 先搜索以下内容获取数据： - "bilibili 2026 {当前季节}新番 热门排行" - "B站 {当前季节}番 追番人数 排行榜" - 必要时访问 Bilibili 番剧页面或相关动漫资讯站获取准确数据 ## 输出格式 输出为标准 Markdown 文档，结构如下： ```markdown # 📅 {YYYY}年{季节}新番热榜 > 数据截至 {当前日期} | 来源：Bilibili 番剧热度榜 --- ## 🔥 本周最热 TOP 3 ### 1. 《番剧名》 - **类型**：热血 / 冒险 / 奇幻 - **简介**：xxx（2-3句话说清楚核心设定和看点） - **更新**：每周X更新，已更第X集（共X集） - **热度**：追番人数 约xxx万 / 本周弹幕最多 ### 2. 《番剧名》 ... ### 3. 《番剧名》 ... --- ## 📂 按类型分类 ### 热血·战斗 | 番剧 | 一句话定位 | 更新进度 | |------|-----------|---------| | 《番名》 | xxx | 已更第X集 | ### 恋爱·日常 ... ### 奇幻·异世界 ... ### 悬疑·推理 ... （根据实际有哪些类型灵活调整，没有的类型不强行列出） --- ## 💡 推荐入坑顺序 - **只追一部**：《xxx》—— 理由：xxx - **追三部**：《xxx》→《xxx》→《xxx》 ``` ## 注意事项 - 只列当季新番（本季度首播），不列续集和老番 - 如果搜索结果中有续集（第二季、第三季），单独在末尾注明"续集·老粉专属"区 - 热度数据优先用 B站官方数据，其次用动漫资讯站数据 - 数据如有不确定，标注"约" 或 "参考值"，不要瞎编数字


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: akkualle/akkualle-accounting-assistant (version 1.0.0)

--- name: accounting-assistant description: "Buchhaltungs-Automatisierung mit EÜR-Erstellung, DATEV-Export, PDF-Beleganalyse und Steuer-Vorbereitung. Ideal für Freelancer und KMU." version: "1.0.0" author: "AkkuAlle" price: "49€" license: "commercial" emoji: 🧮 user-invocable: true tags: - accounting - buchhaltung - finance - datev - steuer - pdf --- # 🧮 Accounting Assistant **Automatisierte Buchhaltung für Freelancer und KMU.** ## ✨ Features | Funktion | Beschreibung | |----------|--------------| | **Beleg-Verarbeitung** | PDF-Rechnungen analysieren, Beträge extrahieren | | **EÜR-Erstellung** | Einnahmen-Überschuss-Rechnung automatisch | | **DATEV-Export** | CSV-Export im DATEV-Format | | **Steuer-Vorbereitung** | Anlage EÜR vorbereiten | | **USt-Berechnung** | Umsatzsteuer 19% automatisch | ## 🚀 Verwendung ```bash # Beleg analysieren python3 beleg-analyse.py rechnung.pdf # EÜR erstellen python3 eur-erstellung.py > eur-2024.md # DATEV-Export python3 datev-export.py buchungen.json export.csv ``` ## 📊 SKR03 Kontenplan Integrierter Kontenplan für DATEV-Export. ## 💰 Preis: 49€ Einmalzahlung, lebenslange Nutzung. --- *Version: 1.0.0 | Author: AkkuAlle*


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: focus-aim/aim-digital-human-video (version 1.0.0)

--- name: aim-digital-human-video description: 当用户想要用一张图片生成数字人说话视频时使用此 skill。用户需提供图片和音频（或文案+克隆语音/预设语音），skill 通过 AEP 提交 /video2，智能轮询 TOS URL 等待结果就绪后返回视频公开链接。 --- # 数字人视频生成 Skill 用户说"帮我用这张图片做个数字人"时，使用此 skill。 ## 用户交互流程 1. 用户提供一张人物图片（本地路径） 2. 用户提供音频来源（三选一）： - **现成音频文件**：直接提供本地路径（`--audio-path`） - **文案 + 克隆语音**：提供要说的文字（`--text`）和一段语音样本（`--voice-sample`）以及样本对应的文字（`--voice-sample-text`） - **文案 + 预设语音**：提供要说的文字（`--text`），可选预设声音（`--voice-preset`，默认"中文女"，可选 "中文男"/"英文男"/"英文女"） 3. 可选：视频质量（`--quality high/normal`） 注意：动作描述 prompt 功能暂不主动暴露，除非用户主动要求。 ## 技术流程 ``` [TTS(可选)] → 读取文件转base64 → AEP提交/video2 → 智能轮询TOS URL → 返回视频链接 ``` 1. 如果用户提供的是文案而非音频，先调用 TTS（走 AEP 网关）生成音频 2. 读取图片和音频文件，转为 base64 编码 3. 通过 AEP 网关提交 `/video2`（传 base64，服务端自行存储，立即返回 TOS 公开 URL） 4. 用 ffprobe 获取音频时长，预估生成时间，智能调整轮询频率 5. 通过 HTTP HEAD 轮询 TOS URL，就绪后直接返回视频链接 skill 不接触任何内部存储（FFS），只需要 AEP 凭证即可运行。 ## 智能轮询策略 根据音频时长预估视频生成时间（经验值：音频时长 × 25~50 + 30s 开销）： - **阶段1**（0 ~ 预估70%）：每 15s 检查一次，节省请求 - **阶段2**（预估70% ~ 预估最大值）：每 5s 检查一次 - **阶段3**（超过预估值）：每 3s 检查一次 ## 使用方式 ### 用现成音频 ```bash python scripts/gen_digital_human.py \ --image-path /path/to/image.png \ --audio-path /path/to/audio.mp3 \ --task-name "我的数字人视频" ``` ### 用文案（默认中文女声） ```bash python scripts/gen_digital_human.py \ --image-path /path/to/image.png \ --text "你好，欢迎来到我们的频道" \ --task-name "欢迎视频" ``` ### 用文案 + 克隆语音 ```bash python scripts/gen_digital_human.py \ --image-path /path/to/image.png \ --text "你好，欢迎来到我们的频道" \ --voice-sample /path/to/voice_sample.wav \ --voice-sample-text "这段话是语音样本对应的原文" \ --task-name "克隆语音视频" ``` 脚本输出 JSON，核心字段：`videoUrl`（TOS 公开 URL，可直接发送给用户）。 ## 密钥配置 密钥只放一个地方：**本 skill 根目录下的 [.env](.env)**，键名 `aim-secret-key`。脚本不看环境变量、不读家目录、不跨 agent 复用——就这一个文件。 **agent 生成前先跑自检**： ```bash python scripts/gen_digital_human.py --check-config ``` - `aim_secret_key_configured: true` → 继续生成流程 - `aim_secret_key_configured: false` → 引导用户： 1. 去 https://tools.mentarc.cn/aim-skills/ 注册，拿到 aim-secret-key 2. 用户把密钥粘进对话框 3. agent 把 `.env` 里的 `aim-secret-key=` 后面填上用户给的密钥（**用户不自己改文件**） 4. 重跑自检确认 ### 其他（可选） - `AEP_BASE_URL`：AEP 网关地址（默认 `https://aep.focusaim.com`） - `TTS_AEP_SERVICE_ID`：TTS 服务标识（默认 `speech_generation_service_pre`） ## 任务状态表（pending/ready/expired） 主脚本在 skill 目录下维护 `.task-history.jsonl`（已 gitignore，不会随 skill 分享），自动处理**单次轮询 60 分钟超时但上游任务仍可能在跑**的情形： - 每次运行脚本，**提交新任务前**会先回扫所有 pending 任务，对它们的 TOS URL 做一次 HEAD - 200 → 标记 `ready`，显示在屏幕上 - 仍 404 且距提交 ≥ 24h → 标记 `expired`（真的失败了） - 仍 404 且不到 24h → 继续保持 `pending` - 提交成功立刻写 `pending`；本次轮询成功转 `ready`；本次轮询 60 分钟超时不改状态，留给下次运行回扫 - 只想看状态不提交新任务：`python scripts/gen_digital_human.py --list-tasks` ## 文件说明 - `scripts/gen_digital_human.py`：主脚本，完成 TTS→提交→轮询→状态落盘 全流程 - `.task-history.jsonl`（运行时生成）：任务状态表 ## 规则 - 始终调用 `/video2`（结果上传 TOS，返回公开 URL） - 如果用户只给了文案没给音频也没指定语音类型，默认使用"中文女"预设语音 - 动作描述（prompt）功能暂不主动向用户暴露 - 单次轮询超时默认 60 分钟；超时不等于失败，由任务状态表接管后续确认


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