Skip to main content

readinsp

readinsp reads Insta360 .insp still-image files into NumPy arrays.

Usage

from readinsp import read_insp, read_metadata, read_preview

image = read_insp("example.insp")
print(image.shape, image.dtype)  # (3040, 6080, 3) uint8

preview = read_preview("example.insp")
print(preview.shape)  # (960, 1920, 3)

metadata = read_metadata("example.insp")
print(metadata.width, metadata.height, metadata.preview_size)
print(metadata.exif.get("Model"))
print(metadata.trailer.fields.get("camera_model"))

Rectilinear views

read_rectilinear undistorts the two circular fisheye images, combines the two lenses, and renders a regular perspective view:

from readinsp import read_rectilinear

view = read_rectilinear(
    "example.insp",
    spherical_angle=(0, 0),  # yaw, pitch in degrees
    hfov=90,
    vfov=60,
    width=1200,
)
print(view.shape)  # (693, 1200, 3)

Angle convention: yaw 0 points at the left fisheye lens, yaw 180 points at the right fisheye lens, and positive pitch looks up. spherical_angle may also include a third roll value: (yaw, pitch, roll). When height is omitted, it is computed from the FOVs so the output has approximately square angular sampling near the view center. The default dual-fisheye model assumes a 190 degree fisheye per lens with an 8 degree blend near the stitch boundary. Both values can be overridden.

Gravity leveling is available for files with a valid EXIF MakerNote gravity vector:

from readinsp import SphericalAngle, read_rectilinear

floor = read_rectilinear(
    "example.insp",
    spherical_angle=SphericalAngle(yaw=0, pitch=-90, gravity_level=True),
    hfov=90,
    vfov=70,
    width=1000,
)

With gravity_level=True, positive pitch looks opposite gravity and negative pitch looks along gravity. Yaw is still camera-relative because the inspected files do not include a usable magnetic-north heading.

Install for local development from the repository root with:

python -m pip install -e readinsp

Limitations

This is a reverse-engineered parser based on samples from the OneR and OneRS cameras and might not work for other camera models. Rectilinear rendering is an approximate open implementation and will not match Insta360 Studio's proprietary stitching exactly, especially near the lens seam.

Metadata

Release files for readinsp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for readinsp 0.1.0
File Size Uploaded Provenance Actions
readinsp-0.1.0.tar.gz 11.7 kB With provenance Details for readinsp-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for readinsp 0.1.0
File Interpreter ABI Platform Actions
readinsp-0.1.0-py3-none-any.whl Python 3 none any Details for readinsp-0.1.0-py3-none-any.whl

Total release size: 21.9 kB

Release files / readinsp-0.1.0.tar.gz

Download URL readinsp-0.1.0.tar.gz
Size 11.7 kB
Tags Source
SHA-256 checksum
How to use checksums
95ccd13041a3610c11cddb180de2d62c36ba951052187811b627a1472f061065
BLAKE2b-256 checksum
How to use checksums
a66744f3ec6654af768636797c7e7d11b310a38d76d77ddc78a0de6d186b7ae6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 22, 2026.

Transparency log

Release files / readinsp-0.1.0-py3-none-any.whl

Download URL readinsp-0.1.0-py3-none-any.whl
Size 10.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1d8d8da858d6428131da5cd121a0628f2db8236a7f8e06978519c4e43a8010af
BLAKE2b-256 checksum
How to use checksums
e26e71ed661177dabccb0dc706e9fd6d2d2ca3aa5ae42fd61b28b2461c4fe8a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 22, 2026.

Transparency log

Security for readinsp 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for readinsp-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page