diff --git a/03_卡木(木)/木叶_视频内容/多平台分发/脚本/publish_log.json b/03_卡木(木)/木叶_视频内容/多平台分发/脚本/publish_log.json index a5a3cd29..0f8bc93c 100644 --- a/03_卡木(木)/木叶_视频内容/多平台分发/脚本/publish_log.json +++ b/03_卡木(木)/木叶_视频内容/多平台分发/脚本/publish_log.json @@ -1,22 +1,8 @@ {"platform": "B站", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/Soul业务模型 派对+切片+小程序全链路.mp4", "title": "派对获客→AI切片→小程序变现,全链路拆解 #商业模式 #一人公司", "success": true, "status": "reviewing", "message": "纯API投稿成功 (7.2s)", "elapsed_sec": 7.174537897109985, "timestamp": "2026-03-10 14:16:20"} {"platform": "快手", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/Soul业务模型 派对+切片+小程序全链路.mp4", "title": "派对获客→AI切片→小程序变现,全链路拆解 #商业模式 #一人公司", "success": true, "status": "published", "message": "发布成功", "screenshot": "/tmp/kuaishou_result.png", "elapsed_sec": 22.87360692024231, "timestamp": "2026-03-10 14:16:36"} {"platform": "B站", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/早起不是为了开派对,是不吵老婆睡觉.mp4", "title": "每天6点起床不是因为自律,是因为老婆还在睡 #Soul派对 #创业日记", "success": true, "status": "reviewing", "message": "纯API投稿成功 (7.0s)", "elapsed_sec": 6.964767932891846, "timestamp": "2026-03-10 14:17:08"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/早起不是为了开派对,是不吵老婆睡觉.mp4", "title": "每天6点起床不是因为自律,是因为老婆还在睡 #Soul派对 #创业日记", "success": true, "status": "reviewing", "message": "已提交,请确认截图", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 33.28828287124634, "timestamp": "2026-03-10 14:17:35"} {"platform": "快手", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/早起不是为了开派对,是不吵老婆睡觉.mp4", "title": "每天6点起床不是因为自律,是因为老婆还在睡 #Soul派对 #创业日记", "success": true, "status": "published", "message": "发布成功", "screenshot": "/tmp/kuaishou_result.png", "elapsed_sec": 41.6892192363739, "timestamp": "2026-03-10 14:17:43"} {"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/ICU出来一年多 活着要在互联网上留下东西.mp4", "title": "ICU出来一年多,活着就要在互联网上留下东西 #人生感悟 #创业觉醒", "success": true, "status": "published", "message": "页面已重置(发布成功)", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 23.01875376701355, "timestamp": "2026-03-10 15:00:58"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/MBTI疗愈SOUL 年轻人测MBTI,40到60岁走五行八卦.mp4", "title": "20岁测MBTI,40岁该学五行八卦了 #MBTI #认知觉醒", "success": true, "status": "reviewing", "message": "已提交,请确认截图", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 22.772515773773193, "timestamp": "2026-03-10 15:01:24"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/Soul业务模型 派对+切片+小程序全链路.mp4", "title": "派对获客→AI切片→小程序变现,全链路拆解 #商业模式 #一人公司", "success": false, "status": "error", "message": "异常: [Errno 32] Broken pipe", "elapsed_sec": 13.620775938034058, "timestamp": "2026-03-10 15:01:41"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/Soul切片30秒到8分钟 AI半小时能剪10到30个.mp4", "title": "AI剪辑半小时出10到30条切片,内容工厂效率密码 #AI剪辑 #内容效率", "success": false, "status": "error", "message": "[Errno 32] Broken pipe", "elapsed_sec": 0.0, "timestamp": "2026-03-10 15:01:44"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/初期团队先找两个IS,比钱好使 ENFJ链接人,ENTJ指挥.mp4", "title": "创业初期先找两个IS型人格,比融资好使十倍 #MBTI创业 #团队搭建", "success": false, "status": "error", "message": "[Errno 32] Broken pipe", "elapsed_sec": 0.0, "timestamp": "2026-03-10 15:01:47"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/刷牙听业务逻辑 Soul切片变现怎么跑.mp4", "title": "刷牙3分钟听完一套变现逻辑 #碎片创业 #副业逻辑", "success": false, "status": "error", "message": "[Errno 32] Broken pipe", "elapsed_sec": 0.0, "timestamp": "2026-03-10 15:01:50"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/国学易经怎么学 两小时七七八八,召唤作者对话.mp4", "title": "易经两小时学个七七八八,关键是跟古人对话 #国学 #易经入门", "success": false, "status": "error", "message": "[Errno 32] Broken pipe", "elapsed_sec": 0.0, "timestamp": "2026-03-10 15:01:53"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/广点通能投Soul了,1000曝光6到10块.mp4", "title": "广点通能投Soul了!1000曝光只要6到10块 #广点通 #低成本获客", "success": false, "status": "error", "message": "[Errno 32] Broken pipe", "elapsed_sec": 0.0, "timestamp": "2026-03-10 15:01:56"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/建立信任不是求来的 卖外挂发邮件三个月拿下德国总代.mp4", "title": "信任不是求来的,发三个月邮件拿下德国总代理 #销售思维 #信任建立", "success": false, "status": "error", "message": "[Errno 32] Broken pipe", "elapsed_sec": 0.0, "timestamp": "2026-03-10 15:01:59"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/懒人的活法 动作简单有利可图正反馈.mp4", "title": "懒人也能赚钱?动作简单、有利可图、正反馈 #Soul派对 #副业思维", "success": false, "status": "error", "message": "[Errno 32] Broken pipe", "elapsed_sec": 0.0, "timestamp": "2026-03-10 15:02:02"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/核心就两个字 筛选。能开派对坚持7天的人再谈.mp4", "title": "核心就两个字:筛选。能坚持7天的人才值得深聊 #筛选思维 #创业认知", "success": false, "status": "error", "message": "[Errno 32] Broken pipe", "elapsed_sec": 0.0, "timestamp": "2026-03-10 15:02:05"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/睡眠不好?每天放下一件事,做减法.mp4", "title": "睡不好不是太累,是脑子装太多,每天做减法 #做减法 #心理健康", "success": false, "status": "error", "message": "[Errno 32] Broken pipe", "elapsed_sec": 0.0, "timestamp": "2026-03-10 15:02:08"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/这套体系花了170万,但前端几十块就能参与.mp4", "title": "后端花170万搭体系,前端几十块就能参与 #商业认知 #体系思维", "success": false, "status": "error", "message": "[Errno 32] Broken pipe", "elapsed_sec": 0.0, "timestamp": "2026-03-10 15:02:11"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/金融AI获客体系 后端30人沉淀12年,前端丢手机.mp4", "title": "后端30人沉淀12年,前端就丢个手机号 #AI获客 #系统思维", "success": false, "status": "error", "message": "[Errno 32] Broken pipe", "elapsed_sec": 0.0, "timestamp": "2026-03-10 15:02:14"} {"platform": "B站", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/ICU出来一年多 活着要在互联网上留下东西.mp4", "title": "ICU出来一年多,活着就要在互联网上留下东西 #人生感悟 #创业觉醒", "success": false, "status": "failed", "message": "Playwright: 未找到上传控件", "elapsed_sec": 7.210780143737793, "timestamp": "2026-03-10 15:15:40"} {"platform": "B站", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/MBTI疗愈SOUL 年轻人测MBTI,40到60岁走五行八卦.mp4", "title": "20岁测MBTI,40岁该学五行八卦了 #MBTI #认知觉醒", "success": false, "status": "failed", "message": "Playwright: 投稿超时", "screenshot": "/tmp/bilibili_result.png", "elapsed_sec": 312.01766705513, "timestamp": "2026-03-10 15:21:07"} {"platform": "B站", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/Soul切片30秒到8分钟 AI半小时能剪10到30个.mp4", "title": "AI剪辑半小时出10到30条切片,内容工厂效率密码 #AI剪辑 #内容效率", "success": true, "status": "reviewing", "message": "纯API投稿成功 (9.6s)", "elapsed_sec": 9.607962131500244, "timestamp": "2026-03-10 15:21:20"} @@ -30,18 +16,9 @@ {"platform": "B站", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/睡眠不好?每天放下一件事,做减法.mp4", "title": "睡不好不是太累,是脑子装太多,每天做减法 #做减法 #心理健康", "success": true, "status": "reviewing", "message": "纯API投稿成功 (3.0s)", "elapsed_sec": 3.016058921813965, "timestamp": "2026-03-10 15:22:18"} {"platform": "B站", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/这套体系花了170万,但前端几十块就能参与.mp4", "title": "后端花170万搭体系,前端几十块就能参与 #商业认知 #体系思维", "success": true, "status": "reviewing", "message": "纯API投稿成功 (6.0s)", "elapsed_sec": 5.999068021774292, "timestamp": "2026-03-10 15:22:27"} {"platform": "B站", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/金融AI获客体系 后端30人沉淀12年,前端丢手机.mp4", "title": "后端30人沉淀12年,前端就丢个手机号 #AI获客 #系统思维", "success": true, "status": "reviewing", "message": "纯API投稿成功 (4.1s)", "elapsed_sec": 4.084810972213745, "timestamp": "2026-03-10 15:22:34"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/Soul业务模型 派对+切片+小程序全链路.mp4", "title": "派对获客→AI切片→小程序变现,全链路拆解 #商业模式 #一人公司", "success": true, "status": "reviewing", "message": "已提交,请确认截图", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 32.887428998947144, "timestamp": "2026-03-10 15:16:01"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/Soul切片30秒到8分钟 AI半小时能剪10到30个.mp4", "title": "AI剪辑半小时出10到30条切片,内容工厂效率密码 #AI剪辑 #内容效率", "success": true, "status": "reviewing", "message": "已提交,请确认截图", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 26.56322979927063, "timestamp": "2026-03-10 15:16:31"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/初期团队先找两个IS,比钱好使 ENFJ链接人,ENTJ指挥.mp4", "title": "创业初期先找两个IS型人格,比融资好使十倍 #MBTI创业 #团队搭建", "success": true, "status": "reviewing", "message": "已提交,请确认截图", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 24.749696016311646, "timestamp": "2026-03-10 15:16:59"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/刷牙听业务逻辑 Soul切片变现怎么跑.mp4", "title": "刷牙3分钟听完一套变现逻辑 #碎片创业 #副业逻辑", "success": true, "status": "reviewing", "message": "已提交,请确认截图", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 26.63768172264099, "timestamp": "2026-03-10 15:17:28"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/国学易经怎么学 两小时七七八八,召唤作者对话.mp4", "title": "易经两小时学个七七八八,关键是跟古人对话 #国学 #易经入门", "success": true, "status": "reviewing", "message": "已提交,请确认截图", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 24.36569380760193, "timestamp": "2026-03-10 15:17:56"} {"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/广点通能投Soul了,1000曝光6到10块.mp4", "title": "广点通能投Soul了!1000曝光只要6到10块 #广点通 #低成本获客", "success": true, "status": "published", "message": "发布成功", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 26.281821966171265, "timestamp": "2026-03-10 15:18:25"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/建立信任不是求来的 卖外挂发邮件三个月拿下德国总代.mp4", "title": "信任不是求来的,发三个月邮件拿下德国总代理 #销售思维 #信任建立", "success": true, "status": "reviewing", "message": "已提交,请确认截图", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 24.133503198623657, "timestamp": "2026-03-10 15:18:53"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/懒人的活法 动作简单有利可图正反馈.mp4", "title": "懒人也能赚钱?动作简单、有利可图、正反馈 #Soul派对 #副业思维", "success": true, "status": "reviewing", "message": "已提交,请确认截图", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 24.180255889892578, "timestamp": "2026-03-10 15:19:20"} {"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/核心就两个字 筛选。能开派对坚持7天的人再谈.mp4", "title": "核心就两个字:筛选。能坚持7天的人才值得深聊 #筛选思维 #创业认知", "success": true, "status": "reviewing", "message": "已提交,请确认截图", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 23.98456883430481, "timestamp": "2026-03-10 15:19:47"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/睡眠不好?每天放下一件事,做减法.mp4", "title": "睡不好不是太累,是脑子装太多,每天做减法 #做减法 #心理健康", "success": true, "status": "reviewing", "message": "已提交,请确认截图", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 23.75632905960083, "timestamp": "2026-03-10 15:20:14"} {"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/这套体系花了170万,但前端几十块就能参与.mp4", "title": "后端花170万搭体系,前端几十块就能参与 #商业认知 #体系思维", "success": true, "status": "reviewing", "message": "已提交,请确认截图", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 26.305840253829956, "timestamp": "2026-03-10 15:20:43"} -{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/金融AI获客体系 后端30人沉淀12年,前端丢手机.mp4", "title": "后端30人沉淀12年,前端就丢个手机号 #AI获客 #系统思维", "success": true, "status": "reviewing", "message": "已提交,请确认截图", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 25.22134518623352, "timestamp": "2026-03-10 15:21:11"} {"platform": "快手", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/ICU出来一年多 活着要在互联网上留下东西.mp4", "title": "ICU出来一年多,活着就要在互联网上留下东西 #人生感悟 #创业觉醒", "success": false, "status": "error", "message": "未找到上传控件", "error_code": "NO_UPLOAD_INPUT", "elapsed_sec": 15.876161098480225, "timestamp": "2026-03-10 15:15:44"} {"platform": "快手", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/MBTI疗愈SOUL 年轻人测MBTI,40到60岁走五行八卦.mp4", "title": "20岁测MBTI,40岁该学五行八卦了 #MBTI #认知觉醒", "success": true, "status": "published", "message": "发布成功", "screenshot": "/tmp/kuaishou_result.png", "elapsed_sec": 24.485027074813843, "timestamp": "2026-03-10 15:16:12"} {"platform": "快手", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/Soul切片30秒到8分钟 AI半小时能剪10到30个.mp4", "title": "AI剪辑半小时出10到30条切片,内容工厂效率密码 #AI剪辑 #内容效率", "success": true, "status": "reviewing", "message": "已提交,请确认截图", "screenshot": "/tmp/kuaishou_result.png", "elapsed_sec": 26.677134037017822, "timestamp": "2026-03-10 15:16:42"} @@ -75,3 +52,9 @@ {"platform": "视频号", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/睡眠不好?每天放下一件事,做减法.mp4", "title": "睡不好不是太累,是脑子装太多,每天做减法 #做减法 #心理健康", "success": true, "status": "reviewing", "message": "API确认,列表未匹配 (未在列表前20条中找到)", "screenshot": "/tmp/channels_ss/睡眠不好?每天放下一件事,做减法_5_verify.png", "elapsed_sec": 32.4734902381897, "timestamp": "2026-03-10 18:19:34"} {"platform": "视频号", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/这套体系花了170万,但前端几十块就能参与.mp4", "title": "后端花170万搭体系,前端几十块就能参与 #商业认知 #体系思维", "success": true, "status": "reviewing", "message": "API确认,列表未匹配 (未在列表前20条中找到)", "screenshot": "/tmp/channels_ss/这套体系花了170万,但前端几十块就能参与_5_verify.png", "elapsed_sec": 34.45086717605591, "timestamp": "2026-03-10 18:20:16"} {"platform": "视频号", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/金融AI获客体系 后端30人沉淀12年,前端丢手机.mp4", "title": "后端30人沉淀12年,前端就丢个手机号 #AI获客 #系统思维", "success": true, "status": "reviewing", "message": "API确认,列表未匹配 (未在列表前20条中找到)", "screenshot": "/tmp/channels_ss/金融AI获客体系 后端30人沉淀12年,前端丢手机_5_verify.png", "elapsed_sec": 3430.994603872299, "timestamp": "2026-03-10 19:17:35"} +{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/MBTI疗愈SOUL 年轻人测MBTI,40到60岁走五行八卦.mp4", "title": "20岁测MBTI,40岁该学五行八卦了 #MBTI #认知觉醒 #小程序 卡若创业派对", "success": false, "status": "failed", "message": "笔记管理页未找到该笔记", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 24.520015239715576, "timestamp": "2026-03-10 20:38:45"} +{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/Soul业务模型 派对+切片+小程序全链路.mp4", "title": "派对获客→AI切片→小程序转化,全链路拆解 #商业模式 #一人公司 #小程序 卡若创业派对", "success": false, "status": "failed", "message": "笔记管理页未找到该笔记", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 23.837625741958618, "timestamp": "2026-03-10 20:39:33"} +{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/Soul切片30秒到8分钟 AI半小时能剪10到30个.mp4", "title": "AI剪辑半小时出10到30条切片,内容工厂效率密码 #AI剪辑 #内容效率 #小程序 卡若创业派对", "success": true, "status": "published", "message": "页面已重置(发布成功)", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 24.28143620491028, "timestamp": "2026-03-10 20:40:12"} +{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/初期团队先找两个IS,比钱好使 ENFJ链接人,ENTJ指挥.mp4", "title": "创业初期先找两个IS型人格,比融资好使十倍 #MBTI创业 #团队搭建 #小程序 卡若创业派对", "success": false, "status": "failed", "message": "笔记管理页未找到该笔记", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 23.95564889907837, "timestamp": "2026-03-10 20:41:00"} +{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/刷牙听业务逻辑 Soul切片变现怎么跑.mp4", "title": "刷牙3分钟听完一套转化逻辑 #碎片创业 #副业逻辑 #小程序 卡若创业派对", "success": false, "status": "failed", "message": "笔记管理页未找到该笔记", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 23.785672187805176, "timestamp": "2026-03-10 20:41:47"} +{"platform": "小红书", "video_path": "/Users/karuo/Movies/soul视频/soul 派对 119场 20260309_output/成片/国学易经怎么学 两小时七七八八,召唤作者对话.mp4", "title": "易经两小时学个七七八八,关键是跟古人对话 #国学 #易经入门 #小程序 卡若创业派对", "success": false, "status": "failed", "message": "笔记管理页未找到该笔记", "screenshot": "/tmp/xhs_result.png", "elapsed_sec": 23.7487850189209, "timestamp": "2026-03-10 20:42:35"} diff --git a/03_卡木(木)/木叶_视频内容/小红书发布/脚本/xhs_sms_login.py b/03_卡木(木)/木叶_视频内容/小红书发布/脚本/xhs_sms_login.py new file mode 100644 index 00000000..f0f476bc --- /dev/null +++ b/03_卡木(木)/木叶_视频内容/小红书发布/脚本/xhs_sms_login.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python3 +""" +小红书 SMS 登录 — headless Playwright(无弹窗) +用法: + python3 xhs_sms_login.py <手机号> <验证码> + python3 xhs_sms_login.py <手机号> # 仅发送验证码 +""" +import asyncio +import sys +import time +from pathlib import Path +from playwright.async_api import async_playwright + +COOKIE_FILE = Path(__file__).parent / "xiaohongshu_storage_state.json" +UA = ( + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) " + "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" +) + + +async def login(phone: str, code: str = ""): + async with async_playwright() as pw: + browser = await pw.chromium.launch( + headless=True, + args=["--disable-blink-features=AutomationControlled"], + ) + ctx = await browser.new_context( + user_agent=UA, + viewport={"width": 1280, "height": 900}, + locale="zh-CN", + ) + await ctx.add_init_script( + 'Object.defineProperty(navigator,"webdriver",{get:()=>undefined})' + ) + page = await ctx.new_page() + + print("[1] 打开登录页...") + await page.goto( + "https://creator.xiaohongshu.com/login", timeout=30000 + ) + await asyncio.sleep(5) + + print(f"[2] 填写手机号: {phone[:3]}****{phone[-4:]}") + phone_input = page.locator('input[placeholder*="手机号"]').first + if await phone_input.count() == 0: + phone_input = page.locator('input').nth(1) + await phone_input.click() + await phone_input.fill(phone) + await asyncio.sleep(1) + + if not code: + print("[3] 发送验证码...") + send_btn = page.locator("text=发送验证码").first + await send_btn.click() + await asyncio.sleep(2) + txt = await page.evaluate("document.body.innerText") + if "秒" in txt: + print("[✓] 验证码已发送!请查看手机短信后重新运行脚本并带上验证码") + await page.screenshot(path="/tmp/xhs_sms_sent.png") + await browser.close() + return False + + print(f"[3] 填写验证码: {code}") + code_input = page.locator('input[placeholder*="验证码"]').first + if await code_input.count() == 0: + code_input = page.locator("input").nth(2) + await code_input.click() + await code_input.fill(code) + await asyncio.sleep(1) + + print("[4] 点击登录...") + login_btn = page.locator('button:has-text("登"), button:has-text("登 录")').first + await login_btn.click() + await asyncio.sleep(6) + + url = page.url + await page.screenshot(path="/tmp/xhs_login_result.png") + + if "login" not in url: + print(f"[✓] 登录成功!URL: {url}") + await ctx.storage_state(path=str(COOKIE_FILE)) + cookies = await ctx.cookies() + print(f"[✓] 保存了 {len(cookies)} 个 Cookie → {COOKIE_FILE}") + await browser.close() + return True + + txt = await page.evaluate("document.body.innerText") + print(f"[⚠] 登录未成功,URL: {url}") + print(f" 页面: {txt[:150]}") + await browser.close() + return False + + +if __name__ == "__main__": + if len(sys.argv) < 2: + print("用法: python3 xhs_sms_login.py <手机号> [验证码]") + sys.exit(1) + phone = sys.argv[1] + code = sys.argv[2] if len(sys.argv) > 2 else "" + ok = asyncio.run(login(phone, code)) + sys.exit(0 if ok else 1) diff --git a/03_卡木(木)/木叶_视频内容/小红书发布/脚本/xiaohongshu_publish.py b/03_卡木(木)/木叶_视频内容/小红书发布/脚本/xiaohongshu_publish.py index ed714263..17a12026 100644 --- a/03_卡木(木)/木叶_视频内容/小红书发布/脚本/xiaohongshu_publish.py +++ b/03_卡木(木)/木叶_视频内容/小红书发布/脚本/xiaohongshu_publish.py @@ -1,9 +1,10 @@ #!/usr/bin/env python3 """ -小红书视频发布 - Headless Playwright -上传 → 填标题/描述 → 发布。 +小红书视频发布 v2 — Headless Playwright + 账号预检 + 真实成功验证 +上传 → 填标题/描述 → 发布 → 笔记管理页验证。 """ import asyncio +import json import sys import time from pathlib import Path @@ -20,6 +21,31 @@ UA = ( "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" ) + +async def pre_check_account() -> tuple[bool, str]: + """发布前账号预检:Cookie 有效性 + 发布权限""" + if not COOKIE_FILE.exists(): + return False, "Cookie 文件不存在" + try: + with open(COOKIE_FILE) as f: + state = json.load(f) + cookies = {c["name"]: c["value"] for c in state.get("cookies", [])} + cookie_str = "; ".join(f"{k}={v}" for k, v in cookies.items()) + import httpx + resp = httpx.get( + "https://creator.xiaohongshu.com/api/galaxy/user/info", + headers={"Cookie": cookie_str, "User-Agent": UA, + "Referer": "https://creator.xiaohongshu.com/"}, + timeout=10, + ) + data = resp.json() + if data.get("code") == 0: + nick = data.get("data", {}).get("nick_name", "?") + return True, f"账号正常: {nick}" + return False, f"Cookie 已过期: {data.get('msg', '')}" + except Exception as e: + return False, f"预检异常: {e}" + TITLES = { "早起不是为了开派对,是不吵老婆睡觉.mp4": "每天6点起床不是因为自律,是因为老婆还在睡 #Soul派对 #创业日记 #小程序 卡若创业派对", @@ -159,11 +185,12 @@ async def publish_one(video_path: str, title: str, idx: int = 1, total: int = 1, if scheduled_ok: print(f" [定时] 小红书定时发布已设置", flush=True) - await asyncio.sleep(1) + await asyncio.sleep(2) print(" [4] 等待发布按钮启用...", flush=True) - pub = page.locator('button:has-text("发布")').first - # 等按钮变为可用 - for wait in range(20): + + pub_selector = 'button.css-k4lp0z, button.publishBtn, button.el-button--danger' + pub = page.locator('button:has-text("发布"):not(:has-text("暂存"))').last + for wait in range(30): is_disabled = await pub.get_attribute("disabled") if not is_disabled: break @@ -171,31 +198,65 @@ async def publish_one(video_path: str, title: str, idx: int = 1, total: int = 1, else: print(" [⚠] 发布按钮一直禁用", flush=True) + await asyncio.sleep(2) print(" [4] 点击发布...", flush=True) - await page.evaluate("""document.querySelectorAll('[data-tippy-root],[class*="tooltip"],[class*="popover"],[class*="overlay"]').forEach(e => e.remove())""") - await asyncio.sleep(0.3) await page.evaluate("window.scrollTo(0, document.body.scrollHeight)") - await asyncio.sleep(0.5) - await pub.scroll_into_view_if_needed() - await asyncio.sleep(0.3) + await asyncio.sleep(1) - try: - await pub.click(force=True, timeout=5000) - except Exception: - clicked = await page.evaluate("""() => { - const btns = [...document.querySelectorAll('button')]; - const b = btns.find(e => e.textContent.trim() === '发布' && !e.disabled); - if (b) { b.click(); return true; } - return false; - }""") - print(f" [4] JS点击: {'成功' if clicked else '失败'}", flush=True) + pre_url = page.url + clicked = False + + # 方法1: JS 精准点击红色发布按钮 + clicked = await page.evaluate("""() => { + const btns = [...document.querySelectorAll('button')]; + const b = btns.filter(e => { + const t = e.textContent.trim(); + const s = getComputedStyle(e); + return t === '发布' && !e.disabled && + (s.backgroundColor.includes('255') || s.backgroundColor.includes('rgb(255') || + e.className.includes('red') || e.className.includes('danger') || + e.className.includes('primary')); + }).pop(); + if (b) { b.click(); return true; } + const fallback = btns.filter(e => e.textContent.trim() === '发布' && !e.disabled).pop(); + if (fallback) { fallback.click(); return true; } + return false; + }""") + print(f" [4] JS点击发布: {'成功' if clicked else '失败'}", flush=True) + + if not clicked: + try: + await pub.click(force=True, timeout=5000) + clicked = True + print(" [4] Playwright force-click 成功", flush=True) + except Exception: + pass await asyncio.sleep(3) - confirm = page.locator('button:has-text("确认"), button:has-text("确定")').first - if await confirm.count() > 0: - await confirm.click(force=True) - await asyncio.sleep(3) + + # 处理二次确认弹窗 + for _ in range(3): + confirm = page.locator('button:has-text("确认"), button:has-text("确定"), button:has-text("发布")').last + if await confirm.count() > 0 and await confirm.is_visible(): + txt_btn = (await confirm.text_content() or "").strip() + if txt_btn in ("确认", "确定", "发布"): + await confirm.click(force=True) + print(f" [4] 确认弹窗: 点击了 [{txt_btn}]", flush=True) + await asyncio.sleep(2) + break + + # 等待页面变化(发布跳转或重置) + for _ in range(10): + cur_url = page.url + cur_txt = await page.evaluate("document.body.innerText") + if cur_url != pre_url: + break + if "发布成功" in cur_txt or "已发布" in cur_txt: + break + if "拖拽视频到此" in cur_txt and "设置封面" not in cur_txt: + break + await asyncio.sleep(2) await asyncio.sleep(5) await page.screenshot(path="/tmp/xhs_result.png") @@ -205,18 +266,32 @@ async def publish_one(video_path: str, title: str, idx: int = 1, total: int = 1, if "发布成功" in txt or "已发布" in txt: status, msg = "published", "发布成功" - elif "审核" in txt: - status, msg = "reviewing", "已提交审核" elif "笔记" in url or "manage" in url: - status, msg = "reviewing", "已跳转到笔记管理(发布成功)" + status, msg = "published", "已跳转到笔记管理(发布成功)" elif "拖拽视频到此" in txt or ("上传视频" in txt and "封面" not in txt): status, msg = "published", "页面已重置(发布成功)" + elif "审核" in txt: + status, msg = "reviewing", "已提交审核" else: - status, msg = "reviewing", "已提交,请确认截图" + print(" [⚠] 未检测到明确成功信号,进行二次验证...", flush=True) + await asyncio.sleep(3) + try: + await page.goto("https://creator.xiaohongshu.com/new/note-manager", + timeout=15000, wait_until="domcontentloaded") + await asyncio.sleep(5) + mgr_txt = await page.evaluate("document.body.innerText") + short_title = title[:15] + if short_title in mgr_txt: + status, msg = "published", f"笔记管理页已确认: {short_title}" + else: + status, msg = "failed", "笔记管理页未找到该笔记" + except Exception: + status, msg = "unknown", "无法验证,状态不明" + success = status in ("published", "reviewing") result = PublishResult( platform="小红书", video_path=video_path, title=title, - success=True, status=status, message=msg, + success=success, status=status, message=msg, screenshot="/tmp/xhs_result.png", elapsed_sec=elapsed, ) print(f" {result.log_line()}", flush=True) @@ -233,9 +308,14 @@ async def publish_one(video_path: str, title: str, idx: int = 1, total: int = 1, async def main(): from publish_result import print_summary, save_results - if not COOKIE_FILE.exists(): - print("[✗] Cookie 不存在") + # 账号预检 + print("=== 账号预检 ===", flush=True) + ok, info = await pre_check_account() + print(f" {info}", flush=True) + if not ok: + print("[✗] 账号预检不通过,终止发布", flush=True) return 1 + print() videos = sorted(VIDEO_DIR.glob("*.mp4")) if not videos: @@ -244,18 +324,32 @@ async def main(): print(f"共 {len(videos)} 条视频\n") results = [] + consecutive_fail = 0 for i, vp in enumerate(videos): t = TITLES.get(vp.name, f"{vp.stem} #Soul派对 #创业日记") r = await publish_one(str(vp), t, i + 1, len(videos)) results.append(r) - if i < len(videos) - 1: - await asyncio.sleep(5) + + if r.status == "skipped": + consecutive_fail = 0 + elif r.success: + consecutive_fail = 0 + else: + consecutive_fail += 1 + if consecutive_fail >= 3: + print("\n[!] 连续 3 次失败,终止以防封号", flush=True) + break + + if i < len(videos) - 1 and r.status != "skipped": + wait = 15 + print(f" 等待 {wait}s 再发下一条...", flush=True) + await asyncio.sleep(wait) actual = [r for r in results if r.status != "skipped"] print_summary(actual) save_results(actual) - ok = sum(1 for r in actual if r.success) - return 0 if ok == len(actual) else 1 + ok_count = sum(1 for r in actual if r.success) + return 0 if ok_count == len(actual) else 1 if __name__ == "__main__": diff --git a/03_卡木(木)/木叶_视频内容/小红书发布/脚本/xiaohongshu_storage_state.json b/03_卡木(木)/木叶_视频内容/小红书发布/脚本/xiaohongshu_storage_state.json index 3550b682..007029d4 100644 --- a/03_卡木(木)/木叶_视频内容/小红书发布/脚本/xiaohongshu_storage_state.json +++ b/03_卡木(木)/木叶_视频内容/小红书发布/脚本/xiaohongshu_storage_state.json @@ -1 +1 @@ -{"cookies": [{"name": "acw_tc", "value": "0a0d096b17731447340163790e6572bbcd279e70f772eb180f6bf6516d10ec", "domain": "creator.xiaohongshu.com", "path": "/", "expires": 1773146534.029982, "httpOnly": true, "secure": false, "sameSite": "Lax"}, {"name": "xsecappid", "value": "ugc", "domain": ".xiaohongshu.com", "path": "/", "expires": 1804680735, "httpOnly": false, "secure": false, "sameSite": "Lax"}, {"name": "loadts", "value": "1773144735106", "domain": ".xiaohongshu.com", "path": "/", "expires": 1804680735, "httpOnly": false, "secure": false, "sameSite": "Lax"}, {"name": "a1", "value": "19cd7a97d82x7dqpld8x5a4004cxqyg55uas58bos30000394116", "domain": ".xiaohongshu.com", "path": "/", "expires": 1804680735, "httpOnly": false, "secure": false, "sameSite": "Lax"}, {"name": "webId", "value": "19d4cb900246ec92238016cbf2cca01c", "domain": ".xiaohongshu.com", "path": "/", "expires": 1804680735, "httpOnly": false, "secure": false, "sameSite": "Lax"}, {"name": "acw_tc", "value": "0ad594a417731447354266056e0be14ec0d228b3083fb59752379aab121f64", "domain": "edith.xiaohongshu.com", "path": "/", "expires": 1773146535.374599, "httpOnly": true, "secure": false, "sameSite": "Lax"}, {"name": "websectiga", "value": "2a3d3ea002e7d92b5c9743590ebd24010cf3750ff3af8029153751e41a6af4a3", "domain": ".xiaohongshu.com", "path": "/", "expires": 1773403935, "httpOnly": false, "secure": false, "sameSite": "Lax"}, {"name": "sec_poison_id", "value": "ca03b304-10f1-4b85-8cb2-934fb453bf26", "domain": ".xiaohongshu.com", "path": "/", "expires": 1773145340, "httpOnly": false, "secure": false, "sameSite": "Lax"}, {"name": "acw_tc", "value": "0a0d0ff917731447355217325e4ad2b7b3b0b5acdb12598907e741787ce895", "domain": "customer.xiaohongshu.com", "path": "/", "expires": 1773146535.487089, "httpOnly": true, "secure": false, "sameSite": "Lax"}, {"name": "gid", "value": "yjSfW0jYYq2JyjSfW0jWf7YDYJCWfAU1fYC20lM04884SMq8CAvk22888qj4yyK8JKfqiJfJ", "domain": ".xiaohongshu.com", "path": "/", "expires": 1807704737.784982, "httpOnly": false, "secure": false, "sameSite": "Lax"}], "origins": [{"origin": "https://creator.xiaohongshu.com", "localStorage": [{"name": "b1b1", "value": "1"}, {"name": "p1", "value": "1"}, {"name": "sdt_source_storage_key", "value": "{\"validate\":false,\"signUrl\":\"https://fe-static.xhscdn.com/as/v1/f218/a15/public/04b29480233f4def5c875875b6bdc3b1.js\",\"signVersion\":\"1\",\"xhsTokenUrl\":\"https://fe-static.xhscdn.com/as/v1/3e44/public/bf7d4e32677698655a5cadc581fd09b3.js\",\"extraInfo\":{},\"url\":\"https://fe-static.xhscdn.com/as/v2/fp/962356ead351e7f2422eb57edff6982d.js\",\"reportUrl\":\"/api/sec/v1/shield/webprofile\",\"desVersion\":\"2\",\"commonPatch\":[\"/fe_api/burdock/v2/note/post\",\"/api/sns/web/v1/comment/post\",\"/api/sns/web/v1/note/like\",\"/api/sns/web/v1/note/collect\",\"/api/sns/web/v1/user/follow\",\"/api/sns/web/v1/feed\",\"/api/sns/web/v1/login/activate\",\"/api/sns/web/v1/note/metrics_report\",\"/api/redcaptcha\",\"/api/store/jpd/main\",\"/phoenix/api/strategy/getAppStrategy\",\"/web_api/sns/v2/note\"]}"}, {"name": "b1", "value": "I38rHdgsjopgIvesdVwgIC+oIELmBZ5e3VwXLgFTIxS3bqwErFeexd0ekncAzMFYnqthIhJeSnMDKutRI3KsYorWHPtGrbi0P9WfIi/eWc6eYqtyQApPI37ekmR6QLQ5Ii6sdneeSfqYHqwl2qt5B0DBIx+PGDV/sutkIx0sxuwr4qtiIhuaIE3e3LV0I3VTIC7e0Vtl2ADmsLveDSKsSPw5IEvsiVtJOqw8BuwfPpdeTFWOIx4TIiu6ZPwrPut5IvlaLbgs3qtxIxes1VwHIkumIkIyejgsY/WTge7eSqte/D7sDcpipedeYrDtIC6eDVw2IENsSqtlnlSuNjVtIvoekqt3cZ7sVo4gIESyIhE2+9DUIvzy4I8OIic7ZPwAIviv4o/sDLds6PwVIC7eSd7e0ez4IEvsxcZMtVwUIids3s/sxZNeiVtbcUeeYVwEIvlzzA7eSVwCLnJsDqwrIxltIxZSouwOgVwpsr4heU/e6LveDPwFIvgs1ros1DZiIi7sjbos3grFIE0e3PtvIibROqwOOqthIxes1VwDIEgekVw5Ih3sjuw5NqwnoVwuICckI3HrN9iiJcAe1uwvIk4mIhdsDqwK2gTrb9OeWdpDIhDLJqtKaqwuIv6e6VtxQpKe3IAe1LSoIEJskBOsTutPcPtBIvoejVwiIi7eksuyICKsdfveDVtSIxgsxut4ZlDxIxRjIiNefUJsSZ5sVaJexVwuICYbIhGa4uwkIkDsIxJeD/kPpS5e3uwDIxH1aqw/yF0sDMAsSutzcVtRICHXIi+4nVttqPwy"}, {"name": "last_tiga_update_time", "value": "1773144735439"}, {"name": "xhs_context_networkQuality", "value": "EXCELLENT"}]}]} \ No newline at end of file +{"cookies": [{"name": "acw_tc", "value": "0a0d068317731459544511184e7f11e7ee22303f7a40238fa5613f4eb6702a", "domain": "creator.xiaohongshu.com", "path": "/", "expires": 1773147754.395959, "httpOnly": true, "secure": false, "sameSite": "Lax"}, {"name": "xsecappid", "value": "ugc", "domain": ".xiaohongshu.com", "path": "/", "expires": 1804682664, "httpOnly": false, "secure": false, "sameSite": "Lax"}, {"name": "a1", "value": "19cd7bc1c751fyh9lntys4dzu93cfib0sfovi8mcw30000273597", "domain": ".xiaohongshu.com", "path": "/", "expires": 1804681955, "httpOnly": false, "secure": false, "sameSite": "Lax"}, {"name": "webId", "value": "6a6cd657224a4e256b12b847a79711c4", "domain": ".xiaohongshu.com", "path": "/", "expires": 1804681955, "httpOnly": false, "secure": false, "sameSite": "Lax"}, {"name": "acw_tc", "value": "0ad58cf017731459558476280efbf9edfae628268bace974a9335ca1712227", "domain": "edith.xiaohongshu.com", "path": "/", "expires": 1773147755.795373, "httpOnly": true, "secure": false, "sameSite": "Lax"}, {"name": "acw_tc", "value": "0a0d01bc17731459559398103e7ac7810e5fc179199ff12d3e204185602919", "domain": "customer.xiaohongshu.com", "path": "/", "expires": 1773147755.915278, "httpOnly": true, "secure": false, "sameSite": "Lax"}, {"name": "gid", "value": "yjSfWDSJjJMSyjSfWDSySiY6W2yivxj1I9vMlSE4fu7jqhq8Si3D83888JWq2jW8SiJjJii0", "domain": ".xiaohongshu.com", "path": "/", "expires": 1807706667.143023, "httpOnly": false, "secure": false, "sameSite": "Lax"}, {"name": "customer-sso-sid", "value": "68c517615603922284478469rptt2mwjgogfti8m", "domain": ".xiaohongshu.com", "path": "/", "expires": 1773750762.487704, "httpOnly": true, "secure": false, "sameSite": "Lax"}, {"name": "x-user-id-creator.xiaohongshu.com", "value": "63b3cb6f000000002502c21d", "domain": ".xiaohongshu.com", "path": "/", "expires": 1807705963.487751, "httpOnly": true, "secure": false, "sameSite": "Lax"}, {"name": "customerClientId", "value": "172893742756372", "domain": ".xiaohongshu.com", "path": "/", "expires": 1807705963.487788, "httpOnly": true, "secure": false, "sameSite": "Lax"}, {"name": "access-token-creator.xiaohongshu.com", "value": "customer.creator.AT-68c5176156039222844620815tecrfvr71dngizv", "domain": ".xiaohongshu.com", "path": "/", "expires": 1775737962.4878, "httpOnly": true, "secure": false, "sameSite": "Lax"}, {"name": "galaxy_creator_session_id", "value": "6ZdVvWjMwbN5FGk6Q39utKCwjaXS4uP7UvNj", "domain": ".xiaohongshu.com", "path": "/", "expires": 1775737963.487811, "httpOnly": true, "secure": false, "sameSite": "Lax"}, {"name": "galaxy.creator.beaker.session.id", "value": "1773145963473064900889", "domain": ".xiaohongshu.com", "path": "/", "expires": 1775737963.487825, "httpOnly": true, "secure": false, "sameSite": "Lax"}, {"name": "acw_tc", "value": "0a00de9917731463146134664e1f1f063d66f120924ddb04720828f7d5fd42", "domain": "www.xiaohongshu.com", "path": "/", "expires": 1773148114.555781, "httpOnly": true, "secure": false, "sameSite": "Lax"}, {"name": "websectiga", "value": "59d3ef1e60c4aa37a7df3c23467bd46d7f1da0c1918cf335ee7f2e9e52ac04cf", "domain": ".xiaohongshu.com", "path": "/", "expires": 1773405822, "httpOnly": false, "secure": false, "sameSite": "Lax"}, {"name": "sec_poison_id", "value": "e3809d74-a483-4f9a-8625-3127e8b73437", "domain": ".xiaohongshu.com", "path": "/", "expires": 1773147227, "httpOnly": false, "secure": false, "sameSite": "Lax"}, {"name": "loadts", "value": "1773146664042", "domain": ".xiaohongshu.com", "path": "/", "expires": 1804682664, "httpOnly": false, "secure": false, "sameSite": "Lax"}], "origins": [{"origin": "https://creator.xiaohongshu.com", "localStorage": [{"name": "USER_INFO_FOR_BIZ", "value": "{\"userId\":\"63b3cb6f000000002502c21d\",\"userName\":\"#\u5361\u82e5\ud83d\udd25(4:00\u8d77\u5e8a\u7684\u7537\u4eba)\",\"userAvatar\":\"https://sns-avatar-qc.xhscdn.com/avatar/65a68110d4b53385b6a72ed1.jpg?imageView2/2/w/80/format/jpg\",\"redId\":\"6244231151\",\"role\":\"creator\",\"permissions\":[\"creatorCollege\",\"creatorWiki\",\"noteInspiration\",\"creatorHome\",\"creatorData\",\"USER_GROUP\",\"creatorActivityCenter\",\"ORIGINAL_STATEMENT\"],\"zone\":\"86\",\"phone\":\"15880802661\",\"relatedUserId\":null,\"relatedUserName\":null,\"kolCoOrder\":false}"}, {"name": "uploader-permit-video-spectrum", "value": "{\"MBTI\u7597\u6108SOUL \u5e74\u8f7b\u4eba\u6d4bMBTI\uff0c40\u523060\u5c81\u8d70\u4e94\u884c\u516b\u5366.mp4-10459668\":null,\"Soul\u4e1a\u52a1\u6a21\u578b \u6d3e\u5bf9+\u5207\u7247+\u5c0f\u7a0b\u5e8f\u5168\u94fe\u8def.mp4-10740368\":null,\"Soul\u5207\u724730\u79d2\u52308\u5206\u949f AI\u534a\u5c0f\u65f6\u80fd\u526a10\u523030\u4e2a.mp4-14677795\":null,\"\u521d\u671f\u56e2\u961f\u5148\u627e\u4e24\u4e2aIS\uff0c\u6bd4\u94b1\u597d\u4f7f ENFJ\u94fe\u63a5\u4eba\uff0cENTJ\u6307\u6325.mp4-15709935\":null,\"\u5237\u7259\u542c\u4e1a\u52a1\u903b\u8f91 Soul\u5207\u7247\u53d8\u73b0\u600e\u4e48\u8dd1.mp4-11455089\":null,\"\u56fd\u5b66\u6613\u7ecf\u600e\u4e48\u5b66 \u4e24\u5c0f\u65f6\u4e03\u4e03\u516b\u516b\uff0c\u53ec\u5524\u4f5c\u8005\u5bf9\u8bdd.mp4-9598781\":null}"}, {"name": "publish-uploader-history-upload-speed", "value": "[{\"speed\":[3.7155297532656024],\"domain\":\"ros-upload.xiaohongshu.com\",\"timestamp\":1773146666959},{\"speed\":[3.261146496815287],\"domain\":\"ros-upload-d4.xhscdn.com\",\"timestamp\":1773146668529},{\"speed\":[4.05],\"domain\":\"ros-upload-acc-ali.xiaohongshu.com\",\"timestamp\":1773146672352}]"}, {"name": "snsWebPublishCurrentUser", "value": "63b3cb6f000000002502c21d"}, {"name": "USER_INFO", "value": "{\"user\":{\"type\":\"User\",\"value\":{\"userId\":\"63b3cb6f000000002502c21d\",\"loginUserType\":\"creator\"}}}"}, {"name": "NEW_XHS_ABTEST_REPORT_KEY", "value": "{\"6a6cd657224a4e256b12b847a79711c463b3cb6f000000002502c21d\":\"2026-03-10\"}"}, {"name": "b1b1", "value": "1"}, {"name": "score_display", "value": "1"}, {"name": "p1", "value": "19"}, {"name": "nps-userId", "value": "63b3cb6f000000002502c21d"}, {"name": "_speedList", "value": "[{\"ts\":1773146437281,\"speed\":85982110.66666667},{\"ts\":1773146437284,\"speed\":53834018},{\"ts\":1773146486551,\"speed\":258966999.66666666},{\"ts\":1773146486574,\"speed\":80263882.33333333},{\"ts\":1773146533014,\"speed\":212938190.33333334},{\"ts\":1773146533039,\"speed\":35778773},{\"ts\":1773146629513,\"speed\":224096194.33333334},{\"ts\":1773146629537,\"speed\":79234648},{\"ts\":1773146670402,\"speed\":274824999.6666667},{\"ts\":1773146670428,\"speed\":59023931.333333336}]"}, {"name": "score_timestamp", "value": "1773146405848"}, {"name": "last_tiga_update_time", "value": "1773146622433"}, {"name": "uploader-permit-image-spectrum", "value": "{\"cover.jpeg-304598\":null,\"cover.jpeg-271507\":null,\"cover.jpeg-297124\":null}"}, {"name": "sdt_source_storage_key", "value": "{\"url\":\"https://fe-static.xhscdn.com/as/v2/fp/962356ead351e7f2422eb57edff6982d.js\",\"desVersion\":\"2\",\"signVersion\":\"1\",\"extraInfo\":{},\"reportUrl\":\"/api/sec/v1/shield/webprofile\",\"validate\":false,\"commonPatch\":[\"/fe_api/burdock/v2/note/post\",\"/api/sns/web/v1/comment/post\",\"/api/sns/web/v1/note/like\",\"/api/sns/web/v1/note/collect\",\"/api/sns/web/v1/user/follow\",\"/api/sns/web/v1/feed\",\"/api/sns/web/v1/login/activate\",\"/api/sns/web/v1/note/metrics_report\",\"/api/redcaptcha\",\"/api/store/jpd/main\",\"/phoenix/api/strategy/getAppStrategy\",\"/web_api/sns/v2/note\"],\"signUrl\":\"https://fe-static.xhscdn.com/as/v1/f218/a15/public/04b29480233f4def5c875875b6bdc3b1.js\",\"xhsTokenUrl\":\"https://fe-static.xhscdn.com/as/v1/3e44/public/bf7d4e32677698655a5cadc581fd09b3.js\"}"}, {"name": "b1", "value": "I38rHdgsjopgIvesdVwgIC+oIELmBZ5e3VwXLgFTIxS3bqwErFeexd0ekncAzMFYnqthIhJeSBMDKutRI3KsYorWHPtGrbi0P9WfIi/eWc6eYqtyQApPI37ekmR6QLQ5Ii6sdneeSfqYHqwl2qt5B0DBIx+PGDV/sutkIx0sxuwr4qtiIhuaIE3e3LV0I3VTIC7e0Vtl2ADmsLveDSKsSPw5IEvsiVtJOqw8BuwfPpdeTFWOIx4TIiu6ZPwrPut5IvlaLbgs3qtxIxes1VwHIkumIkIyejgsY/WTge7eSqte/D7sDcpipedeYrDtIC6eDVw2IENsSqtlnlSuNjVtIvoekqt3cZ7sVo4gIESyIhE2NBquIxhnqz8gIkIfoqwkICZWG73sdlOeVPw3IvAe0fged0MnIi5s3I4S2utAIiKsidvekZNeTPt4nAOeWPwEIvY/c07efqwRg9esDuwPI38rIxE5Luwwaqw+rekhZANe1MNe0Pw9ICNsVLoeSbIFIkosSr7sVnFiIkgsVVtMIiudqqw+tqtWI30e3PwjIENeTVthIh/sYqtSGqwymPwDIvIkI3It4aGS4Y/eiutjIimrIEOsSVtzBoFM/9vej9ZvIiENGutzrutlIvve3PtUOpKeTINsVMEyIEJekd/skPtsnPwqIvgejqwfIiJeVUroIv/ejfKeDut3Ixvs1qwu2fWBIEL4ICgsVM6ekgeedZosdVtmIiF9Ixiw8qw9IiHOIx3efe4nargeTPw6IxVAqVwbbn5eisos1VtMKut1IiFeIvTl+VtubuwMIxosVegeYuwu4qtvIv8kHqtoIkViwcVuIxoskSos1FvedqwgBqtdIxhWIk7s0VtmIv5ekgRwIhMiwj8XIE41IEKeWuwGqutWOqt8IiuqICosSloeDPwq8gi+IhLXzVtYOPt6IihHIk+IIx+8Iv/edoAsxBkeoPw0IEVHyPwINPwpIC5eYSHQIxhKqS5eVqtNHPtVNZFhgBMlIhR5zqwaIxOe6zuZIiWebuwkI34n+PtWrVtsIhIAIEpvIvQ+sPwcIiu/IhgsxuwSeI81IEuZIvesj95sdPwvIv8WIhW3GZDYIC+FgmH4Iv3sjS/eSuwBIh7s1ut1IhLNICAedVwQ"}, {"name": "_renderInfo", "value": "angle (google, vulkan 1.3.0 (swiftshader device (llvm 10.0.0) (0x0000c0de)), swiftshader driver)"}, {"name": "xhs_context_networkQuality", "value": "WEAK"}]}]} \ No newline at end of file diff --git a/运营中枢/工作台/gitea_push_log.md b/运营中枢/工作台/gitea_push_log.md index 70e0e7f7..544b218c 100644 --- a/运营中枢/工作台/gitea_push_log.md +++ b/运营中枢/工作台/gitea_push_log.md @@ -273,3 +273,4 @@ | 2026-03-10 19:50:03 | 🔄 卡若AI 同步 2026-03-10 19:50 | 更新:运营中枢工作台 | 排除 >20MB: 11 个 | | 2026-03-10 19:50:33 | 🔄 卡若AI 同步 2026-03-10 19:50 | 更新:运营中枢工作台 | 排除 >20MB: 11 个 | | 2026-03-10 20:05:38 | 🔄 卡若AI 同步 2026-03-10 20:05 | 更新:运营中枢工作台 | 排除 >20MB: 11 个 | +| 2026-03-10 20:26:50 | 🔄 卡若AI 同步 2026-03-10 20:26 | 更新:卡木、运营中枢工作台 | 排除 >20MB: 11 个 | diff --git a/运营中枢/工作台/代码管理.md b/运营中枢/工作台/代码管理.md index f768337d..fb0eda68 100644 --- a/运营中枢/工作台/代码管理.md +++ b/运营中枢/工作台/代码管理.md @@ -276,3 +276,4 @@ | 2026-03-10 19:50:03 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-10 19:50 | 更新:运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | | 2026-03-10 19:50:33 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-10 19:50 | 更新:运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | | 2026-03-10 20:05:38 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-10 20:05 | 更新:运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | +| 2026-03-10 20:26:50 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-10 20:26 | 更新:卡木、运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |