Semua pecinta musik di Rusia telah menantikan peluncuran Spotify di pasar kami. Ketika ini akhirnya terjadi, pengguna dihadapkan pada masalah mentransfer musik dari layanan lain. Secara pribadi, selama bertahun-tahun, saya telah mengumpulkan banyak koleksi musik di berbagai platform: Yandex.Music, VKontakte, koleksi pribadi di hard drive, dan cloud di Yandex.Disk.
Awalnya saya berpikir untuk menggunakan layanan seperti Soundiiz dan TuneMyMusic. Tetapi terinspirasi oleh artikel tentang menggunakan Python untuk tujuan yang sama , saya menjadi tertarik untuk memecahkan masalah ini menggunakan Javascript. Selanjutnya, saya akan menjelaskan serangkaian langkah sederhana dengan kode sumber untuk membantu Anda mentransfer musik dari berbagai sumber ke Spotify.

Jadi, untuk memulai, kita memerlukan tiga hal: Node.js, browser Google Chrome, dan sumber skrip .
Dan instal dependensi, tentu saja.
Kami pergi ke root proyek dan menjalankan perintah:
npm i
Apakah sudah selesai?
Oke, ayo lanjutkan.
Pertama-tama, kita perlu mendapatkan daftar trek.
, , .
, .
.
Berhubungan dengan
Selama bertahun-tahun menggunakan jejaring sosial ini, daftar trek terus diisi ulang. Saya pikir banyak yang memiliki situasi yang sama.
DOM-, . , , .
, . (F12) , src/grabTracksVk.js. Enter.
.
.
, , . , , .. .
API. DOM- .
: https://yandex.ru/dev/disk/poligon
" OAuth ".
src/grabTracksYandexDisk.js.
const token = ''
.
:
const token = 'AgAAAAACbokuAADL45FDSww2d3SDSffddwAAAAA';
, , , , , . onlyArtist, true.
:
node ./src/grabTracksYandexDisk.js
collection-yandex-disk.txt.
. API ( ):
https://cloud-api.yandex.net/v1/disk/resources/files
media type, .
. , . , , , Spotify ( ) .
β , , .
, src/grabTracksFileSystem.js.
const rootPath = ''
, .
:
const rootPath = 'D:/Music/Metal';
.
mask . .
:
const mask = ['.mp3', '.flac'];
onlyArtist , . , , true.
:
node ./src/grabTracksFileSystem.js
collection-fs.txt.
.
. . API, , , DOM-. , DOM- 150 , . , .
( ):
, , DOM- . , .
, send XMLHttpRequest.
. β . β !
, :
., " " β , " " β (, ). .
, src/grabTracksYandexMusic Enter.
.
.
P.S.: .
, .
Apple Music
, , . DOM, . , . , ..
, , . , src/grabTracksAppleMusic.js.
.
Spotify
, , Spotify.
Spotify API . . .
: https://developer.spotify.com/dashboard
"Create an app", . . Client ID Client Secret.
src/getSpotifyToken.js client_id client_secret. .
redirect_uri.
"Edit settings". "Redirect URIs", http://localhost:8888/callback. "Save" .
!
tracks.txt, , . .
:
Slaughter To Prevail - Misery Sermon
Grim Christmas - Jingle Bells
Novembers Doom - Rain
: ./src/getSpotifyToken.js. Spotify .
:
node ./src/getSpotifyToken.js
Spotify. .
: access token: < > refresh token: < >.
. , .
src/addTracksToSpotify.js.
const accessToken = ''
. :
node ./src/addTracksToSpotify.js
.
( : - , , ).
spotify-tracks-no-found.txt, Spotify .
, , ( ).
artists.txt, .
.
:
Bob Dylan
Slaughter To Prevail
Novembers Doom
, , src/addArtistsToSpotify.js.
, :
node ./src/addTracksToSpotify.js
. - , spotify-artists-no-found.txt.
!
P.S.: , .
, Ctrl + A (Cmd + A). . .
! )