Написал с помощью чата GPT4 , скрипт который реализует CLI-GUI то есть смешанную интерактивность для скачивания видео аудио по url спомощью утилиты yt-dlp, для выбора формата использована удивительная утилита, peco. Для выбора места скачивания , yad. Вот код скрипта.
зависимости:
xsel
peco
yad
-------------------------------------------------------------------------------------------------------------------------------------
#чуть ниже в этом же сообщении есть скрипт который использует интерактивный режим yt-dlp, предлагаю вам брать его, а этот скрипт у меня, и вот у krasnyh работает, но избыточен по коду
-------------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
# Получаем URL из буфера обмена
url=$(xsel -ob)
# Получаем список доступных форматов для видео на YouTube
formats=$(yt-dlp -F "$url")
# Фильтруем список через peco и сохраняем выбранный формат в переменную
selected_format=$(echo "$formats" | peco)
# Выводим выбранный формат и сохраняем первые 3 символа в переменную
#echo "Выбранный формат: $selected_format"
down_f=$(echo "$selected_format" | cut -c -3)
# Выводим первые 3 символа выбранного формата
#echo "Первые 3 символа выбранного формата: $down_f"
# Отображаем диалоговое окно выбора каталога с помощью yad
save_dir=$(yad --file --directory --title="Выберите каталог для сохранения")
# Если каталог не был выбран, выходим из скрипта
if [ -z "$save_dir" ]; then
exit
fi
# Запускаем yt-dlp для скачивания файла в выбранный каталог с выбранным форматом
yt-dlp -f "$down_f" -o "$save_dir/%(title)s.%(ext)s" "$url"
# Оповещаем о завершении загрузки
paplay /usr/share/sounds/freedesktop/stereo/complete.oga
echo "Загрузка завершена."
sleep 2
как использовать, скопировать в буфер обмена url , запустить скрипт, в терминале выдадут список форматов, первая строка будет подкрашена курсором утилиты peco, с помощью клавиш курсора, выбираем интересующий нас формат, жмем ввод, появится выведеное с помошью yad окно выбора каталога сохранения, выбираем каталог, и жмём опять ввод, пойдет далее скачивание файла в каталог.
------------------------------------------------------------------------------------------------
вот конечный вариант скрипта который предлагаю брать если нужен
------------------------------------------------------------------------------------------------
не забыть перед запуском скрипта скопировать url видео
в буфер обмена
------------------------------------------------------------------------------------------------
#!/bin/bash
# Получаем URL из буфера обмена с помощью xsel
url=$(xsel -ob)
# Задаем каталог для сохранения загруженных файлов
download_dir="$HOME/yout"
# Запускаем yt-dlp с опцией -f- и передаем ему URL и номер формата для загрузки
yt-dlp -f- "$url" -o "$download_dir/%(title)s.%(ext)s"
# Сообщаем пользователю о завершении загрузки
echo "Загрузка завершена. Файлы сохранены в каталоге $download_dir"