Качалка для сервиса Яндекс.Музыка

Написал небольшой скрипт-качалку для сервиса Яндекс.Музыка.
Скрипт позволяет скачивать как отдельные композиции, так и альбомы или плейлисты целиком. Интерфейс консольный и выглядит следующим образом:
ya-downloader-ui
В процессе работы:
ya-downloader-work

Скрипт использует сторонние модули (умеет определять их отсутствие и сообщать об этом) и портированный с JavaScript на Perl алгоритм хэширования Яндекса (находится в отдельном файле YaHash.pm), он необходим для скачивания трека.

В общем пользуйтесь.

Скачать: ya-music
GitHub: yandex-music-download

Update (23.01.15): Вышло обновление. Версия на GitHub тоже была обновлена.
Update (27.01.15): Добавлен прогресс бар, исправлена ошибка скачивания, если трек был удален с Яндекса: скачать.
Update (30.01.15): Что-то часто мелочи меняться стали. На данный момент актуальная версия на GitHub.
Update (21.04.20): Обновил README: добавил информацию по использованию для типичных систем и прочую атрибутику приличного оформления. Все как обычно на GitHub.

Качалка для сервиса Яндекс.Музыка: 279 комментариев

  1. Добрый день! А как получить auth cookie?
    [ERROR] Please, specify either mobile app auth header value (--auth) or web version auth cookie (--cookie)
    [ERROR] It is no longer possible to download full version of tracks without authentication

        1. А это только путем перехвата трафика мобильного приложения, чтобы получить значение HTTP-заголовка Authorization

  2. Здравствуйте!
    При попытке скачивания:
    C:/Perl64/_work_r/temp_ymdm/ya.pl -u https://music.yandex.ru/album/3943048 --mobile 0 --cookie "Session_id=3:1726584856.5.0.1726584856023:brO_Lg:b305.1.2:1|985285702.0.2.3:1726584856|3:10295419.527694.JBbDJC3efuRxvH_GJ8Lxas8IG6Y"
    возникает ошибка переименования:
    wide character in print at ... line 1273

  3. дополнительная информация
    с --debug:

    C:\Users\Valery\Music\Music_Yandex_Ru\Алёна Апина - Часть вторая>C:/Perl64/_work_r/temp_ymdm/ya.pl -u https://music.yandex.ru/album/3943048 --debug --mobile 0 --cookie "Session_id=3:1726584856.5.0.1726584856023:brO_Lg:b305.1.2:1|985285702.0.2.3:1726584856|3:10295419.527694.JBbDJC3efuRxvH_GJ8Lxas8IG6Y"
    [DEBUG] main::print_debug_info(1349): Yandex Music Downloader v1.5

    [DEBUG] main::print_debug_info(1350): OS: MSWin32; Path: C:\Perl64\bin\perl.exe; Version: v5.16.3
    [DEBUG] main::print_debug_info(1352): Cookie: Session_id=3:1726584856.5.0.1726584856023:brO_Lg:b305.1.2:1|985285702.0.2.3:1726584856|3:10295419.527694.JBbDJC3efuRxvH_GJ8Lxas8IG6Y
    [INFO] Fetching album info: 3943048
    [INFO] Album title: ╨Я╨╛╨╣╨┤╤С╨╝ ╤Б╨╛ ╨╝╨╜╨╛╨╣. ╨з╨░╤Б╤В╤М ╨▓╤В╨╛╤А╨░╤П/╨Ы╨╕╤А╨╕╤З╨╡╤Б╨║╨░╤П
    [INFO] Tracks total: 14
    [INFO] Trying to fetch track: ╨Р╨╗╤С╨╜╨░ ╨Р╨┐╨╕╨╜╨░ - ╨У╤А╨╡╤И╨╜╤Л╨╣ ╨╝╨╕╨│
    [DEBUG] main::get_track_url(720): Track url: https://s289vlx.storage.yandex.net/get-mp3/9a017499984dbe26f535c4c2a57769e3/000623900279c86c/rmusic/U2FsdGVkX1_y3ld44MoIoIxyi13E4uW4-iBvQPW6DmTh2yD19lnxZXiHJU_iIJWgXAgvw-JUGWVqqHniTCQ-FKYx6QshfMpKCynwyXKBRc8/786d48f5441db1c33e554510196267003e2c13fe153fb462149a88c03639a2c3/37803?track-id=32362876&from=service-10-track&similarities-experiment=default
    [DEBUG] main::download_track(594): File size from header: 5804826
    ...
    [OK] Temporary saved track at 69zm9A28wS
    [DEBUG] main::fetch_album_cover(1071): Cover URL: https://avatars.yandex.net/get-music-content/2355477/9dc1103f.a.3943048-4/400x400
    [DEBUG] main::fetch_track_lyrics(1092): Lyrics URL: https://music.yandex.ru/handlers/track.jsx?track=32362876:3943048&lang=ru&external-domain=music.yandex.ru&overembed=false&ncrnd=1727947681
    [DEBUG] main::write_mp3_tags(1040): add_frame: TRCK=1
    [DEBUG] main::write_mp3_tags(1040): add_frame: APIC=ARRAY(0x46d62b8)
    [DEBUG] main::write_mp3_tags(1040): add_frame: TYER=2003
    [DEBUG] main::write_mp3_tags(1040): add_frame: TIT2=╨У╤А╨╡╤И╨╜╤Л╨╣ ╨╝╨╕╨│
    [DEBUG] main::write_mp3_tags(1040): add_frame: TCON=rusestrada
    [DEBUG] main::write_mp3_tags(1040): add_frame: TPE1=╨Р╨╗╤С╨╜╨░ ╨Р╨┐╨╕╨╜╨░
    [DEBUG] main::write_mp3_tags(1040): add_frame: TPE2=╨Р╨╗╤С╨╜╨░ ╨Р╨┐╨╕╨╜╨░
    [DEBUG] main::write_mp3_tags(1040): add_frame: TALB=╨Я╨╛╨╣╨┤╤С╨╝ ╤Б╨╛ ╨╝╨╜╨╛╨╣.
    [INFO] MP3 tags added for 69zm9A28wS
    [DEBUG] main::rename_track(1173): CreateFileW failed with: ├С├и├▒├▓├е├м├е ├н├е ├│├д├а├е├▓├▒├┐ ├н├а├й├▓├и ├│├к├а├з├а├н├н├╗├й ├п├│├▓├╝
    [DEBUG] main::rename_track(1173): CreateFileW failed with: ├С├и├▒├▓├е├м├е ├н├е ├│├д├а├е├▓├▒├┐ ├н├а├й├▓├и ├│├к├а├з├а├н├н├╗├й ├п├│├▓├╝
    [DEBUG] main::rename_track(1173): CreateFileW failed with: ├С├и├▒├▓├е├м├е ├н├е ├│├д├а├е├▓├▒├┐ ├н├а├й├▓├и ├│├к├а├з├а├н├н├╗├й ├п├│├▓├╝
    [DEBUG] main::rename_track(1173): CreateFileW failed with: ├С├и├▒├▓├е├м├е ├н├е ├│├д├а├е├▓├▒├┐ ├н├а├й├▓├и ├│├к├а├з├а├н├н├╗├й ├п├│├▓├╝
    [DEBUG] main::rename_track(1173): CreateFileW failed with: ├С├и├▒├▓├е├м├е ├н├е ├│├д├а├е├▓├▒├┐ ├н├а├й├▓├и ├│├к├а├з├а├н├н├╗├й ├п├│├▓├╝
    [DEBUG] main::rename_track(1142): File manipulations failed
    [ERROR][INFO] Waiting for 5 seconds

  4. как вообще пользоваться? что делать? я нажал на файл появился какойто чат...там не по Русски, и кнопки скачать уже наконец мп3 нет=( помогите!

  5. Привет! Я так понимаю, проект заброшен, но все же попробую спросить)
    Поставил на макось скрипт, выковырял куки, в логах видно, что информация по треку получается, но до урла скачки не доходит... Есть шанс что-то сделать, или надо искать другую качалку?

    ./ya.pl -u https://music.yandex.ru/album/4144038/track/33850165\?utm_source\=desktop\&utm_medium\=copy_link --cookie $YA_COOKIE --debug
    [DEBUG] main::print_debug_info(1348): Yandex Music Downloader v1.5

    [DEBUG] main::print_debug_info(1349): OS: darwin; Path: /opt/homebrew/Cellar/perl/5.42.2/bin/perl; Version: v5.42.2
    [DEBUG] main::print_debug_info(1351): Cookie: 3:1775****8Hj_nd7K8
    [INFO] Fetching album info: 4144038
    [INFO] Album title: Hideout
    [INFO] Tracks total: 15
    [INFO] Filtering single track: 33850165 [4144038]
    [INFO] Trying to fetch track: L Plus, John B - Original 80's
    [DEBUG] main::get_track_url(709): Request failed
    [DEBUG] main::log_response(1338): Response stored at log_1775419148
    [ERROR] Can't get track url

    1. Привет. Есть браузерные качалки, которые работают. Если хочется что-то починить - необходимо смотреть, что там в файле log_1775419148 сохраняется и корректировать код в зависимости от

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *