[slideslive] add support for url and vimeo service names(closes #23414)
This commit is contained in:
		
							parent
							
								
									b33a05d221
								
							
						
					
					
						commit
						73d8f3a634
					
				
					 1 changed files with 28 additions and 13 deletions
				
			
		| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
from __future__ import unicode_literals
 | 
					from __future__ import unicode_literals
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .common import InfoExtractor
 | 
					from .common import InfoExtractor
 | 
				
			||||||
from ..utils import ExtractorError
 | 
					from ..utils import smuggle_url
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class SlidesLiveIE(InfoExtractor):
 | 
					class SlidesLiveIE(InfoExtractor):
 | 
				
			||||||
| 
						 | 
					@ -24,6 +24,14 @@ class SlidesLiveIE(InfoExtractor):
 | 
				
			||||||
        # video_service_name = youtube
 | 
					        # video_service_name = youtube
 | 
				
			||||||
        'url': 'https://slideslive.com/38903721/magic-a-scientific-resurrection-of-an-esoteric-legend',
 | 
					        'url': 'https://slideslive.com/38903721/magic-a-scientific-resurrection-of-an-esoteric-legend',
 | 
				
			||||||
        'only_matching': True,
 | 
					        'only_matching': True,
 | 
				
			||||||
 | 
					    }, {
 | 
				
			||||||
 | 
					        # video_service_name = url
 | 
				
			||||||
 | 
					        'url': 'https://slideslive.com/38922070/learning-transferable-skills-1',
 | 
				
			||||||
 | 
					        'only_matching': True,
 | 
				
			||||||
 | 
					    }, {
 | 
				
			||||||
 | 
					        # video_service_name = vimeo
 | 
				
			||||||
 | 
					        'url': 'https://slideslive.com/38921896/retrospectives-a-venue-for-selfreflection-in-ml-research-3',
 | 
				
			||||||
 | 
					        'only_matching': True,
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _real_extract(self, url):
 | 
					    def _real_extract(self, url):
 | 
				
			||||||
| 
						 | 
					@ -31,16 +39,23 @@ class SlidesLiveIE(InfoExtractor):
 | 
				
			||||||
        video_data = self._download_json(
 | 
					        video_data = self._download_json(
 | 
				
			||||||
            'https://ben.slideslive.com/player/' + video_id, video_id)
 | 
					            'https://ben.slideslive.com/player/' + video_id, video_id)
 | 
				
			||||||
        service_name = video_data['video_service_name'].lower()
 | 
					        service_name = video_data['video_service_name'].lower()
 | 
				
			||||||
        if service_name == 'youtube':
 | 
					        assert service_name in ('url', 'vimeo', 'youtube')
 | 
				
			||||||
            yt_video_id = video_data['video_service_id']
 | 
					        service_id = video_data['video_service_id']
 | 
				
			||||||
            return {
 | 
					        info = {
 | 
				
			||||||
                '_type': 'url_transparent',
 | 
					            'id': video_id,
 | 
				
			||||||
                'ie_key': 'Youtube',
 | 
					            'thumbnail': video_data.get('thumbnail'),
 | 
				
			||||||
                'id': yt_video_id,
 | 
					            'url': service_id,
 | 
				
			||||||
                'thumbnail': video_data.get('thumbnail'),
 | 
					        }
 | 
				
			||||||
                'title': video_data.get('title'),
 | 
					        if service_name == 'url':
 | 
				
			||||||
                'url': yt_video_id,
 | 
					            info['title'] = video_data['title']
 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            raise ExtractorError(
 | 
					            info.update({
 | 
				
			||||||
                'Unsupported service name: {0}'.format(service_name), expected=True)
 | 
					                '_type': 'url_transparent',
 | 
				
			||||||
 | 
					                'ie_key': service_name.capitalize(),
 | 
				
			||||||
 | 
					                'title': video_data.get('title'),
 | 
				
			||||||
 | 
					            })
 | 
				
			||||||
 | 
					            if service_name == 'vimeo':
 | 
				
			||||||
 | 
					                info['url'] = smuggle_url(
 | 
				
			||||||
 | 
					                    'https://player.vimeo.com/video/' + service_id,
 | 
				
			||||||
 | 
					                    {'http_headers': {'Referer': url}})
 | 
				
			||||||
 | 
					        return info
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue