Как выбрать качество видео с youtube-dl?

Убедитесь, что вы не сбиваете с толку «выполнение сценария оболочки» с помощью «запуска скрипта оболочки с помощью sh».

На file.sh не будут влиять права доступа к файлам:

[ f1]

Вы выполняете sh (который разрешает программу /bin/sh), которая читает file.sh и выполняет его код.

Разрешения для файлов будут иметь эффект, если вы действительно выполняете скрипт self:

./file.sh

Обратите внимание, что разрешения файлов не поддерживаются файловыми системами, отличными от Linux, например FAT. Таким образом, даже если вы запустите chmod -x file.sh, у файла все еще будут свои прежние разрешения.

Выполнение разрешения выполняется файловой системой. Но программы также могут «выполнять» код, читая содержимое файла, которое обходит разрешения файловой системы «execute».

1
задан 20 March 2018 в 14:31

4 ответа

Вы можете загрузить 1080p с помощью youtube-dl, но вам нужно сделать небольшую дополнительную работу.

Выполнить с -F, чтобы увидеть доступные форматы:

youtube-dl -F https://www.youtube.com/watch\?v\=-pxRXP3w-sQ

171         webm      audio only  DASH audio  115k , audio@128k (44100Hz), 2.59MiB (worst)
140         m4a       audio only  DASH audio  129k , audio@128k (44100Hz), 3.02MiB
141         m4a       audio only  DASH audio  255k , audio@256k (44100Hz), 5.99MiB
160         mp4       256x144     DASH video  111k , 12fps, video only, 2.56MiB
247         webm      1280x720    DASH video 1807k , 1fps, video only, 23.48MiB
136         mp4       1280x720    DASH video 2236k , 24fps, video only, 27.73MiB
248         webm      1920x1080   DASH video 3993k , 1fps, video only, 42.04MiB
137         mp4       1920x1080   DASH video 4141k , 24fps, video only, 60.28MiB
43          webm      640x360
18          mp4       640x360
22          mp4       1280x720    (best)

заметить, что [ f5] обозначил последний вариант 1280x720 как «лучшее» качество, и это то, что он будет загружать по умолчанию, но что линия, начинающаяся с 137, на самом деле имеет более высокое качество 1920x1080. Youtube выделил видео и аудиопотоки для строк с надписью DASH, поэтому нам также нужно выбрать аудио высочайшего качества, в этом случае это строка, начинающаяся с 141. Затем мы снова запускаем youtube-dl на этот раз, указывая аудио и видео: [ ! d2]

youtube-dl -f 137+141 https://www.youtube.com/watch\?v\=-pxRXP3w-sQ

, и он загрузит видео 1080p и автоматически объединит его с высококачественным аудио. Он также должен автоматически удалять отдельные загруженные части. Этот метод - небольшая дополнительная работа, но принесет вам наилучшие результаты.

70
ответ дан 24 May 2018 в 06:26
  • 1
    большое спасибо, не знаю о 137 + 141 – whitesiroi 5 May 2015 в 17:48
  • 2
    Ваш пример и другие представляют простой выбор для аудио, то есть для высокого качества, выберите тот, который имеет наибольшее значение битрейта. Недавно я столкнулся с выбором между DASH audio , opus @160k или DASH audio 126k , audio@128k (44100Hz), 1.79MiB или DASH audio 127k , m4a_dash container, aac @128k (44100Hz), 1.94MiB. Мне пришлось выбирать, но я не уверен в качестве или, возможно, совместимости. – user643722 10 June 2015 в 15:13
  • 3
    Самое лучшее в youtube-dl - это многоплатформенная платформа. Это решение работает не только на Linux, но и на Mac и Windows. Спасибо! – Antony 3 June 2016 в 02:19
  • 4
    В настоящее время это значение по умолчанию, но только если у вас установлены avconv (libav) или ffmpeg для преобразования файлов. Для Windows вы хотите установить --ffmpeg-location в %APPDATA%\youtube-dl\config.txt в каталог, где установлен avconv / ffmpeg. Если у вас есть недорогая система, вам может понадобиться -f bestvideo[fps<=30]+bestaudio, чтобы избежать видео 60fps. – GreenReaper 7 April 2018 в 01:16

Чтобы выбрать конкретные разрешения, вы можете указать размер и качество звука, чтобы они автоматически выбирались - так что для 480p:

-f 'bestvideo[height<=480]+bestaudio/best[height<=480]'

с bestvideo[height<=720]+bestaudio/best[height<=720] для 720p и т. д. Это можно добавить в файл конфигурации в ~/.config/youtube-dl/config (или даже /etc/youtube-dl.conf), чтобы вы не получали большие загрузки:

