diff options
Diffstat (limited to 'youtube_dl/extractor')
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 5 | ||||
| -rw-r--r-- | youtube_dl/extractor/appletrailers.py | 74 | 
2 files changed, 78 insertions, 1 deletions
diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index fede5ff0d..3b541a538 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -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, diff --git a/youtube_dl/extractor/appletrailers.py b/youtube_dl/extractor/appletrailers.py index f68dc3236..ca9a70924 100644 --- a/youtube_dl/extractor/appletrailers.py +++ b/youtube_dl/extractor/appletrailers.py @@ -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'])  | 
