Files
StudioLift/README.md
Sidney Zhang b8bd749f43 feat(scripts): 支持动态指标和维度参数配置
为 build_studio_urls.py 添加指标和维度的可配置支持,包括:
- 新增 metrics.json 和 dimensions.json 映射文件加载
- 支持中文/英文别名映射及指标代码透传
- 列别名扩展以识别"指标"和"维度"列
- 空值时自动回退到 CONFIG 默认值
2026-08-24 15:28:48 +08:00

8.5 KiB
Raw Blame History

YouTube Studio 工具集

本项目包含四个 Trae CN 技能skills及配套 Python 脚本,覆盖 YouTube Studio 内容管理器Content Manager分析的完整工作流环境准备 → 批量生成报告 URL → 群组名解析实体 ID → 脚本化下载分析数据

仅支持 Windows。

技能清单

技能 用途 触发示例
uv-env-setup 用 uv 准备并维护 Python 运行环境(pyproject.tomluv syncuv run 「帮我准备环境」「装依赖」
yt-studio-url-builder 根据需求清单CSV/Excel批量拼接 explore 报告 URL 「根据这份清单生成 Studio URL」
youtube-studio-csv-download 复用已登录浏览器会话,脚本化下载分析 CSVzip 「用我的 Chrome 会话下载这份 CSV」
yt-studio-groupid-lookup 把一批群组名批量解析为 entity_idgroupId并标注归属的内容所有者 「把这些群组名查成 Group ID」

项目结构

├── skills/                        # 技能源目录(安装脚本从这里复制)
│   ├── uv-env-setup/              #   环境准备技能
│   │   ├── SKILL.md
│   │   └── references/troubleshooting.md
│   ├── yt-studio-url-builder/     #   URL 拼接技能
│   │   ├── SKILL.md
│   │   ├── references/            #     input-guide.md输入清单指南、troubleshooting.md
│   │   └── scripts/               #     build_studio_urls.py、countries.json
│   ├── youtube-studio-csv-download/  # CSV 下载技能
│   │   ├── SKILL.md
│   │   ├── references/troubleshooting.md
│   │   └── scripts/youtube_export_download.py
│   └── yt-studio-groupid-lookup/    # 群组名->entity_id 解析技能
│       ├── SKILL.md
│       ├── references/            #     input-guide.md名单/套件指南、troubleshooting.md
│       └── scripts/lookup_groups.py
├── scripts/
│   ├── install-skills.bat         # 傻瓜安装入口(双击运行)
│   └── install-skills.ps1         # 安装逻辑
├── docs/
│   ├── install-skills.md          # 安装详细说明
│   └── adr/                       # 架构决策记录
├── assets/                        # 需求输入示例文件
├── pyproject.toml                 # Python 依赖唯一事实来源pandas/openpyxl/playwright
└── uv.lock                        # uv 依赖锁定(可复现环境)

快速开始

前置条件

  • Windows
  • Trae CN 已安装
  • uv 已安装(未装可 winget install astral-sh.uv,装完重开终端)

第 1 步:安装技能到 Trae CN

双击运行:

scripts\install-skills.bat

看到 全部安装成功 即完成。脚本会把 skills\ 下全部技能复制到 %USERPROFILE%\.trae-cn\skills\;同名旧版自动备份到 ~\.trae-cn\skills-backup\,不会丢数据。详细说明见 docs/install-skills.md

默认安装全部技能。需要只装部分或先预览时可在命令行加参数bat 与 ps1 都支持):

# 只安装指定的几个技能
scripts\install-skills.bat -Skills yt-studio-url-builder,youtube-studio-csv-download
# 只预览将安装/覆盖/备份的技能,不实际复制
scripts\install-skills.bat -DryRun

第 2 步:准备 Python 运行环境

项目根目录执行:

uv sync

uv 自动创建 .venv\ 并安装全部依赖pandas、openpyxl、playwright。本机无兼容 Python 时 uv 会自动下载托管 Python要求 ≥3.10)。

第 3 步:开始使用

重启 Trae CN或新建会话在对话中直接说需求即可触发对应技能例如

根据这份清单批量生成 Studio URL

把需求整理成 CSV/Excel格式见 skills/yt-studio-url-builder/references/input-guide.md,示例见 assets/需求输入示例.xlsx),技能会引导生成 URL 清单。

用我的 Chrome 会话下载这份分析 CSV

