This is a command-line tool to convert "App in the Air" data export to a csv format accepted by MyFlightradar24. It's built mainly for one-time migration of your flight history from "App in the Air" to MyFlightradar24.
In the "App in the Air" app: Profile | Settings | Export account.
You will then receinve an email containing your full data export in a file named data.txt
.
This is the file you will then need to pass to the converter script as an input.
Run the script from within the top-level project folder
(or provide a qualified path to the data
folder in a --data-dir
argument)
python converter.py --input <PATH_TO_DATA_TXT> --output <PATH_TO_OUTPUT_CSV>
Upload the converter's output to https://my.flightradar24.com/settings/import
Despite claiming to accept Openflights.org export format, MyFlightradar24 doesn't always correctly recognize the airline and the aircraft model from the openflights export.
Surprisingly, MyFlightradar24 doesn't accept IATA/ICAO codes for airlines/planes, but rather relies on internal ids or full names. On top of that, their internal ids don't match with the openflights database, and are not easily accessible.
Full names in the openflights db mostly match MyFR24's expected names, but not always.
For the relatively rare occasion of the mismatch, manually created data/extra_airlines.dat
and data/extra_planes.dat
provide overrides or additions to the openflights db
(openflights database is no longer regularly updated, so new airlines are missing).
These files are by no means exhaustive, and your export will probably contain a few mismatched airlines or planes. If
you notice a large amount of missing records in your MyFR24 flight import please consider adding to the override files.
(The expected names for airlines/planes on MyFR24 can be found in the suggestion box when manually adding a flight).
Some known issues:
- Boeing 737 MAX cannot be added to MyFR24. I was unable to find the right spelling that would be recognized by the import script
- Wrong airline name can be picked in case of an IATA code conflict. 2-letter IATA codes are not unique worldwide, however "App in the Air" uses them as the only airline identifier in the data export. The coverter doesn't check whether a flight actually exists and would pick the last matching airline in the openflights database.
- The script ignores
Ownership.MINE
andOwnership.NOT_MINE
flags and adds all the flights to the output regardless
To deploy the MyFR24 Converter as a web application, follow these steps:
-
Ensure you have Podman installed on your system. If not, install it following the instructions for your operating system.
-
Clone the repository:
git clone https://github.com/ffuuugor/myfr24-converter.git cd myfr24-converter
-
Build the Docker image:
podman build -t myfr24-converter .
-
Run the container with host networking:
podman run -d --network host --name myfr24-converter myfr24-converter
-
The application should now be accessible at
http://localhost:80
. If you're deploying on a remote server, replacelocalhost
with your server's IP address or domain name. -
To stop the container:
podman stop myfr24-converter
-
To start the container again:
podman start myfr24-converter
-
If you need to rebuild the image after making changes:
podman stop myfr24-converter podman rm myfr24-converter podman build -t myfr24-converter . podman run -d --network host --name myfr24-converter myfr24-converter
Note: Using host networking (--network host
) means the container will use the host's network stack directly. This is simpler for deployment but may not be suitable for all production environments. For more complex setups, consider using port mapping and configuring your host's firewall appropriately.
As a first step in its execution, the script will download airlines and planes databases provided by Openflights.
We are very thankful to OpenFlights for maintaining and publishing the data.