Recording · Day 1
Community Development Committee
Technical details
Recording ID
956
Meeting ID
479
File path
5433dfeb-30ee-4d11-92aa-16f114bfd066.mkv
Recording information
Status
Completed
Downloading…
0%
Duration
6h18m
Start time
2026-04-01 13:30
End time
2026-04-02 01:48
Extract audio
Extract WAV audio for transcription and diarization
Progress
Storage & files
| File type | Storage | Path / Key | Status | Action |
|---|---|---|---|---|
| Video | S3 | 5433dfeb-30ee-4d11-92aa-16f114bfd066.mkv | Exists | |
| Transcript | S3 | ec447f76-767c-4d15-937b-82a253f9c9e1.json | Exists | |
| WAV | S3 | 0f801ac0-7a49-4ce6-9a56-66c649b3c08b.wav | Exists | |
| Diarization Pyannote | S3 | 4a26b8da-da3f-45b8-8f4c-62a4e53f8547.json | Exists | |
| Diarization Gemini | S3 | 0f1b3010-a3c4-4438-b20b-9e1484bf29b9.json | Exists | |
| Diarization Consolidated | S3 | 3f46d340-29ed-4964-9628-81be44f72129.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
200 entries
6 errors
31 warnings
19:53:45
[INFO]
Consolidation completed: 581 segments (reduced from 1674)
19:53:45
[INFO]
{"step": "consolidation", "status": "completed", "updated_at": "2026-09-07T13:53:45.022312-06:00", "consolidated_path": "0f1b3010-a3c4-4438-b20b-9e1484bf29b9.diarization.consolidated.json", "stats": {"original_segment_count": 1674, "consolidated_segment_count": 581, "reduction_percent": 65.29}}
19:53:44
[INFO]
{"step": "consolidation", "status": "processing", "updated_at": "2026-09-07T13:53:44.727030-06:00"}
19:53:44
[INFO]
Speaker refinement completed
19:53:44
[INFO]
{"step": "gemini", "status": "completed", "updated_at": "2026-09-07T13:53:44.716507-06:00", "output_path": "/tmp/tmp8hcebdqi.json"}
19:53:44
[INFO]
================================================================================
19:53:44
[INFO]
CHUNKING COMPLETE: Successfully merged all 2 chunks in 131.0s
19:53:44
[INFO]
================================================================================
19:53:44
[INFO]
✓ Unique speaker mappings discovered: 16
19:53:44
[INFO]
✓ Speakers: 7 named, 35 generic
19:53:44
[INFO]
✓ Segment count: 1674/1674
19:53:44
[WARNING]
Large gap detected at segment 1661: 22599.885s -> 22606.805s
19:53:44
[WARNING]
Large gap detected at segment 1654: 22553.825s -> 22585.145s
19:53:44
[WARNING]
Large gap detected at segment 1645: 22497.565s -> 22522.245s
19:53:44
[WARNING]
Large gap detected at segment 1644: 22481.145s -> 22487.105s
19:53:44
[WARNING]
Large gap detected at segment 1637: 22455.945s -> 22467.665s
19:53:44
[WARNING]
Large gap detected at segment 1636: 22446.085s -> 22454.245s
19:53:44
[WARNING]
Large gap detected at segment 1610: 22223.225s -> 22234.205s
19:53:44
[WARNING]
Large gap detected at segment 1541: 21490.385s -> 21496.565s
19:53:44
[WARNING]
Large gap detected at segment 1525: 21275.605s -> 21282.185s
19:53:44
[WARNING]
Large gap detected at segment 1391: 20071.645s -> 20076.985s
19:53:44
[WARNING]
Large gap detected at segment 1128: 16627.885s -> 16633.725s
19:53:44
[WARNING]
Large gap detected at segment 1124: 16411.505s -> 16418.125s
19:53:44
[WARNING]
Large gap detected at segment 1073: 15930.085s -> 15940.605s
19:53:44
[WARNING]
Large gap detected at segment 1009: 15235.465s -> 15241.325s
19:53:44
[WARNING]
Large gap detected at segment 1006: 15198.545s -> 15211.285s
19:53:44
[WARNING]
Large gap detected at segment 1000: 15171.625s -> 15188.045s
19:53:44
[WARNING]
Large gap detected at segment 987: 15114.445s -> 15123.645s
19:53:44
[WARNING]
Large gap detected at segment 807: 13502.985s -> 13518.665s
19:53:44
[WARNING]
Large gap detected at segment 782: 10915.525s -> 13451.485s
19:53:44
[WARNING]
Large gap detected at segment 775: 10876.685s -> 10887.665s
19:53:44
[WARNING]
Overlap detected at segment 712: 10039.385s -> 10036.365s
19:53:44
[WARNING]
Large gap detected at segment 705: 9952.105s -> 9957.665s
19:53:44
[WARNING]
Large gap detected at segment 615: 8505.945s -> 8513.065s
19:53:44
[WARNING]
Large gap detected at segment 590: 8076.905s -> 8082.725s
19:53:44
[WARNING]
Large gap detected at segment 531: 7018.465s -> 7024.145s
19:53:44
[WARNING]
Large gap detected at segment 527: 6924.945s -> 6930.505s
19:53:44
[WARNING]
Large gap detected at segment 297: 4915.305s -> 4945.645s
19:53:44
[WARNING]
Large gap detected at segment 286: 4871.665s -> 4878.085s
19:53:44
[WARNING]
Large gap detected at segment 285: 4856.065s -> 4870.125s
19:53:44
[WARNING]
Large gap detected at segment 199: 3737.925s -> 3745.145s
19:53:44
[INFO]
VALIDATING MERGED RESULT
19:53:44
[INFO]
--------------------------------------------------------------------------------
19:53:44
[DEBUG]
Saved chunk 2 state to database
19:53:44
[INFO]
Chunk 2: ✓ Refined successfully. Total speaker mappings: 16
19:53:44
[INFO]
Chunk 2: Added 13 new speaker mappings. Total: 16
19:53:44
[INFO]
Chunk 2: Gemini returned 15 speakers (2 refined: Councillor D. McLean, Councillor M. Jamieson)
19:53:44
[INFO]
Chunk 2: Successfully refined 2 segments with sparse mapping
19:53:44
[INFO]
Saved parsed JSON: /tmp/tmpdqwou_3r/5433dfeb-30ee-4d11-92aa-16f114bfd066.mkv.gemini_debug/chunk_002_parsed.json
19:53:44
[INFO]
Saved chunk response: /tmp/tmpdqwou_3r/5433dfeb-30ee-4d11-92aa-16f114bfd066.mkv.gemini_debug/chunk_002_response.txt
19:53:44
[INFO]
Chunk 2: Gemini finish_reason: FinishReason.STOP
19:53:44
[INFO]
Chunk 2: Received Gemini API response in 30.9s
19:53:13
[INFO]
Chunk 2: Starting Gemini API call (model: gemini-2.5-pro, prompt length: 34384 chars)...
19:53:13
[INFO]
Saved chunk input: /tmp/tmpdqwou_3r/5433dfeb-30ee-4d11-92aa-16f114bfd066.mkv.gemini_debug/chunk_002_input.json
19:53:13
[INFO]
Time range: 21174.1s - 22652.6s
19:53:13
[INFO]
Processing chunk 2/2 (168 segments)
19:53:13
[INFO]
--------------------------------------------------------------------------------
19:53:13
[DEBUG]
Saved chunk 1 state to database
19:53:13
[INFO]
Chunk 1: ✓ Refined successfully. Total speaker mappings: 16
19:53:13
[INFO]
Chunk 1: Added 16 new speaker mappings. Total: 16
19:53:13
[INFO]
Chunk 1: Gemini returned 42 speakers (7 refined: Councillor D. McLean, Councillor D.J. Kelly, Councillor L. Johnston, Councillor M. Atkinson, Councillor M. Jamieson, Councillor R. Ward, Councillor, Chair R. Dhaliwal)
19:53:13
[INFO]
Chunk 1: Successfully refined 10 segments with sparse mapping
19:53:13
[INFO]
Saved parsed JSON: /tmp/tmpdqwou_3r/5433dfeb-30ee-4d11-92aa-16f114bfd066.mkv.gemini_debug/chunk_001_parsed.json
19:53:13
[INFO]
Saved chunk response: /tmp/tmpdqwou_3r/5433dfeb-30ee-4d11-92aa-16f114bfd066.mkv.gemini_debug/chunk_001_response.txt
19:53:13
[INFO]
Chunk 1: Gemini finish_reason: FinishReason.STOP
19:53:13
[INFO]
Chunk 1: Received Gemini API response in 99.6s
19:51:33
[INFO]
Chunk 1: Starting Gemini API call (model: gemini-2.5-pro, prompt length: 333442 chars)...
19:51:33
[INFO]
Saved chunk input: /tmp/tmpdqwou_3r/5433dfeb-30ee-4d11-92aa-16f114bfd066.mkv.gemini_debug/chunk_001_input.json
19:51:33
[INFO]
Time range: 875.8s - 21172.6s
19:51:33
[INFO]
Processing chunk 1/2 (1506 segments)
19:51:33
[INFO]
--------------------------------------------------------------------------------
19:51:33
[INFO]
Prior run found but no chunks completed. Starting from chunk 1/2
19:51:33
[INFO]
Chunk tracking initialized in database
19:51:33
[INFO]
Creating chunk tracking records for 2 chunks
19:51:33
[INFO]
Split into 2 chunks
19:51:33
[INFO]
================================================================================
19:51:33
[INFO]
Councillor, Chair R. Dhaliwal, Councillor, Vice-Chair K. Tyers, Councillor M. Atkinson, Councillor H. Clark, Councillor L. Johnston, Councillor D.J. Kelly, Councillor A. Yule, Councillor A. Chabot, Councillor M. Jamieson, Councillor D. McLean, Councillor J. Pantazopoulos, Councillor N. Schmidt, Councillor R. Ward, Mayor J. Farkas, General Manager K. Black, Deputy City Clerk J. Fraser, Legislative Specialist R. Derwantz, Public Speaker There are no public speakers mentioned in this section.
19:51:33
[INFO]
================================================================================
19:51:33
[INFO]
CHUNKING STRATEGY: Speaker list being used:
19:51:33
[INFO]
================================================================================
19:51:33
[INFO]
CHUNKING: Processing 1674 segments in chunks of 1500
19:51:33
[INFO]
================================================================================
19:51:33
[WARNING]
Creating debug folder: /tmp/tmpdqwou_3r/5433dfeb-30ee-4d11-92aa-16f114bfd066.mkv.gemini_debug. These folders are not auto-cleaned. Clean up with: rm -rf *.gemini_debug/
19:51:33
[INFO]
Large meeting detected (1674 segments). Using chunking strategy.
19:51:27
[INFO]
Starting speaker refinement
19:51:26
[INFO]
Cleanup completed: 98 segments corrected
19:51:26
[INFO]
{"step": "cleanup", "status": "completed", "updated_at": "2026-09-07T13:51:26.499527-06:00", "applied_count": 98}
19:51:26
[INFO]
{"step": "cleanup", "status": "processing", "updated_at": "2026-09-07T13:51:26.157002-06:00"}
19:51:26
[INFO]
Starting name cleanup step
19:51:26
[INFO]
Diarization completed and attached: /tmp/tmpdqwou_3r/5433dfeb-30ee-4d11-92aa-16f114bfd066.mkv.diarization.pyannote.json
19:51:26
[INFO]
Diarization completed successfully!
19:51:26
[INFO]
{"step": "diarization", "status": "completed", "updated_at": "2026-09-07T13:51:26.123197-06:00", "output_path": "/tmp/tmpdqwou_3r/5433dfeb-30ee-4d11-92aa-16f114bfd066.mkv.diarization.pyannote.json"}
19:51:26
[INFO]
Extracted 1674 turn-based segments
19:51:26
[INFO]
Diarization results saved to /tmp/tmpdqwou_3r/5433dfeb-30ee-4d11-92aa-16f114bfd066.mkv.diarization.pyannote.json
19:51:25
[INFO]
Job completed! Retrieving results...
19:51:25
[INFO]
Job status: completed
19:51:25
[INFO]
Speaker diarization completed
19:51:25
[INFO]
Speaker diarization completed
19:51:25
[INFO]
Poll #28: Status: succeeded
19:51:13
[INFO]
Poll #27: Status: running
19:51:02
[INFO]
Poll #26: Status: running
19:50:52
[INFO]
Poll #25: Status: running
19:50:41
[INFO]
Poll #24: Status: running
19:50:31
[INFO]
Poll #23: Status: running
19:50:21
[INFO]
Poll #22: Status: running
19:50:10
[INFO]
Poll #21: Status: running
19:50:00
[INFO]
Poll #20: Status: running
19:49:49
[INFO]
Poll #19: Status: running
19:49:39
[INFO]
Poll #18: Status: running
19:49:29
[INFO]
Poll #17: Status: running
19:49:19
[INFO]
Poll #16: Status: running
19:49:08
[INFO]
Poll #15: Status: running
19:48:58
[INFO]
Poll #14: Status: running
19:48:48
[INFO]
Poll #13: Status: running
19:48:37
[INFO]
Poll #12: Status: running
19:48:27
[INFO]
Poll #11: Status: running
19:48:17
[INFO]
Poll #10: Status: running
19:48:07
[INFO]
Poll #9: Status: running
19:47:56
[INFO]
Poll #8: Status: running
19:47:46
[INFO]
Poll #7: Status: running
19:47:36
[INFO]
Poll #6: Status: running
19:47:25
[INFO]
Poll #5: Status: running
19:47:15
[INFO]
Poll #4: Status: running
19:47:05
[INFO]
Poll #3: Status: running
19:46:54
[INFO]
Poll #2: Status: running
19:46:44
[INFO]
Poll #1: Status: running
19:46:34
[INFO]
Diarization job started (Job ID: cb9460a8-792c-4669-9d60-f354070ccd05). Processing audio...
19:46:33
[INFO]
Submitting diarization + transcription job to pyannote.ai (URL: https://ccai-prod.s3.amazonaws.com/0f801ac0-7a49-4ce6-9a56-66c649b3c08b.wav?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAQK6LNXA7XP5KSEWG%2F20260907%2Fca-central-1%2Fs3%2Faws4_request&X-Amz-Date=20260907T194633Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4bafb04c88026dc78a20215df937263c7a9dbe436e0b42d25debe76f8654e1df)
19:46:33
[INFO]
Starting speaker diarization via pyannote.ai API
19:46:33
[INFO]
Starting speaker diarization via pyannote.ai API
19:46:33
[INFO]
Using S3 pre-signed URL for diarization
19:46:33
[INFO]
{"step": "diarization", "status": "processing", "updated_at": "2026-09-07T13:46:33.824369-06:00"}
19:46:33
[INFO]
Starting transcription + diarization
19:46:33
[INFO]
Audio extracted and attached: /tmp/tmpdqwou_3r/5433dfeb-30ee-4d11-92aa-16f114bfd066.wav
19:46:33
[INFO]
{"step": "extraction", "status": "completed", "updated_at": "2026-09-07T13:46:33.814306-06:00", "wav_path": "/tmp/tmpdqwou_3r/5433dfeb-30ee-4d11-92aa-16f114bfd066.wav"}
19:46:28
[INFO]
Audio extracted to /tmp/tmpdqwou_3r/5433dfeb-30ee-4d11-92aa-16f114bfd066.wav
19:45:18
[INFO]
Extracting audio to WAV format
19:45:18
[INFO]
Extracting audio to WAV format
19:45:18
[INFO]
{"step": "extraction", "status": "processing", "updated_at": "2026-09-07T13:45:18.914543-06:00"}
19:45:18
[INFO]
Starting audio extraction
19:45:02
[INFO]
Downloading video from S3 for processing
21:18:23
[ERROR]
Step full failed: pyannote job failed
21:18:23
[INFO]
{"step": "diarization", "status": "failed", "updated_at": "2026-09-04T15:18:23.456553-06:00", "error": "pyannote job failed"}
21:18:23
[ERROR]
Pyannote job previously failed, marking as failed
21:18:23
[INFO]
Using S3 pre-signed URL for diarization
21:18:22
[INFO]
{"step": "diarization", "status": "processing", "updated_at": "2026-09-04T15:18:22.998879-06:00"}
21:18:22
[INFO]
Starting transcription + diarization
21:18:22
[INFO]
Audio extracted and attached: /tmp/tmpryomg2x4/5433dfeb-30ee-4d11-92aa-16f114bfd066.wav
21:18:22
[INFO]
{"step": "extraction", "status": "completed", "updated_at": "2026-09-04T15:18:22.987969-06:00", "wav_path": "/tmp/tmpryomg2x4/5433dfeb-30ee-4d11-92aa-16f114bfd066.wav"}
21:18:17
[INFO]
Audio extracted to /tmp/tmpryomg2x4/5433dfeb-30ee-4d11-92aa-16f114bfd066.wav
21:17:06
[INFO]
Extracting audio to WAV format
21:17:06
[INFO]
Extracting audio to WAV format
21:17:06
[INFO]
{"step": "extraction", "status": "processing", "updated_at": "2026-09-04T15:17:06.208062-06:00"}
21:17:06
[INFO]
Starting audio extraction
21:16:49
[INFO]
Downloading video from S3 for processing
21:16:46
[ERROR]
Step full failed: pyannote job failed
21:16:46
[INFO]
{"step": "diarization", "status": "failed", "updated_at": "2026-09-04T15:16:46.951939-06:00", "error": "pyannote job failed"}
21:16:46
[ERROR]
Pyannote job previously failed, marking as failed
21:16:46
[INFO]
Using S3 pre-signed URL for diarization
21:16:46
[INFO]
{"step": "diarization", "status": "processing", "updated_at": "2026-09-04T15:16:46.514189-06:00"}
21:16:46
[INFO]
Starting transcription + diarization
21:16:46
[INFO]
Audio extracted and attached: /tmp/tmpkozuf_3x/5433dfeb-30ee-4d11-92aa-16f114bfd066.wav
21:16:46
[INFO]
{"step": "extraction", "status": "completed", "updated_at": "2026-09-04T15:16:46.503335-06:00", "wav_path": "/tmp/tmpkozuf_3x/5433dfeb-30ee-4d11-92aa-16f114bfd066.wav"}
21:16:41
[INFO]
Audio extracted to /tmp/tmpkozuf_3x/5433dfeb-30ee-4d11-92aa-16f114bfd066.wav
21:15:28
[INFO]
Extracting audio to WAV format
21:15:28
[INFO]
Extracting audio to WAV format
21:15:28
[INFO]
{"step": "extraction", "status": "processing", "updated_at": "2026-09-04T15:15:28.634948-06:00"}
21:15:28
[INFO]
Starting audio extraction
21:15:12
[INFO]
Downloading video from S3 for processing
21:15:10
[ERROR]
Step full failed: Speaker diarization failed for file: 5f0a1dcf-4ad6-44e2-8356-a480a065f1f3.wav
Details: Speaker diarization failed for file: 5f0a1dcf-4ad6-44e2-8356-a480a065f1f3.wav
Details: Diarization job failed: Unknown error
21:15:10
[ERROR]
Diarization failed: Speaker diarization failed for file: 5f0a1dcf-4ad6-44e2-8356-a480a065f1f3.wav
Details: Diarization job failed: Unknown error
21:15:10
[INFO]
{"step": "diarization", "status": "failed", "updated_at": "2026-09-04T15:15:10.595504-06:00", "error": "Speaker diarization failed for file: 5f0a1dcf-4ad6-44e2-8356-a480a065f1f3.wav\nDetails: Diarization job failed: Unknown error"}
21:15:10
[ERROR]
ERROR: Diarization job failed: Unknown error
21:15:10
[INFO]
Poll #42: Status: failed
21:15:00
[INFO]
Poll #41: Status: running
21:14:49
[INFO]
Poll #40: Status: running
21:14:39
[INFO]
Poll #39: Status: running
21:14:29
[INFO]
Poll #38: Status: running
21:14:19
[INFO]
Poll #37: Status: running
21:14:08
[INFO]
Poll #36: Status: running
21:13:58
[INFO]
Poll #35: Status: running
21:13:48
[INFO]
Poll #34: Status: running
21:13:37
[INFO]
Poll #33: Status: running
21:13:27
[INFO]
Poll #32: Status: running
21:13:17
[INFO]
Poll #31: Status: running
21:13:07
[INFO]
Poll #30: Status: running
21:12:56
[INFO]
Poll #29: Status: running
21:12:46
[INFO]
Poll #28: Status: running
21:12:36
[INFO]
Poll #27: Status: running
21:12:25
[INFO]
Poll #26: Status: running
21:12:15
[INFO]
Poll #25: Status: running
21:12:05
[INFO]
Poll #24: Status: running
21:11:55
[INFO]
Poll #23: Status: running
21:11:44
[INFO]
Poll #22: Status: running
21:11:34
[INFO]
Poll #21: Status: running
21:11:24
[INFO]
Poll #20: Status: running
21:11:13
[INFO]
Poll #19: Status: running
21:11:03
[INFO]
Poll #18: Status: running
21:10:53
[INFO]
Poll #17: Status: running
21:10:43
[INFO]
Poll #16: Status: running