private ArrayList<Song> parseContent(String content, ArrayList<Song> results) {
		//splits at every song found
		String[] rawSongs = content.split("upload_id");
		//rawSongs[0] is just some html code
		for(int i=1; i<rawSongs.length; i++) {
			Song s = new Song();
			//find the name
			Pattern p = Pattern.compile("\"upload_name\" : \"(.*)\", \"upload_extra\" :");
			Matcher m = p.matcher(rawSongs[i]);
			if(m.find()) 
				s.setTitle(m.group(1));
			//find the artist
			p = Pattern.compile("\"user_real_name\" : \"(.*)\", \"artist_page_url\"");
			m = p.matcher(rawSongs[i]);
			if(m.find())
				s.setArtist(m.group(1));
			//find the duration
			p = Pattern.compile("\"ps\" : \"(\\d+):(\\d+)\", \"br\" : \"CBR\"");
			m = p.matcher(rawSongs[i]);
			if(m.find()) {
				//do a little of parsing to convert into seconds
				int duration = Integer.parseInt(m.group(1))*60 + Integer.parseInt(m.group(2));
				s.setDuration(duration);
			}
			//find the size
			p = Pattern.compile("((\\d+\\.*\\d*)MB)");
			m = p.matcher(rawSongs[i]);
			if(m.find())
				s.setSize(Double.parseDouble(m.group(1).replaceAll("MB", "")));
			//TODO find the BPM
			p = Pattern.compile("\"bpm\" : (\\d+),");
			m = p.matcher(rawSongs[i]);
			if(m.find())
				s.setBpm(Integer.parseInt(m.group(1)));
			//find the download link
			p = Pattern.compile("\"download_url\" : \"((.*).mp3)\", \"file_rawsize\"");
			m = p.matcher(rawSongs[i]);
			if(m.find())
				s.setSource(m.group(1).split(",")[0]); //cut the 'file_rawsize" part
			//mark the retriever of the song
			s.setRetriever(SOURCE);
			//add the song to the previous results
			results.add(s);
		}
		return results;
	}