]> gitweb @ CieloNegro.org - youtube-dl.git/blobdiff - youtube_dl/InfoExtractors.py
Fix EscapistMagazine IE
[youtube-dl.git] / youtube_dl / InfoExtractors.py
index 0b5d76bdbd89f393340afdec9e0a79b86df615c8..499d9b1aed8c3d4177539179f515d8abdcf981d8 100644 (file)
@@ -1232,7 +1232,7 @@ class YoutubeSearchIE(InfoExtractor):
                InfoExtractor.__init__(self, downloader)
 
        def report_download_page(self, query, pagenum):
-               """Report attempt to download playlist page with given number."""
+               """Report attempt to download search page with given number."""
                query = query.decode(preferredencoding())
                self._downloader.to_screen(u'[youtube] query "%s": Downloading page %s' % (query, pagenum))
 
@@ -1468,8 +1468,8 @@ class YoutubePlaylistIE(InfoExtractor):
 
        _VALID_URL = r'(?:https?://)?(?:\w+\.)?youtube\.com/(?:(?:course|view_play_list|my_playlists|artist|playlist)\?.*?(p|a|list)=|user/.*?/user/|p/|user/.*?#[pg]/c/)(?:PL)?([0-9A-Za-z-_]+)(?:/.*?/([0-9A-Za-z_-]+))?.*'
        _TEMPLATE_URL = 'http://www.youtube.com/%s?%s=%s&page=%s&gl=US&hl=en'
-       _VIDEO_INDICATOR_TEMPLATE = r'/watch\?v=(.+?)&list=PL%s&'
-       _MORE_PAGES_INDICATOR = r'(?m)>\s*Next\s*</a>'
+       _VIDEO_INDICATOR_TEMPLATE = r'/watch\?v=(.+?)&amp;list=(PL)?%s&'
+       _MORE_PAGES_INDICATOR = r'yt-uix-pager-next'
        IE_NAME = u'youtube:playlist'
 
        def __init__(self, downloader=None):
@@ -2193,12 +2193,14 @@ class EscapistIE(InfoExtractor):
 
                self.report_extraction(showName)
                try:
-                       webPageBytes = urllib2.urlopen(url).read()
+                       webPage = urllib2.urlopen(url)
+                       webPageBytes = webPage.read()
+                       m = re.match(r'text/html; charset="?([^"]+)"?', webPage.headers['Content-Type'])
+                       webPage = webPageBytes.decode(m.group(1) if m else 'utf-8')
                except (urllib2.URLError, httplib.HTTPException, socket.error), err:
                        self._downloader.trouble(u'ERROR: unable to download webpage: ' + unicode(err))
                        return
 
-               webPage = webPageBytes.decode('utf-8')
                descMatch = re.search('<meta name="description" content="([^"]*)"', webPage)
                description = unescapeHTML(descMatch.group(1))
                imgMatch = re.search('<meta property="og:image" content="([^"]*)"', webPage)