github devine-dl/devine v1.3.0

latest releases: v3.3.3, v3.3.2, v3.3.1...
19 months ago

Deprecated

  • Support for Python 3.8 has been dropped. Support for Windows 7 ended in January 2020.
  • Although Python 3.8 is the last version with support for Windows 7, the decision was made to drop support because
    the number of affected users would be low.
  • You may be interested in https://github.com/adang1345/PythonWin7, which has newer installers with patched support.

Added

  • Segmented HLS and DASH downloads now provide useful progress information using TQDM. Previously, aria2c would print
    progress information, but it was not very useful for segmented downloads due to how the information was presented.
  • Segmented HLS and DASH downloads are now manually multi-threaded in a similar way to aria2c's --j=16.
  • A class-function was added to the Widevine DRM class to obtain PSSH and KID information from init data by looking for
    PSSH and TENC boxes. This is an alternative to the from_track class-function when you only have the init data and not
    a track object.
  • Aria2c now has the ability to silence progress output and provide extra arguments.

Changed

  • The downloading system for HLS and DASH has been completely reworked. It no longer downloads segments, merges them,
    and then decrypts. Instead, it now downloads and decrypts each individual segment. It dynamically switches DRM and
    Init Data per-segment where needed, fully supporting multiple EXT-X-KEY, EXT-X-MAP, and EXT-X-DISCONTINUITY tags in
    HLS. You can now download DRM-encrypted and DRM-free segments from within the same manifest, as well as manifests
    with unique DRM per-segment. None of this was possible with the old method of downloading.
  • If a HLS manifest or segment uses an EXT-X-KEY with the method of NONE, it is assumed that the manifest or segment is
    DRM-free. This behavior applies even if the manifest or segment has other EXT-X-KEY methods specified, as that would
    be a mistake in the manifest.
  • HLS now uses the proxy when loading AES-128 DRM as ClearKey objects, which is required for some services. It will
    only be used if Track.needs_proxy is True.
  • The Widevine and ClearKey DRM classes decrypt functions no longer ask for a track. Instead, they ask for an input
    file path to which it will decrypt. It will automatically delete the input file and put the decrypted data in its
    place.

Removed

  • The AtomicSQL utility was removed because it did not actually assist in making the SQL connections thread-safe. It
    helped, but in an almost backwards and over-thought approach.

Fixed

  • The Cacher expiration check now uses your local datetime timestamp over the UTC timestamp, which seems to have fixed
    early or late expiration if you are not at exactly UTC+00:00.
  • The cookies file path is now checked to exist if supplied with the --cookies argument (#30).
  • An error is now logged, and execution will end if none of the DRM for a HLS manifest or segment is supported.
  • HLS now only loads AES-128 EXT-X-KEY methods as ClearKey DRM because it currently only supports AES-128.
  • AtomicSQL was replaced with connection factory systems using thread-safe storage for SQL connections. All Vault SQL
    calls are now fully thread-safe.

Don't miss a new devine release

NewReleases is sending notifications on new releases.