diff --git a/api.php b/api.php
index 824929a57a25da2dfd7244c443afc185c158c2d0..82833e68bf7a84a9d7e0e73aadd63604e8be6e47 100644
--- a/api.php
+++ b/api.php
@@ -4,11 +4,11 @@ include_once 'config.php';
 if ($_GET['get'] == 'shows' && $_GET['limit'] && isset($_GET['offset'])) {
 
 	$output = array();
-	$data = querySB('shows');
-	uasort($data, function($a, $b) {
+	$shows = querySB('shows');
+	uasort($shows, function($a, $b) {
 		return strcmp($a['show_name'], $b['show_name']);
 	});
-	$shows = array_slice($data, $_GET['offset'], $_GET['limit'], true);
+	$shows = array_slice($shows, $_GET['offset'], $_GET['limit'], true);
 	foreach($shows as $key => $show) {
 		$dataShow = querySB('show', $key);		
 		$dataSeasons = querySB('show.seasons', $key);
@@ -20,7 +20,6 @@ if ($_GET['get'] == 'shows' && $_GET['limit'] && isset($_GET['offset'])) {
 			"id" => $key,
 			"name" => $show['show_name'],
 			"folder" => str_replace($showsPath.'/', '', $dataShow['location']),
-			"thumb" => cleanName($show['show_name']),
 			"seasons" => $seasons
 		));
 		unset($seasons);
@@ -33,24 +32,19 @@ if ($_GET['get'] == 'shows' && $_GET['limit'] && isset($_GET['offset'])) {
 
 if ($_GET['get'] == 'movies' && $_GET['limit'] && isset($_GET['offset'])) {
 
-	$cpdb = new PDO('sqlite:'.$cpPath.'/couchpotato.db');
-	$cpdb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-
-	$movies = $cpdb->query("SELECT l.identifier AS imdb, lt.title, l.year, l.tagline, l.plot, s.label AS status FROM library AS l
-		JOIN librarytitle AS lt ON l.id=lt.libraries_id
-		JOIN movie AS m on l.id=m.library_id
-		JOIN status AS s ON m.status_id=s.id
-		WHERE m.status_id = 3 AND `default` = 1
-		ORDER BY title ASC LIMIT ".$_GET['limit']." OFFSET ".$_GET['offset'].";");
+	$movies = queryCP('movie.list', 'status=done');
+	$movies = array_slice($movies, $_GET['offset'], $_GET['limit'], true);
 	$output = array();
 	foreach ($movies as $movie) {
 		array_push($output, array(
-			"imdb" => $movie['imdb'],
+			"imdb" => $movie['info']['imdb'],
 			"title" => $movie['title'],
-			"year" => $movie['year'],
-			"tagline" => $movie['tagline'],
-			"plot" => $movie['plot'],
-			"status" => $movie['status']
+			"year" => $movie['info']['year'],
+			"tagline" => $movie['info']['tagline'],	
+			"plot" => $movie['info']['plot'],
+			"rating" => $movie['info']['rating']['imdb'][0].' ('.$movie['info']['rating']['imdb'][1].')',
+			"status" => $movie['status'],
+			"folder" => current(explode('/', current(str_replace($moviesPath.'/', '', $movie['releases'][0]['files']['movie']))))
 		));
 	}
 	echo json_encode($output);
@@ -187,7 +181,6 @@ if ($_GET['get'] == 'episodes' && !empty($_GET['show']) && isset($_GET['season']
 
 if ($_GET['get'] == 'latest' && $_GET['type'] == 'shows') {
 	
-	//$eps = $sbdb->query("SELECT s.show_name, ep.name, ep.episode, ep.season, ep.airdate FROM tv_episodes AS ep JOIN tv_shows AS s ON ep.showid=s.tvdb_id WHERE ep.status LIKE '%4' ORDER BY ep.airdate DESC LIMIT 10;");
 	$eps = querySB('history');
 	$output = array();
 	foreach ($eps as $ep) {
@@ -198,23 +191,23 @@ if ($_GET['get'] == 'latest' && $_GET['type'] == 'shows') {
 	$output = array_slice($output, 0, 10);
 	echo json_encode($output);
 	die;
+	
 }
 
 if ($_GET['get'] == 'latest' && $_GET['type'] == 'movies') {
-	$cpdb = new PDO('sqlite:'.$cpPath.'/couchpotato.db');
-	$cpdb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-	$movies = $cpdb->query("SELECT lt.title, l.year FROM library AS l
-		JOIN librarytitle AS lt ON l.id=lt.libraries_id
-		JOIN movie AS m on l.id=m.library_id
-		JOIN status AS s ON m.status_id=s.id
-		WHERE m.status_id = 3 AND `default` = 1
-		ORDER BY m.last_edit DESC LIMIT 10;");
+
+	$movies = queryCP('movie.list', 'status=done');
+	uasort($movies, function($a, $b) {
+		return $b['releases'][0]['last_edit'] - $a['releases'][0]['last_edit'];
+	});
 	$output = array();
 	foreach ($movies as $movie) {
-		array_push($output, array("movie" => $movie['title'].' ('.$movie['year'].')'));
+		array_push($output, array("movie" => $movie['title'].' ('.$movie['info']['year'].')'));
 	}
+	$output = array_slice($output, 0, 10);
 	echo json_encode($output);
 	die;
+	
 }
 
 
@@ -242,6 +235,7 @@ function get_absolute_path($path) {
 }
 
 function querySB($cmd, $id = '', $season = '') {
+	
 	global $sb, $cacheTTL;
 	if($id == '') {
 		$cache = './cache/'.$cmd.'.json';
@@ -254,6 +248,23 @@ function querySB($cmd, $id = '', $season = '') {
 	$json = file_get_contents($cache);
 	$data = current(json_decode($json, true));
 	return $data;
+	
+}
+
+function queryCP($cmd, $params = '') {
+	
+	global $cp, $cacheTTL;
+	if($params != '') {
+		$params = '?'.$params;
+	}
+	$cache = './cache/'.$cmd.'.json';
+	if (!file_exists($cache) || filemtime($cache) < time()-$cacheTTL) {
+		file_put_contents($cache, file_get_contents('http://'.$cp['host'].':'.$cp['port'].$cp['path'].'/api/'.$cp['key'].'/'.$cmd.'/'.$params));
+	}
+	$json = file_get_contents($cache);
+	$data = current(json_decode($json, true));
+	return $data;
+	
 }
 
 ?>
\ No newline at end of file
diff --git a/config.php-dist b/config.php-dist
index 8e08ddfa99eb4b0729b8111e76d76776ca6fc596..d316bb1e3414eec732d127c0ec28865f28aecc01 100644
--- a/config.php-dist
+++ b/config.php-dist
@@ -1,13 +1,17 @@
 <?php
 
-$cpPath = '/opt/couchpotato';
-
 $sb['host'] = 'localhost';
-$sb['post'] = '8080';
+$sb['post'] = '8081';
 $sb['path'] = '/';
 $sb['key'] = 'YOUR-SICKBEARD-API-KEY';
 $sb['ssl'] = false;
 
+$cp['host'] = 'localhost';
+$cp['post'] = '8082';
+$cp['path'] = '/';
+$cp['key'] = 'YOUR-COUCHPOTATO-KEY';
+$cp['ssl'] = false;
+
 $showsPath = '/mnt/storage/media/tv';
 $moviesPath = '/mnt/storage/media/movies';
 
diff --git a/js/mediarack.js b/js/mediarack.js
index 139da29b1fea8b50f07db236df1452cbd258c799..098acd618dd360868db6c3d78784e81bfaf53611 100644
--- a/js/mediarack.js
+++ b/js/mediarack.js
@@ -182,6 +182,7 @@ function getShows() {
 }
 
 function getEpisodes(show, season) {
+	$("#loading").show();
 	$.getJSON('api.php', {
 		'get': 'episodes',
 		'show': show,
@@ -222,6 +223,7 @@ function getEpisodes(show, season) {
 					getEpisodes($(this).parent().parent().parent().data('showid'), $(this).data('season'));
 				});
 			});
+			$("#loading").hide();
 		}
 	);
 }
@@ -236,11 +238,11 @@ function getMovies() {
 			var i = 0;
 			$.each(data, function (key, movie) {
 				var divMovieContainer = $('<div class="movie panel panel-default" data-imdb="'+movie.imdb+'" id="movie_'+movie.imdb+'"></div>');
-				var divMovieHeader = $('<div class="movieName panel-heading"><h2 class="panel-title text-center"><img class="movieLogo lazy" alt="'+movie.title+'" data-original="api.php?get=logo&movie='+escape(movie.title+' ('+movie.year+')')+'" src="" /></h2></div>');
-				var divMovieBody = $('<div class="panel-body lazy" data-original="api.php?get=fanart&movie='+escape(movie.title+' ('+movie.year+')')+'"></div>');
-				var divMoviePoster = $('<div class="col-md-2 text-center"><a href="#" class="thumbnail"><img id="poster_'+movie.imdb+'" class="moviePoster lazy" data-original="api.php?get=poster&movie='+escape(movie.title+' ('+movie.year+')')+'" src="img/no_poster.jpg" /></a></div>');
+				var divMovieHeader = $('<div class="movieName panel-heading"><h2 class="panel-title text-center"><img class="movieLogo lazy" alt="'+movie.title+'" data-original="api.php?get=logo&movie='+escape(movie.folder)+'" src="" /></h2></div>');
+				var divMovieBody = $('<div class="panel-body lazy" data-original="api.php?get=fanart&movie='+escape(movie.folder)+'"></div>');
+				var divMoviePoster = $('<div class="col-md-2 text-center"><a href="#" class="thumbnail"><img id="poster_'+movie.imdb+'" class="moviePoster lazy" data-original="api.php?get=poster&movie='+escape(movie.folder)+'" src="img/no_poster.jpg" /></a></div>');
 				var divMoviePlot = $('<div class="moviePlot col-md-10 panel panel-default"><div class="panel-heading">'+movie.tagline+'</div><div class="panel-body">'+movie.plot+'</div></div>');
-				var divMovieFooter =$('<div class="panel-footer">IMDB Rating: </div>');
+				var divMovieFooter =$('<div class="panel-footer text-right">IMDB Rating: '+movie.rating+'</div>');
 				divMovieContainer.append(divMovieHeader);
 				divMovieContainer.append(divMovieBody);
 				divMovieBody.append(divMoviePoster);
@@ -269,9 +271,9 @@ function getMovies() {
 				});
 				divMovies.append(divMovieContainer);
 				if(i < 5) {
-					divMovieHeader.find("img.movieLogo").attr('src', 'api.php?get=logo&movie='+escape(movie.title+' ('+movie.year+')')).removeClass('lazy');
-					divMovieBody.css('background-image', 'url(api.php?get=fanart&movie='+escape(movie.title+' ('+movie.year+')')+')').removeClass('lazy');
-					divMoviePoster.find("img.moviePoster").attr('src', 'api.php?get=poster&movie='+escape(movie.title+' ('+movie.year+')')).removeClass('lazy');
+					divMovieHeader.find("img.movieLogo").attr('src', 'api.php?get=logo&movie='+escape(movie.folder)).removeClass('lazy');
+					divMovieBody.css('background-image', 'url(api.php?get=fanart&movie='+escape(movie.folder)).removeClass('lazy');
+					divMoviePoster.find("img.moviePoster").attr('src', 'api.php?get=poster&movie='+escape(movie.folder)).removeClass('lazy');
 				}
 				i++;
 			});