dietrichm / admirer Goto Github PK
View Code? Open in Web Editor NEW๐ ๐ถ Sync loved tracks between music services.
Home Page: https://dietrichm.github.io/admirer/
License: MIT License
๐ ๐ถ Sync loved tracks between music services.
Home Page: https://dietrichm.github.io/admirer/
License: MIT License
Set synchronization options in a config file, avoiding passing source/target service names, limits and datetimes as command line options for every sync.
Thinking of building a separate web-based front-end, Admirer should or could expose its functionality currently available through CLI commands over a small HTTP API.
Store service secrets in the operating system's keychain.
The sync
command is the most important feature of this tool.
Given a limited number of recently loved tracks on one service, query and mark as loved the same tracks on another service.
Synchronization should work in any direction.
Currently syncing works on the last x amount of loved tracks on the source service. However for a lot of use cases it would be easier to sync tracks since the previous sync.
As both Last.fm and Spotify keep a datetime a track was added, we could run a sync for tracks up to the last synced track, given we save said datetime in a persistent state.
Currently, the API client and secret have to be set in environment variables. This is not the most user friendly approach.
Better would be to query for the ID and secret during the service login flow, and read/write both values from/to the existing secrets file.
Build binaries for Linux and others.
Check what needs to happen for Windows. Configuration directory path will need fixing:
https://github.com/dietrichm/admirer/blob/main/infrastructure/config/loader.go#L21
Every OAuth2 authentication flow redirects to the non existing https://admirer.test
.
Let's complete the flow by spinning up a HTTP server on a random port and let the browser redirect back there, so Admirer picks up the OAuth2 token automatically.
Various errors (depending on the service) are being returned when using list
or sync
before logging in.
ListenBrainz has a notion of loved and hated tracks used for recommendations.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.