Введение Link to heading

Иногда хочется скачивать треки в автоматическом режиме прямо на домашний сервер. Для браузеров на базе Chromium есть удобное расширение Yandex Music Downloader V3, которое умеет загружать музыку в FLAC и пакетом, но гораздо удобнее иметь аналог в командной строке.

Установка и настройка Link to heading

  1. Установите утилиту:

    pipx install git+https://github.com/llistochek/yandex-music-downloader.git
    
  2. Добавьте pipx в PATH:

    pipx ensurepath
    
  3. Получите токен. Есть несколько способов получения токена — я использовал способ «для продвинутых».

  4. Сохраните токен в файл:

    vim ~/.yandex_music_token
    chmod 600 ~/.yandex_music_token
    

    Сохранение токена в файле упростит дальнейший вызов утилиты.

Использование Link to heading

Простейшая команда для скачивания одного трека выглядит так:

yandex-music-downloader \
  --token "ваш_токен" \
  --quality 2 \
  --embed-cover \
  --cover-resolution original \
  --retry-delay 5 \
  --skip-existing \
  --only-music \
  --url https://music.yandex.ru/track/116054894

Чтобы не вводить всё это каждый раз, можно обернуть вызов в функцию вашей оболочки.

  1. Откройте файл ~/.bashrc или ~/.zshrc.

  2. Добавьте в конец или начало:

    ymdl() {
      if [[ "$1" != --* ]]; then
        url="$1"
        shift
      else
        url=""
      fi
    
      yandex-music-downloader \
        --token "$(cat ~/.yandex_music_token)" \
        --quality 2 \
        --embed-cover \
        --cover-resolution original \
        --retry-delay 5 \
        --skip-existing \
        --only-music \
        ${url:+--url "$url"} \
        "$@"
    }
    
  3. Примените изменения:

    source ~/.bashrc
    

    или

    source ~/.zshrc
    

Теперь можно скачивать треки, альбомы и плейлисты одной командой:

ymdl https://music.yandex.ru/album/18466774