Skip to main content

Overview

Deeztracker Mobile allows you to download music from Deezer’s catalog to your Android device for offline playback. Downloads are managed through a queue system that processes requests sequentially.

Searching for Content

The Search screen is your starting point for finding music to download.
1

Navigate to Search

Tap the Search icon in the bottom navigation bar to open the search screen.
2

Enter Search Query

  • Tap the search field at the top
  • Type your search query (artist name, song title, album, or playlist)
  • Press the search button or Enter key
3

Browse Results by Category

Use the category tabs to filter results:
  • Tracks: Individual songs
  • Artists: Artist profiles
  • Albums: Full albums
  • Playlists: Curated playlists
Search results automatically load more content as you scroll down (infinite scroll). You can preview tracks before downloading by tapping the play button.

Selecting Quality Settings

Before downloading, configure your preferred audio quality:
  1. Go to SettingsAudio Quality
  2. Choose from available options:
    • FLAC: Lossless quality (Premium only)
    • MP3_320: 320 kbps MP3 (Premium only)
    • MP3_128: 128 kbps MP3 (Free & Premium)
FLAC and 320kbps downloads require a Deezer Premium account. If you select a quality higher than your account supports, downloads will fail. See Authentication for details.
The app reads your quality preference from SharedPreferences:
DownloadManager.kt:78-87
val currentQuality: DownloadQuality
    get() {
        val saved = prefs.getString("audio_quality", "MP3_128")
        return when (saved) {
            "MP3_320" -> DownloadQuality.MP3_320
            "FLAC" -> DownloadQuality.FLAC
            else -> DownloadQuality.MP3_128
        }
    }

Downloading Tracks

To download individual tracks from search results:
1

Find Your Track

Search for the track and locate it in the Tracks tab.
2

Tap Download Button

Tap the download icon (↓) on the right side of the track item.
3

Monitor Progress

  • The download button changes to a loading spinner
  • Once complete, it shows a checkmark (✓)
  • You’ll see a notification showing the download result
SearchScreen.kt:446-454
TrackItem(
    track = track,
    isDownloaded = isDownloaded,
    isDownloading = isDownloading && 
        (downloadState as? DownloadState.Downloading)?.itemId == track.id.toString(),
    onDownloadClick = {
        downloadManager.startTrackDownload(track.id, track.title)
    }
)

Downloading Albums

To download entire albums:
1

Open Album Details

  • Search for the album or artist
  • Tap on an album from search results
  • The album detail screen opens showing all tracks
2

Download Entire Album

Tap the “Download Album” button at the top of the track list.
3

Track Download Progress

  • The app downloads tracks sequentially
  • Already downloaded tracks are automatically skipped
  • Progress is shown in the button and individual track items
  • A notification appears when complete with success/skip/failure counts
