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…
c:\Python35\python.exe c:\bin\rerar\rerar.py help
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.