Установка утилиты скачивания видео с различных ресурсов yt-dlp в Ubuntu/Linux Mint ⚡️ ⚡️

Суббота, 4 июня 2022, 5:17
Размещено в рубрике Лента новостей и имеет 0 комментариев.
Утилита yt-dlp - это очень хороший и мощный форк известной утилиты Youtube-dl (к сожалению перестала развиваться).
Умеет делать всё, что умела Youtube-dl. Прекрасно развивается, регулярно обновляется.
Помимо YouTube-а, умеет качать видео с различных видео-хостингов, мессенджеров, сайтов и пр. мест размещения видео-файлов, не токмо забугорных, но и с ресурсов разных стран, в том числе и Российских.



Ранее, в нашем Блоге уже была статья всеми уважаемого Создателя блога и автора множетсва полезных статей в нём - Владимира Долгирёва - Youtube-dl — загрузка роликов с YouTube в Linux .
Но проблема в том, что данная утилита уже несколько лет, как перестала развиваться, хотя и работает, но очень медленно скачивает.

Рассматриваемая в данной статье утилита yt-dlp, в отличии от Youtube-dl, успешно развивается, регулярно обновляется, исправляются баги (ошибки) и, что весьма достойно разрабов, добавляются и без того многочисленные функции, а также список ресурсов, с коими данная утилита может взаимодействовать и, что весьма впечатляет, скачивает очень быстро, в отличии от множества других, похожих программм/утилит.

Итак, приступим к Установке.

Есть 4 (чертыре) способа установки данной утилиты.

1. Стандартный, из официальных репозиториев Ubuntu (Canonical) - самый простой, но версия пакета всегда не самая свежая
  - устанавливается из Магазина Ubuntu по поиску yt-dlp, либо командой в Терминале (Ctrl+Alt+T):
sudo apt install yt-dlp -y

Для дальнейшего использования утилиты может потребоваться Перезагрузка системы...


