Project

glued

0.0
No commit activity in last 3 years
No release in over 3 years
HDS Downloader
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
>= 0

Runtime

>= 0
 Project Readme

Glued

Build Status Code Climate Coverage Status Dependency Status Gem Version

A Ruby client to download HDS recorded fragments and glue them together. Live content isn't supported.

The primary aim is to download video on demand content. Encrypted DRM 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