Skip to content

m314dl v0.3.1

Choose a tag to compare

@mohaanymo mohaanymo released this 24 Aug 04:39

m314dl v0.3.1

Fast HLS (.m3u8) and DASH (.mpd) video downloader in a single static binary,
with native in-process CENC decryption — no mp4decrypt, no shaka-packager.

Fixes since v0.3.0

  • Decrypted output is now a clean, unprotected stream. After CENC
    decryption the boxes still declared the stream encrypted (init typed its
    samples encv/enca with sinf/tenc/pssh; every fragment carried
    senc/saiz/saio), so a player or ffmpeg that trusted them tried to
    "decrypt" the already-plaintext samples and rendered a black picture. The
    init is now de-protected (codec fourcc restored from sinf→frma, sinf
    and pssh removed) and senc/saiz/saio are stripped from each fragment —
    correct for any mux target and for -no-mux.
  • Flags work in any order relative to the URL — m314dl -o out.mp4 URL -t 16
    and m314dl URL -o out.mp4 now behave identically (flags after the URL were
    previously ignored).

Core features

  • Native CENC / cbcs decryption, per-fragment as the stream downloads
    (byte-exact vs mp4decrypt). Supply the key with -key KID:KEY.
  • HLS + DASH, VOD and live; AES-128; BBTS; multi-period DASH; subtitles
    (first subtitle flagged default, or -sub-external sidecars).
  • Restream / live republish (-serve: hls/ts/dash), plus a
    multi-channel worker (-worker) and an RPC server (-rpc).
  • Kill-proof resume: segments stream to part files with HTTP byte-range
    resume, checkpointed on every commit — an interrupted download continues
    byte-exact, losing at most the segment in flight.
  • Fast on real networks: one HTTP/1.1 connection per in-flight request;
    adaptive concurrency, or a held -t N. Backs off from rate limits.
  • Local file input, page scraping, cookies, proxy, custom headers, -ffmpeg.
    Needs ffmpeg on PATH (or -ffmpeg) for muxing.

Downloads

Platform Archive
Linux x86-64 m314dl_v0.3.1_linux_amd64.tar.gz
Linux ARM64 m314dl_v0.3.1_linux_arm64.tar.gz
Linux ARMv7 m314dl_v0.3.1_linux_arm.tar.gz
macOS Intel m314dl_v0.3.1_darwin_amd64.tar.gz
macOS Apple Silicon m314dl_v0.3.1_darwin_arm64.tar.gz
Windows x86-64 m314dl_v0.3.1_windows_amd64.zip
Windows ARM64 m314dl_v0.3.1_windows_arm64.zip

Install (Linux/macOS)

tar xzf m314dl_v0.3.1_<os>_<arch>.tar.gz
sudo mv m314dl_v0.3.1_<os>_<arch>/m314dl /usr/local/bin/
m314dl -version

Verify downloads against SHA256SUMS.