No description
Find a file
2022-12-06 21:38:39 +07:00
LICENSE Изначальный коммит 2022-10-31 21:47:12 +07:00
main.py Оптимизация загрузки всех треков исполнителя 2022-12-06 21:38:39 +07:00
README.md Добавление флага --stick-to-artist 2022-12-06 11:06:52 +07:00
requirements.txt Изначальный коммит 2022-10-31 21:47:12 +07:00

yandex-music-downloader

Содержание

  1. О программе
  2. Установка
  3. Получение данных для авторизации
  4. Примеры использования
  5. Использование
  6. Спасибо
  7. Дисклеймер

О программе

Загрузчик, созданный вследствие наличия фатального недостатка в проекте yandex-music-download.

Возможности

  • Возможность загрузки:
    • Всех треков исполнителя
    • Всех треков из альбома
    • Всех треков из плейлиста
    • Отдельного трека
  • Загрузка всех метаданных трека/альбома:
    • Номер трека
    • Номер диска
    • Название трека
    • Исполнитель
    • Дополнительные исполнители
    • Год выпуска альбома
    • Обложка альбома
    • Название альбома
    • Текст песни (при использовании флага --add-lyrics)
  • Поддержка паттерна для пути сохранения музыки

Установка

Для запуска скрипта требуется Python 3.8+

git clone https://github.com/llistochek/yandex-music-downloader.git
cd yandex-music-download
pip install -r requirements.txt
python3 main.py

Получение данных для авторизации

Войдите в свой Яндекс аккаунт, затем проделайте следующие шаги:

Для Google Chrome/Chromium

  1. Перейдите на сайт Яндекс Музыки (https://music.yandex.ru)
  2. Нажмите F12
  3. Выберите вкладку Application
  4. Выберите пункт Cookies->https://music.yandex.ru
  5. Скопируйте значение куки (кликните на значение куки 2 раза -> Ctrl+C):
    • Куки Session_id - это аргумент --sesion-id

Для Firefox

  1. Перейдите на сайт Яндекс Музыки (https://music.yandex.ru)
  2. Нажмите F12
  3. Выберите вкладку Storage
  4. Выберите пункт Куки->https://music.yandex.ru
  5. Скопируйте значение куки (кликните на значение куки 2 раза -> Ctrl+C):
    • Куки Session_id - это аргумент --sesion-id

Примеры использования

Во всех примерах замените <ID сессии> на значение куки Session_id

Скачать все треки Twenty One Pilots в высоком качестве

python3 main.py --session-id '<ID Сессии>' --hq --url 'https://music.yandex.ru/artist/792433'

Скачать альбом Nevermind в высоком качестве, загружая тексты песен

python3 main.py --session-id '<ID Сессии>' --hq --add-lyrics --url 'https://music.yandex.ru/album/294912'

Скачать трек Seven Nation Army

python3 main.py --session-id '<ID Сессии>' --url 'https://music.yandex.ru/album/11644078/track/6705392'

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

usage: main.py [-h] [--hq] [--skip-existing]
               [--cover-resolution <Разрешение обложки>] [--add-lyrics]
               [--delay <Задержка>] [--add-version] [--stick-to-artist]
               [--log-level {CRITICAL,FATAL,ERROR,WARN,WARNING,INFO,DEBUG,NOTSET,VERBOSE}]
               (--artist-id <ID исполнителя> | --album-id <ID альбома> | --track-id <ID трека> | --playlist-id <владелец плейлиста>/<тип плейлиста> | -u URL)
               [--dir <Папка>] [--path-pattern <Паттерн>] --session-id <ID
               сессии> [--user-agent <User-Agent>]

Загрузчик музыки с сервиса Яндекс.Музыка

optional arguments:
  -h, --help            show this help message and exit

Общие параметры:
  --hq                  Загружать треки в высоком качестве (по умолчанию:
                        False)
  --skip-existing       Пропускать уже загруженные треки (по умолчанию: False)
  --cover-resolution <Разрешение обложки>
                        (по умолчанию: 400)
  --add-lyrics          Загружать тексты песен (по умолчанию: False)
  --delay <Задержка>    Задержка между запросами, в секундах (по умолчанию: 3)
  --add-version         Добавлять информацию о версии трека (по умолчанию:
                        False)
  --stick-to-artist     Загружать только альбомы созданные данным исполнителем
                        (по умолчанию: False)
  --log-level {CRITICAL,FATAL,ERROR,WARN,WARNING,INFO,DEBUG,NOTSET,VERBOSE}

ID:
  --artist-id <ID исполнителя>
  --album-id <ID альбома>
  --track-id <ID трека>
  --playlist-id <владелец плейлиста>/<тип плейлиста>
  -u URL, --url URL     URL исполнителя/альбома/трека/плейлиста

Указание пути:
  --dir <Папка>         Папка для загрузки музыки (по умолчанию: .)
  --path-pattern <Паттерн>
                        Поддерживает следующие заполнители: #number, #artist,
                        #album-artist, #title, #album, #year (по умолчанию:
                        #album-artist/#album/#number - #title)

Авторизация:
  --session-id <ID сессии>
  --user-agent <User-Agent>
                        по умолчанию: Mozilla/5.0 (X11; Linux x86_64)
                        AppleWebKit/537.36 (KHTML, like Gecko)
                        Chrome/106.0.0.0 Safari/537.36

Спасибо

Разработчикам проекта yandex-music-download. Оттуда был взят код хэширования.

Дисклеймер

Данный проект является независимой разработкой и никак не связан с компанией Яндекс.