Repository: yt-dlp/yt-dlp
File: yt_dlp/options.py (Python)

Code before:
            },
        }, help=(
            'Options that can help keep compatibility with youtube-dl or youtube-dlc '
            'configurations by reverting some of the changes made in yt-dlp. '
            'See "Differences in default behavior" for details'))
    general.add_option(
        '--alias', metavar='ALIASES OPTIONS', dest='_', type='str', nargs=2,
        action='callback', callback=_create_alias,
        help=(
            'Create aliases for an option string. Unless an alias starts with a dash "-", it is prefixed with "--". '
            'Arguments are parsed according to the Python string formatting mini-language. '
            'E.g. --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 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'))
    general.add_option(
        '-t', '--preset-alias',
        metavar='PRESET', dest='_', type='str',
        action='callback', callback=_preset_alias_callback,
        help=(
            'Applies a predefined preset. e.g. --preset-alias mp3. '
            f'The following presets are available: {", ".join(_PRESET_ALIASES)}. '
            'See the "Preset aliases" section at the end for more infos. '
            'This option can be used multiple times.'))

    network = optparse.OptionGroup(parser, 'Network Options')
    network.add_option(
        '--proxy', dest='proxy',
        default=None, metavar='URL',
        help=(
            'Use the specified HTTP/HTTPS/SOCKS proxy. To enable SOCKS proxy, specify a proper scheme, '
            'e.g. socks5://user:pass@127.0.0.1:1080/. Pass in an empty string (--proxy "") for direct connection'))
    network.add_option(
        '--socket-timeout',
        dest='socket_timeout', type=float, default=None, metavar='SECONDS',
        help='Time to wait before giving up, in seconds')
    network.add_option(
        '--source-address',
        metavar='IP', dest='source_address', default=None,
        help='Client-side IP address to bind to',
    )
    network.add_option(
        '--impersonate',
        metavar='CLIENT[:OS]', dest='impersonate', default=None,
        help=(
            'Client to impersonate for requests. E.g. chrome, chrome-110, chrome:windows-10. '
            'Pass --impersonate="" to impersonate any client. Note that forcing impersonation '
            'for all requests may have a detrimental impact on download speed and stability'),
    )

Review comment (suggestion):
```suggestion
            'This option can be used multiple times'))
```

Code after:
            },
        }, help=(
            'Options that can help keep compatibility with youtube-dl or youtube-dlc '
            'configurations by reverting some of the changes made in yt-dlp. '
            'See "Differences in default behavior" for details'))
    general.add_option(
        '--alias', metavar='ALIASES OPTIONS', dest='_', type='str', nargs=2,
        action='callback', callback=_create_alias,
        help=(
            'Create aliases for an option string. Unless an alias starts with a dash "-", it is prefixed with "--". '
            'Arguments are parsed according to the Python string formatting mini-language. '
            'E.g. --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 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'))
    general.add_option(
        '-t', '--preset-alias',
        metavar='PRESET', dest='_', type='str',
        action='callback', callback=_preset_alias_callback,
        help=(
            'Applies a predefined set of options. e.g. --preset-alias mp3. '
            f'The following presets are available: {", ".join(_PRESET_ALIASES)}. '
            'See the "Preset Aliases" section at the end for more info. '
            'This option can be used multiple times'))

    network = optparse.OptionGroup(parser, 'Network Options')
    network.add_option(
        '--proxy', dest='proxy',
        default=None, metavar='URL',
        help=(
            'Use the specified HTTP/HTTPS/SOCKS proxy. To enable SOCKS proxy, specify a proper scheme, '
            'e.g. socks5://user:pass@127.0.0.1:1080/. Pass in an empty string (--proxy "") for direct connection'))
    network.add_option(
        '--socket-timeout',
        dest='socket_timeout', type=float, default=None, metavar='SECONDS',
        help='Time to wait before giving up, in seconds')
    network.add_option(
        '--source-address',
        metavar='IP', dest='source_address', default=None,
        help='Client-side IP address to bind to',
    )
    network.add_option(
        '--impersonate',
        metavar='CLIENT[:OS]', dest='impersonate', default=None,
        help=(
            'Client to impersonate for requests. E.g. chrome, chrome-110, chrome:windows-10. '
            'Pass --impersonate="" to impersonate any client. Note that forcing impersonation '
            'for all requests may have a detrimental impact on download speed and stability'),
    )