hifi-download
Original:🇺🇸 English
Not Translated
29 scripts
Discover music, get personalized recommendations, and download high-fidelity audio files. Use when user wants to find new music based on their taste, search for songs/albums/artists, get recommendations similar to artists they like, or download lossless audio (FLAC/Hi-Res) from Qobuz or TIDAL. Trigger phrases include "find music like", "recommend songs", "download album", "lossless", "Hi-Res", "FLAC", "music discovery", "similar artists", "setup music".
1installs
Added on
NPX Install
npx skill4agent add psylch/hifi-download-skill hifi-downloadSKILL.md Content
MusicMaster
Music discovery (Spotify, Last.fm) and Hi-Res audio downloads (Qobuz, TIDAL) through a unified CLI.
All commands use , which activates the venv and runs the corresponding Python script. All scripts output structured JSON to stdout by default. Use for human-readable output. Errors are JSON on stderr with exit code 1 (recoverable) or 2 (unrecoverable).
bash ${SKILL_PATH}/run.sh <script> [args...]--format textFirst-Time Setup
Step 1: Check Dependencies
bash
bash ${SKILL_PATH}/scripts/setup.sh checkOutput is key=value pairs (this is a shell script, not a Python script). If , run install first.
VENV=missingStep 2: Install
bash
bash ${SKILL_PATH}/scripts/setup.sh install [--with-qobuz] [--with-tidal]Creates , installs core dependencies (, , , ), and optionally installs download backends.
.venvspotipypylastrequestspython-dotenvStep 3: Configure Credentials
IMPORTANT: Do NOT ask the user for credentials in chat. Instead:
- Create from template if not exists:
.envcp ${SKILL_PATH}/.env.example ${SKILL_PATH}/.env - Tell user to edit with their credentials
${SKILL_PATH}/.env - Wait for confirmation, then verify
Alternatively, use the config script:
bash
bash ${SKILL_PATH}/run.sh setup_config --lastfm-key=KEY [--spotify-id=ID --spotify-secret=SECRET] [--qobuz-email=EMAIL --qobuz-password=PASS]Where to get credentials:
- Spotify: https://developer.spotify.com/dashboard (free)
- Last.fm: https://www.last.fm/api/account/create (free)
- Qobuz: Requires Studio/Sublime subscription
- TIDAL: Run in venv for OAuth
tiddl auth login
Step 4: Verify
bash
bash ${SKILL_PATH}/run.sh statusReturns JSON with and sections showing service status (, , , ). Only use services with .
discoverydownloadsreadydisablednot_configurederror"available": trueService Types
| Type | Services | Purpose |
|---|---|---|
| Discovery | Spotify, Last.fm | Search, recommendations, similar artists |
| Downloads | Qobuz, TIDAL | High-quality audio (FLAC, Hi-Res) |
Discovery Commands
Last.fm — Similar Artists
bash
bash ${SKILL_PATH}/run.sh lastfm_artists "Radiohead"Returns JSON with array of similar artists (name, match score, URL).
resultsLast.fm — Similar Tracks
bash
bash ${SKILL_PATH}/run.sh lastfm_tracks "Karma Police" "Radiohead"Arguments: track name, then artist name.
Last.fm — Taste Profile
bash
bash ${SKILL_PATH}/run.sh lastfm_tasteAnalyzes Spotify listening history and returns JSON with and discovered via Last.fm.
similar_artistssimilar_tracksSpotify — Search
bash
bash ${SKILL_PATH}/run.sh spotify_search "OK Computer"Searches Spotify catalog. Returns JSON with array containing track/album/artist details.
resultsSpotify — User Library
bash
bash ${SKILL_PATH}/run.sh spotify_user tracks|artistsGets the user's top tracks or artists from Spotify (requires OAuth). Returns JSON with array.
resultsSpotify — Track/Album Info
bash
bash ${SKILL_PATH}/run.sh spotify_info SPOTIFY_URI_OR_IDDownload Commands
Search Platform Catalog
bash
bash ${SKILL_PATH}/run.sh platform_search "Album Name" -p qobuz|tidalSearches the download platform's catalog. Returns JSON with array containing IDs for use with download command.
resultsDownload (async — returns immediately)
bash
bash ${SKILL_PATH}/run.sh platform_download ID -p qobuz|tidal -t album|trackQueues the download in a background process and returns JSON with immediately. The agent is free to continue other work. Use to poll progress.
download_iddownload_statusTo block until the download completes (legacy behavior):
bash
bash ${SKILL_PATH}/run.sh platform_download ID -p qobuz -t album --syncCheck Download Status
bash
bash ${SKILL_PATH}/run.sh download_status DOWNLOAD_ID
bash ${SKILL_PATH}/run.sh download_status --all
bash ${SKILL_PATH}/run.sh download_status --activePoll the status of a specific download or list all downloads. Use to show only pending/in_progress tasks. Output is JSON by default; use for human-readable output.
--active--format textOpen Download Dashboard
bash
bash ${SKILL_PATH}/run.sh download_uiOpens a web dashboard at showing real-time download status with progress bars. Auto-refreshes every 3 seconds.
http://localhost:8765Service Management
Disable a Service
bash
bash ${SKILL_PATH}/run.sh disable_service spotify --reason "No account"Enable a Service
bash
bash ${SKILL_PATH}/run.sh enable_service spotifyWorkflow — Music Discovery
- Run to check available services
status - Use or
lastfm_artiststo find similar musiclastfm_tracks - Use to look up specific tracks/albums
spotify_search - Present results to user in a clear table format
- If user wants to download, use →
platform_searchplatform_download
Workflow — Download Hi-Res Audio
- Run to confirm download service is READY
status - Search:
platform_search "Album Name" -p qobuz - Present results with quality info
- Download: (returns download_id immediately)
platform_download ID -p qobuz -t album - Immediately open the download dashboard with so the user can see real-time progress — run this command in the background (use
download_uiin Bash) since the dashboard is a long-running server process that will block otherwiserun_in_background: true - Tell user the files will appear in the default download directory (or
~/Music/Qobuz)~/Music/TIDAL - Do NOT poll in a loop. The dashboard handles progress visualization — move on immediately after opening it. Only poll on behalf of the user if they explicitly ask you to check for them.
download_status
Error Handling
| Error | Detection | Resolution |
|---|---|---|
| Venv missing | | Run |
| Service not configured | | Guide user to edit |
| Spotify OAuth expired | stderr JSON with auth error (exit 1) | Run |
| TIDAL token expired | | Run |
| Service disabled by user | | Run |
| No results | JSON | Try different keywords or check service availability |
| Unrecoverable error | stderr JSON with | Fix root cause (missing credentials, broken install) |
Important Notes
- Spotify requires OAuth browser flow on first use (script handles this)
spotify_auth - TIDAL auth is managed by CLI tool, not stored in
tiddl.env - Qobuz credentials are stored in (sensitive — ensure file is in
.env).gitignore - Download paths default to and
~/Music/Qobuz~/Music/TIDAL - Quality settings: Qobuz 27=Hi-Res 24-bit (highest), TIDAL HiFi=lossless