How oskvr37/tiddl works
Tiddl is a command-line Tidal client for authenticating, finding catalog resources, and downloading tracks, videos, and collections. The main workflow is: select resources by URL or search, retrieve their metadata, expand collections into items, download media, then name files and optionally write metadata, covers, lyrics, and playlists. Authentication is a separate login/refresh/logout flow that stores credentials locally. The graph reflects documented capabilities and sampled call sites; some command registration and downloader internals were not included, so uncertain wiring is omitted.
Main entry points: __init__.py Download command · downloader.py Media downloader · auth.py Auth commands · search.py Catalog search
Components 23
CLI and selection
- CLI app
tiddl/cli/app.py - Catalog search
tiddl/cli/commands/subcommands/search.py - Resource parsing
tiddl/cli/utils/resource.py
Authentication
- Auth commands
tiddl/cli/commands/auth.py - Credential storage
tiddl/cli/utils/auth/core.py - Auth API
tiddl/core/auth/api.py - Auth client
tiddl/core/auth/client.py
Tidal catalog
- Catalog API
tiddl/core/api/api.py - API client
tiddl/core/api/client.py
Download and output
- Download command
tiddl/cli/commands/download/__init__.py - Media downloader
tiddl/cli/commands/download/downloader.py - Path templates
tiddl/core/utils/format.py - Download utilities
tiddl/core/utils/download.py - Track metadata
tiddl/core/metadata/track.py - Video metadata
tiddl/core/metadata/video.py - Cover handling
tiddl/core/metadata/cover.py - Playlist export
tiddl/core/utils/m3u.py - Download reporting
tiddl/cli/commands/download/output.py
Other components
- CLI user
- Tidal auth service
- Tidal catalog API
- Tidal media service
- Local files
Connections 30
- CLI user → CLI app: runs
- CLI user → Auth commands: requests login
- Auth commands → Credential storage: loads and saves
- Auth commands → Auth API: requests auth
- Auth API → Auth client: delegates requests
- Auth client → Tidal auth service: requests tokens
- CLI user → Catalog search: submits query
- Catalog search → Catalog API: searches catalog
- Catalog search → Resource parsing: adds selection
- CLI user → Resource parsing: provides URL
- Resource parsing → Download command: provides resource
- CLI user → Download command: starts download
- Download command → Auth commands: refreshes token
- Download command → Catalog API: retrieves resource data
- Catalog API → API client: fetches endpoints
- API client → Tidal catalog API: requests catalog data
- Download command → Path templates: formats output paths
- Download command → Media downloader: downloads items
- Media downloader → Tidal media service: fetches media
- Media downloader → Download utilities: uses download helpers
- Media downloader → Local files: writes media
- Download command → Track metadata: tags tracks
- Download command → Video metadata: tags videos
- Download command → Cover handling: fetches cover data
- Cover handling → Local files: saves cover
- Download command → Playlist export: writes playlists
- Playlist export → Local files: writes playlist files
- Track metadata → Local files: updates media tags
- Video metadata → Local files: updates video tags
- Download command → Download reporting: reports progress