mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[ie/MixchMovie] Add extractor (#10897)
Closes #10765 Authored by: Sakura286
This commit is contained in:
		| @@ -12,7 +12,7 @@ from ..utils.traversal import traverse_obj | ||||
| 
 | ||||
| class MixchIE(InfoExtractor): | ||||
|     IE_NAME = 'mixch' | ||||
|     _VALID_URL = r'https?://(?:www\.)?mixch\.tv/u/(?P<id>\d+)' | ||||
|     _VALID_URL = r'https?://mixch\.tv/u/(?P<id>\d+)' | ||||
| 
 | ||||
|     _TESTS = [{ | ||||
|         'url': 'https://mixch.tv/u/16943797/live', | ||||
| @@ -74,7 +74,7 @@ class MixchIE(InfoExtractor): | ||||
| 
 | ||||
| class MixchArchiveIE(InfoExtractor): | ||||
|     IE_NAME = 'mixch:archive' | ||||
|     _VALID_URL = r'https?://(?:www\.)?mixch\.tv/archive/(?P<id>\d+)' | ||||
|     _VALID_URL = r'https?://mixch\.tv/archive/(?P<id>\d+)' | ||||
| 
 | ||||
|     _TESTS = [{ | ||||
|         'url': 'https://mixch.tv/archive/421', | ||||
| @@ -116,3 +116,56 @@ class MixchArchiveIE(InfoExtractor): | ||||
|             'formats': self._extract_m3u8_formats(info_json['archiveURL'], video_id), | ||||
|             'thumbnail': traverse_obj(info_json, ('thumbnailURL', {url_or_none})), | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
| class MixchMovieIE(InfoExtractor): | ||||
|     IE_NAME = 'mixch:movie' | ||||
|     _VALID_URL = r'https?://mixch\.tv/m/(?P<id>\w+)' | ||||
| 
 | ||||
|     _TESTS = [{ | ||||
|         'url': 'https://mixch.tv/m/Ve8KNkJ5', | ||||
|         'info_dict': { | ||||
|             'id': 'Ve8KNkJ5', | ||||
|             'title': '夏☀️\nムービーへのポイントは本イベントに加算されないので配信にてお願い致します🙇🏻\u200d♀️\n#TGCCAMPUS #ミス東大 #ミス東大2024 ', | ||||
|             'ext': 'mp4', | ||||
|             'uploader': 'ミス東大No.5 松藤百香🍑💫', | ||||
|             'uploader_id': '12299174', | ||||
|             'channel_follower_count': int, | ||||
|             'view_count': int, | ||||
|             'like_count': int, | ||||
|             'comment_count': int, | ||||
|             'timestamp': 1724070828, | ||||
|             'uploader_url': 'https://mixch.tv/u/12299174', | ||||
|             'live_status': 'not_live', | ||||
|             'upload_date': '20240819', | ||||
|         }, | ||||
|     }, { | ||||
|         'url': 'https://mixch.tv/m/61DzpIKE', | ||||
|         'only_matching': True, | ||||
|     }] | ||||
| 
 | ||||
|     def _real_extract(self, url): | ||||
|         video_id = self._match_id(url) | ||||
|         data = self._download_json( | ||||
|             f'https://mixch.tv/api-web/movies/{video_id}', video_id) | ||||
|         return { | ||||
|             'id': video_id, | ||||
|             'formats': [{ | ||||
|                 'format_id': 'mp4', | ||||
|                 'url': data['movie']['file'], | ||||
|                 'ext': 'mp4', | ||||
|             }], | ||||
|             **traverse_obj(data, { | ||||
|                 'title': ('movie', 'title', {str}), | ||||
|                 'thumbnail': ('movie', 'thumbnailURL', {url_or_none}), | ||||
|                 'uploader': ('ownerInfo', 'name', {str}), | ||||
|                 'uploader_id': ('ownerInfo', 'id', {int}, {str_or_none}), | ||||
|                 'channel_follower_count': ('ownerInfo', 'fan', {int_or_none}), | ||||
|                 'view_count': ('ownerInfo', 'view', {int_or_none}), | ||||
|                 'like_count': ('movie', 'favCount', {int_or_none}), | ||||
|                 'comment_count': ('movie', 'commentCount', {int_or_none}), | ||||
|                 'timestamp': ('movie', 'published', {int_or_none}), | ||||
|                 'uploader_url': ('ownerInfo', 'id', {lambda x: x and f'https://mixch.tv/u/{x}'}, filter), | ||||
|             }), | ||||
|             'live_status': 'not_live', | ||||
|         } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Sakura286
					Sakura286