diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 988a94264..03681d30c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -457,7 +457,7 @@ title = self._search_regex( # incorrect webpage, 'title', group='title') ``` -Here the presence or absence of other attributes including `style` is irrelevent for the data we need, and so the regex must not depend on it +Here the presence or absence of other attributes including `style` is irrelevant for the data we need, and so the regex must not depend on it #### Keep the regular expressions as simple as possible, but no simpler @@ -501,7 +501,7 @@ There is a soft limit to keep lines of code under 100 characters long. This mean For example, you should **never** split long string literals like URLs or some other often copied entities over multiple lines to fit this limit: -Conversely, don't unecessarily split small lines further. As a rule of thumb, if removing the line split keeps the code under 80 characters, it should be a single line. +Conversely, don't unnecessarily split small lines further. As a rule of thumb, if removing the line split keeps the code under 80 characters, it should be a single line. ##### Examples diff --git a/Changelog.md b/Changelog.md index d1e103234..fa8851791 100644 --- a/Changelog.md +++ b/Changelog.md @@ -544,7 +544,7 @@ * [downloader/ffmpeg] Handle unknown formats better * [outtmpl] Handle `-o ""` better * [outtmpl] Handle hard-coded file extension better -* [extractor] Add convinience function `_yes_playlist` +* [extractor] Add convenience function `_yes_playlist` * [extractor] Allow non-fatal `title` extraction * [extractor] Extract video inside `Article` json_ld * [generic] Allow further processing of json_ld URL @@ -1678,7 +1678,7 @@ * [utils] Generalize `traverse_dict` to `traverse_obj` * [downloader/ffmpeg] Hide FFmpeg banner unless in verbose mode by [fstirlitz](https://github.com/fstirlitz) * [build] Release `yt-dlp.tar.gz` -* [build,update] Add GNU-style SHA512 and prepare updater for simlar SHA256 by [nihil-admirari](https://github.com/nihil-admirari) +* [build,update] Add GNU-style SHA512 and prepare updater for similar SHA256 by [nihil-admirari](https://github.com/nihil-admirari) * [pyinst] Show Python version in exe metadata by [nihil-admirari](https://github.com/nihil-admirari) * [docs] Improve documentation of dependencies * [cleanup] Mark unused files diff --git a/README.md b/README.md index c72703818..4e7549fe6 100644 --- a/README.md +++ b/README.md @@ -150,7 +150,7 @@ Some of yt-dlp's default options are different from that of youtube-dl and youtu * Some private fields such as filenames are removed by default from the infojson. Use `--no-clean-infojson` or `--compat-options no-clean-infojson` to revert this * When `--embed-subs` and `--write-subs` are used together, the subtitles are written to disk and also embedded in the media file. You can use just `--embed-subs` to embed the subs and automatically delete the separate file. See [#630 (comment)](https://github.com/yt-dlp/yt-dlp/issues/630#issuecomment-893659460) for more info. `--compat-options no-keep-subs` can be used to revert this * `certifi` will be used for SSL root certificates, if installed. If you want to use only system certificates, use `--compat-options no-certifi` -* youtube-dl tries to remove some superfluous punctuations from filenames. While this can sometimes be helpfull, it is often undesirable. So yt-dlp tries to keep the fields in the filenames as close to their original values as possible. You can use `--compat-options filename-sanitization` to revert to youtube-dl's behavior +* youtube-dl tries to remove some superfluous punctuations from filenames. While this can sometimes be helpful, it is often undesirable. So yt-dlp tries to keep the fields in the filenames as close to their original values as possible. You can use `--compat-options filename-sanitization` to revert to youtube-dl's behavior For ease of use, a few more compat options are available: @@ -239,7 +239,7 @@ If you [installed using Homebrew](#with-homebrew), run `brew upgrade yt-dlp/taps File|Description :---|:--- -[yt-dlp](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp)|Platform-independant [zipimport](https://docs.python.org/3/library/zipimport.html) binary. Needs Python (recommended for **Linux/BSD**) +[yt-dlp](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp)|Platform-independent [zipimport](https://docs.python.org/3/library/zipimport.html) binary. Needs Python (recommended for **Linux/BSD**) [yt-dlp.exe](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.exe)|Windows (Win7 SP1+) standalone x64 binary (recommended for **Windows**) [yt-dlp_macos](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_macos)|MacOS (10.15+) standalone executable (recommended for **MacOS**) @@ -433,7 +433,7 @@ You can also fork the project on github and run your fork's [build workflow](.gi "-S=aext:ARG0,abr -x --audio-format ARG0". All defined aliases are listed in the --help output. Alias options can trigger more - aliases; so be carefull to avoid defining + aliases; so be careful to avoid defining recursive options. As a safety measure, each alias may be triggered a maximum of 100 times. This option can be used multiple times @@ -466,7 +466,7 @@ You can also fork the project on github and run your fork's [build workflow](.gi explicitly provided IP block in CIDR notation ## Video Selection: - -I, --playlist-items ITEM_SPEC Comma seperated playlist_index of the videos + -I, --playlist-items ITEM_SPEC Comma separated playlist_index of the videos to download. You can specify a range using "[START]:[STOP][:STEP]". For backward compatibility, START-STOP is also supported. diff --git a/pyinst.py b/pyinst.py index a7c1be85d..a8c8dd7b7 100644 --- a/pyinst.py +++ b/pyinst.py @@ -44,7 +44,7 @@ def main(): def parse_options(): - # Compatability with older arguments + # Compatibility with older arguments opts = sys.argv[1:] if opts[0:1] in (['32'], ['64']): if ARCH != opts[0]: diff --git a/yt_dlp/dependencies.py b/yt_dlp/dependencies.py index 772cfb576..a68babb31 100644 --- a/yt_dlp/dependencies.py +++ b/yt_dlp/dependencies.py @@ -1,6 +1,6 @@ # flake8: noqa: F401 """Imports all optional dependencies for the project. -An attribute "_yt_dlp__identifier" may be inserted into the module if it uses an ambigious namespace""" +An attribute "_yt_dlp__identifier" may be inserted into the module if it uses an ambiguous namespace""" try: import brotlicffi as brotli diff --git a/yt_dlp/extractor/abematv.py b/yt_dlp/extractor/abematv.py index a75efdd0f..ec1af1d0c 100644 --- a/yt_dlp/extractor/abematv.py +++ b/yt_dlp/extractor/abematv.py @@ -103,7 +103,7 @@ class AbemaLicenseHandler(urllib.request.BaseHandler): HKEY = b'3AF0298C219469522A313570E8583005A642E73EDD58E3EA2FB7339D3DF1597E' def __init__(self, ie: 'AbemaTVIE'): - # the protcol that this should really handle is 'abematv-license://' + # the protocol that this should really handle is 'abematv-license://' # abematv_license_open is just a placeholder for development purposes # ref. https://github.com/python/cpython/blob/f4c03484da59049eb62a9bf7777b963e2267d187/Lib/urllib/request.py#L510 setattr(self, 'abematv-license_open', getattr(self, 'abematv_license_open')) @@ -312,7 +312,7 @@ class AbemaTVIE(AbemaTVBaseIE): def _real_extract(self, url): # starting download using infojson from this extractor is undefined behavior, - # and never be fixed in the future; you must trigger downloads by directly specifing URL. + # and never be fixed in the future; you must trigger downloads by directly specifying URL. # (unless there's a way to hook before downloading by extractor) video_id, video_type = self._match_valid_url(url).group('id', 'type') headers = { diff --git a/yt_dlp/extractor/common.py b/yt_dlp/extractor/common.py index 4fbcfe203..baa6f8de9 100644 --- a/yt_dlp/extractor/common.py +++ b/yt_dlp/extractor/common.py @@ -391,7 +391,7 @@ class InfoExtractor: There must be a key "entries", which is a list, an iterable, or a PagedList object, each element of which is a valid dictionary by this specification. - Additionally, playlists can have "id", "title", and any other relevent + Additionally, playlists can have "id", "title", and any other relevant attributes with the same semantics as videos (see above). It can also have the following optional fields: @@ -696,7 +696,7 @@ class InfoExtractor: return self._downloader.cookiejar def _initialize_pre_login(self): - """ Intialization before login. Redefine in subclasses.""" + """ Initialization before login. Redefine in subclasses.""" pass def _perform_login(self, username, password): @@ -3207,7 +3207,7 @@ class InfoExtractor: entries = [] # amp-video and amp-audio are very similar to their HTML5 counterparts - # so we wll include them right here (see + # so we will include them right here (see # https://www.ampproject.org/docs/reference/components/amp-video) # For dl8-* tags see https://delight-vr.com/documentation/dl8-video/ _MEDIA_TAG_NAME_RE = r'(?:(?:amp|dl8(?:-live)?)-)?(video|audio)' diff --git a/yt_dlp/extractor/generic.py b/yt_dlp/extractor/generic.py index c2f754453..49f81e562 100644 --- a/yt_dlp/extractor/generic.py +++ b/yt_dlp/extractor/generic.py @@ -142,7 +142,7 @@ class GenericIE(InfoExtractor): IE_DESC = 'Generic downloader that works on some sites' _VALID_URL = r'.*' IE_NAME = 'generic' - _NETRC_MACHINE = False # Supress username warning + _NETRC_MACHINE = False # Suppress username warning _TESTS = [ # Direct link to a video { diff --git a/yt_dlp/extractor/rokfin.py b/yt_dlp/extractor/rokfin.py index 119c5ea3c..fcef325bf 100644 --- a/yt_dlp/extractor/rokfin.py +++ b/yt_dlp/extractor/rokfin.py @@ -110,7 +110,7 @@ class RokfinIE(InfoExtractor): self.raise_login_required('This video is only available to premium users', True, method='cookies') elif scheduled: self.raise_no_formats( - f'Stream is offline; sheduled for {datetime.fromtimestamp(scheduled).strftime("%Y-%m-%d %H:%M:%S")}', + f'Stream is offline; scheduled for {datetime.fromtimestamp(scheduled).strftime("%Y-%m-%d %H:%M:%S")}', video_id=video_id, expected=True) self._sort_formats(formats) diff --git a/yt_dlp/extractor/youtube.py b/yt_dlp/extractor/youtube.py index ebc3381a2..1a9c88f35 100644 --- a/yt_dlp/extractor/youtube.py +++ b/yt_dlp/extractor/youtube.py @@ -62,7 +62,7 @@ from ..utils import ( variadic, ) -# any clients starting with _ cannot be explicity requested by the user +# any clients starting with _ cannot be explicitly requested by the user INNERTUBE_CLIENTS = { 'web': { 'INNERTUBE_API_KEY': 'AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8', @@ -792,7 +792,7 @@ class YoutubeBaseInfoExtractor(InfoExtractor): if yt_error: self._report_alerts([('ERROR', yt_error)], fatal=False) # Downloading page may result in intermittent 5xx HTTP error - # Sometimes a 404 is also recieved. See: https://github.com/ytdl-org/youtube-dl/issues/28289 + # Sometimes a 404 is also received. See: https://github.com/ytdl-org/youtube-dl/issues/28289 # We also want to catch all other network exceptions since errors in later pages can be troublesome # See https://github.com/yt-dlp/yt-dlp/issues/507#issuecomment-880188210 if not isinstance(e.cause, urllib.error.HTTPError) or e.cause.code not in (403, 429): @@ -3504,7 +3504,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): # See: https://github.com/yt-dlp/yt-dlp/issues/340 # List of possible thumbnails - Ref: thumbnail_names = [ - # While the *1,*2,*3 thumbnails are just below their correspnding "*default" variants + # While the *1,*2,*3 thumbnails are just below their corresponding "*default" variants # in resolution, these are not the custom thumbnail. So de-prioritize them 'maxresdefault', 'hq720', 'sddefault', 'hqdefault', '0', 'mqdefault', 'default', 'sd1', 'sd2', 'sd3', 'hq1', 'hq2', 'hq3', 'mq1', 'mq2', 'mq3', '1', '2', '3' diff --git a/yt_dlp/options.py b/yt_dlp/options.py index 8c9a9bbb4..dfaa9ca4f 100644 --- a/yt_dlp/options.py +++ b/yt_dlp/options.py @@ -206,7 +206,7 @@ class _YoutubeDLOptionParser(optparse.OptionParser): return sys.argv[1:] if args is None else list(args) def _match_long_opt(self, opt): - """Improve ambigious argument resolution by comparing option objects instead of argument strings""" + """Improve ambiguous argument resolution by comparing option objects instead of argument strings""" try: return super()._match_long_opt(opt) except optparse.AmbiguousOptionError as e: @@ -453,7 +453,7 @@ def create_parser(): 'Eg: --alias get-audio,-X "-S=aext:{0},abr -x --audio-format {0}" creates options ' '"--get-audio" and "-X" that takes an argument (ARG0) and expands to ' '"-S=aext:ARG0,abr -x --audio-format ARG0". All defined aliases are listed in the --help output. ' - 'Alias options can trigger more aliases; so be carefull to avoid defining recursive options. ' + 'Alias options can trigger more aliases; so be careful to avoid defining recursive options. ' f'As a safety measure, each alias may be triggered a maximum of {_YoutubeDLOptionParser.ALIAS_TRIGGER_LIMIT} times. ' 'This option can be used multiple times')) @@ -525,7 +525,7 @@ def create_parser(): '-I', '--playlist-items', dest='playlist_items', metavar='ITEM_SPEC', default=None, help=( - 'Comma seperated playlist_index of the videos to download. ' + 'Comma separated playlist_index of the videos to download. ' 'You can specify a range using "[START]:[STOP][:STEP]". For backward compatibility, START-STOP is also supported. ' 'Use negative indices to count from the right and negative STEP to download in reverse order. ' 'Eg: "-I 1:3,7,-5::2" used on a playlist of size 15 will download the videos at index 1,2,3,7,11,13,15')) diff --git a/yt_dlp/postprocessor/ffmpeg.py b/yt_dlp/postprocessor/ffmpeg.py index d0a917379..2d16ee351 100644 --- a/yt_dlp/postprocessor/ffmpeg.py +++ b/yt_dlp/postprocessor/ffmpeg.py @@ -586,7 +586,7 @@ class FFmpegEmbedSubtitlePP(FFmpegPostProcessor): filename = info['filepath'] - # Disabled temporarily. There needs to be a way to overide this + # Disabled temporarily. There needs to be a way to override this # in case of duration actually mismatching in extractor # See: https://github.com/yt-dlp/yt-dlp/issues/1870, https://github.com/yt-dlp/yt-dlp/issues/1385 ''' diff --git a/yt_dlp/update.py b/yt_dlp/update.py index 8e34f2127..41c11677c 100644 --- a/yt_dlp/update.py +++ b/yt_dlp/update.py @@ -234,7 +234,7 @@ class Updater: def run_update(ydl): """Update the program file with the latest version from the repository - @returns Whether there was a successfull update (No update = False) + @returns Whether there was a successful update (No update = False) """ return Updater(ydl).update() diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py index 46a6c9fce..40cefd62e 100644 --- a/yt_dlp/utils.py +++ b/yt_dlp/utils.py @@ -2994,7 +2994,7 @@ def read_batch_urls(batch_fd): if not url or url.startswith(('#', ';', ']')): return False # "#" cannot be stripped out since it is part of the URI - # However, it can be safely stipped out if follwing a whitespace + # However, it can be safely stripped out if following a whitespace return re.split(r'\s#', url, 1)[0].rstrip() with contextlib.closing(batch_fd) as fd: diff --git a/ytdlp_plugins/extractor/sample.py b/ytdlp_plugins/extractor/sample.py index 82c0af459..a8bc455eb 100644 --- a/ytdlp_plugins/extractor/sample.py +++ b/ytdlp_plugins/extractor/sample.py @@ -11,4 +11,4 @@ class SamplePluginIE(InfoExtractor): _VALID_URL = r'^sampleplugin:' def _real_extract(self, url): - self.to_screen('URL "%s" sucessfully captured' % url) + self.to_screen('URL "%s" successfully captured' % url)