spotify-to-plex
Keep your Spotify playlists perfectly synced with Plex automatically, so you can enjoy your music library across both platforms without manual work. Matching tracks and downloading anything missing through Lidarr, Slskd or Tidal.
파일 탐색기
최종 버전 다운로드 (.zip)- pages.yml
- FUNDING.yml
- .env.example
- app.py
- docker-compose.yml
- docker-entrypoint.sh
- Dockerfile
- README.md
- requirements.txt
- spotify_scraper_service.py
- savedItemsHelpers.ts
- albums.ts
- lidarr.ts
- mqtt.ts
- playlists.ts
- slskd.ts
- users.ts
- buildCategoriesEntity.ts
- buildEntity.ts
- config.ts
- createCategoriesDiscoveryConfig.ts
- createDiscoveryConfig.ts
- createDiscoveryTopic.ts
- createEntityId.ts
- createMQTTClient.ts
- createMQTTPublisher.ts
- createStatePayload.ts
- createStateTopic.ts
- extractPlexMediaId.ts
- findAlbumPlexId.ts
- findItemsToRemove.ts
- findPlaylistPlexId.ts
- getCategoriesDiscoveryTopic.ts
- getCategoriesStateTopic.ts
- loadMQTTData.ts
- loadPreviousItems.ts
- savePublishedItems.ts
- types.ts
- writeDryRunManifest.ts
- clearSyncTypeLogs.ts
- completeSyncType.ts
- errorSyncType.ts
- findMissingTidalAlbums.ts
- findMissingTidalTracks.ts
- getCachedPlexTracks.ts
- getNestedSyncLogs.ts
- getNestedSyncLogsForType.ts
- getPlexPlaylists.ts
- getSavedAlbums.ts
- getSavedPlaylists.ts
- getSyncTypeLogs.ts
- loadSpotifyData.ts
- putPlexTracks.ts
- saveNestedSyncLogs.ts
- saveSyncTypeLogs.ts
- startSyncType.ts
- updateSyncTypeProgress.ts
- scheduler.ts
- package.json
- tsconfig.json
- tsconfig.production.json
- index.tsx
- match-filters.tsx
- search-approaches.tsx
- test.tsx
- text-processing.tsx
- index.tsx
- logs.tsx
- settings.tsx
- syncing.tsx
- url.ts
- verify.ts
- index.ts
- profiles.ts
- send-album.ts
- settings.ts
- test-connection.ts
- valid.ts
- [id].ts
- index.ts
- match-filters.ts
- reset.ts
- search-approaches.ts
- text-processing.ts
- analyze.ts
- cached.ts
- files.ts
- image.ts
- resources.ts
- search.ts
- tracks.ts
- index.ts
- analyze.ts
- cached.ts
- index.ts
- queue.ts
- search.ts
- send-track.ts
- settings.ts
- test-connection.ts
- valid.ts
- [id].ts
- [id].ts
- items.ts
- login.ts
- token.ts
- track.ts
- users.ts
- [type].ts
- availability.ts
- analyze.ts
- cached.ts
- index.ts
- valid.ts
- logs.ts
- settings.ts
- [id].tsx
- _app.tsx
- _document.tsx
- index.tsx
- manage-users.tsx
- favicon-16x16.png
- favicon-32x32.png
- logo.png
- plex.png
- spotify.png
- ConfirmationDialog.tsx
- ConfirmContext.tsx
- ConfirmProvider.tsx
- types.ts
- ErrorContext.tsx
- ErrorProvider.tsx
- types.ts
- MusicSearchConfigLayout.tsx
- ProcessingStep.tsx
- SearchApproachCard.tsx
- AddPill.tsx
- FieldPill.tsx
- FieldSelectorPopup.tsx
- OperationSelectorPopup.tsx
- BMoment.tsx
- BSnackbarProvider.tsx
- ExportMissingTracks.tsx
- LidarrAlbumDialog.tsx
- LidarrSettings.tsx
- Logo.tsx
- Logs.tsx
- ManagePlaylistItem.tsx
- ManagePlaylists.tsx
- ManageUsers.tsx
- MissingTrack.tsx
- MonacoJsonEditor.tsx
- PillEditor.tsx
- PlaylistSyncSettings.tsx
- PlexConnection.tsx
- PlexConnectionDialog.tsx
- PlexPlaylist.tsx
- PlexTrack.tsx
- SlskdSettings.tsx
- SpotifyNavigation.tsx
- SyncTrigger.tsx
- TableEditor.tsx
- TrackAnalyzer.tsx
- UserItems.tsx
- UserSyncSettings.tsx
- errorBoundary.tsx
- generateError.ts
- getErrorMessage.tsx
- getErrorStack.tsx
- useConfigEditor.ts
- MainLayout.tsx
- app.scss
- MatchFilterTypes.ts
- createEmotionCache.ts
- expressionToPills.ts
- pillsToExpression.ts
- .env.example
- next-env.d.ts
- next.config.js
- package.json
- tsconfig.build.json
- tsconfig.json
- base.json
- react.json
- app_overview.jpg
- clear_cache.jpg
- lidarr_dialog.jpg
- lidarr_settings.jpg
- logo.png
- spotify_app_1.jpg
- spotify_app_2.jpg
- spotify_users.jpg
- sync_playlist.jpg
- track_analyzer.jpg
- index.md
- lidarr.md
- mqtt.md
- slskd.md
- tidal.md
- app-setup.md
- authentication.md
- index.md
- users.md
- _config.yml
- callback.html
- Gemfile
- googleef26e963e7fefa12.html
- index.md
- installation.md
- matching.md
- quick-start.md
- synchronization.md
- forwardref-props-destructuring.js
- jsx-multiline-children.js
- jsx-single-line-props.js
- no-export-only-files.js
- one-line-if.js
- simple-ternary-max-length.js
- index.js
- logo.psd
- axiosDelete.ts
- axiosGet.ts
- axiosPost.ts
- axiosPut.ts
- AxiosRequest.ts
- plexTvClient.ts
- package.json
- tsconfig.json
- default-config.ts
- getState.ts
- setState.ts
- stateInstance.ts
- types.ts
- getMatchFilters.ts
- getMusicSearchConfig.ts
- getRuntimeFilters.ts
- getSearchApproaches.ts
- getTextProcessing.ts
- parseExpression.ts
- readJSON.ts
- resetToDefaults.ts
- search.ts
- setConfig.ts
- setMusicSearchConfig.ts
- updateMatchFilters.ts
- updateSearchApproaches.ts
- updateTextProcessing.ts
- MatchFilter.ts
- MusicSearchConfig.ts
- RuntimeMatchFilter.ts
- SearchApproachConfig.ts
- SearchConfig.ts
- TextProcessingConfig.ts
- Track.ts
- compareTitles.ts
- createSearchString.ts
- filterOutWords.ts
- removeFeaturing.ts
- validateSearchApproach.ts
- validateSearchApproaches.ts
- validateTextProcessing.ts
- package.json
- tsconfig.json
- addPlaylist.ts
- getLidarrSettings.ts
- getPlaylists.ts
- getSettings.ts
- getSlskdSettings.ts
- removePlaylist.ts
- updateLidarrSettings.ts
- updatePlaylist.ts
- updateSettings.ts
- updateSlskdSettings.ts
- LidarrSettings.ts
- PlaylistItem.ts
- PlexConfigOptions.ts
- PlexPlaylists.ts
- PlexSettings.ts
- PlexSettingsUpdate.ts
- SlskdSettings.ts
- fileUtils.ts
- package.json
- tsconfig.json
- addItemsToPlaylist.ts
- putPlaylistPoster.ts
- removeItemsFromPlaylist.ts
- storePlaylist.ts
- updatePlaylist.ts
- createDelay.ts
- getPlexUri.ts
- validatePlexSettings.ts
- PlaylistItem.ts
- PlaylistUpdateData.ts
- PlexConnectionError.ts
- PlexPlaylistError.ts
- PlexSettings.ts
- retry.ts
- RetryConfig.ts
- package.json
- README.md
- tsconfig.json
- getAlbumTracks.ts
- getMetadata.ts
- hubSearch.ts
- analyze.ts
- getById.ts
- getMetaData.ts
- newTrackSearch.ts
- search.ts
- searchAlbum.ts
- state.ts
- HubSearchAlbumResult.ts
- HubSearchResult.ts
- HubSearchTrackResult.ts
- GetPlaylistResponse.ts
- GetPlexPinResponse.ts
- Hub.ts
- HubSearchResponse.ts
- Media.ts
- MediaPart.ts
- Metadata.ts
- Playlist.ts
- PostPinResponse.ts
- PlexMusicSearchApproach.ts
- PlexMusicSearchConfig.ts
- PlexMusicSearchTrack.ts
- PlexTrack.ts
- SearchResponse.ts
- hubSearchToPlexTrack.ts
- searchForAlbum.ts
- searchForAlbumTracks.ts
- searchForTrack.ts
- searchResultToTracks.ts
- getAPIUrl.ts
- package.json
- README.md
- tsconfig.json
- MatchFilterConfig.ts
- sync.ts
- track.ts
- MQTTItem.ts
- PlaylistData.ts
- PlaylistItem.ts
- LidarrAddAlbumRequest.ts
- LidarrAlbumData.ts
- LidarrSearchResult.ts
- LidarrSyncLog.ts
- LidarrLookupResult.ts
- MusicBrainzReleaseResponse.ts
- MusicBrainzTextSearchResponse.ts
- MusicBrainzUrlResponse.ts
- DiscoveryMetadata.ts
- DiscoverySearchResult.ts
- DiscoverySearchResultGroup.ts
- GetPlaylistResponse.ts
- GetPlexPinResponse.ts
- GetUserResponse.ts
- Hub.ts
- HubSearchResponse.ts
- Media.ts
- MediaPart.ts
- Metadata.ts
- Playlist.ts
- PostPinResponse.ts
- SlskdSyncLog.ts
- SlskdTrackData.ts
- Album.ts
- GetSpotifyAlbum.ts
- GetSpotifyPlaylist.ts
- GetSpotifyScraperData.ts
- RecentPlayedContext.ts
- SavedItem.ts
- SpotifyAlbum.ts
- SpotifyArtist.ts
- SpotifyCredentials.ts
- SpotifyImage.ts
- SpotifyOwner.ts
- SpotifyScraperTrack.ts
- SpotifyUser.ts
- Track.ts
- package.json
- tsconfig.json
- filterUnique.ts
- getCachedTrackLink.ts
- getMusicBrainzCache.ts
- rateLimitDelay.ts
- withRetry.ts
- getLidarrAlbum.ts
- getMusicBrainzIds.ts
- getMusicBrainzIdsByTextSearch.ts
- lookupLidarrAlbum.ts
- monitorAndSearchAlbum.ts
- validateMusicBrainzMatch.ts
- compareTitles.ts
- createSearchString.ts
- removeFeaturing.ts
- constants.ts
- decrypt.ts
- encrypt.ts
- getAccessToken.ts
- getLikedSongs.ts
- getSpotifyData.ts
- getSpotifyPlaylist.ts
- refreshAccessTokens.ts
- getAPIUrl.ts
- getStorageDir.ts
- getMatchFilterValidationErrors.ts
- validateExpression.ts
- validateMatchFilterConfig.ts
- validateMatchFilters.ts
- ValidationResult.ts
- package.json
- tsconfig.json
- api.ts
- queueDownload.ts
- analyze.ts
- newTrackSearch.ts
- search.ts
- credentials.ts
- state.ts
- SearchQuery.ts
- SearchResponse.ts
- SlskdCredentials.ts
- SlskdFile.ts
- SlskdFileAttribute.ts
- SlskdMusicSearchApproach.ts
- SlskdMusicSearchConfig.ts
- SlskdMusicSearchTrack.ts
- SlskdSearchRequest.ts
- SlskdSearchResponse.ts
- SlskdTrack.ts
- combinedFolder.ts
- filenameArtistTitle.ts
- hierarchicalFolder.ts
- helpers.ts
- types.ts
- extractMetadata.ts
- searchForTrack.ts
- slskdResultToTracks.ts
- index.ts
- .gitignore
- package.json
- README.md
- tsconfig.json
- analyze.ts
- newTrackSearch.ts
- search.ts
- searchAlbum.ts
- credentials.ts
- state.ts
- SearchResponse.ts
- TidalAlbum.ts
- TidalAPI.ts
- TidalMusicSearchApproach.ts
- TidalMusicSearchConfig.ts
- TidalMusicSearchTrack.ts
- TidalTrack.ts
- getAlbumTracksIds.ts
- getTrackByIds.ts
- searchAlbum.ts
- searchTracks.ts
- getAlbumTracks.ts
- searchForAlbum.ts
- searchForTrack.ts
- searchResultToTracks.ts
- tidalApiRequest.ts
- package.json
- tsconfig.json
- supervisord.conf
- .dockerignore
- .gitignore
- .npmignore
- .npmrc
- docker-entrypoint.sh
- Dockerfile
- eslint.config.mjs
- LICENSE
- package.json
- pnpm-lock.yaml
- pnpm-workspace.yaml
- README.md
- tsconfig.base.json
- tsconfig.json
- tsconfig.root.json
- turbo.json
# 설치 가이드
1. 코드 내려받기
git clone https://github.com/jjdenhertog/spotify-to-plex
깃허브에서 프로젝트 코드 전체를 내 컴퓨터로 내려받습니다.
cd spotify-to-plex
방금 내려받은 프로젝트 폴더 안으로 이동합니다.
2. Docker
쉬움 추천사전 준비물
- Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
- Docker Desktop 컨테이너를 빌드하고 실행하려면 필요합니다. 설치 후 실행해서 백그라운드에 켜두세요.
docker run -d \
빌드된 이미지를 실제 컨테이너로 실행합니다.
터미널에 docker compose ps 를 입력해 컨테이너들이 Up 상태인지 확인하세요. README에 포트 번호가 적혀있다면 브라우저에서 http://localhost:포트번호 로 접속해보세요.
이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.
3. Node.js
쉬움사전 준비물
cd apps/sync-worker
이 프로젝트의 관련 파일이 하위 폴더 안에 있어서, 먼저 그 폴더로 이동합니다.
npm install
package.json에 명시된 라이브러리들을 내려받아 설치합니다.
npm start
개발/실행 서버를 켭니다.
명령어 실행 후 터미널에 나타나는 주소(보통 http://localhost:3000 형태)를 브라우저에서 열어보세요.
4. Python
쉬움사전 준비물
⚠️ 이 프로젝트는 규모가 큰 저장소라, 이 방법이 실제 핵심 제품이 아니라 내부 하위 패키지를 가리키는 것일 수 있습니다. README 전체를 함께 확인해보세요.
pip install -r apps/spotify-scraper/requirements.txt
requirements.txt 등에 명시된 파이썬 라이브러리를 설치합니다.
python <실행할 파일명>.py # README에서 정확한 실행 파일명을 확인하세요
파이썬 스크립트(또는 모듈)를 실행합니다.
에러 메시지 없이 실행되고 터미널에 안내 문구가 출력되면 정상입니다.
// repository documentation
Was this content helpful?
(0 ratings)
