Todos os amantes da música na Rússia estão ansiosos pelo lançamento do Spotify em nosso mercado. Quando isso finalmente aconteceu, os usuários enfrentaram o problema de transferir músicas de outros serviços. Pessoalmente, ao longo dos anos, acumulei uma enorme coleção de músicas em diferentes plataformas: Yandex.Music, VKontakte, uma coleção pessoal em um disco rígido e uma nuvem em Yandex.Disk.
A princípio pensei em usar serviços como Soundiiz e TuneMyMusic. Mas, inspirado por um artigo sobre como usar Python para o mesmo propósito , me interessei em resolver esse problema usando Javascript. A seguir, descreverei uma série de etapas simples com código-fonte para ajudá-lo a transferir sua música de diferentes fontes para o Spotify.
Portanto, para começar, precisamos de três coisas: Node.js, o navegador Google Chrome e fontes de script .
E instale dependências, é claro.
Vá até a raiz do projeto e execute o comando:
npm i
Está feito?
Ok, vamos em frente.
Em primeiro lugar, precisamos obter uma lista de faixas.
, , .
, .
.
Em contato com
Com o passar dos anos de uso dessa rede social, a lista de faixas tem sido constantemente renovada. Acho que muitos passam pela mesma situação.
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). . .
! )