2026-04-21T18-28-14Z__iter_02
4/21/2026, 6:28:14 PM · 1 flow · 1,230ms total
clean All settings match production defaults (app_defaults.yaml asOf 2026-04-19).
Build provenance
App
1.4·3
com.flashcopy.app.dev
Git
8ef32bfcc2
feature/ocr-v2-structured-lambdas · dirty
Sim
AAC26DF1…
com.flashcopy.app.dev
Built at
4/21/2026, 5:56:25 PM
video
Input media
No media file found for this input.
ScreenRecording_03-03-2026 10-36-16_1.MOV2.39 MBsha256 7e986ca659…
Input id
BBBB0004
Total
1.23s
Output
0 words
0 chars
Cost est
$0.00033
gemini-2.5-flash · basis: chars
in 4,398 · out 0 tok
Stage timings
frame-extraction
0ms
s3-upload
1.23s
cloud-processing
0ms
Stage details
| frame-extraction | model gemini-2.5-flash frames 15 |
| s3-upload | bucket qr-video-ocr-frames |
| cloud-processing | lambda backgroundProcessor model gemini-2.5-flash persisted false chars 0 |
Prompts used
all prompts → frame_ocr gemini-2.5-flash 66326cc5be… · 81 chars
Perform OCR on this image and return plain text only. Do not describe the image.
qr_reader_v1/frame_ocr_lambda.py:31
video_polish gemini-2.5-flash structured JSON sha n/a · 898 chars
Please stitch together the OCRs that are taken from individual screenshots/frames from a video. There should be overlapping lines which can be used as a marker for when one frame ends and another begins. Please do not alter the content in any way besides stitching the content together and please add correct indentation. Do not alter or add any content.
Your final output must be a single, valid JSON object and nothing else. The JSON object must conform to the following structure:
{
"stitched_response": "(string) This key must hold the final, fully reconstructed and cleaned document text.",
"additional_notes": "(string) Use this field to briefly describe your process. Mention any significant noise you filtered out (e.g., 'Removed text from a Save As dialog box') or any ambiguities you encountered during the reconstruction."
}
Here is the raw OCR text from video frames:
{raw_text} qr_reader_v1/video_ocr_polishing_lambda_rest.py:102
Output diff
vs 2026-04-21T18-15-49Z__iter_01 No text to compare.
Video credit reconciliation
1 credit / frame Frames
15
Charged
15
Expected (1/frame)
15
Current app bills by duration seconds; at fps=1.0 frames == seconds so this matches by accident. Any non-1.0 fps surfaces a mismatch.
Error
video poll timeout after 360s — videoId=321b90bc-4e56-4846-920f-48352924c8a6 still processing
Run settings
Show all 20 values
{
"videoFramesPerSecond": 1,
"videoStitchingMethod": "gemini_only",
"videoPipelineMode": "s3_parallel",
"useBackgroundVideoProcessing": true,
"rekognitionThreshold": 80,
"geminiModel": "gemini-2.5-flash",
"photoOcrPromptSha": "48496a3017a2708a92d142281c5ab19f64f8132555514a00cbc35ca9d39daeba",
"frameOcrPromptSha": "66326cc5be6bdd434dbbdd330b519e26bd8bbcab4a6037a64c2148b66cd2aceb",
"imageRetentionHours": 24,
"bypassImageSaveConfirmation": true,
"bypassProcessingResultWindow": true,
"enableAnalytics": true,
"confirmCollectionReset": true,
"enableNotifications": false,
"autoProcessImages": true,
"includeBrandingInSharedText": true,
"autoSavePhotos": true,
"multiPhotoSeparator": "double_line",
"showDebugInfo": false,
"headerFooterStyle": "equals"
}