AI Slop Code RIsk Monitor

Evil0ctal/Douyin_TikTok_Download_API

🚀 抖音、TikTok 数据采集与无水印视频下载 API,自托管,支持 MCP 调用与 Docker 一键部署。| Self-hosted TikTok & Douyin scraper and no-watermark video downloader — async REST API, MCP server, CLI and web console for posts, profiles, comments and playlists. Self-healing identity pool, PostgreSQL archive, one docker compose up.

32.2 High pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for Evil0ctal/Douyin_TikTok_Download_API, a Python project with 20,588 GitHub stars. SynthScan examined 178,686 lines of code across 544 source files, recording 3873 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 32.2 (High pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

32.2
Adjusted Signal
32.2
Raw Pattern Score
100%
Time Factor
2026-10-02
Last Push
20.6K
Stars
Python
Language
178.7K
Lines of Code
544
Files
3.9K
Pattern Hits
2026-10-12
Scan Date
0.03
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 45.8/100 · MEDIUM

Can maintainers explain intent, assumptions, and trade-offs? 2303 finding(s).

Hallucinated Dependency & Supply Chain Risk 15.6/100 · LOW

Are imports declared and package/API names verified? 601 finding(s).

Agent Over-Engineering Ratio 75.2/100 · CRITICAL

Are wrappers, guards, and repeated structures necessary? 3146 finding(s).

PR Review Velocity Impact 77.5/100 · CRITICAL

Which changes need focused human review? 3873 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 1HIGH 16MEDIUM 687LOW 3169

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 3873 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Decorative Section Separators672 hits · 2640 pts
SeverityFileLineSnippetContext
MEDIUMdocker/compose.yml93 # ----------------------------------------------------------------------COMMENT
MEDIUMdocker/compose.yml96 # ----------------------------------------------------------------------COMMENT
MEDIUMdocker/compose.yml206 # ----------------------------------------------------------------------COMMENT
MEDIUMdocker/compose.yml210 # ----------------------------------------------------------------------COMMENT
MEDIUMdocker/compose.yml223 # ----------------------------------------------------------------------COMMENT
MEDIUMdocker/compose.yml225 # ----------------------------------------------------------------------COMMENT
MEDIUMdocker/compose.yml323 # ----------------------------------------------------------------------COMMENT
MEDIUMdocker/compose.yml332 # ----------------------------------------------------------------------COMMENT
MEDIUMdocker/compose.yml459 # ----------------------------------------------------------------------COMMENT
MEDIUMdocker/compose.yml472 # ----------------------------------------------------------------------COMMENT
MEDIUMinstall/install.sh14# -------------------------------------COMMENT
MEDIUMinstall/install.zh.sh14# ----------------------------COMMENT
MEDIUM⚡tests/unit/test_ops_masking.py17# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_ops_masking.py25# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_tools_sign_stages.py119# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_tools_sign_stages.py121# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_tools_sign_stages.py169# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_tools_sign_stages.py171# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_tools_sign_stages.py219# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_tools_sign_stages.py221# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_tools_sign_stages.py269# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_tools_sign_stages.py271# --------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_tools_sign_stages.py95# --------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_tools_sign_stages.py97# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_absence_matrix.py45# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_absence_matrix.py47# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_absence_matrix.py131# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_absence_matrix.py133# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_absence_matrix.py192# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_absence_matrix.py194# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py272# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py281# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py794# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py796# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py977# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py979# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py1037# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py1039# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py1248# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py1250# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py1531# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py1533# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py1898# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py1906# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py2112# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py2114# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py2411# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py2413# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py2566# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_signing.py2568# --------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_signing.py120# --------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_signing.py122# --------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_signing.py161# --------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_signing.py163# --------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_signing.py191# --------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_signing.py193# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_worker_ops_identity_test.py155# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_worker_ops_identity_test.py157# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_worker_ops_identity_test.py270# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/unit/test_worker_ops_identity_test.py272# --------------------------------------------------------------------------COMMENT
612 more matches not shown…
Hyper-Verbose Identifiers2157 hits · 2017 pts
SeverityFileLineSnippetContext
LOWdocker/browser_rpc/tests/test_validation.py43 def test_allows_platform_hosts(self, url: str) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_validation.py58 def test_rejects_everything_else(self, url: str) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_validation.py62 def test_rejects_cross_platform_url(self) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_validation.py68 def test_normalizes_host_and_drops_fragment(self) -> None:CODE
LOWdocker/browser_rpc/tests/test_validation.py96 def test_rejects_other_schemes(self, url: str) -> None:CODE
LOWdocker/browser_rpc/tests/test_validation.py100 def test_allows_private_addresses(self) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_service.py124 async def test_returns_cookies_and_fingerprint(self, service: BrowserRpcService) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_service.py130 async def test_aligns_timezone_with_the_exit(self, service: BrowserRpcService) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_service.py137 async def test_measured_exit_drives_alignment(CODE
LOW⚡docker/browser_rpc/tests/test_service.py198 async def test_refuses_when_the_backend_never_started(CODE
LOW⚡docker/browser_rpc/tests/test_service.py207 async def test_returns_signature_fields(self, service: BrowserRpcService) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_service.py212 async def test_warm_context_is_reused(self, settings: Settings) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_service.py279 async def test_warm_pages_go_direct_without_one(self, settings: Settings) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_service.py289 async def test_rejects_a_url_outside_the_allowlist(self, service: BrowserRpcService) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_service.py295 async def test_reports_warm_contexts_and_versions(self, settings: Settings) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_service.py496 async def test_an_anonymous_caller_still_gets_a_signature(CODE
LOW⚡docker/browser_rpc/tests/test_service.py506 def test_the_same_session_is_the_same_binding(self) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_service.py510 def test_a_different_jar_is_a_different_binding(self) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_service.py513 def test_a_different_exit_is_a_different_binding(self) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_service.py517 def test_nothing_at_all_is_the_anonymous_binding(self) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_service.py521 def test_the_binding_does_not_carry_the_cookies_around(self) -> None:CODE
LOWdocker/browser_rpc/tests/test_service.py153 async def test_profiles_are_single_use_and_removed(CODE
LOWdocker/browser_rpc/tests/test_service.py165 async def test_profile_is_removed_after_a_failure(self, settings: Settings) -> None:CODE
LOWdocker/browser_rpc/tests/test_service.py177 async def test_timeout_is_reported_not_hung(self, settings: Settings) -> None:CODE
LOWdocker/browser_rpc/tests/test_service.py186 async def test_concurrent_mints_are_capped(self, settings: Settings) -> None:CODE
LOWdocker/browser_rpc/tests/test_service.py225 async def test_stale_context_is_rebuilt(self, settings: Settings, clock: Any) -> None:CODE
LOWdocker/browser_rpc/tests/test_service.py241 async def test_broken_page_is_replaced_and_the_call_succeeds(self, settings: Settings) -> None:CODE
LOWdocker/browser_rpc/tests/test_service.py252 async def test_gives_up_after_the_retry(self, settings: Settings) -> None:CODE
LOWdocker/browser_rpc/tests/test_service.py261 async def test_warm_pages_use_the_configured_exit(self, settings: Settings) -> None:CODE
LOWdocker/browser_rpc/tests/test_service.py308 async def test_unstarted_service_answers_anyway(CODE
LOWdocker/browser_rpc/tests/test_service.py317 async def test_startup_failure_is_recorded_not_raised(self, settings: Settings) -> None:CODE
LOWdocker/browser_rpc/tests/test_service.py346 async def test_the_signature_names_the_callers_own_visitor(self, settings: Settings) -> None:CODE
LOWdocker/browser_rpc/tests/test_service.py365 async def test_two_identities_never_share_a_page(self, settings: Settings) -> None:CODE
LOWdocker/browser_rpc/tests/test_service.py394 async def test_one_identity_keeps_its_page(self, settings: Settings) -> None:CODE
LOWdocker/browser_rpc/tests/test_service.py413 async def test_the_page_follows_the_identitys_own_exit(self, settings: Settings) -> None:CODE
LOWdocker/browser_rpc/tests/test_service.py443 async def test_rebinding_never_exceeds_the_configured_browser_count(CODE
LOWdocker/browser_rpc/tests/test_service.py472 async def test_concurrent_signatures_do_not_overrun_the_budget(CODE
LOWdocker/browser_rpc/tests/test_service.py538 async def test_a_crash_while_warming_up_is_retried(self, settings: Settings) -> None:CODE
LOWdocker/browser_rpc/tests/test_service.py571 async def test_a_pool_that_never_opens_still_reports_the_reason(CODE
LOWdocker/browser_rpc/tests/test_service.py594 async def test_a_failed_open_does_not_leak_the_slot(self, settings: Settings) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_geo.py55 def test_hint_wins_over_measured_exit(self) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_geo.py59 def test_measured_exit_used_without_hint(self) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_geo.py64 def test_individual_fields_override(self) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_geo.py70 def test_falls_back_to_default_country(self) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_geo.py74 def test_unknown_everything_is_still_usable(self) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_geo.py81 async def test_reads_ip_and_country(self) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_geo.py91 async def test_goes_through_the_proxy(self) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_geo.py98 async def test_no_proxy_means_no_proxy_argument(self) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_geo.py103 async def test_disabled_probe_is_silent(self) -> None:CODE
LOWdocker/browser_rpc/tests/test_geo.py116 async def test_alternate_field_names(self) -> None:CODE
LOWdocker/browser_rpc/tests/test_rpc_api.py36 async def test_returns_the_documented_shape(self, client: httpx.AsyncClient) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_rpc_api.py52 async def test_rejects_an_unknown_platform(self, client: httpx.AsyncClient) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_rpc_api.py57 async def test_rejects_a_proxy_that_is_not_a_proxy(self, client: httpx.AsyncClient) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_rpc_api.py66 async def test_signs_with_the_callers_query(self, client: httpx.AsyncClient) -> None:CODE
LOWdocker/browser_rpc/tests/test_rpc_api.py82 async def test_builds_a_query_when_the_caller_sends_only_params(CODE
LOWdocker/browser_rpc/tests/test_rpc_api.py103 async def test_the_callers_cookies_reach_the_signing_page(CODE
LOWdocker/browser_rpc/tests/test_rpc_api.py127 async def test_a_caller_that_sends_no_cookies_still_gets_a_signature(CODE
LOW⚡docker/browser_rpc/tests/test_rpc_api.py138 async def test_rejects_a_url_off_the_allowlist(self, client: httpx.AsyncClient) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_rpc_api.py145 async def test_rejects_a_url_from_the_other_platform(self, client: httpx.AsyncClient) -> None:CODE
LOW⚡docker/browser_rpc/tests/test_rpc_api.py154 async def test_reports_backend_and_versions(self, client: httpx.AsyncClient) -> None:CODE
2097 more matches not shown…
Unused Imports577 hits · 522 pts
SeverityFileLineSnippetContext
LOWdocker/browser_rpc/geo.py19CODE
LOWdocker/browser_rpc/service.py22CODE
LOWdocker/browser_rpc/models.py13CODE
LOWdocker/browser_rpc/__init__.py21CODE
LOWdocker/browser_rpc/settings.py8CODE
LOWdocker/browser_rpc/errors.py11CODE
LOWdocker/browser_rpc/main.py13CODE
LOWdocker/browser_rpc/__main__.py8CODE
LOWdocker/browser_rpc/validation.py14CODE
LOWdocker/browser_rpc/backends/fake.py14CODE
LOWdocker/browser_rpc/backends/cloak.py36CODE
LOWdocker/browser_rpc/backends/__init__.py10CODE
LOWdocker/browser_rpc/backends/__init__.py15CODE
LOWdocker/browser_rpc/backends/__init__.py15CODE
LOWdocker/browser_rpc/backends/__init__.py15CODE
LOWdocker/browser_rpc/backends/__init__.py15CODE
LOWdocker/browser_rpc/backends/__init__.py15CODE
LOWdocker/browser_rpc/backends/base.py14CODE
LOWdocker/browser_rpc/tests/conftest.py10CODE
LOWdocker/browser_rpc/tests/test_validation.py3CODE
LOWdocker/browser_rpc/tests/test_service.py7CODE
LOWdocker/browser_rpc/tests/test_geo.py3CODE
LOWdocker/browser_rpc/tests/test_rpc_api.py10CODE
LOWdocker/browser_rpc/tests/test_backends.py10CODE
LOWdocker/browser_rpc/tests/test_settings.py8CODE
LOWtests/conftest.py9CODE
LOWtests/unit/test_signature_decoding.py10CODE
LOWtests/unit/test_client_profile.py14CODE
LOWtests/unit/test_db_models.py11CODE
LOWtests/unit/test_ops_masking.py10CODE
LOWtests/unit/test_tools_sign_stages.py15CODE
LOWtests/unit/test_absence_matrix.py19CODE
LOWtests/unit/test_signing.py27CODE
LOWtests/unit/test_signing.py33CODE
LOWtests/unit/test_worker_ops_identity_test.py17CODE
LOWtests/unit/test_policy_coverage.py10CODE
LOWtests/unit/test_watchlist.py8CODE
LOWtests/unit/test_ops_backup.py9CODE
LOWtests/unit/test_ops_notify.py15CODE
LOWtests/unit/test_media_client.py9CODE
LOWtests/unit/test_capacity.py8CODE
LOWtests/unit/test_openapi_completeness.py14CODE
LOWtests/unit/test_identity_marks.py3CODE
LOWtests/unit/test_tools_decode_route.py13CODE
LOWtests/unit/test_worker_ops_notify_test.py18CODE
LOWtests/unit/test_media_plan.py7CODE
LOWtests/unit/test_content_ids.py8CODE
LOWtests/unit/test_ops_health.py10CODE
LOWtests/unit/test_ops_retention.py8CODE
LOWtests/unit/test_paging.py10CODE
LOWtests/unit/test_api_middleware.py10CODE
LOWtests/unit/test_webhooks.py9CODE
LOWtests/unit/test_i18n.py8CODE
LOWtests/unit/test_transport.py9CODE
LOWtests/unit/test_openapi_contract.py12CODE
LOWtests/unit/test_worker.py8CODE
LOWtests/unit/test_console_shell.py15CODE
LOWtests/unit/test_identity_importing.py7CODE
LOWtests/unit/test_archive.py9CODE
LOWtests/unit/test_fetch_classification.py20CODE
517 more matches not shown…
Modern Structural Boilerplate198 hits · 198 pts
SeverityFileLineSnippetContext
LOWdocker/browser_rpc/geo.py28logger = logging.getLogger(__name__)CODE
LOWdocker/browser_rpc/geo.py188__all__ = [CODE
LOWdocker/browser_rpc/service.py55logger = logging.getLogger(__name__)CODE
LOWdocker/browser_rpc/service.py537__all__ = ["ANONYMOUS", "BrowserRpcService", "MintOutcome", "WarmSlot", "binding_key"]CODE
LOWdocker/browser_rpc/models.py132__all__ = ["HealthResponse", "MintRequest", "MintResponse", "SignRequest", "SignResponse"]CODE
LOWdocker/browser_rpc/__init__.py23__all__ = ["__version__"]CODE
LOWdocker/browser_rpc/settings.py183__all__ = ["DEFAULT_GEO_PROBE_URL", "ENV_PREFIX", "Settings"]CODE
LOWdocker/browser_rpc/errors.py70__all__ = [CODE
LOWdocker/browser_rpc/main.py39logger = logging.getLogger(__name__)CODE
LOWdocker/browser_rpc/main.py164__all__ = ["configure_logging", "create_app"]CODE
LOWdocker/browser_rpc/validation.py199__all__ = [CODE
LOWdocker/browser_rpc/backends/fake.py32logger = logging.getLogger(__name__)CODE
LOWdocker/browser_rpc/backends/fake.py191__all__ = ["BACKEND_NAME", "FAKE_CHROMIUM_MAJOR", "FakeBackend", "FakeSigningContext", "build"]CODE
LOWdocker/browser_rpc/backends/cloak.py67logger = logging.getLogger(__name__)CODE
LOWdocker/browser_rpc/backends/cloak.py755__all__ = [CODE
LOWdocker/browser_rpc/backends/__init__.py43__all__ = [CODE
LOWdocker/browser_rpc/backends/base.py157__all__ = [CODE
LOWtests/integration/test_api_demo.py54def _set_demo(app: Any, enabled: bool) -> None:CODE
LOWtests/integration/test_api_support.py216__all__ = [CODE
LOWtests/support/marks.py55__all__ = ["MARK_DRAWING", "MARK_GLYPHS", "MARK_SYNTAX", "is_project_mark"]CODE
LOWtests/replay/support.py130__all__ = [CODE
LOWsrc/dtk/platforms/registry.py71__all__ = ["available_platforms", "get_adapter"]CODE
LOWsrc/dtk/platforms/__init__.py17__all__ = [CODE
LOWsrc/dtk/platforms/common.py308__all__ = [CODE
LOWsrc/dtk/platforms/base.py457__all__ = [CODE
LOWsrc/dtk/platforms/paging.py56__all__ = ["MAX_PAGE_SIZE", "max_page_size"]CODE
LOWsrc/dtk/platforms/douyin/params.py359__all__ = [CODE
LOWsrc/dtk/platforms/douyin/adapter.py124__all__ = ["ADAPTER", "DouyinAdapter"]CODE
LOWsrc/dtk/platforms/douyin/__init__.py5__all__ = ["ADAPTER", "DouyinAdapter"]CODE
LOWsrc/dtk/platforms/douyin/parser.py579__all__ = [CODE
LOWsrc/dtk/platforms/douyin/endpoints.py315__all__ = [CODE
LOWsrc/dtk/platforms/tiktok/params.py580__all__ = [CODE
LOWsrc/dtk/platforms/tiktok/adapter.py94__all__ = ["ADAPTER", "TikTokAdapter"]CODE
LOWsrc/dtk/platforms/tiktok/__init__.py5__all__ = ["ADAPTER", "TikTokAdapter"]CODE
LOWsrc/dtk/platforms/tiktok/parser.py628__all__ = [CODE
LOWsrc/dtk/platforms/tiktok/endpoints.py317__all__ = [CODE
LOWsrc/dtk/signing/registry.py856__all__ = [CODE
LOWsrc/dtk/signing/__init__.py38__all__ = [CODE
LOWsrc/dtk/signing/rpc.py317__all__ = ["HEALTH_PATH", "SIGN_PATH", "RpcSigner"]CODE
LOWsrc/dtk/signing/base.py325__all__ = [CODE
LOWsrc/dtk/signing/protection.py107__all__ = ["DOUYIN_SIGNED_PATHS", "requires_browser_signature"]CODE
LOWsrc/dtk/signing/native/xbogus.py263__all__ = [CODE
LOWsrc/dtk/signing/native/tiktok_sign.py726__all__ = [CODE
LOWsrc/dtk/signing/native/__init__.py22__all__ = [CODE
LOWsrc/dtk/signing/native/tokens.py299__all__ = [CODE
LOWsrc/dtk/signing/native/decoding.py1015__all__ = [CODE
LOWsrc/dtk/signing/native/websign.py135__all__ = [CODE
LOWsrc/dtk/signing/native/sm3.py119__all__ = ["IV", "sm3_hash", "sm3_hexdigest", "sm3_to_array"]CODE
LOWsrc/dtk/signing/native/signer.py375__all__ = [CODE
LOWsrc/dtk/signing/native/abogus.py823__all__ = [CODE
LOWsrc/dtk/transport/classify.py742__all__ = [CODE
LOWsrc/dtk/transport/wreq_transport.py558__all__ = [CODE
LOWsrc/dtk/transport/emulation.py271__all__ = [CODE
LOWsrc/dtk/transport/__init__.py49__all__ = [CODE
LOWsrc/dtk/transport/headers.py142__all__ = [CODE
LOWsrc/dtk/transport/base.py336__all__ = [CODE
LOWsrc/dtk/core/logging.py105__all__ = ["QUIET_LOGGERS", "SENSITIVE_KEYS", "configure", "get_logger", "redact"]CODE
LOWsrc/dtk/core/db.py67__all__ = ["Base", "dispose_engine", "get_engine", "init_engine", "session_scope"]CODE
LOWsrc/dtk/core/config.py733__all__ = [CODE
LOWsrc/dtk/core/crypto.py86__all__ = [CODE
138 more matches not shown…
Excessive Try-Catch Wrapping96 hits · 98 pts
SeverityFileLineSnippetContext
LOWdocker/browser_rpc/geo.py166 except Exception as exc:CODE
LOWdocker/browser_rpc/service.py166 except Exception as exc:CODE
LOWdocker/browser_rpc/service.py214 except Exception:CODE
LOWdocker/browser_rpc/service.py401 except Exception as exc:CODE
LOWdocker/browser_rpc/service.py519 except Exception:CODE
LOWdocker/browser_rpc/main.py152 except Exception as exc:CODE
LOWdocker/browser_rpc/backends/cloak.py326 except Exception as exc:CODE
LOWdocker/browser_rpc/backends/cloak.py368 except Exception as exc:CODE
LOWdocker/browser_rpc/backends/cloak.py474 except Exception as exc:CODE
LOWdocker/browser_rpc/backends/cloak.py494 except Exception as exc:CODE
LOWdocker/browser_rpc/backends/cloak.py549 except Exception as exc:CODE
LOWdocker/browser_rpc/backends/cloak.py580 except Exception as exc:CODE
LOWdocker/browser_rpc/backends/cloak.py620 except Exception as exc:CODE
LOWdocker/browser_rpc/backends/cloak.py623 except Exception:CODE
LOWdocker/browser_rpc/backends/cloak.py667 except Exception as exc: # a navigation mid-poll, or a crashed targetCODE
LOWdocker/browser_rpc/backends/cloak.py716 except Exception as exc:CODE
LOWinstall/install.sh918except Exception:CODE
LOWinstall/install.sh944except Exception:CODE
LOWinstall/install.zh.sh894except Exception:CODE
LOWinstall/install.zh.sh920except Exception:CODE
LOWtests/integration/conftest.py48 except Exception as exc:CODE
LOWtests/integration/conftest.py67 except Exception as exc:CODE
LOWtests/integration/test_end_to_end.py53 except Exception as exc:CODE
LOWsrc/dtk/signing/registry.py850 except Exception as exc:CODE
LOWsrc/dtk/transport/wreq_transport.py295 except Exception as exc:CODE
LOWsrc/dtk/transport/wreq_transport.py396 except Exception as exc:CODE
LOWsrc/dtk/transport/wreq_transport.py455 except Exception as exc:CODE
LOWsrc/dtk/transport/wreq_transport.py478 except Exception as exc:CODE
LOWsrc/dtk/core/db.py54 except Exception:CODE
LOWsrc/dtk/identity/mint_log.py67 except Exception as exc: # pragma: no cover - a breadcrumb, never a failureCODE
LOWsrc/dtk/identity/mint_log.py102 except Exception as exc: # pragma: no cover - a breadcrumb, never a failureCODE
LOWsrc/dtk/identity/mint_log.py126 except Exception as exc: # pragma: no cover - a breadcrumb, never a failureCODE
LOWsrc/dtk/identity/mint_log.py134 except Exception as exc: # pragma: no cover - a breadcrumb, never a failureCODE
LOWsrc/dtk/identity/mint_log.py153 except Exception as exc:CODE
LOWsrc/dtk/identity/pool.py114 except Exception as exc:CODE
LOWsrc/dtk/identity/pool.py411 except Exception as exc:CODE
LOWsrc/dtk/mcp/tools.py114 except Exception as exc: # reporting must never mask the failure it explainsCODE
LOWsrc/dtk/mcp/tools.py121 except Exception as exc: # reporting must never mask the failure it explainsCODE
LOWsrc/dtk/mcp/tools.py144 except Exception as exc:CODE
MEDIUMsrc/dtk/mcp/tools.py118def _snapshot(self) -> PoolSnapshot | None:CODE
LOWsrc/dtk/cli/fetch_cmd.py163 except Exception as exc:CODE
LOWsrc/dtk/api/deps.py203 except Exception:CODE
LOWsrc/dtk/api/deps.py268 except Exception:CODE
LOWsrc/dtk/api/middleware.py254 except Exception:CODE
LOWsrc/dtk/api/routes/auth.py164 except Exception as exc: # Redis is down; a login must still be possible.CODE
LOWsrc/dtk/api/routes/auth.py181 except Exception as exc:CODE
LOWsrc/dtk/api/routes/system.py78 except Exception as exc:CODE
LOWsrc/dtk/api/routes/system.py248 except Exception as exc:CODE
LOWsrc/dtk/api/routes/system.py283 except Exception:CODE
LOWsrc/dtk/api/routes/system.py323 except Exception as exc:CODE
LOWsrc/dtk/api/routes/operations.py204 except Exception:CODE
LOWsrc/dtk/api/routes/operations.py259 except Exception as exc:CODE
LOWsrc/dtk/api/routes/setup.py137 except Exception as exc: # startup must not fail over an advisoryCODE
LOWsrc/dtk/api/routes/setup.py248 except Exception as exc:CODE
LOWsrc/dtk/api/routes/admin/identities.py160 except Exception:CODE
LOWsrc/dtk/api/routes/admin/identities.py307 except Exception:CODE
LOWsrc/dtk/api/routes/admin/proxies.py59 except Exception:CODE
LOWsrc/dtk/api/routes/admin/settings.py276 except Exception as exc:CODE
LOWsrc/dtk/ops/_sql.py48 except Exception as exc:CODE
LOWsrc/dtk/ops/health.py125 except Exception as exc: # pragma: no cover - depends on the wreq buildCODE
36 more matches not shown…
Over-Commented Block96 hits · 93 pts
SeverityFileLineSnippetContext
LOWdocker/entrypoint.sh1#!/bin/shCOMMENT
LOWdocker/compose.yml1# Production orchestration for a single host.COMMENT
LOWdocker/compose.yml41#: Resource ceilings for the two Python app services.COMMENT
LOWdocker/compose.yml141 # here, and Redis dies rather than swaps when it hits a ceiling, so theCOMMENT
LOWdocker/compose.yml161 # cache writes one entry per distinct request and keeps it for the TTL inCOMMENT
LOWdocker/compose.yml241 volumes:COMMENT
LOWdocker/compose.yml321 # Throughput is bounded by the identity pool, not by this number.COMMENT
LOWdocker/compose.yml381 #COMMENT
LOWdocker/compose.yml401 # rather than a guess. The driver passes --disable-dev-shm-usage itselfCOMMENT
LOWdocker/compose.yml461 # only wants metadata never needs to store a byte of video.COMMENT
LOWdocker/downloader/store.go1package mainCOMMENT
LOWdocker/downloader/queue.go1package mainCOMMENT
LOWdocker/downloader/download.go1package mainCOMMENT
LOWdocker/downloader/api.go1package mainCOMMENT
LOWdocker/downloader/main.go1// Command downloader stores media this instance has already parsed onto theCOMMENT
LOWdocker/downloader/safety.go1package mainCOMMENT
LOWdocker/browser_rpc/requirements.txt1# Runtime dependencies of the browser-rpc image.COMMENT
LOWdocker/browser_rpc/settings.py61 #: navigable well before its security bundle has loaded, and signing in thatCOMMENT
LOWdocker/browser_rpc/backends/cloak.py81LAUNCH_ENTRY_POINT: str = "launch_persistent_context_async"COMMENT
LOWdocker/browser_rpc/backends/cloak.py121#: Both platforms sign by patching ``window.fetch`` and ``XMLHttpRequest``COMMENT
LOWdocker/browser_rpc/backends/cloak.py181#: after its context opened and produced nothing, twice, and then returned aCOMMENT
LOWdocker/browser_rpc/backends/cloak.py201COMMENT
LOWdocker/browser_rpc/backends/cloak.py341COMMENT
LOWinstall/install.sh1#!/usr/bin/env bashCOMMENT
LOWinstall/install.zh.sh1#!/usr/bin/env bashCOMMENT
LOWweb/eslint.config.js1import js from '@eslint/js'COMMENT
LOWweb/src/pages/Identities.tsx1081 // cell is where that id gets copied from; a column preference persistedCOMMENT
LOWweb/src/pages/Logs.tsx221 id: 'identity',COMMENT
LOWweb/src/pages/Downloads.tsx321 //: asking which one you have is asking you to classify your own clipboard.COMMENT
LOWtests/unit/test_signature_decoding.py41#: recovered from the bundle, where `b` is a byte array and `if (b[i+1])` isCOMMENT
LOWtests/unit/test_signing.py281# --------------------------------------------------------------------------COMMENT
LOWtests/unit/test_signing.py2721 "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "COMMENT
LOWtests/unit/test_tools_decode_route.py61COMMENT
LOWtests/unit/test_i18n.py701COMMENT
LOWtests/unit/test_repo_hygiene.py501 assert '"negotiated"' in console_pyCOMMENT
LOWtests/integration/conftest.py21 "postgresql+asyncpg://dtk:dtk_test_password@127.0.0.1:55432/dtk_test",COMMENT
LOWtests/integration/test_worker.py821 "maintenance",COMMENT
LOWtests/support/marks.py21from __future__ import annotationsCOMMENT
LOW.github/FUNDING.yml1# Only GitHub Sponsors. The other channels this project once listed were removedCOMMENT
LOW.github/dependabot.yml1# Dependency updates.COMMENT
LOW.github/workflows/docker-publish.yml1# Build the images and push them to Docker Hub.COMMENT
LOW.github/workflows/docker-publish.yml21# (see the two Dockerfiles).COMMENT
LOW.github/workflows/docker-publish.yml221 #COMMENT
LOW.github/workflows/codeql.yml1# Static analysis for the three languages this repository actually ships.COMMENT
LOWsrc/dtk/__init__.py1"""dtk - self-hosted Douyin / TikTok data API."""COMMENT
LOWsrc/dtk/platforms/base.py281 name: strCOMMENT
LOWsrc/dtk/platforms/douyin/parser.py401#: The ``status`` on a ``collects_list`` entry that means "anyone can open it".COMMENT
LOWsrc/dtk/platforms/tiktok/params.py101APP_NAME: Final = "tiktok_web"COMMENT
LOWsrc/dtk/platforms/tiktok/params.py121#: request took /api/item/detail/ from 0 bytes to a full itemStruct, whileCOMMENT
LOWsrc/dtk/platforms/tiktok/endpoints.py221 # No empty_body_is_normal: TikTok answers a hidden list with a realCOMMENT
LOWsrc/dtk/platforms/tiktok/endpoints.py261 # The third and last of the Saved tab's endpoints, and the one thatCOMMENT
LOWsrc/dtk/signing/registry.py261COMMENT
LOWsrc/dtk/signing/registry.py301#: ``msToken`` and URL, and ``msToken`` is a session token minted per identity;COMMENT
LOWsrc/dtk/signing/native/xbogus.py21"""COMMENT
LOWsrc/dtk/signing/native/tiktok_sign.py141#: Environment fingerprint the payload reports, taken from a real browser.COMMENT
LOWsrc/dtk/signing/native/tiktok_sign.py161#: present/absent), so it is a property of the SDK build rather than of theCOMMENT
LOWsrc/dtk/signing/native/tiktok_sign.py181DEVICE_HASH: Final = "0"COMMENT
LOWsrc/dtk/signing/native/tokens.py41COMMENT
LOWsrc/dtk/signing/native/abogus.py61#         __COMMENT
LOWsrc/dtk/signing/native/abogus.py101#: ``"1.0.1.19-fix.01"`` as the SDK parses it: ``split(".")`` then a JS ``~~``,COMMENT
36 more matches not shown…
Cross-Language Confusion12 hits · 55 pts
SeverityFileLineSnippetContext
HIGHdocker/browser_rpc/backends/cloak.py152 const state = { capture: false, url: null };CODE
HIGHdocker/browser_rpc/backends/cloak.py156 const url = typeof input === 'string' ? input : (input && input.url);CODE
HIGHdocker/browser_rpc/backends/cloak.py232 state.url = null;CODE
HIGH⚡tests/unit/test_fetch_classification.py707 b'{"status_code":0,"aweme_detail":null,'CODE
HIGHtests/unit/test_repo_hygiene.py323 assert "open={pending !== null}" in sourceCODE
HIGHtests/integration/test_api_downloads.py761 """null, not missing: a card that has to branch on undefined reads the sameSTRING
HIGHsrc/dtk/signing/protection.py9 if ("webSign" === f.strategyKey && b === a.REWRITE) {STRING
HIGHsrc/dtk/signing/native/websign.py94 """Serialize like the JavaScript ``URLSearchParams.toString()`` the SDK uses.STRING
HIGHsrc/dtk/transport/classify.py183#: "aweme_detail": null,COMMENT
HIGHsrc/dtk/transport/classify.py202#: 200, 211 bytes, {"status_code": 0, "aweme_detail": null,COMMENT
HIGHsrc/dtk/mcp/tools.py425 platform did not report are null, never zero - a null is missing data,STRING
HIGHsrc/dtk/worker/ops/identity_mint.py9 "proxy_id": "..." | null}STRING
AI Slop Vocabulary10 hits · 32 pts
SeverityFileLineSnippetContext
MEDIUMtests/unit/test_signing.py2737#: What the Node harness reported for the two codes the payload carries, which isCOMMENT
MEDIUMtests/unit/test_signing.py2739#: below was generated by that harness, so reproducing them byte for byte requiresCOMMENT
MEDIUMtests/integration/test_api_logs.py364 # pool and a transport to assert one column would test the harnessCOMMENT
MEDIUM⚡tests/integration/test_api_auth.py48 # Plain HTTP in the test harness, so Secure is dropped rather than makingCOMMENT
MEDIUMsrc/dtk/signing/native/tiktok_sign.py150#: The earlier values (129 and 14) came from a Node harness driving the genuineCOMMENT
MEDIUMsrc/dtk/signing/native/tiktok_sign.py154#: left as they were. The harness, not the port, was what disagreed with theCOMMENT
MEDIUM⚡src/dtk/signing/native/tiktok_sign.py170#: 2d context reports. Giving the harness a working ``getContext('2d')`` made theCOMMENT
MEDIUM⚡src/dtk/signing/native/tiktok_sign.py176#: Three more environment fields the Node harness could not produce, so the portCOMMENT
MEDIUM⚡src/dtk/signing/native/tiktok_sign.py184#: running in. Confirmed by pointing the harness at a video URL, which made thisCOMMENT
MEDIUM⚡src/dtk/ops/notify.py584 """The one method a caller needs in order to raise an alert.STRING
AI Structural Patterns20 hits · 18 pts
SeverityFileLineSnippetContext
LOWtests/unit/test_transport.py123CODE
LOWsrc/dtk/signing/native/tiktok_sign.py649CODE
LOWsrc/dtk/db/timeseries.py32CODE
LOWsrc/dtk/db/timeseries.py180CODE
LOWsrc/dtk/api/routes/content.py424CODE
LOWsrc/dtk/api/routes/content.py485CODE
LOWsrc/dtk/api/routes/content.py557CODE
LOWsrc/dtk/api/routes/content.py633CODE
LOWsrc/dtk/api/routes/content.py693CODE
LOWsrc/dtk/api/routes/content.py766CODE
LOWsrc/dtk/api/routes/content.py843CODE
LOWsrc/dtk/api/routes/content.py918CODE
LOWsrc/dtk/api/routes/content.py1002CODE
LOWsrc/dtk/api/routes/content.py1077CODE
LOWsrc/dtk/api/routes/content.py1139CODE
LOWsrc/dtk/api/routes/content.py1212CODE
LOWsrc/dtk/api/routes/content.py1279CODE
LOWsrc/dtk/api/routes/content.py1353CODE
LOWsrc/dtk/api/routes/archive.py174CODE
LOWsrc/dtk/api/routes/archive.py292CODE
Fake / Example Data11 hits · 15 pts
SeverityFileLineSnippetContext
LOWweb/eslint.config.js80 'placeholder',CODE
LOWweb/src/locales/zh/setup.json39 "placeholder": "每行一个代理",CODE
LOW⚡web/src/locales/zh/console.json1734 "placeholder": "https://www.douyin.com/video/7408915107113127220",CODE
LOW⚡web/src/locales/zh/console.json1742 "placeholder": "",CODE
LOW⚡web/src/locales/zh/console.json1750 "placeholder": "https://www.douyin.com/video/7408915107113127220",CODE
LOW⚡web/src/locales/zh/console.json1758 "placeholder": "https://www.douyin.com/user/MS4wLjABAAAA… 或 MS4wLjABAAAA…",CODE
LOWweb/src/locales/en/setup.json39 "placeholder": "One proxy per line",CODE
LOW⚡web/src/locales/en/console.json1734 "placeholder": "https://www.douyin.com/video/7408915107113127220",CODE
LOW⚡web/src/locales/en/console.json1742 "placeholder": "",CODE
LOW⚡web/src/locales/en/console.json1750 "placeholder": "https://www.douyin.com/video/7408915107113127220",CODE
LOW⚡web/src/locales/en/console.json1758 "placeholder": "https://www.douyin.com/user/MS4wLjABAAAA…",CODE
Hallucination Indicators1 hit · 15 pts
SeverityFileLineSnippetContext
CRITICAL⚡tests/unit/test_db_models.py233 assert model.__table__.c.id.type.compile(PG) == "UUID"CODE
Empty Error Handlers3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHsrc/dtk/transport/base.py193except (ValueError, UnicodeDecodeError):CODE
HIGHsrc/dtk/api/request_proxy.py233except ValueError:CODE
HIGHsrc/dtk/services/settings_store.py167except TimeoutError:CODE
Deep Nesting15 hits · 13 pts
SeverityFileLineSnippetContext
LOWdocker/browser_rpc/service.py419CODE
LOWtests/unit/test_identity_importing.py253CODE
LOWtests/unit/test_identity_importing.py279CODE
LOWtests/unit/test_repo_hygiene.py106CODE
LOWtests/unit/test_repo_hygiene.py109CODE
LOWsrc/dtk/identity/pool.py422CODE
LOWsrc/dtk/cli/identities.py105CODE
LOWsrc/dtk/cli/identities.py119CODE
LOWsrc/dtk/api/routes/openapi.py369CODE
LOWsrc/dtk/api/routes/tools.py760CODE
LOWsrc/dtk/ops/webhooks.py172CODE
LOWsrc/dtk/worker/registry.py383CODE
LOWsrc/dtk/worker/main.py763CODE
LOWsrc/dtk/services/archive.py111CODE
LOWsrc/dtk/services/archive.py261CODE
Modern AI Meta-Vocabulary4 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMdocker/README.md1# Container images and orchestrationCOMMENT
MEDIUMdocker/compose.test.yml1# Test-only orchestration. Always run through:COMMENT
MEDIUMdocker/compose.yml1# Production orchestration for a single host.COMMENT
MEDIUMtests/integration/test_scheduler_fairness.py85 # The wait budget is scaffolding, not the thing under test: what isCOMMENT
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHsrc/dtk/urls/expand.py59Follow ``url`` to its final destination and return the canonical form. Every hop is re-validated against the host aSTRING