Low Risk — Risk Score 20/100
Last scan:2 days ago Rescan
20 /100
kay-video-upload
多平台短视频自动发布工具,支持抖音、视频号、快手、小红书、B站
合法的多平台视频自动发布工具,使用Playwright浏览器自动化操作各平台创作者后台,存在未声明的shell执行(安装依赖)和反爬虫脚本,但均属工具类应用正常行为,无恶意数据外泄证据。
Skill Namekay-video-upload
Duration53.1s
Enginepi
Safe to install
可安全使用。建议:1) 依赖安装添加版本锁定;2) 考虑在SKILL.md中声明subprocess调用权限;3) 小红书签名服务需自行部署确保安全。

Findings 5 items

Severity Finding Location
Medium
shell执行权限未声明
setup.py使用subprocess.check_call执行pip install安装依赖,publish.py执行外部biliup.exe程序,SKILL.md未声明shell:WRITE权限
subprocess.check_call([sys.executable, "-m", "pip", "install", "playwright", "biliup", "loguru", "requests"])
→ 在SKILL.md中声明shell:WRITE权限用于安装依赖
scripts/setup.py:28
Low
反爬虫脚本注入
stealth.min.js(180KB)被注入到Playwright浏览器上下文,用于绕过各平台的自动化检测机制
(function(){...})() - minified anti-detection script
→ 确认反爬虫脚本来源可信,用于正常自动化操作
scripts/utils/stealth.min.js:1
Low
依赖无版本锁定
setup.py中pip install依赖未指定版本,可能引入供应链风险
pip install playwright biliup loguru requests
→ 建议锁定版本如playwright==1.40.0
scripts/setup.py:28
Info
小红书签名服务依赖
小红书上传依赖外部签名服务(XHS_SERVER默认http://127.0.0.1:11901),需自行部署签名服务
XHS_SERVER = os.environ.get("XHS_SERVER", "http://127.0.0.1:11901")
→ 确认签名服务部署在可信环境
scripts/conf.py:16
Info
凭证本地存储
平台登录凭证存储在scripts/cookies/目录下,使用Playwright storage_state格式
COOKIES = {"douyin": SCRIPTS_DIR / "cookies" / "douyin_uploader" / "account.json"}
→ 凭证存储在本地目录,注意文件权限保护
scripts/publish.py:26
ResourceDeclaredInferredStatusEvidence
Filesystem READ READ ✓ Aligned VIDEO_DIR读取视频文件
Network READ READ ✓ Aligned 访问各平台创作者后台URL
Shell NONE WRITE ✗ Violation setup.py:28 subprocess.check_call pip install; publish.py:120 subprocess.run bil…
Browser READ WRITE ✓ Aligned Playwright控制浏览器自动化操作
18 findings
🔗
Medium External URL 外部 URL
http://127.0.0.1:11901
README.md:78
🔗
Medium External URL 外部 URL
https://www.xiaohongshu.com/explore
scripts/publish.py:92
🔗
Medium External URL 外部 URL
https://creator.douyin.com/creator-micro/content/upload
scripts/uploader/douyin_uploader/main.py:21
🔗
Medium External URL 外部 URL
https://creator.douyin.com/
scripts/uploader/douyin_uploader/main.py:60
🔗
Medium External URL 外部 URL
https://creator.douyin.com/creator-micro/content/publish?enter_from=publish_page
scripts/uploader/douyin_uploader/main.py:126
🔗
Medium External URL 外部 URL
https://creator.douyin.com/creator-micro/content/post/video?enter_from=publish_page
scripts/uploader/douyin_uploader/main.py:133
🔗
Medium External URL 外部 URL
https://creator.douyin.com/creator-micro/content/manage**
scripts/uploader/douyin_uploader/main.py:211
🔗
Medium External URL 外部 URL
https://cp.kuaishou.com/article/publish/video
scripts/uploader/ks_uploader/main.py:22
🔗
Medium External URL 外部 URL
https://cp.kuaishou.com
scripts/uploader/ks_uploader/main.py:58
🔗
Medium External URL 外部 URL
https://cp.kuaishou.com/article/manage/video?status=2&from=publish
scripts/uploader/ks_uploader/main.py:179
🔗
Medium External URL 外部 URL
https://channels.weixin.qq.com/platform/post/create
scripts/uploader/tencent_uploader/main.py:42
🔗
Medium External URL 外部 URL
https://channels.weixin.qq.com
scripts/uploader/tencent_uploader/main.py:67
🔗
Medium External URL 外部 URL
https://channels.weixin.qq.com/platform/post/list
scripts/uploader/tencent_uploader/main.py:203
🔗
Medium External URL 外部 URL
https://www.xiaohongshu.com
scripts/uploader/xhs_uploader/main.py:28
🔗
Medium External URL 外部 URL
https://www.mnot.net/blog/2016/03/09/alt-svc
scripts/utils/stealth.min.js:7
🔗
Medium External URL 外部 URL
https://source.chromium.org/chromium/chromium/src/+/master:components/crx_file/id_util.cc;drc=14a055ccb17e8c8d5d437fe080...
scripts/utils/stealth.min.js:7
🔗
Medium External URL 外部 URL
https://developer.chrome.com/apps/runtime#method-connect\n
scripts/utils/stealth.min.js:7
🔗
Medium External URL 外部 URL
https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext#Browser_compatibility\n
scripts/utils/stealth.min.js:7

File Tree

23 files · 258.6 KB · 2147 lines
Python 19f · 1865L Markdown 3f · 276L JavaScript 1f · 6L
├─ 📁 references
│ └─ 📝 platforms.md Markdown 40L · 1.4 KB
├─ 📁 scripts
│ ├─ 📁 uploader
│ │ ├─ 📁 bilibili_uploader
│ │ │ ├─ 🐍 __init__.py Python 1L · 2 B
│ │ │ └─ 🐍 main.py Python 79L · 3.4 KB
│ │ ├─ 📁 douyin_uploader
│ │ │ ├─ 🐍 __init__.py Python 1L · 2 B
│ │ │ └─ 🐍 main.py Python 394L · 19.4 KB
│ │ ├─ 📁 ks_uploader
│ │ │ ├─ 🐍 __init__.py Python 1L · 2 B
│ │ │ └─ 🐍 main.py Python 213L · 9.0 KB
│ │ ├─ 📁 tencent_uploader
│ │ │ ├─ 🐍 __init__.py Python 1L · 2 B
│ │ │ └─ 🐍 main.py Python 285L · 13.9 KB
│ │ ├─ 📁 xhs_uploader
│ │ │ ├─ 🐍 __init__.py Python 1L · 2 B
│ │ │ └─ 🐍 main.py Python 58L · 2.3 KB
│ │ └─ 🐍 __init__.py Python 1L · 2 B
│ ├─ 📁 utils
│ │ ├─ 🐍 __init__.py Python 1L · 2 B
│ │ ├─ 🐍 base_social_media.py Python 29L · 797 B
│ │ ├─ 🐍 constant.py Python 309L · 8.2 KB
│ │ ├─ 🐍 files_times.py Python 83L · 2.7 KB
│ │ ├─ 🐍 log.py Python 53L · 1.9 KB
│ │ └─ 📜 stealth.min.js JavaScript 6L · 176.2 KB
│ ├─ 🐍 conf.py Python 20L · 690 B
│ ├─ 🐍 publish.py Python 256L · 9.8 KB
│ └─ 🐍 setup.py Python 79L · 2.3 KB
├─ 📝 README.md Markdown 139L · 3.3 KB
└─ 📝 SKILL.md Markdown 97L · 3.4 KB

Dependencies 5 items

PackageVersionSourceKnown VulnsNotes
playwright * pip No 无版本锁定
biliup * pip No 无版本锁定,B站官方上传工具
loguru * pip No 无版本锁定
requests * pip No 无版本锁定
stealth.min.js n/a local No 反爬虫脚本,注入浏览器上下文

Security Positives

✓ 代码结构清晰,模块化设计良好
✓ 使用Playwright官方API进行浏览器自动化
✓ 各平台上传逻辑独立,易于审计
✓ 凭证存储在本地而非外部服务器
✓ 视频发布功能与声明一致,无超范围操作
✓ 支持定时发布、封面设置等合理功能