mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 22:55:18 +00:00 
			
		
		
		
	[iwara] Fix extraction (closes #11781)
This commit is contained in:
		| @@ -1,6 +1,7 @@ | |||||||
| version <unreleased> | version <unreleased> | ||||||
|  |  | ||||||
| Extractors | Extractors | ||||||
|  | * [iwara] Fix extraction (#11781) | ||||||
| * [googledrive] Fix extraction on Python 3.6 | * [googledrive] Fix extraction on Python 3.6 | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3,14 +3,18 @@ from __future__ import unicode_literals | |||||||
|  |  | ||||||
| from .common import InfoExtractor | from .common import InfoExtractor | ||||||
| from ..compat import compat_urllib_parse_urlparse | from ..compat import compat_urllib_parse_urlparse | ||||||
| from ..utils import remove_end | from ..utils import ( | ||||||
|  |     int_or_none, | ||||||
|  |     mimetype2ext, | ||||||
|  |     remove_end, | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| class IwaraIE(InfoExtractor): | class IwaraIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://(?:www\.|ecchi\.)?iwara\.tv/videos/(?P<id>[a-zA-Z0-9]+)' |     _VALID_URL = r'https?://(?:www\.|ecchi\.)?iwara\.tv/videos/(?P<id>[a-zA-Z0-9]+)' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://iwara.tv/videos/amVwUl1EHpAD9RD', |         'url': 'http://iwara.tv/videos/amVwUl1EHpAD9RD', | ||||||
|         'md5': '1d53866b2c514b23ed69e4352fdc9839', |         # md5 is unstable | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
|             'id': 'amVwUl1EHpAD9RD', |             'id': 'amVwUl1EHpAD9RD', | ||||||
|             'ext': 'mp4', |             'ext': 'mp4', | ||||||
| @@ -23,17 +27,17 @@ class IwaraIE(InfoExtractor): | |||||||
|         'info_dict': { |         'info_dict': { | ||||||
|             'id': '0B1LvuHnL-sRFNXB1WHNqbGw4SXc', |             'id': '0B1LvuHnL-sRFNXB1WHNqbGw4SXc', | ||||||
|             'ext': 'mp4', |             'ext': 'mp4', | ||||||
|             'title': '[3D Hentai] Kyonyu Ã\x97 Genkai Ã\x97 Emaki Shinobi Girls.mp4', |             'title': '[3D Hentai] Kyonyu × Genkai × Emaki Shinobi Girls.mp4', | ||||||
|             'age_limit': 18, |             'age_limit': 18, | ||||||
|         }, |         }, | ||||||
|         'add_ie': ['GoogleDrive'], |         'add_ie': ['GoogleDrive'], | ||||||
|     }, { |     }, { | ||||||
|         'url': 'http://www.iwara.tv/videos/nawkaumd6ilezzgq', |         'url': 'http://www.iwara.tv/videos/nawkaumd6ilezzgq', | ||||||
|         'md5': '1d85f1e5217d2791626cff5ec83bb189', |         # md5 is unstable | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
|             'id': '6liAP9s2Ojc', |             'id': '6liAP9s2Ojc', | ||||||
|             'ext': 'mp4', |             'ext': 'mp4', | ||||||
|             'age_limit': 0, |             'age_limit': 18, | ||||||
|             'title': '[MMD] Do It Again Ver.2 [1080p 60FPS] (Motion,Camera,Wav+DL)', |             'title': '[MMD] Do It Again Ver.2 [1080p 60FPS] (Motion,Camera,Wav+DL)', | ||||||
|             'description': 'md5:590c12c0df1443d833fbebe05da8c47a', |             'description': 'md5:590c12c0df1443d833fbebe05da8c47a', | ||||||
|             'upload_date': '20160910', |             'upload_date': '20160910', | ||||||
| @@ -52,9 +56,9 @@ class IwaraIE(InfoExtractor): | |||||||
|         # ecchi is 'sexy' in Japanese |         # ecchi is 'sexy' in Japanese | ||||||
|         age_limit = 18 if hostname.split('.')[0] == 'ecchi' else 0 |         age_limit = 18 if hostname.split('.')[0] == 'ecchi' else 0 | ||||||
|  |  | ||||||
|         entries = self._parse_html5_media_entries(url, webpage, video_id) |         video_data = self._download_json('http://www.iwara.tv/api/video/%s' % video_id, video_id) | ||||||
|  |  | ||||||
|         if not entries: |         if not video_data: | ||||||
|             iframe_url = self._html_search_regex( |             iframe_url = self._html_search_regex( | ||||||
|                 r'<iframe[^>]+src=([\'"])(?P<url>[^\'"]+)\1', |                 r'<iframe[^>]+src=([\'"])(?P<url>[^\'"]+)\1', | ||||||
|                 webpage, 'iframe URL', group='url') |                 webpage, 'iframe URL', group='url') | ||||||
| @@ -67,11 +71,24 @@ class IwaraIE(InfoExtractor): | |||||||
|         title = remove_end(self._html_search_regex( |         title = remove_end(self._html_search_regex( | ||||||
|             r'<title>([^<]+)</title>', webpage, 'title'), ' | Iwara') |             r'<title>([^<]+)</title>', webpage, 'title'), ' | Iwara') | ||||||
|  |  | ||||||
|         info_dict = entries[0] |         formats = [] | ||||||
|         info_dict.update({ |         for a_format in video_data: | ||||||
|  |             format_id = a_format.get('resolution') | ||||||
|  |             height = int_or_none(self._search_regex( | ||||||
|  |                 r'(\d+)p', format_id, 'height', default=None)) | ||||||
|  |             formats.append({ | ||||||
|  |                 'url': a_format['uri'], | ||||||
|  |                 'format_id': format_id, | ||||||
|  |                 'ext': mimetype2ext(a_format.get('mime')) or 'mp4', | ||||||
|  |                 'height': height, | ||||||
|  |                 'quality': 1 if format_id == 'Source' else 0, | ||||||
|  |             }) | ||||||
|  |  | ||||||
|  |         self._sort_formats(formats) | ||||||
|  |  | ||||||
|  |         return { | ||||||
|             'id': video_id, |             'id': video_id, | ||||||
|             'title': title, |             'title': title, | ||||||
|             'age_limit': age_limit, |             'age_limit': age_limit, | ||||||
|         }) |             'formats': formats, | ||||||
|  |         } | ||||||
|         return info_dict |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Yen Chi Hsuan
					Yen Chi Hsuan