يتطلع جميع عشاق الموسيقى في روسيا إلى إطلاق Spotify في سوقنا. عندما حدث هذا أخيرًا ، واجه المستخدمون مشكلة نقل الموسيقى من الخدمات الأخرى. شخصيًا ، على مر السنين ، جمعت مجموعة ضخمة من الموسيقى على منصات مختلفة: Yandex.Music ، و VKontakte ، ومجموعة شخصية على محرك أقراص ثابتة وسحابة على Yandex.Disk.
في البداية فكرت في استخدام خدمات مثل Soundiiz و TuneMyMusic. لكن مستوحاة من مقال حول استخدام Python لنفس الغرض ، أصبحت مهتمًا بحل هذه المشكلة باستخدام Javascript. بعد ذلك ، سأصف سلسلة من الخطوات البسيطة باستخدام كود المصدر لمساعدتك على نقل الموسيقى الخاصة بك من مصادر مختلفة إلى Spotify.

لذلك ، للبدء ، نحتاج إلى ثلاثة أشياء: Node.js ومتصفح Google Chrome ومصادر البرامج النصية .
وتثبيت التبعيات بالطبع.
نذهب إلى جذر المشروع وننفذ الأمر:
npm i
هل تم ذلك؟
حسنًا ، دعنا ننتقل.
بادئ ذي بدء ، نحتاج إلى الحصول على قائمة بالمسارات.
, , .
, .
.
في تواصل مع
على مدار سنوات استخدام هذه الشبكة الاجتماعية ، تم تجديد قائمة المسارات بشكل مطرد. أعتقد أن الكثيرين لديهم نفس الوضع.
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). . .
! )