Streamline is a project dedicated to bring the music to metadata - NOT the other way around.
Streamline works as an interface to the entire library catalog of MusicBrainz, and per user request, finding audio for the song or release requested by the user!
- Streamline itself runs on Node.js (v20 or higher), and uses
pnpmfor node package management. - Each plugin (i.e.
server/sources/slsk,server/sources/yt-dlp) has its own related configuration (typically they rely on a separate running HTTP server or local binary); implementations are declared inserver/config.example.js. For ease of access, some existing plugins are included and have examples included in the repository.
- The SoundCloud and YouTube example plugins both rely on yt-dlp at the latest version.
- The SoulSeek example plugin relies on slskd.
- The Qobuz example plugin uses Qobuz-DL.
- Configuring the Streamline server can be done from the
server/config.jsfile.server/config.example.jsis included with explanations for what your configuration should look like. - Add source plugins in the
server/sourcesfolder, then define and configure them inserver/config.js. Example plugins have already been included for ease of access! These plugins are example implementations for reference when creating your own, but they also work out of the box, as described. pnpm iwill install all of the node dependencies.
Ensure that your plugin APIs (e.g. slskd, Qobuz-DL) are running as well, and then run
pnpm run dev 🎉
Feel free to contribute!!