My A/C is controlled with an IR remote that is not supported and recognized by Ken Shirriff's library.
The original Arduino-IRremote library works with up to 100 mark/space buckets, while my A/C remote sends longer signals (around 180-190 buckets), so I forked the library in order to add support for my remote.

A/C IR Analyzer

As can be seen in the sender code, all preconfigured commands are hard-coded raw buffers representing raw IR signals that can be sent using the Arduino-IRremote library, followed by a "selector" function that returns a pointer to a specific raw buffer that matches the current state (if supported).

This can be hard to maintain manually (e.g. adding additional commands, adjusting the buffers for another A/C, etc.), so I don't :-)

code -- generates the Arduino code that can be pasted straight into the A/C IR sender project

The output of the Arduino IR Receiver should be given to the script with context on which IR dump represents which A/C command, by passing to the script a path to a directory (using -d path/to/dir flag) that contains raw IR dump files.
Each file should be named following the command it represents, in the form "Power-Mode-Fan-Temp", where:

Power: "Toggle" or "Leave"

Mode: "Cool", "Heat", "Fan" or "Dry"

Fan: "Auto", "Low", "Medium" or "High"

Temp: A 2-digit temperature value
Each raw IR dump file can contain one or more IR samples as received from the Arduino IR Receiver project. The more samples are present in a file, the better the accuracy will be, since the script averages all sampled signals.