Ver Fonte

Fix metacafe.com and UTF8 output filenames

Ricardo Garcia há 17 anos atrás
pai
commit
2546e7679f
1 ficheiros alterados com 6 adições e 5 exclusões
  1. 6 5
      youtube-dl

+ 6 - 5
youtube-dl

@@ -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'),