mkdir ~/.config/youtube-dl
echo "-f 'bestvideo[height<=720]+bestaudio/best[height<=720]'" >> ~/.config/youtube-dl/config

Вы можете использовать --ignore-config, если вы хотите отключить файл конфигурации для определенного youtube-dl

Обратите внимание, что довольно часто ему нужно будет загрузить отдельный видео и аудио пар и объединить их.

Дополнительные примеры см. в .

]
13
ответ дан 24 May 2018 в 06:26
  • 1
    У меня была проблема, когда разные сегменты одного и того же видео имели разные коды формата для одного и того же разрешения (например, hls-1476 для видео 1 из 2 и hls-1665 для видео 2 из 2, где оба были 540p), поэтому я не мог просто использовать "-f hls-1476" или "-f hls-1665" или я получаю " ОШИБКА: запрошенный формат недоступен " Примеры команд помогли мне получить то, что я хотел. – ssnobody 23 January 2017 в 01:37
  • 2
    +1 для ~/.config/youtube-dl/config – Marinos An 22 May 2017 в 21:15

Сценарий оболочки bash, который запрашивает формат, который включает все доступные версии, включая только аудио, только видео.

Принимает как абсолютные URL-адреса YouTube, так и идентификаторы видео.

#!/ usr/bin/env bash
# Download youtube video with desired quality

# youtube-dl accepts both fully qualified URLs and video id's such as AQcQgfvfF1M

url="$*"

echo "Fetching available formats for $url..."
youtube-dl -F "$url"
read -p "Please enter the desired quality code: " FORMAT

echo "Streaming with quality $FORMAT..."
mpv --cache=1024 $(youtube-dl -f $FORMAT -g "$url")

Пример вывода:

    yt.sh https://m.youtube.com/watch?v=Dax_tnZRExc
    [youtube] Dax_tnZRExc: Downloading webpage
    [youtube] Dax_tnZRExc: Downloading video info webpage
    [youtube] Dax_tnZRExc: Extracting video information
    [youtube] Dax_tnZRExc: Downloading MPD manifest
    [info] Available formats for Dax_tnZRExc:
    format code  extension  resolution note
    139          m4a        audio only DASH audio   49k , m4a_dash container, mp4a.40.5@ 48k (22050Hz), 308.75KiB
    249          webm       audio only DASH audio   50k , opus @ 50k, 271.91KiB
    250          webm       audio only DASH audio   70k , opus @ 70k, 366.63KiB
    171          webm       audio only DASH audio  118k , vorbis@128k, 652.50KiB
    140          m4a        audio only DASH audio  127k , m4a_dash container, mp4a.40.2@128k (44100Hz), 820.00KiB
    251          webm       audio only DASH audio  130k , opus @160k, 705.84KiB
    160          mp4        256x144    DASH video  109k , avc1.4d400c, 13fps, video only, 703.64KiB
    278          webm       256x144    144p  111k , webm container, vp9, 25fps, video only, 439.72KiB
    242          webm       426x240    240p  243k , vp9, 25fps, video only, 623.95KiB
    133          mp4        426x240    DASH video  252k , avc1.4d4015, 25fps, video only, 1.54MiB
    134          mp4        640x360    DASH video  388k , avc1.4d401e, 25fps, video only, 1.24MiB
    243          webm       640x360    360p  458k , vp9, 25fps, video only, 1.19MiB
    135          mp4        854x480    DASH video  761k , avc1.4d401e, 25fps, video only, 2.40MiB
    244          webm       854x480    480p  893k , vp9, 25fps, video only, 2.00MiB
    136          mp4        1280x720   DASH video 1382k , avc1.4d401f, 25fps, video only, 4.56MiB
    247          webm       1280x720   720p 1754k , vp9, 25fps, video only, 3.94MiB
    137          mp4        1920x1080  DASH video 2350k , avc1.640028, 25fps, video only, 8.48MiB
    248          webm       1920x1080  1080p 2792k , vp9, 25fps, video only, 8.09MiB
    17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k
    36           3gp        320x180    small , mp4v.20.3, mp4a.40.2
    43           webm       640x360    medium , vp8.0, vorbis@128k
    18           mp4        640x360    medium , avc1.42001E, mp4a.40.2@ 96k
    22           mp4        1280x720   hd720 , avc1.64001F, mp4a.40.2@192k (best)
    Please enter the desired format #
Если вы хотите загрузить видео, а не поток он просто удаляет часть mpv --cache=1024 и знак доллара с помощью скобок.
3
ответ дан 24 May 2018 в 06:26

По умолчанию youtube-dl будет выбирать наилучшее качество.

-3
ответ дан 24 May 2018 в 06:26

Другие вопросы по тегам:

Похожие вопросы: