forked from DRMTalks/devine
Move Widevine DRM prep for URL downloads before download
This commit is contained in:
parent
fb49210b5a
commit
d07fedbbe1
|
@ -759,6 +759,18 @@ class dl:
|
||||||
|
|
||||||
# no else-if as DASH may convert the track to URL descriptor
|
# no else-if as DASH may convert the track to URL descriptor
|
||||||
if track.descriptor == track.Descriptor.URL:
|
if track.descriptor == track.Descriptor.URL:
|
||||||
|
if not track.drm and isinstance(track, (Video, Audio)):
|
||||||
|
# the service might not have explicitly defined the `drm` property
|
||||||
|
# try find widevine DRM information from the init data of URL
|
||||||
|
try:
|
||||||
|
drm = Widevine.from_track(track, service.session)
|
||||||
|
except Widevine.Exceptions.PSSHNotFound:
|
||||||
|
# it might not have Widevine DRM, or might not have found the PSSH
|
||||||
|
self.log.warning("No Widevine PSSH was found for this track, is it DRM free?")
|
||||||
|
else:
|
||||||
|
prepare_drm(drm)
|
||||||
|
track.drm = [drm]
|
||||||
|
|
||||||
aria2c(
|
aria2c(
|
||||||
uri=track.url,
|
uri=track.url,
|
||||||
out=save_path,
|
out=save_path,
|
||||||
|
@ -773,18 +785,8 @@ class dl:
|
||||||
|
|
||||||
track.path = save_path
|
track.path = save_path
|
||||||
|
|
||||||
if not track.drm and isinstance(track, (Video, Audio)):
|
|
||||||
try:
|
|
||||||
track.drm = [Widevine.from_track(track, service.session)]
|
|
||||||
except Widevine.Exceptions.PSSHNotFound:
|
|
||||||
# it might not have Widevine DRM, or might not have found the PSSH
|
|
||||||
self.log.warning("No Widevine PSSH was found for this track, is it DRM free?")
|
|
||||||
|
|
||||||
if track.drm:
|
if track.drm:
|
||||||
drm = track.drm[0] # just use the first supported DRM system for now
|
drm = track.drm[0] # just use the first supported DRM system for now
|
||||||
if isinstance(drm, Widevine):
|
|
||||||
# license and grab content keys
|
|
||||||
prepare_drm(drm)
|
|
||||||
drm.decrypt(save_path)
|
drm.decrypt(save_path)
|
||||||
track.drm = None
|
track.drm = None
|
||||||
if callable(track.OnDecrypted):
|
if callable(track.OnDecrypted):
|
||||||
|
|
Loading…
Reference in New Issue