From 5e4ceb35cf997af0dbf100e1de37f4e2bcbaa0b7 Mon Sep 17 00:00:00 2001 From: sepro Date: Mon, 11 Aug 2025 05:18:28 +0200 Subject: [PATCH] [cleanup] Misc (#13852) Closes #13815 Authored by: seproDev, injust, bashonly Co-authored-by: Justin Su Co-authored-by: bashonly <88596187+bashonly@users.noreply.github.com> --- CONTRIBUTORS | 2 +- README.md | 3 +-- devscripts/bash-completion.in | 2 +- devscripts/changelog_override.json | 21 +++++++++++++++++++++ pyproject.toml | 4 ++-- setup.cfg | 2 +- yt_dlp/YoutubeDL.py | 4 +--- yt_dlp/extractor/common.py | 4 ++-- yt_dlp/extractor/n1.py | 4 +++- yt_dlp/options.py | 2 +- yt_dlp/update.py | 6 +++++- 11 files changed, 39 insertions(+), 15 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index f20b4ce172..6b56a06ef0 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -4,6 +4,7 @@ coletdjnz/colethedj (collaborator) Ashish0804 (collaborator) bashonly (collaborator) Grub4K (collaborator) +seproDev (collaborator) h-h-h-h pauldubois98 nixxo @@ -403,7 +404,6 @@ rebane2001 road-master rohieb sdht0 -seproDev Hill-98 LXYan2333 mushbite diff --git a/README.md b/README.md index 5083341408..9b28147f2c 100644 --- a/README.md +++ b/README.md @@ -211,7 +211,7 @@ The following provide support for impersonating browser requests. This may be re * [**mutagen**](https://github.com/quodlibet/mutagen)\* - For `--embed-thumbnail` in certain formats. Licensed under [GPLv2+](https://github.com/quodlibet/mutagen/blob/master/COPYING) * [**AtomicParsley**](https://github.com/wez/atomicparsley) - For `--embed-thumbnail` in `mp4`/`m4a` files when `mutagen`/`ffmpeg` cannot. Licensed under [GPLv2+](https://github.com/wez/atomicparsley/blob/master/COPYING) -* [**xattr**](https://github.com/xattr/xattr), [**pyxattr**](https://github.com/iustin/pyxattr) or [**setfattr**](http://savannah.nongnu.org/projects/attr) - For writing xattr metadata (`--xattr`) on **Mac** and **BSD**. Licensed under [MIT](https://github.com/xattr/xattr/blob/master/LICENSE.txt), [LGPL2.1](https://github.com/iustin/pyxattr/blob/master/COPYING) and [GPLv2+](http://git.savannah.nongnu.org/cgit/attr.git/tree/doc/COPYING) respectively +* [**xattr**](https://github.com/xattr/xattr), [**pyxattr**](https://github.com/iustin/pyxattr) or [**setfattr**](http://savannah.nongnu.org/projects/attr) - For writing xattr metadata (`--xattrs`) on **Mac** and **BSD**. Licensed under [MIT](https://github.com/xattr/xattr/blob/master/LICENSE.txt), [LGPL2.1](https://github.com/iustin/pyxattr/blob/master/COPYING) and [GPLv2+](http://git.savannah.nongnu.org/cgit/attr.git/tree/doc/COPYING) respectively ### Misc @@ -2370,7 +2370,6 @@ These are aliases that are no longer documented for various reasons --dump-headers --print-traffic --dump-intermediate-pages --dump-pages --force-write-download-archive --force-write-archive - --load-info --load-info-json --no-clean-infojson --no-clean-info-json --no-split-tracks --no-split-chapters --no-write-srt --no-write-subs diff --git a/devscripts/bash-completion.in b/devscripts/bash-completion.in index bb66c20956..994bb4e721 100644 --- a/devscripts/bash-completion.in +++ b/devscripts/bash-completion.in @@ -6,7 +6,7 @@ __yt_dlp() prev="${COMP_WORDS[COMP_CWORD-1]}" opts="{{flags}}" keywords=":ytfavorites :ytrecommended :ytsubscriptions :ytwatchlater :ythistory" - fileopts="-a|--batch-file|--download-archive|--cookies|--load-info" + fileopts="-a|--batch-file|--download-archive|--cookies|--load-info-json" diropts="--cache-dir" if [[ ${prev} =~ ${fileopts} ]]; then diff --git a/devscripts/changelog_override.json b/devscripts/changelog_override.json index c22ea94bfc..9b808a7481 100644 --- a/devscripts/changelog_override.json +++ b/devscripts/changelog_override.json @@ -272,5 +272,26 @@ "action": "add", "when": "959ac99e98c3215437e573c22d64be42d361e863", "short": "[priority] Security: [[CVE-2025-54072](https://nvd.nist.gov/vuln/detail/CVE-2025-54072)] [Fix `--exec` placeholder expansion on Windows](https://github.com/yt-dlp/yt-dlp/security/advisories/GHSA-45hg-7f49-5h56)\n - When `--exec` is used on Windows, the filepath expanded from `{}` (or the default placeholder) is now properly escaped" + }, + { + "action": "change", + "when": "b831406a1d3be34c159835079d12bae624c43610", + "short": "[ie/rtve.es:program] Add extractor (#12955)", + "authors": ["meGAmeS1", "seproDev"] + }, + { + "action": "add", + "when": "23c658b9cbe34a151f8f921ab1320bb5d4e40a4d", + "short": "[priority] **The minimum *recommended* Python version has been raised to 3.10**\nSince Python 3.9 will reach end-of-life in October 2025, support for it will be dropped soon. [Read more](https://github.com/yt-dlp/yt-dlp/issues/13858)" + }, + { + "action": "add", + "when": "cc5a5caac5fbc0d605b52bde0778d6fd5f97b5ab", + "short": "[priority] **darwin_legacy_exe builds are being discontinued**\nThis release's `yt-dlp_macos_legacy` binary will likely be the last one. [Read more](https://github.com/yt-dlp/yt-dlp/issues/13857)" + }, + { + "action": "add", + "when": "c76ce28e06c816eb5b261dfb6aff6e69dd9b7382", + "short": "[priority] **linux_armv7l_exe builds are being discontinued**\nThis release's `yt-dlp_linux_armv7l` binary could be the last one. [Read more](https://github.com/yt-dlp/yt-dlp/issues/13976)" } ] diff --git a/pyproject.toml b/pyproject.toml index 240dd75e0a..d8c3d9e822 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,11 +15,11 @@ description = "A feature-rich command-line audio/video downloader" readme = "README.md" requires-python = ">=3.9" keywords = [ + "cli", + "downloader", "youtube-dl", - "video-downloader", "youtube-downloader", "sponsorblock", - "youtube-dlc", "yt-dlp", ] license = {file = "LICENSE"} diff --git a/setup.cfg b/setup.cfg index 20d40cd303..a556eb29f5 100644 --- a/setup.cfg +++ b/setup.cfg @@ -16,7 +16,7 @@ remove-unused-variables = true [tox:tox] skipsdist = true -envlist = py{39,310,311,312,313},pypy310 +envlist = py{39,310,311,312,313},pypy311 skip_missing_interpreters = true [testenv] # tox diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py index 5985d2ec76..5ef2be21e5 100644 --- a/yt_dlp/YoutubeDL.py +++ b/yt_dlp/YoutubeDL.py @@ -615,7 +615,7 @@ class YoutubeDL: 'player_url', 'protocol', 'fragment_base_url', 'fragments', 'is_from_start', 'is_dash_periods', 'request_data', 'preference', 'language', 'language_preference', 'quality', 'source_preference', 'cookies', 'http_headers', 'stretched_ratio', 'no_resume', 'has_drm', 'extra_param_to_segment_url', 'extra_param_to_key_url', - 'hls_aes', 'downloader_options', 'page_url', 'app', 'play_path', 'tc_url', 'flash_version', + 'hls_aes', 'downloader_options', 'impersonate', 'page_url', 'app', 'play_path', 'tc_url', 'flash_version', 'rtmp_live', 'rtmp_conn', 'rtmp_protocol', 'rtmp_real_time', } _deprecated_multivalue_fields = { @@ -754,8 +754,6 @@ class YoutubeDL: if self.params.get('geo_verification_proxy') is None: self.params['geo_verification_proxy'] = self.params['cn_verification_proxy'] - check_deprecated('autonumber', '--auto-number', '-o "%(autonumber)s-%(title)s.%(ext)s"') - check_deprecated('usetitle', '--title', '-o "%(title)s-%(id)s.%(ext)s"') check_deprecated('useid', '--id', '-o "%(id)s.%(ext)s"') for msg in self.params.get('_warnings', []): diff --git a/yt_dlp/extractor/common.py b/yt_dlp/extractor/common.py index 4a4b5416d0..a2970d0774 100644 --- a/yt_dlp/extractor/common.py +++ b/yt_dlp/extractor/common.py @@ -243,7 +243,7 @@ class InfoExtractor: * extra_param_to_segment_url A query string to append to each fragment's URL, or to update each existing query string with. If it is an HLS stream with an AES-128 decryption key, - the query paramaters will be passed to the key URI as well, + the query parameters will be passed to the key URI as well, unless there is an `extra_param_to_key_url` given, or unless an external key URI is provided via `hls_aes`. Only applied by the native HLS/DASH downloaders. @@ -419,7 +419,7 @@ class InfoExtractor: __post_extractor: A function to be called just before the metadata is written to either disk, logger or console. The function must return a dict which will be added to the info_dict. - This is usefull for additional information that is + This is useful for additional information that is time-consuming to extract. Note that the fields thus extracted will not be available to output template and match_filter. So, only "comments" and "comment_count" are diff --git a/yt_dlp/extractor/n1.py b/yt_dlp/extractor/n1.py index b4371c299e..cc2ea392a7 100644 --- a/yt_dlp/extractor/n1.py +++ b/yt_dlp/extractor/n1.py @@ -145,7 +145,9 @@ class N1InfoIIE(InfoExtractor): webpage = self._download_webpage(url, video_id) title = self._og_search_title(webpage) or self._html_extract_title(webpage) - timestamp = unified_timestamp(self._og_search_property('published_time', webpage, default=None) or self._html_search_meta('article:published_time', webpage)) + timestamp = unified_timestamp( + self._og_search_property('published_time', webpage, default=None) + or self._html_search_meta('article:published_time', webpage)) plugin_data = re.findall(r'\$bp\("(?:Brid|TargetVideo)_\d+",\s(.+)\);', webpage) entries = [] if plugin_data: diff --git a/yt_dlp/options.py b/yt_dlp/options.py index 13ba445df3..29b37b4255 100644 --- a/yt_dlp/options.py +++ b/yt_dlp/options.py @@ -1526,7 +1526,7 @@ def create_parser(): action='store_false', dest='getcomments', help='Do not retrieve video comments unless the extraction is known to be quick (Alias: --no-get-comments)') filesystem.add_option( - '--load-info-json', '--load-info', + '--load-info-json', dest='load_info_filename', metavar='FILE', help='JSON file containing the video information (created with the "--write-info-json" option)') filesystem.add_option( diff --git a/yt_dlp/update.py b/yt_dlp/update.py index 3421959f3b..ca69fbbada 100644 --- a/yt_dlp/update.py +++ b/yt_dlp/update.py @@ -154,11 +154,15 @@ def _get_system_deprecation(): 'issues/13856', STOP_MSG) # Temporary until linux_armv7l executable builds are discontinued - if variant in ('linux_armv7l_exe'): + if variant == 'linux_armv7l_exe': return EXE_MSG_TMPL.format( f'{variant} (the PyInstaller-bundled executable for the Linux armv7l platform)', 'issues/13976', STOP_MSG) + # Temporary until linux_aarch64_exe is built with Python >=3.10 instead of Python 3.9 + if variant == 'linux_aarch64_exe': + return None + if sys.version_info > MIN_RECOMMENDED: return None