From 44ce2e8f31ab94066b209a37300462e51be9ecfb Mon Sep 17 00:00:00 2001
From: Mort Yao <mort.yao@gmail.com>
Date: Wed, 12 Dec 2012 02:32:26 +0100
Subject: [PATCH] YouTube: fix some major issues on parsing video titles (#38,
 #39)

---
 CHANGELOG.txt                 | 7 +++++++
 you_get/downloader/youtube.py | 6 +++++-
 you_get/version.py            | 4 ++--
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index e5e152f4..f8b24a1f 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1,6 +1,13 @@
 Changelog
 =========
 
+0.3dev-20121212
+---------------
+
+*Date: 2012-12-12*
+
+* YouTube: fix some major issues on parsing video titles.
+
 0.3dev-20121210
 ---------------
 
diff --git a/you_get/downloader/youtube.py b/you_get/downloader/youtube.py
index a759a3b8..43afd370 100644
--- a/you_get/downloader/youtube.py
+++ b/you_get/downloader/youtube.py
@@ -4,10 +4,14 @@ __all__ = ['youtube_download', 'youtube_download_by_id']
 
 from ..common import *
 
+import json
+
 def youtube_download_by_id(id, title = None, output_dir = '.', merge = True, info_only = False):
     html = request.urlopen('http://www.youtube.com/watch?v=' + id).read().decode('utf-8')
     
-    title = r1(r'"title": "([^"]+)"', html)
+    html = unescape_html(html)
+    yt_player_config = json.loads(r1(r'yt.playerConfig = ([^\n]+);\n', html))
+    title = yt_player_config['args']['title']
     title = unicodize(title)
     title = parse.unquote(title)
     title = escape_file_path(title)
diff --git a/you_get/version.py b/you_get/version.py
index 75577b60..79a88480 100644
--- a/you_get/version.py
+++ b/you_get/version.py
@@ -1,4 +1,4 @@
 #!/usr/bin/env python
 
-__version__ = '0.3dev-20121210'
-__date__ = '2012-12-10'
+__version__ = '0.3dev-20121212'
+__date__ = '2012-12-12'