rerar

Re-create Rar sets exactly

https://github.com/vadmium/rerar
https://github.com/markokr/rarfile

Grab latest version from https://bitbucket.org/Gfy/pyrescene/src/

C:\rerar-master>c:\Python33\python.exe rerar.py help
Options:
help    Display this help
file <grp-name.avi>
        Specify data file. If directory only is specified, append internal name.

ref <grp-name.rar>
        Read settings from existing Rar file
internal <grp-name.avi>
        Name to be used for the data file inside the Rar set. Defaults to the
        external file name, without any directory components (basename).
time "<yyyy>-<mm>-<dd> <hh>:<mm>:<ss>[.<sssssss>]"
        Override data file timestamp (Full resolution: +5 bytes per volume)
dryrun  Display file names and sizes but do not create them
rr      Produce Rar 3 recovery records (~1% of total size)
unicode Store data file name in Unicode (~4 bytes per volume)
lf      Use only LFs at end of text lines in SFV file
crcrlf  Use CR-CR-LF end-of-line sequence
sfvhead Specify SFV header
naming3 Force "new" Rar 3 volume naming scheme (".partN.rar"). Default is
        "old" Rar 2 unless names beyond ".r99" would be needed.
naming2
lock    Set "lock" bit, indicating the archive is not supposed to be modified
nonum   Do not include volume number in end block
blankend
        Do not include any fields in end block
normalattr
        Set "normal" (instead of usual "archive") file attribute bit
dict <size>
        Specify dictionary size (default is 4096 for Rar 3 and 256 for Rar 2)
rar2    "Old" Rar version 2 format
size <size>
        Rar volume size (default is 15000000)
unix    Set OS to Unix (instead of Windows)
lenient Ignore problems with the reference file
overwrite
        Allow writing to release directory that already exists
base <grp-name>
        Base output name, appended with ".sfv", ".partN" and ".rar" as
        appropriate. Default is the base name of the internal data file name
        with extension removed.

Example usage

A repack of Big.Buck.Bunny.2008.DTS.1080p.BluRay.x264-DARM was posted to Usenet. An SFV file could be found in predbs, but no RARs to be seen elsewhere 5 years after pre. This movie can be shared legally after all…

Rerar is used to grab the file date from the repack as follows:

>python.exe rerar.py ref darm-bigbuckbunny-1080p.part01.rar dryrun
darm-bigbuckbunny-1080p.mkv: Size: 731785842 (697.885 MiB)
Reference volume size: 52428800 (50.000 MiB)
 naming3 internal darm-bigbuckbunny-1080p.mkv time 2009-02-05 19:09:19.6718750

Depending on the accuracy of the date, the time info might not always be needed as parameter. The part after the seconds was dropped on a Linux and Windows (NTFS) system after extraction. After that it's just fiddling around with the settings. Another DARM SRR showed that rr was used together with naming2. Based on the amount of files in the .sfv, we can be sure it most likely needs size 50000000 too.

file darm-bigbuckbunny-1080p.mkv time "2009-02-05 19:09:19.6718750" size 50000000

Turns out rr wasn't needed. Equivalent parameters would be these:

file darm-bigbuckbunny-1080p.mkv time "2009-02-05 19:09:19.6718750" size 50000000 naming2 base darm-bigbuckbunny-1080p internal darm-bigbuckbunny-1080p.mkv

Unexpected file attributes

Alias.S05E01.DVDRip.XviD-TOPAZ\tpz-alias501.rar+0x30: Unexpected file attributes: 0x00002020

recreating the rars with "file Alias.S05E01.DVDRip.XviD-TOPAZ.avi time "2006-11-04 02:13:01.6875000" size 15000000 rr naming2 base tpz-alias501 internal Alias.S05E01.DVDRip.XviD-TOPAZ.avi" results in different crcs

Use the attr parameter to set the *nix archived file attributes. e.g. -rw-rw-rw-

The meaning of this case is still unknown, so use --?-------r----- and comment out this line:

attr = 0x8000 # no idea yet about this start value

or grab the latest code.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License