Skip to main content

povcut

Turn Ray-Ban Meta footage into viral shorts with one command.

CI PyPI MIT

Your glasses record for hours. Nobody watches hours. povcut finds the 30 seconds worth posting, cuts them into vertical 1080×1920 shorts with captions, and packs each one with a ready-to-paste caption and hashtags.

pip install povcut          # needs ffmpeg on your PATH
povcut pipeline ~/footage   # import -> find moments -> cut -> pack. done.

One folder of POV footage in, a folder of ready-to-post shorts out:

shorts/
  pov_day_moment0_s68/
    clip.mp4      # vertical 1080x1920, burned-in captions
    thumb.jpg     # thumbnail
    caption.txt   # post text + hashtags, ready to paste

Demo

Raw "footage" (24 s, panning test pattern with a loud middle) → povcut pipeline with the tactical HUD → the moment that matters, cut, hooked, and packed. Sample footage, real pipeline:

demo

Why this exists

Every open-source project for Ray-Ban Meta glasses is a developer tool: de-metaified clients, voice bridges to your own agent, IRL streaming rigs, file converters. All brilliant. None of them helps with the thing the glasses are actually for — making content.

POV creators shoot for hours and edit for longer. povcut kills the scrubbing:

  • moments — ranks every candidate moment 0–100 by audio energy (laughter, reactions, applause), scene changes, faces on camera, and Shorts-length fit. The loud bits float to the top.
  • cut — smart 9:16 crop that follows faces (needs the vision extra, else a clean center crop), karaoke-style burned-in captions, 30 fps, platform-ready H.264.
  • HUD overlays — tactical or minimal themes: REC bug, running timecode, progress bar, kinetic lower-third, and an auto hook title card ("wait for it…") in the first 1.5 s. The "how did you film that?" layer.
  • spin — rewrites any clip into the Ray-Ban Meta capture structure so Instagram treats it as glasses footage and enables Spin View. Yes, even phone footage.
  • pack — every clip ships with a thumbnail, a caption, and hashtags. Paste and post.
  • post — dual-track publishing via the shared creator-publish package: Track A — official APIs (YouTube first, then TikTok/Instagram/X/Threads/Bluesky/LinkedIn/Pinterest/Facebook), BYO keys, scheduled in plain English. Track B — a native-posting handoff pack for creators who'd rather post from the app itself.
  • stats/tune — an honest experiment: post performance is recorded from day one, and per-creator scoring weights tune themselves only after enough real data exists (≥50 posts, ≥60 days — enforced in code, with kill criteria if there's no signal).

Install

pip install povcut
# optional: face-following crop
pip install "povcut[vision]"
# optional: fully on-device auto captions (free, no API key)
pip install "povcut[auto-captions]"

You need ffmpeg and ffprobe on your PATH (download).

Usage

# the one-command happy path
povcut pipeline ~/MetaAIFootage --top 3

# or step by step
povcut import ~/MetaAIFootage            # deduped, date-organized library
povcut moments clip.mp4 --top 5         # ranked moments with reasons
povcut cut clip.mp4 --top 3             # vertical shorts + packs
povcut cut clip.mp4 --hud tactical      # the comment-bait overlay look
povcut cut clip.mp4 --captions auto     # with on-device transcription
povcut cut clip.mp4 --captions subs.srt # or your own .srt, burned in
povcut spin phone_clip.mp4              # Spin View-ready _SPIN.MOV

# publish (needs: pip install creator-publish)
povcut post clip.mp4 --dry-run                      # validate, post nothing
povcut post clip.mp4 --title "POV: ..."             # YouTube via official API
povcut post clip.mp4 --at "Friday 6pm"              # scheduled, plain English
povcut post clip.mp4 --handoff                      # Track B: native-posting pack
povcut worker                                       # run the publish queue
povcut stats                                        # recorded performance
povcut tune                                         # refuses until enough data

povcut moments prints something like:

[0]     8.0s ->    16.0s  score  67.9  (loud moment (laughter / reaction / applause))
[1]     0.0s ->     6.0s  score  31.7  (scene change)
[2]    18.0s ->    24.0s  score  31.7  (scene change)

How the viral score works

No black box. Each moment gets 0–100 from three honest signals:

Signal Weight What it measures
Loudness 45% RMS energy vs. the clip's own baseline — laughter, gasps, applause
Length fit 30% 15–45 s is the Shorts/TikTok sweet spot
Faces 25% fraction of frames with a face on camera (skipped gracefully without the vision extra)

Reasons are printed next to every score, and the full ranking lands in moments.json if you want to build on it.

Spin View, explained

Instagram decides a video "came from Meta glasses" by reading its QuickTime structure, not its pixels. povcut spin rewrites any clip into that structure: QuickTime container with the qt brand, ftyp/wide/mdat/moov order, the meta atom as a direct child of moov with the glasses' com.apple.quicktime.* fields, the tapt atom, Core Media handler names, HEVC hvc1 at 1376×1840 / 30 fps, movie timescale 48000, AAC 48 kHz stereo — chunk offsets repointed so the file stays valid.

The structural recipe was reverse-engineered by the public metaspin project (MIT), which compared rebuilds against genuine Ray-Ban Meta Gen 2 captures and verified Spin View on a real account. povcut's spin module is an independent implementation of that documented structure, with credit where it's due. No serial numbers or device identifiers are copied — only the shared structure both files have in common.

After every conversion, povcut spin runs a structural self-check (atom order, meta keys, tapt, timescales, chunk offsets inside mdat) and refuses to call it done if anything is off.

Roadmap

  • HUD overlays + hook title cards
  • Dual-track publishing via the shared creator-publish package
  • Performance stats + tuning experiment (kill criteria enforced in code)
  • Per-frame crop tracking (smooth subject follow instead of per-clip crop)
  • Auto hook titles from transcription, not just moment reasons
  • True camera-roll push (companion app)

Contributing

PRs welcome. The test suite generates its own synthetic footage and runs the whole pipeline — python -m unittest discover -s tests. No API keys, no accounts, no network needed.

License

MIT. Not affiliated with, endorsed by, or sponsored by Meta Platforms or EssilorLuxottica.

Metadata

Release files for povcut 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 povcut 0.1.0
File Size Uploaded Provenance
povcut-0.1.0.tar.gz 32.2 kB With provenance Details

Built distribution (wheel)

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

Total release size: 63.5 kB

Release files / povcut-0.1.0.tar.gz

Download URL povcut-0.1.0.tar.gz
Size 32.2 kB
Tags Source
SHA-256 checksum
How to use checksums
9b2032178e5f45578f0aaaed712796dc783e688d5a6d92d463a3cbbca42b37ae
BLAKE2b-256 checksum
How to use checksums
e123d71f1240f407bb1d7affcaa6588863600b8eb5c52a3c7b6431b298c16f1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 21, 2026.

Transparency log

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

Download URL povcut-0.1.0-py3-none-any.whl
Size 31.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e58c9f753fd3bc7dec76d5de26a7ca973a1922ef90bbb3baed7fd3f3b494fd0c
BLAKE2b-256 checksum
How to use checksums
8673e516e4bca8601c0d981fe09144dc2384dc702d40a54142ecd416413b3264
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 21, 2026.

Transparency log

Security for povcut 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 povcut-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 Oct 21, 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.

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