mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 09:17:07 -05:00 
			
		
		
		
	Merge remote-tracking branch 'naglis/wistia'
This commit is contained in:
		@@ -382,6 +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):
 | 
			
		||||
@@ -656,6 +669,16 @@ class GenericIE(InfoExtractor):
 | 
			
		||||
                '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)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,14 @@
 | 
			
		||||
from __future__ import unicode_literals
 | 
			
		||||
 | 
			
		||||
import json
 | 
			
		||||
import re
 | 
			
		||||
 | 
			
		||||
from .common import InfoExtractor
 | 
			
		||||
from ..utils import ExtractorError, compat_urllib_request
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class WistiaIE(InfoExtractor):
 | 
			
		||||
    _VALID_URL = r'https?://(?:fast\.)?wistia\.net/embed/iframe/(?P<id>[a-z0-9]+)'
 | 
			
		||||
    _API_URL = 'http://fast.wistia.com/embed/medias/{0:}.json'
 | 
			
		||||
 | 
			
		||||
    _TEST = {
 | 
			
		||||
        'url': 'http://fast.wistia.net/embed/iframe/sh7fpupwlt',
 | 
			
		||||
@@ -24,11 +25,13 @@ class WistiaIE(InfoExtractor):
 | 
			
		||||
        mobj = re.match(self._VALID_URL, url)
 | 
			
		||||
        video_id = mobj.group('id')
 | 
			
		||||
 | 
			
		||||
        webpage = self._download_webpage(url, video_id)
 | 
			
		||||
        data_json = self._html_search_regex(
 | 
			
		||||
            r'Wistia\.iframeInit\((.*?), {}\);', webpage, 'video data')
 | 
			
		||||
 | 
			
		||||
        data = json.loads(data_json)
 | 
			
		||||
        request = compat_urllib_request.Request(self._API_URL.format(video_id))
 | 
			
		||||
        request.add_header('Referer', url)  # Some videos require this.
 | 
			
		||||
        data_json = self._download_json(request, video_id)
 | 
			
		||||
        if data_json.get('error'):
 | 
			
		||||
            raise ExtractorError('Error while getting the playlist',
 | 
			
		||||
                                 expected=True)
 | 
			
		||||
        data = data_json['media']
 | 
			
		||||
 | 
			
		||||
        formats = []
 | 
			
		||||
        thumbnails = []
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user