mirror of
				https://code.hackerspace.pl/q3k/youtube-dl
				synced 2025-03-16 11:43:02 +00:00 
			
		
		
		
	
							parent
							
								
									1e35999c1e
								
							
						
					
					
						commit
						001a5fd3d7
					
				@ -1,6 +1,7 @@
 | 
			
		||||
version <unreleased>
 | 
			
		||||
 | 
			
		||||
Extractors
 | 
			
		||||
* [iwara] Fix extraction after relaunch (#10462, #3215)
 | 
			
		||||
* [newgrounds] Fix uploader extraction (#10584)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -395,6 +395,7 @@ from .ivi import (
 | 
			
		||||
    IviCompilationIE
 | 
			
		||||
)
 | 
			
		||||
from .ivideon import IvideonIE
 | 
			
		||||
from .iwara import IwaraIE
 | 
			
		||||
from .izlesene import IzleseneIE
 | 
			
		||||
from .jeuxvideo import JeuxVideoIE
 | 
			
		||||
from .jove import JoveIE
 | 
			
		||||
@ -899,7 +900,6 @@ from .toutv import TouTvIE
 | 
			
		||||
from .toypics import ToypicsUserIE, ToypicsIE
 | 
			
		||||
from .traileraddict import TrailerAddictIE
 | 
			
		||||
from .trilulilu import TriluliluIE
 | 
			
		||||
from .trollvids import TrollvidsIE
 | 
			
		||||
from .trutv import TruTVIE
 | 
			
		||||
from .tube8 import Tube8IE
 | 
			
		||||
from .tubitv import TubiTvIE
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										77
									
								
								youtube_dl/extractor/iwara.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								youtube_dl/extractor/iwara.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,77 @@
 | 
			
		||||
# coding: utf-8
 | 
			
		||||
from __future__ import unicode_literals
 | 
			
		||||
 | 
			
		||||
from .common import InfoExtractor
 | 
			
		||||
from ..compat import compat_urllib_parse_urlparse
 | 
			
		||||
from ..utils import remove_end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IwaraIE(InfoExtractor):
 | 
			
		||||
    _VALID_URL = r'https?://(?:www\.|ecchi\.)?iwara\.tv/videos/(?P<id>[a-zA-Z0-9]+)'
 | 
			
		||||
    _TESTS = [{
 | 
			
		||||
        'url': 'http://iwara.tv/videos/amVwUl1EHpAD9RD',
 | 
			
		||||
        'md5': '1d53866b2c514b23ed69e4352fdc9839',
 | 
			
		||||
        'info_dict': {
 | 
			
		||||
            'id': 'amVwUl1EHpAD9RD',
 | 
			
		||||
            'ext': 'mp4',
 | 
			
		||||
            'title': '【MMD R-18】ガールフレンド carry_me_off',
 | 
			
		||||
            'age_limit': 18,
 | 
			
		||||
        },
 | 
			
		||||
    }, {
 | 
			
		||||
        'url': 'http://ecchi.iwara.tv/videos/Vb4yf2yZspkzkBO',
 | 
			
		||||
        'md5': '7e5f1f359cd51a027ba4a7b7710a50f0',
 | 
			
		||||
        'info_dict': {
 | 
			
		||||
            'id': '0B1LvuHnL-sRFNXB1WHNqbGw4SXc',
 | 
			
		||||
            'ext': 'mp4',
 | 
			
		||||
            'title': '[3D Hentai] Kyonyu Ã\x97 Genkai Ã\x97 Emaki Shinobi Girls.mp4',
 | 
			
		||||
            'age_limit': 18,
 | 
			
		||||
        },
 | 
			
		||||
        'add_ie': ['GoogleDrive'],
 | 
			
		||||
    }, {
 | 
			
		||||
        'url': 'http://www.iwara.tv/videos/nawkaumd6ilezzgq',
 | 
			
		||||
        'md5': '1d85f1e5217d2791626cff5ec83bb189',
 | 
			
		||||
        'info_dict': {
 | 
			
		||||
            'id': '6liAP9s2Ojc',
 | 
			
		||||
            'ext': 'mp4',
 | 
			
		||||
            'age_limit': 0,
 | 
			
		||||
            'title': '[MMD] Do It Again Ver.2 [1080p 60FPS] (Motion,Camera,Wav+DL)',
 | 
			
		||||
            'description': 'md5:590c12c0df1443d833fbebe05da8c47a',
 | 
			
		||||
            'upload_date': '20160910',
 | 
			
		||||
            'uploader': 'aMMDsork',
 | 
			
		||||
            'uploader_id': 'UCVOFyOSCyFkXTYYHITtqB7A',
 | 
			
		||||
        },
 | 
			
		||||
        'add_ie': ['Youtube'],
 | 
			
		||||
    }]
 | 
			
		||||
 | 
			
		||||
    def _real_extract(self, url):
 | 
			
		||||
        video_id = self._match_id(url)
 | 
			
		||||
 | 
			
		||||
        webpage, urlh = self._download_webpage_handle(url, video_id)
 | 
			
		||||
 | 
			
		||||
        hostname = compat_urllib_parse_urlparse(urlh.geturl()).hostname
 | 
			
		||||
        # ecchi is 'sexy' in Japanese
 | 
			
		||||
        age_limit = 18 if hostname.split('.')[0] == 'ecchi' else 0
 | 
			
		||||
 | 
			
		||||
        entries = self._parse_html5_media_entries(url, webpage, video_id)
 | 
			
		||||
 | 
			
		||||
        if not entries:
 | 
			
		||||
            iframe_url = self._html_search_regex(
 | 
			
		||||
                r'<iframe[^>]+src=([\'"])(?P<url>[^\'"]+)\1',
 | 
			
		||||
                webpage, 'iframe URL', group='url')
 | 
			
		||||
            return {
 | 
			
		||||
                '_type': 'url_transparent',
 | 
			
		||||
                'url': iframe_url,
 | 
			
		||||
                'age_limit': age_limit,
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        title = remove_end(self._html_search_regex(
 | 
			
		||||
            r'<title>([^<]+)</title>', webpage, 'title'), ' | Iwara')
 | 
			
		||||
 | 
			
		||||
        info_dict = entries[0]
 | 
			
		||||
        info_dict.update({
 | 
			
		||||
            'id': video_id,
 | 
			
		||||
            'title': title,
 | 
			
		||||
            'age_limit': age_limit,
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        return info_dict
 | 
			
		||||
@ -1,36 +0,0 @@
 | 
			
		||||
# encoding: utf-8
 | 
			
		||||
from __future__ import unicode_literals
 | 
			
		||||
 | 
			
		||||
import re
 | 
			
		||||
 | 
			
		||||
from .nuevo import NuevoBaseIE
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TrollvidsIE(NuevoBaseIE):
 | 
			
		||||
    _VALID_URL = r'https?://(?:www\.)?trollvids\.com/video/(?P<id>\d+)/(?P<display_id>[^/?#&]+)'
 | 
			
		||||
    IE_NAME = 'trollvids'
 | 
			
		||||
    _TEST = {
 | 
			
		||||
        'url': 'http://trollvids.com/video/2349002/%E3%80%90MMD-R-18%E3%80%91%E3%82%AC%E3%83%BC%E3%83%AB%E3%83%95%E3%83%AC%E3%83%B3%E3%83%89-carrymeoff',
 | 
			
		||||
        'md5': '1d53866b2c514b23ed69e4352fdc9839',
 | 
			
		||||
        'info_dict': {
 | 
			
		||||
            'id': '2349002',
 | 
			
		||||
            'ext': 'mp4',
 | 
			
		||||
            'title': '【MMD R-18】ガールフレンド carry_me_off',
 | 
			
		||||
            'age_limit': 18,
 | 
			
		||||
            'duration': 216.78,
 | 
			
		||||
        },
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    def _real_extract(self, url):
 | 
			
		||||
        mobj = re.match(self._VALID_URL, url)
 | 
			
		||||
        video_id = mobj.group('id')
 | 
			
		||||
        display_id = mobj.group('display_id')
 | 
			
		||||
 | 
			
		||||
        info = self._extract_nuevo(
 | 
			
		||||
            'http://trollvids.com/nuevo/player/config.php?v=%s' % video_id,
 | 
			
		||||
            video_id)
 | 
			
		||||
        info.update({
 | 
			
		||||
            'display_id': display_id,
 | 
			
		||||
            'age_limit': 18
 | 
			
		||||
        })
 | 
			
		||||
        return info
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user