1. PHP / Говнокод #27135

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 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 Ноября 2020

    Комментарии (38) RSS

    • SEO-пост.

      Метки: #yandex, #яндекс, #xepНЯ, #музыка, #mp3, #питушня, #хрюкни.
      Ответить
    • Вторую строчку следует читать как:
      $data = file_get_contents('https://api.music.yandex.net/users/[данные удалены]/playlists/[данные удалены]');


      Поторопился удалять данные и спутал запрос.
      Ответить
    • Ничего не понял. Переведи на «C++».
      Ответить
      • Та же хуйня с PHP.
        Ответить
      • > Найдётся всё.

        Утверждение не доказано. Переведи на "Coq".
        Ответить
        • Definition найдётся_всё: False.


          Логическая шутка
          Ответить
          • Наш лось.
            Ответить
            • Ты же не из Влади востока? или у вас на востоке все гда так пишут?
              Ответить
              • Не по нимаю о чём ты.
                Ответить
                • на, востоке, пре, обл, ада, ет, право, руль, ное, пись, мо
                  Ответить
                  •  
                    											екотсов ан оньлуроварп мешип ым ,адгокин как ыварп ыв
                    Ответить
                    • вы же дальний восток, а не ближний
                      Ответить
                    • Я не понимаю что тут написано (((
                      Ответить
                      •  
                        												овел ан ов арп с йатич орп
                        Ответить
                        • Вечно от меня что-то скрывают, вот и теперь даже комменты почитать не дают, какой багор (((
                          Ответить
                          • Если смотреть с платного аккаунта, белый текст в его комментариях становится читаемым.
                            Ответить
                            • Хорошо, что вовремя предупредил. Я сначала подумал, что он молоком печатает, уже было собрался расшифровывать...
                              Ответить
                          • Для того, чтобы прочитать комменты, возьмите простой советский Читать далее >>
                            Ответить
                          • Бб код и прокрути в право и про читай с пра во на лево
                            Ответить
                            • ((( рогаб йокак


                              P.S. Ладно, сдаюсь, я анскильный, не жить мне на дальнем вос-токе.
                              Ответить
                  • На Востоке, на Востоке
                    Что за небо без луны?
                    На Востоке, на Востоке
                    Что за жизнь без чайханы?
                    Ответить
              • Это нидлес?
                Ответить
            • Я тоже за лося. MP3 — отстой.
              Ответить
              • моя usb гарнитура за 800 рублей тоже за лося
                Ответить
              • Ты реально можешь отличить лося от 320 вслепую?
                Ответить
                • Я могу и могу отличить 1/4 полутона
                  Ответить
                  • > отличить 1/4 полутона

                    И сказать который из них выше?
                    Ответить
                    • ну 1/4 полутона это 25 центов
                      разница между равномерно темперированным строем и натуральным в зависимости от интервалов по модулю меньше 16 центов
                      и да, ты заметишь эту разницу в 15 центов
                      а потом смиришься с тем, что ма-те-ма-ти-ка не зря победила натуральный ряд
                      Ответить
          • s/Definition/Axiom/
            Ответить
    • И что?
      Ответить
    • Девки в озере купались
      SCP-166 нашли.
      Целый день они ████
      [ДАННЫЕ УДАЛЕНЫ]
      Ответить
    • До сих пор работает. Три мелкие поправки:
      -$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;
      +$url1 = 'https://music.yandex.ru/api/v2.1/handlers/track/' . $trackId . '%3A' . $albumId . '/web-own_playlists-playlist-track-main/download/m?hq=0&external-domain=music.yandex.ru&overembed=no&__t=' . $time;
      
      -$data = file_get_contents($url2);
      +$data = file_get_contents($url2, false, $context);
      
      -$url3 = 'https://' . $data->host . '/get-mp3/' . $hash . '/' . $data->ts . $data->path;
      +$url3 = 'https://' . $data->host . '/get-mp3/' . $hash . '/' . $data->ts . $data->path . '?track-id=' . $trackId . '&play=false';
      Ответить

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