Skip to content
On-the-fly extraction of rar files being downloaded from a newsgroup/http, etc
C++
Latest commit 2a85bb8 Feb 8, 2014 @vlovich Merge pull request #3 from HessiJames/master
Compilation fix and small improvements

README

Allows monitoring within specific directories or specifying the first part of a multi-part archive explicitly.  This program supports the "rar, r00, r01..." and "part01.rar, part02.rar..." naming schemes.

If a part of the multi-part archive is missing, then it will silently wait until the part becomes available, and then continue extraction.

This is really only useful if you can ensure that each part of the archive is non-corrupt as it becomes available on the filesystem (e.g. Usenet)

This is a free, open-source, and more importantly cross-platform alternative to a feature found in NZBPlayer.  It is designed to be combined with binary newsgroup readers (i.e. HellaNZB, NZBGet) and media players (i.e. VLC, MPlayer).

Introduction
Stream unrar allows you to begin extraction of non-corrupt multi-part archives that are (in the most common use) being downloaded from newsgroups (Usenet). This is particularly useful with videos which tend to take longer to download in full, but for which it is usually possible

What it does do
Begin extraction right as the first archive of multi-part rar archive become available. This allows you to begin watching movies or listening to music downloaded through places like newsgroups as soon as the first file is downloaded, which is usually takes only a few minutes.

When to use it:

Download speed > bitrate of media. Otherwise, you'll have to wait until such a point as you can be confident that it will finish downloading before you've finishing playing it or the files won't extract fast enough to be played real-time.
Parts download consecutively & not corrupt - not suitable for bittorrent where the files appear before they are completely downloaded. Also, they are downloaded out of order.
Your media player supports partially complete files (Videolan works perfectly for me). Even though it may say that the movie has 0 minutes, it should play through perfectly. However, you may experience that seeking doesn't work very well - in this case, you may have to wait until several more parts are extracted so that the video player can find the index.
Speed guide for stream-like behaviour:

SD video would require about a 200 KB/s sustained rate
720p video would require about a 500 KB/s sustained rate
1080p video would require about a 750 KB/s sustained rate
Installation
Simply extract the binary (or copy the compiled binaries) onto your path. Also, your best bet is to place the rar dynamic library (unrar.dll for Windows, libunrar.so for Linux) in the same directory as the executable.

If you wish to use them implicitly on the command line (i.e. not have to specify the full path to the binary every time), you could place both so they appear on your path. The way I have it currently set up on my machine, is that both the executable and library are in my home directory with symlinks created in /usr/local/bin & /usr/lib.

Common Usage
Currently the proof of concept works best with the following arguments:

stream_unrar -m <directory to monitor> -e <directory to extract to>

Deprecated
In theory, you should be able to use the following syntax to extract a single passworded multi-part archive:

stream_unrar -a

<first_part>
-d <directory to extract to> -p password.
This configuration is not really as well tested (especially the -p option which has never been tested). Unless there is a convincing request, this capability will disappear in the near future.

Disclaimer
Music and videos as mentioned above refer works which are legally obtained. I am not endorsing you to break any copyright laws that may be applicable where you live.
Something went wrong with that request. Please try again.