Repository navigation
v0.3.4
v0.3.4
A big feature release: new source formats, a general file downloader, and a
rewrite of how restreaming serves on-demand content — plus fixes for the restream
issues reported against v0.3.3.
New
-
Smooth Streaming (MSS). Point the tool at a Microsoft Smooth Streaming
manifest (.ism/Manifest,.isml/Manifest), VOD or live, and download,
decrypt, or restream it like HLS and DASH. MSS ships no init segment, so one is
synthesized from the manifest'sCodecPrivateData; PlayReady is handled the
same way as the tool's other DRM — the KID is read from theProtectionHeader
and you supply the key with-key KID:KEY. H.264 + AAC covered. -
HLS SAMPLE-AES decryption.
SAMPLE-AESstreams (AAC + H.264) now decrypt
in-process with a supplied key, alongside the existing CENC / cbcs / AES-128
support. No license handshake — you provide the key. -
Plain-file downloads (aria2c-style). Give it a direct file URL —
.mp4,
.mkv,.zip,.iso, anything — and it downloads over many byte-range
connections at once, with the same resume, retries, and adaptive concurrency as
the stream pipeline. Falls back to a single connection when the server won't do
ranges, keeps the real filename and extension, and skips ffmpeg (the file is
already complete). -
Paste a curl command (
-curl). For a URL that needs specific request
headers, hand the tool a browser's "Copy as cURL" instead of retyping each
-H: a file path,-for stdin, or the command inline. It takes the URL and
every header (folding-A/-e/-binto User-Agent/Referer/Cookie); an
explicit URL or-Hstill overrides. -
Update check. Once a day the tool checks GitHub for a newer release and
prints a one-line notice if you're behind. It never blocks the download; turn
it off with-no-update-checkorM314DL_NO_UPDATE_CHECK=1. -
Seekable VOD restreaming. A finite (VOD) source served over
-serve/
-workeris now presented as a proper seekable video — the whole timeline
is scrubbable — instead of a live window. Segments spool to disk, so memory
stays flat regardless of the asset's length, and the HLS playlist gains
EXT-X-ENDLISTonce the source completes. Live sources still roll a bounded
window (a live stream has no full timeline to seek).
Fixed
-
MPEG-TS restream cut viewers off after a few seconds (
-serve-format ts),
live sources included. The fan-out dropped a viewer by counting publish units,
but the remux path emits tiny pipe-sized chunks, so the buffer was worth under a
second and any burst kicked everyone. It now measures by bytes, primes a joining
viewer for instant start, drains the queued tail when the stream ends instead of
cutting mid-play, and aligns remux output to TS packet boundaries. -
VOD restream stopped after the initial buffer and kept growing memory. A
finite source was presented as a live stream that snapshotted mid-download and
stopped; it is now the seekable, disk-spooled VOD described above — playback
follows through to the end and memory stays flat. -
Latent byte-range corruption on the shared segment path. A ranged request
answered with a whole-object200used to be written as if it were the
requested slice, misplacing bytes; it is now refused (a file download retries on
a single connection), and a short206retries for the remainder instead of
committing a truncated chunk.
Notes
Decryption still requires you to supply the content key; the tool performs no
license/CDM/FairPlay handshake. MSS AC-3/E-AC-3 and HEVC-over-TS are not decrypted
yet (they're reported clearly rather than passed through scrambled).