Recording · Day 1
Regular Meeting of Council
Technical details
Recording ID
828
Meeting ID
63
File path
17774389-345e-49a9-b8c9-31705cbf154a.mkv
Recording information
Status
Completed
Downloading…
0%
Duration
5h9m
Start time
2026-02-24 14:30
End time
2026-02-25 02:39
Extract audio
Extract WAV audio for transcription and diarization
Progress
Storage & files
| File type | Storage | Path / Key | Status | Action |
|---|---|---|---|---|
| Video | S3 | 17774389-345e-49a9-b8c9-31705cbf154a.mkv | Exists | |
| Transcript | S3 | 96deffe7-56a1-475d-a07b-1e5c7ae6e098.json | Exists | |
| WAV | S3 | c2c884a6-b7ee-4a6b-8da9-506c25a0fc60.wav | Exists | |
| Diarization Pyannote | S3 | c57fe8e2-c8f1-4888-a2eb-0c1e857b0855.json | Exists | |
| Diarization Gemini | S3 | 7399498e-1a22-4a69-8d51-be30039b62bf.json | Exists | |
| Diarization Consolidated | S3 | 07a65163-6d4b-43ca-a7ec-4241c772b25a.json | Exists |
Transcription progress
Completed
Loading transcription status…
Transcript & diarization
Full recording transcript and speaker diarization data available for download.
Gemini-refined · speaker labels improved with AI using meeting agenda context
Processing logs
169 entries
2 errors
64 warnings
16:59:25
[INFO]
Consolidation completed: 840 segments (reduced from 2179)
16:59:25
[INFO]
{"step": "consolidation", "status": "completed", "updated_at": "2026-06-29T10:59:25.500551-06:00", "consolidated_path": "7399498e-1a22-4a69-8d51-be30039b62bf.diarization.consolidated.json", "stats": {"original_segment_count": 2179, "consolidated_segment_count": 840, "reduction_percent": 61.45}}
16:59:25
[INFO]
{"step": "consolidation", "status": "processing", "updated_at": "2026-06-29T10:59:25.120245-06:00"}
16:59:25
[INFO]
Speaker refinement completed
16:59:25
[INFO]
{"step": "gemini", "status": "completed", "updated_at": "2026-06-29T10:59:25.104468-06:00", "output_path": "/tmp/tmp7pd3_600.json"}
16:59:24
[INFO]
================================================================================
16:59:24
[INFO]
CHUNKING COMPLETE: Successfully merged all 2 chunks in 200.3s
16:59:24
[INFO]
================================================================================
16:59:24
[INFO]
✓ Unique speaker mappings discovered: 26
16:59:24
[INFO]
✓ Speakers: 19 named, 36 generic
16:59:24
[INFO]
✓ Segment count: 2179/2179
16:59:24
[WARNING]
Large gap detected at segment 2129: 18408.085s -> 18423.225s
16:59:24
[WARNING]
Large gap detected at segment 2112: 18360.625s -> 18370.785s
16:59:24
[WARNING]
Large gap detected at segment 2072: 18200.545s -> 18219.745s
16:59:24
[WARNING]
Large gap detected at segment 2055: 18020.125s -> 18031.745s
16:59:24
[WARNING]
Large gap detected at segment 1978: 17357.325s -> 17376.165s
16:59:24
[WARNING]
Large gap detected at segment 1802: 15658.385s -> 15670.525s
16:59:24
[WARNING]
Large gap detected at segment 1783: 15546.965s -> 15552.465s
16:59:24
[WARNING]
Large gap detected at segment 1587: 13621.725s -> 13627.765s
16:59:24
[WARNING]
Large gap detected at segment 1523: 12930.985s -> 12944.325s
16:59:24
[WARNING]
Large gap detected at segment 1401: 11994.085s -> 12005.465s
16:59:24
[WARNING]
Large gap detected at segment 1398: 11969.345s -> 11986.125s
16:59:24
[WARNING]
Large gap detected at segment 1384: 11891.845s -> 11896.925s
16:59:24
[WARNING]
Large gap detected at segment 1380: 11867.505s -> 11884.465s
16:59:24
[WARNING]
Large gap detected at segment 1306: 11090.445s -> 11096.885s
16:59:24
[WARNING]
Large gap detected at segment 1261: 10688.605s -> 10695.285s
16:59:24
[WARNING]
Large gap detected at segment 1250: 10637.565s -> 10651.025s
16:59:24
[WARNING]
Large gap detected at segment 1246: 10612.945s -> 10629.565s
16:59:24
[WARNING]
Large gap detected at segment 1103: 9316.005s -> 9323.145s
16:59:24
[WARNING]
Large gap detected at segment 1058: 9160.165s -> 9165.865s
16:59:24
[WARNING]
Large gap detected at segment 1054: 9144.465s -> 9154.125s
16:59:24
[WARNING]
Large gap detected at segment 1040: 9095.925s -> 9102.565s
16:59:24
[WARNING]
Large gap detected at segment 1027: 9040.345s -> 9046.685s
16:59:24
[WARNING]
Large gap detected at segment 1022: 9021.245s -> 9033.425s
16:59:24
[WARNING]
Large gap detected at segment 1000: 8930.025s -> 8936.145s
16:59:24
[WARNING]
Large gap detected at segment 996: 8905.745s -> 8914.205s
16:59:24
[WARNING]
Large gap detected at segment 989: 8876.265s -> 8897.105s
16:59:24
[WARNING]
Large gap detected at segment 909: 8183.145s -> 8188.985s
16:59:24
[WARNING]
Large gap detected at segment 779: 6559.945s -> 6589.205s
16:59:24
[WARNING]
Large gap detected at segment 774: 6533.405s -> 6540.485s
16:59:24
[WARNING]
Large gap detected at segment 764: 6501.705s -> 6516.645s
16:59:24
[WARNING]
Large gap detected at segment 677: 5641.845s -> 5656.425s
16:59:24
[WARNING]
Large gap detected at segment 438: 3238.285s -> 3244.265s
16:59:24
[WARNING]
Large gap detected at segment 436: 3223.965s -> 3230.765s
16:59:24
[WARNING]
Large gap detected at segment 415: 3145.325s -> 3189.765s
16:59:24
[WARNING]
Large gap detected at segment 410: 3095.225s -> 3117.265s
16:59:24
[WARNING]
Large gap detected at segment 404: 3073.085s -> 3085.025s
16:59:24
[WARNING]
Large gap detected at segment 402: 3057.485s -> 3066.765s
16:59:24
[WARNING]
Large gap detected at segment 398: 3026.285s -> 3039.265s
16:59:24
[WARNING]
Large gap detected at segment 381: 2956.285s -> 2997.345s
16:59:24
[WARNING]
Large gap detected at segment 356: 2844.665s -> 2857.085s
16:59:24
[WARNING]
Large gap detected at segment 346: 2792.305s -> 2820.705s
16:59:24
[WARNING]
Large gap detected at segment 343: 2766.105s -> 2773.925s
16:59:24
[WARNING]
Large gap detected at segment 322: 2680.925s -> 2694.505s
16:59:24
[WARNING]
Large gap detected at segment 303: 2608.905s -> 2618.805s
16:59:24
[WARNING]
Large gap detected at segment 270: 2538.765s -> 2546.725s
16:59:24
[WARNING]
Large gap detected at segment 268: 2519.065s -> 2529.545s
16:59:24
[WARNING]
Large gap detected at segment 251: 2470.665s -> 2491.525s
16:59:24
[WARNING]
Large gap detected at segment 244: 2401.685s -> 2416.985s
16:59:24
[WARNING]
Large gap detected at segment 235: 2350.005s -> 2359.205s
16:59:24
[WARNING]
Large gap detected at segment 212: 2196.665s -> 2220.185s
16:59:24
[WARNING]
Large gap detected at segment 209: 2177.405s -> 2183.505s
16:59:24
[WARNING]
Large gap detected at segment 155: 1607.885s -> 1641.445s
16:59:24
[WARNING]
Large gap detected at segment 153: 1580.845s -> 1588.845s
16:59:24
[WARNING]
Large gap detected at segment 151: 1277.385s -> 1383.845s
16:59:24
[WARNING]
Large gap detected at segment 141: 1235.405s -> 1240.465s
16:59:24
[WARNING]
Large gap detected at segment 133: 1132.925s -> 1142.145s
16:59:24
[WARNING]
Large gap detected at segment 131: 1080.665s -> 1087.965s
16:59:24
[WARNING]
Large gap detected at segment 126: 936.665s -> 945.465s
16:59:24
[WARNING]
Large gap detected at segment 124: 923.065s -> 935.485s
16:59:24
[WARNING]
Large gap detected at segment 116: 898.905s -> 904.645s
16:59:24
[WARNING]
Large gap detected at segment 106: 853.345s -> 876.645s
16:59:24
[WARNING]
Large gap detected at segment 105: 822.065s -> 843.345s
16:59:24
[WARNING]
Large gap detected at segment 33: 105.605s -> 116.525s
16:59:24
[INFO]
VALIDATING MERGED RESULT
16:59:24
[INFO]
--------------------------------------------------------------------------------
16:59:24
[DEBUG]
Saved chunk 2 state to database
16:59:24
[INFO]
Chunk 2: ✓ Refined successfully. Total speaker mappings: 26
16:59:24
[INFO]
Chunk 2: Added 17 new speaker mappings. Total: 26
16:59:24
[INFO]
Chunk 2: Gemini returned 24 speakers (8 refined: City Clerk K. Martin, Councillor A. Chabot, Councillor D. McLean, Councillor D.J. Kelly, Councillor M. Jamieson, Councillor R. Dhaliwal, General Manager M. Thompson, Mayor J. Farkas)
16:59:24
[INFO]
Chunk 2: Successfully refined 257 segments with sparse mapping
16:59:24
[INFO]
Saved parsed JSON: /tmp/tmp_04jxv_3/17774389-345e-49a9-b8c9-31705cbf154a.mkv.gemini_debug/chunk_002_parsed.json
16:59:24
[INFO]
Saved chunk response: /tmp/tmp_04jxv_3/17774389-345e-49a9-b8c9-31705cbf154a.mkv.gemini_debug/chunk_002_response.txt
16:59:24
[INFO]
Chunk 2: Gemini finish_reason: FinishReason.STOP
16:59:24
[INFO]
Chunk 2: Received Gemini API response in 114.4s
16:57:30
[INFO]
Chunk 2: Starting Gemini API call (model: gemini-2.5-pro, prompt length: 115922 chars)...
16:57:30
[INFO]
Saved chunk input: /tmp/tmp_04jxv_3/17774389-345e-49a9-b8c9-31705cbf154a.mkv.gemini_debug/chunk_002_input.json
16:57:30
[INFO]
Time range: 12798.8s - 18536.7s
16:57:30
[INFO]
Processing chunk 2/2 (669 segments)
16:57:30
[INFO]
--------------------------------------------------------------------------------
16:57:30
[DEBUG]
Saved chunk 1 state to database
16:57:30
[INFO]
Chunk 1: ✓ Refined successfully. Total speaker mappings: 24
16:57:30
[INFO]
Chunk 1: Added 24 new speaker mappings. Total: 24
16:57:30
[INFO]
Chunk 1: Gemini returned 52 speakers (18 refined: Chief Administrative Officer D. Duckworth, City Clerk K. Martin, Councillor A. Chabot, Councillor A. Yule, Councillor D. McLean, Councillor D.J. Kelly, Councillor H. Clark, Councillor J. Pantazopoulos, Councillor J. Wyness, Councillor K. Tyers, Councillor L. Johnston, Councillor M. Atkinson, Councillor M. Jamieson, Councillor N. Schmidt, Councillor R. Dhaliwal, Councillor R. Ward, Kathleen MacPherson, Mayor J. Farkas)
16:57:30
[INFO]
Chunk 1: Successfully refined 315 segments with sparse mapping
16:57:30
[INFO]
Saved parsed JSON: /tmp/tmp_04jxv_3/17774389-345e-49a9-b8c9-31705cbf154a.mkv.gemini_debug/chunk_001_parsed.json
16:57:30
[INFO]
Saved chunk response: /tmp/tmp_04jxv_3/17774389-345e-49a9-b8c9-31705cbf154a.mkv.gemini_debug/chunk_001_response.txt
16:57:30
[INFO]
Chunk 1: Gemini finish_reason: FinishReason.STOP
16:57:30
[INFO]
Chunk 1: Received Gemini API response in 85.3s
16:56:04
[INFO]
Chunk 1: Starting Gemini API call (model: gemini-2.5-pro, prompt length: 245475 chars)...
16:56:04
[INFO]
Saved chunk input: /tmp/tmp_04jxv_3/17774389-345e-49a9-b8c9-31705cbf154a.mkv.gemini_debug/chunk_001_input.json
16:56:04
[INFO]
Time range: 0.0s - 12794.3s
16:56:04
[INFO]
Processing chunk 1/2 (1510 segments)
16:56:04
[INFO]
--------------------------------------------------------------------------------
16:56:04
[INFO]
Prior run found but no chunks completed. Starting from chunk 1/2
16:56:04
[INFO]
Chunk tracking initialized in database
16:56:04
[INFO]
Creating chunk tracking records for 2 chunks
16:56:04
[INFO]
Split into 2 chunks
16:56:04
[INFO]
================================================================================
16:56:04
[INFO]
Councillor R. Ward, Councillor A. Yule, Councillor / Deputy Mayor J. Pantazopoulos, Councillor M. Jamieson, Councillor H. Clark, Councillor R. Dhaliwal, Councillor M. Atkinson, Councillor K. Tyers, Councillor D.J. Kelly, Councillor A. Chabot, Councillor N. Schmidt, Councillor J. Wyness, Councillor L. Johnston, Councillor D. McLean, Mayor J. Farkas, Chief Administrative Officer D. Duckworth, Chief Operating Officer S. Dalgleish, City Solicitor and General Counsel J. Floen, Chief Financial Officer L. Tochor, General Manager Chris Arthurs, A/General Manager K. Choi, General Manager D. Hamilton, General Manager D. Morgan, General Manager M. Thompson, City Clerk K. Martin, Leader, Legislative Services M. A. Cario, Senior Legislative Specialist J. Booth, Senior Legislative Specialist C. Doi, Former Member of Parliament Barbara Sparrow, Justice Brian Stevenson, Chief Development Officer of the United Way Calgary and Area Kathleen MacPherson
16:56:04
[INFO]
================================================================================
16:56:04
[INFO]
CHUNKING STRATEGY: Speaker list being used:
16:56:04
[INFO]
================================================================================
16:56:04
[INFO]
CHUNKING: Processing 2179 segments in chunks of 1500
16:56:04
[INFO]
================================================================================
16:56:04
[WARNING]
Creating debug folder: /tmp/tmp_04jxv_3/17774389-345e-49a9-b8c9-31705cbf154a.mkv.gemini_debug. These folders are not auto-cleaned. Clean up with: rm -rf *.gemini_debug/
16:56:04
[INFO]
Large meeting detected (2179 segments). Using chunking strategy.
16:56:04
[INFO]
Starting speaker refinement
16:56:03
[INFO]
Cleanup completed: 262 segments corrected
16:56:03
[INFO]
{"step": "cleanup", "status": "completed", "updated_at": "2026-06-29T10:56:03.598047-06:00", "applied_count": 262}
16:56:03
[INFO]
{"step": "cleanup", "status": "processing", "updated_at": "2026-06-29T10:56:03.260814-06:00"}
16:56:03
[INFO]
Starting name cleanup step
16:56:03
[INFO]
Diarization completed and attached: /tmp/tmp_04jxv_3/17774389-345e-49a9-b8c9-31705cbf154a.mkv.diarization.pyannote.json
16:56:03
[INFO]
Diarization completed successfully!
16:56:03
[INFO]
{"step": "diarization", "status": "completed", "updated_at": "2026-06-29T10:56:03.226315-06:00", "output_path": "/tmp/tmp_04jxv_3/17774389-345e-49a9-b8c9-31705cbf154a.mkv.diarization.pyannote.json"}
16:56:03
[INFO]
Extracted 2179 turn-based segments
16:56:03
[INFO]
Diarization results saved to /tmp/tmp_04jxv_3/17774389-345e-49a9-b8c9-31705cbf154a.mkv.diarization.pyannote.json
16:56:03
[INFO]
Job completed! Retrieving results...
16:56:03
[INFO]
Job status: completed
16:56:03
[INFO]
Speaker diarization completed
16:56:03
[INFO]
Speaker diarization completed
16:56:03
[INFO]
Poll #1: Status: succeeded
16:55:50
[INFO]
Diarization job started (Job ID: 6db84367-4ebb-462a-8514-2631e37e9287). Processing audio...
16:55:50
[INFO]
Job 6db84367-4ebb-462a-8514-2631e37e9287 already completed. Using existing results.
16:55:48
[INFO]
Found existing pyannote job (ID: 6db84367-4ebb-462a-8514-2631e37e9287). Checking status...
16:55:48
[INFO]
Found existing pyannote job (ID: 6db84367-4ebb-462a-8514-2631e37e9287). Checking status...
16:55:48
[INFO]
Starting speaker diarization via pyannote.ai API
16:55:48
[INFO]
Starting speaker diarization via pyannote.ai API
16:55:46
[INFO]
Using S3 pre-signed URL for diarization
16:55:45
[INFO]
{"step": "diarization", "status": "processing", "updated_at": "2026-06-29T10:55:45.991477-06:00"}
16:55:45
[INFO]
Starting transcription + diarization
16:55:45
[INFO]
Audio extracted and attached: /tmp/tmp_04jxv_3/17774389-345e-49a9-b8c9-31705cbf154a.wav
16:55:45
[INFO]
{"step": "extraction", "status": "completed", "updated_at": "2026-06-29T10:55:45.962012-06:00", "wav_path": "/tmp/tmp_04jxv_3/17774389-345e-49a9-b8c9-31705cbf154a.wav"}
16:55:41
[INFO]
Audio extracted to /tmp/tmp_04jxv_3/17774389-345e-49a9-b8c9-31705cbf154a.wav
16:54:33
[INFO]
Extracting audio to WAV format
16:54:33
[INFO]
Extracting audio to WAV format
16:54:33
[INFO]
{"step": "extraction", "status": "processing", "updated_at": "2026-06-29T10:54:33.112720-06:00"}
16:54:33
[INFO]
Starting audio extraction
16:53:57
[INFO]
Downloading video from S3 for processing
16:42:25
[INFO]
Job submitted successfully via webhook. Returning early.
16:42:24
[INFO]
Webhooks enabled: https://ccai-api.pixeltree.ca/api/webhooks/pyannote
16:42:24
[INFO]
Submitting diarization + transcription job to pyannote.ai (URL: https://ccai-prod.s3.amazonaws.com/32fffcb9-5e37-4b52-9039-448552cfdc76.wav?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAQK6LNXA7XP5KSEWG%2F20260629%2Fca-central-1%2Fs3%2Faws4_request&X-Amz-Date=20260629T164224Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=87ee436c1f2d857da6bec3f0533c8c91cfe625a58f333e8ae84ddb78f62f54b4)
16:42:24
[INFO]
Starting speaker diarization via pyannote.ai API
16:42:24
[INFO]
Starting speaker diarization via pyannote.ai API
16:42:24
[INFO]
Using S3 pre-signed URL for diarization
16:42:24
[INFO]
{"step": "diarization", "status": "processing", "updated_at": "2026-06-29T10:42:24.796914-06:00"}
16:42:24
[INFO]
Starting transcription + diarization
16:42:24
[INFO]
Audio extracted and attached: /tmp/tmpb2nr_fte/17774389-345e-49a9-b8c9-31705cbf154a.wav
16:42:24
[INFO]
{"step": "extraction", "status": "completed", "updated_at": "2026-06-29T10:42:24.785749-06:00", "wav_path": "/tmp/tmpb2nr_fte/17774389-345e-49a9-b8c9-31705cbf154a.wav"}
16:42:19
[INFO]
Audio extracted to /tmp/tmpb2nr_fte/17774389-345e-49a9-b8c9-31705cbf154a.wav
16:41:11
[INFO]
Extracting audio to WAV format
16:41:11
[INFO]
Extracting audio to WAV format
16:41:11
[INFO]
{"step": "extraction", "status": "processing", "updated_at": "2026-06-29T10:41:11.090877-06:00"}
16:41:11
[INFO]
Starting audio extraction
16:40:35
[INFO]
Downloading video from S3 for processing
21:39:17
[INFO]
Download completed successfully
21:34:41
[INFO]
Manual retry initiated by user
16:52:22
[ERROR]
Step full failed: Recording 828 has no file path
16:41:28
[ERROR]
Step full failed: Recording 828 has no file path