Skill: roseryztzhoutong/yijian-ba-baokuan (version 0.6.1)

--- name: content-rewriter display_name: 一键扒爆款 description: > 自媒体人必备 | 丢个视频链接，自动出小红书+头条+抖音三套可直接发布的改写文案。 支持抖音/B站/小红书。不是学术分析，是"扒下来→分析为什么爆→改成你的版本"。 实测能省 80% 的爆款分析时间。花大叔出品。 触发场景：分析视频文案、视频文案改写、扒文案改文章、爆款分析、 内容改写、文案提取改写、视频转文章、爆款拆解、改写输出、一键扒爆款、 自媒体文案、小红书爆款、今日头条改写、短视频文案、内容搬运、仿写、 选题拆解、对标账号分析、文案去重、二创改写 version: 0.6.1 author: 花大叔/O5-7/ 龙渊工坊 category: 内容创作 tags: [爆款改写, 文案提取, 内容运营, 自媒体, 短视频, 小红书文案, 今日头条, 抖音口播, 二创, 仿写, 选题拆解, 对标分析, 文案去重, 内容搬运] agent_created: true --- # 爆款内容改写引擎 v0.6.1 ## 一句话说清楚 **给个视频链接 → 自动出三套可直接复制的平台文案。** 不下载视频、不分析画面、不写学术报告。要的就是"扒下来 → 分析为什么爆 → 改成我的版本"。 --- ## ⚠️ 环境准备（首次使用必装） 本技能依赖以下 Python 包。请在终端执行： ```bash # 核心依赖（必须） pip install httpx playwright openai-whisper moviepy # Playwright 浏览器（必须，只需执行一次） playwright install chromium # 可选依赖（按需安装） # B站下载视频需要（可选，推荐用 API 方案） # 小红书采集需要额外安装 XHS-Downloader + 提供 Cookie ``` **首次运行说明**： - whisper 模型会在首次使用时自动下载（base 模型约 142MB） - 如遇下载慢，可设置镜像：`export HF_ENDPOINT=https://hf-mirror.com` - moviepy 内置 ffmpeg，无需单独安装 ffmpeg 系统包 - 上述依赖已在 Windows 11 + Python 3.14 环境验证通过 --- ## 平台支持现状（诚实版） | 平台 | 状态 | 采集方式 | 备注 | |------|------|---------|------| | 抖音 | ✅ 稳定 | Playwright API 拦截 | 优先取字幕，无字幕时下载+ASR兜底 | | B站 | ⚠️ 部分可用 | B站公开 API | 可提取标题/描述/数据+检测字幕；下载视频需用户提供Cookie | | 小红书 | ⚠️ 需 Cookie | XHS-Downloader | 需用户提供 web_session Cookie + 安装 XHS-Downloader | | 视频号 | ❌ 不支持 | — | 需微信 PC 客户端，暂无自动化方案 | --- ## 核心流程（4步） ``` 链接 → 提取文案 → AI爆款分析 → 多平台改写 → 输出纯文本 ``` --- ## 第一步：提取文案 ### 平台识别 + 采集方案 | 域名特征 | 平台 | 文案提取方案 | |----------|------|-------------| | `douyin.com` / `v.douyin.com` | 抖音 | Playwright API拦截 → 优先取API字幕 → 无则下载+whisper ASR | | `bilibili.com/video/BV` | B站 | 公开API提取标题/描述/数据 → 检测AI字幕 → 有字幕直接提取，无字幕需Cookie下载+ASR | | `xiaohongshu.com/explore/` | 小红书 | XHS-Downloader + Cookie → 视频描述文案 + 口播ASR | | 视频号链接 | 视频号 | ❌ 告知用户限制 → 建议手动复制文案后直接改写 | ### 抖音（首选方案） ```python # 短链接解析 → Playwright API拦截 → 取视频详情+字幕 import httpx, re from playwright.async_api import async_playwright async def fetch_douyin(share_url: str): # 1. 解析短链接拿到 video_id resp = httpx.get(share_url, headers=ua, follow_redirects=True) video_id = re.search(r'/video/(\d+)', str(resp.url)).group(1) # 2. Playwright 拦截 API async with async_playwright() as p: browser = await p.chromium.launch(headless=True) page = await browser.new_page() detail = {} async def handle(response): if "aweme/v1/web/aweme/detail" in response.url: import json detail = json.loads(await response.text()) page.on("response", handle) await page.goto(f"https://www.douyin.com/video/{video_id}") await page.wait_for_timeout(5000) # 3. 提取文案 aweme = detail["aweme_detail"] text = aweme.get("desc", "") # 视频描述 # 优先字幕 if aweme.get("interaction_stickers"): for s in aweme["interaction_stickers"]: if s.get("subtitle_data"): text += "\n" + s["subtitle_data"] return {"title": text, "author": aweme["author"]["nickname"], "stats": aweme["statistics"]} ``` ### B站（无需登录的 API 方案） ```python # 方案A：公开 API 提取元数据 + 字幕检测（无需 Cookie） import httpx, json headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', 'Referer': 'https://www.bilibili.com/', } # 1. 提取 BV 号并获取视频信息 bvid = "BV1xxXXxXXxx" # 从 URL 中提取 resp = httpx.get(f'https://api.bilibili.com/x/web-interface/view?bvid={bvid}', headers=headers) data = json.loads(resp.content.decode('utf-8'))['data'] title = data['title'] desc = data.get('desc', '') # 视频简介（通常含核心观点） cid = data['cid'] # 2. 检测是否有 AI 字幕 resp2 = httpx.get(f'https://api.bilibili.com/x/player/v2?bvid={bvid}&cid={cid}', headers=headers) player = json.loads(resp2.content.decode('utf-8')) subs = player['data'].get('subtitle', {}).get('subtitles', []) # 3. 有字幕：直接提取 if subs: sub_url = 'https:' + subs[0]['subtitle_url'] sub_data = json.loads(httpx.get(sub_url, headers=headers).content.decode('utf-8')) full_text = ' '.join([item['content'] for item in sub_data['body']]) # 输出：标题 + 简介 + 字幕 = 完整的文案素材 # 4. 无字幕：使用标题+简介作为文案 # 或告知用户提供 B站 Cookie 以支持视频下载+ASR ``` **说明**： - 公开 API 无需登录，可稳定提取视频标题、简介、播放数据、字幕 - B站 AI 字幕覆盖率较高（长视频通常有），无字幕时可先用简介改写 - 如需下载完整视频做 ASR：需用户提供 B站 Cookie（浏览器登录后导出 cookies.txt） - you-get / yt-dlp 等下载工具不稳定（B站频繁更新反爬策略），不推荐作为主方案 ### 小红书 需先安装 XHS-Downloader（见环境准备章节），并提供登录 Cookie： ```python # 使用 XHS-Downloader import asyncio, sys sys.path.insert(0, "/path/to/XHS-Downloader") from source import XHS async def fetch_xhs(url, cookie=""): async with XHS( work_path="{output_dir}", folder_name="小红书", cookie=cookie, video_download=False, ) as xhs: return await xhs.extract(url, download=False) ``` ### 视频号 — 降级方案 告知用户限制，提供替代方案： 1. 用户手动从微信视频号复制文案 2. 或安装微信PC客户端后使用代理工具 --- ## 第二步：AI 爆款分析 **只分析文本，不分析画面。聚焦 3 个核心维度：** ### 分析框架 | 维度 | 分析什么 | 为什么重要 | |------|---------|-----------| | **钩子分析** | 前两句/前5秒抓人的点是什么？用了什么手法？ | 决定完播率 | | **结构分析** | 内容骨架：先抛什么→再说什么→怎么收尾？段落节奏？ | 决定留存 | | **情绪分析** | 调动了什么情绪？痛点/爽点在哪？反转/共鸣的时机？ | 决定互动 | ### 输出格式 ``` 【爆款核心】一句话总结这条为什么爆 【钩子拆解】 - 开头手法：xxx - 为什么有效：xxx 【内容结构】 开篇 → 展开 → 高潮 → 收尾 （每段标注信息密度和情绪功能） 【情绪地图】 痛点触发 → 共鸣升温 → 爽点释放 → 行动引导 【可复用要素】 - 句式模板：xxx - 节奏模板：xxx - 情绪模型：xxx ``` **关键原则**： - 不说"这个视频很优秀"这种废话 - 不说"镜头语言"、"叙事功能"这种学术词 - 输出是创作者能直接用的，不是给影评人看的 --- ## 第三步：多平台改写 **基于爆款分析结果，产出 3 套可直接发布的文案。** ### 平台风格对照 | 特征 | 小红书 | 今日头条 | 抖音口播 | |------|--------|---------|---------| | 语气 | 姐妹/宝子们，种草风 | 理性+观点，资讯风 | 口语化，节奏快 | | 句式 | 短句+Emoji+感叹号 | 标题党+分点论证 | 动词多，停顿少 | | 长度 | 300-800字 | 800-2000字 | 150-300字 | | 结构 | 痛点→共鸣→方案→推荐 | 观点→论据→结论→互动 | 钩子→展开→反转→收 | | 标签 | 3-5个话题标签 | 无标签 | 口播无标签 | ### 改写原则 1. **保留爆款骨架，更换血肉**：结构、节奏、情绪模型不变，主题/案例/人设可换 2. **去 AI 味**：零省略号、零"在当今社会"、零"综上所述" 3. **口语化**：像人写的，不像 AI 写的 4. **反套路反模板**：不用"你是否也遇到过"、"今天给大家分享" 5. **每套独立完整**：用户复制即可发布，不需要再编辑 ### 输出模板 ``` ==================== 【小红书版】 ==================== [可直接复制发布的正文，含Emoji和标签] ==================== 【今日头条版】 ==================== [可直接复制发布的正文，标题+正文] ==================== 【抖音口播版】 ==================== [可直接录制口播的脚本文案] ==================== 【爆款要素速查卡】 ==================== 标题公式：xxx 钩子公式：xxx 情绪公式：xxx 适用场景：xxx ``` --- ## 第四步：输出文件 所有文案保存在 `{output_dir}/` 目录下（默认为当前工作目录下的 `output/` 子目录）： ``` {output_dir}/{视频标题}_改写文案.txt ``` --- ## ASR 兜底方案（无字幕时） 抖音视频无 API 字幕时的完整 ASR 流程： ```python # 1. moviepy 提取音频（内置 ffmpeg，无需额外安装 ffmpeg） from moviepy import VideoFileClip clip = VideoFileClip("video.mp4") clip.audio.write_audiofile("temp.wav", fps=16000) clip.close() # 2. wave 模块读取 WAV → numpy 数组（绕过 whisper.load_audio 的 ffmpeg 依赖） import wave, numpy as np with wave.open("temp.wav", "rb") as wf: raw = wf.readframes(wf.getnframes()) audio = np.frombuffer(raw, dtype=np.int16).astype(np.float32) / 32768.0 # 3. whisper 转写 import whisper model = whisper.load_model("base") result = model.transcribe(audio, language="zh", fp16=False) ``` --- ## 适用场景 - 看到一条爆款视频 → 想知道为什么爆 → 快速出稿 - 每天刷抖音/B站 → 批量收集爆款文案 → 改写囤稿 - 学员交付：给对标爆款链接 → 出分析+改写示范 → 教学员模仿 - 小红书/头条矩阵号运营 → 同一爆款素材分发多平台 --- ## 注意事项 - 小红书采集需要 cookie（web_session），首次使用需引导用户提供 - B站：优先用公开 API 提取标题+简介+字幕，无需登录；下载视频需用户提供 Cookie - 视频号不支持全自动，建议引导用户手动复制文案后使用改写功能 - 改写文案仅供创作参考，发布前建议人工过一遍确保合规 - whisper base 模型首次使用会自动下载（约 142MB），建议设置 HF 镜像加速 ## 已知限制 - B站 you-get/yt-dlp 在 2026年5月实测均已失效（B站反爬更新），改用公开 API 方案 - 小红书 XHS-Downloader 需 web_session Cookie，无 Cookie 完全不可用 - 长视频（>10分钟）ASR 耗时较长，建议优先找有字幕的视频 --- ## 版本历史 - `0.6.1` (2026-05-22): 优化 description/tags，新增 15 个搜索关键词提升可发现性 - `0.6.0` (2026-05-22): 正式发布版。B站改用公开 API 方案；新增 category/tags 元数据；新增已知限制章节 - `0.5.0-beta` (2026-05-22): 上架前改造。去硬编码路径、诚实地图、标准化环境准备。署名花大叔/O5-7/龙渊工坊 - `0.4.0` (2026-05-22): 第二次实战验证，完善 ASR 链路（moviepy + wave 绕过 ffmpeg） - `0.3.0` (2026-05-22): 首次实战，从 video-frame-analyzer 重构为 content-rewriter - `0.1.0` (2026-05-20): 初始原型


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