Skip to content

Repository files navigation

AD Douyin Report - 抖音视频审核与同行举报工具

一个面向 抖音内容风控、视频违规检测、同行广告监测、竞品视频举报证据整理 的 Python 项目。
支持从抖音链接或本地视频采集证据,结合 OCR / ASR / 大模型语义理解,输出结构化审核报告,适用于运营、法务、内容安全、品牌保护等场景。

快速入口: 联系作者

审核结论(主图)


项目作用与用途

本项目聚焦“短视频内容审核自动化”,典型用途包括:

  • 抖音视频审核:识别视频中的高风险表达、违规内容与敏感话术
  • 同行视频举报:针对竞品违规宣传、虚假承诺、诱导交易等行为做证据化输出
  • 广告合规巡检:辅助电商、医疗、美妆、金融、教育等行业做日常内容抽检
  • 运营风控预审:发布前做自动化风险扫描,降低账号处罚风险
  • 数据化复盘:沉淀审核历史,支持追溯、复查、对比分析

核心能力(What it can do)

  • 多输入模式:本地 mp4 文件审核、抖音链接自动下载审核
  • 证据抽取
    • 视频抽帧(关键时间点帧图)
    • OCR 文本识别(字幕/贴片文案/画面文字)
    • ASR 语音转写(faster-whisper)
  • 智能判定
    • 大模型违规风险评级(low / medium / high)
    • 违规类别识别(夸大宣传、导流、敏感承诺等)
    • 语义理解(行业、场景、人物、表达意图、受众)
    • 证据链归因(时间点 + 证据类型 + 说明)
  • 报告输出:结构化 JSON,便于归档、搜索、二次开发
  • 桌面客户端:GUI 展示“结论/语义/建议/证据/原始 JSON”,支持历史记录
  • 异常回退机制
    • yt-dlp 失败时回退网页解析下载
    • cookie 预检查与兜底逻辑
    • 依赖缺失时降级执行(例如禁用 ASR)

审核流程图占位图


典型业务场景(Use Cases)

1) 视频审核 / 内容安全

  • 批量检测达人口播、字幕和画面中的违规风险
  • 识别“绝对化承诺、功效夸大、诱导私聊、灰产引流”类文案
  • 快速给出整改建议,降低平台处罚与限流概率

2) 同行视频举报 / 竞品监控

  • 监控竞品账号内容策略与高频违规手法
  • 自动提取可用于举报的证据点(时间戳+文本+语义解释)
  • 输出结构化举报材料,便于人工复核后提交

3) 品牌风控 / 法务协同

  • 针对侵权宣传、虚假对比、敏感话术生成证据链
  • 为品牌法务、审核专员、投放团队提供统一报告格式

4) 运营数据复盘

  • 对历史审核结果做二次统计
  • 分析高风险内容模板,优化选题与脚本

语义理解界面


技术栈(Tech Stack)

Python 与核心库

  • Python 3.10+
  • opencv-python:视频读取、抽帧
  • easyocr:画面文本识别
  • faster-whisper:音频转写(ASR)
  • imageio-ffmpeg / ffmpeg:音视频处理
  • yt-dlp:抖音视频下载
  • playwright:网页回退解析(下载兜底)
  • requests:HTTP 请求
  • python-dotenv:环境变量管理
  • tkinter:桌面 GUI

模型与智能能力

  • Coze / 豆包 Bot API(大模型对话审核)
  • 语义理解 + 风险分类 + 证据归因

工程化能力

  • .env 配置管理
  • JSON 报告归档
  • 历史记录管理
  • Windows EXE 打包(适合业务侧分发)

关键词(GitHub SEO)

抖音审核, Douyin audit, 视频审核, 视频风控, 内容安全, 违规检测, 同行举报, 竞品监控, 广告合规, 口播识别, OCR, ASR, Whisper, easyocr, OpenCV, Coze API, 风险分级, 证据链, 自动举报材料, 短视频治理, 反作弊, 运营风控, 品牌保护, 法务取证, Python GUI, tkinter, yt-dlp, Playwright, ffmpeg, JSON report


快速开始(Quick Start)

pip install -r requirements.txt
python video_audit.py --video "D:\videos\demo.mp4" --output report.json

或:

python video_audit.py --url "https://www.douyin.com/video/xxxx" --download-dir ".\downloads" --output report.json

输出结果说明

审核报告示例结构:

  • evidence:OCR / ASR / 关键帧等本地证据
  • llm_audit:模型审核结果
    • 风险等级
    • 违规类别
    • 证据链归因
    • 语义理解
    • 风险整改建议(外置建议)

可用于:

  • 人工复核
  • 举报材料整理
  • 内容策略优化
  • 多系统对接(风控中台 / BI 平台)

外置建议能力(帮助发布者降低风控风险)

除了“是否违规”的判定,本项目还支持输出面向视频发布者的 外置建议,用于在发布前后降低被平台风控、限流或处罚的风险。

外置建议可覆盖:

  • 文案层:弱化绝对化表述(如“百分百”“永久有效”),减少夸张承诺
  • 口播层:优化高敏感话术,避免诱导私聊、站外导流、过度营销表达
  • 画面层:识别并提醒高风险贴片词、字幕词、封面文案
  • 节奏层:建议在高风险时间片段进行重剪或替换镜头
  • 合规层:根据行业属性(美妆/医疗/金融/教育/电商)提供差异化提醒

