원클릭으로
spotify-mp3-cli-downloader
CLI tool for downloading Spotify tracks and playlists as MP3 with embedded metadata and album artwork
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
CLI tool for downloading Spotify tracks and playlists as MP3 with embedded metadata and album artwork
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Orchestrate psychology clinic workflows with AI-powered scheduling, WhatsApp automation, AFIP billing, and video consultations for Argentine practitioners
SaaS platform for psychology clinics with intelligent scheduling, WhatsApp automation, AFIP billing, videollamadas, and Claude AI integration
Build and customize the Sesión mental health practice management platform with appointment scheduling, WhatsApp automation, AFIP billing, and Claude AI integration
Orchestrate psychology clinic operations with AI-powered scheduling, WhatsApp automation, AFIP billing, and secure video consultations for Argentine mental health practitioners
Connect AI agents to a running Tabbit browser instance via Chrome DevTools Protocol (CDP) and control it through agent-browser
AI-powered mental health practice management platform for Argentina with WhatsApp automation, AFIP-compliant invoicing, and video consultations
| name | spotify-mp3-cli-downloader |
| description | CLI tool for downloading Spotify tracks and playlists as MP3 with embedded metadata and album artwork |
| triggers | ["how do I download Spotify tracks to MP3","extract music from Spotify playlists","save Spotify songs with metadata","convert Spotify to local audio files","download Spotify playlist as MP3","archive Spotify music offline","use streamscribe cli","backup Spotify library to disk"] |
Skill by ara.so — Devtools Skills collection.
StreamScribe CLI (cli-sonic-harvester) is a command-line tool for extracting audio from Spotify, Deezer, Tidal, and Apple Music streams. It downloads tracks as MP3/FLAC files with full metadata preservation including ID3v2 tags, album artwork, track numbers, and genre information. Designed for archivists, DJs, and music collectors who need offline access with complete metadata integrity.
Primary Language: HTML (project page), but the tool itself runs via Python 3.10+ or Node.js 18+
Key Features:
# Verify Python version (3.10+ required)
python3 --version
# OR Node.js version (18+ required)
node --version
The tool is distributed via the project website:
# Download from official page
# Visit: https://guess-eng.github.io/cli-sonic-harvester/
# After download, make executable (Linux/macOS)
chmod +x streamscribe
# Move to PATH
sudo mv streamscribe /usr/local/bin/
# Verify installation
streamscribe --version
# Optional: Configure cache directory
export STREAMSCRIBE_CACHE="$HOME/.cache/streamscribe"
# Optional: Set proxy for restricted networks
export STREAMSCRIBE_PROXY="http://proxy.example.com:8080"
# Optional: Adjust stream timeout (default: 30 seconds)
export STREAMSCRIBE_TIMEOUT=60
# Download a single Spotify track (default quality)
streamscribe --url "https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp"
# Output location: ./StreamScribe/Output/Artist - Title.mp3
# Download entire playlist
streamscribe --playlist "https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M"
# Specify custom output directory
streamscribe --playlist "https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M" \
--output "$HOME/Music/Spotify/Playlists"
# Download full album with proper disc/track numbering
streamscribe --url "https://open.spotify.com/album/6DEjYFkNZh67HP7R9PSZvv" \
--metadata-extended
# 128 kbps MP3 - smallest file size
streamscribe --url "SPOTIFY_URL" --quality standard
# 256 kbps AAC/M4A - balanced quality/size
streamscribe --url "SPOTIFY_URL" --quality high
# FLAC lossless - maximum quality
streamscribe --url "SPOTIFY_URL" --quality archival
# Include composer, ISRC, label, and publisher info
streamscribe --url "SPOTIFY_URL" \
--metadata-extended \
--embed-artwork \
--overwrite
# Force ≥1200x1200 album art embedding
streamscribe --playlist "PLAYLIST_URL" \
--embed-artwork \
--artwork-size 1400
# Color-coded terminal output with progress bars
streamscribe --url "SPOTIFY_URL"
# Structured output for scripting
streamscribe --playlist "PLAYLIST_URL" --format json
# Example output:
# {
# "tracks": [
# {
# "title": "Song Title",
# "artist": "Artist Name",
# "album": "Album Name",
# "year": 2026,
# "duration": 215,
# "file_path": "./StreamScribe/Output/Artist - Song Title.mp3"
# }
# ]
# }
# Configuration-friendly format
streamscribe --playlist "PLAYLIST_URL" --format yaml
# Silent operation, errors only
streamscribe --url "SPOTIFY_URL" --format quiet
# Extract specific metadata fields
streamscribe --playlist "PLAYLIST_URL" --format json | \
jq '.tracks[] | {title, artist, album}'
# Filter by year
streamscribe --playlist "PLAYLIST_URL" --format json | \
jq '.tracks[] | select(.year >= 2025)'
#!/bin/bash
# batch_download.sh
# Read URLs from file
while IFS= read -r url; do
streamscribe --url "$url" \
--quality high \
--output "./Archive/$(date +%Y-%m)" \
--format quiet
done < spotify_urls.txt
# Download and auto-import to Beets
streamscribe --playlist "PLAYLIST_URL" \
--output "$HOME/Music/Inbox" \
--format json > import.json
# Then use Beets importer
beet import "$HOME/Music/Inbox"
# StreamScribe automatically resumes from checkpoint
# If download fails partway through playlist:
streamscribe --playlist "PLAYLIST_URL" --resume
# Limit concurrent downloads (default: auto-detected cores)
streamscribe --playlist "PLAYLIST_URL" \
--threads 4 \
--quality high
# Organize by artist/album structure
streamscribe --playlist "PLAYLIST_URL" \
--output-template "{artist}/{album}/{track:02d} - {title}"
# Output: Artist Name/Album Name/01 - Song Title.mp3
# Track URL format
streamscribe --url "https://open.spotify.com/track/[TRACK_ID]?si=..."
# Playlist URL format
streamscribe --playlist "https://open.spotify.com/playlist/[PLAYLIST_ID]?si=..."
streamscribe --url "https://www.deezer.com/track/[TRACK_ID]"
streamscribe --url "https://tidal.com/browse/track/[TRACK_ID]"
streamscribe --url "https://music.apple.com/album/[ALBUM_ID]?i=[TRACK_ID]"
# Some services require API credentials for higher rate limits
export SPOTIFY_CLIENT_ID="your_client_id_here"
export SPOTIFY_CLIENT_SECRET="your_client_secret_here"
streamscribe --url "SPOTIFY_URL"
# Increase timeout for slow connections
export STREAMSCRIBE_TIMEOUT=120
streamscribe --url "SPOTIFY_URL"
# Force UTF-8 encoding for non-Latin scripts
streamscribe --url "SPOTIFY_URL" \
--encoding utf-8 \
--metadata-extended
# Check available space before large playlist downloads
df -h ./StreamScribe/Output/
# Pre-calculate playlist size
streamscribe --playlist "PLAYLIST_URL" \
--dry-run \
--format json | jq '[.tracks[].estimated_size] | add'
# Verify file integrity and re-download if needed
streamscribe --url "SPOTIFY_URL" \
--verify-checksum \
--overwrite
Important: This tool is for personal archival and educational use only. Users must:
The tool does not bypass DRM or encryption — it captures streams already accessible through legitimate access.
#!/bin/bash
# backup_library.sh
# Export all playlists
for playlist_url in $(cat my_playlists.txt); do
playlist_name=$(echo "$playlist_url" | sed 's/.*playlist\///' | cut -d'?' -f1)
streamscribe --playlist "$playlist_url" \
--output "./Backup/$playlist_name" \
--quality archival \
--metadata-extended \
--embed-artwork
done
# Download tracks with extended metadata for cataloging
streamscribe --playlist "https://open.spotify.com/playlist/DJ_CRATE" \
--quality high \
--output "./DJ/Samples/2026" \
--metadata-extended \
--output-template "{genre}/{bpm} - {artist} - {title}"
# Preserve world music playlists with original metadata
streamscribe --playlist "ETHNOMUSICOLOGY_PLAYLIST" \
--quality archival \
--metadata-extended \
--encoding utf-8 \
--format yaml > research_metadata.yaml
# Use concurrent processing with rate limiting
streamscribe --playlist "LARGE_PLAYLIST" \
--threads 8 \
--rate-limit 10 \
--quality high \
--format quiet
# Reduce memory footprint
export STREAMSCRIBE_BUFFER_SIZE=4096
streamscribe --playlist "PLAYLIST_URL" \
--no-cache \
--sequential
Current stable version: v2.1.0 (as of 2026-03-15)
Check for updates:
streamscribe --check-updates
For bug reports, include:
# Generate diagnostic report
streamscribe --url "PROBLEMATIC_URL" --debug > debug_report.log