diff options
| -rw-r--r-- | youtube_dl/extractor/appletrailers.py | 28 | 
1 files changed, 15 insertions, 13 deletions
| diff --git a/youtube_dl/extractor/appletrailers.py b/youtube_dl/extractor/appletrailers.py index 922cede05..fc5d6825e 100644 --- a/youtube_dl/extractor/appletrailers.py +++ b/youtube_dl/extractor/appletrailers.py @@ -16,9 +16,10 @@ class AppleTrailersIE(InfoExtractor):          "url": "http://trailers.apple.com/trailers/wb/manofsteel/",          "playlist": [              { -                "file": "manofsteel-trailer4.mov",                  "md5": "d97a8e575432dbcb81b7c3acb741f8a8",                  "info_dict": { +                    "id": "manofsteel-trailer4", +                    "ext": "mov",                      "duration": 111,                      "title": "Trailer 4",                      "upload_date": "20130523", @@ -26,9 +27,10 @@ class AppleTrailersIE(InfoExtractor):                  },              },              { -                "file": "manofsteel-trailer3.mov",                  "md5": "b8017b7131b721fb4e8d6f49e1df908c",                  "info_dict": { +                    "id": "manofsteel-trailer3", +                    "ext": "mov",                      "duration": 182,                      "title": "Trailer 3",                      "upload_date": "20130417", @@ -36,9 +38,10 @@ class AppleTrailersIE(InfoExtractor):                  },              },              { -                "file": "manofsteel-trailer.mov",                  "md5": "d0f1e1150989b9924679b441f3404d48",                  "info_dict": { +                    "id": "manofsteel-trailer", +                    "ext": "mov",                      "duration": 148,                      "title": "Trailer",                      "upload_date": "20121212", @@ -46,15 +49,16 @@ class AppleTrailersIE(InfoExtractor):                  },              },              { -                "file": "manofsteel-teaser.mov",                  "md5": "5fe08795b943eb2e757fa95cb6def1cb",                  "info_dict": { +                    "id": "manofsteel-teaser", +                    "ext": "mov",                      "duration": 93,                      "title": "Teaser",                      "upload_date": "20120721",                      "uploader_id": "wb",                  }, -            } +            },          ]      } @@ -65,16 +69,16 @@ class AppleTrailersIE(InfoExtractor):          movie = mobj.group('movie')          uploader_id = mobj.group('company') -        playlist_url = compat_urlparse.urljoin(url, u'includes/playlists/itunes.inc') +        playlist_url = compat_urlparse.urljoin(url, 'includes/playlists/itunes.inc')          def fix_html(s): -            s = re.sub(r'(?s)<script[^<]*?>.*?</script>', u'', s) +            s = re.sub(r'(?s)<script[^<]*?>.*?</script>', '', s)              s = re.sub(r'<img ([^<]*?)>', r'<img \1/>', s)              # The ' in the onClick attributes are not escaped, it couldn't be parsed              # like: http://trailers.apple.com/trailers/wb/gravity/              def _clean_json(m): -                return u'iTunes.playURL(%s);' % m.group(1).replace('\'', ''') +                return 'iTunes.playURL(%s);' % m.group(1).replace('\'', ''')              s = re.sub(self._JSON_RE, _clean_json, s) -            s = u'<html>' + s + u'</html>' +            s = '<html>' + s + u'</html>'              return s          doc = self._download_xml(playlist_url, movie, transform_source=fix_html) @@ -82,7 +86,7 @@ class AppleTrailersIE(InfoExtractor):          for li in doc.findall('./div/ul/li'):              on_click = li.find('.//a').attrib['onClick']              trailer_info_json = self._search_regex(self._JSON_RE, -                on_click, u'trailer info') +                on_click, 'trailer info')              trailer_info = json.loads(trailer_info_json)              title = trailer_info['title']              video_id = movie + '-' + re.sub(r'[^a-zA-Z0-9]', '', title).lower() @@ -98,8 +102,7 @@ class AppleTrailersIE(InfoExtractor):              first_url = trailer_info['url']              trailer_id = first_url.split('/')[-1].rpartition('_')[0].lower()              settings_json_url = compat_urlparse.urljoin(url, 'includes/settings/%s.json' % trailer_id) -            settings_json = self._download_webpage(settings_json_url, trailer_id, u'Downloading settings json') -            settings = json.loads(settings_json) +            settings = self._download_json(settings_json_url, trailer_id, 'Downloading settings json')              formats = []              for format in settings['metadata']['sizes']: @@ -107,7 +110,6 @@ class AppleTrailersIE(InfoExtractor):                  format_url = re.sub(r'_(\d*p.mov)', r'_h\1', format['src'])                  formats.append({                      'url': format_url, -                    'ext': determine_ext(format_url),                      'format': format['type'],                      'width': format['width'],                      'height': int(format['height']), | 
