Spotify ушел из России, заблокировав использование своего сервиса на территории страны. Эта статья для тех, кто не успел импортировать свои данные.

В сети есть способы по импорту данных из Spotify (встроенный сервис импорта существует и в Яндекс-музыке, сторонние сервисы, боты в Телеграмме), но все они работали до полной блокировки, когда сервис только объявил о своем уходе, дав какое-то время пользователям на перенос. Будучи студентом курса по php, я начал свои изыскания, итогом которых стала эта статья-инструкция, которая, надеюсь, пригодится еще не только мне.

  1. Заходим в приложение или на сайт Spotify, авторизируемся, идем по ссылке https://www.spotify.com/ru-ru/account/privacy/ и запрашиваем архив со своими личными данными, его сервис пришлет вам на указанную почту в течение какого-то времени.

  2. Создаем папку (репозиторий) для программы.

  3. Распаковываем полученный от Spotify архив, нужный нам файл - YourLibrary.json , копируем этот файл в репозиторий программы.

  4. Создаем в репозитории программы пустой файл results.txt

  5. Создаем в репозитории программы файл index.php , куда вставляем следующий код:

    <?php
    $json = file_get_contents(__DIR__ . '/YourLibrary.json');
    
    $data = json_decode($json, true);
    
    const RESULTS_PATH = __DIR__ . '/results.txt';
    
    foreach ($data['tracks'] as $index => $trackArray) {
        file_put_contents(RESULTS_PATH, $trackArray['artist'] . ' - ' . $trackArray['track'] . PHP_EOL, FILE_APPEND);
    }
    
    foreach ($data['albums'] as $index => $albumArray) {
        file_put_contents(RESULTS_PATH, $albumArray['artist'] . ' - ' . $albumArray['album'] . PHP_EOL, FILE_APPEND);
    }
    
  1. После отработки кода файл results.txt заполнится вашими данными в правильном формате для импорта в Яндекс-музыку.

  2. Заходим на сайт Яндекс-музыки, авторизируемся, далее идем по ссылке https://music.yandex.ru/import/, перетаскиваем из репозитория полученный файл results.txt в поле импорта музыкальных коллекций - вуаля! Ваши треки распознаны.

P.S.: Полезный скрипт для очистки плейлиста "мне нравится" на Яндекс-музыке на случай, если что-то пошло не так :)

Также для удобства добавляю ссылку на репозиторий с Гитхаба с вложенной инструкцией.

Комментарии (5)


  1. Dolios
    08.07.2022 01:22
    +10

    Прследние события показали, что я был прав: вся музыка должна лежать у вас на устройствах. Ретроград, говорили они...


  1. Funny_Meerkat
    08.07.2022 11:42

    Спасибо! Супруга не успела импортировать треки, а тут Ваша статья.


  1. Theio
    08.07.2022 18:38

    Если бы перенос ещё нормально работал, эх. Из плейлиста на 1300 треков осталось 900 :(

    Надо наконец доделать оффлайн библиотеку, но на шаге поиска, добавления и категоризации синглов что-то стало больно...


  1. kirahvi
    08.07.2022 21:48

    Когда я в апреле переносила данные из Spotify

    1) не было вывода по итогам импорта, какие треки успешно перенеслись, какие не нашлись

    2) не нашелся трек <Artist 1> <Track name> - вместо него был добавлен <Random Artist> <Track name> и таких замен больше, чем хотелось бы

    Я жаловалась в поддержку, обещали передать разработчикам и рассмотреть


  1. storoj
    09.07.2022 01:08
    +2

    Судя по тексту скрипта, файл YourLibrary.json имеет следующий формат:

    {
      "tracks": [
        {
          "artist": "...",
          "track": "..."
        },
        ...
      ],
      "albums": [
        {
          "artist": "...",
          "album": "..."
        },
        ...
      ]
    }
    

    Тогда можно обойтись только jq:

    jq -r '[(.tracks | map(.artist + " - " + .track)), (.albums | map(.artist + " - " + .album))][][]' YourLibrary.json