Skip to content

m314dl v0.3.0

Choose a tag to compare

@mohaanymo mohaanymo released this 23 Aug 10:51

m314dl v0.3.0

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

New since v0.2.0

  • Restream / live republish (-serve): republish the selected streams live
    instead of downloading to a file — hls (/live.m3u8), continuous ts
    (/live.ts), or dash (/live.mpd), with an optional ffmpeg transcode path.
  • Multi-channel restream worker (-worker) and an RPC server (-rpc)
    for running m314dl as a service (control API, bounded concurrency, auth token).
  • -ffmpeg <path> to point at an ffmpeg binary that isn't on PATH.
  • Default in-memory cookie jar so an auth cookie set on the manifest is
    carried to the segment requests that need it (no -cookies file required).
  • Robustness: a broken/optional subtitle track no longer sinks the whole
    download (warn + skip); WebVTT cue tags are stripped and entities decoded in
    the SRT path; an idle-connection watchdog retries a silently-throttled segment
    instead of stalling at 0 B/s.

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).
  • Kill-proof resume: segments stream to part files with HTTP byte-range
    resume, checkpointed on every commit — an interrupted or hard-killed 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. Needs
    ffmpeg on PATH (or -ffmpeg) for muxing.

Downloads

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

Install (Linux/macOS)

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

Verify downloads against SHA256SUMS.