Дано:
"пару прямых ссылок на аудио и видеопоток 1080p из youtube" ,
полученных через youtube-dl -g
с чего вы взяли что там будет
1080p ?)
возможные отдачи форматов можно глянуть так:
$ youtube-dl --list-formats "https://www.youtube.com/watch?v=fTMXYj_a0Wo"
spoiler
[youtube] fTMXYj_a0Wo: Downloading webpage
[info] Available formats for fTMXYj_a0Wo:
format code extension resolution note
249 webm audio only tiny 51k , webm_dash container, opus @ 51k (48000Hz), 2.13MiB
250 webm audio only tiny 71k , webm_dash container, opus @ 71k (48000Hz), 3.00MiB
251 webm audio only tiny 128k , webm_dash container, opus @128k (48000Hz), 5.39MiB
140 m4a audio only tiny 129k , m4a_dash container, mp4a.40.2@129k (44100Hz), 5.41MiB
394 mp4 256x144 144p 62k , mp4_dash container, av01.0.00M.08@ 62k, 30fps, video only, 2.60MiB
160 mp4 256x144 144p 73k , mp4_dash container, avc1.4d400c@ 73k, 30fps, video only, 3.08MiB
278 webm 256x144 144p 82k , webm_dash container, vp9@ 82k, 30fps, video only, 3.46MiB
395 mp4 426x240 240p 116k , mp4_dash container, av01.0.00M.08@ 116k, 30fps, video only, 4.85MiB
133 mp4 426x240 240p 121k , mp4_dash container, avc1.4d4015@ 121k, 30fps, video only, 5.08MiB
242 webm 426x240 240p 142k , webm_dash container, vp9@ 142k, 30fps, video only, 5.96MiB
396 mp4 640x360 360p 225k , mp4_dash container, av01.0.01M.08@ 225k, 30fps, video only, 9.40MiB
134 mp4 640x360 360p 238k , mp4_dash container, avc1.4d401e@ 238k, 30fps, video only, 9.96MiB
243 webm 640x360 360p 250k , webm_dash container, vp9@ 250k, 30fps, video only, 10.46MiB
135 mp4 854x480 480p 369k , mp4_dash container, avc1.4d401f@ 369k, 30fps, video only, 15.44MiB
244 webm 854x480 480p 379k , webm_dash container, vp9@ 379k, 30fps, video only, 15.87MiB
397 mp4 854x480 480p 386k , mp4_dash container, av01.0.04M.08@ 386k, 30fps, video only, 16.13MiB
136 mp4 1280x720 720p 606k , mp4_dash container, avc1.4d401f@ 606k, 30fps, video only, 25.36MiB
247 webm 1280x720 720p 667k , webm_dash container, vp9@ 667k, 30fps, video only, 27.90MiB
398 mp4 1280x720 720p 798k , mp4_dash container, av01.0.05M.08@ 798k, 30fps, video only, 33.36MiB
18 mp4 640x360 360p 639k , avc1.42001E, 30fps, mp4a.40.2 (44100Hz), 26.72MiB
22 mp4 1280x720 720p 740k , avc1.64001F, 30fps, mp4a.40.2 (44100Hz) (best)
где видно что
для данного видео 1080p нету и в помине )
к сведению youtube-dl
по умолчанию всегда берет
best
то есть в данном случае это будет как раз
720p
$ youtube-dl --list-formats "https://www.youtube.com/watch?v=fTMXYj_a0Wo" | grep best
22 mp4 1280x720 720p 740k , avc1.64001F, 30fps, mp4a.40.2 (44100Hz) (best)
при желании можно выбрать нужный формат вручную, например для данного видео mp4 480p:
youtube-dl --format="397+bestaudio" -g "https://www.youtube.com/watch?v=fTMXYj_a0Wo"
где 397 это номер потока из --list-formats
также указываем +bestaudio так как поток 397 идет только как
video only поэтому говорим что нужно прицепить к данному видео еще и аудиодорожку с наилучшим качеством
но чтобы каждый раз не мучатся и не искать подходящий формат или не отдавать на волю случая(то что гугл считает за best) можно просто прописать в формате необходимые условия, например:
youtube-dl --format="bestvideo[height<=?1080]+bestaudio" -g "https://www.youtube.com/watch?v=fTMXYj_a0Wo"
будет брать(из --list-formats) видео максимально близко к расширению(высота) 1080 (равным или меньше)
можно даже указывать кодеки и fps а также через слэшь(/) указывать дополнительные условия, например:
youtube-dl --format="bestvideo[height<=?1080][vcodec^=h264]+bestaudio/best[height<=?1080]/best" -g "https://www.youtube.com/watch?v=fTMXYj_a0Wo"
первое условие
bestvideo[height<=?1080][vcodec^=h264]+bestaudio
высота меньше или равна 1080 и кодек h264 (хорош для слабого железа так как есть поддержка железа даже в утюге в отличии от новомодных av1, vp9 ...)
далее второе условие если не сработало первое
best[height<=?1080]
то есть если нету с кодеком h264 то грузить с любым но тока если есть разрешение 1080 или меньше
также просто best включает в себя как bestvideo так и bestaudio
п.с.
Попробовал youtube-dl + MPV плеер.
Работает по умолчанию, без танцев с бубном. )))
чтобы в mpv не вводить каждый раз формат можно в конфиге
mpv.conf указать нужные значения в переменной
ytdl-format="...."
у ytdl-format такой же формат как и описанный выше для ключа --format
п.с.2
если пользуетесь firefox то поставьте
это расширение
позволит запускать плеер(mpv?) просто выбрав в контекстном меню(правый клик мыши на ютуб-ссылке), чертовски удобно