建议输出形态(可对接运营流程):

  • 风险点 -> 原因 -> 替代表达(可直接复制改稿)
  • 时间戳级建议(例如 00:12-00:18 口播改写)
  • 发布前检查清单(标题、封面、字幕、评论引导)

这一能力适合用于:

  • 达人内容发布前自检
  • 代运营团队批量质检
  • 品牌方投放素材预审核
  • 法务/审核团队给创作者出整改意见

关键词补充:内容整改建议、视频发布优化、抖音风控规避、违规话术替换、创作者合规指导、短视频合规改稿、发布前风险评估


项目结构(已更新)

ad-douyin-report/
├─ README.md
├─ README_EN.md
├─ LICENSE
├─ CONTRIBUTING.md
├─ CHANGELOG.md
├─ keyword_rules.py         # 关键词规则引擎示例
├─ batch_tasks.py           # 批量任务生成
├─ report_summary.py        # 报告聚合统计
└─ docs/
   └─ images/
      ├─ 1.png              # 审核结论(主图)
      ├─ 2.png              # 语义理解
      ├─ 3.png              # 外置建议
      ├─ 4.png              # 本地证据
      ├─ 5.png              # 原始JSON
      └─ workflow-placeholder.svg

界面截图说明

当前 README 使用以下截图路径:

  • docs/images/1.png(审核结论,主图)
  • docs/images/2.png(语义理解)
  • docs/images/3.png(外置建议)
  • docs/images/4.png(本地证据)
  • docs/images/5.png(原始 JSON)
  • docs/images/workflow-placeholder.svg(流程示意)

主界面截图(5张)

模块 截图
1) 审核结论(主图) 审核结论(主图)
2) 语义理解 语义理解
3) 外置建议 外置建议
4) 本地证据 本地证据
5) 原始 JSON 原始JSON

随机 Python 代码示例

下面是一段随机生成的 Python 示例代码(与主流程无强耦合),用于展示如何做“违规关键词命中评分”。

from collections import Counter
import re


RISK_TERMS = {
    "绝对化承诺": ["百分百", "永久", "根治", "包过", "稳赚"],
    "诱导交易": ["私信我", "加V", "VX", "点击下方", "马上下单"],
    "夸大功效": ["立刻见效", "当天见效", "无副作用", "秒瘦", "逆天效果"],
}


def simple_risk_score(text: str) -> dict:
    text = re.sub(r"\s+", "", text or "")
    hit = Counter()
    for cat, words in RISK_TERMS.items():
        for w in words:
            n = text.count(w)
            if n:
                hit[cat] += n

    total = sum(hit.values())
    level = "low" if total <= 1 else "medium" if total <= 3 else "high"
    return {
        "risk_level": level,
        "total_hits": total,
        "detail": dict(hit),
    }


if __name__ == "__main__":
    sample = "本产品百分百有效,当天见效,无副作用,想了解私信我。"
    print(simple_risk_score(sample))

外置建议改写示例(建议前后对比)

场景 高风险表达(建议避免) 优化后表达(建议采用)
功效承诺 7天百分百瘦10斤,无效退款 建议结合饮食和运动管理,实际效果因人而异
引导交易 想买的私信我,给你隐藏链接 可通过平台官方商品卡了解详情
绝对化表述 全网第一,永久有效 本内容仅基于公开信息经验分享,不构成绝对结论

以上对比可直接用于创作者改稿,降低风控与限流风险。


Roadmap(可扩展方向)

  • 多模型交叉审核(降低误判)
  • 违规规则引擎 + LLM 混合判定
  • 批量队列任务与并发审核
  • 侵权搬运识别(相似帧/哈希)
  • Web 控制台与 API 服务化

免责声明

本项目用于内容安全研究、合规审核与证据整理,请在合法合规范围内使用。涉及平台规则、隐私与数据采集时,请遵循当地法律法规及平台政策。


FAQ

1) 为什么有时下载抖音视频失败?

  • 常见原因是 cookie 过期、频控或网络环境问题。建议更新 cookie 并重试。

2) 为什么 ASR 没有输出?

  • 可能是未安装 faster-whisperffmpeg 不可用,可先确认依赖安装完整。

3) 能否只做 OCR 不做语音识别?

  • 可以,在运行参数中关闭 ASR 即可,项目支持降级执行。

Contributing

欢迎提交 Issue / PR 来完善以下方向:

  • 违规规则词库扩充
  • 更多平台兼容(快手、视频号等)
  • 审核结果可视化看板
  • 批量任务调度与并行优化

贡献前建议:

  • 先开 Issue 说明改动目标
  • 保持代码风格一致并补充必要说明
  • 对关键功能提供最小可复现示例

Changelog

请查看 CHANGELOG.md 获取版本演进记录。


License

本仓库默认采用 MIT License,详见 LICENSE


English Version

See README_EN.md for the English documentation.


联系作者

如需项目交流、定制开发、业务合作,可扫码添加微信:

微信二维码

About

抖音视频审核检测|同行举报分析工具|抖音视频风控|抖音风控||优化视频|举报同行|视频监测|视频检测

Topics

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages