diff --git a/deemix/downloader.py b/deemix/downloader.py
index 635899a..c79708f 100644
--- a/deemix/downloader.py
+++ b/deemix/downloader.py
@@ -86,33 +86,12 @@ def downloadImage(url, path, overwrite=OverwriteOption.DONT_OVERWRITE):
 
 def getPreferredBitrate(dz, track, preferredBitrate, shouldFallback, uuid=None, listener=None):
     preferredBitrate = int(preferredBitrate)
-    if track.local: return TrackFormats.LOCAL
 
     falledBack = False
     hasAlternative = track.fallbackID != "0"
     isGeolocked = False
     wrongLicense = False
 
-    formats_non_360 = {
-        TrackFormats.FLAC: "FLAC",
-        TrackFormats.MP3_320: "MP3_320",
-        TrackFormats.MP3_128: "MP3_128",
-    }
-    formats_360 = {
-        TrackFormats.MP4_RA3: "MP4_RA3",
-        TrackFormats.MP4_RA2: "MP4_RA2",
-        TrackFormats.MP4_RA1: "MP4_RA1",
-    }
-
-    is360format = preferredBitrate in formats_360.keys()
-    if not shouldFallback:
-        formats = formats_360
-        formats.update(formats_non_360)
-    elif is360format:
-        formats = formats_360
-    else:
-        formats = formats_non_360
-
     def testURL(track, url, formatName):
         if not url: return False
         request = requests.head(
@@ -146,6 +125,31 @@ def getPreferredBitrate(dz, track, preferredBitrate, shouldFallback, uuid=None,
             url = None
         return url
 
+    if track.local:
+        url = getCorrectURL(track, "MP3_MISC", TrackFormats.LOCAL)
+        track.urls["MP3_MISC"] = url
+        return TrackFormats.LOCAL
+
+    formats_non_360 = {
+        TrackFormats.FLAC: "FLAC",
+        TrackFormats.MP3_320: "MP3_320",
+        TrackFormats.MP3_128: "MP3_128",
+    }
+    formats_360 = {
+        TrackFormats.MP4_RA3: "MP4_RA3",
+        TrackFormats.MP4_RA2: "MP4_RA2",
+        TrackFormats.MP4_RA1: "MP4_RA1",
+    }
+
+    is360format = preferredBitrate in formats_360.keys()
+    if not shouldFallback:
+        formats = formats_360
+        formats.update(formats_non_360)
+    elif is360format:
+        formats = formats_360
+    else:
+        formats = formats_non_360
+
     for formatNumber, formatName in formats.items():
         # Current bitrate is higher than preferred bitrate; skip
         if formatNumber > preferredBitrate: continue
@@ -185,6 +189,8 @@ def getPreferredBitrate(dz, track, preferredBitrate, shouldFallback, uuid=None,
                     },
                 })
     if is360format: raise TrackNot360
+    url = getCorrectURL(track, "MP3_MISC", TrackFormats.DEFAULT)
+    track.urls["MP3_MISC"] = url
     return TrackFormats.DEFAULT
 
 class Downloader:
@@ -396,6 +402,7 @@ class Downloader:
 
         if not trackAlreadyDownloaded or self.settings['overwriteFile'] == OverwriteOption.OVERWRITE:
             track.downloadURL = track.urls[formatsName[track.bitrate]]
+            if not track.downloadURL: raise DownloadFailed('notAvailable', track)
             try:
                 with open(writepath, 'wb') as stream:
                     streamTrack(stream, track, downloadObject=self.downloadObject, listener=self.listener)