Написал небольшой скрипт-качалку для сервиса Яндекс.Музыка.
Скрипт позволяет скачивать как отдельные композиции, так и альбомы или плейлисты целиком. Интерфейс консольный и выглядит следующим образом:
В процессе работы:
Скрипт использует сторонние модули (умеет определять их отсутствие и сообщать об этом) и портированный с 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.
Добрый день! А как получить 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
Из браузера взять
Это куку можно из браузера, а
--auth STR
как?А это только путем перехвата трафика мобильного приложения, чтобы получить значение HTTP-заголовка
Authorization
И возникает такая ошибка)
Unknown option: c
Unknown option: o
Unknown option: o
Yandex Music Downloader v1.5
Может быть вместо
--cookie
было передано-cookie
Здравствуйте!
При попытке скачивания:
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
дополнительная информация
с --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