Merge remote-tracking branch 'naglis/wistia'
authorPhilipp Hagemeister <phihag@phihag.de>
Thu, 25 Sep 2014 00:03:49 +0000 (02:03 +0200)
committerPhilipp Hagemeister <phihag@phihag.de>
Thu, 25 Sep 2014 00:03:49 +0000 (02:03 +0200)
1  2 
youtube_dl/extractor/generic.py

index 0dcbb39dbdeea5c69069cc4cde2c33e5167e577f,2d77f604abe7772c4af6ddfd798028420aae23f7..367f930dd093567b1c033961fdf0326ded47dbba
@@@ -382,6 -382,19 +382,19 @@@ class GenericIE(InfoExtractor)
                  'thumbnail': 're:^https?://.*\.jpg$',
              },
          },
+         # Wistia embed
+         {
+             'url': 'http://education-portal.com/academy/lesson/north-american-exploration-failed-colonies-of-spain-france-england.html#lesson',
+             'md5': '8788b683c777a5cf25621eaf286d0c23',
+             'info_dict': {
+                 'id': '1cfaf6b7ea',
+                 'ext': 'mov',
+                 'title': 'md5:51364a8d3d009997ba99656004b5e20d',
+                 'duration': 643.0,
+                 'filesize': 182808282,
+                 'uploader': 'education-portal.com',
+             },
+         },
      ]
  
      def report_download_webpage(self, video_id):
  
          # Helper method
          def _playlist_from_matches(matches, getter, ie=None):
 -            urlrs = orderedSet(self.url_result(getter(m), ie) for m in matches)
 +            urlrs = orderedSet(
 +                self.url_result(self._proto_relative_url(getter(m)), ie)
 +                for m in matches)
              return self.playlist_result(
                  urlrs, playlist_id=video_id, playlist_title=video_title)
  
              )
              (["\'])
                  (?P<url>(?:https?:)?//(?:www\.)?youtube(?:-nocookie)?\.com/
 -                (?:embed|v)/.+?)
 +                (?:embed|v|p)/.+?)
              \1''', webpage)
          if matches:
              return _playlist_from_matches(
 -                matches, lambda m: unescapeHTML(m[1]), ie='Youtube')
 +                matches, lambda m: unescapeHTML(m[1]))
  
          # Look for embedded Dailymotion player
          matches = re.findall(
                  'title': video_title,
                  'id': video_id,
              }
+         match = re.search(r'(?:id=["\']wistia_|data-wistiaid=["\']|Wistia\.embed\(["\'])(?P<id>[^"\']+)', webpage)
+         if match:
+             return {
+                 '_type': 'url_transparent',
+                 'url': 'http://fast.wistia.net/embed/iframe/{0:}'.format(match.group('id')),
+                 'ie_key': 'Wistia',
+                 'uploader': video_uploader,
+                 'title': video_title,
+                 'id': match.group('id')
+             }
  
          # Look for embedded blip.tv player
          mobj = re.search(r'<meta\s[^>]*https?://api\.blip\.tv/\w+/redirect/\w+/(\d+)', webpage)