So übertragen Sie Ihre Lieblingssongs kostenlos mit Javascript auf Spotify

Alle Musikliebhaber in Russland haben sich auf die Einführung von Spotify auf unserem Markt gefreut. Als dies schließlich geschah, standen die Benutzer vor dem Problem, Musik von anderen Diensten zu übertragen. Persönlich habe ich im Laufe der Jahre eine riesige Sammlung von Musik auf verschiedenen Plattformen gesammelt: Yandex.Music, VKontakte, eine persönliche Sammlung auf einer Festplatte und eine Cloud auf Yandex.Disk.



Zuerst dachte ich daran, Dienste wie Soundiiz und TuneMyMusic zu nutzen. Inspiriert von einem Artikel über die Verwendung von Python für den gleichen Zweck , wurde ich daran interessiert, dieses Problem mit Javascript zu lösen. Als Nächstes beschreibe ich eine Reihe einfacher Schritte mit Quellcode, mit denen Sie Ihre Musik von verschiedenen Quellen auf Spotify übertragen können.





Um loszulegen, benötigen wir drei Dinge: Node.js, Google Chrome-Browser und Skriptquellen .



Und natürlich Abhängigkeiten installieren.



Gehen Sie zum Stammverzeichnis des Projekts und führen Sie den folgenden Befehl aus:



npm i


Ist es fertig?



Ok, lass uns weitermachen.



Zunächst müssen wir eine Liste der Titel erhalten.



Haftungsausschluss:

, , .

, .

.



In Kontakt mit



Im Laufe der Jahre, in denen dieses soziale Netzwerk genutzt wurde, wurde die Liste der Titel ständig erweitert. Ich denke, dass viele die gleiche Situation haben.



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