Set stop event & mark track failed if DASH DRM fails to license

This commit is contained in:
rlaphoenix 2023-05-19 19:07:35 +01:00
parent 6e844409ae
commit 8ada6165e3
1 changed files with 9 additions and 4 deletions

View File

@ -391,13 +391,18 @@ class DASH:
if track.drm: if track.drm:
# last chance to find the KID, assumes first segment will hold the init data # last chance to find the KID, assumes first segment will hold the init data
track_kid = track_kid or track.get_key_id(url=segments[0][0], session=session) track_kid = track_kid or track.get_key_id(url=segments[0][0], session=session)
# license and grab content keys
# TODO: What if we don't want to use the first DRM system? # TODO: What if we don't want to use the first DRM system?
drm = track.drm[0] drm = track.drm[0]
if isinstance(drm, Widevine): if isinstance(drm, Widevine):
if not license_widevine: # license and grab content keys
raise ValueError("license_widevine func must be supplied to use Widevine DRM") try:
license_widevine(drm, track_kid=track_kid) if not license_widevine:
raise ValueError("license_widevine func must be supplied to use Widevine DRM")
license_widevine(drm, track_kid=track_kid)
except Exception: # noqa
stop_event.set() # skip pending track downloads
progress(downloaded="[red]FAILED")
raise
else: else:
drm = None drm = None