private void downloadSong(final SongConfig song, final FolderConfig folderConfig) {
		String trackString = null;
		try {
			final HttpResponse trackResponse = getApi().get(new Request(String.format(Constants.TRACK_URL, song.getTrackId(), Constants.CLIENT_ID)));
			trackString = EntityUtils.toString(trackResponse.getEntity());
		} catch (final Exception e) {
			e.printStackTrace();
		}

		final JSONObject obj = new JSONObject(trackString);
		final boolean streamable = obj.getBoolean("streamable");

		if (streamable) {
			final Downloader downloader = SCUtilFactory.getDownloader(song.getSongUrl());
			// Use the song's mp3 metadata if populated, otherwise use the folder's mp3 metadata
			final Mp3Metadata metadata = song.getMp3Metadata() != null ? song.getMp3Metadata() : folderConfig.getMp3Metadata();
			song.setLocalSong(downloader.downloadSong(obj.getString("permalink_url"), folderConfig.getDownloadFolder(), metadata));
			song.setSyncOn(false);
		} else {
			System.out.println("Track is not streamable, no way to sync song from URL " + song.getSongUrl());
		}
	}