zloy-zhake
10/8/2017 - 7:20 AM

Скрипт, запускающий загрузку файлов с помощью aria2c или загрузку видео с youtube с конвертацией в аудио с помощью youtube-dl

Скрипт, запускающий загрузку файлов с помощью aria2c или загрузку видео с youtube с конвертацией в аудио с помощью youtube-dl

#!/usr/bin/env bash

# скрипт, запускающий загрузку файлов с помощью aria2c
# или загрузку видео с youtube с конвертацией в аудио с помощью youtube-dl

# TODO переименование файлов, скачанных с youtube (убрать ID видео из имени файла.)
# возмножно с помощью awk

# Функция для скачивания файлов
files() {
    # Проверка наличия файла для пакетного скачивания
    if [ -e load.txt ]
    then
        # Открытие файла для пакетного скачивания в nano
        nano load.txt
        echo "Начинается загрузка файлов."
        echo
        aria2c --max-connection-per-server=4 --min-split-size=1M -c -i load.txt
    else
        echo
        echo "В папке $(pwd) нет файла load.txt. Возможна, произошла какая-то ошибка."
        echo
    fi
}

# Функция для скачивания и конвертации видео
vids() {
    # Проверка наличия файла для пакетного скачивания
    if [ -e videos.txt ]
    then
        # Открытие файла для пакетного скачивания в nano
        nano videos.txt
        echo "Начинается загрузка и конвертация видео."
        echo
        youtube-dl --extract-audio --audio-format mp3 --audio-quality 0 -c --batch-file videos.txt
    else
        echo
        echo "В папке $(pwd) нет файла videos.txt. Возможна, произошла какая-то ошибка."
        echo
    fi
}


# ==========
# Начало скрипта
# ==========
echo
echo "Переход в папку ~/Desktop/Подкасты/"
echo
cd ~/Desktop/Подкасты/

# Перебор значений параметра, переданного скрипту
case "$1" in
    # Ветка для скачивания файлов
    file)
        files
        ;;
    # Ветка для скачивания и конвертации видео
    vids)
        vids
        ;;
    # По умолчанию предполагается, что скачиваем файлы
    *)
        echo "Не указан параметр загрузки (files или vids). Используется параметр files."
        echo
        read
        files
        ;;
esac