Metadata-Version: 2.4
Name: sfotipy
Version: 1.4.1
Summary: Spotify Music Downloader - Download music from Spotify
Author: Ren
License-Expression: MIT
Project-URL: Homepage, https://github.com/Minu181/Sfotipy
Project-URL: Repository, https://github.com/Minu181/Sfotipy
Project-URL: Issues, https://github.com/Minu181/Sfotipy/issues
Keywords: spotify,music,downloader,mp3,yt-dlp
Classifier: Development Status :: 4 - Beta
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Multimedia :: Sound/Audio
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: spotifyscraper>=3.9.0
Requires-Dist: rich>=13.0.0
Requires-Dist: yt-dlp>=2024.1.0
Requires-Dist: mutagen>=1.47.0
Requires-Dist: syncedlyrics>=1.0.0
Requires-Dist: packaging>=21.0
Requires-Dist: requests>=2.28.0
Provides-Extra: win
Requires-Dist: winotify>=1.1.0; extra == "win"
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: pytest-cov>=4; extra == "dev"
Requires-Dist: ruff>=0.4; extra == "dev"
Requires-Dist: mypy>=1.10; extra == "dev"
Dynamic: license-file

# sfotipy

Spotify Music Downloader - Download music from Spotify playlists, albums, and tracks as MP3 with metadata, cover art, and watermark.

**made by Ren - Discord: wtf_renn**

## Installation

```bash
pip install sfotipy
```

### Requirements

- Python 3.9+
- [FFmpeg](https://ffmpeg.org/download.html) installed and in your PATH

## Usage

### Interactive Mode

```bash
sfotipy
```

Opens a menu to configure settings and download music.

### Direct Mode

```bash
sfotipy https://open.spotify.com/track/4iV5W9uYEdYUVa79Axb7Rh
sfotipy https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M
sfotipy https://open.spotify.com/album/1DFixLWuPmc35TjJb6Wqeq
```

### Options

| Flag | Description |
|------|-------------|
| `-p`, `--path` | Download path |
| `-q`, `--quality` | Audio quality: 0 (auto), 128, 192, 256, 320 kbps |
| `-s`, `--source` | Audio source: `auto`, `soundcloud`, `youtube-music`, `youtube` |
| `-l`, `--lyrics` | Download lyrics |
| `-o`, `--output-template` | Filename template (e.g. `"{track_number}. {artist} - {title}"`) |
| `-w`, `--workers` | Number of parallel download workers (1-8, default: 3) |
| `--overwrite` | Re-download existing tracks |
| `--dry-run` | Preview what would be downloaded without downloading |
| `-V`, `--verbose` | Enable verbose/debug output |
| `-v`, `--version` | Show version |

## Features

- Download tracks, playlists, albums, and episodes from Spotify
- Automatic metadata (title, artist, album, cover art)
- `[Sfotipy]` watermark in filename
- Multiple audio sources with fallback (YouTube Music → YouTube → SoundCloud)
- Parallel downloads with configurable worker count
- Real-time progress display with per-song progress bars
- ESC to pause with continue/exit option
- Lyrics download support (synced + plain)
- Resume interrupted downloads
- Low-quality track detection with per-track choices
- Automatic update checking from PyPI

## License

MIT
