понедельник, 29 февраля 2016 г.

Как скачать альбом / трек с Яндекс.Музыки?

Поиск и загрузка контента в интернете - одна из наиболее распространенных задач, стоящий перед пользователями. Попробуйте набрать в поисковике что-нибудь вроде "как скачать песню из вконтакте" или "как скачать музыку из яндекс.музыки" и т.п., и вы убедитесь что эти запросы являются достаточно популярными, однако, толковых ответов на них нет. В большинстве руководств или ответов советуют использовать плагины для браузера, сторонние сайты, типа SaveFromNet и аналогичных, либо и вовсе установить какое-либо стороннее ПО типа "ЛовиСуперМузыку". Ни один из предложенных подходов лично мне не нравится - если с сайтами типа SaveFromNet и аналогичными все еще куда ни шло, т.е. максимум что требуется от нас как от пользователя - скопировать в специальное окно ссылку на источник контента, а затем просмотрев рекламу и т.п. получить прямую ссылку для скачивания того что нужно, то вот плагины для браузера или стороннее ПО с моей точки зрения представляют определенную брешь в безопасности. Где, например, гарантии что плагин скачанный с со стороннего сайта не отправляет ваши учетные данные куда-либо? (конечно можно его проанализировать, потратить время и т.п., но кто этим будет заниматься?), то же самое касается и мало распространенного ПО. Уже сколько было всевозможных историй о различных "закладках" и т.п. даже в популярных клиентах.

Выходом может быть использование скриптов с открытым исходным кодом для реализации поставленных задач. Что же касается именно Яндекс.Музыки, то для скачивания с этого сервиса есть превосходный проект Yandex Music Downloader на GitHub'е. Скрипт написан на Perl'е, поэтому, помимо скачивания самого скрипта нам потребуется еще и установить Perl, а также пару модулей к нему.

  1. Скачиваем архив с Yandex Music Downloader отсюда при помощи кнопки Download ZIP.
  2. Если у вас ОС Windows, то берем дистрибутив ActivePerl и устанавливаем его с настройками по-умолчанию. В моем случае использовалась 64-битная система, поэтому Perl по-умолчанию установился в C:\Perl64 .
  3. Затем переходим в C:\Perl64\bin\ и в консоли устанавливаем два пакета MP3-Tag-Utils и Getopt-Long-Descriptive, с помощью двух команд: ppm install MP3-Tag-Utils и ppm install Getopt-Long-Descriptive
  4. Затем копируем ya.pl в папку в которую мы будем скачивать музыку и запускаем его, чтобы посмотреть ключи запуска:

Как видим все достаточно просто, если мы хотим скачать альбом, то запускаем ya.pl с ключом -u и указываем URL к альбому. После чего у нас все успешно скачивается:


В результате скрипт у нас аккуратно все сложит в папку из которой он был запущен, проставит теги в MP3 и номера треков, вообщем, автоматически проделает всю рутинную работу за вас:


p.s. Я не призываю вас качать все и вся бесплатно в интернете, более того, я сам сторонник того, что если вам что-то нравится ПО или книга, или альбом какой-либо группы, то если позволяют возможности проще купить его и поддержать автора / исполнителя. К примеру, альбом, который мы рассматривали в посте у меня куплен в Google Play (цена символическая - 89 руб.):


Но некоторые вещи, к примеру, бывают выложены только на Яндекс.Музыке, а слушать онлайн не вариант, например, вы хотели бы записать композиции на обычный MP3 плеер, и в этом случае использование Yandex Music Downloader может стать незаменимым.

9 комментариев :

  1. мне тут больше нравиться
    https://github.com/egoroof/yandex-music-fisher

    ОтветитьУдалить
  2. Я бы вообще, с осторожностью, коннектился к этим серверам через мобильные устройства с симкартой, я уже не один раз попадал на деньги, в виде платных подписок с симкой мегафона, которая стоит в роутере и всё равно умудряются определить номер и подключить подписки. Пришлось яндекс-музыку забивать в блокировки. Так что осторожней.

    ОтветитьУдалить
  3. Пакет MP3-Tag-Utils не возможно установить через ppm! Пишет что не найден такой.

    ОтветитьУдалить
    Ответы
    1. Тем не менее такой пакет есть. Пруф. Вы можете просто запустить ppm и выбрать нужный пакет для установки в GUI интерфейсе.

      Удалить
  4. Этот пакет действительно не ставится в последней версии AP 5.24, в 5.22 поставилось норм.
    У автора наверняка версия более ранняя, да и пакет судя по всему уже стоит в системе. Сам столкнулся с этим, когда устанавливал по этой инструкции недавно, а ранее все установилось без проблем.

    ОтветитьУдалить
    Ответы
    1. Спасибо за замечание. Действительно, разные версии AP я не пробовал. На момент написания поста просто была взята последняя версия AP с официального сайта.

      Удалить
  5. Консоль сама закрывается после запуска ya.pl, как исправить?

    ОтветитьУдалить
    Ответы
    1. Ну, например, сначала запустить командный интерпретатор Win+R -> cmd [Enter] , и вводить все команды там, тогда окно консоли будет активным даже после выполнения команды.

      Удалить