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

Написал небольшой скрипт-качалку для сервиса Яндекс.Музыка.
Скрипт позволяет скачивать как отдельные композиции, так и альбомы или плейлисты целиком. Интерфейс консольный и выглядит следующим образом:
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.

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

  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

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

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