这个Python脚本可以帮助YouTube频道所有者检测评论区中可能的助记词(BIP39)骗局,并自动删除这些恶意评论。
- 自动获取您YouTube频道上的所有视频
- 扫描所有视频评论,检测潜在的助记词骗局
- 交互式删除功能,让您可以选择性删除恶意评论
- 生成检测和删除操作的日志报告
- 使用时间戳避免重复检测,节省API配额
- 增强的助记词检测,可识别各种格式的助记词
- 多语言支持,可检测中文评论中嵌入的助记词
- 简化高效的检测算法,去除所有非英文字符后检测连续单词
- Python 3.7+
- Google API 客户端库
- YouTube Data API v3 访问权限
-
克隆或下载此项目到本地
-
安装所需依赖:
pip install -r requirements.txt
- 创建并配置YouTube API证书:
- 访问 Google Cloud Console
- 创建一个新项目
- 启用YouTube Data API v3
- 创建OAuth 2.0客户端ID,下载JSON凭证文件
- 将凭证文件重命名为
client_secret.json并放置在项目根目录
您的频道ID是使用此工具的必要信息。以下是获取频道ID的方法:
-
从频道URL获取
- 如果您的频道URL是
https://www.youtube.com/channel/UC...格式,那么UC后面的字符串就是您的频道ID - 例如:
https://www.youtube.com/channel/UCXXXXX中的ID是UCXXXXX
- 如果您的频道URL是
-
对于自定义URL(如@用户名)
- 访问您的频道页面
- 右键点击页面,选择"查看页面源代码"
- 搜索
channelId,找到类似"channelId":"UCxxxxxxxxxxxxxxxx"的内容 - 或使用Comment Picker等工具获取
-
通过YouTube Studio获取
- 登录YouTube Studio
- 点击左侧菜单的"设置"
- 选择"频道">"高级设置"
- 在页面上会显示您的频道ID
编辑config.py文件,根据您的需求调整以下关键参数:
# 频道配置
CHANNEL_ID = "你的频道ID" # 替换为您的实际频道ID,例如UCXXXXX
# 助记词检测配置
MIN_SEED_WORDS = 12 # 最少单词数量,检测到至少这么多助记词单词才会被标记
# 评论扫描配置
DAYS_TO_SCAN = None # 设为None扫描所有视频,不限时间范围
# 或设置具体天数,如30,只扫描最近30天的视频首次运行时,您可能会遇到授权相关的问题:
-
"尚未完成Google验证流程"错误
- 这是因为您的OAuth应用尚未通过Google验证
- 解决方法:将您的Google账户添加为测试用户
- 在Google Cloud Console中,进入"API和服务" > "OAuth同意屏幕"
- 在"测试用户"部分,添加您的Google账户电子邮件
- 保存更改后重新运行脚本
-
授权流程说明
- 脚本需要访问您的YouTube数据才能检测和删除评论
- 首次运行时会打开浏览器要求授权
- 授权后,令牌会保存在
token.pickle文件中,后续运行无需重新授权
如果您遇到"没有找到视频"的错误,可能是因为时间范围限制:
-
默认只扫描最近30天的视频
- 如果您的频道在此期间没有视频,会导致错误
-
修改扫描时间范围
- 在
config.py中设置DAYS_TO_SCAN = None扫描所有视频 - 或设置更大的值,如
DAYS_TO_SCAN = 365扫描最近一年的视频
- 在
本工具使用简化高效的方法检测评论中的助记词:
-
预处理:
- 去除所有非英文字符:移除中文、特殊符号、数字等,只保留英文单词
- 提取纯英文单词:将文本转换为小写并分割成单词列表
- 这种方法可以有效处理各种格式的评论,无论是中英混合还是包含特殊符号
-
检测方法:
- 连续单词检测:查找连续出现的BIP39单词
- 滑动窗口检测:在固定大小的窗口内检查BIP39单词密度
- 整体密度检测:计算整个评论中BIP39单词的密度
-
优势:
- 简单高效:不依赖复杂的正则表达式或格式识别
- 鲁棒性强:能够检测各种伪装的助记词,无论使用何种格式
- 低误报率:通过多种检测方法结合,减少误报
这种简化的检测方法可以有效识别各种形式的助记词骗局,包括:
- 直接发布的助记词
- 嵌入在中文文本中的助记词
- 使用特殊符号分隔或包围的助记词
- 被故意添加了干扰内容的助记词
本工具提供交互式删除功能,让您可以更灵活地处理检测到的骗局评论:
-
评论展示:
- 扫描完成后,脚本会列出所有检测到的可能骗局评论
- 每条评论都有编号、作者、内容和检测到的助记词信息
-
删除选项:
- 全部删除:一键删除所有检测到的骗局评论
- 选择性删除:根据编号选择要删除的特定评论
- 不删除:跳过删除操作,仅记录检测结果
-
优势:
- 避免误删:可以人工审核每条评论,确保不会误删合法内容
- 灵活操作:可以根据具体情况选择不同的处理方式
- 批量处理:支持一次选择多条评论进行删除
以下是脚本可以检测的骗局评论示例:
-
直接发布助记词:
abandon ability able about above absent absorb abstract absurd abuse access accident -
特殊格式包围:
感谢您的分享!我有一个问题:我的钱包里有USDT,恢复短语是{body decorate ankle journey apart rain predict warm track fly symptom mad},如何转账? -
冒号后跟随:
感谢分享!我想请教一下,我的OKX钱包里有USDT,并且我有一个12字的恢复短语:iron observe slam major mad decorate feed photo awesome vast kitchen faint。我该如何将这些USDT转移到我的币安账户呢? -
中文文本中嵌入:
这个视频很有用,我学到了很多。顺便问一下,我的iron observe slam major mad decorate feed photo awesome vast kitchen faint这个助记词怎么导入到钱包?
-
编辑
config.py文件,设置您的YouTube频道ID和其他配置参数 -
首次运行脚本时,需要进行授权:
python youtube_scam_detector.py
-
脚本会打开浏览器,要求您登录Google账户并授权应用
-
授权完成后,脚本会自动执行扫描操作
-
扫描完成后,如果检测到骗局评论,脚本会列出这些评论并询问您如何处理:
- 输入
1删除所有检测到的评论 - 输入
2选择性删除特定评论 - 输入
3不删除任何评论
- 输入
-
首次运行会扫描所有评论,后续运行将只扫描上次运行后的新评论,节省API配额
脚本使用时间戳功能来避免重复检测评论,具体工作方式:
- 每次运行结束时,会记录当前时间到
last_scan_time.json文件 - 下次运行时,只检测该时间之后发布的新评论
- 如需强制进行全量扫描,可在
config.py中设置FORCE_FULL_SCAN = True
您可以设置定时任务(如cron job)定期运行脚本,以持续监控和清理频道评论区。
示例cron配置(每天凌晨2点运行):
0 2 * * * cd /path/to/project && python youtube_scam_detector.py
-
"没有找到视频"错误
- 原因:可能是
DAYS_TO_SCAN设置导致没有视频在扫描范围内 - 解决:将
DAYS_TO_SCAN设为None或更大的值
- 原因:可能是
-
授权失败
- 原因:OAuth应用未验证或权限不足
- 解决:将您的账户添加为测试用户,或检查API项目设置
-
API配额限制
- 原因:YouTube API有每日调用限制
- 解决:减少扫描频率,或优化
MAX_PAGES_PER_VIDEO等参数
-
未检测到明显的助记词
- 原因:助记词可能被特殊格式或大量文本掩盖
- 解决:已优化检测算法,现在使用简化高效的方法,可以识别各种格式的助记词
- 请确保您拥有频道管理员权限才能删除评论
- API调用有配额限制,YouTube Data API v3每天免费配额为10,000单位
- 使用交互式删除功能可以避免误删合法评论
- 如果需要自动化运行(如通过cron任务),可以修改脚本以跳过交互式确认