diff --git a/lib/sites/mixcloud.pm b/lib/sites/mixcloud.pm
index fd3c66c43d09b417264ffab057218f69cb0ca66a..82cec79d0b2cbf7c65caacfc04d6c64c9661deb1 100644
--- a/lib/sites/mixcloud.pm
+++ b/lib/sites/mixcloud.pm
@@ -1,71 +1,29 @@
 package mixcloud;
 
 use LWP::UserAgent;
-use HTML::Parser;
-use HTML::Entities;
+use JSON;
 
 require Exporter;
 our @ISA = qw(Exporter);
 our @EXPORT_OK = qw(mixcloud);
 
 
-my $inTitle = 0;
-my $inAuthor = 0;
-my %infos;
-
-
 sub get {
 	my ($url) = @_;
+    $url =~ s/www/api/;
+    my %infos;
 
-	my $ua = LWP::UserAgent->new(
-		agent   => "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 GTB7.1",
-		timeout => 30
-	);
-
+	my $ua = LWP::UserAgent->new(timeout => 30);
 	my $response = $ua->get($url);
 	die($response->status_line) unless ($response->is_success);
 
-	my $content = $response->decoded_content;
+	$content = decode_json($response->decoded_content);
+	$infos{'title'} = $content->{'name'};
+	$infos{'author'} = $content->{'user'}->{'name'};
+	$infos{'url'} = $content->{'url'};
+    $infos{'duration'} = $content->{'audio_length'};
 
-	my $parser = HTML::Parser->new();
-	$parser->handler(text => \&parser_text, 'text');
-	$parser->handler(start => \&parser_start, 'tagname');
-	$parser->handler(end => \&parser_end, 'tagname');
-	$parser->unbroken_text(1);
-	$parser->report_tags('title', 'a');
-	$parser->parse($content);
-	$parser->eof();
-	
-	$infos{'url'} = $url;
-	
 	return %infos;
 }
 
-sub parser_text
-{
-	my ($text) = @_;
-	chomp $text;
-	$text = decode_entities($text);
-
-	if ($inTitle) {
-		$text =~ s/\n//;
-		$text =~ s/ \| Mixcloud .*//;
-		$text =~ s/^ *//;
-		$text =~ s/[^a-zA-Z0-9\(\)\[\]]*$//;
-		($infos{'author'}, $infos{'title'}) = split (' - ', $text, 2);
-	}
-}
-
-sub parser_start
-{
-	my ($tag) = @_;
-	$inTitle = 1 if ($tag eq 'title');
-}
-
-sub parser_end
-{
-	my ($tag) = @_;
-	$inTitle = 0 if ($tag eq 'title');
-}
-
 1;
diff --git a/lib/sites/parser.pm b/lib/sites/parser.pm
index f0f8466f940be5da063e1c681dee02fb7797245f..ff97f414683d0eca49e574980894e229e5e99f6c 100644
--- a/lib/sites/parser.pm
+++ b/lib/sites/parser.pm
@@ -37,11 +37,11 @@ sub parse {
 		eval { %content = soundcloud::get($url) };
 		$content{'site'} = 'soundcloud';
 	}
-#	elsif ($msg =~ m#(^|[^!])https?://www.mixcloud.com/([a-zA-Z0-9-_]+/[a-zA-Z0-9-_]+)#) {
-#		my $url = 'https://www.mixcloud.com/'.$2;
-#		eval { %content = mixcloud::get($url) };
-#		$content{'site'} = 'mixcloud';
-#	}
+	elsif ($msg =~ m#(^|[^!])https?://www.mixcloud.com/([a-zA-Z0-9-_]+/[a-zA-Z0-9-_]+)#) {
+		my $url = 'https://www.mixcloud.com/'.$2;
+		eval { %content = mixcloud::get($url) };
+		$content{'site'} = 'mixcloud';
+	}
 	elsif ($msg =~ m#((^|[^!])http://www[0-9]+.zippyshare.com/v/[0-9]+/file.html)#) {
 		my $url = $1;
 		eval { %content = zippy::get($url) };