- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
<?php
$data = file_get_contents('https://music.yandex.ru/users/[данные удалены]/playlists/[данные удалены]');
$data = json_decode($data);
$tracks = $data->result->tracks;
$track = $tracks[$argv[1]]; // передаём номер песни из плейлиста
/* Step 1 */
$trackId = $track->track->id;
$albumId = $track->track->albums[0]->id;
$time = strval(time()) . '000';
$url1 = 'https://music.yandex.ru/api/v2.1/handlers/track/' . $trackId . '%3A' . $albumId . '/web-user_playlists-playlist-track-saved/download/m?hq=0&external-domain=music.yandex.ru&overembed=no&__t=' . $time;
$options['http']['header'] = "Accept: application/json; q=1.0, text/*; q=0.8, */*; q=0.1\r\n"
. "X-Retpath-Y: https%3A%2F%2Fmusic.yandex.ru%2F\r\n"
. "X-Requested-With: XMLHttpRequest\r\n"
. "User-Agent: Mozilla/5.0 [данные удалены]\r\n"
. "Cookie: [данные удалены]\r\n";
$context = stream_context_create($options);
$data = file_get_contents($url1, false, $context);
$data = json_decode($data);
/* Step 2 */
$time = strval(time()) . '000';
$url2 = 'https:' . $data->src . '&format=json&external-domain=music.yandex.ru&overembed=no&__t=' . $time;
$data = file_get_contents($url2);
$data = json_decode($data);
/* Step 3 */
$salt = 'XGRlBW9FXlekgbPrRHuSiA';
$hash = md5($salt . substr($data->path, 1) . $data->s);
$url3 = 'https://' . $data->host . '/get-mp3/' . $hash . '/' . $data->ts . $data->path;
$name = $track->track->title;
if(isset($track->track->version)) {
$name .= ' (' . $track->track->version . ')';
}
$artists = array();
foreach($track->track->artists as $artist) {
$artists[] = $artist->name;
}
$name = implode(',', $artists) . ' - ' . $name;
$name = strtr($name, ':/\\*?<|>', '________');
$name = str_replace('"', '”', $name);
$name = mb_substr($name, 0, 255-4);
copy($url3, $name . '.mp3');
Fainal_kantdaun 26.11.2020 10:53 # 0
Метки: #yandex, #яндекс, #xepНЯ, #музыка, #mp3, #питушня, #хрюкни.
Xepyc_DJIuHyc 26.11.2020 10:54 # +1
Fainal_kantdaun 26.11.2020 11:00 # 0
Поторопился удалять данные и спутал запрос.
gost 26.11.2020 12:12 # +4
tuberkulez 26.11.2020 12:42 # 0
bormand 26.11.2020 15:00 # +5
Утверждение не доказано. Переведи на "Coq".
CHayT 26.11.2020 15:55 # +3
Логическая шутка
MPA3b 26.11.2020 15:55 # +1
MAKAKA 26.11.2020 16:00 # +1
MPA3b 26.11.2020 16:02 # 0
jojaxon 26.11.2020 16:12 # +1
Xepyc_DJIuHyc 26.11.2020 16:28 # 0
MAKAKA 26.11.2020 16:32 # 0
oaoaoammm 26.11.2020 16:34 # 0
Xepyc_DJIuHyc 26.11.2020 16:38 # 0
oaoaoammm 26.11.2020 16:43 # 0
1024-- 26.11.2020 16:44 # +2
oaoaoammm 26.11.2020 16:54 # 0
MAKAKA 26.11.2020 16:51 # +4
TOPT 26.11.2020 16:58 # +1
oaoaoammm 26.11.2020 17:11 # 0
P.S. Ладно, сдаюсь, я анскильный, не жить мне на дальнем вос-токе.
Fainal_kantdaun 26.11.2020 20:20 # 0
Что за небо без луны?
На Востоке, на Востоке
Что за жизнь без чайханы?
guest6 26.11.2020 17:15 # 0
Fainal_kantdaun 26.11.2020 20:20 # +1
MAKAKA 26.11.2020 20:37 # +1
bormand 28.11.2020 11:15 # 0
TOPT 28.11.2020 12:14 # 0
bormand 28.11.2020 12:15 # 0
И сказать который из них выше?
defecate-plusplus 28.11.2020 16:25 # +1
разница между равномерно темперированным строем и натуральным в зависимости от интервалов по модулю меньше 16 центов
и да, ты заметишь эту разницу в 15 центов
а потом смиришься с тем, что ма-те-ма-ти-ка не зря победила натуральный ряд
guest3 28.11.2020 22:08 # 0
CHayT 26.11.2020 17:20 # +1
3_dar 26.11.2020 20:10 # 0
Fainal_kantdaun 26.11.2020 20:17 # +2
gost 27.11.2020 23:33 # 0
SCP-166 нашли.
Целый день они ████
[ДАННЫЕ УДАЛЕНЫ]
bormand 28.11.2020 11:14 # 0
Хм, я думал это рандомный номер, а там даже в тему.
guest3 28.11.2020 12:51 # 0
Fainal_kantdaun 28.06.2021 10:38 # 0
HoBorogHuu_nemyx 20.01.2022 21:58 # 0