Microsoft Smooth Streaming downloader #6573

Closed
opened 2026-02-21 03:19:39 -05:00 by deekerman · 3 comments
Owner

Originally created by @fstirlitz on GitHub (Jan 2, 2016).

Smooth Streaming (SSTR) is a protocol for media streaming over HTTP, created by Microsoft. It isn't terribly popular, but sometimes it's the only option available (see #1753, #7096).

SSTR is superficially similar to other manifest-based media streaming formats: there's an XML file which describes what streams are available and a URL pattern of media fragments. A single manifest may directly describe multiple versions of multiple audio streams and multiple video streams; this may make it a bit harder to support, given that youtube-dl seems to assume each stream has its own URL. Stream fragments are in the series-of-boxes format known from MP4 files; however mere concatenation doesn't yield a playable file, because certain crucial boxes are missing (including those containing codec parameters, which are stored in the manifest).

Since FFmpeg doesn't contain a SSTR (pseudo-)demuxer, a custom downloader will have to be written. The downloader should probably synthesise a single-stream media file and leave multiplexing to FFmpeg (like it's done with YouTube DASH).

Some documentation:

Example video: http://mediadl.microsoft.com/mediadl/iisnet/smoothmedia/Experience/BigBuckBunny_720p.ism/Manifest

Originally created by @fstirlitz on GitHub (Jan 2, 2016). Smooth Streaming (SSTR) is a protocol for media streaming over HTTP, created by Microsoft. It isn't terribly popular, but sometimes it's the only option available (see #1753, #7096). SSTR is superficially similar to other manifest-based media streaming formats: there's an XML file which describes what streams are available and a URL pattern of media fragments. A single manifest may directly describe multiple versions of multiple audio streams and multiple video streams; this may make it a bit harder to support, given that youtube-dl seems to assume each stream has its own URL. Stream fragments are in the series-of-boxes format known from MP4 files; however mere concatenation doesn't yield a playable file, because certain crucial boxes are missing (including those containing codec parameters, which are stored in the manifest). Since FFmpeg doesn't contain a SSTR (pseudo-)demuxer, a custom downloader will have to be written. The downloader should probably synthesise a single-stream media file and leave multiplexing to FFmpeg (like it's done with YouTube DASH). Some documentation: - http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/%5BMS-SSTR%5D.pdf - https://msdn.microsoft.com/en-us/library/ff728116%28v=vs.90%29.aspx - https://msdn.microsoft.com/en-us/library/ff728116%28v=vs.95%29.aspx Example video: http://mediadl.microsoft.com/mediadl/iisnet/smoothmedia/Experience/BigBuckBunny_720p.ism/Manifest
deekerman 2026-02-21 03:19:39 -05:00
  • closed this issue
  • added the
    request
    label
Author
Owner

@ghost commented on GitHub (Jan 28, 2016):

I suspect http://research.microsoft.com/apps/tools/tuva also uses this and would be a worthwhile target for youtube-dl.

@ghost commented on GitHub (Jan 28, 2016): I suspect http://research.microsoft.com/apps/tools/tuva also uses this and would be a worthwhile target for youtube-dl.
Author
Owner

@ghost commented on GitHub (Mar 31, 2016):

Here's smooth-dl written in Python. Maybe that could be used as a basis. Haven't checked to see if it's actually working though.
https://git.ao2.it/smooth-dl.git/

@ghost commented on GitHub (Mar 31, 2016): Here's smooth-dl written in Python. Maybe that could be used as a basis. Haven't checked to see if it's actually working though. https://git.ao2.it/smooth-dl.git/
Author
Owner

@dstftw commented on GitHub (Mar 31, 2016):

It can't until released under unlicense.

@dstftw commented on GitHub (Mar 31, 2016): It can't until released under unlicense.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/youtube-dl-ytdl-org#6573
No description provided.