LINUX.ORG.RU

Bash c опциями для yt-dlp не всегда срабатывает

 ,


0

1

Есть скрипт

#! /bin/bash
echo start
ADDRESS=`xclip -o selection -clipboard`
echo ADDRESS=$ADDRESS
cd /home/user/MP3/ABOOK/youtube
yt-dlp -f 140 "$ADDRESS"
if [ $? -ne 0 ] ; then 
	echo "It seems the default m4a format is not available... Searching for "Russian" among f140 options"
	F=$(yt-dlp -F "$ADDRESS"|grep -i -E 'ru|Russian' |grep 140 -E'140|140-1'|cut -d ' ' -f 1)
	echo "Detected format index is $F"
yt-dlp -f "$F" "$ADDRESS" ; 

fi

Он вполне корректно выдирает m4a дорожки на русском языке, в большинстве случаев. Но не всегда.

Встречаясь с подобным

[info] Available formats for xhrCq8kDhpM:
ID      EXT   RESOLUTION FPS CH │   FILESIZE   TBR PROTO │ VCODEC          VBR ACODEC      ABR ASR MORE INFO
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb3     mhtml 48x27        0    │                  mhtml │ images                                  storyboard
sb2     mhtml 80x45        0    │                  mhtml │ images                                  storyboard
sb1     mhtml 160x90       0    │                  mhtml │ images                                  storyboard
sb0     mhtml 320x180      0    │                  mhtml │ images                                  storyboard
139-drc m4a   audio only      2 │   12.64MiB   49k https │ audio only          mp4a.40.5   49k 22k [ru] Russian original, low, DRC, m4a_dash
249-drc webm  audio only      2 │   13.47MiB   52k https │ audio only          opus        52k 48k [ru] Russian original, low, DRC, webm_dash
139-0   m4a   audio only      2 │   12.64MiB   49k https │ audio only          mp4a.40.5   49k 22k [en-US] English (US) (default), low, m4a_dash
139-1   m4a   audio only      2 │   12.64MiB   49k https │ audio only          mp4a.40.5   49k 22k [ru] Russian original, low, m4a_dash
249-0   webm  audio only      2 │   14.87MiB   57k https │ audio only          opus        57k 48k [en-US] English (US) (default), low, webm_dash
249-1   webm  audio only      2 │   13.43MiB   52k https │ audio only          opus        52k 48k [ru] Russian original, low, webm_dash
140-drc m4a   audio only      2 │   33.55MiB  129k https │ audio only          mp4a.40.2  129k 44k [ru] Russian original, medium, DRC, m4a_dash
251-drc webm  audio only      2 │   32.29MiB  125k https │ audio only          opus       125k 48k [ru] Russian original, medium, DRC, webm_dash
140-0   m4a   audio only      2 │   33.55MiB  129k https │ audio only          mp4a.40.2  129k 44k [en-US] English (US) (default), medium, m4a_dash
140-1   m4a   audio only      2 │   33.55MiB  129k https │ audio only          mp4a.40.2  129k 44k [ru] Russian original, medium, m4a_dash
251-0   webm  audio only      2 │   36.97MiB  143k https │ audio only          opus       143k 48k [en-US] English (US) (default), medium, webm_dash
251-1   webm  audio only      2 │   32.30MiB  125k https │ audio only          opus       125k 48k [ru] Russian original, medium, webm_dash
91-0    mp4   256x144     30    │ ~ 31.84MiB  123k m3u8  │ avc1.4D400C         mp4a.40.5           [ru] Untested
91-1    mp4   256x144     30    │ ~ 31.86MiB  123k m3u8  │ avc1.4D400C         mp4a.40.5           [en-US] Untested, (default)
91-2    mp4   256x144     30    │ ~ 31.84MiB  123k m3u8  │ avc1.4D400C         mp4a.40.5           [ru] Untested, (original)
160     mp4   256x144     30    │    7.76MiB   30k https │ avc1.4d400c     30k video only          144p, mp4_dash
278     webm  256x144     30    │   17.08MiB   66k https │ vp9             66k video only          144p, webm_dash
394     mp4   256x144     30    │   12.46MiB   48k https │ av01.0.00M.08   48k video only          144p, mp4_dash
92-0    mp4   426x240     30    │ ~ 42.87MiB  165k m3u8  │ avc1.4D4015         mp4a.40.5           [ru] Untested
92-1    mp4   426x240     30    │ ~ 42.89MiB  165k m3u8  │ avc1.4D4015         mp4a.40.5           [en-US] Untested, (default)
92-2    mp4   426x240     30    │ ~ 42.87MiB  165k m3u8  │ avc1.4D4015         mp4a.40.5           [ru] Untested, (original)
133     mp4   426x240     30    │   12.81MiB   49k https │ avc1.4d4015     49k video only          240p, mp4_dash
242     webm  426x240     30    │   18.91MiB   73k https │ vp9             73k video only          240p, webm_dash
395     mp4   426x240     30    │   16.05MiB   62k https │ av01.0.00M.08   62k video only          240p, mp4_dash
93-0    mp4   640x360     30    │ ~ 91.85MiB  354k m3u8  │ avc1.4D401E         mp4a.40.2           [ru] Untested
93-1    mp4   640x360     30    │ ~ 91.86MiB  354k m3u8  │ avc1.4D401E         mp4a.40.2           [en-US] Untested, (default)
93-2    mp4   640x360     30    │ ~ 91.85MiB  354k m3u8  │ avc1.4D401E         mp4a.40.2           [ru] Untested, (original)
134     mp4   640x360     30    │   24.72MiB   95k https │ avc1.4d401e     95k video only          360p, mp4_dash
18      mp4   640x360     30  2 │  100.91MiB  389k https │ avc1.42001E         mp4a.40.2       44k [ru] 360p
243     webm  640x360     30    │   44.67MiB  172k https │ vp9            172k video only          360p, webm_dash
396     mp4   640x360     30    │   30.99MiB  120k https │ av01.0.01M.08  120k video only          360p, mp4_dash
94-0    mp4   854x480     30    │ ~124.85MiB  482k m3u8  │ avc1.4D401F         mp4a.40.2           [ru] Untested
94-1    mp4   854x480     30    │ ~124.86MiB  482k m3u8  │ avc1.4D401F         mp4a.40.2           [en-US] Untested, (default)
94-2    mp4   854x480     30    │ ~124.85MiB  482k m3u8  │ avc1.4D401F         mp4a.40.2           [ru] Untested, (original)
135     mp4   854x480     30    │   39.81MiB  154k https │ avc1.4d401f    154k video only          480p, mp4_dash
244     webm  854x480     30    │   75.30MiB  291k https │ vp9            291k video only          480p, webm_dash
397     mp4   854x480     30    │   56.29MiB  217k https │ av01.0.04M.08  217k video only          480p, mp4_dash
95-0    mp4   1280x720    30    │ ~209.49MiB  808k m3u8  │ avc1.4D401F         mp4a.40.2           [ru] Untested
95-1    mp4   1280x720    30    │ ~209.50MiB  808k m3u8  │ avc1.4D401F         mp4a.40.2           [en-US] Untested, (default)
95-2    mp4   1280x720    30    │ ~209.49MiB  808k m3u8  │ avc1.4D401F         mp4a.40.2           [ru] Untested, (original)
136     mp4   1280x720    30    │   80.21MiB  310k https │ avc1.4d401f    310k video only          720p, mp4_dash
247     webm  1280x720    30    │  151.97MiB  586k https │ vp9            586k video only          720p, webm_dash
398     mp4   1280x720    30    │  110.91MiB  428k https │ av01.0.05M.08  428k video only          720p, mp4_dash
96-0    mp4   1920x1080   30    │ ~757.86MiB 2924k m3u8  │ avc1.640028         mp4a.40.2           [ru] Untested
96-1    mp4   1920x1080   30    │ ~757.87MiB 2924k m3u8  │ avc1.640028         mp4a.40.2           [en-US] Untested, (default)
96-2    mp4   1920x1080   30    │ ~757.86MiB 2924k m3u8  │ avc1.640028         mp4a.40.2           [ru] Untested, (original)
137     mp4   1920x1080   30    │  373.84MiB 1443k https │ avc1.640028   1443k video only          1080p, mp4_dash
248     webm  1920x1080   30    │  299.30MiB 1155k https │ vp9           1155k video only          1080p, webm_dash
399     mp4   1920x1080   30    │  220.11MiB  849k https │ av01.0.08M.08  849k video only          1080p, mp4_dash

