8.31.2010

HTTP Live Streaming Client

In keeping with the general trend of posting updates once a year, I've decided to make a little utility that might be useful to some people.

HTTP Live Streaming is a protocol developed by Apple and released as an IETF draft for the purpose of streaming multimedia (video and/or audio) over HTTP. The protocol is very simple, and relies on a constantly-changing .m3u playlist to control the playback.

Surprisingly, I didn't find any existing client software on the Web; the only extant clients seem to be iOS devices (iPhone, iPod touch, iPad) and Safari on Mac OS X (via QuickTime X).

So, I've hacked up a really simple Python client which calls up VLC and feeds it the stream. The client supports encryption (well, it does in theory; I have yet to find an in-the-wild stream to test this on), and should provide decent performance.

If you have any issues or feedback, please do reply in the comments!

Download the source code or a precompiled Windows executable (may require MSVCR71.dll).

The Windows executable assumes you have VLC installed to C:\Program Files\VideoLAN\VLC. If you have it installed elsewhere, you will need to edit the source code.

UPDATE [07/22/2012]: The source code has been updated to support HLS v3. Since I no longer own a Windows box, I cannot update the Windows exe. Therefore, if you run into issues with the Windows exe, I suggest you try the source code version.

Updated 05/25/2011: fixed links.
Updated 09/24/2011: fixed links.
Updated 07/22/2012: update to support HLS v3 playlists.