mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-11-01 09:26:45 -07:00 
			
		
		
		
	[XHamster] Support xhday.com alias, extract uploader_id
				
					
				
			* support xhday.com alias for xhamster.com (resolves #31023)
  Authored by: dirkf
* extract `uploader_id`:
  from 908b56eaf7
  (PR https://github.com/yt-dlp/yt-dlp/pull/844)
  Authored by: octotherp
			
			
This commit is contained in:
		@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					# coding: utf-8
 | 
				
			||||||
from __future__ import unicode_literals
 | 
					from __future__ import unicode_literals
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import itertools
 | 
					import itertools
 | 
				
			||||||
@@ -23,7 +24,7 @@ from ..utils import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class XHamsterIE(InfoExtractor):
 | 
					class XHamsterIE(InfoExtractor):
 | 
				
			||||||
    _DOMAINS = r'(?:xhamster\.(?:com|one|desi)|xhms\.pro|xhamster\d+\.com)'
 | 
					    _DOMAINS = r'(?:xhamster\.(?:com|one|desi)|xhms\.pro|xhamster\d+\.com|xhday\.com)'
 | 
				
			||||||
    _VALID_URL = r'''(?x)
 | 
					    _VALID_URL = r'''(?x)
 | 
				
			||||||
                    https?://
 | 
					                    https?://
 | 
				
			||||||
                        (?:.+?\.)?%s/
 | 
					                        (?:.+?\.)?%s/
 | 
				
			||||||
@@ -34,7 +35,7 @@ class XHamsterIE(InfoExtractor):
 | 
				
			|||||||
                    ''' % _DOMAINS
 | 
					                    ''' % _DOMAINS
 | 
				
			||||||
    _TESTS = [{
 | 
					    _TESTS = [{
 | 
				
			||||||
        'url': 'https://xhamster.com/videos/femaleagent-shy-beauty-takes-the-bait-1509445',
 | 
					        'url': 'https://xhamster.com/videos/femaleagent-shy-beauty-takes-the-bait-1509445',
 | 
				
			||||||
        'md5': '98b4687efb1ffd331c4197854dc09e8f',
 | 
					        'md5': '34e1ab926db5dc2750fed9e1f34304bb',
 | 
				
			||||||
        'info_dict': {
 | 
					        'info_dict': {
 | 
				
			||||||
            'id': '1509445',
 | 
					            'id': '1509445',
 | 
				
			||||||
            'display_id': 'femaleagent-shy-beauty-takes-the-bait',
 | 
					            'display_id': 'femaleagent-shy-beauty-takes-the-bait',
 | 
				
			||||||
@@ -43,6 +44,7 @@ class XHamsterIE(InfoExtractor):
 | 
				
			|||||||
            'timestamp': 1350194821,
 | 
					            'timestamp': 1350194821,
 | 
				
			||||||
            'upload_date': '20121014',
 | 
					            'upload_date': '20121014',
 | 
				
			||||||
            'uploader': 'Ruseful2011',
 | 
					            'uploader': 'Ruseful2011',
 | 
				
			||||||
 | 
					            'uploader_id': 'ruseful2011',
 | 
				
			||||||
            'duration': 893,
 | 
					            'duration': 893,
 | 
				
			||||||
            'age_limit': 18,
 | 
					            'age_limit': 18,
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
@@ -72,6 +74,7 @@ class XHamsterIE(InfoExtractor):
 | 
				
			|||||||
            'timestamp': 1454948101,
 | 
					            'timestamp': 1454948101,
 | 
				
			||||||
            'upload_date': '20160208',
 | 
					            'upload_date': '20160208',
 | 
				
			||||||
            'uploader': 'parejafree',
 | 
					            'uploader': 'parejafree',
 | 
				
			||||||
 | 
					            'uploader_id': 'parejafree',
 | 
				
			||||||
            'duration': 72,
 | 
					            'duration': 72,
 | 
				
			||||||
            'age_limit': 18,
 | 
					            'age_limit': 18,
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
@@ -117,6 +120,9 @@ class XHamsterIE(InfoExtractor):
 | 
				
			|||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
        'url': 'http://de.xhamster.com/videos/skinny-girl-fucks-herself-hard-in-the-forest-xhnBJZx',
 | 
					        'url': 'http://de.xhamster.com/videos/skinny-girl-fucks-herself-hard-in-the-forest-xhnBJZx',
 | 
				
			||||||
        'only_matching': True,
 | 
					        'only_matching': True,
 | 
				
			||||||
 | 
					    }, {
 | 
				
			||||||
 | 
					        'url': 'https://xhday.com/videos/strapless-threesome-xhh7yVf',
 | 
				
			||||||
 | 
					        'only_matching': True,
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _real_extract(self, url):
 | 
					    def _real_extract(self, url):
 | 
				
			||||||
@@ -245,6 +251,7 @@ class XHamsterIE(InfoExtractor):
 | 
				
			|||||||
            else:
 | 
					            else:
 | 
				
			||||||
                categories = None
 | 
					                categories = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            uploader_url = url_or_none(try_get(video, lambda x: x['author']['pageURL']))
 | 
				
			||||||
            return {
 | 
					            return {
 | 
				
			||||||
                'id': video_id,
 | 
					                'id': video_id,
 | 
				
			||||||
                'display_id': display_id,
 | 
					                'display_id': display_id,
 | 
				
			||||||
@@ -253,6 +260,8 @@ class XHamsterIE(InfoExtractor):
 | 
				
			|||||||
                'timestamp': int_or_none(video.get('created')),
 | 
					                'timestamp': int_or_none(video.get('created')),
 | 
				
			||||||
                'uploader': try_get(
 | 
					                'uploader': try_get(
 | 
				
			||||||
                    video, lambda x: x['author']['name'], compat_str),
 | 
					                    video, lambda x: x['author']['name'], compat_str),
 | 
				
			||||||
 | 
					                'uploader_url': uploader_url,
 | 
				
			||||||
 | 
					                'uploader_id': uploader_url.split('/')[-1] if uploader_url else None,
 | 
				
			||||||
                'thumbnail': video.get('thumbURL'),
 | 
					                'thumbnail': video.get('thumbURL'),
 | 
				
			||||||
                'duration': int_or_none(video.get('duration')),
 | 
					                'duration': int_or_none(video.get('duration')),
 | 
				
			||||||
                'view_count': int_or_none(video.get('views')),
 | 
					                'view_count': int_or_none(video.get('views')),
 | 
				
			||||||
@@ -261,7 +270,7 @@ class XHamsterIE(InfoExtractor):
 | 
				
			|||||||
                'dislike_count': int_or_none(try_get(
 | 
					                'dislike_count': int_or_none(try_get(
 | 
				
			||||||
                    video, lambda x: x['rating']['dislikes'], int)),
 | 
					                    video, lambda x: x['rating']['dislikes'], int)),
 | 
				
			||||||
                'comment_count': int_or_none(video.get('views')),
 | 
					                'comment_count': int_or_none(video.get('views')),
 | 
				
			||||||
                'age_limit': age_limit,
 | 
					                'age_limit': age_limit if age_limit is not None else 18,
 | 
				
			||||||
                'categories': categories,
 | 
					                'categories': categories,
 | 
				
			||||||
                'formats': formats,
 | 
					                'formats': formats,
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -352,6 +361,7 @@ class XHamsterIE(InfoExtractor):
 | 
				
			|||||||
            'description': description,
 | 
					            'description': description,
 | 
				
			||||||
            'upload_date': upload_date,
 | 
					            'upload_date': upload_date,
 | 
				
			||||||
            'uploader': uploader,
 | 
					            'uploader': uploader,
 | 
				
			||||||
 | 
					            'uploader_id': uploader.lower() if uploader else None,
 | 
				
			||||||
            'thumbnail': thumbnail,
 | 
					            'thumbnail': thumbnail,
 | 
				
			||||||
            'duration': duration,
 | 
					            'duration': duration,
 | 
				
			||||||
            'view_count': view_count,
 | 
					            'view_count': view_count,
 | 
				
			||||||
@@ -420,6 +430,9 @@ class XHamsterUserIE(InfoExtractor):
 | 
				
			|||||||
            'id': 'firatkaan',
 | 
					            'id': 'firatkaan',
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        'playlist_mincount': 1,
 | 
					        'playlist_mincount': 1,
 | 
				
			||||||
 | 
					    }, {
 | 
				
			||||||
 | 
					        'url': 'https://xhday.com/users/mobhunter',
 | 
				
			||||||
 | 
					        'only_matching': True,
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _entries(self, user_id):
 | 
					    def _entries(self, user_id):
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user