时间
类别
全选
Videos
Shorts
国家
全选
US
BR
ID
TH
VN
其他 ▾
游戏
全选
SLG 策略
休闲游戏 Casual
RPG 角色扮演
MOBA
FPS / TPS 射击
沙盒 Sandbox
云游戏 Cloud Gaming
其他 Others
达人
全选
Review/Analysis
Tutorial/Guide/Play
Highlights/Clips
News/Commentary
本周入库
0
建联漏斗
0
初次建联
0
已打开
0
已回复
启动合作
0
总订阅量
0
库内全部达人
国家来源 Top 5
按入库达人数量
订阅段分布
达人数量 × 订阅量级
0
1万-10万
0
10万-50万
0
50万-100万
0
100万-500万
0
500万+
互动率 × 播放率气泡图
气泡大小 = 订阅数;颜色区分内容类型
Videos
Shorts
达人分层归属
按内容类型分类,决定投放优先级
来源类型
长视频为主
主池
Shorts占比 < 30%
0 位达人
占库内 0%
来源类型
Shorts 为主
Shorts 池
Shorts占比 > 70%
0 位达人
占库内 0%
来源类型
混合 / 低活跃
低健康
近30天发布 < 2条
0 位达人
占库内 0%
共 0 位达人
建联状态
全部0
未建联0
已发送0
已打开0
已回复0
合作中0
已拒绝0
入库来源
Videos0
Shorts0
内容方向
SLG 策略0
休闲游戏0
RPG 角色扮演0
MOBA0
FPS / TPS0
沙盒 Sandbox0
云游戏0
其他0
达人类型
Review/Analysis0
Tutorial/Guide/Play0
Highlights/Clips0
News/Commentary0
其他0
已选 0 位
频道 国家 入库来源 内容方向 达人类型 订阅数 互动率 播放率 入库日期 邮箱 已发送邮件
YouTube 达人筛选
Videos / Shorts 双模式 · 本地存储 · 参数可实时调整
API 设置
💡 每日免费配额 10,000 单位,太平洋时间 00:00 重置。12关键词×4页约 5,800 单位。
API 调取流程 & 配额消耗明细
步骤 API 端点 配额/次 通道A 通道B 说明
1.搜索收集 videos.list
(chart=mostPopular)
1/页 4~8 通道A:获取地区热门游戏视频
1.搜索收集 search.list
(type=video)
100/页 1200~4800 通道B:关键词搜视频
2.粗筛频道 channels.list 1/50频道 ≈3~4 ≈6~12 批量获取订阅/国家,淘汰50-70%
3.深入分析 playlistItems.list 1/频道 ≈1/频道 ≈1/频道 仅通过粗筛的频道
3.深入分析 videos.list 1/频道 ≈1/频道 ≈1/频道 获取播放/点赞/评论/品牌合作
通道A 总计(热门扫描) ≈300~500 4页热门≈8 + 频道处理≈300~400
通道B 总计(关键词搜索) ≈3,000~6,000 12关键词×4页≈4800 + 频道处理
💡 粗筛流程:订阅数 → 注册国家(空值放行)→ 游戏类型(topicDetails,空值放行)→ 仅通过者进入深入分析
筛选参数
· 频道语言影响搜索结果相关性排序
· 注册国家为注册时填写的国家信息
· 此字段由创作者自行填写,可能与所在地不符
💡 搜索通道说明
🔥 通道A(热门视频扫描):直接获取目标地区当前热门游戏频道的视频,regionCode 地区过滤有效,无需关键词,配额消耗极低(约 408 单位),适合快速摸底热门达人。覆盖约 150-200 个频道。
🔍 通道B(关键词精准搜索):按关键词搜索视频,从视频中提取频道信息,精准度高但配额消耗大(约 5,224 单位),适合垂直领域深挖。搜索阶段 regionCode 对关键词搜索无效。
建议:先跑通道A快速覆盖热门达人,再跑通道B精准深挖,结果自动去重合并。两个通道同时只能运行一个。
📊 数据分析基数
所有数据分析基数为 maxResults = 50条 Videos,已过滤掉 Shorts(≤60秒)
暂无搜索记录
0
已扫描
0
已通过
0
不符合
0
有合作记录
0
配额消耗
实时日志
已通过 (0) 不符合 (0) 全部 (0)
# 频道名称 订阅数 均播 播放率 互动率 最新发布 国家 邮箱 关键词 品牌 状态
暂无数据
转化率参数设置 (修改后自动重算)
点击用户 = 均播 × 点击率
下载量 = 点击用户 × 下载率
总效果 = 下载量 × 单价
建议金额 = 总效果 × 风险区间
点击用户 = 均播 × 点击率 → 下载量 = 点击用户 × 下载率 → 总效果 = 下载量 × 单价 → 建议合作金额 = 总效果 × 风险区间
含邮箱达人:0 名  ·  已勾选:0
勾选后邮件会同时发送到测试邮箱
# 频道名称 订阅数 近10条均播 互动率 邮箱 来源 状态 建议合作金额 (USD)
暂无达人数据,请先在达人库选择达人后点击「发起建联」
📧 邮件工作区域
📮 腾讯企业邮箱 SMTP 未连接
🏢 服务器:smtp.exmail.qq.com  ·  端口:465(SSL)
请在企业邮箱「设置 → 客户端设置」开启 SMTP,使用授权码登录
🔍 自建邮件追踪(可选) 未启用
启用自建邮件追踪
邮件仍通过腾讯企业邮箱 SMTP 发送。
开启后,自建追踪服务将为每封邮件注入追踪标识,实时记录打开与点击行为。
📮 腾讯 SMTP 发送 🔍 自建追踪层
已关闭
✏️ 邮件模板编辑
邮件正文 · [Creator Name] 占位符将在发送时自动替换

