https://github.com/harry0703/MoneyPrinterTurbo.git
· scanned 2026-05-31 19:52 UTC (4 days, 18 hours ago)
· 10 languages
202 findings (82 legacy + 120 scanner) 11/13 scanners ran 77th percentile · Python · small (2-20K LoC) Scanner says 66 (higher by 14)
Last scanned 4 days, 18 hours ago · v2 · 142 findings from 2 sources. Findings combine the legacy security pipeline AND the multi-layer engine (atlas, wiring, flows, ranked) AND verified AI agent contributions.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
100.0 | 0.15 | 15.00 |
security_score |
100.0 | 0.25 | 25.00 |
testing_score |
87.0 | 0.20 | 17.40 |
documentation_score |
70.0 | 0.15 | 10.50 |
practices_score |
42.0 | 0.15 | 6.30 |
code_quality |
59.0 | 0.10 | 5.90 |
| Overall | 1.00 | 80.1 |
All 483 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
get_all_fonts |
software | healthy | webui/Main.py:121 |
get_all_songs |
software | dead | webui/Main.py:131 |
open_task_folder |
software | healthy | webui/Main.py:140 |
scroll_to_bottom |
software | healthy | webui/Main.py:161 |
init_log |
software | healthy | webui/Main.py:178 |
format_record |
software | dead | webui/Main.py:182 |
tr |
software | healthy | webui/Main.py:215 |
get_keys_from_config |
software | healthy | webui/Main.py:516 |
save_keys_to_config |
software | healthy | webui/Main.py:523 |
log_received |
software | dead | webui/Main.py:1231 |
setUp |
software | healthy | test/services/test_task.py:16 |
tearDown |
software | healthy | test/services/test_task.py:19 |
test_generate_script_forwards_advanced_prompt_options |
software | healthy | test/services/test_task.py:22 |
test_task_local_materials |
software | healthy | test/services/test_task.py:48 |
__init__ |
software | healthy | test/services/test_video.py:233 |
setUp |
software | healthy | test/services/test_video.py:83 |
tearDown |
software | healthy | test/services/test_video.py:86 |
test_task_query_returns_relative_task_url_without_mutating_… |
software | healthy | test/services/test_video.py:43 |
test_in_memory_task_manager_rejects_when_queue_is_full |
software | healthy | test/services/test_video.py:70 |
test_preprocess_video |
software | healthy | test/services/test_video.py:89 |
test_preprocess_video_rejects_material_outside_local_videos |
software | healthy | test/services/test_video.py:126 |
test_get_bgm_file_accepts_song_directory_filename |
software | healthy | test/services/test_video.py:137 |
test_get_bgm_file_accepts_project_relative_song_path |
software | healthy | test/services/test_video.py:152 |
test_get_bgm_file_rejects_path_outside_song_directory |
software | healthy | test/services/test_video.py:171 |
test_get_ffmpeg_binary_uses_configured_env_path |
software | healthy | test/services/test_video.py:179 |
test_get_ffmpeg_binary_falls_back_to_imageio_ffmpeg |
software | healthy | test/services/test_video.py:184 |
test_open_video_clip_quietly_suppresses_moviepy_stdout |
software | healthy | test/services/test_video.py:198 |
test_combine_videos_closes_audio_clip_when_duration_read_fa… |
software | healthy | test/services/test_video.py:219 |
close |
software | healthy | test/services/test_video.py:262 |
duration |
software | healthy | test/services/test_video.py:259 |
test_combine_videos_handles_none_transition_mode |
software | healthy | test/services/test_video.py:252 |
test_wrap_text |
software | healthy | test/services/test_video.py:280 |
test_rounded_subtitle_background_clip_has_transparent_corne… |
software | healthy | test/services/test_video.py:314 |
test_build_script_prompt_appends_advanced_requirements |
software | healthy | test/services/test_llm.py:19 |
test_custom_system_prompt_keeps_runtime_context |
software | healthy | test/services/test_llm.py:38 |
test_generate_script_sends_custom_prompt_to_llm |
software | healthy | test/services/test_llm.py:56 |
fake_generate_response |
software | healthy | test/services/test_llm.py:59 |
test_video_script_request_rejects_invalid_advanced_options |
software | healthy | test/services/test_llm.py:75 |
setUp |
software | healthy | test/services/test_llm.py:486 |
tearDown |
software | healthy | test/services/test_llm.py:493 |
_use_litellm_provider |
software | healthy | test/services/test_llm.py:98 |
test_litellm_provider_returns_normalized_text |
software | healthy | test/services/test_llm.py:102 |
_completion |
software | healthy | test/services/test_llm.py:114 |
test_litellm_provider_requires_model_name |
software | healthy | test/services/test_llm.py:131 |
test_litellm_provider_handles_empty_response |
software | healthy | test/services/test_llm.py:139 |
test_litellm_provider_handles_empty_message |
software | healthy | test/services/test_llm.py:152 |
test_openai_provider_still_uses_existing_path |
software | healthy | test/services/test_llm.py:172 |
test_grok_provider_still_uses_existing_path |
software | healthy | test/services/test_llm.py:184 |
_use_ollama_provider |
software | healthy | test/services/test_llm.py:196 |
_assert_ollama_base_url |
software | healthy | test/services/test_llm.py:202 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
TestTaskService |
software | healthy | test/services/test_task.py:15 |
_FakeRequest |
software | healthy | test/services/test_video.py:30 |
TestSecurityControls |
software | healthy | test/services/test_video.py:35 |
TestVideoService |
software | healthy | test/services/test_video.py:82 |
_FakeAudioReader |
software | healthy | test/services/test_video.py:225 |
_BrokenAudioClip |
software | healthy | test/services/test_video.py:232 |
_FakeAudioClip |
software | healthy | test/services/test_video.py:257 |
TestScriptPromptOptions |
software | healthy | test/services/test_llm.py:18 |
TestLiteLLMProvider |
software | healthy | test/services/test_llm.py:90 |
FakeCompletions |
software | healthy | test/services/test_llm.py:333 |
TestRuntimeEnvironmentDetection |
software | healthy | test/services/test_llm.py:407 |
TestLiteLLMLiveIntegration |
software | healthy | test/services/test_llm.py:485 |
TestVoiceService |
software | healthy | test/services/test_voice.py:40 |
_LegacyCommunicate |
software | healthy | test/services/test_voice.py:108 |
_FakeSubMaker |
software | healthy | test/services/test_voice.py:172 |
_HangingCommunicate |
software | healthy | test/services/test_voice.py:161 |
_InlineData |
software | healthy | test/services/test_voice.py:229 |
_Part |
software | healthy | test/services/test_voice.py:233 |
_Content |
software | healthy | test/services/test_voice.py:237 |
_Candidate |
software | healthy | test/services/test_voice.py:241 |
_Response |
software | healthy | test/services/test_voice.py:245 |
_FakeModel |
software | healthy | test/services/test_voice.py:249 |
_FakeAudio |
software | healthy | test/services/test_voice.py:299 |
_FakeMessage |
software | healthy | test/services/test_voice.py:303 |
_FakeChoice |
software | healthy | test/services/test_voice.py:307 |
_FakeCompletion |
software | healthy | test/services/test_voice.py:311 |
_FakeCompletions |
software | healthy | test/services/test_voice.py:315 |
_FakeAudioSegment |
software | healthy | test/services/test_voice.py:320 |
_FakeRedis |
software | healthy | test/services/test_state.py:10 |
TestRedisState |
software | healthy | test/services/test_state.py:33 |
TestMaterialTlsVerification |
software | healthy | test/services/test_material.py:15 |
FakeVideoFileClip |
software | healthy | test/services/test_material.py:95 |
HttpException |
software | healthy | app/models/exception.py:7 |
FileNotFoundException |
software | healthy | app/models/exception.py:27 |
VideoConcatMode |
software | healthy | app/models/schema.py:18 |
VideoTransitionMode |
software | healthy | app/models/schema.py:23 |
VideoAspect |
software | healthy | app/models/schema.py:32 |
_Config |
software | healthy | app/models/schema.py:47 |
MaterialInfo |
software | healthy | app/models/schema.py:52 |
VideoParams |
software | healthy | app/models/schema.py:58 |
SubtitleRequest |
software | healthy | app/models/schema.py:114 |
AudioRequest |
software | healthy | app/models/schema.py:135 |
VideoScriptParams |
software | healthy | app/models/schema.py:147 |
VideoTermsParams |
software | healthy | app/models/schema.py:165 |
BaseResponse |
software | healthy | app/models/schema.py:181 |
TaskVideoRequest |
software | healthy | app/models/schema.py:187 |
TaskQueryRequest |
software | healthy | app/models/schema.py:191 |
VideoScriptRequest |
software | healthy | app/models/schema.py:195 |
VideoTermsRequest |
software | healthy | app/models/schema.py:199 |
TaskResponse |
software | healthy | app/models/schema.py:207 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README-en.md |
software | healthy | README-en.md |
config.example.toml |
software | healthy | config.example.toml |
README.md |
software | healthy | README.md |
Dockerfile |
software | healthy | Dockerfile |
webui.sh |
software | healthy | webui.sh |
pyproject.toml |
software | healthy | pyproject.toml |
main.py |
software | warning | main.py |
requirements.txt |
software | healthy | requirements.txt |
README-ar.md |
software | healthy | README-ar.md |
docker-compose.gpu.yml |
software | healthy | docker-compose.gpu.yml |
docker-compose.yml |
software | healthy | docker-compose.yml |
Main.py |
software | healthy | webui/Main.py |
pt.json |
software | healthy | webui/i18n/pt.json |
tr.json |
software | healthy | webui/i18n/tr.json |
de.json |
software | healthy | webui/i18n/de.json |
zh.json |
software | healthy | webui/i18n/zh.json |
ru.json |
software | healthy | webui/i18n/ru.json |
vi.json |
software | healthy | webui/i18n/vi.json |
en.json |
software | healthy | webui/i18n/en.json |
__init__.py |
software | healthy | test/__init__.py |
README.md |
software | healthy | test/README.md |
__init__.py |
software | healthy | test/services/__init__.py |
test_task.py |
software | healthy | test/services/test_task.py |
test_video.py |
software | healthy | test/services/test_video.py |
test_llm.py |
software | healthy | test/services/test_llm.py |
test_voice.py |
software | healthy | test/services/test_voice.py |
test_state.py |
software | healthy | test/services/test_state.py |
test_material.py |
software | healthy | test/services/test_material.py |
GPU_DOCKER_DEPLOYMENT.md |
software | healthy | docs/GPU_DOCKER_DEPLOYMENT.md |
PR_MERGE_RECORD_2026-04-02.md |
software | healthy | docs/PR_MERGE_RECORD_2026-04-02.md |
router.py |
software | warning | app/router.py |
__init__.py |
software | healthy | app/__init__.py |
asgi.py |
software | healthy | app/asgi.py |
exception.py |
software | healthy | app/models/exception.py |
__init__.py |
software | healthy | app/models/__init__.py |
schema.py |
software | healthy | app/models/schema.py |
const.py |
software | warning | app/models/const.py |
__init__.py |
software | healthy | app/config/__init__.py |
config.py |
software | healthy | app/config/config.py |
file_security.py |
software | healthy | app/utils/file_security.py |
utils.py |
software | healthy | app/utils/utils.py |
ping.py |
software | healthy | app/controllers/ping.py |
base.py |
software | healthy | app/controllers/base.py |
llm.py |
software | healthy | app/controllers/v1/llm.py |
base.py |
software | healthy | app/controllers/v1/base.py |
video.py |
software | healthy | app/controllers/v1/video.py |
redis_manager.py |
software | healthy | app/controllers/manager/redis_manager.py |
base_manager.py |
software | healthy | app/controllers/manager/base_manager.py |
memory_manager.py |
software | healthy | app/controllers/manager/memory_manager.py |
__init__.py |
software | healthy | app/services/__init__.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
webui |
software | healthy | webui |
i18n |
software | healthy | webui/i18n |
test |
software | healthy | test |
services |
software | healthy | test/services |
docs |
software | healthy | docs |
app |
software | healthy | app |
models |
software | healthy | app/models |
config |
software | healthy | app/config |
utils |
software | healthy | app/utils |
controllers |
software | healthy | app/controllers |
v1 |
software | healthy | app/controllers/v1 |
manager |
software | healthy | app/controllers/manager |
services |
software | healthy | app/services |
utils |
software | healthy | app/services/utils |
resource |
software | healthy | resource |
public |
software | healthy | resource/public |
.github |
software | healthy | .github |
ISSUE_TEMPLATE |
software | healthy | .github/ISSUE_TEMPLATE |
| Label | Layer | Status | Path |
|---|---|---|---|
GET /ping |
api | healthy | app/controllers/ping.py |
POST /scripts |
api | healthy | app/controllers/v1/llm.py |
POST /terms |
api | healthy | app/controllers/v1/llm.py |
POST /videos |
api | healthy | app/controllers/v1/video.py |
POST /subtitle |
api | healthy | app/controllers/v1/video.py |
POST /audio |
api | healthy | app/controllers/v1/video.py |
GET /tasks |
api | healthy | app/controllers/v1/video.py |
GET /tasks/{task_id} |
api | healthy | app/controllers/v1/video.py |
DELETE /tasks/{task_id} |
api | healthy | app/controllers/v1/video.py |
GET /musics |
api | healthy | app/controllers/v1/video.py |
POST /musics |
api | healthy | app/controllers/v1/video.py |
GET /video_materials |
api | healthy | app/controllers/v1/video.py |
POST /video_materials |
api | healthy | app/controllers/v1/video.py |
GET /stream/{file_path:path} |
api | healthy | app/controllers/v1/video.py |
GET /download/{file_path:path} |
api | healthy | app/controllers/v1/video.py |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | Dockerfile |
0.5.2.2 |
network | healthy | pyproject.toml |
172.17.0.1 |
network | healthy | test/services/test_llm.py |
115.0.0.0 |
network | healthy | app/services/material.py |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8501 |
network | healthy | Dockerfile |
port:8080 |
network | healthy | docker-compose.yml |
port:6379 |
network | healthy | app/services/state.py |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
webui |
hardware | healthy | docker-compose.yml |
api |
hardware | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::azure |
hardware | healthy | config.example.toml |
vps::aws |
hardware | healthy | config.example.toml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-yiv5nnoz |
software | healthy | /tmp/repobility-clone-yiv5nnoz |
| Label | Layer | Status | Path |
|---|---|---|---|
redis |
data | healthy | pyproject.toml |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | config.example.toml |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::app/services/llm.py |
security | healthy | app/services/llm.py |
This page is publicly accessible at:
https://repobility.com/scan/73fa1dd3-8519-4431-8a03-a547e973030a/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/73fa1dd3-8519-4431-8a03-a547e973030a/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.