技能会用 Playwright 复用已登录的浏览器会话,自动点击导出并保存 zip。

帮我准备/重建环境

技能会引导走 uv sync 与验证流程。

所有脚本统一用 uv run python <脚本> 执行(自动使用项目环境,免激活、免手动装依赖)。

后续优化与修改

改 URL 固定参数

粒度、表格列指标等固定参数集中在 skills/yt-studio-url-builder/scripts/build_studio_urls.py 顶部的 CONFIG 字典中,单点维护——改完重跑脚本即生效,需求清单无需变动。

主指标 metric、细分维度 dimension按行选择:在需求清单加一列 指标(映射见同目录 metrics.json 或填已知指标代码)、一列 维度(映射见同目录 dimensions.json 或填已知维度代码),留空则走 CONFIG 默认。

扩充国家映射

中文国家名 → ISO 代码的映射在 skills/yt-studio-url-builder/scripts/countries.json,直接追加条目即可;映射外的两位 ISO 代码(如 US)会原样透传。

维护映射文件(指标 / 维度 / 国家)

skills/yt-studio-url-builder/scripts/ 下有三个映射文件,把「中文/英文名」翻译成「URL 内部代码」,均可自行扩充:

文件 作用 新增示例
metrics.json 指标名 → 指标代码(如 观看时长EXTERNAL_WATCH_TIME "新指标名": "SOME_METRIC"
dimensions.json 细分维度名 → 维度代码(如 地理位置COUNTRY "新维度名": "SOME_DIMENSION"
countries.json 中文国家名 → ISO 两位代码(如 美国US "新国名": "XX"

方法和规则:

  • 都是扁平 key -> value 的 JSON 对象UTF-8 编码;键为人类可读名、值为大写代码。
  • 同一代码可有多个别名(多对一),例如 metrics.json税前收益 / 税前收入 / 预计收益 都指向 TOTAL_ESTIMATED_EARNINGS
  • 新增一个指标/维度后,其代码会被脚本自动加入「可透传集合」,可直接在需求清单里填裸代码,无需改 build_studio_urls.py
  • 默认主指标/维度/粒度不在这些 JSON 里,而在 build_studio_urls.py 顶部的 CONFIG(见上文「改 URL 固定参数」)。
  • dimensions.jsonmetrics.json 的基准数据源是 assets/YouTube_Studio_细分维度_时间颗粒度_完整清单.xlsx(「细分维度」「数据指标」两张表);countries.json 基于 ISO 3166-1 标准手工维护。

完整说明(加载方式、从 Excel 重新同步的脚本片段、更新后校验清单与常见坑)见 skills/yt-studio-url-builder/references/maintenance-guide.md

新增/修改依赖

只改根目录 pyproject.tomldependencies,然后 uv sync 更新 uv.lock。不要 pip install 直装(绕过 lock环境不可复现

修改技能并重新安装

技能就是在 skills/ 下编辑的 Markdown + 脚本。改完后重新双击 scripts\install-skills.bat 即可同步到 Trae CN旧版自动备份。建议遵循的写法

  • 每个技能一个文件夹,必须含 SKILL.mdfrontmatter 的 name + descriptiondescription 写清触发场景)。
  • 大块参考内容放 references/ 子目录,SKILL.md 中按需引用(渐进披露)。
  • 每个步骤给出可检查的完成判据,避免半途而废。
  • 同一信息只在一处维护(单一事实来源),避免重复表述。

回滚 / 卸载

  • 回滚:把 ~\.trae-cn\skills-backup\<技能名>-<时间戳>\ 复制回 ~\.trae-cn\skills\<技能名>\
  • 卸载:删除 ~\.trae-cn\skills\ 下对应技能文件夹。
  • 重置环境:删除项目根 .venv\ 后重新 uv sync

常见问题

  • 双击 bat 闪退:在 PowerShell 中手动运行 scripts\install-skills.bat 查看报错。
  • 装了技能不触发:需重启 Trae CN 或新建会话。
  • uv sync 拉包慢:国内镜像 $env:UV_DEFAULT_INDEX = "https://pypi.tuna.tsinghua.edu.cn/simple" 后重试。
  • 技能脚本报 ModuleNotFoundError:项目根执行 uv sync,或确认命令用了 uv run 前缀。

更多排查见各技能的 references/troubleshooting.md


UPDATE: 2026-08-24