{"id":"bc11d91f-79fe-4c96-9844-21955a9d2736","entityType":"agent","slug":"clawhub-wahtungl-douyin-video-to-report","name":"抖音视频转报告","canonicalUrl":"https://www.xpersona.co/agent/clawhub-wahtungl-douyin-video-to-report","canonicalPath":"/agent/clawhub-wahtungl-douyin-video-to-report","generatedAt":"2026-10-15T10:19:18.688Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-12T02:32:26.825Z","emptyReason":null},"description":"抖音视频链接 → 完整图文报告。自动完成：绕过验证抓取视频 → 下载 → 音频提取 → 语音转文字 → 炫酷HTML报告 → 飞书发送。触发词：抖音视频总结、抖音视频分析、这个视频说了什么、总结这个视频 Skill: 抖音视频转报告 Owner: wahtungl Summary: 抖音视频链接 → 完整图文报告。自动完成：绕过验证抓取视频 → 下载 → 音频提取 → 语音转文字 → 炫酷HTML报告 → 飞书发送。触发词：抖音视频总结、抖音视频分析、这个视频说了什么、总结这个视频 Tags: douyin:1.0.0, latest:1.0.0, report:1.0.0, transcription:1.0.0, video:1.0.0 Version history: v1.0.0 | 2026-04-19T22:07:15.828Z | auto - Initial release of douyin-video-to-report: convert Douyin video links into comprehensive HTML reports. - Automated pipeline: bypass verif","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 954 downloads reported by the source. Last updated 10/12/2026.","installCommand":"clawhub skill install s17bskpm933ey0ekc25j3kcpc5849aa5:douyin-video-to-report","sourceUrl":"https://clawhub.ai/wahtungl/douyin-video-to-report","homepage":"https://clawhub.ai/wahtungl/skills/douyin-video-to-report","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/wahtungl/douyin-video-to-report","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/wahtungl/skills/douyin-video-to-report","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"抖音视频链接 → 完整图文报告。自动完成：绕过验证抓取视频 → 下载 → 音频提取 → 语音转文字 → 炫酷HTML报告 → 飞书发送。触发词：抖音视频总结、抖音视频分析、这个视频说了什么、总结这个视频 Skill: 抖音视频转报告 Owner: wahtungl Summary: 抖音视频链接 → 完整图文报告。自动"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-12T02:32:26.825Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T02:32:26.825Z","emptyReason":null},"stars":null,"forks":null,"downloads":954,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"1.0.0","tractionLabel":"954 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T02:32:26.713Z","emptyReason":null},"lastUpdatedAt":"2026-10-12T02:32:26.825Z","lastCrawledAt":"2026-10-12T02:32:26.713Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-13T02:32:26.713Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.0","createdAt":"2026-04-19T22:07:15.828Z","changelog":"- Initial release of douyin-video-to-report: convert Douyin video links into comprehensive HTML reports. - Automated pipeline: bypass verification, download video, extract audio, speech-to-text, generate stylish report, and send via Feishu. - Includes detailed step-by-step commands and dependency setup. - Provides robust tips for handling Douyin’s technical restrictions and best practices for accurate video processing. - Customizable report template features key data highlights, insights, full transcript, and actionable advice.","fileCount":4,"zipByteSize":7196}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17bskpm933ey0ekc25j3kcpc5849aa5:douyin-video-to-report","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wahtungl-douyin-video-to-report/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wahtungl-douyin-video-to-report/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wahtungl-douyin-video-to-report/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-wahtungl-douyin-video-to-report/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-wahtungl-douyin-video-to-report/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-wahtungl-douyin-video-to-report/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-15T10:19:18.688Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wahtungl-douyin-video-to-report/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wahtungl-douyin-video-to-report/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wahtungl-douyin-video-to-report/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wahtungl-douyin-video-to-report/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-12T02:32:26.825Z","emptyReason":null},"readme":"Skill: 抖音视频转报告\n\nOwner: wahtungl\n\nSummary: 抖音视频链接 → 完整图文报告。自动完成：绕过验证抓取视频 → 下载 → 音频提取 → 语音转文字 → 炫酷HTML报告 → 飞书发送。触发词：抖音视频总结、抖音视频分析、这个视频说了什么、总结这个视频\n\nTags: douyin:1.0.0, latest:1.0.0, report:1.0.0, transcription:1.0.0, video:1.0.0\n\nVersion history:\n\nv1.0.0 | 2026-04-19T22:07:15.828Z | auto\n\n- Initial release of douyin-video-to-report: convert Douyin video links into comprehensive HTML reports.\n- Automated pipeline: bypass verification, download video, extract audio, speech-to-text, generate stylish report, and send via Feishu.\n- Includes detailed step-by-step commands and dependency setup.\n- Provides robust tips for handling Douyin’s technical restrictions and best practices for accurate video processing.\n- Customizable report template features key data highlights, insights, full transcript, and actionable advice.\n\nArchive index:\n\nArchive v1.0.0: 4 files, 7196 bytes\n\nFiles: _meta.json (141b), douyin_pipeline.py (7519b), skill-card.md (2665b), SKILL.md (4440b)\n\nFile v1.0.0:SKILL.md\n\n---\nversion: \"1.0.0\"\nname: douyin-video-to-report\ndescription: \"抖音视频链接 → 完整图文报告。自动完成：绕过验证抓取视频 → 下载 → 音频提取 → 语音转文字 → 炫酷HTML报告 → 飞书发送。触发词：抖音视频总结、抖音视频分析、这个视频说了什么、总结这个视频\"\noverride-tools:\n  - douyin_report\n---\n\n# Douyin Video → Report Pipeline\n\n将抖音视频链接自动转换为可阅读的 HTML 报告，适合需要提炼视频内容的场景。\n\n## 完整工作流程\n\n```\n抖音短链 (v.douyin.com/xxx)\n    │\n    ▼\n1. Playwright (headless Chrome)\n   - 绕过 JS 验证 / 滑动验证码\n   - 提取视频直链\n    │\n    ▼\n2. curl 下载视频 (.mp4)\n    │\n    ▼\n3. ffmpeg 提取音频 (.mp3)\n    │\n    ▼\n4. miaoda-studio-cli speech-to-text\n   - 中文普通话识别\n   - 100% 转录\n    │\n    ▼\n5. 生成炫酷 HTML 报告\n   - 深色渐变主题\n   - 核心数据卡片\n   - 洞察总结\n   - 完整转录（可展开）\n   - Ctrl+P 可打印成 PDF\n    │\n    ▼\n6. 飞书附件发送给用户\n```\n\n## 核心脚本\n\n脚本位于：`/home/gem/workspace/agent/skills/douyin-video-to-report/douyin_pipeline.py`\n\n### 使用方式\n\n```bash\n# 方式一：直接运行（传入抖音URL）\npython3 /home/gem/workspace/agent/skills/douyin-video-to-report/douyin_pipeline.py \"https://v.douyin.com/xxxxx\"\n\n# 方式二：分步执行（见下方分步说明）\n```\n\n## 分步执行命令\n\n### Step 1：提取视频直链\n```python\n# douyin_fetch.py - Playwright 提取视频 URL\nimport asyncio\nfrom playwright.async_api import async_playwright\n\nasync def get_video_url(douyin_url):\n    async with async_playwright() as p:\n        browser = await p.chromium.launch(headless=True, args=[\n            '--no-sandbox', '--disable-setuid-sandbox',\n            '--disable-blink-features=AutomationControlled',\n        ])\n        context = await browser.new_context(\n            user_agent='Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1',\n            viewport={'width': 390, 'height': 844},\n            locale='zh-CN',\n        )\n        page = await context.new_page()\n        await page.goto(douyin_url, timeout=30000, wait_until=\"networkidle\")\n        await asyncio.sleep(3)\n        # 从 video 元素获取直链\n        video_info = await page.evaluate(\"\"\"\n            () => {\n                const v = document.querySelector('video');\n                if (v && v.src) return v.src;\n                return null;\n            }\n        \"\"\")\n        await browser.close()\n        return video_info\n```\n\n### Step 2：下载视频\n```bash\ncurl -L -o /tmp/douyin_video.mp4 \"视频直链\" \\\n  -H \"User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1\" \\\n  --max-time 60 -s\n```\n\n### Step 3：提取音频\n```bash\nffmpeg -i /tmp/douyin_video.mp4 -vn -acodec libmp3lame -q:a 2 /tmp/douyin_audio.mp3 -y\n```\n\n### Step 4：语音转文字\n```bash\nmiaoda-studio-cli speech-to-text --file /tmp/douyin_audio.mp3 --lang zh --output text\n```\n\n### Step 5：生成报告\n使用 `miaoda_coding` 或直接使用 `report_generator.py`（见下方）\n\n## 依赖环境\n\n| 依赖 | 安装命令 |\n|------|---------|\n| Playwright | `pip install playwright && python3 -m playwright install chromium` |\n| ffmpeg | 系统自带或 `apt install ffmpeg` |\n| yt-dlp | `pip install yt-dlp` |\n| miaoda-studio-cli | 系统自带 |\n\n## 关键经验\n\n1. **必须用 Playwright headless Chrome**，不能用 requests/httpx，抖音会拦截\n2. **移动端 UA 更容易绕过**，用 iPhone UA 而非桌面 Chrome\n3. **视频直链从 `document.querySelector('video').src` 获取**，不要从 network 请求里找\n4. **下载视频时必须加 User-Agent header**，否则 403\n5. **飞书附件发送**：文件必须放在 `/home/gem/workspace/agent/workspace/` 或 `/tmp/openclaw/` 目录\n\n## 报告模板结构\n\n- Hero：标题 + 视频元信息\n- 数据卡片：关键数字高亮\n- 洞察区：6个核心发现卡片\n- 对比表：进门 vs 留存因素\n- 案例区：引用高亮\n- 行动指南：5项建议\n- 完整转录：可展开/收起\n\n## 相关工具\n\n- `miaoda-studio-cli speech-to-text`：音频转文字\n- `miaoda-studio-cli doc-parse`：文档解析\n- `miaoda-coding`：生成可视化报告\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn73ee7nkhqr2yd718wxqjkr3d8482n2\",\n  \"slug\": \"douyin-video-to-report\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1776636435828\n}\n\nFile v1.0.0:skill-card.md\n\n## Description:\n\nConverts Douyin video links into readable HTML reports by retrieving video content, extracting audio and frames, transcribing Chinese speech, analyzing visuals, and assembling a report for delivery.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[wahtungl](https://clawhub.ai/user/wahtungl)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to summarize Douyin videos into reports that combine transcript and visual observations. Review consent, URL validation, command safety, and external processing before deployment.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Shell command construction can expose users to command-injection risk.\n\nMitigation: Require the publisher to replace shell-string execution with argument-vector subprocess calls and validate all user-supplied paths and URLs before release.\n\nRisk: Network requests may fetch untrusted or unintended URLs.\n\nMitigation: Restrict inputs to validated Douyin hosts and run the skill with minimal network permissions until URL scoping is fixed.\n\nRisk: The workflow processes downloaded media, audio, image frames, and delivery artifacts through external services without clearly scoped consent.\n\nMitigation: Require explicit user consent before downloading media, transcribing audio, analyzing images, or sending report artifacts to external services.\n\nRisk: Broad trigger phrases may invoke the skill for ambiguous requests.\n\nMitigation: Narrow triggers and require confirmation when a request does not include a clear Douyin URL and reporting intent.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/wahtungl/skills/douyin-video-to-report)\n- [Publisher profile](https://clawhub.ai/user/wahtungl)\n- [Artifact skill definition](artifact/SKILL.md)\n- [Artifact pipeline script](artifact/douyin_pipeline.py)\n- [Douyin website](https://www.douyin.com/)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell commands and generated HTML report artifacts]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May create local video, audio, frame, transcript, analysis, and report files during execution.]\n\n## Skill Version(s):\n\n1.0.0 (source: frontmatter, _meta.json, server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.","readmeExcerpt":"Skill: 抖音视频转报告 Owner: wahtungl Summary: 抖音视频链接 → 完整图文报告。自动完成：绕过验证抓取视频 → 下载 → 音频提取 → 语音转文字 → 炫酷HTML报告 → 飞书发送。触发词：抖音视频总结、抖音视频分析、这个视频说了什么、总结这个视频 Tags: douyin:1.0.0, latest:1.0.0, report:1.0.0, transcription:1.0.0, video:1.0.0 Version history: v1.0.0 | 2026-04-19T22:07:15.828Z | auto - Initial release of douyin-video-to-report: convert Douyin video links into comprehensive HTML reports. - Automated pipeline: bypass verif","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"抖音短链 (v.douyin.com/xxx)\n    │\n    ▼\n1. Playwright (headless Chrome)\n   - 绕过 JS 验证 / 滑动验证码\n   - 提取视频直链\n    │\n    ▼\n2. curl 下载视频 (.mp4)\n    │\n    ▼\n3. ffmpeg 提取音频 (.mp3)\n    │\n    ▼\n4. miaoda-studio-cli speech-to-text\n   - 中文普通话识别\n   - 100% 转录\n    │\n    ▼\n5. 生成炫酷 HTML 报告\n   - 深色渐变主题\n   - 核心数据卡片\n   - 洞察总结\n   - 完整转录（可展开）\n   - Ctrl+P 可打印成 PDF\n    │\n    ▼\n6. 飞书附件发送给用户"},{"language":"bash","snippet":"# 方式一：直接运行（传入抖音URL）\npython3 /home/gem/workspace/agent/skills/douyin-video-to-report/douyin_pipeline.py \"https://v.douyin.com/xxxxx\"\n\n# 方式二：分步执行（见下方分步说明）"},{"language":"python","snippet":"# douyin_fetch.py - Playwright 提取视频 URL\nimport asyncio\nfrom playwright.async_api import async_playwright\n\nasync def get_video_url(douyin_url):\n    async with async_playwright() as p:\n        browser = await p.chromium.launch(headless=True, args=[\n            '--no-sandbox', '--disable-setuid-sandbox',\n            '--disable-blink-features=AutomationControlled',\n        ])\n        context = await browser.new_context(\n            user_agent='Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1',\n            viewport={'width': 390, 'height': 844},\n            locale='zh-CN',\n        )\n        page = await context.new_page()\n        await page.goto(douyin_url, timeout=30000, wait_until=\"networkidle\")\n        await asyncio.sleep(3)\n        # 从 video 元素获取直链\n        video_info = await page.evaluate(\"\"\"\n            () => {\n                const v = document.querySelector('video');\n                if (v && v.src) return v.src;\n                return null;\n            }\n        \"\"\")\n        await browser.close()\n        return video_info"},{"language":"bash","snippet":"curl -L -o /tmp/douyin_video.mp4 \"视频直链\" \\\n  -H \"User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1\" \\\n  --max-time 60 -s"},{"language":"bash","snippet":"curl -L -o /tmp/douyin_video.mp4 \"视频直链\" \\\n  -H \"User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1\" \\\n  --max-time 60 -s"},{"language":"bash","snippet":"ffmpeg -i /tmp/douyin_video.mp4 -vn -acodec libmp3lame -q:a 2 /tmp/douyin_audio.mp3 -y"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nversion: \"1.0.0\"\nname: douyin-video-to-report\ndescription: \"抖音视频链接 → 完整图文报告。自动完成：绕过验证抓取视频 → 下载 → 音频提取 → 语音转文字 → 炫酷HTML报告 → 飞书发送。触发词：抖音视频总结、抖音视频分析、这个视频说了什么、总结这个视频\"\noverride-tools:\n  - douyin_report\n---\n\n# Douyin Video → Report Pipeline\n\n将抖音视频链接自动转换为可阅读的 HTML 报告，适合需要提炼视频内容的场景。\n\n## 完整工作流程\n\n```\n抖音短链 (v.douyin.com/xxx)\n    │\n    ▼\n1. Playwright (headless Chrome)\n   - 绕过 JS 验证 / 滑动验证码\n   - 提取视频直链\n    │\n    ▼\n2. curl 下载视频 (.mp4)\n    │\n    ▼\n3. ffmpeg 提取音频 (.mp3)\n    │\n    ▼\n4. miaoda-studio-cli speech-to-text\n   - 中文普通话识别\n   - 100% 转录\n    │\n    ▼\n5. 生成炫酷 HTML 报告\n   - 深色渐变主题\n   - 核心数据卡片\n   - 洞察总结\n   - 完整转录（可展开）\n   - Ctrl+P 可打印成 PDF\n    │\n    ▼\n6. 飞书附件发送给用户\n```\n\n## 核心脚本\n\n脚本位于：`/home/gem/workspace/agent/skills/douyin-video-to-report/douyin_pipeline.py`\n\n### 使用方式\n\n```bash\n# 方式一：直接运行（传入抖音URL）\npython3 /home/gem/workspace/agent/skills/douyin-video-to-report/douyin_pipeline.py \"https://v.douyin.com/xxxxx\"\n\n# 方式二：分步执行（见下方分步说明）\n```\n\n## 分步执行命令\n\n### Step 1：提取视频直链\n```python\n# douyin_fetch.py - Playwright 提取视频 URL\nimport asyncio\nfrom playwright.async_api import async_playwright\n\nasync def get_video_url(douyin_url):\n    async with async_playwright() as p:\n        browser = await p.chromium.launch(headless=True, args=[\n            '--no-sandbox', '--disable-setuid-sandbox',\n            '--disable-blink-features=AutomationControlled',\n        ])\n        context = await browser.new_context(\n            user_agent='Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1',\n            viewport={'width': 390, 'height': 844},\n            locale='zh-CN',\n        )\n        page = await context.new_page()\n        await page.goto(douyin_url, timeout=30000, wait_until=\"networkidle\")\n        await asyncio.sleep(3)\n        # 从 video 元素获取直链\n        video_info = await page.evaluate(\"\"\"\n            () => {\n                const v = document.querySelector('video');\n                if (v && v.src) return v.src;\n                return null;\n            }\n        \"\"\")\n        await browser.close()\n        return video_info\n```\n\n### Step 2：下载视频\n```bash\ncurl -L -o /tmp/douyin_video.mp4 \"视频直链\" \\\n  -H \"User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1\" \\\n  --max-time 60 -s\n```\n\n### Step 3：提取音频\n```bash\nffmpeg -i /tmp/douyin_video.mp4 -vn -acodec libmp3lame -q:a 2 /tmp/douyin_audio.mp3 -y\n```\n\n### Step 4：语音转文字\n```bash\nmiaoda-studio-cli speech-to-text --file /tmp/douyin_audio.mp3 --lang zh --output text\n```\n\n### Step 5：生成报告\n使用 `miaoda_coding` 或直接使用 `report_generator.py`（见下方）\n\n## 依赖环境\n\n| 依赖 | 安装命令 |\n|------|---------|\n| Playwright | `pip install playwright && python3 -m playwright install chromium` |\n| ffmpeg | 系统自带或 `apt install ffmpeg` |\n| yt-dlp | `pip install yt-dlp` |\n| miaoda-studio-cli | 系统自带 |\n\n## 关键经验\n\n1. **必须用 Playwright headless Chrome**，不能用 requests/httpx，抖音会拦截\n2. **移动端 UA 更容易绕过**，用 iPhone UA 而非桌面 Chrome\n3"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn73ee7nkhqr2yd718wxqjkr3d8482n2\",\n  \"slug\": \"douyin-video-to-report\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1776636435828\n}"},{"path":"skill-card.md","content":"## Description:\n\nConverts Douyin video links into readable HTML reports by retrieving video content, extracting audio and frames, transcribing Chinese speech, analyzing visuals, and assembling a report for delivery.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[wahtungl](https://clawhub.ai/user/wahtungl)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to summarize Douyin videos into reports that combine transcript and visual observations. Review consent, URL validation, command safety, and external processing before deployment.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Shell command construction can expose users to command-injection risk.\n\nMitigation: Require the publisher to replace shell-string execution with argument-vector subprocess calls and validate all user-supplied paths and URLs before release.\n\nRisk: Network requests may fetch untrusted or unintended URLs.\n\nMitigation: Restrict inputs to validated Douyin hosts and run the skill with minimal network permissions until URL scoping is fixed.\n\nRisk: The workflow processes downloaded media, audio, image frames, and delivery artifacts through external services without clearly scoped consent.\n\nMitigation: Require explicit user consent before downloading media, transcribing audio, analyzing images, or sending report artifacts to external services.\n\nRisk: Broad trigger phrases may invoke the skill for ambiguous requests.\n\nMitigation: Narrow triggers and require confirmation when a request does not include a clear Douyin URL and reporting intent.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/wahtungl/skills/douyin-video-to-report)\n- [Publisher profile](https://clawhub.ai/user/wahtungl)\n- [Artifact skill definition](artifact/SKILL.md)\n- [Artifact pipeline script](artifact/douyin_pipeline.py)\n- [Douyin website](https://www.douyin.com/)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell commands and generated HTML report artifacts]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May create local video, audio, frame, transcript, analysis, and report files during execution.]\n\n## Skill Version(s):\n\n1.0.0 (source: frontmatter, _meta.json, server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"抖音视频链接 → 完整图文报告。自动完成：绕过验证抓取视频 → 下载 → 音频提取 → 语音转文字 → 炫酷HTML报告 → 飞书发送。触发词：抖音视频总结、抖音视频分析、这个视频说了什么、总结这个视频 Skill: 抖音视频转报告 Owner: wahtungl Summary: 抖音视频链接 → 完整图文报告。自动完成：绕过验证抓取视频 → 下载 → 音频提取 → 语音转文字 → 炫酷HTML报告 → 飞书发送。触发词：抖音视频总结、抖音视频分析、这个视频说了什么、总结这个视频 Tags: douyin:1.0.0, latest:1.0.0, report:1.0.0, transcription:1.0.0, video:1.0.0 Version history: v1.0.0 | 2026-04-19T22:07:15.828Z | auto - Initial release of douyin-video-to-report: convert Douyin video links into comprehensive HTML reports. - Automated pipeline: bypass verif","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":787,"uniquenessScore":62,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-12T02:32:26.825Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-12T02:32:26.825Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-15T10:19:18.688Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}