списком форматов, он не срабатывает. Подозреваю, что в строке $F

появляется не один формат, а список, через пробел.

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

Цель, как понятно, получить русский m4a трек

Нашел ошибку.

#! /bin/bash
echo start
ADDRESS=`xclip -o selection -clipboard`
echo ADDRESS=$ADDRESS
cd /home/user/MP3/ABOOK/youtube
yt-dlp -f 140 "$ADDRESS"
if [ $? -ne 0 ] ; then 
	echo "It seems the default m4a format is not available... Searching for "Russian" among f140 options"
	F=$(yt-dlp -F "$ADDRESS"|grep -i -E 'ru|Russian' |grep -E '140-0|140-1' | cut -d ' ' -f 1)
	echo "Detected format index is $F"
yt-dlp -f "$F" "$ADDRESS" ; 

fi

Так выглядит скрипт для проблемных списков, где несколько русских треков с префиксом f140

Csandriel_x64
() автор топика
Последнее исправление: Csandriel_x64 (всего исправлений: 2)
Ответ на: комментарий от Csandriel_x64

Между прочим, молитвами авторов yt-dlp работает с целыми плейлистами. Тем же образом. Выдирает аудиотреки. Можно в дороге с девайса слушать, без интернета

Csandriel_x64
() автор топика
Последнее исправление: Csandriel_x64 (всего исправлений: 1)