povcut
Turn Ray-Ban Meta footage into viral shorts with one command.
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:
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
visionextra, 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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| povcut-0.1.0.tar.gz | 32.2 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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.
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 logA 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.