Glued

Build Status

A Ruby client to download HDS recorded fragments and glue them together. If it's live content you want then you need to start coding.

The primary aim is to download video on demand content. Encrypted content will download, however it will not playback unless your player accomodates it and a license is available for the media.

HDS is designed for live media that dynamically adapts to network conditions and avoids buffering. It uses the HTTP protocol to benefit from existing network infastructre (ie CDNs). It is similar to MPEG-DASH and HLS.

References

Specification Documents

Code

Etc

Questions / Answers / Guesses

A box is a convention within a stream of bytes. Each box starts with a header, which describes length and type, followed by the data in the box.

Abbreviations

HDS - HTTP Dynamic Streaming
F4M - Flash Media Manfiest
F4F - Flash Media File fragment
F4X - Flash Media Index file
F4V - H.264/AAC based content
FLV - Other flash supported codecs

How it works

Load the f4m manifest
- Bad url? go 💥
- Detect any alternate bitrate manifests? go 💥
- Detect a live stream? go 💥
- Automatically picks the higest bitrate stream
Builds a list of fragment urls
Download each fragment
- Fragment fails? go 💥
Glue it to the previous fragment
Repeat till done

License

MIT, see accomanying LICENSE document