EXIF Geolocation — Image/Video → GPS Location
المكتبات
- exifread 3.5.1 (صور — JPEG/HEIC/TIFF/RAW)
- ffprobe (فيديو — يقرأ GPS من MP4/MOV metadata)
- Pillow 12.2.0 (fallback)
الواقع المهم 🔴
- GPS data موجود فقط لو الكاميرا/الجوال حفظه (افتراضياً ON على iPhone/Samsung)
- WhatsApp/Telegram/Instagram يحذفون EXIF عند الرفع (privacy)
- الصور الأصلية من الكاميرا = فيها GPS عادةً
- Screenshots = لا GPS
استخدام (صور)
python
import exifread
with open('photo.jpg', 'rb') as f:
tags = exifread.process_file(f)
lat = tags.get('GPS GPSLatitude')
lon = tags.get('GPS GPSLongitude')
Convert DMS → decimal, then reverse geocode via OSM Nominatim
استخدام (فيديو)
bash
ffprobe -v quiet -print_format json -show_format video.mp4 | \
jq '.format.tags | {location, "com.apple.quicktime.location.ISO6709"}'
Reverse Geocoding (مجاني)
- Nominatim (OSM):
https://nominatim.openstreetmap.org/reverse?lat=X&lon=Y&format=json
- BigDataCloud (مجاني unlimited):
https://api.bigdatacloud.net/data/reverse-geocode-client
بدائل عند غياب EXIF
1.
Vision AI clues: لافتات + لغة + معالم + نباتات → استنتاج تقريبي
2.
Reverse image search: Google Lens / TinEye / Yandex
3.
GeoGuessr-style reasoning: Opus Vision قوي في هذا
Script جاهز
scripts/extract_location.py <file> → JSON مع lat/lon + address + Google Maps link