抖音 / TikTok 平台作品下载/数据采集工具
This report summarizes scanner evidence for JoeanAmier/TikTokDownloader, a JavaScript project with 16,668 GitHub stars. SynthScan examined 42,853 lines of code across 153 source files, recording 490 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 12.4 (Moderate 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.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 133 finding(s).
Are imports declared and package/API names verified? 257 finding(s).
Are wrappers, guards, and repeated structures necessary? 210 finding(s).
Which changes need focused human review? 490 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
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.
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.
The scanner identified 490 distinct pattern matches across 10 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/tui_edition/__init__.py | 1 | CODE | |
| LOW | src/interface/info_tiktok.py | 7 | CODE | |
| LOW | src/interface/user.py | 7 | CODE | |
| LOW | src/interface/comment.py | 8 | CODE | |
| LOW | src/interface/detail_tiktok.py | 7 | CODE | |
| LOW | src/interface/__init__.py | 1 | CODE | |
| LOW | src/interface/__init__.py | 2 | CODE | |
| LOW | src/interface/__init__.py | 3 | CODE | |
| LOW | src/interface/__init__.py | 4 | CODE | |
| LOW | src/interface/__init__.py | 4 | CODE | |
| LOW | src/interface/__init__.py | 4 | CODE | |
| LOW | src/interface/__init__.py | 4 | CODE | |
| LOW | src/interface/__init__.py | 4 | CODE | |
| LOW | src/interface/__init__.py | 11 | CODE | |
| LOW | src/interface/__init__.py | 11 | CODE | |
| LOW | src/interface/__init__.py | 12 | CODE | |
| LOW | src/interface/__init__.py | 12 | CODE | |
| LOW | src/interface/__init__.py | 13 | CODE | |
| LOW | src/interface/__init__.py | 14 | CODE | |
| LOW | src/interface/__init__.py | 15 | CODE | |
| LOW | src/interface/__init__.py | 16 | CODE | |
| LOW | src/interface/__init__.py | 17 | CODE | |
| LOW | src/interface/__init__.py | 18 | CODE | |
| LOW | src/interface/__init__.py | 19 | CODE | |
| LOW | src/interface/__init__.py | 20 | CODE | |
| LOW | src/interface/__init__.py | 21 | CODE | |
| LOW | src/interface/__init__.py | 22 | CODE | |
| LOW | src/interface/__init__.py | 23 | CODE | |
| LOW | src/interface/__init__.py | 24 | CODE | |
| LOW | src/interface/__init__.py | 25 | CODE | |
| LOW | src/interface/__init__.py | 26 | CODE | |
| LOW | src/interface/__init__.py | 27 | CODE | |
| LOW | src/interface/collects.py | 8 | CODE | |
| LOW | src/interface/hashtag.py | 8 | CODE | |
| LOW | src/interface/live_tiktok.py | 9 | CODE | |
| LOW | src/interface/comment_tiktok.py | 8 | CODE | |
| LOW | src/interface/detail.py | 7 | CODE | |
| LOW | src/interface/collection.py | 7 | CODE | |
| LOW | src/interface/live.py | 7 | CODE | |
| LOW | src/interface/template.py | 23 | CODE | |
| LOW | src/interface/template.py | 24 | CODE | |
| LOW | src/interface/template.py | 24 | CODE | |
| LOW | src/interface/template.py | 25 | CODE | |
| LOW | src/interface/search.py | 11 | CODE | |
| LOW | src/interface/slides.py | 8 | CODE | |
| LOW | src/interface/mix_tiktok.py | 7 | CODE | |
| LOW | src/interface/hot.py | 9 | CODE | |
| LOW | src/interface/info.py | 7 | CODE | |
| LOW | src/interface/mix.py | 9 | CODE | |
| LOW | src/interface/account.py | 8 | CODE | |
| LOW | src/interface/account_tiktok.py | 7 | CODE | |
| LOW | src/tools/choose.py | 4 | CODE | |
| LOW | src/tools/choose.py | 6 | CODE | |
| LOW | src/tools/session.py | 11 | CODE | |
| LOW | src/tools/session.py | 11 | CODE | |
| LOW | src/tools/session.py | 12 | CODE | |
| LOW | src/tools/__init__.py | 2 | CODE | |
| LOW | src/tools/__init__.py | 2 | CODE | |
| LOW | src/tools/__init__.py | 3 | CODE | |
| LOW | src/tools/__init__.py | 4 | CODE | |
| 195 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/encrypt/xBogus.py | 1 | # ============================================================ | COMMENT |
| MEDIUM | src/encrypt/xBogus.py | 13 | # ============================================================ | COMMENT |
| MEDIUM | src/encrypt/tiktok_params.py | 1 | # ============================================================ | COMMENT |
| MEDIUM | src/encrypt/tiktok_params.py | 14 | # ============================================================ | COMMENT |
| MEDIUM | src/encrypt/tiktok_sign.py | 1 | # ============================================================ | COMMENT |
| MEDIUM | src/encrypt/tiktok_sign.py | 14 | # ============================================================ | COMMENT |
| MEDIUM | src/encrypt/websign.py | 1 | # ============================================================ | COMMENT |
| MEDIUM | src/encrypt/websign.py | 15 | # ============================================================ | COMMENT |
| MEDIUM | src/encrypt/sm3.py | 1 | # ============================================================ | COMMENT |
| MEDIUM | src/encrypt/sm3.py | 12 | # ============================================================ | COMMENT |
| MEDIUM | src/encrypt/xGnarly.py | 142 | # ── BIT HELPERS ──────────────────────────────────────── | COMMENT |
| MEDIUM | src/encrypt/xGnarly.py | 151 | # ── CHACHA CORE ──────────────────────────────────────── | COMMENT |
| MEDIUM | src/encrypt/xGnarly.py | 187 | # ── JS-faithful PRNG (rand) ──────────────────────────── | COMMENT |
| MEDIUM | src/encrypt/xGnarly.py | 199 | # ── UTILITIES ────────────────────────────────────────── | COMMENT |
| MEDIUM | src/encrypt/xGnarly.py | 214 | # ── MESSAGE ENCRYPTION ────────────────────────────── | COMMENT |
| MEDIUM | src/encrypt/xGnarly.py | 267 | # ── MAIN API ─────────────────────────────────────────── | COMMENT |
| MEDIUM | src/encrypt/douyin_params.py | 1 | # ============================================================ | COMMENT |
| MEDIUM | src/encrypt/douyin_params.py | 17 | # ============================================================ | COMMENT |
| MEDIUM | src/encrypt/douyin_params.py | 31 | # ============================================================ | COMMENT |
| MEDIUM | src/encrypt/douyin_params.py | 46 | # ============================================================ | COMMENT |
| MEDIUM | src/encrypt/douyin_params.py | 166 | # -------------------------------------------------------- | COMMENT |
| MEDIUM | src/encrypt/douyin_params.py | 168 | # -------------------------------------------------------- | COMMENT |
| MEDIUM | src/encrypt/douyin_params.py | 183 | # -------------------------------------------------------- | COMMENT |
| MEDIUM | src/encrypt/douyin_params.py | 185 | # -------------------------------------------------------- | COMMENT |
| MEDIUM | src/encrypt/douyin_params.py | 207 | # -------------------------------------------------------- | COMMENT |
| MEDIUM | src/encrypt/douyin_params.py | 209 | # -------------------------------------------------------- | COMMENT |
| MEDIUM | src/encrypt/douyin_params.py | 221 | # ================================================ | COMMENT |
| MEDIUM | src/encrypt/douyin_params.py | 223 | # ================================================ | COMMENT |
| MEDIUM | src/encrypt/douyin_params.py | 243 | # ================================================ | COMMENT |
| MEDIUM | src/encrypt/douyin_params.py | 245 | # ================================================ | COMMENT |
| MEDIUM | src/encrypt/aBogus.py | 1 | # ============================================================ | COMMENT |
| MEDIUM | src/encrypt/aBogus.py | 14 | # ============================================================ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/interface/template.py | 431 | def __record_request_messages( | CODE |
| LOW | src/interface/template.py | 484 | def __general_progress_object(self): | CODE |
| LOW | src/interface/search.py | 232 | def generate_search_filter_value( | CODE |
| LOW | src/tools/cleaner.py | 97 | def remove_control_characters( | CODE |
| LOW | src/tools/dynamic_import.py | 22 | def load_objects_from_external_py( | CODE |
| LOW | src/config/settings.py | 211 | def __compatible_with_old_settings( | CODE |
| LOW | src/config/parameter.py | 325 | def __get_cookie_tiktok_cache( | CODE |
| LOW | src/config/parameter.py | 366 | async def __get_tt_wid_params_tiktok(self) -> dict: | CODE |
| LOW⚡ | src/config/parameter.py | 737 | def __update_download_headers(self) -> None: | CODE |
| LOW⚡ | src/config/parameter.py | 740 | def __update_download_headers_tiktok(self) -> None: | CODE |
| LOW | src/config/parameter.py | 789 | async def __get_token_params_tiktok(self) -> dict: | CODE |
| LOW | src/config/parameter.py | 1083 | def __set_browser_info_tiktok( | CODE |
| LOW | src/config/parameter.py | 1210 | def check_objects_from_external_py(console: "ColorfulConsole"): | CODE |
| LOW | src/testers/test_tiktok_params.py | 18 | def test_tiktok_sign_url_with_base(): | CODE |
| LOW | src/testers/test_tiktok_params.py | 32 | def test_tiktok_sign_url_without_base(): | CODE |
| LOW | src/testers/test_tiktok_params.py | 44 | def test_tiktok_sign_url_parameter_order(): | CODE |
| LOW | src/testers/test_tiktok_params.py | 60 | def test_tiktok_sign_url_ms_token_in_query(): | CODE |
| LOW | src/testers/test_tiktok_params.py | 71 | def test_tiktok_query_uses_browser_encoding(): | CODE |
| LOW | src/testers/test_tiktok_params.py | 87 | def test_tiktok_query_ms_token_wins_over_explicit_argument(): | CODE |
| LOW | src/testers/test_douyin_params.py | 13 | def test_douyin_sign_url_with_base(): | CODE |
| LOW | src/testers/test_douyin_params.py | 24 | def test_douyin_sign_url_without_base(): | CODE |
| LOW | src/testers/test_douyin_params.py | 34 | def test_douyin_sign_url_websign_with_uifid(): | CODE |
| LOW | src/testers/test_douyin_params.py | 49 | def test_douyin_sign_url_websign_without_uifid(): | CODE |
| LOW | src/testers/test_douyin_params.py | 59 | def test_douyin_sign_url_websign_skips_unprotected_endpoint(): | CODE |
| LOW⚡ | src/testers/test_douyin_params.py | 71 | def test_douyin_query_uses_standard_form_encoding_inside_signer(): | CODE |
| LOW⚡ | src/testers/test_douyin_params.py | 79 | def test_douyin_normalizes_raw_query_string(): | CODE |
| LOW⚡ | src/testers/test_douyin_params.py | 85 | def test_douyin_sign_url_accepts_raw_mapping_and_encodes_once(): | CODE |
| LOW⚡ | src/testers/test_douyin_params.py | 93 | def test_douyin_websign_reencodes_query_like_native_signer(): | CODE |
| LOW | src/testers/test_douyin_params.py | 105 | def test_douyin_websign_keeps_literal_plus_in_uifid(): | CODE |
| LOW | src/testers/test_douyin_params.py | 114 | def test_douyin_protected_query_is_canonicalized_before_a_bogus(monkeypatch): | CODE |
| LOW | src/module/tiktok_unofficial.py | 136 | def extract_statistics_tiktok( | CODE |
| LOW | src/downloader/download.py | 121 | def __general_progress_object(self) -> Progress: | CODE |
| LOW | src/downloader/download.py | 746 | def __record_request_messages( | CODE |
| LOW | src/downloader/download.py | 954 | def __get_resume_byte_position(file: Path) -> int: | CODE |
| LOW | src/extract/extractor.py | 268 | def __extract_extra_info_tiktok( | CODE |
| LOW | src/extract/extractor.py | 328 | def __extract_detail_info_tiktok( | CODE |
| LOW | src/extract/extractor.py | 360 | def __classifying_detail_tiktok( | CODE |
| LOW | src/extract/extractor.py | 374 | def __extract_additional_info( | CODE |
| LOW | src/extract/extractor.py | 450 | def __extract_image_info_tiktok( | CODE |
| LOW | src/extract/extractor.py | 622 | def __extract_video_info_tiktok( | CODE |
| LOW | src/extract/extractor.py | 651 | def __extract_video_download_tiktok( | CODE |
| LOW | src/extract/extractor.py | 734 | def __extract_text_extra_tiktok( | CODE |
| LOW | src/extract/extractor.py | 812 | def __extract_statistics_tiktok( | CODE |
| LOW | src/extract/extractor.py | 863 | def __extract_account_info_tiktok( | CODE |
| LOW | src/extract/extractor.py | 1002 | def __extract_pretreatment_data( | CODE |
| LOW | src/extract/extractor.py | 1025 | async def __platform_classify_detail( | CODE |
| LOW | src/extract/extractor.py | 1212 | def __extract_live_data_tiktok( | CODE |
| LOW | src/extract/extractor.py | 1606 | def __extract_collection_music( | CODE |
| LOW | src/extract/extractor.py | 1628 | def generate_original_quality_url(uri: str) -> str: | CODE |
| LOW | src/application/main_terminal.py | 291 | async def account_acquisition_interactive_tiktok( | CODE |
| LOW | src/application/main_terminal.py | 317 | async def account_acquisition_interactive( | CODE |
| LOW | src/application/main_terminal.py | 364 | async def account_detail_batch_tiktok( | CODE |
| LOW | src/application/main_terminal.py | 447 | async def account_detail_inquire_tiktok( | CODE |
| LOW | src/application/main_terminal.py | 502 | async def account_detail_txt_tiktok( | CODE |
| LOW | src/application/main_terminal.py | 839 | def __display_extracted_information( | CODE |
| LOW | src/application/main_terminal.py | 892 | async def detail_interactive_tiktok( | CODE |
| LOW | src/application/main_terminal.py | 902 | async def detail_interactive_tiktok_unofficial( | CODE |
| LOW | src/application/main_terminal.py | 962 | async def __detail_inquire_tiktok_unofficial( | CODE |
| LOW | src/application/main_terminal.py | 999 | async def __detail_txt_tiktok_unofficial( | CODE |
| LOW | src/application/main_terminal.py | 1243 | def show_live_stream_url_tiktok(self, item: dict, tasks: list): | CODE |
| 8 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | encipher_example.py | 9 | __all__ = [ | CODE |
| LOW | src/tui_edition/__init__.py | 3 | __all__ = ["App"] | CODE |
| LOW | src/tui_edition/setting.py | 1 | __all__ = ["Setting"] | CODE |
| LOW | src/tui_edition/app.py | 1 | __all__ = ["App"] | CODE |
| LOW | src/interface/template.py | 27 | __all__ = [ | CODE |
| LOW | src/interface/template.py | 263 | def set_referer(self, url: str = None) -> None: | CODE |
| LOW | src/interface/slides.py | 11 | __all__ = ["Slides"] | CODE |
| LOW | src/tools/console.py | 13 | __all__ = ["ColorfulConsole"] | CODE |
| LOW | src/tools/choose.py | 8 | __all__ = ["choose"] | CODE |
| LOW | src/tools/timer.py | 3 | __all__ = ["run_time"] | CODE |
| LOW | src/tools/session.py | 14 | __all__ = ["request_params", "create_client"] | CODE |
| LOW | src/tools/__init__.py | 30 | __all__ = [ | CODE |
| LOW | src/tools/retry.py | 4 | __all__ = ["Retry"] | CODE |
| LOW | src/tools/browser.py | 25 | __all__ = ["Browser"] | CODE |
| LOW | src/tools/cleaner.py | 12 | __all__ = ["Cleaner"] | CODE |
| LOW | src/tools/capture.py | 12 | __all__ = [ | CODE |
| LOW | src/tools/list_pop.py | 1 | __all__ = ["safe_pop"] | CODE |
| LOW | src/record/__init__.py | 4 | __all__ = ["LoggerManager", "BaseLogger"] | CODE |
| LOW | src/config/__init__.py | 4 | __all__ = ["Parameter", "Settings"] | CODE |
| LOW | src/config/settings.py | 16 | __all__ = ["Settings"] | CODE |
| LOW | src/config/parameter.py | 53 | __all__ = ["Parameter"] | CODE |
| LOW | src/config/parameter.py | 580 | async def update_params(self) -> None: | CODE |
| LOW | src/config/parameter.py | 648 | async def update_params_offline(self) -> None: | CODE |
| LOW⚡ | src/config/parameter.py | 733 | def set_download_headers(self) -> None: | CODE |
| LOW | src/config/parameter.py | 994 | def set_general_params(self, data: dict[str, Any]) -> None: | CODE |
| LOW | src/module/ffmpeg.py | 7 | __all__ = ["FFMPEG"] | CODE |
| LOW | src/module/__init__.py | 8 | __all__ = [ | CODE |
| LOW | src/module/cookie.py | 13 | __all__ = ["Cookie"] | CODE |
| LOW | src/downloader/download.py | 46 | __all__ = ["Downloader"] | CODE |
| LOW | src/downloader/__init__.py | 3 | __all__ = ["Downloader"] | CODE |
| LOW | src/storage/__init__.py | 3 | __all__ = ["RecordManager"] | CODE |
| LOW | src/storage/sqlite.py | 14 | __all__ = ["SQLLogger"] | CODE |
| LOW | src/storage/csv.py | 12 | __all__ = ["CSVLogger"] | CODE |
| LOW | src/storage/xlsx.py | 13 | __all__ = ["XLSXLogger"] | CODE |
| LOW | src/storage/sql.py | 6 | __all__ = ["BaseSQLLogger"] | CODE |
| LOW | src/storage/manager.py | 14 | __all__ = ["RecordManager"] | CODE |
| LOW | src/storage/mysql.py | 3 | __all__ = ["MySQLLogger"] | CODE |
| LOW | src/manager/database.py | 9 | __all__ = ["Database"] | CODE |
| LOW | src/manager/recorder.py | 16 | __all__ = [ | CODE |
| LOW | src/manager/cache.py | 11 | __all__ = ["Cache"] | CODE |
| LOW | src/manager/__init__.py | 5 | __all__ = [ | CODE |
| LOW | src/link/__init__.py | 3 | __all__ = [ | CODE |
| LOW | src/link/requester.py | 12 | __all__ = ["Requester"] | CODE |
| LOW | src/link/extractor.py | 10 | __all__ = ["Extractor", "ExtractorTikTok"] | CODE |
| LOW | src/extract/__init__.py | 3 | __all__ = ["Extractor"] | CODE |
| LOW | src/extract/extractor.py | 42 | __all__ = ["Extractor"] | CODE |
| LOW | src/application/main_server.py | 43 | __all__ = ["APIServer"] | CODE |
| LOW | src/application/main_terminal.py | 60 | __all__ = [ | CODE |
| LOW | src/application/__init__.py | 3 | __all__ = ["TikTokDownloader"] | CODE |
| LOW | src/application/TikTokDownloader.py | 47 | __all__ = ["TikTokDownloader"] | CODE |
| LOW | src/application/TikTokDownloader.py | 93 | def set_language(language: str) -> None: | CODE |
| LOW | src/application/TikTokDownloader.py | 183 | async def _update_language(self, language: str) -> None: | CODE |
| LOW | src/application/main_monitor.py | 12 | __all__ = ["ClipboardMonitor", "PostMonitor"] | CODE |
| LOW | src/cli_edition/__init__.py | 3 | __all__ = ["cli"] | CODE |
| LOW | src/cli_edition/main_cli.py | 1 | __all__ = ["cli"] | CODE |
| LOW | src/encrypt/ttWid.py | 14 | __all__ = ["TtWid", "TtWidTikTok"] | CODE |
| LOW | src/encrypt/tiktok_params.py | 21 | __all__ = ["TikTokParams"] | CODE |
| LOW | src/encrypt/webID.py | 12 | __all__ = ["WebId"] | CODE |
| LOW | src/encrypt/tiktok_sign.py | 23 | __all__ = [ | CODE |
| LOW | src/encrypt/websign.py | 21 | __all__ = [ | CODE |
| 5 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/interface/user.py | 32 | CODE | |
| LOW | src/interface/comment.py | 13 | CODE | |
| LOW | src/interface/comment.py | 58 | CODE | |
| LOW | src/interface/comment.py | 90 | CODE | |
| LOW | src/interface/comment.py | 123 | CODE | |
| LOW | src/interface/comment.py | 207 | CODE | |
| LOW | src/interface/comment.py | 249 | CODE | |
| LOW | src/interface/comment.py | 280 | CODE | |
| LOW | src/interface/detail_tiktok.py | 31 | CODE | |
| LOW | src/interface/collects.py | 39 | CODE | |
| LOW | src/interface/collects.py | 102 | CODE | |
| LOW | src/interface/collects.py | 162 | CODE | |
| LOW | src/interface/collects.py | 218 | CODE | |
| LOW | src/interface/collects.py | 272 | CODE | |
| LOW | src/interface/comment_tiktok.py | 45 | CODE | |
| LOW | src/interface/detail.py | 33 | CODE | |
| LOW | src/interface/collection.py | 32 | CODE | |
| LOW | src/interface/template.py | 128 | CODE | |
| LOW | src/interface/template.py | 202 | CODE | |
| LOW | src/interface/search.py | 134 | CODE | |
| LOW | src/interface/mix_tiktok.py | 44 | CODE | |
| LOW | src/interface/mix_tiktok.py | 103 | CODE | |
| LOW | src/interface/hot.py | 66 | CODE | |
| LOW | src/interface/mix.py | 52 | CODE | |
| LOW | src/interface/account.py | 16 | CODE | |
| LOW | src/interface/account.py | 43 | CODE | |
| LOW | src/interface/account.py | 99 | CODE | |
| LOW | src/interface/account.py | 125 | CODE | |
| LOW | src/interface/account_tiktok.py | 18 | CODE | |
| LOW | src/interface/account_tiktok.py | 48 | CODE | |
| LOW | src/interface/account_tiktok.py | 95 | CODE | |
| LOW | src/tools/session.py | 37 | CODE | |
| LOW | src/module/tiktok_unofficial.py | 41 | CODE | |
| LOW | src/downloader/download.py | 182 | CODE | |
| LOW | src/downloader/download.py | 776 | CODE | |
| LOW | src/extract/extractor.py | 893 | CODE | |
| LOW | src/application/main_terminal.py | 538 | CODE | |
| LOW | src/application/main_terminal.py | 716 | CODE | |
| LOW | src/application/main_terminal.py | 853 | CODE | |
| LOW | src/application/main_terminal.py | 1655 | CODE | |
| LOW | src/application/main_terminal.py | 1864 | CODE | |
| LOW | src/encrypt/tiktok_sign.py | 433 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | requirements.txt | 1 | # This file was autogenerated by uv via the following command: | COMMENT |
| LOW | src/config/parameter.py | 741 | key = "tt_chain_token" | COMMENT |
| LOW | src/config/parameter.py | 801 | name=MsTokenTikTok.NAME | COMMENT |
| LOW | src/application/main_server.py | 301 | ) | COMMENT |
| LOW | src/application/TikTokDownloader.py | 361 | "粘贴 Cookie 内容后按下 Enter 键确认继续;不输入内容按下 Enter 键则取消操作:" | COMMENT |
| LOW | src/application/TikTokDownloader.py | 461 | self.params_task.start() | COMMENT |
| LOW | src/application/TikTokDownloader.py | 481 | # if Browser(self.parameter, self.cookie).run( | COMMENT |
| LOW | src/encrypt/xBogus.py | 1 | # ============================================================ | COMMENT |
| LOW | src/encrypt/tiktok_params.py | 1 | # ============================================================ | COMMENT |
| LOW | src/encrypt/tiktok_sign.py | 1 | # ============================================================ | COMMENT |
| LOW | src/encrypt/websign.py | 1 | # ============================================================ | COMMENT |
| LOW | src/encrypt/sm3.py | 1 | # ============================================================ | COMMENT |
| LOW | src/encrypt/douyin_params.py | 1 | # ============================================================ | COMMENT |
| LOW | src/encrypt/aBogus.py | 1 | # ============================================================ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | static/js/runtime_bundler_34.js | 3304 | (c.context.SDKNativeWebApi.XHR_REQUEST_SETQEQUESTHEADER.fn.call( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/interface/search.py | 357 | CODE | |
| LOW | src/config/parameter.py | 331 | CODE | |
| LOW | src/downloader/download.py | 306 | CODE | |
| LOW | src/extract/extractor.py | 515 | CODE | |
| LOW | src/extract/extractor.py | 1348 | CODE | |
| LOW | src/application/main_terminal.py | 1508 | CODE | |
| LOW | src/application/main_terminal.py | 1755 | CODE | |
| LOW | src/application/TikTokDownloader.py | 239 | CODE | |
| LOW | src/cli_edition/write.py | 38 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/downloader/download.py | 692 | except Exception as e: | CODE |
| LOW | src/storage/xlsx.py | 67 | except Exception as e: | CODE |
| MEDIUM | src/storage/xlsx.py | 47 | def __aexit__(self, exc_type, exc_val, exc_tb): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/encrypt/verifyFp.py | 17 | return Pi.get(Si) || (null === localStorage || void 0 === localStorage ? void 0 : localStorage.getItem(Si)) || f | STRING |