ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

用Codex Skill构建抖音爆款视频分析Agent:从拆解指标到自动生成脚本的完整实践

用Codex Skill构建抖音爆款视频分析Agent:从拆解指标到自动生成脚本的完整实践 直接开工。这个项目我断断续续折腾了三周核心就一句话把“爆款视频为什么火”这种只可意会的东西变成Codex能调用的Skill再让它基于分析结果自动产出可执行的短视频脚本。今天把完整过程、踩过的坑、还有最终能跑通的方案全部展开写一遍希望能帮到正在做AI Agent方向的同行。Codex本身是命令行形态的AI编程助手但真正让它区别于普通聊天工具的是Skill机制。你可以把Skill理解成给模型注入一套“专业级工作流”它不只是告诉模型“你要分析视频”而是定义了完整的分析维度、打分规则、输出模板、避免什么坑。这样一来同样的Codex内核装上不同Skill就能在不同领域干活这正好是我需要的。1. 项目概述为什么要用Codex Skill来做抖音脚本分析1.1 这个项目到底解决什么问题短视频运营里最耗精力的不是拍摄而是前期分析。一个刚入行的编导一天要看三五十条对标视频手动记录选题、文案结构、时长分段、互动节奏再从中总结规律最后写成新脚本。这个流程非常依赖个人经验做得好的中介带新人时往往只给一句“你多看看头部账号怎么拍”然后就没了。我一直在找一种方式把“分析对标视频”这件事标准化、流水线化。项目标题里的“抖音爆款视频分析与脚本自动生成”具体要解决三个问题第一把十几个维度的一次性分析压缩到一个指令第二让分析结果不是一堆零散数据而是带权重、带结论、带推荐方向的决策报告第三基于这份报告直接产出符合平台节奏的完整脚本。Codex加AI Agent的组合刚好匹配这个需求。Codex承担“执行与推理”Skill负责“领域知识注入”两者拼起来就是一个不用睡觉的短视频分析助理。它不是简单地帮你搜资料再拼一段话而是严格按流程走每一步都有据可查。做完一轮之后你还能把新发现沉淀进Skill形成持续进化的私有知识库。1.2 技术选型Codex、Agent与Skill的分工先说结论我最终的技术栈是Codex CLI做运行底座配合自定义Skill包再通过模型配置文件切换默认模型。整套系统跑在本地命令行环境不依赖额外Web服务开发和调试成本极低。Codex在这套方案里的角色是“通用大脑”负责理解问题、调用工具、维护上下文。它本身具备Agent属性能够在一个会话里自主完成“读取数据-调用分析脚本-汇总结论-生成脚本草稿”这个多步流程而不是像普通对话机器人那样等用户一步步喂话。Agent这个词最近被炒得很热但说到底就是把大模型的推理能力和外部工具串起来。在这个项目里Agent体现在Codex看到Skill里写明“请先运行scripts目录下的analyze.py”它就会主动调起Python脚本再把脚本输出的结构化数据拿回来继续推理。这一步很关键因为单靠模型记忆来做量化打分极不稳定尤其是几十条视频的完播率对比交给脚本算才靠谱。Skill则是给这个Agent注入“短视频编导”的专业知识。我在Skill里写清了分析维度、指标权重、内容结构拆解法、以及生成脚本的黄金公式Codex读到这份提示词之后就会以编导的视角去工作而不是泛泛地说“这个视频拍得不错”。这套协作关系可以用来做几乎所有垂直领域的自动化分析换掉Skill文件它就是电商、知识付费、本地生活的专属运营助手。2. 核心思路拆解从爆款视频数据到可复用脚本的逻辑链2.1 爆款视频分析该看什么指标很多人分析爆款只会看点赞数这是最大的误区。点赞只能代表“用户认同”但短视频推荐机制主要看的是完播率和互动率。我在Skill里把指标分成三层每层都有明确的采集方式和计算口径。第一层是基础表现层包括播放量、完播率、点赞率点赞数/播放量、评论率、转发率、收藏率。其中完播率权重最高平台会对“用户看完”的内容大力加权。第二层是内容结构层包括前3秒内容、视频总时长、每分钟信息密度、口播语速、镜头切换次数、高潮出现时间。这个层面需要人工或半自动采集数据源来自视频画面和字幕文本。第三层是账号与环境层包括账号粉丝量、垂直度、发布时间、话题标签热度、BGM风格。相同的视频内容大号发布和小号发布的数据曲线完全不同所以分析时必须做归一化处理不然没有可比性。我把这些维度装进Skill的PROMPT.md并在其中写清楚打分公式。比如前3秒每多抓住一次用户注意力加10分时长超过60秒但完播率依然超过40%加15分。这样Codex在处理某个具体视频时就知道该抓哪些特征怎么折算成可比较的结果。2.2 脚本生成的推荐位逻辑脚本自动生成不是随便拼一段“哈喽大家好今天给大家分享”。我在Skill里预设了五段式结构黄金开场、痛点铺垫、干货展开、情绪高潮、互动引导。每一段都对应一个“推荐位”概念也就是说每个时间段应该出现什么内容、多长、起到什么作用都要提前设计好。黄金开场通常占视频总时长的10%控制在3秒以内核心目标是让用户停下来。痛点铺垫在10%-25%位置要快速说出观众的困境让他们产生代入感。干货展开占30%-70%每15秒必须出现一个信息增量防止用户中途划走。情绪高潮在70%-85%需要一句极具记忆点的话让用户忍不住点赞收藏。互动引导收尾直接说明“留言你的问题”“转发给需要的朋友”。这个结构本身不是秘密但让模型稳定输出符合这个结构的脚本就需要把结构定义写进Skill的系统提示里。如果只靠一次会话手动提问模型很可能输出四不像。放在Skill里之后Codex每次生成都会严格按这五段来因为它的每一步推理都被约束住了。2.3 Skill机制怎么让分析过程可复用Skill的本质是一组遵循特定目录结构的文件Codex启动后会扫描本地skills文件夹把匹配的Skill内容加载到上下文里。它的价值不在于“塞一段现成提示词”而在于把完整的分析方法固化成可复用模块。第一个可复用点是分析维度的可复用。今天分析美妆爆款明天分析数码测评不需要重写提示词只需要在Skill的数据输入部分替换样本数据。第二打分权重的可复用。每次完成一批视频分析后可以把人工复核的结论再喂给Skill调整打分公式里的系数持续逼近真实运营判断。第三输出模板的可复用。Skill里写死了生成脚本的模板无论哪个品类拿到分析结果后输出的脚本格式保持一致。我自己实际用下来最明显的体感是——以前让Codex帮我写一条视频脚本要反复交代背景、语气、长度、结构现在只输入一个账号链接加一句“用douyin-script分析这个账号最近30天的数据并生成类似脚本”它自己就会把流程跑完中间几乎不用干预。3. Skill的具体开发实现3.1 Skill文件结构与配置Codex的Skill目录一般放在~/.codex/skills下每个Skill是一个独立文件夹。我先建了douyin-script目录里面放了SKILL.md、PROMPT.md和一个scripts子目录。目录结构如下~/.codex/skills/douyin-script/ ├── SKILL.md ├── PROMPT.md └── scripts/ ├── analyze.py └── report_template.mdSKILL.md的职责是告诉Codex“什么时候该用这个技能用了之后要干什么”。它更像一份使用手册而不是分析细节。PROMPT.md才是核心包含完整分析流程、指标定义、打分规则和脚本输出模板Codex执行该Skill时会把PROMPT.md作为系统级指令加载。scripts目录里放辅助脚本。analyze.py负责处理批量数据比如读取CSV格式的视频数据表计算完播率均值、互动率分段分布输出JSON结果。report_template.md是最终分析报告的Markdown模板Codex会把分析结论填充进去。这套结构的好处是模型只做“推理和总结”所有需要计算的东西都交给确定性的Python代码既减少幻觉又让结果可复核。3.2 PROMPT.md写作要点写PROMPT.md有几条非常关键的经验。第一条不要把期望的行为写得模棱两可。比如分析维度这里如果只写“分析视频内容”模型很可能输出“视频内容比较有趣”这种废话。我在PROMPT.md里明确写出“必须按以下12个维度逐项打分每个维度得分1-10并给出得分依据”。第二条给出格式化输出要求。分析报告必须包含表格包括维度、得分、依据、改进建议四列。表格天然逼着模型输出结构化内容比让它写一大段叙述要稳定得多。第三条写明计算逻辑。比如“完播率50%视为优秀40%-50%为良好低于40%需改进”这样模型不需要自己发挥直接套标准。还有一点容易被忽略就是要在PROMPT.md里加入“禁止行为”清单。我写了三条不做无数据支撑的主观评价、不得虚构视频数据、不得忽略低播放视频样本。低播放视频同样是重要参考分析爆款不看失败样本就像做投资只看赚钱的股票没有意义。3.3 可复用的脚本生成模板在PROMPT.md里我把最终脚本输出格式也定义好了所有视频脚本统一按这个模板生成。模板结构如下【脚本标题】必填20字以内包含关键词 【视频时长】建议值单位秒 【目标人群】根据账号数据反推 【脚本正文】 1. 开场钩子0-3秒 文案xxx 镜头xxx 字幕xxx 2. 痛点铺垫3-8秒 文案xxx 镜头xxx 3. 干货展开8-40秒 分三点每点前标注信息增量 4. 情绪高潮40-50秒 金句xxx 5. 互动引导50-60秒 指令xxx 【BGM建议】注明风格与节奏点 【话题标签】3-5个参考同类爆款不要小看这个模板的约束力。模型在生成时每一段都会主动标注文案、镜头、字幕等于把编导的执行方案都写出来了。用户拿到这个脚本不需要再理解“为什么这样写”直接按部就班拍摄就行。对比让Codex直接“随便写一条视频脚本”Skill模板加持下的产出最大差别在于镜头指令、信息增量标记和节奏时间点都在场内。这三点是短视频行业里区分新手和熟手的核心也是我把它们硬编码进模板的原因。3.4 代码分析脚本的编写思路analyze.py的核心功能是做数据归因。我在本机维护一个sample_data.csv里面按行存放对标账号视频的公开数据包括发布时间、时长、播放量、点赞量、评论量、收藏量、转发量、话题标签、BGM风格、前3秒文案类型。脚本读取CSV之后先计算派生指标再按维度汇总最后输出一个用于后续生成的JSON。派生指标的计算逻辑我贴出来import csv import json from collections import defaultdict def read_csv(path): with open(path, r, encodingutf-8) as f: return list(csv.DictReader(f)) def compute_metrics(rows): result { sample_count: len(rows), total_play: 0, total_like: 0, total_comment: 0, avg_completion_rate: 0, like_rate_distribution: [], top_themes: defaultdict(int) } for row in rows: play int(row[播放量]) like int(row[点赞量]) comment int(row[评论量]) complete float(row[完播率]) result[total_play] play result[total_like] like result[total_comment] comment result[avg_completion_rate] complete result[like_rate_distribution].append({ video_id: row[视频ID], like_rate: round(like / play * 100, 2) if play else 0, comment_rate: round(comment / play * 100, 2) if play else 0, }) result[top_themes[row[主题分类]]] 1 n len(rows) or 1 result[avg_completion_rate] round(result[avg_completion_rate] / n, 2) result[top_themes] dict( sorted(result[top_themes].items(), keylambda x: x[1], reverseTrue)[:5] ) return result if __name__ __main__: data read_csv(sample_data.csv) output compute_metrics(data) print(json.dumps(output, ensure_asciiFalse, indent2))看到这里你可能会问为什么不用Codex自己读CSV然后算我试过结果非常不稳定。模型容易被单个高点赞视频带偏或忽略掉一些极端样本。用脚本算完Codex拿到的是一份确定性结果然后再基于这份结果做定性分析比如“哪个主题赛道的评论率更高”“哪个时长的视频完播率更稳定”。人负责定规则机器负责算数和推理各干各擅长的事。4. 实操过程配置环境并跑通一次完整分析4.1 本地环境准备与Codex安装这一节给没有接触过Codex的读者。Codex是OpenAI推出的命令行AI编程工具把模型推理、文件读写、命令执行集成在一个终端会话里。安装前需要准备Node.js环境我当前用的是Node.js 18 LTS版本。安装命令很简单npm install -g openai/codex安装完成之后首次运行会要求配置AI服务提供方的访问密钥。Codex本身支持多种模型后端默认使用OpenAI系列模型但我做这个项目时更倾向于用DeepSeek的API毕竟成本更低、国内可直接使用。配置方式是在初始化对话框里选择自定义端点填入DeepSeek提供的API地址和密钥。配置完之后在命令行输入codex进入交互模式输入一句话任务指令Codex会自动开始干活。比如我经常用的指令是“读取当前目录下的sample_data.csv运行analyze.py完成分析然后按Skill模板生成5条脚本”。它一般会在几十秒内走完分析、推理、生成全过程。4.2 Codex接入DeepSeek模型的配置细节如果你也想用DeepSeek模型来跑这套Skill配置文件所在位置是~/.codex/config.toml重点关心model_provider和model两个字段。我的配置节选如下model deepseek-chat model_provider deepseek [model_providers.deepseek] name DeepSeek base_url https://api.deepseek.com/v1 env_key DEEPSEEK_API_KEY wire_api responses这里有一点值得注意wire_api要设置成responses而不是chat_completions。第一次我只改了base_url和model忘了这个字段结果Codex一直报“endpoint /responses 处理失败”因为直到某个版本为止Codex默认走Chat Completions协议而DeepSeek这边我配置的是Responses协议。两个协议的消息格式不一样模型自然没法正常响应。把wire_api改成responses之后连接问题消失任务执行恢复正常。这个坑我建议所有接第三方模型的读者都留意一下凡是Codex报endpoint相关错误优先检查config里的协议字段是否匹配。4.3 用Skill跑一次完整的爆款分析环境配置完毕后我用一个模拟场景演示完整流程。假设我有一个美妆账号想模仿对标账号的风格。我在sample_data.csv里维护了最近30天采集的20条对标视频公开指标然后输入如下命令codex 使用 douyin-script 技能分析 sample_data.csv 中的20条视频数据输出分析报告并在报告基础上生成3条美妆口播类视频脚本Codex会先根据“douyin-script”这个关键词把对应Skill的SKILL.md和PROMPT.md加载进上下文。接着它会查看sample_data.csv的结构调用scripts/analyze.py完成指标计算随后按照PROMPT.md里定义的分析维度逐项展开最后进入脚本生成阶段。在生成阶段Codex严格遵循模板输出。由于模板中要求每段脚本必须含文案、镜头、字幕三要素它生成的脚本天然具备可直接执行性。同时模板要求给出BGM建议和话题标签这正好覆盖了编导在拍摄前要准备的最后两份清单。4.4 生成脚本的实测输出这里展示其中一条生成脚本的缩略版本【脚本标题】初秋通勤妆30秒搞定高级感 【视频时长】35秒 【目标人群】25-35岁职场女性 【脚本正文】 1. 开场钩子0-3秒 文案通勤最怕迟到这个妆真的只要30秒。 镜头镜子前素颜状态快速切换到完妆状态制造对比冲击。 字幕大字弹出“30秒通勤妆” 2. 痛点铺垫3-8秒 文案每天早起化妆昨晚熬夜根本起不来。 镜头拍闹钟显示7:50表情焦虑。 3. 干货展开8-25秒 信息增量1底妆只用气垫重点拍脸颊和T区。 信息增量2眉毛用眉粉不用眉笔更快。 信息增量3口红选择豆沙色用手晕开当腮红。 镜头每个步骤给特写节奏紧凑。 4. 情绪高潮25-30秒 金句记住通勤妆的精髓不是画全是画对。 镜头镜头推向完妆后自信笑容。 5. 互动引导30-35秒 指令评论区告诉我你通勤最多能留几分钟化妆 镜头贴纸引导点击评论区。 【BGM建议】轻快节奏鼓点在第3秒强调钩子 【话题标签】#通勤妆 #快速化妆 #职场穿搭 #美妆教程 #早八人这条脚本的完整度已经接近专业编导初稿。据我实测直接拿去拍摄效率比从零写脚本高了大概3倍。而且因为BGM和话题标签都根据对标数据联动推荐跑出来的脚本不会出现“内容很好但不适合平台”的脱节感。5. 常见问题与调试实录5.1 上下文溢出与长任务失败使用过程中遇到最频繁的问题是Codex提示类似于“ran out of room in the models context window”的错误意思是任务的中间步骤太多超出了模型的上下文长度限制。这种情况在分析大量视频、一次性生成多条脚本时特别常见因为中间产物太多。我通过两个方法解决。第一把大任务拆小。之前我喜欢让它一口气完成“分析总结生成20条脚本”现在改成“先分析然后再让Codex读分析结果生成脚本”分两个会话执行每个会话的上下文压力小很多。第二在Skill里约束中间输出长度要求analyze.py只输出汇总后的JSON不要打印每一行原始数据减少上下文占用量。如果任务还是太长就建议分批。比如100条视频分5批分析每次20条最后再把5份汇总结果合起来做整体判断。上下文窗口是硬限制模型再聪明也绕不过去拆任务是我验证过最有效的手段。5.2 输出格式不稳定怎么约束模型分析报告和脚本模板都会要求固定格式但稍微复杂一些的任务模型偶尔还是会不按剧本走。比如让它按表格输出它偏偏用列表让它写三个信息增量它只写两个。第一招在PROMPT.md里加入正面示例和反面示例。给一个它可能输出的错误格式再给一个正确格式对模型有很强的引导作用。我在Skill里专门加了一小节“错误示范”效果立竿见影。第二招为关键输出增加自检要求。让Codex生成完脚本之后自己对照模板逐项检查缺失的自动补齐。这一步虽然多消耗一点上下文但能让最终产出更稳定。第三招模板中所有字段设置明确的填充规则。比如“必填20字以内”“1-5个”把空泛约束改成硬性标准模型就不需要猜测。5.3 数据采集的合规性问题与替代方案项目中需要用到对标账号的视频数据这里必须多说一句合规问题。我不建议用任何方式绕过平台限制去抓数据一方面有法律风险另一方面接口震荡也容易导致数据断供。我的做法是把种子账号的视频链接整理好逐一手工记录公开页面上可见的基本指标或者使用平台官方开放的创作者数据模块导出。现在很多平台提供了面向普通用户的历史数据看板直接在网页上看完播率、互动率等公开指标再手动录入CSV即可。一条视频录入耗时一两分钟20条样本也就半小时足够启动分析流程。规模做大之后再考虑接入官方开放平台API走正规数据通道。在Skill里我也写了提醒任何分析都必须基于真实可见的指标如果拿不到准确数据宁可减少样本量也不能编造数字。编出来的爆款分析报告只会带偏整个创作方向最后吃亏的还是自己。5.4 Skill调试技巧验证与迭代Skill不是写完就能用对必须反复验证。最简单的方式是准备一份固定的测试数据集每次修改PROMPT.md或打分规则后都跑一遍同样的任务对比输出结果。我会重点检查三个方面分析维度的完整性、打分逻辑是否与本地的分析结论一致、脚本模板有没有被严格执行。如果分析结果与预期不符优先检查打分权重是否合理。比如一开始我把完播率权重设为30%但在某一次测试中一条完播率极高但点赞率极低的视频被判定为头部爆款这明显不合理因为点赞率代表内容有没有真正打动用户。后来我把完播率权重降到25%、点赞率提高到25%同时引入评论率作为附加维度才让排序结果接近人类编导的判断。迭代的过程就是不断用真实案例校准Skill里的规则。我建议每个月回顾一次积累的校正记录把新发现沉淀进去。这个习惯能让Skill越用越准而不是写完就固定不变。6. 一些真实体感与后续扩展想法整套项目跑通之后我自己在写脚本和做选题上的时间投入至少省了一半。更重要的是分析逻辑被固化成代码和规则之后团队里新人也能靠这套Skill较快上手不再需要一个编导手把手带。后续我计划做两个方向上的扩展。一个是把Skill和定时任务绑定每周自动抓取一次对标账号数据生成周报再根据周报自动产出下周的选题脚本方向。另一个是让Skill支持更多平台比如小红书图文脚本和视频号口播脚本的模板底层分析逻辑相近只需要替换输出模板和平台指标权重即可。有兴趣的读者完全可以在我的这套结构基础上改成你所在行业的专属分析助手原理都是通用的。
返回列表