How googolplexed0/zotify works
Zotify is a command-line music and podcast downloader. Its main workflow accepts URLs or an interactive mode, obtains account-backed metadata, resolves requested content into tracks or episodes, downloads and converts audio, then writes tagged files and library records. The README also documents search, account-library downloads, synced lyrics, bulk URL input, dry runs, and library verification. The excerpts establish the CLI, query, metadata, configuration, and tagging layers; some feature wiring is documented but not visible in the sampled source, so those links are omitted where uncertain.
Main entry points: api.py Query resolution · app.py Query workflows · __main__.py CLI arguments · metadata.py Audio tagging
Components 21
CLI and workflows
- CLI arguments
zotify/__main__.py - Query workflows
zotify/app.py - Interactive search
zotify/app.py - Account modes
zotify/app.py - Bulk URL input
zotify/app.py - Library verification
zotify/app.py
Catalog and retrieval
- Query resolution
zotify/api.py - Catalog content
zotify/api.py - Audio retrieval
zotify/api.py - Metadata parsing
zotify/metadata.py
Files and library
- Audio tagging
zotify/metadata.py - Song archives
zotify/metadata.py - Lyrics output
zotify/api.py
Runtime support
- Settings and login
zotify/config.py - Terminal interface
zotify/termoutput.py - Path and input utilities
zotify/utils.py
Other components
- User
- Spotify services
- Podcast partner API
- Music files
- FFmpeg
Connections 30
- User → CLI arguments: supplies options
- CLI arguments → Settings and login: loads settings
- CLI arguments → Query workflows: dispatches
- Query workflows → Query resolution: executes requests
- Query workflows → Interactive search: runs search
- Interactive search → Spotify services: searches catalog
- Interactive search → Query resolution: submits selections
- Query workflows → Account modes: runs modes
- Account modes → Query resolution: requests account items
- Query workflows → Bulk URL input: reads URL lists
- Bulk URL input → Query resolution: submits URLs
- Query workflows → Library verification: starts verification
- Library verification → Song archives: checks archive entries
- Library verification → Music files: scans files
- Query resolution → Spotify services: fetches metadata
- Query resolution → Catalog content: resolves content
- Catalog content → Metadata parsing: parses responses
- Query resolution → Audio retrieval: downloads requested audio
- Audio retrieval → Spotify services: retrieves audio
- Audio retrieval → Podcast partner API: fetches episode audio
- Audio retrieval → FFmpeg: converts audio
- Audio retrieval → Audio tagging: writes tags
- Audio tagging → Music files: updates audio files
- Audio tagging → Metadata parsing: uses content metadata
- Query resolution → Lyrics output: downloads lyrics
- Lyrics output → Music files: writes lyric files
- Query resolution → Song archives: records downloads
- Settings and login → Spotify services: authenticates session
- Query workflows → Terminal interface: reports and prompts
- Settings and login → Path and input utilities: uses path helpers