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 -ee option
  • Batch processing of large numbers of files is possible with shell scripts

References