diff --git a/includes/MediaYouKuStreamWrapper.inc b/includes/MediaYouKuStreamWrapper.inc
--- a/includes/MediaYouKuStreamWrapper.inc
+++ b/includes/MediaYouKuStreamWrapper.inc
@@ -10,7 +10,7 @@
  *  $youku = new ResourceYouKuStreamWrapper('youku://?v=[video-code]');
  */
 class MediaYouKuStreamWrapper extends MediaReadOnlyStreamWrapper {
-  protected $base_url = 'http://youku.com/watch';
+  protected $base_url = 'http://v.youku.com/v_show/id_';
 
   function getTarget($f) {
     return FALSE;
@@ -22,12 +22,13 @@ class MediaYouKuStreamWrapper extends MediaReadOnlyStreamWrapper {
 
   function getOriginalThumbnailPath() {
     $parts = $this->get_parameters();
-    $link = 'http://v.youku.com/v_show/id_'. check_plain($parts['v']) .'=.html';
+    $link = 'http://v.youku.com/player/getPlayList/VideoIDS/' . urlencode($parts['v']) . '/timezone/+08/version/5/source/out?password=&ran=2513&n=3';
     $content = file_get_contents($link);
-    preg_match_all("/\+0800\|(.*?)\|\">/i",$content,$img);
-    $img[1][0] = str_replace("ykimg.com/0", "ykimg.com/1", $img[1][0]);
-    return $img[1][0];
-    
+    $json = @json_decode($content, true);
+    if(!empty($json['data'][0]['logo'])) {
+       return $json['data'][0]['logo'];
+    }
+    return false;
   }
 
   function getLocalThumbnailPath() {
@@ -40,4 +41,10 @@ class MediaYouKuStreamWrapper extends MediaReadOnlyStreamWrapper {
     }
     return $local_path;
   }
+
+  function interpolateUrl() {
+    if ($parameters = $this->get_parameters()) {
+      return $this->base_url . $parameters['v'] . '.html';
+    }
+  }
 }
