Inspiration

After showing someone a rough cut, the feedback often arrives too late and too vaguely: the middle dragged, or a transition was confusing. The viewer remembers a feeling; the editor needs a moment they can find.

Cinemastamps brings feedback into the screening itself. It is for independent filmmakers, students, and small creative teams watching their own work on the living-room screen.

What it does

Play a film on the native Vega TV app and use the remote to stamp Great moment, Dragging, or Confusing. Every stamp retains the actual playback time, including fractional seconds. Review reactions, filter them, and select a timestamp followed by Play to revisit a moment.

A private phone/browser companion handles detailed notes, local MP4/WebM uploads, and CSV, Markdown, or JSON exports. A note entered on the companion appears on TV. Sending another film starts a fresh review. The editor gets a concrete report tied to the screening.

How it works

The demonstration app uses React Native for Vega, Amazon's W3C media player and native video surface, directional focus, and the dedicated AsyncStorage library. It was built with Vega SDK 0.24.12112 for Vega OS 1.2 and is demonstrated on the official Vega Virtual Device.

A Node.js/Express companion runs on a computer on the same trusted local network. It stores reviews and uploads, provides a private QR pairing link, and uses FFmpeg to prepare short local clips as compatible H.264/AAC fragmented MP4. The native demo supports clips up to five minutes and bounds prepared media at 32 MB. The computer must remain running during the screening. There are no cloud accounts or external model calls.

The repository also contains a browser screening room and an earlier Android APK intended for Fire OS. The native Vega app is the demonstrated hackathon target; the Android APK has only been tested on Android TV.

Challenges and what we learned

The Linux virtual-device image did not provide the WebView service needed by the initial wrapper approach. A native Vega implementation made playback, focus, and device lifecycle explicit. Replacing a film exposed an asynchronous player teardown race; awaiting cleanup before initializing the next player fixed replacement playback without restarting the app. Pairing persistence required Amazon's dedicated AsyncStorage library, verified by terminating and relaunching the installed app.

The companion also rejects stamps queued for an old film after a source change. Automated checks exercise authenticated pairing and the real FFmpeg preparation pipeline.

What makes it useful

The remote gives viewers a quick way to react without interrupting the film. The phone gives them room to explain afterward. Those two inputs become one timestamped editing report. Timestamped video review exists elsewhere; Cinemastamps focuses on completing that workflow comfortably on a TV.

Completed demo and verification

The installed x86_64 Vega app was exercised for video playback, directional input, three reaction types, review filters, timestamp revisits, QR pairing, synchronized notes, CSV export, uploaded-film playback, and restart persistence. Twelve model/API/media/playback-health/connection tests passed in a fresh Docker image with zero skipped. TypeScript passed. Native release packages built for x86_64, aarch64, and armv7; only x86_64 was installed and tested. See the repository verification document for detailed evidence.

The 1:58 English demonstration uses actual native app recordings, edited for length, with narration, captions, and the actual exported review. Follow-up testing captured simulator movie audio and VoiceView speech, exercised focused VoiceView navigation, and improved spoken labels and selected states.

Version 0.2.2 fixes duplicate remote Play/Pause handling, replays ended films, preserves the paired review when reconnecting after a companion outage, and keeps review filters from hiding reactions on the screening screen. The outage/restart/retry test restored the same three stamps and edited note without creating another session. A downloaded CSV preserved fractional timestamps, quotation marks, and a line break. The companion also retained an unsaved draft after a failed save.

A full simulator restart retained the review and completed the trailer with captured audio. Remote Play/Pause, forward/backward seek, and replay from the end were exercised on the virtual device. One intermediate startup stall exercised the bounded automatic player recovery; later playback completed normally. A virtual-display disconnection separately terminated the app, and relaunch restored its review. Detailed evidence and remaining simulator diagnostics are in the verification report.

Cinemastamps follows the official Vega simulator demo route. The Fire TV track rules accept a demo on an actual Fire TV device or the Fire TV/Vega simulator. This project uses the simulator option; physical hardware testing is not an outstanding submission requirement. VoiceView received focused checks on 0.2.1. The simulator ran in the documented local Docker setup.

This version does not support DRM services, arbitrary streaming URLs in the native player, long-form streaming, cloud collaboration, or frame-accurate editing timecode. Pairing links expire after 24 hours; disconnecting the TV does not revoke a link.

Try it

Source and setup instructions · Version 0.2.2 packages and verification recording · Verification · Development friction log

Application source: MIT, copyright 2026 agammann. Demo footage: Sintel, copyright 2010 Blender Foundation, Creative Commons Attribution 3.0. Full notices are in the repository.

Share this project:

Updates

Submission history