[appletrailers] Add support for AppleTrailers Section
This commit is contained in:
		
							parent
							
								
									178b47e6af
								
							
						
					
					
						commit
						60427f63d1
					
				
					 2 changed files with 78 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -25,7 +25,10 @@ from .aol import AolIE
 | 
			
		|||
from .allocine import AllocineIE
 | 
			
		||||
from .aparat import AparatIE
 | 
			
		||||
from .appleconnect import AppleConnectIE
 | 
			
		||||
from .appletrailers import AppleTrailersIE
 | 
			
		||||
from .appletrailers import (
 | 
			
		||||
    AppleTrailersIE,
 | 
			
		||||
    AppleTrailersSectionIE,
 | 
			
		||||
)
 | 
			
		||||
from .archiveorg import ArchiveOrgIE
 | 
			
		||||
from .ard import (
 | 
			
		||||
    ARDIE,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,6 +11,7 @@ from ..utils import (
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
class AppleTrailersIE(InfoExtractor):
 | 
			
		||||
    IE_NAME = 'appletrailers'
 | 
			
		||||
    _VALID_URL = r'https?://(?:www\.)?trailers\.apple\.com/(?:trailers|ca)/(?P<company>[^/]+)/(?P<movie>[^/]+)'
 | 
			
		||||
    _TESTS = [{
 | 
			
		||||
        'url': 'http://trailers.apple.com/trailers/wb/manofsteel/',
 | 
			
		||||
| 
						 | 
				
			
			@ -144,3 +145,76 @@ class AppleTrailersIE(InfoExtractor):
 | 
			
		|||
            'id': movie,
 | 
			
		||||
            'entries': playlist,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class AppleTrailersSectionIE(InfoExtractor):
 | 
			
		||||
    IE_NAME = 'appletrailers:section'
 | 
			
		||||
    _SECTIONS = {
 | 
			
		||||
        'justadded': {
 | 
			
		||||
            'feed_path': 'just_added',
 | 
			
		||||
            'title': 'Just Added',
 | 
			
		||||
        },
 | 
			
		||||
        'exclusive': {
 | 
			
		||||
            'feed_path': 'exclusive',
 | 
			
		||||
            'title': 'Exclusive',
 | 
			
		||||
        },
 | 
			
		||||
        'justhd': {
 | 
			
		||||
            'feed_path': 'just_hd',
 | 
			
		||||
            'title': 'Just HD',
 | 
			
		||||
        },
 | 
			
		||||
        'mostpopular': {
 | 
			
		||||
            'feed_path': 'most_pop',
 | 
			
		||||
            'title': 'Most Popular',
 | 
			
		||||
        },
 | 
			
		||||
        'moviestudios': {
 | 
			
		||||
            'feed_path': 'studios',
 | 
			
		||||
            'title': 'Movie Studios',
 | 
			
		||||
        },
 | 
			
		||||
    }
 | 
			
		||||
    _VALID_URL = r'https?://(?:www\.)?trailers\.apple\.com/#section=(?P<id>%s)' % '|'.join(_SECTIONS)
 | 
			
		||||
    _TESTS = [{
 | 
			
		||||
        'url': 'http://trailers.apple.com/#section=justadded',
 | 
			
		||||
        'info_dict': {
 | 
			
		||||
            'title': 'Just Added',
 | 
			
		||||
            'id': 'justadded',
 | 
			
		||||
        },
 | 
			
		||||
        'playlist_mincount': 80,
 | 
			
		||||
    }, {
 | 
			
		||||
        'url': 'http://trailers.apple.com/#section=exclusive',
 | 
			
		||||
        'info_dict': {
 | 
			
		||||
            'title': 'Exclusive',
 | 
			
		||||
            'id': 'exclusive',
 | 
			
		||||
        },
 | 
			
		||||
        'playlist_mincount': 80,
 | 
			
		||||
    }, {
 | 
			
		||||
        'url': 'http://trailers.apple.com/#section=justhd',
 | 
			
		||||
        'info_dict': {
 | 
			
		||||
            'title': 'Just HD',
 | 
			
		||||
            'id': 'justhd',
 | 
			
		||||
        },
 | 
			
		||||
        'playlist_mincount': 80,
 | 
			
		||||
    }, {
 | 
			
		||||
        'url': 'http://trailers.apple.com/#section=mostpopular',
 | 
			
		||||
        'info_dict': {
 | 
			
		||||
            'title': 'Most Popular',
 | 
			
		||||
            'id': 'mostpopular',
 | 
			
		||||
        },
 | 
			
		||||
        'playlist_mincount': 80,
 | 
			
		||||
    }, {
 | 
			
		||||
        'url': 'http://trailers.apple.com/#section=moviestudios',
 | 
			
		||||
        'info_dict': {
 | 
			
		||||
            'title': 'Movie Studios',
 | 
			
		||||
            'id': 'moviestudios',
 | 
			
		||||
        },
 | 
			
		||||
        'playlist_mincount': 80,
 | 
			
		||||
    }]
 | 
			
		||||
 | 
			
		||||
    def _real_extract(self, url):
 | 
			
		||||
        section = self._match_id(url)
 | 
			
		||||
        section_data = self._download_json(
 | 
			
		||||
            'http://trailers.apple.com/trailers/home/feeds/%s.json' % self._SECTIONS[section]['feed_path'],
 | 
			
		||||
            section)
 | 
			
		||||
        entries = [
 | 
			
		||||
            self.url_result('http://trailers.apple.com' + e['location'])
 | 
			
		||||
            for e in section_data]
 | 
			
		||||
        return self.playlist_result(entries, section, self._SECTIONS[section]['title'])
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue