Patching

From BakaBT Wiki
Jump to navigation Jump to search

xdelta

The main method the anime community uses to patch files is by using xdelta. This is necessary when a group release a new version of an episode (Usually in a batch). xdelta is a commmand line program using VCDIFF. When patching using xdelta you will be provided with .xdelta files. With the xdelta command prompt and .xdelta files you can patch whichever file needed.

Patching with xdelta (Windows and UNIX/Linux)

Error creating thumbnail: File missing
Patching a file using the cmd
xdelta3 -d -s old_file delta_file new_file
  1. For Windows users, download xdelta3 from here. For UNIX users this step is optional. If the latest version isn't working for you try an older release
  2. Copy the file into the folder with your .xdelta file and the file you want to patch. For your convenience, windows users rename to xdelta3.exe
  3. Open up your cmd/terminal and navigate to the folder where the episode, .xdelta, and .exe file is at.
  4. Type in
    xdelta3 -d -s old_filename.mkv deltafile.xdelta new_filename.mkv
  5. You will have to wait a few moments for the patch to finish. Once done you will see the new file in your folder.

If you get your .xdelta file from a fansub group you may not need to use -s. This will work just fine:

xdelta3 -d file.xdelta

Patching with xdelta (Mac)

You'll have to install xdelta on your Mac. Easy way is to install Homebrew and type "brew install xdelta" in your terminal. After that put the patch files in same same folder as your v1 files, navigate with cd on your terminal in that folder, and use the standard xdelta3 commands:

xdelta3 -d file.xdelta

You may need Xcode for Homebrew. It's either on the Mac OS install disc or you can download it from the Apple developer site with an Apple ID.

If you're having problems with homebrew, an alternative is to use MultiPatch.


Batch Files on Windows

It's easy to patch more than one file at the same time. You'll need to create a .bat file.

  1. Open notepad
  2. For every line type in exactly what you would type inside the cmd, except with a different .xdelta file for each episode.
  3. At the end type in @pause (Optional, just prevents the command line from closing).
  4. Save as a .bat and run the file.

This is an example of how a .bat would look like for xdelta patching (Special thanks to Tiberium Wolf):

xdelta3 -d -s "[UTW-Underwater]_Tasogare_Otome_x_Amnesia_-_01_[720p][900E8404].mkv" "01v2.xdelta" "[UTW-Underwater]_Tasogare_Otome_x_Amnesia_-_01_[720p-v2][DFC39F0F].mkv"

xdelta3 -d -s "[UTW-Underwater]_Tasogare_Otome_x_Amnesia_-_02_[720p][3996A1DF].mkv" "02v2.xdelta" "[UTW-Underwater]_Tasogare_Otome_x_Amnesia_-_02_[720p-v2][77D7488F].mkv"

xdelta3 -d -s "[UTW-Underwater]_Tasogare_Otome_x_Amnesia_-_06_[720p][CD450656].mkv" "06v2.xdelta" "[UTW-Underwater]_Tasogare_Otome_x_Amnesia_-_06_[720p-v2][5C608A55].mkv"

xdelta3 -d -s "[UTW-Underwater]_Tasogare_Otome_x_Amnesia_-_08_[720p][23E4B85A].mkv" "08v2.xdelta" "[UTW-Underwater]_Tasogare_Otome_x_Amnesia_-_08_[720p-v2][8990A041].mkv"

xdelta3 -d -s "[UTW-Underwater]_Tasogare_Otome_x_Amnesia_-_11_[720p][50D118C3].mkv" "11v2.xdelta" "[UTW-Underwater]_Tasogare_Otome_x_Amnesia_-_11_[720p-v2][56E32A06].mkv"

xdelta3 -d -s "[UTW-Underwater]_Tasogare_Otome_x_Amnesia_-_12_[720p][3AA25CFB].mkv" "12v2.xdelta" "[UTW-Underwater]_Tasogare_Otome_x_Amnesia_-_12_[720p-v2][2A76D55B].mkv"

@pause


Making a Batch Script for Mac

If you have a lot of items to patch and don't want to do it one at a time, you can make a simple script that will automatically patch one file after another.

  1. Open a text editor of your choice. TextWrangler is a good free option, but Apple's own TextEdit works fine as well. If you use TextEdit, in the menubar click Format > Make Plain Text before typing anything.
  2. Use the following as an example of what to type:
#!/bin/bash

xdelta3 -d /path_to_patch_number_1.xdelta &&
xdelta3 -d /path_to_patch_number_2.xdelta &&
xdelta3 -d /path_to_patch_number_3.xdelta &&
xdelta3 -d /path_to_patch_number_4.xdelta &&
xdelta3 -d /path_to_patch_number_5.xdelta
The first line shows the location of the Unix shell that you're going to run the commands in. In this instance the shell called bash is located in the folder named bin on the main hard drive. If you are using OS X 10.3 or later #!/bin/bash is the first command you want to type at the top.
Here is a breakdown of the next lines:
  • xdelta3 runs the xdelta patching utility
  • -d is a flag/option that tells the xdelta3 command to decompress
  • /path_to_patch_number_1.xdelta is the path to the .xdelta file (the patch)
    For example /Users/Spike/Anime/CowboyBebop/CowboyBebopPatch01.xdelta says that the patch named CowboyBebopPatch01.xdelta is in the CowboyBebop folder which is in the Anime folder, which in turn is in the home folder of user Spike on the main hard drive. If any of your folder's names have a space in them you need to put quotes around them. For example, if the folder CowboyBebop was actually named Cowboy Bebop, then the path would look like this /Users/Spike/Anime/"Cowboy Bebop"/CowboyBebopPatch01.xdelta.
  • && tells the shell to wait until previous command is done before running the next one
    So xdelta3 -d /path_to_patch_number_2.xdelta won't run until xdelta3 -d /path_to_patch_number_1.xdelta is done. xdelta3 can only patch one file at a time so if you forget the && you will get the error message xdelta3: too many filenames.
3. Finally, save the document with the extension .sh. When you want to run it just drag the file into the terminal window and hit enter. Remember to have the .xdelta files in the same folder as the video files you want to patch.