2. Консольно-терминальный - простой
  - в нём 3 (три) варианта:
  • с помощью утилиты curl
  • с помощью утилиты wget
  • с помощью утилиты aria2c

  • curl - открываем Терминал (Ctrl+Alt+T) и по очереди вводим следующие команды/коды и жмём после ввода каждой на Enter:
    sudo apt install curl ffmpeg ffmpeg-doc libdvdcss2 libportaudio2 sndiod python-mutagen-doc python-pyxattr-doc libfribidi-bin bidiv -y

    sudo dpkg-reconfigure libdvd-pkg

    sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp

    sudo chmod a+rx /usr/local/bin/yt-dlp


    wget - открываем Терминал (Ctrl+Alt+T) и по очереди вводим следующие команды/коды и жмём после ввода каждой на Enter:
    sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp

    sudo chmod a+rx /usr/local/bin/yt-dlp


    aria2c - открываем Терминал (Ctrl+Alt+T) и по очереди вводим следующие команды/коды и жмём после ввода каждой на Enter:
    sudo apt install aria2c ffmpeg ffmpeg-doc libdvdcss2 libportaudio2 sndiod python-mutagen-doc python-pyxattr-doc libfribidi-bin bidiv -y

    sudo dpkg-reconfigure libdvd-pkg

    sudo aria2c https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp --dir /usr/local/bin -o yt-dlp

    sudo chmod a+rx /usr/local/bin/yt-dlp

    Обновление утилиты при этом варианте, во всех 3-х способах осуществляется вводом и выполнением команды:
    yt-dlp -U



    3. Консольно-терминальный (с помощью PIP (менеджер пакетов Python)) - чуть посложнее
      - в нём тоже 3 (три) варианта:
  • стандартный (подразумевается, что все зависимости для yt-dlp удовлетворены и уже предустановлены)
  • минимальный (для использования без опций и установки зависимостей)
  • GIT (установка с GIT-репозитория, с master-ветки (с текующими правками))
  • (после установки любым из этих 3-х вариантов, для дальнейшего использования утилиты требуется Перезагрузка системы)

    Стандартный - открываем Терминал (Ctrl+Alt+T) и по очереди вводим следующие команды/коды и жмём после ввода каждой на Enter:
      - установка дополнительных пакетов/зависимоестей, необходимих для полноценной работы утилиты
    sudo apt install -y python3-pip ffmpeg ffmpeg-doc libdvdcss2 libportaudio2 sndiod python-mutagen-doc python-pyxattr-doc libfribidi-bin bidiv
      - установка утилиты
    python3 -m pip install -U yt-dlp


    Минимальный - открываем Терминал (Ctrl+Alt+T), вводим следующую команду/код и жмём после ввода на Enter:
    python3 -m pip install --no-deps -U yt-dlp


    GIT - открываем Терминал (Ctrl+Alt+T) и по очереди вводим следующие команды/коды и жмём после ввода каждой на Enter:
      - установка дополнительных пакетов/зависимоестей, необходимих для полноценной работы утилиты
    sudo apt install -y python3-pip ffmpeg ffmpeg-doc libdvdcss2 libportaudio2 sndiod python-mutagen-doc python-pyxattr-doc libfribidi-bin bidiv
      - установка утилиты
    python3 -m pip install --force-reinstall https://github.com/yt-dlp/yt-dlp/archive/master.tar.gz

    Обновление утилиты при этом варианте, во всех 3-х способах осуществляется вновь вводом и выполнением команды на установку (- установка утилиты)


    4. Сборка (Компиляция) - самый сложный
      - его мы рассматривать не будем. т.к. этот способ слишком сложен для обычного пользователя



    Использование утилиты

    Утилита yt-dlp умеет работать (скачивать видео, стримы, части видео, кодировать, конвертировать и мн. мн. другое...) со многими видео-хостингами, стриминг-площадками, социальными сетями, просто сайтами и пр., а в связке с утилитой FFmpeg (данная утилита есть в командах/кодах установки) ещё и делать нарезку/части видео...

    Получить подробную справку по применению разного рода опций (префиксов) работы с утилитой можно, выполнив команду:
    yt-dlp --help

    Список опций:

    Usage: yt-dlp [OPTIONS] URL [URL...]

    Options:
    General Options:
    -h, --help Print this help text and exit
    --version Print program version and exit
    -U, --update Update this program to latest version
    -i, --ignore-errors Ignore download and postprocessing errors.
    The download will be considered successful
    even if the postprocessing fails
    --no-abort-on-error Continue with next video on download errors;
    e.g. to skip unavailable videos in a
    playlist (default)
    --abort-on-error Abort downloading of further videos if an
    error occurs (Alias: --no-ignore-errors)
    --dump-user-agent Display the current user-agent and exit
    --list-extractors List all supported extractors and exit
    --extractor-descriptions Output descriptions of all supported
    extractors and exit
    --force-generic-extractor Force extraction to use the generic
    extractor
    --default-search PREFIX Use this prefix for unqualified URLs. Eg:
    "gvsearch2:python" downloads two videos from
    google videos for the search term "python".
    Use the value "auto" to let yt-dlp guess
    ("auto_warning" to emit a warning when
    guessing). "error" just throws an error. The
    default value "fixup_error" repairs broken
    URLs, but emits an error if this is not
    possible instead of searching
    --ignore-config Don't load any more configuration files
    except those given by --config-locations.
    For backward compatibility, if this option
    is found inside the system configuration
    file, the user configuration is not loaded.
    (Alias: --no-config)
    --no-config-locations Do not load any custom configuration files
    (default). When given inside a configuration
    file, ignore all previous --config-locations
    defined in the current file
    --config-locations PATH Location of the main configuration file;
    either the path to the config or its
    containing directory ("-" for stdin). Can be
    used multiple times and inside other
    configuration files
    --flat-playlist Do not extract the videos of a playlist,
    only list them
    --no-flat-playlist Extract the videos of a playlist
    --live-from-start Download livestreams from the start.
    Currently only supported for YouTube
    (Experimental)
    --no-live-from-start Download livestreams from the current time
    (default)
    --wait-for-video MIN[-MAX] Wait for scheduled streams to become
    available. Pass the minimum number of
    seconds (or range) to wait between retries
    --no-wait-for-video Do not wait for scheduled streams (default)
    --mark-watched Mark videos watched (even with --simulate)
    --no-mark-watched Do not mark videos watched (default)
    --no-colors Do not emit color codes in output
    --compat-options OPTS 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
    --alias ALIASES OPTIONS 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. 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. As a safety measure, each
    alias may be triggered a maximum of 100
    times. This option can be used multiple
    times

    Network Options:
    --proxy URL Use the specified HTTP/HTTPS/SOCKS proxy. To
    enable SOCKS proxy, specify a proper scheme.
    Eg: socks5://user:pass@127.0.0.1:1080/. Pass
    in an empty string (--proxy "") for direct
    connection
    --socket-timeout SECONDS Time to wait before giving up, in seconds
    --source-address IP Client-side IP address to bind to
    -4, --force-ipv4 Make all connections via IPv4
    -6, --force-ipv6 Make all connections via IPv6

    Geo-restriction:
    --geo-verification-proxy URL Use this proxy to verify the IP address for
    some geo-restricted sites. The default proxy
    specified by --proxy (or none, if the option
    is not present) is used for the actual
    downloading
    --geo-bypass Bypass geographic restriction via faking
    X-Forwarded-For HTTP header (default)
    --no-geo-bypass Do not bypass geographic restriction via
    faking X-Forwarded-For HTTP header
    --geo-bypass-country CODE Force bypass geographic restriction with
    explicitly provided two-letter ISO 3166-2
    country code
    --geo-bypass-ip-block IP_BLOCK Force bypass geographic restriction with
    explicitly provided IP block in CIDR
    notation

    Video Selection:
    --playlist-start NUMBER Playlist video to start at (default is 1)
    --playlist-end NUMBER Playlist video to end at (default is last)
    --playlist-items ITEM_SPEC Playlist video items to download. Specify
    indices of the videos in the playlist
    separated by commas like: "--playlist-items
    1,2,5,8" if you want to download videos
    indexed 1, 2, 5, 8 in the playlist. You can
    specify range: "--playlist-items
    1-3,7,10-13", it will download the videos at
    index 1, 2, 3, 7, 10, 11, 12 and 13
    --min-filesize SIZE Do not download any videos smaller than SIZE
    (e.g. 50k or 44.6m)
    --max-filesize SIZE Do not download any videos larger than SIZE
    (e.g. 50k or 44.6m)
    --date DATE Download only videos uploaded on this date.
    The date can be "YYYYMMDD" or in the format
    [now|today|yesterday][-
    N[day|week|month|year]]. Eg: --date
    today-2weeks
    --datebefore DATE Download only videos uploaded on or before
    this date. The date formats accepted is the
    same as --date
    --dateafter DATE Download only videos uploaded on or after
    this date. The date formats accepted is the
    same as --date
    --match-filters FILTER Generic video filter. Any "OUTPUT TEMPLATE"
    field can be compared with a number or a
    string using the operators defined in
    "Filtering formats". You can also simply
    specify a field to match if the field is
    present, use "!field" to check if the field
    is not present, and "&" to check multiple
    conditions. Use a "\" to escape "&" or
    quotes if needed. If used multiple times,
    the filter matches if atleast one of the
    conditions are met. Eg: --match-filter
    !is_live --match-filter "like_count>?100 &
    description~='(?i)\bcats \& dogs\b'" matches
    only videos that are not live OR those that
    have a like count more than 100 (or the like
    field is not available) and also has a
    description that contains the phrase "cats &
    dogs" (caseless). Use "--match-filter -" to
    interactively ask whether to download each
    video
    --no-match-filter Do not use generic video filter (default)
    --no-playlist Download only the video, if the URL refers
    to a video and a playlist
    --yes-playlist Download the playlist, if the URL refers to
    a video and a playlist
    --age-limit YEARS Download only videos suitable for the given
    age
    --download-archive FILE Download only videos not listed in the
    archive file. Record the IDs of all
    downloaded videos in it
    --no-download-archive Do not use archive file (default)
    --max-downloads NUMBER Abort after downloading NUMBER files
    --break-on-existing Stop the download process when encountering
    a file that is in the archive
    --break-on-reject Stop the download process when encountering
    a file that has been filtered out
    --break-per-input Make --break-on-existing, --break-on-reject
    and --max-downloads act only on the current
    input URL
    --no-break-per-input --break-on-existing and similar options
    terminates the entire download queue
    --skip-playlist-after-errors N Number of allowed failures until the rest of
    the playlist is skipped

    Download Options:
    -N, --concurrent-fragments N Number of fragments of a dash/hlsnative
    video that should be downloaded concurrently
    (default is 1)
    -r, --limit-rate RATE Maximum download rate in bytes per second
    (e.g. 50K or 4.2M)
    --throttled-rate RATE Minimum download rate in bytes per second
    below which throttling is assumed and the
    video data is re-extracted (e.g. 100K)
    -R, --retries RETRIES Number of retries (default is 10), or
    "infinite"
    --file-access-retries RETRIES Number of times to retry on file access
    error (default is 3), or "infinite"
    --fragment-retries RETRIES Number of retries for a fragment (default is
    10), or "infinite" (DASH, hlsnative and ISM)
    --retry-sleep [TYPE:]EXPR An expression for the time to sleep between
    retries in seconds (optionally) prefixed by
    the type of retry (file_access, fragment,
    http (default)) to apply the sleep to. EXPR
    can be a number, linear=START[:END[:STEP=1]]
    or exp=START[:END[:BASE=2]]. This option can
    be used multiple times to set the sleep for
    the different retry types. Eg: --retry-sleep
    linear=1::2 --retry-sleep fragment:exp=1:20
    --skip-unavailable-fragments Skip unavailable fragments for DASH,
    hlsnative and ISM downloads (default)
    (Alias: --no-abort-on-unavailable-fragment)
    --abort-on-unavailable-fragment
    Abort download if a fragment is unavailable
    (Alias: --no-skip-unavailable-fragments)
    --keep-fragments Keep downloaded fragments on disk after
    downloading is finished
    --no-keep-fragments Delete downloaded fragments after
    downloading is finished (default)
    --buffer-size SIZE Size of download buffer (e.g. 1024 or 16K)
    (default is 1024)
    --resize-buffer The buffer size is automatically resized
    from an initial value of --buffer-size
    (default)
    --no-resize-buffer Do not automatically adjust the buffer size
    --http-chunk-size SIZE Size of a chunk for chunk-based HTTP
    downloading (e.g. 10485760 or 10M) (default
    is disabled). May be useful for bypassing
    bandwidth throttling imposed by a webserver
    (experimental)
    --playlist-reverse Download playlist videos in reverse order
    --no-playlist-reverse Download playlist videos in default order
    (default)
    --playlist-random Download playlist videos in random order
    --xattr-set-filesize Set file xattribute ytdl.filesize with
    expected file size
    --hls-use-mpegts Use the mpegts container for HLS videos;
    allowing some players to play the video
    while downloading, and reducing the chance
    of file corruption if download is
    interrupted. This is enabled by default for
    live streams
    --no-hls-use-mpegts Do not use the mpegts container for HLS
    videos. This is default when not downloading
    live streams
    --downloader [PROTO:]NAME Name or path of the external downloader to
    use (optionally) prefixed by the protocols
    (http, ftp, m3u8, dash, rstp, rtmp, mms) to
    use it for. Currently supports native,
    aria2c, avconv, axel, curl, ffmpeg, httpie,
    wget. You can use this option multiple times
    to set different downloaders for different
    protocols. For example, --downloader aria2c
    --downloader "dash,m3u8:native" will use
    aria2c for http/ftp downloads, and the
    native downloader for dash/m3u8 downloads
    (Alias: --external-downloader)
    --downloader-args NAME:ARGS Give these arguments to the external
    downloader. Specify the downloader name and
    the arguments separated by a colon ":". For
    ffmpeg, arguments can be passed to different
    positions using the same syntax as
    --postprocessor-args. You can use this
    option multiple times to give different
    arguments to different downloaders (Alias:
    --external-downloader-args)

    Filesystem Options:
    -a, --batch-file FILE File containing URLs to download ("-" for
    stdin), one URL per line. Lines starting
    with "#", ";" or "]" are considered as
    comments and ignored
    --no-batch-file Do not read URLs from batch file (default)
    -P, --paths [TYPES:]PATH The paths where the files should be
    downloaded. Specify the type of file and the
    path separated by a colon ":". All the same
    TYPES as --output are supported.
    Additionally, you can also provide "home"
    (default) and "temp" paths. All intermediary
    files are first downloaded to the temp path
    and then the final files are moved over to
    the home path after download is finished.
    This option is ignored if --output is an
    absolute path
    -o, --output [TYPES:]TEMPLATE Output filename template; see "OUTPUT
    TEMPLATE" for details
    --output-na-placeholder TEXT Placeholder for unavailable fields in
    "OUTPUT TEMPLATE" (default: "NA")
    --restrict-filenames Restrict filenames to only ASCII characters,
    and avoid "&" and spaces in filenames
    --no-restrict-filenames Allow Unicode characters, "&" and spaces in
    filenames (default)
    --windows-filenames Force filenames to be Windows-compatible
    --no-windows-filenames Make filenames Windows-compatible only if
    using Windows (default)
    --trim-filenames LENGTH Limit the filename length (excluding
    extension) to the specified number of
    characters
    -w, --no-overwrites Do not overwrite any files
    --force-overwrites Overwrite all video and metadata files. This
    option includes --no-continue
    --no-force-overwrites Do not overwrite the video, but overwrite
    related files (default)
    -c, --continue Resume partially downloaded files/fragments
    (default)
    --no-continue Do not resume partially downloaded
    fragments. If the file is not fragmented,
    restart download of the entire file
    --part Use .part files instead of writing directly
    into output file (default)
    --no-part Do not use .part files - write directly into
    output file
    --mtime Use the Last-modified header to set the file
    modification time (default)
    --no-mtime Do not use the Last-modified header to set
    the file modification time
    --write-description Write video description to a .description
    file
    --no-write-description Do not write video description (default)
    --write-info-json Write video metadata to a .info.json file
    (this may contain personal information)
    --no-write-info-json Do not write video metadata (default)
    --write-playlist-metafiles Write playlist metadata in addition to the
    video metadata when using --write-info-json,
    --write-description etc. (default)
    --no-write-playlist-metafiles Do not write playlist metadata when using
    --write-info-json, --write-description etc.
    --clean-info-json Remove some private fields such as filenames
    from the infojson. Note that it could still
    contain some personal information (default)
    --no-clean-info-json Write all fields to the infojson
    --write-comments Retrieve video comments to be placed in the
    infojson. The comments are fetched even
    without this option if the extraction is
    known to be quick (Alias: --get-comments)
    --no-write-comments Do not retrieve video comments unless the
    extraction is known to be quick (Alias:
    --no-get-comments)
    --load-info-json FILE JSON file containing the video information
    (created with the "--write-info-json"
    option)
    --cookies FILE Netscape formatted file to read cookies from
    and dump cookie jar in
    --no-cookies Do not read/dump cookies from/to file
    (default)
    --cookies-from-browser BROWSER[+KEYRING][:PROFILE]
    The name of the browser and (optionally) the
    name/path of the profile to load cookies
    from, separated by a ":". Currently
    supported browsers are: brave, chrome,
    chromium, edge, firefox, opera, safari,
    vivaldi. By default, the most recently
    accessed profile is used. The keyring used
    for decrypting Chromium cookies on Linux can
    be (optionally) specified after the browser
    name separated by a "+". Currently supported
    keyrings are: basictext, gnomekeyring,
    kwallet
    --no-cookies-from-browser Do not load cookies from browser (default)
    --cache-dir DIR Location in the filesystem where youtube-dl
    can store some downloaded information (such
    as client ids and signatures) permanently.
    By default $XDG_CACHE_HOME/yt-dlp or
    ~/.cache/yt-dlp
    --no-cache-dir Disable filesystem caching
    --rm-cache-dir Delete all filesystem cache files

    Thumbnail Options:
    --write-thumbnail Write thumbnail image to disk
    --no-write-thumbnail Do not write thumbnail image to disk
    (default)
    --write-all-thumbnails Write all thumbnail image formats to disk
    --list-thumbnails List available thumbnails of each video.
    Simulate unless --no-simulate is used

    Internet Shortcut Options:
    --write-link Write an internet shortcut file, depending
    on the current platform (.url, .webloc or
    .desktop). The URL may be cached by the OS
    --write-url-link Write a .url Windows internet shortcut. The
    OS caches the URL based on the file path
    --write-webloc-link Write a .webloc macOS internet shortcut
    --write-desktop-link Write a .desktop Linux internet shortcut

    Verbosity and Simulation Options:
    -q, --quiet Activate quiet mode. If used with --verbose,
    print the log to stderr
    --no-warnings Ignore warnings
    -s, --simulate Do not download the video and do not write
    anything to disk
    --no-simulate Download the video even if printing/listing
    options are used
    --ignore-no-formats-error Ignore "No video formats" error. Useful for
    extracting metadata even if the videos are
    not actually available for download
    (experimental)
    --no-ignore-no-formats-error Throw error when no downloadable video
    formats are found (default)
    --skip-download Do not download the video but write all
    related files (Alias: --no-download)
    -O, --print [WHEN:]TEMPLATE Field name or output template to print to
    screen, optionally prefixed with when to
    print it, separated by a ":". Supported
    values of "WHEN" are the same as that of
    --use-postprocessor, and "video" (default).
    Implies --quiet. Implies --simulate unless
    --no-simulate or later stages of WHEN are
    used. This option can be used multiple times
    --print-to-file [WHEN:]TEMPLATE FILE
    Append given template to the file. The
    values of WHEN and TEMPLATE are same as that
    of --print. FILE uses the same syntax as the
    output template. This option can be used
    multiple times
    -j, --dump-json Quiet, but print JSON information for each
    video. Simulate unless --no-simulate is
    used. See "OUTPUT TEMPLATE" for a
    description of available keys
    -J, --dump-single-json Quiet, but print JSON information for each
    url or infojson passed. Simulate unless
    --no-simulate is used. If the URL refers to
    a playlist, the whole playlist information
    is dumped in a single line
    --force-write-archive Force download archive entries to be written
    as far as no errors occur, even if -s or
    another simulation option is used (Alias:
    --force-download-archive)
    --newline Output progress bar as new lines
    --no-progress Do not print progress bar
    --progress Show progress bar, even if in quiet mode
    --console-title Display progress in console titlebar
    --progress-template [TYPES:]TEMPLATE
    Template for progress outputs, optionally
    prefixed with one of "download:" (default),
    "download-title:" (the console title),
    "postprocess:", or "postprocess-title:".
    The video's fields are accessible under the
    "info" key and the progress attributes are
    accessible under "progress" key. E.g.:
    --console-title --progress-template
    "download-
    title:%(info.id)s-%(progress.eta)s"
    -v, --verbose Print various debugging information
    --dump-pages Print downloaded pages encoded using base64
    to debug problems (very verbose)
    --write-pages Write downloaded intermediary pages to files
    in the current directory to debug problems
    --print-traffic Display sent and read HTTP traffic

    Workarounds:
    --encoding ENCODING Force the specified encoding (experimental)
    --legacy-server-connect Explicitly allow HTTPS connection to servers
    that do not support RFC 5746 secure
    renegotiation
    --no-check-certificates Suppress HTTPS certificate validation
    --prefer-insecure Use an unencrypted connection to retrieve
    information about the video (Currently
    supported only for YouTube)
    --add-header FIELD:VALUE Specify a custom HTTP header and its value,
    separated by a colon ":". You can use this
    option multiple times
    --bidi-workaround Work around terminals that lack
    bidirectional text support. Requires bidiv
    or fribidi executable in PATH
    --sleep-requests SECONDS Number of seconds to sleep between requests
    during data extraction
    --sleep-interval SECONDS Number of seconds to sleep before each
    download. This is the minimum time to sleep
    when used along with --max-sleep-interval
    (Alias: --min-sleep-interval)
    --max-sleep-interval SECONDS Maximum number of seconds to sleep. Can only
    be used along with --min-sleep-interval
    --sleep-subtitles SECONDS Number of seconds to sleep before each
    subtitle download

    Video Format Options:
    -f, --format FORMAT Video format code, see "FORMAT SELECTION"
    for more details
    -S, --format-sort SORTORDER Sort the formats by the fields given, see
    "Sorting Formats" for more details
    --format-sort-force Force user specified sort order to have
    precedence over all fields, see "Sorting
    Formats" for more details (Alias: --S-force)
    --no-format-sort-force Some fields have precedence over the user
    specified sort order (default)
    --video-multistreams Allow multiple video streams to be merged
    into a single file
    --no-video-multistreams Only one video stream is downloaded for each
    output file (default)
    --audio-multistreams Allow multiple audio streams to be merged
    into a single file
    --no-audio-multistreams Only one audio stream is downloaded for each
    output file (default)
    --prefer-free-formats Prefer video formats with free containers
    over non-free ones of same quality. Use with
    "-S ext" to strictly prefer free containers
    irrespective of quality
    --no-prefer-free-formats Don't give any special preference to free
    containers (default)
    --check-formats Make sure formats are selected only from
    those that are actually downloadable
    --check-all-formats Check all formats for whether they are
    actually downloadable
    --no-check-formats Do not check that the formats are actually
    downloadable
    -F, --list-formats List available formats of each video.
    Simulate unless --no-simulate is used
    --merge-output-format FORMAT If a merge is required (e.g.
    bestvideo+bestaudio), output to given
    container format. One of mkv, mp4, ogg,
    webm, flv. Ignored if no merge is required

    Subtitle Options:
    --write-subs Write subtitle file
    --no-write-subs Do not write subtitle file (default)
    --write-auto-subs Write automatically generated subtitle file
    (Alias: --write-automatic-subs)
    --no-write-auto-subs Do not write auto-generated subtitles
    (default) (Alias: --no-write-automatic-subs)
    --list-subs List available subtitles of each video.
    Simulate unless --no-simulate is used
    --sub-format FORMAT Subtitle format; accepts formats preference,
    Eg: "srt" or "ass/srt/best"
    --sub-langs LANGS Languages of the subtitles to download (can
    be regex) or "all" separated by commas. (Eg:
    --sub-langs "en.*,ja") You can prefix the
    language code with a "-" to exclude it from
    the requested languages. (Eg: --sub-langs
    all,-live_chat) Use --list-subs for a list
    of available language tags

    Authentication Options:
    -u, --username USERNAME Login with this account ID
    -p, --password PASSWORD Account password. If this option is left
    out, yt-dlp will ask interactively
    -2, --twofactor TWOFACTOR Two-factor authentication code
    -n, --netrc Use .netrc authentication data
    --netrc-location PATH Location of .netrc authentication data;
    either the path or its containing directory.
    Defaults to ~/.netrc
    --video-password PASSWORD Video password (vimeo, youku)
    --ap-mso MSO Adobe Pass multiple-system operator (TV
    provider) identifier, use --ap-list-mso for
    a list of available MSOs
    --ap-username USERNAME Multiple-system operator account login
    --ap-password PASSWORD Multiple-system operator account password.
    If this option is left out, yt-dlp will ask
    interactively
    --ap-list-mso List all supported multiple-system operators
    --client-certificate CERTFILE Path to client certificate file in PEM
    format. May include the private key
    --client-certificate-key KEYFILE
    Path to private key file for client
    certificate
    --client-certificate-password PASSWORD
    Password for client certificate private key,
    if encrypted. If not provided, and the key
    is encrypted, yt-dlp will ask interactively

    Post-Processing Options:
    -x, --extract-audio Convert video files to audio-only files
    (requires ffmpeg and ffprobe)
    --audio-format FORMAT Specify audio format to convert the audio to
    when -x is used. Currently supported formats
    are: best (default) or one of aac, flac,
    mp3, m4a, opus, vorbis, wav, alac
    --audio-quality QUALITY Specify ffmpeg audio quality to use when
    converting the audio with -x. Insert a value
    between 0 (best) and 10 (worst) for VBR or a
    specific bitrate like 128K (default 5)
    --remux-video FORMAT Remux the video into another container if
    necessary (currently supported: mp4, mkv,
    flv, webm, mov, avi, mka, ogg, aac, flac,
    mp3, m4a, opus, vorbis, wav, alac). If
    target container does not support the
    video/audio codec, remuxing will fail. You
    can specify multiple rules; Eg.
    "aac>m4a/mov>mp4/mkv" will remux aac to m4a,
    mov to mp4 and anything else to mkv.
    --recode-video FORMAT Re-encode the video into another format if
    necessary. The syntax and supported formats
    are the same as --remux-video
    --postprocessor-args NAME:ARGS Give these arguments to the postprocessors.
    Specify the postprocessor/executable name
    and the arguments separated by a colon ":"
    to give the argument to the specified
    postprocessor/executable. Supported PP are:
    Merger, ModifyChapters, SplitChapters,
    ExtractAudio, VideoRemuxer, VideoConvertor,
    Metadata, EmbedSubtitle, EmbedThumbnail,
    SubtitlesConvertor, ThumbnailsConvertor,
    FixupStretched, FixupM4a, FixupM3u8,
    FixupTimestamp and FixupDuration. The
    supported executables are: AtomicParsley,
    FFmpeg and FFprobe. You can also specify
    "PP+EXE:ARGS" to give the arguments to the
    specified executable only when being used by
    the specified postprocessor. Additionally,
    for ffmpeg/ffprobe, "_i"/"_o" can be
    appended to the prefix optionally followed
    by a number to pass the argument before the
    specified input/output file. Eg: --ppa
    "Merger+ffmpeg_i1:-v quiet". You can use
    this option multiple times to give different
    arguments to different postprocessors.
    (Alias: --ppa)
    -k, --keep-video Keep the intermediate video file on disk
    after post-processing
    --no-keep-video Delete the intermediate video file after
    post-processing (default)
    --post-overwrites Overwrite post-processed files (default)
    --no-post-overwrites Do not overwrite post-processed files
    --embed-subs Embed subtitles in the video (only for mp4,
    webm and mkv videos)
    --no-embed-subs Do not embed subtitles (default)
    --embed-thumbnail Embed thumbnail in the video as cover art
    --no-embed-thumbnail Do not embed thumbnail (default)
    --embed-metadata Embed metadata to the video file. Also
    embeds chapters/infojson if present unless
    --no-embed-chapters/--no-embed-info-json are
    used (Alias: --add-metadata)
    --no-embed-metadata Do not add metadata to file (default)
    (Alias: --no-add-metadata)
    --embed-chapters Add chapter markers to the video file
    (Alias: --add-chapters)
    --no-embed-chapters Do not add chapter markers (default) (Alias:
    --no-add-chapters)
    --embed-info-json Embed the infojson as an attachment to
    mkv/mka video files
    --no-embed-info-json Do not embed the infojson as an attachment
    to the video file
    --parse-metadata FROM:TO Parse additional metadata like title/artist
    from other fields; see "MODIFYING METADATA"
    for details
    --replace-in-metadata FIELDS REGEX REPLACE
    Replace text in a metadata field using the
    given regex. This option can be used
    multiple times
    --xattrs Write metadata to the video file's xattrs
    (using dublin core and xdg standards)
    --concat-playlist POLICY Concatenate videos in a playlist. One of
    "never", "always", or "multi_video"
    (default; only when the videos form a single
    show). All the video files must have same
    codecs and number of streams to be
    concatable. The "pl_video:" prefix can be
    used with "--paths" and "--output" to set
    the output filename for the concatenated
    files. See "OUTPUT TEMPLATE" for details
    --fixup POLICY Automatically correct known faults of the
    file. One of never (do nothing), warn (only
    emit a warning), detect_or_warn (the
    default; fix file if we can, warn
    otherwise), force (try fixing even if file
    already exists)
    --ffmpeg-location PATH Location of the ffmpeg binary; either the
    path to the binary or its containing
    directory
    --exec [WHEN:]CMD Execute a command, optionally prefixed with
    when to execute it (after_move if
    unspecified), separated by a ":". Supported
    values of "WHEN" are the same as that of
    --use-postprocessor. Same syntax as the
    output template can be used to pass any
    field as arguments to the command. After
    download, an additional field "filepath"
    that contains the final path of the
    downloaded file is also available, and if no
    fields are passed, %(filepath)q is appended
    to the end of the command. This option can
    be used multiple times
    --no-exec Remove any previously defined --exec
    --convert-subs FORMAT Convert the subtitles to another format
    (currently supported: srt, vtt, ass, lrc)
    (Alias: --convert-subtitles)
    --convert-thumbnails FORMAT Convert the thumbnails to another format
    (currently supported: jpg, png, webp)
    --split-chapters Split video into multiple files based on
    internal chapters. The "chapter:" prefix can
    be used with "--paths" and "--output" to set
    the output filename for the split files. See
    "OUTPUT TEMPLATE" for details
    --no-split-chapters Do not split video based on chapters
    (default)
    --remove-chapters REGEX Remove chapters whose title matches the
    given regular expression. Time ranges
    prefixed by a "*" can also be used in place
    of chapters to remove the specified range.
    Eg: --remove-chapters "*10:15-15:00"
    --remove-chapters "intro". This option can
    be used multiple times
    --no-remove-chapters Do not remove any chapters from the file
    (default)
    --force-keyframes-at-cuts Force keyframes around chapters when
    removing/splitting them. This is slow due to
    needing a re-encode, but the resulting video
    may have fewer artifacts around the cuts
    --no-force-keyframes-at-cuts Do not force keyframes around the chapters
    when cutting/splitting (default)
    --use-postprocessor NAME[:ARGS]
    The (case sensitive) name of plugin
    postprocessors to be enabled, and
    (optionally) arguments to be passed to it,
    separated by a colon ":". ARGS are a
    semicolon ";" delimited list of NAME=VALUE.
    The "when" argument determines when the
    postprocessor is invoked. It can be one of
    "pre_process" (after video extraction),
    "after_filter" (after video passes filter),
    "before_dl" (before each video download),
    "post_process" (after each video download;
    default), "after_move" (after moving video
    file to it's final locations), "after_video"
    (after downloading and processing all
    formats of a video), or "playlist" (at end
    of playlist). This option can be used
    multiple times to add different
    postprocessors

    SponsorBlock Options:
    Make chapter entries for, or remove various segments (sponsor,
    introductions, etc.) from downloaded YouTube videos using the
    SponsorBlock API (https://sponsor.ajay.app)

    --sponsorblock-mark CATS SponsorBlock categories to create chapters
    for, separated by commas. Available
    categories are sponsor, intro, outro,
    selfpromo, preview, filler, interaction,
    music_offtopic, poi_highlight, all and
    default (=all). You can prefix the category
    with a "-" to exclude it. See [1] for
    description of the categories. Eg:
    --sponsorblock-mark all,-preview [1] https:/
    /wiki.sponsor.ajay.app/w/Segment_Categories
    --sponsorblock-remove CATS SponsorBlock categories to be removed from
    the video file, separated by commas. If a
    category is present in both mark and remove,
    remove takes precedence. The syntax and
    available categories are the same as for
    --sponsorblock-mark except that "default"
    refers to "all,-filler" and poi_highlight is
    not available
    --sponsorblock-chapter-title TEMPLATE
    An output template for the title of the
    SponsorBlock chapters created by
    --sponsorblock-mark. The only available
    fields are start_time, end_time, category,
    categories, name, category_names. Defaults
    to "[SponsorBlock]: %(category_names)l"
    --no-sponsorblock Disable both --sponsorblock-mark and
    --sponsorblock-remove
    --sponsorblock-api URL SponsorBlock API location, defaults to
    https://sponsor.ajay.app

    Extractor Options:
    --extractor-retries RETRIES Number of retries for known extractor errors
    (default is 3), or "infinite"
    --allow-dynamic-mpd Process dynamic DASH manifests (default)
    (Alias: --no-ignore-dynamic-mpd)
    --ignore-dynamic-mpd Do not process dynamic DASH manifests
    (Alias: --no-allow-dynamic-mpd)
    --hls-split-discontinuity Split HLS playlists to different formats at
    discontinuities such as ad breaks
    --no-hls-split-discontinuity Do not split HLS playlists to different
    formats at discontinuities such as ad breaks
    (default)
    --extractor-args KEY:ARGS Pass these arguments to the extractor. See
    "EXTRACTOR ARGUMENTS" for details. You can
    use this option multiple times to give
    arguments for different extractors

    See full documentation at https://github.com/yt-dlp/yt-dlp#readme
    Или на GitHub-е проекта данной утилиты, по ссылке на раздел General Options:
    General Options


    Посмотреть список сервисов, откуда можно скачивать видео и пр., можно, выполнив команду:
    yt-dlp --list-extractors

    Список сервисов:

    17live
    17live:clip
    1tv
    20min
    23video
    247sports
    24video
    3qsdn
    3sat
    4tube
    56.com
    6play
    7plus
    8tracks
    91porn
    9c9media
    9gag
    9now.com.au
    abc.net.au
    abc.net.au:iview
    abc.net.au:iview:showseries
    abcnews
    abcnews:video
    abcotvs
    abcotvs:clips
    AbemaTV
    AbemaTVTitle
    AcademicEarth:Course
    acast
    acast:channel
    ADN
    AdobeConnect
    adobetv
    adobetv:channel
    adobetv:embed
    adobetv:show
    adobetv:video
    AdultSwim
    aenetworks
    aenetworks:collection
    aenetworks:show
    afreecatv
    afreecatv:live
    afreecatv:user
    AirMozilla
    AliExpressLive
    AlJazeera
    Allocine
    AlphaPorno
    Alsace20TV
    Alsace20TVEmbed
    Alura
    AluraCourse
    Amara
    AmazonStore
    AMCNetworks
    AmericasTestKitchen
    AmericasTestKitchenSeason
    AmHistoryChannel
    anderetijden
    AnimalPlanet
    AnimeLab
    AnimeLabShows
    AnimeOnDemand
    ant1newsgr:article
    ant1newsgr:embed
    ant1newsgr:watch
    Anvato
    aol.com
    APA
    Aparat
    AppleConnect
    AppleDaily
    ApplePodcasts
    appletrailers
    appletrailers:section
    archive.org
    ArcPublishing
    ARD
    ARD:mediathek
    ARDBetaMediathek
    Arkena
    arte.sky.it
    ArteTV
    ArteTVCategory
    ArteTVEmbed
    ArteTVPlaylist
    AsianCrush
    AsianCrushPlaylist
    AtresPlayer
    ATTTechChannel
    ATVAt
    AudiMedia
    AudioBoom
    audiomack
    audiomack:album
    Audius
    audius:artist
    audius:playlist
    audius:track
    AWAAN
    awaan:live
    awaan:season
    awaan:video
    AZMedien
    BaiduVideo
    BanBye
    BanByeChannel
    bandaichannel
    Bandcamp
    Bandcamp:album
    Bandcamp:user
    Bandcamp:weekly
    bangumi.bilibili.com
    BannedVideo
    bbc
    bbc.co.uk
    bbc.co.uk:article
    bbc.co.uk:iplayer:episodes
    bbc.co.uk:iplayer:group
    bbc.co.uk:playlist
    BBVTV
    Beatport
    Beeg
    BehindKink
    Bellator
    BellMedia
    Bet
    bfi:player
    bfmtv
    bfmtv:article
    bfmtv:live
    BibelTV
    Bigflix
    Bigo
    Bild
    BiliBili
    Bilibili category extractor
    BilibiliAudio
    BilibiliAudioAlbum
    BilibiliChannel
    BiliBiliPlayer
    BiliBiliSearch
    BiliIntl
    BiliIntlSeries
    BiliLive
    BioBioChileTV
    Biography
    BIQLE
    BitChute
    BitChuteChannel
    bitwave:replay
    bitwave:stream
    BlackboardCollaborate
    BleacherReport
    BleacherReportCMS
    blogger.com
    Bloomberg
    BokeCC
    BongaCams
    BostonGlobe
    Box
    Bpb
    BR
    BravoTV
    Break
    BreitBart
    brightcove:legacy
    brightcove:new
    BRMediathek
    bt:article
    bt:vestlendingen
    BusinessInsider
    BuzzFeed
    BYUtv
    CableAV
    Callin
    Caltrans
    CAM4
    Camdemy
    CamdemyFolder
    CamModels
    CamWithHer
    CanalAlpha
    canalc2.tv
    Canalplus
    Canvas
    CanvasEen
    CarambaTV
    CarambaTVPage
    CartoonNetwork
    cbc.ca
    cbc.ca:player
    CBS
    CBSInteractive
    CBSLocal
    CBSLocalArticle
    cbsnews
    cbsnews:embed
    cbsnews:livevideo
    cbssports
    cbssports:embed
    CCMA
    CCTV
    CDA
    CeskaTelevize
    CGTN
    channel9
    CharlieRose
    Chaturbate
    Chilloutzone
    Chingari
    ChingariUser
    chirbit
    chirbit:profile
    cielotv.it
    Cinchcast
    Cinemax
    CiscoLiveSearch
    CiscoLiveSession
    ciscowebex
    CJSW
    cliphunter
    Clippit
    ClipRs
    Clipsyndicate
    CloserToTruth
    CloudflareStream
    Cloudy
    Clubic
    Clyp
    cmt.com
    CNBC
    CNBCVideo
    CNN
    CNNArticle
    CNNBlogs
    ComedyCentral
    ComedyCentralTV
    CommonMistakes
    CondeNast
    CONtv
    CookingChannel
    Corus
    Coub
    CozyTV
    cp24
    cpac
    cpac:playlist
    Cracked
    Crackle
    Craftsy
    CrooksAndLiars
    CrowdBunker
    CrowdBunkerChannel
    crunchyroll
    crunchyroll:beta
    crunchyroll:playlist
    crunchyroll:playlist:beta
    CSpan
    CSpanCongress
    CtsNews
    CTV
    CTVNews
    cu.ntv.co.jp
    CultureUnplugged
    curiositystream
    curiositystream:collections
    curiositystream:series
    CWTV
    Cybrary
    CybraryCourse
    Daftsex
    DagelijkseKost
    DailyMail
    dailymotion
    dailymotion:playlist
    dailymotion:user
    damtomo:record
    damtomo:video
    daum.net
    daum.net:clip
    daum.net:playlist
    daum.net:user
    daystar:clip
    DBTV
    DctpTv
    DeezerAlbum
    DeezerPlaylist
    defense.gouv.fr
    democracynow
    DestinationAmerica
    DHM
    Digg
    DigitalConcertHall
    DigitallySpeaking
    Digiteka
    Discovery
    DiscoveryLife
    DiscoveryNetworksDe
    DiscoveryPlus
    DiscoveryPlusIndia
    DiscoveryPlusIndiaShow
    DiscoveryPlusItaly
    DiscoveryPlusItalyShow
    Disney
    DIYNetwork
    dlive:stream
    dlive:vod
    DoodStream
    Dotsub
    Douyin
    DouyuShow
    DouyuTV
    DPlay
    DRBonanza
    Drooble
    Dropbox
    Dropout
    DropoutSeason
    DrTuber
    drtv
    drtv:live
    DTube
    duboku
    duboku:list
    Dumpert
    dvtv
    dw
    dw:article
    EaglePlatform
    EbaumsWorld
    EchoMsk
    egghead:course
    egghead:lesson
    ehftv
    eHow
    EinsUndEinsTV
    Einthusan
    eitb.tv
    EllenTube
    EllenTubePlaylist
    EllenTubeVideo
    Elonet
    ElPais
    Embedly
    EMPFlix
    Engadget
    Epicon
    EpiconSeries
    Eporner
    EroProfile
    EroProfile:album
    ertflix
    ertflix:codename
    ertwebtv:embed
    Escapist
    ESPN
    ESPNArticle
    ESPNCricInfo
    EsriVideo
    Europa
    EuropeanTour
    EUScreen
    EWETV
    ExpoTV
    Expressen
    ExtremeTube
    EyedoTV
    facebook
    FacebookPluginsVideo
    FacebookRedirectURL
    fancode:live
    fancode:vod
    faz.net
    fc2
    fc2:embed
    fc2:live
    Fczenit
    Fifa
    Filmmodu
    filmon
    filmon:channel
    Filmweb
    FiveThirtyEight
    FiveTV
    Flickr
    Folketinget
    FoodNetwork
    FootyRoom
    Formula1
    FOX
    FOX9
    FOX9News
    Foxgay
    foxnews
    foxnews:article
    FoxSports
    fptplay
    FranceCulture
    FranceInter
    FranceTV
    francetvinfo.fr
    FranceTVSite
    Freesound
    freespeech.org
    FrontendMasters
    FrontendMastersCourse
    FrontendMastersLesson
    FujiTVFODPlus7
    Funimation
    funimation:page
    funimation:show
    Funk
    Fusion
    Fux
    Gab
    GabTV
    Gaia
    GameInformer
    GameJolt
    GameJoltCommunity
    GameJoltGame
    GameJoltGameSoundtrack
    GameJoltSearch
    GameJoltUser
    GameSpot
    GameStar
    Gaskrank
    Gazeta
    GDCVault
    GediDigital
    gem.cbc.ca
    gem.cbc.ca:live
    gem.cbc.ca:playlist
    Gettr
    GettrStreaming
    Gfycat
    GiantBomb
    Giga
    GlattvisionTV
    Glide
    Globo
    GloboArticle
    glomex
    glomex:embed
    Go
    GoDiscovery
    GodTube
    Gofile
    Golem
    goodgame:stream
    google:podcasts
    google:podcasts:feed
    GoogleDrive
    GoPro
    Goshgay
    GoToStage
    GPUTechConf
    Gronkh
    gronkh:feed
    gronkh:vods
    Groupon
    hbo
    HearThisAt
    Heise
    HellPorno
    Helsinki
    HentaiStigma
    hetklokhuis
    hgtv.com:show
    HGTVDe
    HGTVUsa
    HiDive
    HistoricFilms
    history:player
    history:topic
    hitbox
    hitbox:live
    HitRecord
    hketv
    HotNewHipHop
    hotstar
    hotstar:playlist
    hotstar:series
    HotStarPrefix
    Howcast
    HowStuffWorks
    hrfernsehen
    HRTi
    HRTiPlaylist
    HSEProduct
    HSEShow
    Huajiao
    HuffPost
    Hungama
    HungamaAlbumPlaylist
    HungamaSong
    huya:live
    Hypem
    Icareus
    ign.com
    IGNArticle
    IGNVideo
    IHeartRadio
    iheartradio:podcast
    imdb
    imdb:list
    Imgur
    imgur:album
    imgur:gallery
    Ina
    Inc
    IndavideoEmbed
    InfoQ
    Instagram
    instagram:story
    instagram:tag
    instagram:user
    InstagramIOS
    Internazionale
    InternetVideoArchive
    InvestigationDiscovery
    IPrima
    IPrimaCNN
    iq.com
    iq.com:album
    iqiyi
    ITProTV
    ITProTVCourse
    ITTF
    ITV
    ITVBTCC
    ivi
    ivi:compilation
    ivideon
    Iwara
    iwara:playlist
    iwara:user
    Izlesene
    Jable
    JablePlaylist
    Jamendo
    JamendoAlbum
    JeuxVideo
    Joj
    Jove
    JWPlatform
    Kakao
    Kaltura
    Karaoketv
    KarriereVideos
    Katsomo
    KeezMovies
    KelbyOne
    Ketnet
    khanacademy
    khanacademy:unit
    KickStarter
    KinjaEmbed
    KinoPoisk
    KonserthusetPlay
    Koo
    KrasView
    Ku6
    KUSI
    kuwo:album
    kuwo:category
    kuwo:chart
    kuwo:mv
    kuwo:singer
    kuwo:song
    la7.it
    la7.it:pod:episode
    la7.it:podcast
    laola1tv
    laola1tv:embed
    LastFM
    LastFMPlaylist
    LastFMUser
    lbry
    lbry:channel
    LCI
    Lcp
    LcpPlay
    Le
    Lecture2Go
    Lecturio
    LecturioCourse
    LecturioDeCourse
    LEGO
    Lemonde
    Lenta
    LePlaylist
    LetvCloud
    Libsyn
    life
    life:embed
    likee
    likee:user
    limelight
    limelight:channel
    limelight:channel_list
    LineLive
    LineLiveChannel
    LinkedIn
    linkedin:learning
    linkedin:learning:course
    LinuxAcademy
    LiTV
    LiveJournal
    livestream
    livestream:original
    livestream:shortener
    Lnk
    LnkGo
    loc
    LocalNews8
    LoveHomePorn
    LRTStream
    LRTVOD
    lynda
    lynda:course
    m6
    MagentaMusik360
    mailru
    mailru:music
    mailru:music:search
    MainStreaming
    MallTV
    mangomolo:live
    mangomolo:video
    MangoTV
    ManotoTV
    ManotoTVLive
    ManotoTVShow
    ManyVids
    MaoriTV
    Markiza
    MarkizaPage
    massengeschmack.tv
    Masters
    MatchTV
    MDR
    MedalTV
    media.ccc.de
    media.ccc.de:lists
    Mediaite
    MediaKlikk
    Medialaan
    Mediaset
    MediasetShow
    Mediasite
    MediasiteCatalog
    MediasiteNamedCatalog
    Medici
    megaphone.fm
    megatvcom
    megatvcom:embed
    Meipai
    MelonVOD
    META
    metacafe
    Metacritic
    mewatch
    Mgoon
    MiaoPai
    microsoftstream
    mildom
    mildom:clip
    mildom:user:vod
    mildom:vod
    minds
    minds:channel
    minds:group
    MinistryGrid
    Minoto
    miomio.tv
    mirrativ
    mirrativ:user
    MiTele
    mixch
    mixch:archive
    mixcloud
    mixcloud:playlist
    mixcloud:user
    MLB
    MLBVideo
    MLSSoccer
    Mms
    Mnet
    MNetTV
    MoeVideo
    Mofosex
    MofosexEmbed
    Mojvideo
    Morningstar
    Motherless
    MotherlessGroup
    Motorsport
    MovieClips
    MovieFap
    Moviepilot
    Moviezine
    MovingImage
    MSN
    mtg
    mtv
    mtv.de
    mtv.it
    mtv.it:programma
    mtv:video
    mtvjapan
    mtvservices:embedded
    MTVUutisetArticle
    MuenchenTV
    Murrtube
    MurrtubeUser
    MuseScore
    MusicdexAlbum
    MusicdexArtist
    MusicdexPlaylist
    MusicdexSong
    mva
    mva:course
    Mwave
    MwaveMeetGreet
    Mxplayer
    MxplayerShow
    MyChannels
    MySpace
    MySpace:album
    MySpass
    Myvi
    MyVideoGe
    MyVidster
    MyviEmbed
    n-tv.de
    N1Info:article
    N1InfoAsset
    Nate
    NateProgram
    natgeo:video
    NationalGeographicTV
    Naver
    Naver:live
    NBA
    nba:watch
    nba:watch:collection
    NBAChannel
    NBAEmbed
    NBAWatchEmbed
    NBC
    NBCNews
    nbcolympics
    nbcolympics:stream
    NBCSports
    NBCSportsStream
    NBCSportsVPlayer
    ndr
    ndr:embed
    ndr:embed:base
    NDTV
    Nebula
    nebula:channel
    nebula:subscriptions
    NerdCubedFeed
    netease:album
    netease:djradio
    netease:mv
    netease:playlist
    netease:program
    netease:singer
    netease:song
    NetPlus
    Netzkino
    Newgrounds
    Newgrounds:playlist
    Newgrounds:user
    Newstube
    Newsy
    NextMedia
    NextMediaActionNews
    NextTV
    Nexx
    NexxEmbed
    NFB
    NFHSNetwork
    nfl.com (CURRENTLY BROKEN)
    nfl.com:article (CURRENTLY BROKEN)
    NhkForSchoolBangumi
    NhkForSchoolProgramList
    NhkForSchoolSubject
    NhkVod
    NhkVodProgram
    nhl.com
    nick.com
    nick.de
    nickelodeon:br
    nickelodeonru
    nicknight
    niconico
    niconico:history
    niconico:playlist
    niconico:series
    niconico:tag
    NiconicoUser
    nicovideo:search
    nicovideo:search:date
    nicovideo:search_url
    Nintendo
    Nitter
    njoy
    njoy:embed
    NJPWWorld
    NobelPrize
    NonkTube
    NoodleMagazine
    Noovo
    Normalboots
    NosVideo
    Nova
    NovaEmbed
    NovaPlay
    nowness
    nowness:playlist
    nowness:series
    Noz
    npo
    npo.nl:live
    npo.nl:radio
    npo.nl:radio:fragment
    Npr
    NRK
    NRKPlaylist
    NRKRadioPodkast
    NRKSkole
    NRKTV
    NRKTVDirekte
    NRKTVEpisode
    NRKTVEpisodes
    NRKTVSeason
    NRKTVSeries
    NRLTV
    ntv.ru
    Nuvid
    NYTimes
    NYTimesArticle
    NYTimesCooking
    nzherald
    NZZ
    ocw.mit.edu
    OdaTV
    Odnoklassniki
    OktoberfestTV
    OlympicsReplay
    on24
    OnDemandKorea
    OneFootball
    onet.pl
    onet.tv
    onet.tv:channel
    OnetMVP
    OnionStudios
    Ooyala
    OoyalaExternal
    Opencast
    OpencastPlaylist
    openrec
    openrec:capture
    openrec:movie
    OraTV
    orf:burgenland
    orf:fm4
    orf:fm4:story
    orf:iptv
    orf:kaernten
    orf:noe
    orf:oberoesterreich
    orf:oe1
    orf:oe3
    orf:salzburg
    orf:steiermark
    orf:tirol
    orf:tvthek
    orf:vorarlberg
    orf:wien
    OsnatelTV
    OutsideTV
    PacktPub
    PacktPubCourse
    PalcoMP3:artist
    PalcoMP3:song
    PalcoMP3:video
    pandora.tv
    Panopto
    PanoptoList
    PanoptoPlaylist
    ParamountNetwork
    ParamountPlus
    ParamountPlusSeries
    parliamentlive.tv
    Parlview
    Patreon
    PatreonUser
    pbs
    PearVideo
    PeekVids
    peer.tv
    PeerTube
    PeerTube:Playlist
    peloton
    peloton:live
    People
    PerformGroup
    periscope
    periscope:user
    PhilharmonieDeParis
    phoenix.de
    Photobucket
    Piapro
    Picarto
    PicartoVod
    Piksel
    Pinkbike
    Pinterest
    PinterestCollection
    pixiv:sketch
    pixiv:sketch:user
    Pladform
    PlanetMarathi
    Platzi
    PlatziCourse
    play.fm
    player.sky.it
    PlayPlusTV
    PlayStuff
    PlaysTV
    PlaySuisse
    Playtvak
    Playvid
    PlayVids
    Playwire
    pluralsight
    pluralsight:course
    PlutoTV
    Podchaser
    podomatic
    Pokemon
    PokemonSoundLibrary
    PokemonWatch
    PokerGo
    PokerGoCollection
    PolsatGo
    PolskieRadio
    polskieradio:kierowcow
    polskieradio:player
    polskieradio:podcast
    polskieradio:podcast:list
    PolskieRadioCategory
    Popcorntimes
    PopcornTV
    PornCom
    PornerBros
    Pornez
    PornFlip
    PornHd
    PornHub
    PornHubPagedVideoList
    PornHubPlaylist
    PornHubUser
    PornHubUserVideosUpload
    Pornotube
    PornoVoisines
    PornoXO
    PornTube
    PressTV
    ProjectVeritas
    prosiebensat1
    PRXAccount
    PRXSeries
    prxseries:search
    prxstories:search
    PRXStory
    puhutv
    puhutv:serie
    Puls4
    Pyvideo
    qqmusic
    qqmusic:album
    qqmusic:playlist
    qqmusic:singer
    qqmusic:toplist
    QuantumTV
    Qub
    R7
    R7Article
    Radiko
    RadikoRadio
    radio.de
    radiobremen
    radiocanada
    radiocanada:audiovideo
    radiofrance
    RadioJavan
    radiokapital
    radiokapital:show
    RadioZetPodcast
    radlive
    radlive:channel
    radlive:season
    Rai
    RaiPlay
    RaiPlayLive
    RaiPlayPlaylist
    RaiPlaySound
    RaiPlaySoundLive
    RaiPlaySoundPlaylist
    RayWenderlich
    RayWenderlichCourse
    RBMARadio
    RCS
    RCSEmbeds
    RCSVarious
    RCTIPlus
    RCTIPlusSeries
    RCTIPlusTV
    RDS
    RedBull
    RedBullEmbed
    RedBullTV
    RedBullTVRrnContent
    Reddit
    RedGifs
    RedGifsSearch
    RedGifsUser
    RedTube
    RegioTV
    RENTV
    RENTVArticle
    Restudy
    Reuters
    ReverbNation
    RICE
    RMCDecouverte
    RockstarGames
    Rokfin
    rokfin:channel
    rokfin:search
    rokfin:stack
    RoosterTeeth
    RoosterTeethSeries
    RottenTomatoes
    Rozhlas
    RTBF
    RTDocumentry
    RTDocumentryPlaylist
    rte
    rte:radio
    rtl.nl
    rtl2
    rtl2:you
    rtl2:you:series
    Rtmp
    RTNews
    RTP
    RTRFM
    RTS
    rtve.es:alacarta
    rtve.es:audio
    rtve.es:infantil
    rtve.es:live
    rtve.es:television
    RTVNH
    RTVS
    RUHD
    Rule34Video
    RumbleChannel
    RumbleEmbed
    Ruptly
    rutube
    rutube:channel
    rutube:embed
    rutube:movie
    rutube:person
    rutube:playlist
    rutube:tags
    RUTV
    Ruutu
    Ruv
    ruv.is:spila
    safari
    safari:api
    safari:course
    Saitosan
    SAKTV
    SaltTV
    SampleFocus
    Sapo
    savefrom.net
    SBS
    schooltv
    ScienceChannel
    screen.yahoo:search
    Screencast
    ScreencastOMatic
    ScrippsNetworks
    scrippsnetworks:watch
    SCTE
    SCTECourse
    Seeker
    SenateGov
    SenateISVP
    SendtoNews
    Servus
    Sexu
    SeznamZpravy
    SeznamZpravyArticle
    Shahid
    ShahidShow
    Shared
    ShemarooMe
    ShowRoomLive
    simplecast
    simplecast:episode
    simplecast:podcast
    Sina
    Skeb
    sky.it
    sky:news
    sky:news:story
    sky:sports
    sky:sports:news
    skyacademy.it
    SkylineWebcams
    skynewsarabia:article
    skynewsarabia:video
    SkyNewsAU
    Slideshare
    SlidesLive
    Slutload
    Snotr
    Sohu
    SonyLIV
    SonyLIVSeries
    soundcloud
    soundcloud:playlist
    soundcloud:related
    soundcloud:search
    soundcloud:set
    soundcloud:trackstation
    soundcloud:user
    SoundcloudEmbed
    soundgasm
    soundgasm:profile
    southpark.cc.com
    southpark.cc.com:español
    southpark.de
    southpark.nl
    southparkstudios.dk
    SovietsCloset
    SovietsClosetPlaylist
    SpankBang
    SpankBangPlaylist
    Spankwire
    Spiegel
    Sport5
    SportBox
    SportDeutschland
    spotify
    spotify:show
    Spreaker
    SpreakerPage
    SpreakerShow
    SpreakerShowPage
    SpringboardPlatform
    Sprout
    sr:mediathek
    SRGSSR
    SRGSSRPlay
    stanfordoc
    startv
    Steam
    Stitcher
    StitcherShow
    StoryFire
    StoryFireSeries
    StoryFireUser
    Streamable
    Streamanity
    streamcloud.eu
    StreamCZ
    StreamFF
    StreetVoice
    StretchInternet
    Stripchat
    stv:player
    SunPorno
    sverigesradio:episode
    sverigesradio:publication
    SVT
    SVTPage
    SVTPlay
    SVTSeries
    SWRMediathek
    Syfy
    SztvHu
    t-online.de
    Tagesschau
    Tass
    TBS
    TDSLifeway
    Teachable
    TeachableCourse
    teachertube
    teachertube:user:collection
    TeachingChannel
    Teamcoco
    TeamTreeHouse
    TechTalks
    techtv.mit.edu
    TedEmbed
    TedPlaylist
    TedSeries
    TedTalk
    Tele13
    Tele5
    TeleBruxelles
    Telecinco
    Telegraaf
    telegram:embed
    TeleMB
    Telemundo
    TeleQuebec
    TeleQuebecEmission
    TeleQuebecLive
    TeleQuebecSquat
    TeleQuebecVideo
    TeleTask
    Telewebion
    TennisTV
    TenPlay
    TestURL
    TF1
    TFO
    TheIntercept
    ThePlatform
    ThePlatformFeed
    TheStar
    TheSun
    ThetaStream
    ThetaVideo
    TheWeatherChannel
    ThisAmericanLife
    ThisAV
    ThisOldHouse
    ThreeSpeak
    ThreeSpeakUser
    TikTok
    tiktok:effect
    tiktok:sound
    tiktok:tag
    tiktok:user
    tinypic
    TLC
    TMZ
    TNAFlix
    TNAFlixNetworkEmbed
    toggle
    toggo
    Tokentube
    Tokentube:channel
    ToonGoggles
    tou.tv
    Toypics
    ToypicsUser
    TrailerAddict (CURRENTLY BROKEN)
    TravelChannel
    Trilulilu
    Trovo
    TrovoChannelClip
    TrovoChannelVod
    TrovoVod
    TrueID
    TruNews
    TruTV
    Tube8
    TubiTv
    TubiTvShow
    Tumblr
    tunein:clip
    tunein:program
    tunein:shortener
    tunein:station
    tunein:topic
    TunePk
    Turbo
    tv.dfb.de
    TV2
    TV2Article
    TV2DK
    TV2DKBornholmPlay
    tv2play.hu
    tv2playseries.hu
    TV4
    TV5MondePlus
    tv5unis
    tv5unis:video
    tv8.it
    TVA
    TVANouvelles
    TVANouvellesArticle
    TVC
    TVCArticle
    TVer
    tvigle
    tvland.com
    TVN24
    TVNet
    TVNoe
    TVNow
    TVNowAnnual
    TVNowFilm
    TVNowNew
    TVNowSeason
    TVNowShow
    tvopengr:embed
    tvopengr:watch
    tvp
    tvp:embed
    tvp:series
    tvp:stream
    TVPlayer
    TVPlayHome
    Tweakers
    TwitCasting
    TwitCastingLive
    TwitCastingUser
    twitch:clips
    twitch:stream
    twitch:vod
    TwitchCollection
    TwitchVideos
    TwitchVideosClips
    TwitchVideosCollections
    twitter
    twitter:amplify
    twitter:broadcast
    twitter:card
    twitter:shortener
    udemy
    udemy:course
    UDNEmbed
    UFCArabia
    UFCTV
    ukcolumn
    UKTVPlay
    umg:de
    UnicodeBOM
    Unistra
    Unity
    uol.com.br
    uplynk
    uplynk:preplay
    Urort
    URPlay
    USANetwork
    USAToday
    ustream
    ustream:channel
    ustudio
    ustudio:embed
    Utreon
    Varzesh3
    Vbox7
    VeeHD
    Veo
    Veoh
    Vesti
    Vevo
    VevoPlaylist
    VGTV
    vh1.com
    vhx:embed
    Viafree
    vice
    vice:article
    vice:show
    Vidbit
    Viddler
    Videa
    video.arnes.si
    video.google:search
    video.sky.it
    video.sky.it:live
    VideoDetective
    videofy.me
    videomore
    videomore:season
    videomore:video
    VideoPress
    Vidio
    VidioLive
    VidioPremier
    VidLii
    vier
    vier:videos
    viewlift
    viewlift:embed
    ViewSource
    Viidea
    viki
    viki:channel
    vimeo
    vimeo:album
    vimeo:channel
    vimeo:group
    vimeo:likes
    vimeo:ondemand
    vimeo:review
    vimeo:user
    vimeo:watchlater
    Vimm:recording
    Vimm:stream
    Vimp
    Vimple
    Vine
    vine:user
    Viqeo
    Viu
    viu:ott
    viu:playlist
    Vivo
    vk
    vk:uservideos
    vk:wallpost
    vlive
    vlive:channel
    vlive:post
    vm.tiktok
    Vodlocker
    VODPl
    VODPlatform
    VoiceRepublic
    voicy
    voicy:channel
    Voot
    VootSeries
    VoxMedia
    VoxMediaVolume
    vpro
    Vrak
    VRT
    VrtNU
    vrv
    vrv:series
    VShare
    VTM
    VTXTV
    VuClip
    Vupload
    VVVVID
    VVVVIDShow
    VyboryMos
    Vzaar
    Wakanim
    Walla
    WalyTV
    wasdtv:clip
    wasdtv:record
    wasdtv:stream
    washingtonpost
    washingtonpost:article
    wat.tv
    WatchBox
    WatchIndianPorn
    WDR
    wdr:mobile (CURRENTLY BROKEN)
    WDRElefant
    WDRPage
    web.archive:youtube
    Webcaster
    WebcasterFeed
    WebOfStories
    WebOfStoriesPlaylist
    Weibo
    WeiboMobile
    WeiqiTV
    whowatch
    Willow
    WimTV
    Wistia
    WistiaPlaylist
    wnl
    WorldStarHipHop
    wppilot
    wppilot:channels
    WSJ
    WSJArticle
    WWE
    XBef
    XboxClips
    XFileShare
    XHamster
    XHamsterEmbed
    XHamsterUser
    xiami:album
    xiami:artist
    xiami:collection
    xiami:song
    ximalaya
    ximalaya:album
    xinpianchang
    XMinus
    XNXX
    Xstream
    XTube
    XTubeUser
    Xuite
    XVideos
    XXXYMovies
    Yahoo
    yahoo:gyao
    yahoo:gyao:player
    yahoo:japannews
    YandexDisk
    yandexmusic:album
    yandexmusic:artist:albums
    yandexmusic:artist:tracks
    yandexmusic:playlist
    yandexmusic:track
    YandexVideo
    YandexVideoPreview
    YapFiles
    YesJapan
    yinyuetai:video
    Ynet
    YouJizz
    youku
    youku:show
    YouNowChannel
    YouNowLive
    YouNowMoment
    YouPorn
    YourPorn
    YourUpload
    youtube
    youtube:clip
    youtube:favorites
    youtube:history
    youtube:music:search_url
    youtube:notif
    youtube:playlist
    youtube:recommended
    youtube:search
    youtube:search:date
    youtube:search_url
    youtube:stories
    youtube:subscriptions
    youtube:tab
    youtube:truncated_id
    youtube:truncated_url
    youtube:user
    youtube:watchlater
    YoutubeLivestreamEmbed
    YoutubeYtBe
    Zapiks
    Zattoo
    ZattooLive
    ZattooMovies
    ZattooRecordings
    ZDF
    ZDFChannel
    Zee5
    zee5:series
    ZenYandex
    ZenYandexChannel
    Zhihu
    zingmp3
    zingmp3:album
    zingmp3:chart-home
    zingmp3:chart-music-video
    zingmp3:user
    zingmp3:week-chart
    zoom
    Zype
    generic

    (на самом деле, утилита может работать и со множеством сервисов, не указанных в её списке...)


    Самый простой способ скачать видео.
    При таком способе скачивания, видео скачивается по умолчанию в Домашний каталог (Домашняя папка):
    /home/user, где user - это ваше имя пользователя в системе
    и таким, каким оно залито на ресурс.
    Т.е., с доступными наивысшим качеством и наилучшей аудио-дорожкой, в том формате (mp4, VOV, avi, agg и пр...), в каком оно залито, а также с полным, оригинальным именем и номером файла (здесь 16840961_456258552).
    Например с ВКонтакте:
    (получить ссылку на скачивание можно, запустив само видео, потом ПКМ на него и ЛКМ на Скопировать ссылку на видео)
    yt-dlp https://vk.com/video-16840961_456258552

    То же самое, но только с указанием папки/каталога, куда мы хотим скачать видео:
    (здесь папка Видео в Домашней папке)
    yt-dlp -P Видео https://vk.com/video-16840961_456258552



    Скачать видео с различными опциями/префиксами/параметрами (выше, в спойлере Список опций).
    Например, давайте скачаем это же видео, но с опциями:
    -f или --format (format - формат видео) - что принудительно устанавливает видео в формат лучшего качества префиксом b (best - лучшее)
    --merge-output-format mp4 - что принудительно конвертирует конечный файл видео в формат префиксом mp4
    -o Видео/'%(title)s.%(ext)s' - что принудительно указывает папку (здесь папка Видео в Домашней папке), в которую мы хотим скачать виедо и перфикс формирования названия и конечного расширения видео (здесь получится имя_файла.mp4).

    И заметьте, здесь, для принудительного указания папки, применяется префикс -o, а не -P, как в первом, самом простом способе скачивания, т.к. мы принудительно формируем имя и расширение конечного файла.
    Т.е. префкис -P применяется только в случае отсутствия принудительного формирования имени и расширения конечного файла.
    yt-dlp -f b --merge-output-format mp4 -o Видео/'%(title)s.%(ext)s' https://vk.com/video-16840961_456258552

    То же самое, но с худшим качеством, c опцией -f и префиксом w - что принудительно устанавливает видео в формат худшего качества w (worst - худшее):
    yt-dlp -f w --merge-output-format mp4 -o Видео/'%(title)s.%(ext)s' https://vk.com/video-16840961_456258552


    Очень часто, при скачивании видео, особенно с ВКонтакте, в виду того, что формат исходного файла определяется, как url480:

    [info] -5158073_456266686: Downloading 1 format(s): url480
    Конечный файл, даже не смотря на то, что в коде, в --merge-output-format прописан формат mp4, определяется, как в формате .unknown_video:

    [download] Destination: Видео/имя_файла.unknown_video
    И, естественно, при добавлении куда-либо такого видео, ни один сервис, куда вы захотите выложить его, просто не примет его, т.к. у файла просто нет, как такового, известного сервисам расширения.
    Исправляется это, как ни странно, банальным переименованием расширения файла!
    Т.е. вместо .unknown_video прописываете .mp4!

    Делается это так:
    - ПКМ на файл и в выпавшем контекстном меню ЛКМ на Переименовать... и после замены расширения файла, ЛКМ жмёте на кнопку Переименовать либо на клавиатуре на Enter
    или
    - засвечиваете мышкой файл: Ctrl+ЛКМ и жмёте на клавишу F2 и после замены расширения файла, ЛКМ жмёте на кнопку Переименовать либо на клавиатуре на Enter


    Также можно скачать видео, поигравшись с параметрами опции -f и префиксов b или bv (best - лучшее качество видео)/w или wv (worst - худшее качество видео) и ba (best audio - лучшее качество аудио-дорожки)/wa (worst audio - худшее качество аудио-дорожки), добавив к нему параметры, например:
    - разрешения видео [height=360] (с разрешением 360)
    - аудио-кодек ba[ext=m4a] (аудио-кодек mp4a.40.2)

    Почему именно с такими параметрами?
    Чтобы вы видели возомжности утилиты yt-dlp, чтобы понимали алгоритм применения тех или иных опций/префиксов/параметров.

    А перед скачиванием, можно посмотреть доступные форматы (качество) видео и аудио, дабы удостовериться в правильности выбора нами форматов/кодеков, выполнив команду, например, вот, этого видео с YouTube с опцией -F или --list-formats:
    (опция -F или --list-formats - это список доступных форматов для скачивания форматов/кодеков данного видео-файла.
    Получить сслыку на видео с YouTube, можно, нажав под видео на кнопку Поделится и в выпавшем меню нажав на Копировать)
    yt-dlp -F https://youtu.be/zMA8pCYms2k

    И в результе выполнения этой команды, получаем, вот, такую таблицу-вывод с полной инофрмацией о доступных для скачивания форматах/кодеках видео/аудио данного видео-файла:
    (Обратите внимание!!! Доступные форматы для скачивания полноценного видео в выводе Терминала отмечены в таблице в колонке ABR абревиатурой Ok и чем больше цифра разрешения в таблице в колонке RESOLUSION, например в данном случае у этого файла самое высокое качество/разрешение 720 в строке: 1280х720, тем больше соответственно размер файла, что актуально учитывать, если в дальнейшем вы собираетесь заливать куда-либо этот файл. Поэтому, заранее определитесь, в каком разрешение вы собираетесь скачать данный файл, например у этого файла есть ещё 2 варианта разрешения 360 и 144 и, соответсвтенно, размер файла, чем меньше эта цифра, тем меньше размером будет и файл и хуже качество отображения)

    А теперь, после ознакомления со списком/таблицей доступных для скачивания форматов, всё же давайте скачаем это видео с опциями/префиксами/параметрами, как мы и хотели:
    yt-dlp -f b[height=360]ba[ext=m4a] --merge-output-format mp4 -o Видео/'%(title)s.%(ext)s' https://youtu.be/zMA8pCYms2k
    или
    yt-dlp -f b[height=360]+ba[ext=m4a] --merge-output-format mp4 -o Видео/'%(title)s.%(ext)s' https://youtu.be/zMA8pCYms2k

    В результате, в папке Видео, мы обнаружим файл имя_файла.mp4 с качеством в 360p (разрешение в пикселях) и с аудио-дорожкой в формате m4a (MPEG-4 Audio Layer)


    Скачать часть видео.

    Скачать часть видео можно в связке (содружестве) с утилитой FFmpeg.
    Получить подробную справку по опциям/префиксам/параметрам этой утилиты можно, выполнив команду:
    FFmpeg --help

    Список опций:

    ffmpeg version 4.4.1-3ubuntu5 Copyright (c) 2000-2021 the FFmpeg developers
    built with gcc 11 (Ubuntu 11.2.0-18ubuntu1)
    configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
    WARNING: library configuration mismatch
    avcodec configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libaribb24 --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc --enable-libsmbclient
    libavutil 56. 70.100 / 56. 70.100
    libavcodec 58.134.100 / 58.134.100
    libavformat 58. 76.100 / 58. 76.100
    libavdevice 58. 13.100 / 58. 13.100
    libavfilter 7.110.100 / 7.110.100
    libswscale 5. 9.100 / 5. 9.100
    libswresample 3. 9.100 / 3. 9.100
    libpostproc 55. 9.100 / 55. 9.100
    Hyper fast Audio and Video encoder
    usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

    Getting help:
    -h -- print basic options
    -h long -- print more options
    -h full -- print all options (including all format and codec specific options, very long)
    -h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter/bsf/protocol
    See man ffmpeg for detailed description of the options.

    Print help / information / capabilities:
    -L show license
    -h topic show help
    -? topic show help
    -help topic show help
    --help topic show help
    -version show version
    -buildconf show build configuration
    -formats show available formats
    -muxers show available muxers
    -demuxers show available demuxers
    -devices show available devices
    -codecs show available codecs
    -decoders show available decoders
    -encoders show available encoders
    -bsfs show available bit stream filters
    -protocols show available protocols
    -filters show available filters
    -pix_fmts show available pixel formats
    -layouts show standard channel layouts
    -sample_fmts show available audio sample formats
    -colors show available color names
    -sources device list sources of the input device
    -sinks device list sinks of the output device
    -hwaccels show available HW acceleration methods

    Global options (affect whole program instead of just one file):
    -loglevel loglevel set logging level
    -v loglevel set logging level
    -report generate a report
    -max_alloc bytes set maximum size of a single allocated block
    -y overwrite output files
    -n never overwrite output files
    -ignore_unknown Ignore unknown stream types
    -filter_threads number of non-complex filter threads
    -filter_complex_threads number of threads for -filter_complex
    -stats print progress report during encoding
    -max_error_rate maximum error rate ratio of decoding errors (0.0: no errors, 1.0: 100% errors) above which ffmpeg returns an error instead of success.
    -bits_per_raw_sample number set the number of bits per raw sample
    -vol volume change audio volume (256=normal)

    Per-file main options:
    -f fmt force format
    -c codec codec name
    -codec codec codec name
    -pre preset preset name
    -map_metadata outfile[,metadata]:infile[,metadata] set metadata information of outfile from infile
    -t duration record or transcode "duration" seconds of audio/video
    -to time_stop record or transcode stop time
    -fs limit_size set the limit file size in bytes
    -ss time_off set the start time offset
    -sseof time_off set the start time offset relative to EOF
    -seek_timestamp enable/disable seeking by timestamp with -ss
    -timestamp time set the recording timestamp ('now' to set the current time)
    -metadata string=string add metadata
    -program title=string:st=number... add program with specified streams
    -target type specify target file type ("vcd", "svcd", "dvd", "dv" or "dv50" with optional prefixes "pal-", "ntsc-" or "film-")
    -apad audio pad
    -frames number set the number of frames to output
    -filter filter_graph set stream filtergraph
    -filter_script filename read stream filtergraph description from a file
    -reinit_filter reinit filtergraph on input parameter changes
    -discard discard
    -disposition disposition

    Video options:
    -vframes number set the number of video frames to output
    -r rate set frame rate (Hz value, fraction or abbreviation)
    -fpsmax rate set max frame rate (Hz value, fraction or abbreviation)
    -s size set frame size (WxH or abbreviation)
    -aspect aspect set aspect ratio (4:3, 16:9 or 1.3333, 1.7777)
    -bits_per_raw_sample number set the number of bits per raw sample
    -vn disable video
    -vcodec codec force video codec ('copy' to copy stream)
    -timecode hh:mm:ss[:;.]ff set initial TimeCode value.
    -pass n select the pass number (1 to 3)
    -vf filter_graph set video filters
    -ab bitrate audio bitrate (please use -b:a)
    -b bitrate video bitrate (please use -b:v)
    -dn disable data

    Audio options:
    -aframes number set the number of audio frames to output
    -aq quality set audio quality (codec-specific)
    -ar rate set audio sampling rate (in Hz)
    -ac channels set number of audio channels
    -an disable audio
    -acodec codec force audio codec ('copy' to copy stream)
    -vol volume change audio volume (256=normal)
    -af filter_graph set audio filters

    Subtitle options:
    -s size set frame size (WxH or abbreviation)
    -sn disable subtitle
    -scodec codec force subtitle codec ('copy' to copy stream)
    -stag fourcc/tag force subtitle tag/fourcc
    -fix_sub_duration fix subtitles duration
    -canvas_size size set canvas size (WxH or abbreviation)
    -spre preset set the subtitle options to the indicated preset
    А можно ещё октрыть её мануал (подробная инструкция) командой:
    man ffmpeg

    Итак, давайте скачаем часть того же видео с YouTube, например с начала и до 2минуты, выполнив команду:
    (для удобства и, чтобы не выкидывало ошибку, что такое видео уже скачано и существует, добавим в секцию -o Видео/'%(title)s.%(ext)s', после первого s. абревиатуру p1., что будет означать часть 1 и т.д. с каждой частью: p2., p3., p4. и тогда имена частей файла будут иметь, вот, такой вид: имя_файла.p1.mp4, имя_файла.p2.mp4, имя_файла.p3.mp4 и т.д...)
    yt-dlp -f b[height=360] --merge-output-format mp4 -o Видео/'%(title)s.p1.%(ext)s' --downloader ffmpeg --downloader-args '-ss 00:00:00.00 -to 00:02:00.00' https://youtu.be/zMA8pCYms2k

    Или, давайте скачаем часть видео не с самого начала, а с начала 1минуты и до 3минут командой:
    yt-dlp -f b[height=360] --merge-output-format mp4 -o Видео/'%(title)s.p2.%(ext)s' --downloader ffmpeg --downloader-args '-ss 00:01:00.00 -to 00:03:00.00' https://youtu.be/zMA8pCYms2k

    А теперь давайте скачаем оставшуюся часть видео cо 2минуты и до конца командой:
    yt-dlp -f b[height=720] --merge-output-format mp4 -o Видео/'%(title)s.p3.%(ext)s' --downloader ffmpeg --downloader-args '-ss 00:02:00.00 -c copy' https://youtu.be/zMA8pCYms2k



    Вот, в приципе и все основные, простые хитрости скачивания.

    Вы легко можете, воспользовавшись любым онлайн-переводчиком, найти в Справке и Манулах данных утилит, либо просто воспользовавшись поиском в любой Поисковой системе, как сделать то или иное действие с видео.

    Страница данной утилиты на GitHub-е:
    GitHub - yt-dlp

    Всем Удачи и приятного пользования.


    В качестве бонуса...

    Неоторые сревисы ограничивают (лимитируют) размер загружаемого видео на свой ресурс, в частности WhatsApp, где с недавних пор можно залить в чат или группу видео размером не более 16Мб.

    Единственный, доступный метод выйти из положения, сжать видео.
    И поможет нам в этом, опять же утилита FFmpeg.
    Сделать это можно с опцией -crf (Constant Rate Factor).

    В FFmpeg. настройки CRF варьируются от 0 до 51, где 0 - без потерь, а 51 - потрясающе низкого качества.
    По умолчанию установлено значение 23, и вам нужно найти "точку отсчета" для вашего конкретного видео с размером файла и качеством видео, поэкспериментировав с этим значением.
    Например, давайте сожмём всё тоже самое видео с YouTube-а, скачаное выше, но в рарешении 720p и конечным рамером в 61.47Мб, установив для эксперимента в опции CRF значение -crf 27, выполним команду:
    ffmpeg -i Видео/Лёд\ слёзы\ льёт\ -\ Владимир\ Кузьмин\ \(Live\)\ 2003.mp4 -c:v libx264 -preset slow -crf 27 -c:a copy Видео/test.mp4

    Теперь давайте проверим размер конечного файла test.mp4:
    ls -lh Видео/test.mp4

    Размер получился 39Мб:

    -rw-rw-r-- 1 user user 39M июн 5 15:34 Видео/test.mp4
    Всё ещё многовато...

    Ещё раз сожмём файл, но уже со значением -crf 38:
    ffmpeg -i Видео/Лёд\ слёзы\ льёт\ -\ Владимир\ Кузьмин\ \(Live\)\ 2003.mp4 -c:v libx264 -preset slow -crf 38 -c:a copy Видео/test.mp4

    Снова проверяем размер конечного файла test.mp4:
    ls -lh Видео/test.mp4

    И видим, что конечный размер файла получился 15Мб:

    -rw-rw-r-- 1 user user 15M июн 5 15:34 Видео/test.mp4
    То, что надо!

    Теперь смело можно заливать это видео в тот же WhatsApp...

    Обратите внимание!!!
    Этой командой видео перекодируется, а аудио просто копируется.
    Что при этом нужно учитывать:

      1. Если размер все еще слишком велик, а качество видео остается приемлемым, попробуйте менять -crf ХХ, постепенно увеличивая его целое число, пока не найдете приемлемый компромисс между качеством видео и размером файла.

      2. Если качество видео слишком низкое, вы можете попробовать уменьшать -crf ХХ, постепенно уменьшая его целое число, пока не найдете приемлемый компромисс между качеством видео и размером файла.

    В общем, экспериментируйте до достижения нужного результата...

    P.S. Если у вас появились вопросы или мнения по данной статье, обсудить их можно на нашем форуме:

    Ссылка на источник compizomania
    04-06-2022.



    Комментирование и пинг закрыты.