[vessel] Use `main_video_asset` when searching for video_asset (Fixes #5623)

pull/8/head
Naglis Jonaitis 10 years ago
parent 09b412dafa
commit 46be82b811

@ -38,9 +38,13 @@ class VesselIE(InfoExtractor):
return req return req
@staticmethod @staticmethod
def find_assets(data, asset_type): def find_assets(data, asset_type, asset_id=None):
for asset in data.get('assets', []): 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 yield asset
def _check_access_rights(self, data): def _check_access_rights(self, data):
@ -82,11 +86,13 @@ class VesselIE(InfoExtractor):
req = VesselIE.make_json_request( req = VesselIE.make_json_request(
self._API_URL_TEMPLATE % asset_id, {'client': 'web'}) self._API_URL_TEMPLATE % asset_id, {'client': 'web'})
data = self._download_json(req, video_id) data = self._download_json(req, video_id)
video_asset_id = data.get('main_video_asset')
self._check_access_rights(data) self._check_access_rights(data)
try: try:
video_asset = next(VesselIE.find_assets(data, 'video')) video_asset = next(
VesselIE.find_assets(data, 'video', asset_id=video_asset_id))
except StopIteration: except StopIteration:
raise ExtractorError('No video assets found') raise ExtractorError('No video assets found')

Loading…
Cancel
Save