Recording · Day 2

Council meeting - Public hearing

Technical details
Recording ID 833
Meeting ID 11
File path 0055d248-7087-4cef-8ce5-ca2f2a856ba1.mkv
Recording information
Status
Completed
Duration
1h39m
Start time
2026-04-07 13:30
End time
2026-04-07 21:08
Extract audio
Extract WAV audio for transcription and diarization
Storage & files
File type Storage Path / Key Status Action
Video S3 0055d248-7087-4cef-8ce5-ca2f2a856ba1.mkv Exists
Transcript S3 0a2a63d0-fa08-42a9-bb7d-b688e1ccb2dc.json Exists
WAV S3 db7c8886-7672-4284-b849-daea137422f0.wav Exists
Diarization Pyannote S3 b7b37fca-d002-4b66-89e6-7d239c7ff3ac.json Exists
Diarization Gemini S3 f8f28517-9b4b-487d-99b3-15f121ee816b.json Exists
Diarization Consolidated S3 b72419da-41e1-41a4-ac3b-f627a91ef862.json Exists
Transcription progress
Completed
Loading transcription status…
Full recording transcript and speaker diarization data available for download.
Gemini-refined · speaker labels improved with AI using meeting agenda context
Processing logs
106 entries 2 errors 15 warnings
20:41:40 [INFO] Consolidation completed: 121 segments (reduced from 576)
20:41:40 [INFO] {"step": "consolidation", "status": "completed", "updated_at": "2026-06-17T14:41:40.358326-06:00", "consolidated_path": "f8f28517-9b4b-487d-99b3-15f121ee816b.diarization.consolidated.json", "stats": {"original_segment_count": 576, "consolidated_segment_count": 121, "reduction_percent": 78.99}}
20:41:39 [INFO] {"step": "consolidation", "status": "processing", "updated_at": "2026-06-17T14:41:39.482142-06:00"}
20:41:39 [INFO] Speaker refinement completed
20:41:39 [INFO] {"step": "gemini", "status": "completed", "updated_at": "2026-06-17T14:41:39.463801-06:00", "output_path": "/tmp/tmpza_6uwe8.json"}
20:41:39 [INFO] ================================================================================
20:41:39 [INFO] CHUNKING COMPLETE: Successfully merged all 1 chunks in 67.0s
20:41:39 [INFO] ================================================================================
20:41:39 [INFO] ✓ Unique speaker mappings discovered: 18
20:41:39 [INFO] ✓ Speakers: 14 named, 16 generic
20:41:39 [INFO] ✓ Segment count: 576/576
20:41:39 [WARNING] Large gap detected at segment 554: 5687.725s -> 5696.585s
20:41:39 [WARNING] Large gap detected at segment 546: 5652.885s -> 5672.565s
20:41:39 [WARNING] Large gap detected at segment 489: 5278.985s -> 5284.985s
20:41:39 [WARNING] Large gap detected at segment 277: 3134.605s -> 3142.805s
20:41:39 [WARNING] Large gap detected at segment 256: 2858.865s -> 2869.065s
20:41:39 [WARNING] Large gap detected at segment 234: 2761.685s -> 2767.185s
20:41:39 [WARNING] Large gap detected at segment 233: 2752.345s -> 2758.225s
20:41:39 [WARNING] Large gap detected at segment 193: 2551.205s -> 2556.425s
20:41:39 [WARNING] Large gap detected at segment 156: 2376.325s -> 2382.085s
20:41:39 [WARNING] Large gap detected at segment 101: 1783.645s -> 1791.285s
20:41:39 [WARNING] Large gap detected at segment 84: 1525.965s -> 1538.505s
20:41:39 [WARNING] Large gap detected at segment 41: 1205.345s -> 1210.565s
20:41:39 [WARNING] Large gap detected at segment 38: 1191.325s -> 1198.585s
20:41:39 [WARNING] Overlap detected at segment 22: 1133.085s -> 1131.545s
20:41:39 [INFO] VALIDATING MERGED RESULT
20:41:39 [INFO] --------------------------------------------------------------------------------
20:41:39 [DEBUG] Saved chunk 1 state to database
20:41:39 [INFO] Chunk 1: ✓ Refined successfully. Total speaker mappings: 18
20:41:39 [INFO] Chunk 1: Added 18 new speaker mappings. Total: 18
20:41:39 [INFO] Chunk 1: Gemini returned 30 speakers (14 refined: Andrea Walter, Charlene Prickett, Christian Leventure, City Clerk, Connor Meinke, Councillor A. Chabot, Councillor D. McLean, Councillor Jameson, Councillor Schmidt, Councillor Tyres, Guy Buchanan, Mayor Farkas, Paul Augustine, Sharon Chu)
20:41:39 [INFO] Chunk 1: Successfully refined 191 segments with sparse mapping
20:41:39 [INFO] Saved parsed JSON: /tmp/tmp3my98og_/0055d248-7087-4cef-8ce5-ca2f2a856ba1.mkv.gemini_debug/chunk_001_parsed.json
20:41:38 [INFO] Saved chunk response: /tmp/tmp3my98og_/0055d248-7087-4cef-8ce5-ca2f2a856ba1.mkv.gemini_debug/chunk_001_response.txt
20:41:38 [INFO] Chunk 1: Gemini finish_reason: FinishReason.STOP
20:41:38 [INFO] Chunk 1: Received Gemini API response in 66.5s
20:40:32 [INFO] Chunk 1: Starting Gemini API call (model: gemini-2.5-pro, prompt length: 96442 chars)...
20:40:32 [INFO] Saved chunk input: /tmp/tmp3my98og_/0055d248-7087-4cef-8ce5-ca2f2a856ba1.mkv.gemini_debug/chunk_001_input.json
20:40:32 [INFO] Time range: 1094.6s - 5787.8s
20:40:32 [INFO] Processing chunk 1/1 (576 segments)
20:40:32 [INFO] --------------------------------------------------------------------------------
20:40:32 [INFO] Prior run found but no chunks completed. Starting from chunk 1/1
20:40:32 [INFO] Chunk tracking initialized in database
20:40:32 [INFO] Creating chunk tracking records for 1 chunks
20:40:32 [INFO] Split into 1 chunks
20:40:32 [INFO] ================================================================================
20:40:32 [INFO] City Clerk City Clerk, Councillor S. Sharp, Councillor J. Wyness, Councillor J. Mian, Councillor S. Chu, Councillor R. Dhaliwal, Councillor R. Pootmans, Councillor T. Wong, Councillor C. Walcott, Councillor G. Carra, Councillor A. Chabot, Councillor K. Penner, Councillor E. Spencer, Councillor D. McLean, Councillor P. Demong, Mayor J. Gondek, Council The provided text does not contain an attendance section or a list of council members., Administration There is no attendance information in the provided text., Public Speaker This document section does not contain any names of public speakers., Council no names can be extracted. The provided text does not contain an attendance section or a list of council members. Therefore, Administration There is no attendance section in the provided text., Administration An administration or staff attendance section was not found in the provided text.
20:40:32 [INFO] ================================================================================
20:40:32 [INFO] CHUNKING STRATEGY: Speaker list being used:
20:40:32 [INFO] ================================================================================
20:40:32 [INFO] CHUNKING: Processing 576 segments in chunks of 1500
20:40:32 [INFO] ================================================================================
20:40:32 [WARNING] Creating debug folder: /tmp/tmp3my98og_/0055d248-7087-4cef-8ce5-ca2f2a856ba1.mkv.gemini_debug. These folders are not auto-cleaned. Clean up with: rm -rf *.gemini_debug/
20:40:32 [INFO] Large meeting detected (576 segments). Using chunking strategy.
20:40:32 [INFO] Starting speaker refinement
20:40:31 [INFO] Cleanup completed: 21 segments corrected
20:40:31 [INFO] {"step": "cleanup", "status": "completed", "updated_at": "2026-06-17T14:40:31.315604-06:00", "applied_count": 21}
20:40:31 [INFO] {"step": "cleanup", "status": "processing", "updated_at": "2026-06-17T14:40:31.083930-06:00"}
20:40:31 [INFO] Starting name cleanup step
20:40:31 [INFO] Diarization completed and attached: /tmp/tmp3my98og_/0055d248-7087-4cef-8ce5-ca2f2a856ba1.mkv.diarization.pyannote.json
20:40:31 [INFO] Diarization completed successfully!
20:40:31 [INFO] {"step": "diarization", "status": "completed", "updated_at": "2026-06-17T14:40:31.060289-06:00", "output_path": "/tmp/tmp3my98og_/0055d248-7087-4cef-8ce5-ca2f2a856ba1.mkv.diarization.pyannote.json"}
20:40:30 [INFO] Extracted 576 turn-based segments
20:40:30 [INFO] Diarization results saved to /tmp/tmp3my98og_/0055d248-7087-4cef-8ce5-ca2f2a856ba1.mkv.diarization.pyannote.json
20:40:30 [INFO] Job completed! Retrieving results...
20:40:30 [INFO] Job status: completed
20:40:30 [INFO] Speaker diarization completed
20:40:30 [INFO] Speaker diarization completed
20:40:30 [INFO] Poll #1: Status: succeeded
20:40:19 [INFO] Diarization job started (Job ID: de20b7c9-7ae8-4a59-a3e5-66398c4b8040). Processing audio...
20:40:19 [INFO] Job de20b7c9-7ae8-4a59-a3e5-66398c4b8040 already completed. Using existing results.
20:40:18 [INFO] Found existing pyannote job (ID: de20b7c9-7ae8-4a59-a3e5-66398c4b8040). Checking status...
20:40:18 [INFO] Found existing pyannote job (ID: de20b7c9-7ae8-4a59-a3e5-66398c4b8040). Checking status...
20:40:18 [INFO] Starting speaker diarization via pyannote.ai API
20:40:18 [INFO] Starting speaker diarization via pyannote.ai API
20:40:17 [INFO] Using S3 pre-signed URL for diarization
20:40:17 [INFO] {"step": "diarization", "status": "processing", "updated_at": "2026-06-17T14:40:17.558892-06:00"}
20:40:17 [INFO] Starting transcription + diarization
20:40:17 [INFO] Audio extracted and attached: /tmp/tmp3my98og_/0055d248-7087-4cef-8ce5-ca2f2a856ba1.wav
20:40:17 [INFO] {"step": "extraction", "status": "completed", "updated_at": "2026-06-17T14:40:17.547604-06:00", "wav_path": "/tmp/tmp3my98og_/0055d248-7087-4cef-8ce5-ca2f2a856ba1.wav"}
20:40:14 [INFO] Audio extracted to /tmp/tmp3my98og_/0055d248-7087-4cef-8ce5-ca2f2a856ba1.wav
20:39:44 [INFO] Extracting audio to WAV format
20:39:44 [INFO] Extracting audio to WAV format
20:39:44 [INFO] {"step": "extraction", "status": "processing", "updated_at": "2026-06-17T14:39:44.300110-06:00"}
20:39:44 [INFO] Starting audio extraction
20:39:38 [INFO] Downloading video from S3 for processing
20:19:12 [INFO] Job submitted successfully via webhook. Returning early.
20:19:11 [INFO] Webhooks enabled: https://ccai-api.pixeltree.ca/api/webhooks/pyannote
20:19:11 [INFO] Submitting diarization + transcription job to pyannote.ai (URL: https://ccai-prod.s3.amazonaws.com/c983d60b-0135-4f3d-b65f-b7375d990dca.wav?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAQK6LNXA7XP5KSEWG%2F20260617%2Fca-central-1%2Fs3%2Faws4_request&X-Amz-Date=20260617T201911Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e0e8f8525c1aa5f594a2c9049e49aa7e15b4d056f8fea3a987a968515d4fe5d5)
20:19:11 [INFO] Starting speaker diarization via pyannote.ai API
20:19:11 [INFO] Starting speaker diarization via pyannote.ai API
20:19:11 [INFO] Using S3 pre-signed URL for diarization
20:19:11 [INFO] {"step": "diarization", "status": "processing", "updated_at": "2026-06-17T14:19:11.311382-06:00"}
20:19:11 [INFO] Starting transcription + diarization
20:19:11 [INFO] Audio extracted and attached: /tmp/tmpqyxm1jcv/0055d248-7087-4cef-8ce5-ca2f2a856ba1.wav
20:19:11 [INFO] {"step": "extraction", "status": "completed", "updated_at": "2026-06-17T14:19:11.300877-06:00", "wav_path": "/tmp/tmpqyxm1jcv/0055d248-7087-4cef-8ce5-ca2f2a856ba1.wav"}
20:19:09 [INFO] Audio extracted to /tmp/tmpqyxm1jcv/0055d248-7087-4cef-8ce5-ca2f2a856ba1.wav
20:18:51 [INFO] Extracting audio to WAV format
20:18:51 [INFO] Extracting audio to WAV format
20:18:51 [INFO] {"step": "extraction", "status": "processing", "updated_at": "2026-06-17T14:18:51.774867-06:00"}
20:18:51 [INFO] Starting audio extraction
20:18:47 [INFO] Downloading video from S3 for processing
20:15:07 [INFO] Download completed successfully
20:14:09 [INFO] Manual retry initiated by user
16:52:02 [ERROR] Step full failed: Recording 833 has no file path
16:44:13 [ERROR] Step full failed: Recording 833 has no file path