goblin-malin
v0.1.14
Published
A keyboard-driven terminal UI for downloading and tagging music tracks with metadata from Spotify and YouTube
Maintainers
Readme
goblin-malin 😉
[!CAUTION] This project is in early, early, early development. Be aware that the data model can change drastically, making previous versions incompatible with the current one. Use at your own risk 😉
A keyboard-driven terminal UI for downloading and tagging music tracks with metadata. Import links from Spotify, YouTube, the app cross-references metadata across providers, finds the best download source (only yt-dlp for now), and saves it to disk with clean tags.
Installation
Installation with npm (RECOMMENDED)
- Install Node.js with
npm - Install with
npmnpm install -g goblin-malin goblin-malin # Run application
Installation with yarn
yarn global add goblin-malinOn windows:
$yarBin = "C:\Users\YOUR_USERNAME\AppData\Local\Yarn\bin"
$current = [System.Environment]::GetEnvironmentVariable("PATH", "User")
[System.Environment]::SetEnvironmentVariable("PATH", "$current;$yarBin", "User")Installation with pnpm
pnpm add -g goblin-malinInstallation on Windows
goblin-malin.exeSteps
- Import with
Ctrl+VURLs from compatible streaming platforms :Spotify(requires Spotify Premium Account to have full metadata)YouTube
- System fetches primary metadata from the corresponding URL platform
- System discovers the same track on other platforms (cross-referencing via ISRC or track/artist name)
- Filters/orders metadata sources by relevance or leaves the default ranking chosen by the system (use
TABkey to switch the focused window). - System downloads matching tracks from available download providers:
yt-dlp
- User selects the best download source and previews the audio
- User saves the file to the desired folder with embedded tags
Running the project as a developer
You can run the project as a developer:
- Clone the repository and open a terminal in the project directory
- Install Node.js and yarn
- Install dependencies in the project directory:
yarn install - Run the application:
yarn run dev
Launching the app through js code
Not customizable yet
import GoblinMalin from "goblin-malin";
GoblinMalin.start();