Skip to main content

DDownloader

DDownloader is a powerful Python-based tool and library designed to download and decrypt DRM-protected content from DASH, HLS, and ISM manifests. It provides seamless support for encrypted media streams, extracting metadata and ensuring high compatibility with various DRM standards.

Features

  • Download and Decrypt: Supports DASH, HLS, and ISM manifests with seamless decryption using provided keys.
  • Automatic Detection: Automatically detects manifest types (.mpd, .m3u8, .ism) and processes accordingly.
  • Media Information Extraction: Extracts metadata (e.g., codec, resolution, duration) for .mp4 files and saves it in a logs/ directory.
  • CLI and Library Support: Flexible usage via command-line or Python library.
  • Detailed Logging: Provides real-time progress and logs errors for debugging.

Requirements

  • Python: Version 3.7 or higher.

  • Required binaries:

    • N_m3u8DL-RE for downloading protected DRM content.
    • mp4decrypt for decrypting protected media files.
    • ffmpeg for re-encoding and muxer method
    • a proper environment variable configuration for binaries.

Installation

  • Install DDownloader using pip:

     pip install DDownloader
    

Usage

  • Download Content:

     from DDownloader.modules.downloader import DOWNLOADER
    
     downloader = DOWNLOADER()
     downloader.manifest_url = "https://example.com/path/to/manifest"  # DASH, HLS, or ISM manifest URL
     downloader.output_name = "output.mp4"  # Desired output file name
     downloader.decryption_keys = ["12345:678910"]  # Provide decryption keys if needed
     downloader.download()  # Start the downloading and decryption process
    
  • Extract Media Information:

     from DDownloader.modules.helper import get_media_info
    
     file_path = "downloads/example.mp4"
     media_info = get_media_info(file_path)
     print(media_info)
    
  • Re-encoding:

     from DDownloader.modules.downloader import DOWNLOADER
    
     re_encode = DOWNLOADER()
     quality = ["HD", "FHD", "UHD"]
     input_content = "downloads/example.mp4"
     output_content = "/path/to/output.mp4"
     re_encode.re_encode_content(input_file=input_content,quality=quality,codec="libx265",crf=20,preset="medium")
    

CLI Usage

  • Download Media

     DDownloader -u https://example.com/path/to/manifest -o output.mp4
    
  • Specify Decryption Keys

     DDownloader -u https://example.com/path/to/manifest -o output.mp4 -k 12345:678910
    
  • Re-encoding

     DDownloader -i "input.mp4" -o "output.mp4" -q "HD, FHD, UHD"
    
  • Display Help

     DDownloader -h
    
  • image

Metadata

Release files for DDownloader 0.4.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for DDownloader 0.4.9
File Size Uploaded
ddownloader-0.4.9.tar.gz 18.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for DDownloader 0.4.9
File Interpreter ABI Platform
ddownloader-0.4.9-py3-none-any.whl Python 3 none any Details

Total release size: 41.5 kB

Release files / ddownloader-0.4.9.tar.gz

Download URL ddownloader-0.4.9.tar.gz
Size 18.3 kB
Tags Source
SHA-256 checksum
How to use checksums
ddd9983655e9ff95cfec659ba2669138580ca2cb9a3c84bcd05c3e850cf692ba
BLAKE2b-256 checksum
How to use checksums
c0a7bf6651fcbda62120389fd42e041ab1f4f2c0fc4bbc3d26ff06c408ff5b44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.11

Release files / ddownloader-0.4.9-py3-none-any.whl

Download URL ddownloader-0.4.9-py3-none-any.whl
Size 23.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6d57df5db7fa400697bf7cea98a6b76a20d4a29eec4dbe350d4fc506f152e922
BLAKE2b-256 checksum
How to use checksums
5404492b2438969c7a67b4915a09fbe753cab7623b424448c41b04c99d3e2266
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.11

Release history Release notifications | RSS feed

This release

0.4.9 This release

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

1 release file

0.2.0

1 release file

0.1.9

2 release files

0.1.8

2 release files

0.1.7

1 release file

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page