04 июня 2022

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

Утилита 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. Если у вас появились вопросы или мнения по данной статье, обсудить их можно на нашем форуме:

    2 комментария :

    1. Этой утилитой возможно скачать все видео со страницы сайта?
      А не каждое по отдельности.

      ОтветитьУдалить

    Если у Вас появились вопросы или мнения, вы можете задать или оставить их здесь.
    Спам и флуд будут жёстко караться вечной блокировкой их оставляющих!



    If You have any questions or opinions about, just leave'em here.
    Spamers & flooders will be blocked forever!!!