[youporn] Add support form generic embeds
This commit is contained in:
		
							parent
							
								
									8fae1a04eb
								
							
						
					
					
						commit
						52c4c51556
					
				
					 2 changed files with 23 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -61,6 +61,7 @@ from .drtuber import DrTuberIE
 | 
			
		|||
from .redtube import RedTubeIE
 | 
			
		||||
from .tube8 import Tube8IE
 | 
			
		||||
from .spankwire import SpankwireIE
 | 
			
		||||
from .youporn import YouPornIE
 | 
			
		||||
from .vimeo import VimeoIE
 | 
			
		||||
from .dailymotion import DailymotionIE
 | 
			
		||||
from .dailymail import DailyMailIE
 | 
			
		||||
| 
						 | 
				
			
			@ -2721,6 +2722,11 @@ class GenericIE(InfoExtractor):
 | 
			
		|||
        if spankwire_urls:
 | 
			
		||||
            return self.playlist_from_matches(spankwire_urls, video_id, video_title, ie=SpankwireIE.ie_key())
 | 
			
		||||
 | 
			
		||||
        # Look for embedded YouPorn player
 | 
			
		||||
        youporn_urls = YouPornIE._extract_urls(webpage)
 | 
			
		||||
        if youporn_urls:
 | 
			
		||||
            return self.playlist_from_matches(youporn_urls, video_id, video_title, ie=YouPornIE.ie_key())
 | 
			
		||||
 | 
			
		||||
        # Look for embedded Tvigle player
 | 
			
		||||
        mobj = re.search(
 | 
			
		||||
            r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//cloud\.tvigle\.ru/video/.+?)\1', webpage)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,6 @@ import re
 | 
			
		|||
from .common import InfoExtractor
 | 
			
		||||
from ..utils import (
 | 
			
		||||
    int_or_none,
 | 
			
		||||
    sanitized_Request,
 | 
			
		||||
    str_to_int,
 | 
			
		||||
    unescapeHTML,
 | 
			
		||||
    unified_strdate,
 | 
			
		||||
| 
						 | 
				
			
			@ -15,7 +14,7 @@ from ..aes import aes_decrypt_text
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
class YouPornIE(InfoExtractor):
 | 
			
		||||
    _VALID_URL = r'https?://(?:www\.)?youporn\.com/watch/(?P<id>\d+)/(?P<display_id>[^/?#&]+)'
 | 
			
		||||
    _VALID_URL = r'https?://(?:www\.)?youporn\.com/(?:watch|embed)/(?P<id>\d+)(?:/(?P<display_id>[^/?#&]+))?'
 | 
			
		||||
    _TESTS = [{
 | 
			
		||||
        'url': 'http://www.youporn.com/watch/505835/sex-ed-is-it-safe-to-masturbate-daily/',
 | 
			
		||||
        'md5': '3744d24c50438cf5b6f6d59feb5055c2',
 | 
			
		||||
| 
						 | 
				
			
			@ -57,16 +56,28 @@ class YouPornIE(InfoExtractor):
 | 
			
		|||
        'params': {
 | 
			
		||||
            'skip_download': True,
 | 
			
		||||
        },
 | 
			
		||||
    }, {
 | 
			
		||||
        'url': 'https://www.youporn.com/embed/505835/sex-ed-is-it-safe-to-masturbate-daily/',
 | 
			
		||||
        'only_matching': True,
 | 
			
		||||
    }, {
 | 
			
		||||
        'url': 'http://www.youporn.com/watch/505835',
 | 
			
		||||
        'only_matching': True,
 | 
			
		||||
    }]
 | 
			
		||||
 | 
			
		||||
    @staticmethod
 | 
			
		||||
    def _extract_urls(webpage):
 | 
			
		||||
        return re.findall(
 | 
			
		||||
            r'<iframe[^>]+\bsrc=["\']((?:https?:)?//(?:www\.)?youporn\.com/embed/\d+)',
 | 
			
		||||
            webpage)
 | 
			
		||||
 | 
			
		||||
    def _real_extract(self, url):
 | 
			
		||||
        mobj = re.match(self._VALID_URL, url)
 | 
			
		||||
        video_id = mobj.group('id')
 | 
			
		||||
        display_id = mobj.group('display_id')
 | 
			
		||||
        display_id = mobj.group('display_id') or video_id
 | 
			
		||||
 | 
			
		||||
        request = sanitized_Request(url)
 | 
			
		||||
        request.add_header('Cookie', 'age_verified=1')
 | 
			
		||||
        webpage = self._download_webpage(request, display_id)
 | 
			
		||||
        webpage = self._download_webpage(
 | 
			
		||||
            'http://www.youporn.com/watch/%s' % video_id, display_id,
 | 
			
		||||
            headers={'Cookie': 'age_verified=1'})
 | 
			
		||||
 | 
			
		||||
        title = self._html_search_regex(
 | 
			
		||||
            r'(?s)<div[^>]+class=["\']watchVideoTitle[^>]+>(.+?)</div>',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue