Scan Report
5 /100
bilibili-all-in-one
Comprehensive Bilibili toolkit integrating hot trending monitoring, video downloading, subtitle downloading, playback/danmaku, and video publishing capabilities
A legitimate Bilibili API toolkit with well-documented credential handling and network endpoints; the pre-scan hardcoded-IP flag is a false positive — all URLs use HTTPS domain names. No malicious patterns detected.
Safe to install
Safe to use. Ensure users provide credentials via environment variables rather than files, and use a test account since SESSDATA/bili_jct are full session cookies.
Findings 4 items
| Severity | Finding | Location |
|---|---|---|
| Low | Pre-scan hardcoded-IP flag is a false positive | src/utils.py:55 |
| Info | Subprocess (ffmpeg) not declared in SKILL.md | src/downloader.py:373 |
| Info | Browser opens local captcha page not declared as capability | src/publisher.py:702 |
| Info | Filesystem WRITE not fully declared in capability matrix | src/downloader.py, src/subtitle.py, src/auth.py |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Network | READ | READ | ✓ Aligned | SKILL.md declares HTTPS to Bilibili APIs only; code uses httpx/aiohttp to api.bi… |
| Filesystem | READ | WRITE | ✓ Aligned | SKILL.md lists 'Read' for filesystem but code writes downloaded videos (download… |
| Environment | READ | READ | ✓ Aligned | auth.py reads BILIBILI_SESSDATA, BILIBILI_BILI_JCT, BILIBILI_BUVID3 from os.envi… |
| Shell | NONE | WRITE | ✓ Aligned | downloader.py:373 calls asyncio.create_subprocess_exec('ffmpeg') for video/audio… |
| Skill Invoke | NONE | NONE | — | No skill_invoke usage detected |
| Clipboard | NONE | NONE | — | No clipboard access detected |
| Browser | NONE | WRITE | ✓ Aligned | publisher.py:delete_with_captcha opens user browser via webbrowser.open() to htt… |
| Database | NONE | NONE | — | No database access detected |
1 High 29 findings
High IP Address 硬编码 IP 地址
120.0.0.0 src/utils.py:55 Medium External URL 外部 URL
https://img.shields.io/badge/python-%3E%3D3.8-blue?logo=python&logoColor=white README.md:8 Medium External URL 外部 URL
https://img.shields.io/badge/license-MIT-green README.md:9 Medium External URL 外部 URL
https://img.shields.io/badge/version-1.0.9-orange README.md:10 Medium External URL 外部 URL
https://img.shields.io/badge/platform-Bilibili-pink README.md:11 Medium External URL 外部 URL
https://www.bilibili.com README.md:98 Medium External URL 外部 URL
https://www.bilibili.com/video/BVxxxxxx README.md:211 Medium External URL 外部 URL
https://clawhub.ai/Jacobzwj/bilibili-hot-monitor README.md:442 Medium External URL 外部 URL
https://clawhub.ai/caiyundc880518/bililidownloader README.md:443 Medium External URL 外部 URL
https://clawhub.ai/donnycui/bilibili-youtube-watcher README.md:444 Medium External URL 外部 URL
https://clawhub.ai/DavinciEvans/bilibili-subtitle-download-skill README.md:445 Medium External URL 外部 URL
https://clawhub.ai/e421083458/bilibili-player README.md:446 Medium External URL 外部 URL
https://clawhub.ai/Johnnyxu820/bilibili-video-publish README.md:447 Medium External URL 外部 URL
https://www.bilibili.com/video/BV1xx411c7mD skill.json:137 Medium External URL 外部 URL
https://www.bilibili.com/video/ src/downloader.py:102 Medium External URL 外部 URL
https://member.bilibili.com/preupload src/publisher.py:19 Medium External URL 外部 URL
https://upos-sz-upcdnbda2.bilivideo.com src/publisher.py:20 Medium External URL 外部 URL
https://member.bilibili.com src/publisher.py:21 Medium External URL 外部 URL
https://passport.bilibili.com/x/passport-login/captcha src/publisher.py:27 Medium External URL 外部 URL
https://static.geetest.com/static/js/gt.0.4.9.js src/publisher.py:73 Medium External URL 外部 URL
https://member.bilibili.com/ src/publisher.py:640 Medium External URL 外部 URL
http://127.0.0.1: src/publisher.py:702 Medium External URL 外部 URL
https://upos-sz-upcdnbda2.bilivideo.com/ src/publisher.py:821 Medium External URL 外部 URL
https://api.bilibili.com src/utils.py:13 Medium External URL 外部 URL
https://b23.tv/BV1xx411c7mD tests/test_comprehensive.py:143 Medium External URL 外部 URL
https://www.bilibili.com/video/av12345 tests/test_comprehensive.py:160 Medium External URL 外部 URL
https://www.example.com/video tests/test_comprehensive.py:228 Medium External URL 外部 URL
http://cover.jpg tests/test_comprehensive.py:447 Medium External URL 外部 URL
http://face.jpg tests/test_comprehensive.py:448 File Tree
18 files · 270.0 KB · 7607 lines Python 13f · 6123L
Markdown 3f · 1106L
JSON 1f · 372L
Text 1f · 6L
├─
▾
src
│ ├─
__init__.py
Python
│ ├─
auth.py
Python
│ ├─
downloader.py
Python
│ ├─
hot_monitor.py
Python
│ ├─
player.py
Python
│ ├─
publisher.py
Python
│ ├─
subtitle.py
Python
│ ├─
utils.py
Python
│ └─
watcher.py
Python
├─
▾
tests
│ ├─
__init__.py
Python
│ ├─
test_all_skill_examples.py
Python
│ └─
test_comprehensive.py
Python
├─
main.py
Python
├─
README.md
Markdown
├─
requirements.txt
Text
├─
skill.json
JSON
├─
skill.md
Markdown
└─
STRUCTURE.md
Markdown
Dependencies 6 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
httpx | >=0.24.0 | pip | No | Version range, not pinned |
bilibili-api-python | >=16.0.0 | pip | No | Version range, not pinned |
aiohttp | >=3.8.0 | pip | No | Version range, not pinned |
beautifulsoup4 | >=4.12.0 | pip | No | Version range, not pinned |
lxml | >=4.9.0 | pip | No | Version range, not pinned |
requests | >=2.31.0 | pip | No | Version range, not pinned |
Security Positives
✓ All network requests go to documented Bilibili official API domains over HTTPS (api.bilibili.com, member.bilibili.com, upos-sz-upcdnbda2.bilivideo.com)
✓ No base64-encoded payloads, reverse shells, or code injection patterns found
✓ No credential exfiltration — credentials are only sent to Bilibili's own APIs
✓ SKILL.md provides comprehensive security documentation including credential scope, best practices, and network endpoint list
✓ Credentials are not persisted to disk by default (requires explicit save_to_file() call)
✓ Saved credential files use restrictive 0600 permissions
✓ Subprocess (ffmpeg) is used only for legitimate video merging and is documented
✓ No sensitive path access (no ~/.ssh, ~/.aws, .env scanning)
✓ The pre-scan hardcoded-IP flag (120.0.0.0) is confirmed as a false positive — no IP literals in code
✓ All imports are standard PyPI packages with no known malicious indicators
✓ Strong input sanitization: sanitize_filename() removes invalid characters and limits filename length to 200 chars
✓ Local HTTP server for captcha only binds to 127.0.0.1 (not exposed externally) and auto-closes after verification