This commit is contained in:
		
							parent
							
								
									3bed621750
								
							
						
					
					
						commit
						2b845c4086
					
				
					 1 changed files with 20 additions and 16 deletions
				
			
		| 
						 | 
					@ -4,6 +4,7 @@ import re
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .common import InfoExtractor
 | 
					from .common import InfoExtractor
 | 
				
			||||||
from ..utils import (
 | 
					from ..utils import (
 | 
				
			||||||
 | 
					    determine_ext,
 | 
				
			||||||
    ExtractorError,
 | 
					    ExtractorError,
 | 
				
			||||||
    merge_dicts,
 | 
					    merge_dicts,
 | 
				
			||||||
    orderedSet,
 | 
					    orderedSet,
 | 
				
			||||||
| 
						 | 
					@ -75,11 +76,20 @@ class SpankBangIE(InfoExtractor):
 | 
				
			||||||
            if not f_url:
 | 
					            if not f_url:
 | 
				
			||||||
                return
 | 
					                return
 | 
				
			||||||
            f = parse_resolution(format_id)
 | 
					            f = parse_resolution(format_id)
 | 
				
			||||||
            f.update({
 | 
					            ext = determine_ext(f_url)
 | 
				
			||||||
                'url': f_url,
 | 
					            if format_id.startswith('m3u8') or ext == 'm3u8':
 | 
				
			||||||
                'format_id': format_id,
 | 
					                formats.extend(self._extract_m3u8_formats(
 | 
				
			||||||
            })
 | 
					                    f_url, video_id, 'mp4', entry_protocol='m3u8_native',
 | 
				
			||||||
            formats.append(f)
 | 
					                    m3u8_id='hls', fatal=False))
 | 
				
			||||||
 | 
					            elif format_id.startswith('mpd') or ext == 'mpd':
 | 
				
			||||||
 | 
					                formats.extend(self._extract_mpd_formats(
 | 
				
			||||||
 | 
					                    f_url, video_id, mpd_id='dash', fatal=False))
 | 
				
			||||||
 | 
					            elif ext == 'mp4' or f.get('width') or f.get('height'):
 | 
				
			||||||
 | 
					                f.update({
 | 
				
			||||||
 | 
					                    'url': f_url,
 | 
				
			||||||
 | 
					                    'format_id': format_id,
 | 
				
			||||||
 | 
					                })
 | 
				
			||||||
 | 
					                formats.append(f)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        STREAM_URL_PREFIX = 'stream_url_'
 | 
					        STREAM_URL_PREFIX = 'stream_url_'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -93,28 +103,22 @@ class SpankBangIE(InfoExtractor):
 | 
				
			||||||
                r'data-streamkey\s*=\s*(["\'])(?P<value>(?:(?!\1).)+)\1',
 | 
					                r'data-streamkey\s*=\s*(["\'])(?P<value>(?:(?!\1).)+)\1',
 | 
				
			||||||
                webpage, 'stream key', group='value')
 | 
					                webpage, 'stream key', group='value')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            sb_csrf_session = self._get_cookies(
 | 
					 | 
				
			||||||
                'https://spankbang.com')['sb_csrf_session'].value
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            stream = self._download_json(
 | 
					            stream = self._download_json(
 | 
				
			||||||
                'https://spankbang.com/api/videos/stream', video_id,
 | 
					                'https://spankbang.com/api/videos/stream', video_id,
 | 
				
			||||||
                'Downloading stream JSON', data=urlencode_postdata({
 | 
					                'Downloading stream JSON', data=urlencode_postdata({
 | 
				
			||||||
                    'id': stream_key,
 | 
					                    'id': stream_key,
 | 
				
			||||||
                    'data': 0,
 | 
					                    'data': 0,
 | 
				
			||||||
                    'sb_csrf_session': sb_csrf_session,
 | 
					 | 
				
			||||||
                }), headers={
 | 
					                }), headers={
 | 
				
			||||||
                    'Referer': url,
 | 
					                    'Referer': url,
 | 
				
			||||||
                    'X-CSRFToken': sb_csrf_session,
 | 
					                    'X-Requested-With': 'XMLHttpRequest',
 | 
				
			||||||
                })
 | 
					                })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for format_id, format_url in stream.items():
 | 
					            for format_id, format_url in stream.items():
 | 
				
			||||||
                if format_id.startswith(STREAM_URL_PREFIX):
 | 
					                if format_url and isinstance(format_url, list):
 | 
				
			||||||
                    if format_url and isinstance(format_url, list):
 | 
					                    format_url = format_url[0]
 | 
				
			||||||
                        format_url = format_url[0]
 | 
					                extract_format(format_id, format_url)
 | 
				
			||||||
                    extract_format(
 | 
					 | 
				
			||||||
                        format_id[len(STREAM_URL_PREFIX):], format_url)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self._sort_formats(formats)
 | 
					        self._sort_formats(formats, field_preference=('preference', 'height', 'width', 'fps', 'tbr', 'format_id'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        info = self._search_json_ld(webpage, video_id, default={})
 | 
					        info = self._search_json_ld(webpage, video_id, default={})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue