How williamschack/spotify-downloader works
Spotify Downloader is a GUI application for finding and downloading Spotify songs and playlists through YouTube. The principal workflow runs from the user’s URL and settings, through Spotify metadata and YouTube Music matching/download, to audio files and optional playlist/LRC outputs. The README excerpt documents the GUI and customization; sampled source confirms application setup, settings wiring, Spotify authentication, update checks, and playlist-file generation. Several downloader and API implementations were not sampled, so their links reflect the documented product workflow rather than inspected call sites.
Main entry points: PlaylistDownloader.cpp Download coordinator · PlaylistFile.cpp Playlist file writer · Network.cpp Network transport · UISetup.cpp GUI and settings
Components 23
User interface
- GUI and settings
Spotify Downloader/UI/UISetup.cpp - Download settings
Spotify Downloader/Config.cpp - Application window
Spotify Downloader/SpotifyDownloader.cpp - Download thread
Spotify Downloader/UI/CustomWidgets/DownloaderThread.cpp
Download workflow
- Download coordinator
Spotify Downloader/Downloading/PlaylistDownloader.cpp - Song model
Spotify Downloader/Downloading/Song.cpp - Song downloader
Spotify Downloader/Downloading/SongDownloader.cpp
Network services
- Spotify metadata API
Spotify Downloader/Network/SpotifyAPI.cpp - Spotify auth retrieval
Spotify Downloader/Network/SpotifyAuthRetriever.cpp - YouTube Music API
Spotify Downloader/Network/YTMusicAPI.cpp - Network transport
Spotify Downloader/Network/Network.cpp - Musixmatch API
Spotify Downloader/Network/MusixmatchAPI.cpp
Files and metadata
- Downloaded audio
- Audio tags
Spotify Downloader/include/taglib/fileref.h - Lyrics and LRC
Spotify Downloader/Lyrics/Lyrics.cpp - LRC writer
Spotify Downloader/Lyrics/LRCFile.cpp - Playlist file writer
Spotify Downloader/Playlist/PlaylistFile.cpp - Playlist formats
Spotify Downloader/Playlist
Other components
- User
- Spotify
- YouTube Music
- Local filesystem
- Musixmatch lyrics
Connections 25
- User → GUI and settings: enters URL
- GUI and settings → Download settings: sets options
- GUI and settings → Application window: starts download
- Application window → Download thread: dispatches work
- Download thread → Download coordinator: runs download
- Download coordinator → Spotify metadata API: requests metadata
- Spotify metadata API → Network transport: sends requests
- Network transport → Spotify: queries
- Spotify auth retrieval → Spotify: retrieves credentials
- Download coordinator → Song model: handles tracks
- Download coordinator → Song downloader: downloads tracks
- Song downloader → YouTube Music API: searches and downloads
- YouTube Music API → Network transport: sends requests
- Network transport → YouTube Music: queries
- Song downloader → Downloaded audio: writes audio
- Downloaded audio → Local filesystem: stored on
- Download coordinator → Lyrics and LRC: obtains lyrics
- Lyrics and LRC → Musixmatch API: requests lyrics
- Musixmatch API → Musixmatch lyrics: queries
- Lyrics and LRC → LRC writer: creates timed lyrics
- LRC writer → Local filesystem: writes file
- Download coordinator → Playlist file writer: creates playlist
- Playlist file writer → Audio tags: reads audio tags
- Playlist file writer → Playlist formats: selects format
- Playlist file writer → Local filesystem: writes file