This article introduces how to programmatically check from the command line whether GPS information is contained in 360-degree video files (.insv) shot with Insta360.
Background
Videos shot with Insta360 cameras have location information embedded when the GPS function is enabled. However, depending on the shooting settings and GPS signal reception conditions, files with and without GPS information may be mixed.
When organizing a large number of files, there are cases where you want to classify files by the presence or absence of GPS information.
Tool Used
exiftool is used. On macOS, it can be installed with Homebrew.
brew install exiftool
Key Point: The -ee Option Is Required
Insta360’s .insv files embed GPS information not in standard EXIF tags but in a proprietary track within the MP4 container.
Therefore, GPS information cannot be read with the normal exiftool command.
# This will not find GPS information
exiftool -GPSPosition video.insv
# (no output)
By using the -ee (extractEmbedded) option, GPS information can be extracted from the embedded metadata track.
# This can read GPS information
exiftool -ee -GPSPosition video.insv
# GPS Position : 26 deg 20' 37.88" N, 126 deg 49' 43.32" E
Checking a Single File
exiftool -ee -GPSPosition filename.insv
If GPS information is present, the location information is output; if absent, nothing is output.
Batch Checking Multiple Files
The following shell script checks the GPS presence for all .insv files in a folder.
#!/bin/bash
echo "=== GPS Information Check ==="
echo ""
for f in /path/to/folder/*.insv; do
filename=$(basename "$f")
gps=$(exiftool -ee -GPSPosition "$f" 2>/dev/null | grep "GPS Position" | head -1)
if [ -n "$gps" ]; then
echo "✓ GPS present: $filename"
echo " $gps"
else
echo "✗ GPS absent: $filename"
fi
done
Execution Example
=== GPS Information Check ===
✓ GPS present: VID_20251124_102711_00_020.insv
GPS Position : 26 deg 20' 30.42" N, 126 deg 52' 53.72" E
✓ GPS present: VID_20251124_102928_00_021.insv
GPS Position : 26 deg 20' 21.86" N, 126 deg 53' 12.79" E
✗ GPS absent: VID_20251124_111033_00_026.insv
✗ GPS absent: VID_20251124_111204_00_027.insv
✓ GPS present: VID_20251124_113446_00_029.insv
GPS Position : 26 deg 20' 37.88" N, 126 deg 49' 43.32" E
Script to Automatically Classify Files
This script classifies files into separate folders based on the presence or absence of GPS information.
#!/bin/bash
SOURCE_DIR="/path/to/source"
GPS_DIR="/path/to/with_gps"
NO_GPS_DIR="/path/to/without_gps"
mkdir -p "$GPS_DIR" "$NO_GPS_DIR"
for f in "$SOURCE_DIR"/*.insv; do
filename=$(basename "$f")
gps=$(exiftool -ee -GPSPosition "$f" 2>/dev/null | grep "GPS Position")
if [ -n "$gps" ]; then
echo "GPS present: $filename -> $GPS_DIR"
cp "$f" "$GPS_DIR/"
else
echo "GPS absent: $filename -> $NO_GPS_DIR"
cp "$f" "$NO_GPS_DIR/"
fi
done
echo "Done"
Getting More Detailed GPS Information
You can also retrieve information beyond latitude and longitude.
exiftool -ee -G3 -GPS:all video.insv
Example output:
[Doc32521] GPS Date/Time : 2025:11:24 02:34:46.999Z
[Doc32521] GPS Latitude : 26 deg 20' 37.88" N
[Doc32521] GPS Longitude : 126 deg 49' 43.32" E
[Doc32521] GPS Speed : 6.3631
Output in CSV Format
To output information for multiple files in CSV:
exiftool -ee -csv -GPSPosition -GPSDateTime *.insv > gps_info.csv
Summary
- GPS information in Insta360 .insv files is embedded in a proprietary format
- Readable with the
exiftool -eeoption - Batch processing of large numbers of files is possible with shell scripts