Comment transférer vos morceaux préférés sur Spotify gratuitement en utilisant Javascript

Tous les mélomanes de Russie attendaient avec impatience le lancement de Spotify sur notre marché. Lorsque cela s'est finalement produit, les utilisateurs ont été confrontés au problème du transfert de musique à partir d'autres services. Personnellement, au fil des ans, j'ai accumulé une énorme collection de musique sur différentes plateformes: Yandex.Music, VKontakte, une collection personnelle sur un disque dur et un cloud sur Yandex.Disk.



Au début, j'ai pensé à utiliser des services comme Soundiiz et TuneMyMusic. Mais inspiré par un article sur l'utilisation de Python dans le même but , je me suis intéressé à résoudre ce problème en utilisant Javascript. Ensuite, je décrirai une série d'étapes simples avec le code source pour vous aider à transférer votre musique de différentes sources vers Spotify.





Donc, pour commencer, nous avons besoin de trois choses: Node.js, navigateur Google Chrome et sources de script .



Et installez les dépendances, bien sûr.



Allez à la racine du projet et exécutez la commande:



npm i


C'est fini?



Ok, passons à autre chose.



Tout d'abord, nous devons obtenir une liste de pistes.



Avertissement:

, , .

, .

.



En contact avec



Au fil des années d'utilisation de ce réseau social, la liste des pistes s'est régulièrement renouvelée. Je pense que beaucoup ont la même situation.



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). . .



! )




All Articles