Fix metacafe.com and UTF8 output filenames
authorRicardo Garcia <sarbalap+freshmeat@gmail.com>
Sat, 13 Sep 2008 11:23:24 +0000 (13:23 +0200)
committerRicardo Garcia <sarbalap+freshmeat@gmail.com>
Sun, 31 Oct 2010 10:23:35 +0000 (11:23 +0100)
youtube-dl

index ba534e10b8cb58cef9081796e5bfccf82057b646..ecc99b7c1bdf0f72c1992c3ea492bae95f82d506 100755 (executable)
@@ -4,6 +4,7 @@
 # License: Public domain code
 import htmlentitydefs
 import httplib
+import locale
 import math
 import netrc
 import os
@@ -592,7 +593,7 @@ class MetacafeIE(InfoExtractor):
        """Information Extractor for metacafe.com."""
 
        _VALID_URL = r'(?:http://)?(?:www\.)?metacafe\.com/watch/([^/]+)/([^/]+)/.*'
-       _DISCLAIMER = 'http://www.metacafe.com/disclaimer'
+       _DISCLAIMER = 'http://www.metacafe.com/family_filter/'
        _youtube_ie = None
 
        def __init__(self, youtube_ie, downloader=None):
@@ -631,10 +632,10 @@ class MetacafeIE(InfoExtractor):
 
                # Confirm age
                disclaimer_form = {
-                       'allowAdultContent': '1',
+                       'filters': '0',
                        'submit': "Continue - I'm over 18",
                        }
-               request = urllib2.Request('http://www.metacafe.com/watch/', urllib.urlencode(disclaimer_form), std_headers)
+               request = urllib2.Request('http://www.metacafe.com/', urllib.urlencode(disclaimer_form), std_headers)
                try:
                        self.report_age_confirmation()
                        disclaimer = urllib2.urlopen(request).read()
@@ -684,7 +685,7 @@ class MetacafeIE(InfoExtractor):
 
                video_url = '%s?__gda__=%s' % (mediaURL, gdaKey)
 
-               mobj = re.search(r'(?im)<meta name="title" content="Metacafe - ([^"]+)"', webpage)
+               mobj = re.search(r'(?im)<title>(.*) - Video</title>', webpage)
                if mobj is None:
                        self.to_stderr(u'ERROR: unable to extract title')
                        return [None]
@@ -909,7 +910,7 @@ if __name__ == '__main__':
                        'forcetitle': opts.gettitle,
                        'simulate': (opts.simulate or opts.geturl or opts.gettitle),
                        'format': opts.format,
-                       'outtmpl': ((opts.outtmpl is not None and opts.outtmpl.decode())
+                       'outtmpl': ((opts.outtmpl is not None and opts.outtmpl.decode(locale.getdefaultlocale()[1]))
                                or (opts.usetitle and u'%(stitle)s-%(id)s.%(ext)s')
                                or (opts.useliteral and u'%(title)s-%(id)s.%(ext)s')
                                or u'%(id)s.%(ext)s'),