Repository Analysis

yt-dlp/yt-dlp

A feature-rich command-line audio/video downloader

8.6 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of yt-dlp/yt-dlp, a Python project with 177,822 GitHub stars. SynthScan v2.0 examined 271,832 lines of code across 1196 source files, recording 2949 pattern matches distributed across 16 syntactic categories. The overall adjusted score of 8.6 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

8.6
Adjusted Score
8.6
Raw Score
100%
Time Factor
2026-07-12
Last Push
177.8K
Stars
Python
Language
271.8K
Lines of Code
1.2K
Files
2.9K
Pattern Hits
2026-07-14
Scan Date
0.05
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 54MEDIUM 23LOW 2872

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 2949 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Unused Imports1873 hits · 1002 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
1813 more matches not shown…
Hyper-Verbose Identifiers531 hits · 498 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
LOWyt_dlp/cookies.py649def _mac_absolute_time_to_posix(timestamp):CODE
LOWyt_dlp/cookies.py653def _parse_safari_cookies_header(data, logger):CODE
LOWyt_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
LOWyt_dlp/YoutubeDL.py4243 def _get_available_impersonate_targets(self):CODE
LOWyt_dlp/YoutubeDL.py4252 def _impersonate_target_available(self, target):CODE
LOWyt_dlp/YoutubeDL.py4259 def _parse_impersonate_targets(self, impersonate):CODE
LOWyt_dlp/YoutubeDL.py191def _catch_unsafe_extension_error(func):CODE
LOWyt_dlp/YoutubeDL.py929 def add_default_info_extractors(self):CODE
LOWyt_dlp/YoutubeDL.py1178 def report_file_already_downloaded(self, file_name):CODE
LOWyt_dlp/YoutubeDL.py1727 def _handle_extraction_exceptions(func):CODE
LOWyt_dlp/YoutubeDL.py4273 def _unavailable_targets_message(requested_targets, note=None, is_error=False):CODE
LOWyt_dlp/compat/__init__.py31def compat_datetime_from_timestamp(timestamp):CODE
LOWyt_dlp/compat/urllib/request.py23 def getproxies_registry_patched():CODE
LOWyt_dlp/networking/_urllib.py343def 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
LOWyt_dlp/utils/_utils.py347def get_elements_html_by_class(class_name, html):CODE
LOWyt_dlp/utils/_utils.py354def get_elements_by_attribute(*args, **kwargs):CODE
471 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
HIGHyt_dlp/extractor/openload.py60 if(trace && trace.length) {{CODE
HIGHyt_dlp/extractor/openload.py61 msgStack.push('TRACE:');CODE
HIGHyt_dlp/extractor/openload.py63 msgStack.push(' -> ' + (t.file || t.sourceURL) + ': ' + t.lineCODE
HIGHyt_dlp/extractor/openload.py63 msgStack.push(' -> ' + (t.file || t.sourceURL) + ': ' + t.lineCODE
HIGHyt_dlp/extractor/openload.py186 return document.querySelector('#b.done') !== null;STRING
HIGHtest/test_utils.py1152 'playlist':[{'controls':{'all':null}}]CODE
HIGHtest/test_utils.py1155 "playlist":[{"controls":{"all":null}}]CODE
HIGHtest/test_utils.py887 stripped = strip_jsonp('window.cb && window.cb({"status": "success"});')CODE
HIGHtest/test_utils.py891 stripped = strip_jsonp('window.cb && cb({"status": "success"});')CODE
HIGHtest/test_InfoExtractor.py2012 <script>self.__next_f.push([2,"0:[\"$\",\"$L0\",null,{\"do_not_add_this\":\"fail\"}]\n"])</script>CODE
HIGHtest/test_InfoExtractor.py2012 <script>self.__next_f.push([2,"0:[\"$\",\"$L0\",null,{\"do_not_add_this\":\"fail\"}]\n"])</script>CODE
HIGHtest/test_InfoExtractor.py2013 <script>self.__next_f.push([1,"1:I[46975,[],\"HTTPAccessFallbackBoundary\"]\n2:I[32630,[\"8183\",\"static/chCODE
HIGHtest/test_InfoExtractor.py2014 <script nonce="abc123">self.__next_f.push([1,"e:[false,[\"$\",\"div\",null,{\"children\":[\"$\",\"$L18\",nulCODE
HIGHtest/test_InfoExtractor.py2014 <script nonce="abc123">self.__next_f.push([1,"e:[false,[\"$\",\"div\",null,{\"children\":[\"$\",\"$L18\",nulCODE
HIGHtest/test_InfoExtractor.py2015 <script>self.__next_f.push([1,"2a:[[\"$\",\"div\",null,{\"className\":\"flex flex-col\",\"children\":[]}],[\CODE
HIGHtest/test_InfoExtractor.py2015 <script>self.__next_f.push([1,"2a:[[\"$\",\"div\",null,{\"className\":\"flex flex-col\",\"children\":[]}],[\CODE
HIGHtest/test_InfoExtractor.py2016 <script>self.__next_f.push([1,"df:[\"$undefined\",[\"$\",\"div\",null,{\"children\":[\"$\",\"$L17\",null,{}]CODE
HIGHtest/test_InfoExtractor.py2016 <script>self.__next_f.push([1,"df:[\"$undefined\",[\"$\",\"div\",null,{\"children\":[\"$\",\"$L17\",null,{}]CODE
HIGHtest/test_InfoExtractor.py2017 <script>self.__next_f.push([3,"MzM6WyIkIiwiJEwzMiIsbnVsbCx7ImRlY29kZWQiOiJzdWNjZXNzIn1d"])</script>CODE
HIGHtest/test_jsinterp.py45 self._test('function f(){return 42 + undefined;}', NaN)CODE
HIGHtest/test_jsinterp.py46 self._test('function f(){return 42 + null;}', 42)CODE
HIGHtest/test_jsinterp.py50 self._test('function f(){return 42 - undefined;}', NaN)CODE
HIGHtest/test_jsinterp.py51 self._test('function f(){return 42 - null;}', 42)CODE
HIGHtest/test_jsinterp.py55 self._test('function f(){return 42 * undefined;}', NaN)CODE
HIGHtest/test_jsinterp.py56 self._test('function f(){return 42 * null;}', 0)CODE
HIGHtest/test_jsinterp.py68 self._test('function f(){return 42 % undefined;}', NaN)CODE
HIGHtest/test_jsinterp.py72 self._test('function f(){return 42 ** undefined;}', NaN)CODE
HIGHtest/test_jsinterp.py73 self._test('function f(){return 42 ** null;}', 1)CODE
HIGHtest/test_jsinterp.py313 undefined === undefined,CODE
HIGHtest/test_jsinterp.py314 undefined == undefined,CODE
HIGHtest/test_jsinterp.py315 undefined == null,CODE
HIGHtest/test_jsinterp.py316 undefined < undefined,CODE
HIGHtest/test_jsinterp.py317 undefined > undefined,CODE
HIGHtest/test_jsinterp.py324 undefined > null,CODE
HIGHtest/test_jsinterp.py325 undefined < null,CODE
HIGHtest/test_jsinterp.py540 M.push("a");CODE
HIGHtest/test_jsinterp.py542 M.push("b");CODE
HIGHtest/test_jsinterp.py549 y.push(w);CODE
HIGHtest/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
HIGHtest/test_jsinterp.py297 self._test('function f() { return null; }', None)STRING
HIGHtest/test_jsinterp.py303 self._test('function f() { return undefined === undefined; }', True)STRING
HIGHtest/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 · 332 pts
SeverityFileLineSnippetContext
LOWyt_dlp/update.py371CODE
LOWyt_dlp/update.py411CODE
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.py1073CODE
LOWyt_dlp/YoutubeDL.py1269CODE
LOWyt_dlp/YoutubeDL.py1527CODE
LOWyt_dlp/YoutubeDL.py1557CODE
LOWyt_dlp/YoutubeDL.py1578CODE
LOWyt_dlp/YoutubeDL.py1805CODE
LOWyt_dlp/YoutubeDL.py1910CODE
LOWyt_dlp/YoutubeDL.py2272CODE
LOWyt_dlp/YoutubeDL.py2343CODE
LOWyt_dlp/YoutubeDL.py2769CODE
LOWyt_dlp/YoutubeDL.py2838CODE
LOWyt_dlp/YoutubeDL.py3337CODE
LOWyt_dlp/YoutubeDL.py3743CODE
LOWyt_dlp/YoutubeDL.py4284CODE
LOWyt_dlp/YoutubeDL.py4403CODE
LOWyt_dlp/YoutubeDL.py4426CODE
LOWyt_dlp/YoutubeDL.py4450CODE
LOWyt_dlp/YoutubeDL.py4506CODE
LOWyt_dlp/YoutubeDL.py1421CODE
LOWyt_dlp/YoutubeDL.py1585CODE
LOWyt_dlp/YoutubeDL.py2367CODE
LOWyt_dlp/YoutubeDL.py2398CODE
LOWyt_dlp/YoutubeDL.py2456CODE
LOWyt_dlp/YoutubeDL.py2545CODE
LOWyt_dlp/YoutubeDL.py3765CODE
LOWyt_dlp/YoutubeDL.py3609CODE
LOWyt_dlp/networking/_urllib.py146CODE
LOWyt_dlp/networking/_urllib.py307CODE
LOWyt_dlp/networking/_helper.py23CODE
LOWyt_dlp/networking/_helper.py53CODE
LOWyt_dlp/networking/_curlcffi.py250CODE
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…
Excessive Try-Catch Wrapping63 hits · 68 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.py193def wrapper(self, *args, **kwargs):CODE
LOWyt_dlp/YoutubeDL.py673 except Exception as e:CODE
LOWyt_dlp/YoutubeDL.py1751 except Exception as e:CODE
LOWyt_dlp/YoutubeDL.py3674 except Exception as err:CODE
LOWyt_dlp/networking/_urllib.py330 except Exception as e:CODE
LOWyt_dlp/networking/_urllib.py441 except Exception as e:CODE
LOWyt_dlp/networking/__init__.py23except Exception as e:CODE
LOWyt_dlp/networking/__init__.py30except Exception as e:CODE
LOWyt_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.py439def 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.py2380 except Exception:CODE
LOWyt_dlp/utils/_utils.py5000 except Exception as err:CODE
LOWyt_dlp/utils/jslib/devalue.py66 except Exception as error:CODE
LOWyt_dlp/utils/jslib/devalue.py102 except Exception:CODE
LOWyt_dlp/extractor/common.py3899 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.py1153def mock_read(*args, **kwargs):CODE
MEDIUMtest/test_networking.py1189def request(*_, **__):CODE
LOWtest/test_networking.py1156 except Exception as e:CODE
LOWtest/test_networking.py1192 except Exception as e:CODE
3 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.py3899 # 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.py271 # Check if requested_tag is actually the requested repo/channelCOMMENT
LOWyt_dlp/update.py296 # 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.py173 # Check if the exception is not a network related oneCOMMENT
LOW.github/workflows/core.yml101 # 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.py410 # This isn't a comprehensive test,COMMENT
MEDIUMtest/test_websockets.py225 # This isn't a comprehensive test,COMMENT
Modern Structural Boilerplate11 hits · 10 pts
SeverityFileLineSnippetContext
LOWyt_dlp/update.py633__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.py2241 return []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.py865CODE
LOWyt_dlp/extractor/common.py925CODE
LOWyt_dlp/extractor/common.py2025CODE
LOWyt_dlp/extractor/common.py2174CODE
LOWyt_dlp/extractor/common.py2221CODE
LOWyt_dlp/extractor/common.py1103CODE
LOWyt_dlp/extractor/common.py1115CODE
LOWyt_dlp/extractor/youtube/_base.py811CODE
LOWyt_dlp/extractor/youtube/_base.py1262CODE
LOWyt_dlp/extractor/youtube/_video.py2743CODE
TODO Padding4 hits · 5 pts
SeverityFileLineSnippetContext
LOWyt_dlp/jsinterp.py119 # TODO: implement special casesCOMMENT
LOWyt_dlp/utils/_utils.py545 # TODO: Write testsSTRING
LOWyt_dlp/utils/jslib/devalue.py88 # 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.py801 data = urlencode_postdata({'username': 'foo@bar.com', 'password': '1234'})CODE
LOWtest/test_utils.py1902 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