Smart Skip: The app checks if tracks are already downloaded before starting. This prevents duplicates and saves bandwidth.
AlbumScreen.kt:153-158
Button(
    onClick = {
        album?.let { albumData ->
            downloadManager.startAlbumDownload(albumData.id, albumData.title)
        }
    },

Downloading Playlists

Playlist downloads work similarly to albums:
1

Find a Playlist

Search for playlists using keywords or browse from artist pages.
2

Open Playlist Details

Tap on a playlist to view all its tracks.
3

Download Playlist

Tap the “Download Playlist” button to download all tracks in the playlist.

Monitoring Download Progress

Deeztracker Mobile provides real-time feedback on downloads:

Visual Indicators

  • Download Button States:
    • Normal: Download icon (↓) in primary color
    • Downloading: Circular progress spinner
    • Complete: Green checkmark (✓)
  • Notifications: After completion, you’ll see:
    • Success count: Number of tracks downloaded
    • Skipped count: Tracks already on device
    • Failed count: Tracks that couldn’t be downloaded

Download Queue System

Downloads are processed sequentially through a queue:
DownloadManager.kt:58-76
// Queue for sequential processing (limited to 20 items to prevent saturation)
private val downloadChannel = kotlinx.coroutines.channels.Channel<DownloadRequest>(20)

private val _downloadState = MutableStateFlow<DownloadState>(DownloadState.Idle)
val downloadState: StateFlow<DownloadState> = _downloadState.asStateFlow()

init {
    // Start processing the queue
    managerScope.launch {
        for (request in downloadChannel) {
            processRequest(request)
        }
    }
}
The queue can hold up to 20 download requests. Downloads survive screen navigation and continue in the background.

Managing Storage and File Locations

Download Location

By default, music is saved to your device’s Music folder:
  • Default: /storage/emulated/0/Music/Deeztracker/
  • Alternative: /storage/emulated/0/Download/Deeztracker/
You can change the download location in Settings:
  1. Go to SettingsStorage
  2. Select “Download Location”
  3. Choose between:
    • Music folder (default)
    • Downloads folder
DownloadManager.kt:93-107
val downloadDirectory: String
    get() {
        val locationPref = prefs.getString("download_location", "MUSIC")
        val rootDir = if (locationPref == "DOWNLOADS") {
            Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
        } else {
            Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC)
        }
        
        val deezDir = File(rootDir, "Deeztracker")
        if (!deezDir.exists()) {
            deezDir.mkdirs()
        }
        return deezDir.absolutePath
    }

File Organization

Downloaded tracks are organized with proper metadata:
  • Artist name
  • Album title
  • Track number
  • Album artwork embedded

Storage Management

View your storage usage in the Local Music screen:
  • Track count is displayed at the top
  • Total storage used is shown in GB
  • Visual progress bar indicates space consumption
Permissions Required: Deeztracker needs “All Files Access” permission on Android 11+ to download and manage music files. Grant this permission in Settings → Permissions.

Common Download Errors and Fixes

Possible causes:
  • No internet connection
  • Invalid ARL token
  • Selected quality exceeds account permissions
Solutions:
  1. Check your internet connection
  2. Verify your ARL token is still valid (try logging out and back in)
  3. Lower the quality setting to MP3 128kbps
  4. Check if your Deezer account is active
Possible causes:
  • Specific tracks are not available in your region
  • Copyright restrictions on certain tracks
  • Tracks have been removed from Deezer
Solutions:
  1. Check the notification to see how many succeeded vs failed
  2. Download failed tracks individually to identify specific issues
  3. Try searching for alternative versions of failed tracks
Possible causes:
  • Slow internet connection
  • Large file sizes (FLAC/320kbps)
  • Server limitations
Solutions:
  1. Switch to a faster WiFi network
  2. Lower the quality setting temporarily
  3. Download during off-peak hours
  4. Download one item at a time instead of bulk downloads
Possible causes:
  • MediaStore not updated yet
  • File permissions issue
  • Files saved to unexpected location
Solutions:
  1. Tap the refresh button (↻) on the Local Music or Downloads screen
  2. Check the download location in Settings
  3. Verify “All Files Access” permission is granted
  4. Restart the app to trigger a fresh scan
Issue: Same track downloaded multiple timesSolutions:
  1. The app normally skips already-downloaded tracks automatically
  2. Manually delete duplicates from the Downloads screen
  3. If duplicates persist, the title/artist metadata might differ slightly
Solutions:
  1. Go to Android Settings → Apps → Deeztracker
  2. Tap Permissions → Files and Media
  3. Select “Allow management of all files”
  4. Return to the app and retry the download

Download Tips

Best Practices

  • Use WiFi for large downloads (albums/playlists) to avoid mobile data charges
  • Download overnight for very large collections
  • Lower quality if storage is limited (128kbps uses ~1MB per minute)
  • Organize with playlists after downloading for easier management
  • Regular cleanup of the Downloads folder to free up space

Next Steps

Play Downloaded Music

Learn how to access and play your downloaded tracks

Manage Playlists

Organize your music into custom playlists

Build docs developers (and LLMs) love