[generic] Add support for rutube embeds
This commit is contained in:
		
							parent
							
								
									bc82f22879
								
							
						
					
					
						commit
						eb3079b6ce
					
				@ -84,6 +84,7 @@ from .twentymin import TwentyMinutenIE
 | 
				
			|||||||
from .ustream import UstreamIE
 | 
					from .ustream import UstreamIE
 | 
				
			||||||
from .openload import OpenloadIE
 | 
					from .openload import OpenloadIE
 | 
				
			||||||
from .videopress import VideoPressIE
 | 
					from .videopress import VideoPressIE
 | 
				
			||||||
 | 
					from .rutube import RutubeIE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class GenericIE(InfoExtractor):
 | 
					class GenericIE(InfoExtractor):
 | 
				
			||||||
@ -1502,6 +1503,23 @@ class GenericIE(InfoExtractor):
 | 
				
			|||||||
            },
 | 
					            },
 | 
				
			||||||
            'add_ie': [VideoPressIE.ie_key()],
 | 
					            'add_ie': [VideoPressIE.ie_key()],
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            # Rutube embed
 | 
				
			||||||
 | 
					            'url': 'http://magazzino.friday.ru/videos/vipuski/kazan-2',
 | 
				
			||||||
 | 
					            'info_dict': {
 | 
				
			||||||
 | 
					                'id': '9b3d5bee0a8740bf70dfd29d3ea43541',
 | 
				
			||||||
 | 
					                'ext': 'flv',
 | 
				
			||||||
 | 
					                'title': 'Магаззино: Казань 2',
 | 
				
			||||||
 | 
					                'description': 'md5:99bccdfac2269f0e8fdbc4bbc9db184a',
 | 
				
			||||||
 | 
					                'uploader': 'Магаззино',
 | 
				
			||||||
 | 
					                'upload_date': '20170228',
 | 
				
			||||||
 | 
					                'uploader_id': '996642',
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            'params': {
 | 
				
			||||||
 | 
					                'skip_download': True,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            'add_ie': [RutubeIE.ie_key()],
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            # ThePlatform embedded with whitespaces in URLs
 | 
					            # ThePlatform embedded with whitespaces in URLs
 | 
				
			||||||
            'url': 'http://www.golfchannel.com/topics/shows/golftalkcentral.htm',
 | 
					            'url': 'http://www.golfchannel.com/topics/shows/golftalkcentral.htm',
 | 
				
			||||||
@ -2480,6 +2498,12 @@ class GenericIE(InfoExtractor):
 | 
				
			|||||||
            return _playlist_from_matches(
 | 
					            return _playlist_from_matches(
 | 
				
			||||||
                videopress_urls, ie=VideoPressIE.ie_key())
 | 
					                videopress_urls, ie=VideoPressIE.ie_key())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Look for Rutube embeds
 | 
				
			||||||
 | 
					        rutube_urls = RutubeIE._extract_urls(webpage)
 | 
				
			||||||
 | 
					        if rutube_urls:
 | 
				
			||||||
 | 
					            return _playlist_from_matches(
 | 
				
			||||||
 | 
					                rutube_urls, ie=RutubeIE.ie_key())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Looking for http://schema.org/VideoObject
 | 
					        # Looking for http://schema.org/VideoObject
 | 
				
			||||||
        json_ld = self._search_json_ld(
 | 
					        json_ld = self._search_json_ld(
 | 
				
			||||||
            webpage, video_id, default={}, expected_type='VideoObject')
 | 
					            webpage, video_id, default={}, expected_type='VideoObject')
 | 
				
			||||||
 | 
				
			|||||||
@ -44,6 +44,12 @@ class RutubeIE(InfoExtractor):
 | 
				
			|||||||
        'only_matching': True,
 | 
					        'only_matching': True,
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @staticmethod
 | 
				
			||||||
 | 
					    def _extract_urls(webpage):
 | 
				
			||||||
 | 
					        return [mobj.group('url') for mobj in re.finditer(
 | 
				
			||||||
 | 
					            r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//rutube\.ru/embed/[\da-z]{32}.*?)\1',
 | 
				
			||||||
 | 
					            webpage)]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _real_extract(self, url):
 | 
					    def _real_extract(self, url):
 | 
				
			||||||
        video_id = self._match_id(url)
 | 
					        video_id = self._match_id(url)
 | 
				
			||||||
        video = self._download_json(
 | 
					        video = self._download_json(
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user