Убедитесь, что вы не сбиваете с толку «выполнение сценария оболочки» с помощью «запуска скрипта оболочки с помощью sh».
На file.sh не будут влиять права доступа к файлам:
[ f1]Вы выполняете sh (который разрешает программу /bin/sh), которая читает file.sh и выполняет его код.
Разрешения для файлов будут иметь эффект, если вы действительно выполняете скрипт self:
./file.sh
Обратите внимание, что разрешения файлов не поддерживаются файловыми системами, отличными от Linux, например FAT. Таким образом, даже если вы запустите chmod -x file.sh, у файла все еще будут свои прежние разрешения.
Выполнение разрешения выполняется файловой системой. Но программы также могут «выполнять» код, читая содержимое файла, которое обходит разрешения файловой системы «execute».
Вы можете загрузить 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 и автоматически объединит его с высококачественным аудио. Он также должен автоматически удалять отдельные загруженные части. Этот метод - небольшая дополнительная работа, но принесет вам наилучшие результаты.
Чтобы выбрать конкретные разрешения, вы можете указать размер и качество звука, чтобы они автоматически выбирались - так что для 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
Обратите внимание, что довольно часто ему нужно будет загрузить отдельный видео и аудио пар и объединить их.
Дополнительные примеры см. в .
]Сценарий оболочки 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 и знак доллара с помощью скобок. По умолчанию youtube-dl будет выбирать наилучшее качество.