MarshalX / yandex2spotify

Simple Python script that allow to import music from Yandex.Music to Spotify
https://yandex-music.rtfd.io
MIT License
230 stars 24 forks source link
python spotify yandex-music

yandex2spotify

A simple Python script that allows to import favorite tracks, playlists, albums, and artists from Yandex.Music to Spotify

Installation

Requires Python 3.8 or higher.

pip3 install -r requirements.txt

Usage

0) Register a dummy Spotify OAuth application and add https://open.spotify.com as a callback URI in its settings.

1) Obtain a Yandex.Music OAuth token.[^1]

2) Run the script using Client ID and Client Secret copied from your app's Spotify dashboard:

python3 importer.py --id <spotify_client_id> --secret <spotify_client_secret> -u <spotify_username> -t <yandex_token>

3) If you don't want to import some items (likes, playlists, albums, artists) you can exclude them by specifying the -i/--ignore argument, for example:

python3 importer.py --id <spotify_client_id> --secret <spotify_client_secret> -u <spotify_username> -t <yandex_token> -i playlists albums artists

4) After launch, script will open the web browser with authorization dialog. After finishing authorization, you need to copy resulting URL, close browser tab and paste that URL after Enter the URL you were redirected to:

5) If authorization succeed - you will see log of import process.

JSON import is also available. Use --json-path or -j to specify path to JSON file in format described below.

[
    {
        "artist": "Artist Name",
        "track": "Track Name"
    },
    {
        "artist": "Artist Name",
        "track": "Track Name"
    },
    ...
]

[^1]: Since it's impossible to register an OAuth application with Yandex.Music access scope, you have to reuse the token from music.yandex.ru itself.