AI Slop Code RIsk Monitor

yt-dlp/yt-dlp

A feature-rich command-line audio/video downloader

8.9 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for yt-dlp/yt-dlp, a Python project with 196,638 GitHub stars. SynthScan examined 273,049 lines of code across 1196 source files, recording 2979 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 8.9 (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.

8.9
Adjusted Signal
8.9
Raw Pattern Score
100%
Time Factor
2026-09-27
Last Push
196.6K
Stars
Python
Language
273.0K
Lines of Code
1.2K
Files
3.0K
Pattern Hits
2026-10-12
Scan Date
0.06
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 15.2/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 21.9/100 · LOW

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

Agent Over-Engineering Ratio 11.9/100 · LOW

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

PR Review Velocity Impact 46.2/100 · MEDIUM

Which changes need focused human review? 2979 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

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.

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 0HIGH 71MEDIUM 25LOW 2883

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 2979 distinct pattern matches across 17 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.

Unused Imports1874 hits · 1003 pts
SeverityFileLineSnippetContext
LOWyt_dlp/update.py1CODE
LOWyt_dlp/globals.py1CODE
LOWyt_dlp/__init__.py1096CODE
LOWyt_dlp/compat/shutil.py2CODE
LOWyt_dlp/compat/_deprecated.py11CODE
LOWyt_dlp/compat/_legacy.py27CODE
LOWyt_dlp/compat/_legacy.py28CODE
LOWyt_dlp/compat/_legacy.py29CODE
LOWyt_dlp/compat/_legacy.py30CODE
LOWyt_dlp/compat/_legacy.py31CODE
LOWyt_dlp/compat/_legacy.py35CODE
LOWyt_dlp/compat/_legacy.py36CODE
LOWyt_dlp/compat/_legacy.py37CODE
LOWyt_dlp/compat/urllib/request.py2CODE
LOWyt_dlp/compat/urllib/__init__.py2CODE
LOWyt_dlp/__pyinstaller/hook-yt_dlp.py8CODE
LOWyt_dlp/__pyinstaller/hook-yt_dlp.py11CODE
LOWyt_dlp/networking/_urllib.py1CODE
LOWyt_dlp/networking/impersonate.py1CODE
LOWyt_dlp/networking/_websockets.py1CODE
LOWyt_dlp/networking/_helper.py1CODE
LOWyt_dlp/networking/__init__.py4CODE
LOWyt_dlp/networking/__init__.py4CODE
LOWyt_dlp/networking/__init__.py4CODE
LOWyt_dlp/networking/__init__.py4CODE
LOWyt_dlp/networking/__init__.py4CODE
LOWyt_dlp/networking/__init__.py4CODE
LOWyt_dlp/networking/__init__.py4CODE
LOWyt_dlp/networking/__init__.py16CODE
LOWyt_dlp/networking/__init__.py20CODE
LOWyt_dlp/networking/__init__.py27CODE
LOWyt_dlp/networking/__init__.py34CODE
LOWyt_dlp/networking/common.py1CODE
LOWyt_dlp/networking/_curlcffi.py1CODE
LOWyt_dlp/networking/exceptions.py1CODE
LOWyt_dlp/networking/_requests.py1CODE
LOWyt_dlp/networking/websocket.py1CODE
LOWyt_dlp/postprocessor/__init__.py3CODE
LOWyt_dlp/postprocessor/__init__.py4CODE
LOWyt_dlp/postprocessor/__init__.py5CODE
LOWyt_dlp/postprocessor/__init__.py5CODE
LOWyt_dlp/postprocessor/__init__.py6CODE
LOWyt_dlp/postprocessor/__init__.py6CODE
LOWyt_dlp/postprocessor/__init__.py6CODE
LOWyt_dlp/postprocessor/__init__.py6CODE
LOWyt_dlp/postprocessor/__init__.py6CODE
LOWyt_dlp/postprocessor/__init__.py6CODE
LOWyt_dlp/postprocessor/__init__.py6CODE
LOWyt_dlp/postprocessor/__init__.py6CODE
LOWyt_dlp/postprocessor/__init__.py6CODE
LOWyt_dlp/postprocessor/__init__.py6CODE
LOWyt_dlp/postprocessor/__init__.py6CODE
LOWyt_dlp/postprocessor/__init__.py6CODE
LOWyt_dlp/postprocessor/__init__.py6CODE
LOWyt_dlp/postprocessor/__init__.py6CODE
LOWyt_dlp/postprocessor/__init__.py6CODE
LOWyt_dlp/postprocessor/__init__.py6CODE
LOWyt_dlp/postprocessor/__init__.py6CODE
LOWyt_dlp/postprocessor/__init__.py6CODE
LOWyt_dlp/postprocessor/__init__.py26CODE
1814 more matches not shown…
Hyper-Verbose Identifiers537 hits · 501 pts
SeverityFileLineSnippetContext
LOWyt_dlp/update.py57def _get_variant_and_executable_path():CODE
LOWyt_dlp/options.py248 def _list_from_options_callback(option, opt_str, value, parser, append=True, delim=',', process=str.strip):CODE
LOWyt_dlp/options.py256 def _set_from_options_callback(CODE
LOWyt_dlp/options.py268 def _dict_from_options_callback(CODE
LOWyt_dlp/options.py1939 def _deprecated_option_callback(option, opt_str, value, parser):CODE
LOW⚡yt_dlp/cookies.py649def _mac_absolute_time_to_posix(timestamp):CODE
LOW⚡yt_dlp/cookies.py653def _parse_safari_cookies_header(data, logger):CODE
LOW⚡yt_dlp/cookies.py661def _parse_safari_cookies_page(data, jar, logger):CODE
LOWyt_dlp/cookies.py116def extract_cookies_from_browser(browser_name, profile=None, logger=YDLLogger(), *, keyring=None, container=None):CODE
LOWyt_dlp/cookies.py234def _get_chromium_based_browser_settings(browser_name):CODE
LOWyt_dlp/cookies.py681def _parse_safari_cookies_record(data, jar, logger):CODE
LOWyt_dlp/cookies.py775def _get_linux_desktop_environment(env, logger):CODE
LOWyt_dlp/cookies.py874def _get_kwallet_network_wallet(keyring, logger):CODE
LOWyt_dlp/cookies.py958def _get_gnome_keyring_password(browser_keyring_name, logger):CODE
LOWyt_dlp/cookies.py975def _get_linux_keyring_password(browser_keyring_name, keyring, logger):CODE
LOWyt_dlp/cookies.py995def _get_mac_keyring_password(browser_keyring_name, logger):CODE
LOWyt_dlp/cookies.py1155def _parse_browser_specification(browser_name, profile=None, keyring=None, container=None):CODE
LOWyt_dlp/aes.py12 def aes_gcm_decrypt_and_verify_bytes(data, key, tag, nonce):CODE
LOWyt_dlp/aes.py21 def aes_gcm_decrypt_and_verify_bytes(data, key, tag, nonce):CODE
LOWyt_dlp/aes.py204def aes_gcm_decrypt_and_verify(data, key, tag, nonce):CODE
LOWyt_dlp/__init__.py103def print_extractor_information(opts, urls):CODE
LOWyt_dlp/jsinterp.py943 def extract_function_from_code(self, argnames, code, *global_stack):CODE
LOW⚡yt_dlp/YoutubeDL.py4240 def _get_available_impersonate_targets(self):CODE
LOW⚡yt_dlp/YoutubeDL.py4249 def _impersonate_target_available(self, target):CODE
LOW⚡yt_dlp/YoutubeDL.py4256 def _parse_impersonate_targets(self, impersonate):CODE
LOWyt_dlp/YoutubeDL.py190def _catch_unsafe_extension_error(func):CODE
LOWyt_dlp/YoutubeDL.py927 def add_default_info_extractors(self):CODE
LOWyt_dlp/YoutubeDL.py1176 def report_file_already_downloaded(self, file_name):CODE
LOWyt_dlp/YoutubeDL.py1725 def _handle_extraction_exceptions(func):CODE
LOWyt_dlp/YoutubeDL.py4270 def _unavailable_targets_message(requested_targets, note=None, is_error=False):CODE
LOWyt_dlp/compat/__init__.py30def compat_datetime_from_timestamp(timestamp):CODE
LOWyt_dlp/compat/urllib/request.py23 def getproxies_registry_patched():CODE
LOWyt_dlp/networking/_urllib.py331def handle_response_read_exceptions(e):CODE
LOWyt_dlp/networking/impersonate.py61class ImpersonateRequestHandler(RequestHandler, ABC):CODE
LOWyt_dlp/networking/impersonate.py87 def _check_impersonate_target(self, target: ImpersonateTarget):CODE
LOWyt_dlp/networking/impersonate.py126 def _prepare_impersonate_headers(self, request: Request, headers: HTTPHeaderDict) -> None: # noqa: B027CODE
LOWyt_dlp/networking/_helper.py40def ssl_load_windows_store_certs(ssl_context, storename):CODE
LOWyt_dlp/networking/_helper.py185def add_accept_encoding_header(headers: HTTPHeaderDict, supported_encodings: Iterable[str]):CODE
LOWyt_dlp/networking/_helper.py217def create_socks_proxy_socket(dest_addr, proxy_args, proxy_ip_addr, timeout, source_address):CODE
LOWyt_dlp/networking/common.py149class RequestHandler(abc.ABC):CODE
LOWyt_dlp/networking/_requests.py184 def get_connection_with_tls_context(self, request, verify, proxies=None, cert=None):CODE
LOWyt_dlp/networking/websocket.py22class WebSocketRequestHandler(RequestHandler, abc.ABC):CODE
LOWyt_dlp/postprocessor/ffmpeg.py94 def get_versions_and_features(downloader=None):CODE
LOWyt_dlp/postprocessor/ffmpeg.py321 def run_ffmpeg_multiple_files(self, input_paths, out_path, opts, **kwargs):CODE
LOWyt_dlp/postprocessor/ffmpeg.py370 def _ffmpeg_filename_argument(fn):CODE
LOWyt_dlp/postprocessor/modify_chapters.py125 def _remove_marked_arrange_sponsors(self, chapters):CODE
LOWyt_dlp/postprocessor/modify_chapters.py266 def _remove_tiny_rename_sponsors(self, chapters):CODE
LOWyt_dlp/postprocessor/embedthumbnail.py36 def _get_thumbnail_resolution(self, filename, thumbnail_dict):CODE
LOWyt_dlp/downloader/soop.py40 def _get_cloudfront_cookie_expiration(m3u8_url):CODE
LOWyt_dlp/downloader/fragment.py75 def _prepare_and_start_frag_download(self, ctx, info_dict):CODE
LOWyt_dlp/downloader/fragment.py321 def _prepare_external_frag_download(self, ctx):CODE
LOWyt_dlp/downloader/fragment.py367 def download_and_append_fragments_multiple(self, *args, **kwargs):CODE
LOWyt_dlp/downloader/fragment.py431 def download_and_append_fragments(CODE
LOWyt_dlp/downloader/common.py293 def _prepare_multiline_status(self, lines=1):CODE
LOWyt_dlp/downloader/youtube_live_chat.py63 def try_refresh_replay_beginning(live_chat_continuation):CODE
LOWyt_dlp/downloader/youtube_live_chat.py109 def download_and_parse_fragment(url, frag_index, request_data=None, headers=None):CODE
LOWyt_dlp/downloader/external.py586def list_external_downloaders():CODE
LOWyt_dlp/utils/_legacy.py241def process_communicate_or_kill(p, *args, **kwargs):CODE
LOW⚡yt_dlp/utils/_utils.py345def get_elements_html_by_class(class_name, html):CODE
LOW⚡yt_dlp/utils/_utils.py352def get_elements_by_attribute(*args, **kwargs):CODE
477 more matches not shown…
Cross-Language Confusion54 hits · 341 pts
SeverityFileLineSnippetContext
HIGHyt_dlp/extractor/bloomberg.py53 r'BPlayer\(null,\s*({[^;]+})\);', webpage, 'id'), name)CODE
HIGHyt_dlp/extractor/iqiyi.py274 var k_uid = Array.apply(null, Array(32)).map(function() {return Math.floor(Math.random() * 15).toString(16)}CODE
HIGHyt_dlp/extractor/iqiyi.py326 enc_params.push(encodeURIComponent(prop) + '=' + encodeURIComponent(query[prop]));CODE
HIGHyt_dlp/extractor/iqiyi.py329 enc_params.push('ut=' + ut);CODE
HIGHyt_dlp/extractor/gamejolt.py202 'title': 'Adobe Animate CC 2021 Tutorial || Part 1 - The Basics',CODE
HIGHyt_dlp/extractor/nintendo.py98 # API returns `{"data": {"direct": null}}` if no matching idCOMMENT
HIGHyt_dlp/extractor/vrt.py39 'device': 'undefined (undefined)',CODE
HIGHyt_dlp/extractor/tvp.py386 if datastr.startswith('null,'):STRING
HIGH⚡yt_dlp/extractor/openload.py60 if(trace && trace.length) {{CODE
HIGH⚡yt_dlp/extractor/openload.py61 msgStack.push('TRACE:');CODE
HIGH⚡yt_dlp/extractor/openload.py63 msgStack.push(' -> ' + (t.file || t.sourceURL) + ': ' + t.lineCODE
HIGH⚡yt_dlp/extractor/openload.py63 msgStack.push(' -> ' + (t.file || t.sourceURL) + ': ' + t.lineCODE
HIGHyt_dlp/extractor/openload.py186 return document.querySelector('#b.done') !== null;STRING
HIGH⚡test/test_utils.py1165 'playlist':[{'controls':{'all':null}}]CODE
HIGH⚡test/test_utils.py1168 "playlist":[{"controls":{"all":null}}]CODE
HIGHtest/test_utils.py900 stripped = strip_jsonp('window.cb && window.cb({"status": "success"});')CODE
HIGHtest/test_utils.py904 stripped = strip_jsonp('window.cb && cb({"status": "success"});')CODE
HIGH⚡test/test_InfoExtractor.py2012 <script>self.__next_f.push([2,"0:[\"$\",\"$L0\",null,{\"do_not_add_this\":\"fail\"}]\n"])</script>CODE
HIGH⚡test/test_InfoExtractor.py2012 <script>self.__next_f.push([2,"0:[\"$\",\"$L0\",null,{\"do_not_add_this\":\"fail\"}]\n"])</script>CODE
HIGH⚡test/test_InfoExtractor.py2013 <script>self.__next_f.push([1,"1:I[46975,[],\"HTTPAccessFallbackBoundary\"]\n2:I[32630,[\"8183\",\"static/chCODE
HIGH⚡test/test_InfoExtractor.py2014 <script nonce="abc123">self.__next_f.push([1,"e:[false,[\"$\",\"div\",null,{\"children\":[\"$\",\"$L18\",nulCODE
HIGH⚡test/test_InfoExtractor.py2014 <script nonce="abc123">self.__next_f.push([1,"e:[false,[\"$\",\"div\",null,{\"children\":[\"$\",\"$L18\",nulCODE
HIGH⚡test/test_InfoExtractor.py2015 <script>self.__next_f.push([1,"2a:[[\"$\",\"div\",null,{\"className\":\"flex flex-col\",\"children\":[]}],[\CODE
HIGH⚡test/test_InfoExtractor.py2015 <script>self.__next_f.push([1,"2a:[[\"$\",\"div\",null,{\"className\":\"flex flex-col\",\"children\":[]}],[\CODE
HIGH⚡test/test_InfoExtractor.py2016 <script>self.__next_f.push([1,"df:[\"$undefined\",[\"$\",\"div\",null,{\"children\":[\"$\",\"$L17\",null,{}]CODE
HIGH⚡test/test_InfoExtractor.py2016 <script>self.__next_f.push([1,"df:[\"$undefined\",[\"$\",\"div\",null,{\"children\":[\"$\",\"$L17\",null,{}]CODE
HIGH⚡test/test_InfoExtractor.py2017 <script>self.__next_f.push([3,"MzM6WyIkIiwiJEwzMiIsbnVsbCx7ImRlY29kZWQiOiJzdWNjZXNzIn1d"])</script>CODE
HIGH⚡test/test_jsinterp.py45 self._test('function f(){return 42 + undefined;}', NaN)CODE
HIGH⚡test/test_jsinterp.py46 self._test('function f(){return 42 + null;}', 42)CODE
HIGH⚡test/test_jsinterp.py50 self._test('function f(){return 42 - undefined;}', NaN)CODE
HIGH⚡test/test_jsinterp.py51 self._test('function f(){return 42 - null;}', 42)CODE
HIGH⚡test/test_jsinterp.py55 self._test('function f(){return 42 * undefined;}', NaN)CODE
HIGH⚡test/test_jsinterp.py56 self._test('function f(){return 42 * null;}', 0)CODE
HIGH⚡test/test_jsinterp.py68 self._test('function f(){return 42 % undefined;}', NaN)CODE
HIGH⚡test/test_jsinterp.py72 self._test('function f(){return 42 ** undefined;}', NaN)CODE
HIGH⚡test/test_jsinterp.py73 self._test('function f(){return 42 ** null;}', 1)CODE
HIGH⚡test/test_jsinterp.py313 undefined === undefined,CODE
HIGH⚡test/test_jsinterp.py314 undefined == undefined,CODE
HIGH⚡test/test_jsinterp.py315 undefined == null,CODE
HIGH⚡test/test_jsinterp.py316 undefined < undefined,CODE
HIGH⚡test/test_jsinterp.py317 undefined > undefined,CODE
HIGH⚡test/test_jsinterp.py324 undefined > null,CODE
HIGH⚡test/test_jsinterp.py325 undefined < null,CODE
HIGH⚡test/test_jsinterp.py540 M.push("a");CODE
HIGH⚡test/test_jsinterp.py542 M.push("b");CODE
HIGH⚡test/test_jsinterp.py549 y.push(w);CODE
HIGH⚡test/test_jsinterp.py550 y.push(M);CODE
HIGHtest/test_jsinterp.py97 self._test('function f(){return 0 && 1 || 2;}', 2)CODE
HIGHtest/test_jsinterp.py97 self._test('function f(){return 0 && 1 || 2;}', 2)CODE
HIGHtest/test_jsinterp.py108 self._test('function f(){return null << undefined}', 0)CODE
HIGH⚡test/test_jsinterp.py297 self._test('function f() { return null; }', None)STRING
HIGH⚡test/test_jsinterp.py303 self._test('function f() { return undefined === undefined; }', True)STRING
HIGH⚡test/test_jsinterp.py304 self._test('function f() { return undefined; }', JS_Undefined)STRING
HIGHtest/test_pot/test_pot_director.py711 assert 'Invalid PO Token response retrieved from cache provider "memory": {"po_token": null, "expires_at": null}CODE
Deep Nesting361 hits · 330 pts
SeverityFileLineSnippetContext
LOWyt_dlp/update.py382CODE
LOWyt_dlp/update.py422CODE
LOWyt_dlp/options.py43CODE
LOWyt_dlp/options.py181CODE
LOWyt_dlp/cookies.py127CODE
LOWyt_dlp/cookies.py294CODE
LOWyt_dlp/cookies.py775CODE
LOWyt_dlp/cookies.py845CODE
LOWyt_dlp/cookies.py874CODE
LOWyt_dlp/cookies.py1129CODE
LOWyt_dlp/cookies.py1215CODE
LOWyt_dlp/cookies.py1354CODE
LOWyt_dlp/plugins.py130CODE
LOWyt_dlp/__init__.py185CODE
LOWyt_dlp/__init__.py964CODE
LOWyt_dlp/__init__.py350CODE
LOWyt_dlp/webvtt.py36CODE
LOWyt_dlp/webvtt.py170CODE
LOWyt_dlp/jsinterp.py107CODE
LOWyt_dlp/jsinterp.py318CODE
LOWyt_dlp/jsinterp.py405CODE
LOWyt_dlp/jsinterp.py737CODE
LOWyt_dlp/YoutubeDL.py1071CODE
LOWyt_dlp/YoutubeDL.py1267CODE
LOWyt_dlp/YoutubeDL.py1525CODE
LOWyt_dlp/YoutubeDL.py1555CODE
LOWyt_dlp/YoutubeDL.py1576CODE
LOWyt_dlp/YoutubeDL.py1803CODE
LOWyt_dlp/YoutubeDL.py1908CODE
LOWyt_dlp/YoutubeDL.py2270CODE
LOWyt_dlp/YoutubeDL.py2341CODE
LOWyt_dlp/YoutubeDL.py2766CODE
LOWyt_dlp/YoutubeDL.py2835CODE
LOWyt_dlp/YoutubeDL.py3334CODE
LOWyt_dlp/YoutubeDL.py3740CODE
LOWyt_dlp/YoutubeDL.py4281CODE
LOWyt_dlp/YoutubeDL.py4400CODE
LOWyt_dlp/YoutubeDL.py4423CODE
LOWyt_dlp/YoutubeDL.py4447CODE
LOWyt_dlp/YoutubeDL.py4503CODE
LOWyt_dlp/YoutubeDL.py1419CODE
LOWyt_dlp/YoutubeDL.py1583CODE
LOWyt_dlp/YoutubeDL.py2365CODE
LOWyt_dlp/YoutubeDL.py2396CODE
LOWyt_dlp/YoutubeDL.py2453CODE
LOWyt_dlp/YoutubeDL.py2542CODE
LOWyt_dlp/YoutubeDL.py3762CODE
LOWyt_dlp/YoutubeDL.py3606CODE
LOWyt_dlp/networking/_urllib.py146CODE
LOWyt_dlp/networking/_urllib.py293CODE
LOWyt_dlp/networking/_helper.py23CODE
LOWyt_dlp/networking/_helper.py53CODE
LOWyt_dlp/networking/_curlcffi.py253CODE
LOWyt_dlp/postprocessor/ffmpeg.py232CODE
LOWyt_dlp/postprocessor/ffmpeg.py589CODE
LOWyt_dlp/postprocessor/modify_chapters.py125CODE
LOWyt_dlp/postprocessor/modify_chapters.py266CODE
LOWyt_dlp/postprocessor/embedthumbnail.py57CODE
LOWyt_dlp/postprocessor/xattrpp.py48CODE
LOWyt_dlp/downloader/ism.py39CODE
301 more matches not shown…
Empty Error Handlers17 hits · 85 pts
SeverityFileLineSnippetContext
HIGHyt_dlp/cookies.py1051except UnicodeDecodeError:CODE
HIGHyt_dlp/plugins.py74except FileNotFoundError:CODE
HIGHyt_dlp/jsinterp.py573except JS_Continue:CODE
HIGHyt_dlp/__pyinstaller/hook-yt_dlp.py15except ImportError:CODE
HIGHyt_dlp/networking/__init__.py21except ImportError:CODE
HIGHyt_dlp/networking/__init__.py28except ImportError:CODE
HIGHyt_dlp/networking/__init__.py35except ImportError:CODE
HIGHyt_dlp/downloader/websocket.py22except OSError:CODE
HIGHyt_dlp/utils/_utils.py2691except (AttributeError, KeyError, TypeError, IndexError, ValueError, ZeroDivisionError):CODE
HIGHyt_dlp/extractor/generic.py962except xml.etree.ElementTree.ParseError:CODE
HIGHyt_dlp/extractor/generic.py1032except ExtractorError:CODE
HIGHyt_dlp/extractor/twitcasting.py93except ExtractorError:CODE
HIGHyt_dlp/extractor/youtube/_video.py4393except (KeyError, IndexError, TypeError):CODE
HIGHtest/test_age_restriction.py31except DownloadError:CODE
HIGHdevscripts/run_tests.py66except FileNotFoundError:CODE
HIGHdevscripts/run_tests.py96except KeyboardInterrupt:CODE
HIGHdevscripts/tomlparse.py129except Exception:CODE
Excessive Try-Catch Wrapping69 hits · 76 pts
SeverityFileLineSnippetContext
LOWyt_dlp/options.py292 except Exception as err:CODE
LOWyt_dlp/options.py322 except Exception as err:CODE
LOWyt_dlp/options.py334 except Exception as err:CODE
MEDIUMyt_dlp/cookies.py93def load_cookies(cookie_file, browser_specification, ydl):CODE
LOWyt_dlp/cookies.py112 except Exception:CODE
LOWyt_dlp/cookies.py910 except Exception as e:CODE
LOWyt_dlp/cookies.py953 except Exception as e:CODE
LOWyt_dlp/cookies.py1008 except Exception as e:CODE
LOWyt_dlp/plugins.py76 except Exception as e:CODE
LOWyt_dlp/plugins.py208 except Exception:CODE
MEDIUMyt_dlp/plugins.py69def dirs_in_zip(archive):CODE
LOWyt_dlp/cache.py44 except Exception:CODE
LOWyt_dlp/__init__.py426 except Exception as err:STRING
LOWyt_dlp/__init__.py435 except Exception as err:STRING
LOWyt_dlp/__init__.py454 except Exception as err:STRING
LOWyt_dlp/__init__.py461 except Exception:STRING
LOWyt_dlp/__init__.py993 except Exception:STRING
LOWyt_dlp/jsinterp.py258 except Exception as e:CODE
LOWyt_dlp/jsinterp.py385 except Exception as e:CODE
LOWyt_dlp/jsinterp.py393 except Exception as e:CODE
LOWyt_dlp/jsinterp.py521 except Exception as e:STRING
MEDIUMyt_dlp/YoutubeDL.py192def wrapper(self, *args, **kwargs):CODE
LOWyt_dlp/YoutubeDL.py672 except Exception as e:CODE
LOWyt_dlp/YoutubeDL.py1749 except Exception as e:CODE
LOWyt_dlp/YoutubeDL.py3671 except Exception as err:CODE
LOWyt_dlp/networking/_urllib.py318 except Exception as e:CODE
LOWyt_dlp/networking/_urllib.py429 except Exception as e:CODE
LOW⚡yt_dlp/networking/__init__.py23except Exception as e:CODE
LOW⚡yt_dlp/networking/__init__.py30except Exception as e:CODE
LOW⚡yt_dlp/networking/__init__.py37except Exception as e:CODE
LOWyt_dlp/networking/common.py120 except Exception as e:CODE
LOWyt_dlp/networking/common.py561 except Exception as e:CODE
LOWyt_dlp/networking/_requests.py244 except Exception:CODE
MEDIUMyt_dlp/networking/_requests.py236def emit(self, record):CODE
LOWyt_dlp/postprocessor/common.py155 except Exception:CODE
MEDIUMyt_dlp/postprocessor/common.py152def try_utime(self, path, atime, mtime, errnote='Cannot update utime of file'):CODE
LOWyt_dlp/postprocessor/embedthumbnail.py139 except Exception as err:CODE
LOWyt_dlp/dependencies/__init__.py40except Exception as _err:CODE
LOWyt_dlp/downloader/fc2.py27 except Exception:CODE
LOWyt_dlp/downloader/fragment.py90 except Exception:CODE
MEDIUMyt_dlp/utils/_utils.py437def find_or_raise(haystack, needle, exc):CODE
LOWyt_dlp/utils/_utils.py186 except Exception:CODE
LOWyt_dlp/utils/_utils.py212 except Exception:CODE
LOWyt_dlp/utils/_utils.py2372 except Exception:CODE
LOWyt_dlp/utils/_utils.py4993 except Exception as err:CODE
LOWyt_dlp/utils/jslib/devalue.py66 except Exception as error:CODE
LOWyt_dlp/utils/jslib/devalue.py103 except Exception:CODE
LOWyt_dlp/utils/jslib/devalue.py141 except Exception as error:CODE
LOWyt_dlp/utils/jslib/devalue.py209 except Exception as error:CODE
LOWyt_dlp/extractor/common.py3901 except Exception as e:CODE
LOWyt_dlp/extractor/openload.py238 except Exception as e:STRING
LOWyt_dlp/extractor/wwe.py132 except Exception:CODE
LOWyt_dlp/extractor/youtube/pot/_director.py131 except Exception as e:CODE
LOWyt_dlp/extractor/youtube/pot/_director.py194 except Exception as e:CODE
LOWyt_dlp/extractor/youtube/pot/_director.py241 except Exception as e:CODE
LOWyt_dlp/extractor/youtube/pot/_director.py305 except Exception as e:CODE
LOWyt_dlp/extractor/youtube/jsc/_director.py137 except Exception as e:CODE
LOWyt_dlp/extractor/youtube/jsc/_builtin/ejs.py271 except Exception as e:STRING
MEDIUMtest/test_networking.py1156def mock_read(*args, **kwargs):CODE
MEDIUMtest/test_networking.py1192def request(*_, **__):CODE
9 more matches not shown…
Self-Referential Comments6 hits · 17 pts
SeverityFileLineSnippetContext
MEDIUMyt_dlp/cookies.py1285# This file is generated by yt-dlp. Do not edit.COMMENT
MEDIUMyt_dlp/networking/common.py581 # The following methods are for compatability reasons and are deprecatedCOMMENT
MEDIUMyt_dlp/extractor/youtube/_video.py3912 # This function is also used by live-from-start refreshCOMMENT
MEDIUMtest/test_update.py79TEST_LOCKFILE_COMMENT = '# This file is used for regulating self-update'CODE
MEDIUM.github/workflows/build.yml543 # This file is used for regulating self-updateCOMMENT
MEDIUMdevscripts/update_requirements.py59# This file is generated by devscripts/update_requirements.py. DO NOT MODIFY!COMMENT
Redundant / Tautological Comments9 hits · 14 pts
SeverityFileLineSnippetContext
LOWyt_dlp/update.py275 # Check if requested_tag is actually the requested repo/channelCOMMENT
LOWyt_dlp/update.py300 # Check if requested_channel resolves to a known repository or else raiseCOMMENT
LOWyt_dlp/extractor/reddit.py277 # Set cookie to opt-in to age-restricted subredditsCOMMENT
LOWyt_dlp/extractor/reddit.py279 # Set cookie to opt-in to "gated" subredditsCOMMENT
LOWyt_dlp/extractor/reddit.py395 # Check if media is hosted on reddit:COMMENT
LOWyt_dlp/extractor/rai.py192 # Check if MP4 download is availableCOMMENT
LOWyt_dlp/extractor/youtube/jsc/_builtin/deno.py66 # Check if npm packages are cached, so we can run without --remote-components ejs:npmCOMMENT
LOWtest/test_download.py174 # Check if the exception is not a network related oneCOMMENT
LOW.github/workflows/core.yml90 # Check if a networking file is involvedCOMMENT
AI Slop Vocabulary4 hits · 11 pts
SeverityFileLineSnippetContext
MEDIUMyt_dlp/networking/_urllib.py133 # To work around aforementioned issue we will replace request's original URL withCOMMENT
MEDIUMyt_dlp/extractor/netapp.py23 'url': 'https://media.netapp.com/video-detail/da25fc01-82ad-5284-95bc-26920200a222/seamless-storage-for-modern-kCODE
MEDIUMtest/test_networking.py426 # This isn't a comprehensive test,COMMENT
MEDIUMtest/test_websockets.py229 # This isn't a comprehensive test,COMMENT
Modern Structural Boilerplate11 hits · 10 pts
SeverityFileLineSnippetContext
LOWyt_dlp/update.py644__all__ = ['Updater']CODE
LOWyt_dlp/plugins.py42__all__ = [CODE
LOWyt_dlp/aes.py534__all__ = [CODE
LOWyt_dlp/__init__.py1108__all__ = [STRING
LOWyt_dlp/dependencies/__init__.py98__all__ = [CODE
LOWyt_dlp/downloader/__init__.py126__all__ = [CODE
LOWyt_dlp/extractor/youtube/pot/provider.py25__all__ = [CODE
LOWyt_dlp/extractor/youtube/pot/utils.py14__all__ = ['WEBPO_CLIENTS', 'ContentBindingType', 'get_webpo_content_binding']CODE
LOWyt_dlp/extractor/youtube/jsc/provider.py19__all__ = [CODE
LOWtest/testdata/yt_dlp_plugins/extractor/ignore.py13__all__ = ['InAllPluginIE']CODE
LOWdevscripts/make_changelog.py25logger = logging.getLogger(__name__)CODE
Dead Code5 hits · 10 pts
SeverityFileLineSnippetContext
MEDIUMtest/test_subtitles.py337CODE
MEDIUMtest/test_subtitles.py338CODE
MEDIUMtest/test_subtitles.py339CODE
MEDIUMtest/test_subtitles.py340CODE
MEDIUMtest/test_subtitles.py341CODE
Over-Commented Block9 hits · 8 pts
SeverityFileLineSnippetContext
LOWyt_dlp/networking/_urllib.py121 def gz(data):COMMENT
LOWyt_dlp/networking/_helper.py121 ssl_load_certs(context, use_certifi)COMMENT
LOWyt_dlp/downloader/hls.py41 def can_download(cls, manifest, info_dict, allow_unplayable_formats=False):COMMENT
LOWyt_dlp/extractor/jamendo.py61 track_id, display_id = self._match_valid_url(url).groups()COMMENT
LOWyt_dlp/extractor/common.py2421 # However, this is not always respected. E.g. [2]COMMENT
LOWyt_dlp/extractor/turner.py81 continueCOMMENT
LOWyt_dlp/extractor/youtube/pot/README.md301COMMENT
LOWtest/test_subtitles.py61 # Language formatsCOMMENT
LOWtest/testdata/cookies/httponly_cookies.txt1# Netscape HTTP Cookie FileCOMMENT
AI Structural Patterns11 hits · 8 pts
SeverityFileLineSnippetContext
LOWyt_dlp/networking/common.py223CODE
LOWyt_dlp/extractor/common.py864CODE
LOWyt_dlp/extractor/common.py924CODE
LOWyt_dlp/extractor/common.py2027CODE
LOWyt_dlp/extractor/common.py2176CODE
LOWyt_dlp/extractor/common.py2223CODE
LOWyt_dlp/extractor/common.py1102CODE
LOWyt_dlp/extractor/common.py1114CODE
LOWyt_dlp/extractor/youtube/_base.py832CODE
LOWyt_dlp/extractor/youtube/_base.py1283CODE
LOWyt_dlp/extractor/youtube/_video.py2750CODE
TODO Padding4 hits · 5 pts
SeverityFileLineSnippetContext
LOWyt_dlp/jsinterp.py119 # TODO: implement special casesCOMMENT
LOWyt_dlp/utils/_utils.py543 # TODO: Write testsSTRING
LOWyt_dlp/utils/jslib/devalue.py89 # TODO: implement zips `strict=True`COMMENT
LOWyt_dlp/extractor/tubetugraz.py120 # TODO: Add test for theseCOMMENT
Fake / Example Data4 hits · 4 pts
SeverityFileLineSnippetContext
LOWyt_dlp/extractor/radiko.py47 'x-radiko-user': 'dummy_user',CODE
LOWyt_dlp/extractor/radiko.py61 'x-radiko-user': 'dummy_user',CODE
LOWtest/test_utils.py814 data = urlencode_postdata({'username': 'foo@bar.com', 'password': '1234'})CODE
LOWtest/test_utils.py1908 random text lorem ipsum</p>CODE
Verbosity Indicators2 hits · 3 pts
SeverityFileLineSnippetContext
LOWyt_dlp/extractor/goplay.py207 # Step 1: First initiate an authentication requestCOMMENT
LOWyt_dlp/extractor/goplay.py223 # Step 2: Respond to the Challenge with a valid ChallengeResponseCOMMENT
Structural Annotation Overuse2 hits · 3 pts
SeverityFileLineSnippetContext
LOWyt_dlp/extractor/goplay.py207 # Step 1: First initiate an authentication requestCOMMENT
LOWyt_dlp/extractor/goplay.py223 # Step 2: Respond to the Challenge with a valid ChallengeResponseCOMMENT