# 数据归档规范(SOP) > aigc-idea-impression 数据获取后的归档规则。**数据根目录:`D:\MCNSkill项目\`**(2026-08-30 由 `RedFox数据` 迁移更名;旧路径已废弃)。 --- ## 一、目录规则(按数据类型分目录,作品/视频按账号名分) | 数据类型 | 目录 | 分目录粒度 | 示例 | |---------|------|-----------|------| | **榜单数据**(日榜、七日飙升榜等) | `MCNSkill项目\榜单数据\YYYY-MM\` | 按月 | `榜单数据\2026-08\剧情赛道热榜账号TOP10_2026-08-29.json` | | **信息源数据**(AI信息源、短剧信息源等) | `MCNSkill项目\信息源数据\YYYY-MM\` | 按月 | `信息源数据\2026-08\...json` | | **作品数据**(单作品爬取、账号诊断等) | `MCNSkill项目\作品数据\{账号名称}\` | **按账号**(无日期层) | `作品数据\王墨绫子\王墨绫子_长视频筛选_2026-08-30.json` | | **视频数据**(下载的视频 + 抽帧/音频/报告等) | `MCNSkill项目\作品数据\{账号名称}\{视频标题清洗后}_{YYYY-MM-DD}\` | 按账号 + 按视频标题+发布时间 | `作品数据\王墨绫子\不是一见钟情是第一次见面穿了包臀裙_2026-08-27\video2.mp4` | ## 二、视频数据按标题文件夹规则(核心) - **每个视频一个文件夹**,文件夹名 = **`{视频标题清洗后}_{发布时间YYYY-MM-DD}`**(标题去所有空格 + Windows 非法字符 `\ / : * ? " < > |` + 常见标点符号 `#,。?!、,,.~!@$%^&()[]{}` 等;发布时间取视频实际发布时间,如 2026-08-27) - 层级:`作品数据\{账号名称}\{视频标题清洗后}_{YYYY-MM-DD}\`(不用时间文件夹) - 文件夹内放该视频的全部数据:`{视频}.mp4`、`audio.wav`、`{直链}.txt`、`frames/`(抽帧)、`理解报告_*.md` 等 - 账号级/中间数据(如长视频筛选 JSON、Fiber 原始提取、视频列表 Excel)放**账号层**(`作品数据\{账号名称}\`,不放视频文件夹) - 示例:`不是一见钟情 是第一次见面穿了包臀裙`(2026-08-27 发布)→ `作品数据\王墨绫子\不是一见钟情是第一次见面穿了包臀裙_2026-08-27\` - **视频列表 Excel**:账号层保存 `{账号名称}_视频列表_{YYYY-MM-DD}.xlsx`(13 列:序号/视频ID/视频标题/视频地址/点赞数/点赞显示/评论数/分享数/收藏数/播放量/视频时长/发布时间/标签),供后续使用与更新(参考 mcn-dou-analysis 短视频表格规范) ## 三、中间产物管理(防止账号层膨胀,2026-08-30 实测教训) **账号层只保留:数据源(如 fiber_dom_merged.json、redfox_worklist_raw.json)+ 最终交付(Excel/报告)+ 视频文件夹**。 - **中间产物用后即清**:每次提取/审计的临时文件(fiber_extract_raw / fiber_full_raw / fiber_audit / fiber_capability 等)**只保留最新一份**(供追溯),旧版立即移入 `_中间产物_待清理/` 或删除,禁止逐轮堆积 - **cookies 等敏感临时文件**:用后立即清理(不过夜),禁止长期留存 - **mp4/音频/帧**:必须进对应视频文件夹,禁止放账号层 - 清理时机:每次任务完成归档时顺手检查账号层,超 5 个非交付文件即整理 ## 三、命名规则 - 文件名必须含**实际数据日期**(不是获取日期),如 `_2026-08-29.json` - 命名模式:`{类型}_{描述}_{YYYY-MM-DD}.json` ## 三、格式规则 - **统一 JSON**(`.json`),UTF-8 编码,`ensure_ascii=False` - **保留完整结构化字段**(原始 API 响应的关键字段原样保存),便于后续入库 - 榜单类:外层含 `{date, category, count, data: [...]}`;账号类:含 `{date, source, account: {...}}` ## 四、数据来源标注 - 归档 JSON 中标注 `source`(如 `红狐API-likesRank` / `browser-harness-抖音网页版`),区分数据来源 - 浏览器获取的数据按红线规则优先使用;第三方 API 兜底时注明 ## 五、操作步骤 ```python import os, json, re # 榜单/信息源:按分类按月 base = r"D:\MCNSkill项目\{榜单数据|信息源数据}\{YYYY-MM}" # 作品/视频数据:按账号名(无日期层) base = r"D:\MCNSkill项目\作品数据\{账号名称}" def clean_title(t): t = re.sub(r'\s+', '', t) t = re.sub(r'[\\/:*?"<>|#,。?!、,,.·~~!@$%^&()()\[\]【】{}]', '', t) return t if 是视频: base = os.path.join(base, clean_title(视频标题)) os.makedirs(base, exist_ok=True) fp = os.path.join(base, f"{类型}_{描述}_{YYYY-MM-DD}.json") with open(fp, "w", encoding="utf-8") as f: json.dump(data, f, ensure_ascii=False, indent=2) ```