diff options
Diffstat (limited to 'youtube_dl/extractor/vessel.py')
| -rw-r--r-- | youtube_dl/extractor/vessel.py | 12 | 
1 files changed, 9 insertions, 3 deletions
diff --git a/youtube_dl/extractor/vessel.py b/youtube_dl/extractor/vessel.py index 6215f0642..3c8d2a943 100644 --- a/youtube_dl/extractor/vessel.py +++ b/youtube_dl/extractor/vessel.py @@ -38,9 +38,13 @@ class VesselIE(InfoExtractor):          return req      @staticmethod -    def find_assets(data, asset_type): +    def find_assets(data, asset_type, asset_id=None):          for asset in data.get('assets', []): -            if asset.get('type') == asset_type: +            if not asset.get('type') == asset_type: +                continue +            elif asset_id is not None and not asset.get('id') == asset_id: +                continue +            else:                  yield asset      def _check_access_rights(self, data): @@ -82,11 +86,13 @@ class VesselIE(InfoExtractor):          req = VesselIE.make_json_request(              self._API_URL_TEMPLATE % asset_id, {'client': 'web'})          data = self._download_json(req, video_id) +        video_asset_id = data.get('main_video_asset')          self._check_access_rights(data)          try: -            video_asset = next(VesselIE.find_assets(data, 'video')) +            video_asset = next( +                VesselIE.find_assets(data, 'video', asset_id=video_asset_id))          except StopIteration:              raise ExtractorError('No video assets found')  | 