Hi [Creator Name],

I've been watching your game videos, and I really love your content style and energy.

We're looking for creators like you to make a paid gameplay / review video for our mobile game—Starparks.

What we offer:

  • Full creative control (keep your own style)
  • Free game support
  • No strict script

If you're interested, I can send you the full collaboration details right away.

Best regards,
Kxun
CEO
300 LIVE

📤 邮件发送
📮
SMTP 直发(腾讯企业邮箱)
邮件将通过腾讯企业邮箱 SMTP 直接发送,不含追踪功能
0
待发送
0
成功
0
失败
就绪,请勾选目标达人后发送
📊 自建追踪投递统计 Analytics
📊
自建追踪未启用
开启上方「自建邮件追踪」并完成配置后,此处将显示数据
📅 发送记录(按日期)
暂无发送记录
📧 邮件预览
主题
正文
账号
API 配置
数据刷新
邮件工具
通知
成员管理
API 配置
YouTube Data API Key
用于频道数据抓取,每日配额 10,000 units
每日刷新比例
库内存量达人每日刷新的比例
刷新时间(UTC)
每日自动刷新执行时间
配额监控
配额预警阈值
消耗超过此比例时发送通知
禁用 search.list
强制禁用高消耗端点(100u/次)
邮件工具同步
Webhook URL
邮件工具推送建联状态变更的地址
自动同步
打开/回复状态自动更新到达人库
时区
所有时间戳以此时区为准
系统方案 · 存储方案
存储集中化方案 — 将所有存储从本地分散统一迁移至腾讯云 PostgreSQL
规划中
一、现有存储全景图
腾讯云服务器(mailer300 / 43.130.49.17)
服务 端口 存储位置 类型 数据量
ai.300live.com 前端443/var/www/ai-tools/ + localStorage静态HTML + 浏览器存储1.4M
storage-api(达人库代理)3082/var/www/storage-api/outreach.dbSQLite20K
email-server(邮件建联)3080/var/www/youtube-tools/email-server/data.dbSQLite4K
track-server(邮件追踪)3081/opt/track-server/track.dbSQLite4K
youtube-storage3082/var/www/youtube-tools/data/*.jsonJSON文件(30天清理)4.8M
langdetect 模型/home/ubuntu/langdetect/lid.176.bin二进制模型125M
Mac Mini(Tailscale: 100.68.146.94)
gamecreator-hub :3000 — PostgreSQL 达人库核心数据,当前 13 条达人记录
⚠ Mac Mini 是达人库唯一数据源,腾讯云 storage-api 通过 Tailscale 内网代理访问
MacBook 本地(浏览器 localStorage,29处读写)
gchub_creators
达人库本地缓存
gchub_outreach
建联状态追踪
email_send_history
邮件发送记录
email_api_token
邮件服务认证
gchub_channel_videos
频道视频缓存
YouTube API 配额
配额追踪
服务器资源概览
mailer300 · 43.130.49.17 · Intel Xeon E5-26xx v4 · 2 vCPU
2026-04-23 快照
磁盘 50 GB
已用 9.8G · 可用 38G
19.6%
日志 732M langdetect 126M email-tracking 62M storage-api 29M youtube-tools 45M track-server 19M ai-tools 3M 其他 ~8.8G
内存 1.9 GiB
已用 504Mi · 可用 1.2Gi · 缓存 1.3Gi
26%
gamecreator-hub
86M
track-server
72M
email-server
72M
storage-api
72M
PM2 daemon (root)
73M
PM2 daemon (ubuntu)
69M
PostgreSQL live300db · 13 MB
16 张表
user_settings
3.2M
filter_results
240K
sent_emails
112K
creators
96K
open_events
80K
其他 11 张表
336K
二、集中化迁移方案(5 个阶段)
Week 1 阶段一:PostgreSQL 部署 + Mac Mini 迁移(最高优先级)
1.1 腾讯云安装 PostgreSQL,创建 300live_db 数据库和用户
1.2 Mac Mini 导出 gamecreator-hub PostgreSQL 数据 → pg_dump → scp 传输到腾讯云
1.3 腾讯云执行 pg_restore 导入达人库数据
1.4 gamecreator-hub 部署到腾讯云,修改 .env 指向本地 PostgreSQL
Week 2 前半 阶段二:SQLite → PostgreSQL 迁移
300live_db 建立统一表结构:sent_emails / webhook_events / open_events / click_events / tracked_links / outreach_replies / youtube_filter_results
编写 Node.js 迁移脚本逐一迁移 4 个 SQLite DB + JSON 文件数据
迁移前备份所有 SQLite 文件(改名 .bak),迁移后校验行数
Week 2 后半 阶段三:后端服务改造
storage-api:移除 Mac Mini 代理,直接连接本地 PostgreSQL
email-server:移除 better-sqlite3,改用 pg 驱动
track-server:移除 better-sqlite3,改用 pg 驱动
youtube-storage:JSON 文件读写改为 youtube_filter_results 表(保留30天清理逻辑)
Week 3 前半 阶段四:前端 localStorage 上云
gchub_creators
高优 → 实时查询API
gchub_outreach
高优 → outreach API表
email_send_history
中优 → sent_emails表
email_api_token
中优 → 服务端session
gchub_tag_params
低优 → 保留本地
gchub_filter_history
低优 → 保留本地
Week 3 后半 阶段五:Nginx 配置调整 + 清理
api.300live.com proxy_pass 从 Tailscale 100.68.146.94 改指向 127.0.0.1:3000
合并重复服务:track-server / email-tracking / youtube-storage-server / storage-api 各保留一个
清理 Mac Mini Tailscale 依赖,确认无服务依赖后可下线
三、迁移后目标架构
腾讯云 mailer300(43.130.49.17)
├── Nginx :443
│ ├── ai.300live.com → /var/www/ai-tools/
│ ├── api.300live.com → 127.0.0.1:3000 (本地,不再走Tailscale)
│ ├── youtube.300live.com → :3080 / :3082
│ └── track.300live.com → :3081
├── gamecreator-hub :3000(本地部署)
└── PostgreSQL :5432 — 300live_db
    ├── creators(达人库)
    ├── sent_emails / webhook_events
    ├── open_events / click_events / tracked_links
    ├── outreach_replies
    └── youtube_filter_results
Mac Mini → 可下线(不再被任何服务依赖)
四、风险评估 & 回滚方案
风险 影响 缓解措施
PostgreSQL 迁移数据丢失迁移前备份所有 SQLite 文件,迁移后校验行数
Mac Mini 下线导致服务中断先在腾讯云并行运行,验证后再切换 Nginx
localStorage 数据未同步保留 localStorage 作为降级方案,渐进迁移
50G 磁盘空间不足当前已用 9.3G,PostgreSQL + 数据预估 < 2G,风险低
并发写入冲突SQLite 原为单写,PostgreSQL 并发支持更好
回滚方案:每个阶段保留原始文件和配置 — SQLite DB 文件改名 .bak,Nginx 配置备份后修改,Mac Mini 服务在完全验证前不停止。
系统方案 · 多重语言校对
Comment 语言校验 — 服务端检测方案(v2)
规划中
一、架构概览
浏览器前端                 腾讯云服务器                                    外部
───────────               ────────────────                                  ─────
                            ┌─ gamecreator-hub (:3000)
点击"Comment语言校验" ──→ │  POST /api/lang-check                  │
                            │    1. 调 YouTube API 取评论        │──→ YouTube Data API v3
                            │    2. 调 Python fasttext 检测语言 │
                            │    3. 60%规则判定 → 写PG + 返回 │
                            └────────────┬───────────────────┘
                                           │
                                  PostgreSQL
                                comment_lang / lang_verified_at
核心变化:YouTube API 调用 + 语言检测全部在服务端完成,前端只发一个请求。API 配额:12 units / 次
二、语言判定规则(核心)
条件 comment_lang 值 前端显示
某语言占比 > 60%该语言代码(如 th、en)国家代码右侧显示 ✅ th
无语言超 60%国家代码右侧显示 ✅ ❓
无评论 / 评论关闭null国家代码右侧显示
未校验null(lang_verified_at 也为空)国家代码右侧无任何标识
TH 频道,评论70%泰语 → TH ✅ th
US 频道,45%英语+40%西语 → US ✅ ❓
JP 频道,未校验 → JP
KR 频道,评论被关闭 → KR —
三、数据库变更
-- creators 表新增两列
ALTER TABLE creators ADD COLUMN comment_lang text;
ALTER TABLE creators ADD COLUMN lang_verified_at timestamptz;
类型 说明
comment_langtextnull=未校验或无评论;语言代码=超60%;❓=无语言超60%
lang_verified_attimestamptz最近一次校验时间,null=未校验
四、后端新增 API(gamecreator-hub :3000)
4.1 下载 fasttext 模型
cd /var/www/gamecreator-hub
wget -q https://dl.fbaipublicfiles.com/fasttext/supervised-models/lid.176.bin \
     -O /var/www/gamecreator-hub/lid.176.bin
4.2 Python 语言检测脚本(/var/www/gamecreator-hub/lang_detect.py
#!/usr/bin/env python3
import sys, fasttext
model = fasttext.load_model('/var/www/gamecreator-hub/lid.176.bin')
for line in sys.stdin:
    t = line.replace(' ',' ').strip()
    if t:
        pred = model.predict(t, k=1)
        print(pred[0][0].replace('__label__',''))
    else: print('und')
4.3 POST /api/lang-check — 处理流程
请求体:{ "channelId": "UCxxxxxx", "apiKey": "AIzaSy..." }
① channels.list → uploadsPlaylistId② playlistItems → 最近10个视频ID③ commentThreads → 各3条(共30条)④ fasttext检测⑤ 60%规则判定 → 写PG
4.4 返回格式
{ "channelId": "UCxxxxxx",
  "comment_lang": "th",
  "lang_verified_at": "2026-04-23T12:00:00Z",
  "detail": { "totalComments":30, "langDistribution":{"th":22,"en":5,"ko":3},
             "topLang":"th", "topLangRatio":0.73, "rule":"th 73% > 60% → th" } }
4.5 异常情况
• 评论关闭 / 0 条评论 → comment_lang = nulllang_verified_at = now()
• YouTube API 报错 → HTTP 500 + 错误信息
• PUT /api/creators allowed 扩展:增加 comment_lang, lang_verified_at
五、前端变更
5.1 新增按钮
在「移出库」按钮后新增 「Comment语言校验」 按钮:
• 默认 dimmed(灰色半透明),选中达人后激活
• 每次仅允许选中 1 个达人进行校验
• 校验中显示 loading 旋转图标
5.2「国家」列显示变更(在国家代码右侧追加标识)
未校验:TH
已校验有主语言:TH ✅ th
已校验无主语言:TH ✅ ❓
已校验无评论:TH —
5.3 新增 JS 函数 langCheckCreator()
① 检查选中达人数量(必须且仅1个)
② 获取选中达人的 channelId
③ 选择配额最低的 API Key
④ POST /api/lang-check { channelId, apiKey }
⑤ 成功后更新本地数据 + 重新渲染列表
⑥ 按钮恢复状态
六、执行步骤(12 步)
# 操作 文件 / 位置
1下载 fasttext lid.176.bin 模型服务器
2创建 lang_detect.py 脚本/var/www/gamecreator-hub/
3测试 Python 脚本服务器命令行
4PG 增加列 comment_lang + lang_verified_at服务器 psql
5server.js 增加 child_process + detectLanguages()服务器
6server.js 新增 POST /api/lang-check 路由服务器
7server.js PUT allowed 扩展服务器
8pm2 restart gamecreator-hub服务器
9前端 UI + JS 变更ai-tools/index.html
10同步变更youtube-tools/index.html
11node --check 语法验证服务器
12端到端测试浏览器
七、风险与备选
风险 应对
lid.176.bin 下载失败scp 传输
YouTube 视频无评论comment_lang=null,显示 TH —
评论被关闭同"无评论"处理
API Key 配额耗尽前端选配额最低 Key,耗尽时提示用户
系统方案 · Api方案
4张核心表 × 前端功能 × API端点 关联脑图 — 点击读取字段查看所有引用功能
数据库 4 张核心表核实
channels(达人基础数据) 15 字段
channel_id PK · channel_name · country · subscribers · avg_views_30 · play_rate · engagement_rate · last_published_at · has_sponsorship · email · game_type enum · creator_type enum · content_type · activity_30d · imported_at
outreach(建联记录) 7 字段
id PK · channel_id →channels · sent_at · opened_at · replied_at · deal_started_at · campaign_id
users(账号体系) 5 字段
id PK · email · password_hash · role admin/viewer · created_at
sync_logs(同步日志) 5 字段
id PK · source email_tool/google_api · synced_at · records_count · status
数据库、前端功能与 YouTube API 端点关联脑图
点击读取字段标签 → 查看所有引用该字段的前端功能 | 点击功能行 → 查看数据链路说明
channels
outreach
users
sync_logs
本地计算(0 units)
系统方案 · 达人标签参数
内容方向与达人类型的匹配关键词/判定规则 — 入库时自动分类,支持手动修正
内容方向 游戏类型 — 匹配关键词示例
入库时扫描全部视频(约50条),统计每个分类的关键词命中视频数,取命中最多的分类打标。
达人类型 匹配关键词示例
入库时扫描全部视频(约50条),统计每个达人类型的关键词命中视频数,取命中最多的类型打标。
打标逻辑说明 · 计分制
入库时对每位达人的约 50 条视频逐条扫描,统计每个分类/类型的关键词命中视频数,取命中视频数最多的作为打标结果(而非第一次命中即打标)。同分时取列表靠前项。无命中时回退为"其他"。打标完成后支持在达人库手动修正。